summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Lecher <jlec@gentoo.org>2010-09-12 08:44:48 +0000
committerJustin Lecher <jlec@gentoo.org>2010-09-12 08:44:48 +0000
commit0f979db65044711b77f1d6ab99ab9b4eb2054ef0 (patch)
tree2ce80c39c3b2ca627446afb98aec2550a19c73e4 /sci-libs/cctbx
parentAdd ree18. (diff)
downloadhistorical-0f979db65044711b77f1d6ab99ab9b4eb2054ef0.tar.gz
historical-0f979db65044711b77f1d6ab99ab9b4eb2054ef0.tar.bz2
historical-0f979db65044711b77f1d6ab99ab9b4eb2054ef0.zip
Big rewrite
Package-Manager: portage-2.2_rc79/cvs/Linux x86_64
Diffstat (limited to 'sci-libs/cctbx')
-rw-r--r--sci-libs/cctbx/ChangeLog10
-rw-r--r--sci-libs/cctbx/Manifest15
-rw-r--r--sci-libs/cctbx/cctbx-2010.03.29.2334-r2.ebuild185
-rw-r--r--sci-libs/cctbx/files/2010.03.29.2334-boost.patch516
-rw-r--r--sci-libs/cctbx/files/2010.03.29.2334-clipper.patch77
-rw-r--r--sci-libs/cctbx/files/2010.03.29.2334-flags.patch94
-rw-r--r--sci-libs/cctbx/files/2010.03.29.2334-soname.patch123
7 files changed, 1014 insertions, 6 deletions
diff --git a/sci-libs/cctbx/ChangeLog b/sci-libs/cctbx/ChangeLog
index 54dcf0c226c8..0df8b98f4c55 100644
--- a/sci-libs/cctbx/ChangeLog
+++ b/sci-libs/cctbx/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for sci-libs/cctbx
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sci-libs/cctbx/ChangeLog,v 1.6 2010/07/03 07:16:02 jlec Exp $
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/cctbx/ChangeLog,v 1.7 2010/09/12 08:44:48 jlec Exp $
+
+*cctbx-2010.03.29.2334-r2 (12 Sep 2010)
+
+ 12 Sep 2010; Justin Lecher <jlec@gentoo.org>
+ +files/2010.03.29.2334-boost.patch, +cctbx-2010.03.29.2334-r2.ebuild,
+ +files/2010.03.29.2334-clipper.patch, +files/2010.03.29.2334-flags.patch,
+ +files/2010.03.29.2334-soname.patch:
+ Big rewrite
*cctbx-2010.03.29.2334-r1 (03 Jul 2010)
diff --git a/sci-libs/cctbx/Manifest b/sci-libs/cctbx/Manifest
index f91bda9fe3a1..19039d4c2b9c 100644
--- a/sci-libs/cctbx/Manifest
+++ b/sci-libs/cctbx/Manifest
@@ -1,17 +1,22 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
+AUX 2010.03.29.2334-boost.patch 18151 RMD160 cb99a020f33a20a3297ea5873d11f4b081bd22de SHA1 282054bf323c1057b2c99af105d84e03c12a67bb SHA256 afb97c9c3ebb71e7ba0eb46b99c1f007d8e9ddcfdb216c978e84f42caa1b1c2b
+AUX 2010.03.29.2334-clipper.patch 2209 RMD160 1bfc13f0834e837a55f0e41554649acd1e45b80c SHA1 a81ee2cc94805b6ef1e609c2ea402a1c9f429d62 SHA256 e7c8bf813bedd3b67de5ce727d5f75e9635568769373f237e7b624ed143351b1
+AUX 2010.03.29.2334-flags.patch 3336 RMD160 fdbb0b71499e00c666629e1ff04b5bdcbe376b13 SHA1 ef97099dbd93727bd356015f22e82480a48e1a0c SHA256 769edb3e5dcb608b54ab4d33c5933b523f73ff62c6cb627c4eb4b1a2086e40b1
+AUX 2010.03.29.2334-soname.patch 5177 RMD160 c6cad498c4edb7046696428008408b126efa954c SHA1 7c5d78110c4270c9ca113ae5ea77c7c2451e2b21 SHA256 dd4ea6dbf34c1b2d9572adec5a33fe6a73b1a99e8c4364123e69382bb161ce74
AUX 2010.03.29.2334-tst_server.py.patch 774 RMD160 12e1115b2ccc0b6b01b365925bf311d29ef08c7a SHA1 09549cc6103f502777acced13a3ed483d713dfc0 SHA256 df058d16d2dc5beaac9f1a1fbf2e640994c7e881d449eb01ac338dadbfb15ac3
DIST cctbx-2009.11.01.0123.tar.gz 14604079 RMD160 77cc84d4b9e35e7a87f807d8669efb939b2e82ce SHA1 7db71a62786b82f47999919a9411938b123d5b4d SHA256 31e7f79424360f963c6eae528a9d289db4b53c1f7fe4aa9de71201e9d14bc5af
DIST cctbx-2010.03.29.2334.tar.gz 15570372 RMD160 e543578dbe6568f5f8f80b3ce7a20b10e01193bc SHA1 1442dbd5d1ef3b91e718dce039a24fc1637104d3 SHA256 e1fae804caaf8593c7a3f32e4544046f4c00293063d9099721578cc8fbd17213
EBUILD cctbx-2009.11.01.0123-r1.ebuild 5840 RMD160 df6c57d186ac192de34afa2bf30be70db60677a1 SHA1 984899e01ffcb2b527e4c1c0126d0afa2ebd8038 SHA256 b2b21d5fb452789edcd35eb3828b94dc9d92e96105a7d0f110f566b6a801e66b
EBUILD cctbx-2010.03.29.2334-r1.ebuild 5975 RMD160 98b2ba0f894bcb003d21ef5d53b5cf7bd619aa8a SHA1 4537c1c2249af3deee68acaf0417844877f6a8a1 SHA256 01825d4dfe20481cdfc7ca86124b22204b0ac3b553b99d0e8e82da7ee11a38f1
-MISC ChangeLog 1363 RMD160 415ffd1e5cd36be0ee747c3190e65f326b169b47 SHA1 0a153969da2b991a20de1a41d18366c9b07db17c SHA256 2f1031bc98efd0920b5414fc0992999fc86198d846f2a12ebfad3d9c0dbce86d
+EBUILD cctbx-2010.03.29.2334-r2.ebuild 5716 RMD160 bf7ef685c685160ca20a7784deec8dce04f4bff9 SHA1 111a47d2c32c20e9574528aabfd85a4347f522be SHA256 27f6719f606704137b9c06f936dde030096c9ed7e04910a12f6a7eb76234af9b
+MISC ChangeLog 1653 RMD160 18ec58552782916fb11f990bc6f8cd85fcd38711 SHA1 7c88d84a24f75fad2ba3369bfe446db94098bcd0 SHA256 2c4b0bd6e4312d978848a4ee419d79c28dcaf579c50f3f82379a2cc2373647dd
MISC metadata.xml 767 RMD160 c2fc3bcc534e407e6066ee98beb6878d78a0f6e9 SHA1 a653677e160cf0726e1747b06b5d0cd95e51ac5f SHA256 ef36fc1a1d5d657ba67f88b303f08eef5a1a814d22a2091c07616dc16928e3fa
-----BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.15 (GNU/Linux)
+Version: GnuPG v2.0.16 (GNU/Linux)
-iEYEARECAAYFAkwu47cACgkQgAnW8HDreRbuHwCeLaXJJ36g970tSQP0n/sDSdBu
-oH8An3jrox5lzOVixpyTmgwM0MiEfjP0
-=WG6j
+iEYEARECAAYFAkyMkwUACgkQgAnW8HDreRaq6wCgyUxQYW5TI91iepTa9VTC7aQK
+7ukAnj9WoeHS+7T1HCnfj5rgm1TclfZ0
+=FMZE
-----END PGP SIGNATURE-----
diff --git a/sci-libs/cctbx/cctbx-2010.03.29.2334-r2.ebuild b/sci-libs/cctbx/cctbx-2010.03.29.2334-r2.ebuild
new file mode 100644
index 000000000000..ebc1b2b4849a
--- /dev/null
+++ b/sci-libs/cctbx/cctbx-2010.03.29.2334-r2.ebuild
@@ -0,0 +1,185 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/cctbx/cctbx-2010.03.29.2334-r2.ebuild,v 1.1 2010/09/12 08:44:48 jlec Exp $
+
+EAPI="3"
+
+PYTHON_DEPEND="2"
+
+inherit eutils python toolchain-funcs
+
+MY_PV="${PV//./_}"
+
+DESCRIPTION="Computational Crystallography Toolbox"
+HOMEPAGE="http://cctbx.sourceforge.net/"
+SRC_URI="http://cci.lbl.gov/cctbx_build/results/${MY_PV}/${PN}_bundle.tar.gz -> ${P}.tar.gz"
+
+LICENSE="cctbx-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+minimal openmp threads"
+
+RDEPEND="
+ >dev-libs/boost-1.39
+ sci-libs/fftw
+ !minimal? (
+ sci-chemistry/cns
+ sci-chemistry/shelx )"
+DEPEND="${RDEPEND}
+ >=dev-util/scons-1.2"
+
+S="${WORKDIR}"
+MY_S="${WORKDIR}"/cctbx_sources
+MY_B="${WORKDIR}"/cctbx_build
+
+pkg_setup() {
+ if use openmp &&
+ [[ $(tc-getCC)$ == *gcc* ]] &&
+ ( [[ $(gcc-major-version)$(gcc-minor-version) -lt 42 ]] ||
+ ! built_with_use sys-devel/gcc openmp )
+ then
+ ewarn "You are using gcc and OpenMP is only available with gcc >= 4.2 "
+ ewarn "If you want to build ${PN} with OpenMP, abort now,"
+ ewarn "and switch CC to an OpenMP capable compiler"
+ fi
+ python_set_active_version 2
+}
+
+src_prepare() {
+ local opts
+ local optsld
+
+ epatch "${FILESDIR}"/${PV}-tst_server.py.patch
+ epatch "${FILESDIR}"/${PV}-boost.patch
+ epatch "${FILESDIR}"/${PV}-clipper.patch
+ epatch "${FILESDIR}"/${PV}-flags.patch
+ epatch "${FILESDIR}"/${PV}-soname.patch
+
+ rm -rf "${MY_S}/scons" "${MY_S}/boost" "${MY_S}/PyCifRW"
+ find "${MY_S}/clipper" -name "*.h" -delete
+
+ echo "import os, sys; os.execvp('scons', sys.argv)" > "${MY_S}"/libtbx/command_line/scons.py
+}
+
+src_configure() {
+ local compiler
+ local myconf
+
+ myconf="${MY_S}/libtbx/configure.py"
+
+ compiler=$(expr match "$(tc-getCC)" '.*\([a-z]cc\)')
+ myconf="${myconf} --compiler=${compiler}"
+
+ # Additional USE flag usage
+ check_use openmp
+ myconf="${myconf} --enable-openmp-if-possible=${USE_openmp}"
+
+ use threads && USEthreads="--enable-boost-threads" && \
+ ewarn "If using boost threads openmp support is disabled"
+
+ myconf="${myconf} ${USE_threads} --scan-boost --use_environment_flags"
+
+ mkdir "${MY_B}" && myconf="${myconf} --current_working_directory=${MY_B}"
+ cd "${MY_B}"
+
+ myconf="${myconf} --build=release fftw3tbx rstbx smtbx mmtbx clipper_adaptbx fable"
+ einfo "configuring with ${python} ${myconf}"
+
+ $(PYTHON) ${myconf} || die "configure failed"
+}
+
+src_compile() {
+ local makeopts_exp
+
+ cd "${MY_B}"
+
+ makeopts_exp=${MAKEOPTS/j/j }
+ makeopts_exp=${makeopts_exp%-l[0-9]*}
+
+ source setpaths_all.sh
+
+ einfo "compiling with libtbx.scons ${makeopts_exp}"
+ libtbx.scons ${makeopts_exp} .|| die "make failed"
+}
+
+src_test(){
+ source "${MY_B}"/setpaths_all.sh
+ libtbx.python $(libtbx.show_dist_paths boost_adaptbx)/tests/tst_rational.py && \
+ libtbx.python ${SCITBX_DIST}/run_tests.py ${MAKEOPTS_EXP} && \
+ libtbx.python ${CCTBX_DIST}/run_tests.py ${MAKEOPTS_EXP} \
+ || die "test failed"
+}
+
+src_install(){
+# find cctbx_build/ -type f \( -name "*.py" -o -name "*sh" \) -exec \
+# sed -e "s:${MY_S}:${EPREFIX}/usr/$(get_libdir)/cctbx/cctbx_sources:g" \
+# -e "s:${MY_B}:${EPREFIX}/usr/$(get_libdir)/cctbx/cctbx_build:g" \
+# -i '{}' \; || die "Fail to correct path"
+
+ ebegin "removing unnessary files"
+ rm -r "${S}"/cctbx_sources/{clipper,ccp4io,ucs-fonts,TAG} || die "failed to remove uneeded scons"
+ find "${S}" -type f -name "*conftest*" -delete || die "failed to remove uneeded *.o"
+ find "${S}" -type f -name "*.o" -delete || die "failed to remove uneeded *.o"
+ find "${S}" -type f -name "*.c" -delete || die "failed to remove uneeded *.c"
+ find "${S}" -type f -name "*.f" -delete || die "failed to remove uneeded *.c"
+ find "${S}" -type f -name "*.cpp" -delete || die "failed to remove uneeded *.cpp"
+ find "${S}" -type f -name "*.pyc" -delete || die "failed to remove uneeded *.pyc"
+ find "${S}" -type f -name "SCons*" -delete || die "failed to remove uneeded *.pyc"
+ find "${S}" -type f -name "Makefile" -delete || die "failed to remove uneeded *.pyc"
+ find "${S}" -type f -name "config.log" -delete || die "failed to remove uneeded *.pyc"
+ find "${S}" -type d -empty -delete || die
+ find ${MY_B} -maxdepth 1 -type f
+ find ${MY_B} -maxdepth 1 -type f -delete
+ eend
+
+ dobin ${MY_B}/bin/* || die
+ rm -rf ${MY_B}/bin
+ dolib.so ${MY_B}/lib/lib* || die
+ rm -f ${MY_B}/lib/lib*
+
+ insinto /usr/include
+ doins -r ${MY_B}/include/* || die
+ rm -rf ${MY_B}/include
+
+ insinto /usr/libexec/${PN}
+ doins -r ${MY_B}/* || die
+ find "${ED}"/usr/libexec/${PN} -type f -exec chmod 755 '{}' \;
+
+ cd ${MY_S}
+ insinto $(python_get_sitedir)
+ doins -r * || die
+ exeinto $(python_get_sitedir)
+ doexe ${MY_B}/lib/* || die
+ rm -rvf ${MY_B}/lib
+
+ sed \
+ -e "/PYTHONPATH/s:${MY_S}:$(python_get_sitedir):g" \
+ -e "/PYTHONPATH/s:${MY_B}:$(python_get_sitedir):g" \
+ -e "/LD_LIBRARY_PATH/s:${MY_B}/lib:${EPREFIX}/usr/$(get_libdir):g" \
+ -e "/PATH/s:${MY_B}/bin:${EPREFIX}/usr/bin:g" \
+ -e "/PATH/s:${MY_B}/exe:${EPREFIX}/usr/bin:g" \
+ -e "/exec/s:${MY_S}:$(python_get_sitedir):g" \
+ -e "/LIBTBX_BUILD/s:${MY_B}:/usr:g" \
+ -i "${ED}"/usr/bin/* || die
+
+}
+
+pkg_postinst () {
+ python_need_rebuild
+ python_mod_optimize boost_adaptbx cbflib_adaptbx ccp4io_adaptbx cctbx chiltbx clipper_adaptbx crys3d fable fftw3tbx gltbx iotbx libtbx mmtbx omptbx rstbx scitbx smtbx spotfinder tntbx
+}
+
+pkg_postrm () {
+ python_mod_cleanup boost_adaptbx cbflib_adaptbx ccp4io_adaptbx cctbx chiltbx clipper_adaptbx crys3d fable fftw3tbx gltbx iotbx libtbx mmtbx omptbx rstbx scitbx smtbx spotfinder tntbx
+}
+
+check_use() {
+ for var in $@; do
+ if use ${var}; then
+ printf -v "USE_$var" True
+ else
+ printf -v "USE_$var" False
+ fi
+ shift
+ done
+}
diff --git a/sci-libs/cctbx/files/2010.03.29.2334-boost.patch b/sci-libs/cctbx/files/2010.03.29.2334-boost.patch
new file mode 100644
index 000000000000..8676476266c2
--- /dev/null
+++ b/sci-libs/cctbx/files/2010.03.29.2334-boost.patch
@@ -0,0 +1,516 @@
+From 7e77ff8694b87e95efe56ed961fbc8dd30d8c238 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <gentoo@mgorny.alt.pl>
+Date: Sun, 4 Jul 2010 12:21:10 +0200
+Subject: [PATCH] Unbundle boost.
+
+---
+ work/cctbx_sources/boost_adaptbx/SConscript | 260 -------------------------
+ work/cctbx_sources/cbflib_adaptbx/SConscript | 1 -
+ work/cctbx_sources/cctbx/SConscript | 1 -
+ work/cctbx_sources/clipper_adaptbx/SConscript | 1 -
+ work/cctbx_sources/fable/SConscript | 1 -
+ work/cctbx_sources/fable/libtbx_config | 2 +-
+ work/cctbx_sources/fftw3tbx/SConscript | 1 -
+ work/cctbx_sources/gltbx/SConscript | 1 -
+ work/cctbx_sources/iotbx/SConscript | 2 -
+ work/cctbx_sources/mmtbx/SConscript | 1 -
+ work/cctbx_sources/omptbx/libtbx_config | 2 +-
+ work/cctbx_sources/rstbx/SConscript | 1 -
+ work/cctbx_sources/scitbx/SConscript | 1 -
+ work/cctbx_sources/scitbx/libtbx_config | 2 +-
+ work/cctbx_sources/scitbx/libtbx_refresh.py | 3 +-
+ work/cctbx_sources/smtbx/SConscript | 1 -
+ work/cctbx_sources/spotfinder/SConscript | 1 -
+ work/cctbx_sources/tntbx/SConscript | 1 -
+ 18 files changed, 4 insertions(+), 279 deletions(-)
+
+diff --git a/work/cctbx_sources/boost_adaptbx/SConscript b/work/cctbx_sources/boost_adaptbx/SConscript
+index 0701816..9f8cbf9 100644
+--- a/work/cctbx_sources/boost_adaptbx/SConscript
++++ b/work/cctbx_sources/boost_adaptbx/SConscript
+@@ -8,39 +8,9 @@ import string
+ import sys, os
+ op = os.path
+ Import("env_base", "env_etc")
+-env_etc.boost_dist = libtbx.env.dist_path("boost")
+-env_etc.boost_include = env_etc.boost_dist
+ env_etc.boost_adaptbx_dist = libtbx.env.dist_path("boost_adaptbx")
+ env_etc.boost_adaptbx_include = os.path.dirname(env_etc.boost_adaptbx_dist)
+
+-def build_boost_thread():
+- if (not libtbx.env.build_options.enable_boost_threads):
+- return
+- if (sys.platform == "win32"): s = "win32"
+- else: s = "pthread"
+- join = os.path.join
+- src = join("libs", "thread", "src", s)
+- prefix = "#" + join(os.path.basename(env_etc.boost_dist), src)
+- source = []
+- for node in sorted(os.listdir(join(env_etc.boost_dist, src))):
+- if (not node.lower().endswith(".cpp")): continue
+- source.append(join(prefix, node))
+- env = env_base.Clone(
+- SHLINKFLAGS=env_etc.shlinkflags)
+- env.Append(SHCXXFLAGS=["-DBOOST_THREAD_BUILD_DLL"])
+- env_etc.include_registry.append(
+- env=env,
+- paths=[env_etc.boost_include])
+- darwin_shlinkcom(env_etc, env,
+- lo="boost/libs/thread/src/libboost_thread.lo",
+- dylib="lib/libboost_thread.dylib")
+- env.Repository(os.path.dirname(env_etc.boost_dist))
+- env.SharedLibrary(
+- target='#lib/boost_thread',
+- source=source)
+-
+-build_boost_thread()
+-
+ if (not env_etc.no_boost_python):
+ env_etc.cxxflags_bpl_defines_base = [
+ "-DBOOST_PYTHON_MAX_BASES=2"]
+@@ -64,12 +34,10 @@ if (not env_etc.no_boost_python):
+ ' /manifest ${TARGET}.manifest'])
+ Export("env_no_includes_boost_python_ext")
+ env_pure_boost_python_ext = env_no_includes_boost_python_ext.Clone()
+- env_etc.include_registry.set_boost_dir_name(env_etc.boost_dist)
+ env_etc.include_registry.append(
+ env=env_pure_boost_python_ext,
+ paths=[
+ "#include",
+- env_etc.boost_include,
+ env_etc.python_include])
+ env_boost_python_ext = env_pure_boost_python_ext.Clone()
+ env_etc.include_registry.prepend(
+@@ -113,234 +81,6 @@ if (not env_etc.no_boost_python):
+ target="tests/tst_optional_copy",
+ source="tests/tst_optional_copy.cpp")
+
+- import os, os.path
+- env = env_base.Clone(LIBS=env_etc.libs_python)
+- env.Append(LIBPATH=env_etc.libpath_python)
+- env.Append(SHCXXFLAGS=env_etc.cxxflags_bpl_defines_base)
+- env.Append(SHCXXFLAGS=["-DBOOST_PYTHON_SOURCE"])
+- if (libtbx.env.build_options.boost_python_bool_int_strict):
+- env.Append(SHCXXFLAGS=["-DBOOST_PYTHON_BOOL_INT_STRICT"])
+- env.Replace(SHLINKFLAGS=env_etc.shlinkflags)
+- env.Append(CXXFLAGS=env_etc.cxxflags_bpl_defines_base)
+- env.Append(CXXFLAGS="-DBOOST_PYTHON_SOURCE")
+- env.Replace(LINKFLAGS=env_etc.shlinkflags)
+- env_etc.include_registry.append(
+- env=env,
+- paths=[env_etc.boost_include, env_etc.python_include])
+-
+- darwin_shlinkcom(env_etc, env,
+- lo="boost/libs/python/src/libboost_python.lo",
+- dylib="lib/libboost_python.dylib")
+-
+- # fixed list of file names introduced 2009-09-29, due to major changes in
+- # boost/libs/python/build/Jamfile.v2 svn rev. 56305 (new Python 3 support)
+- bpl_dll_sources = """\
+-numeric.cpp
+-list.cpp
+-long.cpp
+-dict.cpp
+-tuple.cpp
+-str.cpp
+-slice.cpp
+-converter/from_python.cpp
+-converter/registry.cpp
+-converter/type_id.cpp
+-object/enum.cpp
+-object/class.cpp
+-object/function.cpp
+-object/inheritance.cpp
+-object/life_support.cpp
+-object/pickle_support.cpp
+-errors.cpp
+-module.cpp
+-converter/builtin_converters.cpp
+-converter/arg_to_python_base.cpp
+-object/iterator.cpp
+-object/stl_iterator.cpp
+-object_protocol.cpp
+-object_operators.cpp
+-wrapper.cpp
+-import.cpp
+-exec.cpp
+-object/function_doc_signature.cpp
+-""".splitlines()
+- prefix = "#"+os.path.join(
+- os.path.basename(env_etc.boost_dist), "libs", "python", "src")
+- bpl_dll_sources = [os.path.join(prefix, path) for path in bpl_dll_sources]
+- #
+- env.Repository(os.path.dirname(env_etc.boost_dist))
+- if (env_etc.static_bpl):
+- env.StaticLibrary(target="#lib/boost_python", source=bpl_dll_sources)
+- else:
+- env.SharedLibrary(target="#lib/boost_python", source=bpl_dll_sources)
+- if (int(ARGUMENTS.get("boost_python_tests", 0))):
+- warn_if_unexpected_md5_hexdigest(
+- path=libtbx.env.under_dist("boost", "libs/python/test/Jamfile.v2"),
+- expected_md5_hexdigests=[
+- "c7a3dd81bf730635146f5c908ac982eb", # svn revision 39065M
+- "d40aac0029bcd28f6e205ae3b30a1284", # svn revision 40216
+- "b79f016d3ec10cf1625a9e006e605428", # svn revision 40714
+- "f948983d970fd47e83a3a785bb54520a", # svn revision 41550
+- "c3d84006331d534840c42ab956fdfa05", # svn revision 50367M
+- "cedfd061d767a27413ef4a75ee0e446f", # svn revision 56310
+- "e5507482a1937825e4c9f3ffe555fc59", # svn revision 59331
+- ])
+- bpl_tests = Split("""
+-staticmethod
+-shared_ptr
+-enable_shared_from_this
+-andreas_beyer
+-polymorphism
+-polymorphism2
+-auto_ptr
+-minimal
+-args
+-numpy
+-enum
+-exception_translator
+-test_pointer_adoption
+-operators
+-callbacks
+-defaults
+-object
+-list
+-long
+-dict
+-tuple
+-str
+-virtual_functions
+-back_reference
+-implicit
+-data_members
+-ben_scott1
+-bienstman1
+-bienstman2
+-bienstman3
+-multi_arg_constructor
+-extract
+-opaque
+-pickle1
+-pickle2
+-pickle3
+-pickle4
+-nested
+-docstring
+-pytype_function
+-bienstman4
+-bienstman5
+-test_builtin_converters,builtin_converters_ext,test_builtin_converters
+-cltree,cltree,test_cltree
+-m1,m1,newtest
+-m2,m2,newtest
+-iterator,iterator_ext,iterator
+-input_iterator,input_iterator,iterator
+-crossmod_exception_a,crossmod_exception_a,crossmod_exception
+-crossmod_exception_b,crossmod_exception_b,crossmod_exception
+-vector_indexing_suite
+-return_arg
+-keywords,keywords,keywords_test
+-properties
+-map_indexing_suite;int_map_indexing_suite;a_map_indexing_suite,map_indexing_suite_ext,map_indexing_suite
+-injected
+-slice
+-const_argument
+-raw_ctor
+-pointer_vector
+-wrapper_held_type
+-polymorphism2_auto_ptr
+-stl_iterator
+-voidptr
+-crossmod_opaque_a,crossmod_opaque_a,crossmod_opaque
+-crossmod_opaque_b,crossmod_opaque_b,crossmod_opaque
+-""")
+-# non-portable tests are not included above:
+-# calling_conventions
+-# calling_conventions_mf
+-#
+- Import("env_boost_python_ext")
+- test_dir = libtbx.env.under_dist("boost", "libs/python/test")
+- prefix = "#"+os.path.join(
+- os.path.basename(env_etc.boost_dist), "libs", "python", "test")
+- all_tst = []
+- for bpl_test in bpl_tests:
+- flds = bpl_test.split(",")
+- assert len(flds) in (1,3)
+- if (len(flds) == 1):
+- src = bpl_test
+- pyd = bpl_test + "_ext"
+- tst = bpl_test
+- else:
+- src = flds[0]
+- pyd = flds[1]
+- tst = flds[2]
+- env = env_pure_boost_python_ext.Clone()
+- env.Repository(os.path.dirname(env_etc.boost_dist))
+- ok = True
+- source = []
+- for s in src.split(";"):
+- cpp = "%s.cpp" % s
+- file_name = os.path.join(test_dir, cpp)
+- if (not os.path.isfile(file_name)):
+- print "Warning: source file not available:", show_string(file_name)
+- ok = False
+- else:
+- source.append(os.path.join(prefix, cpp))
+- if (ok):
+- if (not tst in all_tst):
+- all_tst.append(tst)
+- env.SharedLibrary(target="#lib/%s" % pyd, source=source)
+- all_tst = [os.path.join(test_dir, tst+".py") for tst in all_tst]
+- #
+- if (sys.platform == "linux2"):
+- base_lib = libtbx.env.under_build(path="base/lib")
+- if (os.path.isdir(base_lib)):
+- env_prog = env.Clone()
+- env_prog.Append(LIBPATH=[base_lib])
+- env_prog.Append(LIBS=[
+- "-lpython%d.%d" % sys.version_info[:2],
+- "-lpthread",
+- "-lutil",
+- "-ldl"])
+- exe = env_prog.Program(
+- target="boost/libs/python/test/exec_dynamic",
+- source=[os.path.join(prefix, "exec.cpp")])
+- libtbx.env.write_dispatcher_in_bin(
+- source_file=exe[0].get_abspath(),
+- target_file="boost_libs_python_test_exec_dynamic")
+- all_tst.append("$ boost_libs_python_test_exec_dynamic %s"
+- % show_string(os.path.join(test_dir, "exec.py")))
+- #
+- if (os.name != "nt"):
+- env.SharedLibrary(
+- target="#lib/boost_adaptbx_char_array_ext",
+- source=["char_array_ext.cpp"])
+- all_tst.append(
+- libtbx.env.under_dist("boost_adaptbx", "tests/tst_char_array.py"))
+- #
+- if (os.name == "nt"):
+- boost_python_run_tests = \
+- "%s\\boost_python_run_tests.bat" % libtbx.env.build_path
+- f = open(boost_python_run_tests, "w")
+- for tst in all_tst:
+- if (tst.startswith("$ ")):
+- print >> f, 'call %s' % tst[2:]
+- else:
+- print >> f, 'call libtbx.python %s' % show_string(tst)
+- f.close()
+- else:
+- boost_python_run_tests = \
+- "%s/boost_python_run_tests.csh" % libtbx.env.build_path
+- f = open(boost_python_run_tests, "w")
+- print >> f, "#! /bin/csh -f"
+- print >> f, "set verbose"
+- for tst in all_tst:
+- if (tst.startswith("$ ")):
+- print >> f, tst[2:]
+- else:
+- print >> f, 'libtbx.python "%s"' % show_string(tst)
+- f.close()
+- os.chmod(boost_python_run_tests, 0755)
+-
+ def write_type_id_eq_h():
+ unsigned_types = [
+ "unsigned short",
+diff --git a/work/cctbx_sources/cbflib_adaptbx/SConscript b/work/cctbx_sources/cbflib_adaptbx/SConscript
+index 78c1297..dffc247 100644
+--- a/work/cctbx_sources/cbflib_adaptbx/SConscript
++++ b/work/cctbx_sources/cbflib_adaptbx/SConscript
+@@ -14,7 +14,6 @@ env_etc.cbflib_common_includes = [
+ env_etc.libtbx_include,
+ env_etc.scitbx_include,
+ env_etc.boost_adaptbx_include,
+- env_etc.boost_include,
+ env_etc.cbflib_dist, # for the adaptor cpp files
+ env_etc.cbflib_include[0], # for the cbflib c-files
+ env_etc.cbflib_include[1], # for the cbflib c-files
+diff --git a/work/cctbx_sources/cctbx/SConscript b/work/cctbx_sources/cctbx/SConscript
+index 6ec7c93..2dfb442 100644
+--- a/work/cctbx_sources/cctbx/SConscript
++++ b/work/cctbx_sources/cctbx/SConscript
+@@ -10,7 +10,6 @@ env_etc.cctbx_common_includes = [
+ env_etc.scitbx_include,
+ env_etc.chiltbx_include,
+ env_etc.omptbx_include,
+- env_etc.boost_include,
+ ]
+
+ env = env_base.Clone(
+diff --git a/work/cctbx_sources/fable/SConscript b/work/cctbx_sources/fable/SConscript
+index bf8e198..b6acccf 100644
+--- a/work/cctbx_sources/fable/SConscript
++++ b/work/cctbx_sources/fable/SConscript
+@@ -13,7 +13,6 @@ if (not env_etc.no_boost_python):
+ env_etc.libtbx_include,
+ env_etc.fable_include,
+ env_etc.boost_adaptbx_include,
+- env_etc.boost_include,
+ env_etc.python_include])
+ env.SharedLibrary(
+ target="#lib/fable_ext",
+diff --git a/work/cctbx_sources/fable/libtbx_config b/work/cctbx_sources/fable/libtbx_config
+index d456588..f00ae86 100644
+--- a/work/cctbx_sources/fable/libtbx_config
++++ b/work/cctbx_sources/fable/libtbx_config
+@@ -1,4 +1,4 @@
+ {
+- "modules_required_for_build": ["boost"],
++ "modules_required_for_build": [],
+ "modules_required_for_use": ["boost_adaptbx"],
+ }
+diff --git a/work/cctbx_sources/fftw3tbx/SConscript b/work/cctbx_sources/fftw3tbx/SConscript
+index ecc3a03..4fc1ec1 100755
+--- a/work/cctbx_sources/fftw3tbx/SConscript
++++ b/work/cctbx_sources/fftw3tbx/SConscript
+@@ -8,7 +8,6 @@ env_etc.fftw3tbx_dist = libtbx.env.dist_path("fftw3tbx")
+ env_etc.fftw3tbx_common_includes = [
+ env_etc.libtbx_include,
+ env_etc.scitbx_include,
+- env_etc.boost_include,
+ ]
+
+ base_include = libtbx.env.under_build("base/include")
+diff --git a/work/cctbx_sources/gltbx/SConscript b/work/cctbx_sources/gltbx/SConscript
+index 56a7115..f6214a4 100644
+--- a/work/cctbx_sources/gltbx/SConscript
++++ b/work/cctbx_sources/gltbx/SConscript
+@@ -7,7 +7,6 @@ env_etc.gltbx_common_includes = [
+ env_etc.libtbx_include,
+ env_etc.gltbx_include,
+ env_etc.scitbx_include,
+- env_etc.boost_include,
+ ]
+
+ if (not env_etc.no_boost_python):
+diff --git a/work/cctbx_sources/iotbx/SConscript b/work/cctbx_sources/iotbx/SConscript
+index df17856..c5cf7da 100644
+--- a/work/cctbx_sources/iotbx/SConscript
++++ b/work/cctbx_sources/iotbx/SConscript
+@@ -10,7 +10,6 @@ env_etc.iotbx_common_includes = [
+ env_etc.iotbx_include,
+ env_etc.cctbx_include,
+ env_etc.scitbx_include,
+- env_etc.boost_include,
+ env_etc.boost_adaptbx_include,
+ ]
+
+@@ -37,7 +36,6 @@ if (not env_etc.no_boost_python):
+ env_etc.include_registry.append(
+ env=env,
+ paths=[env_etc.libtbx_include,
+- env_etc.boost_include,
+ env_etc.python_include])
+ env.SharedLibrary(
+ target="#lib/iotbx_wildcard_ext",
+diff --git a/work/cctbx_sources/mmtbx/SConscript b/work/cctbx_sources/mmtbx/SConscript
+index 0532878..9bcaeb2 100755
+--- a/work/cctbx_sources/mmtbx/SConscript
++++ b/work/cctbx_sources/mmtbx/SConscript
+@@ -10,7 +10,6 @@ env_etc.mmtbx_common_includes = [
+ env_etc.mmtbx_include,
+ env_etc.cctbx_include,
+ env_etc.scitbx_include,
+- env_etc.boost_include,
+ ]
+
+ if (not env_etc.no_boost_python):
+diff --git a/work/cctbx_sources/omptbx/libtbx_config b/work/cctbx_sources/omptbx/libtbx_config
+index d456588..f00ae86 100644
+--- a/work/cctbx_sources/omptbx/libtbx_config
++++ b/work/cctbx_sources/omptbx/libtbx_config
+@@ -1,4 +1,4 @@
+ {
+- "modules_required_for_build": ["boost"],
++ "modules_required_for_build": [],
+ "modules_required_for_use": ["boost_adaptbx"],
+ }
+diff --git a/work/cctbx_sources/rstbx/SConscript b/work/cctbx_sources/rstbx/SConscript
+index 2213c2f..232b5d7 100644
+--- a/work/cctbx_sources/rstbx/SConscript
++++ b/work/cctbx_sources/rstbx/SConscript
+@@ -11,7 +11,6 @@ env_etc.rstbx_common_includes = [
+ env_etc.scitbx_include,
+ env_etc.chiltbx_include,
+ env_etc.omptbx_include,
+- env_etc.boost_include,
+ ]
+
+ env = env_base.Clone(SHLINKFLAGS=env_etc.shlinkflags)
+diff --git a/work/cctbx_sources/scitbx/SConscript b/work/cctbx_sources/scitbx/SConscript
+index f30b9db..10e0967 100644
+--- a/work/cctbx_sources/scitbx/SConscript
++++ b/work/cctbx_sources/scitbx/SConscript
+@@ -9,7 +9,6 @@ env_etc.scitbx_common_includes = [
+ env_etc.scitbx_include,
+ env_etc.omptbx_include,
+ env_etc.boost_adaptbx_include,
+- env_etc.boost_include,
+ ]
+
+ SConscript("error/SConscript")
+diff --git a/work/cctbx_sources/scitbx/libtbx_config b/work/cctbx_sources/scitbx/libtbx_config
+index 87cc3c7..d147819 100644
+--- a/work/cctbx_sources/scitbx/libtbx_config
++++ b/work/cctbx_sources/scitbx/libtbx_config
+@@ -1,4 +1,4 @@
+ {
+- "modules_required_for_build": ["boost"],
++ "modules_required_for_build": [],
+ "modules_required_for_use": ["boost_adaptbx", "omptbx"],
+ }
+diff --git a/work/cctbx_sources/scitbx/libtbx_refresh.py b/work/cctbx_sources/scitbx/libtbx_refresh.py
+index 10d4ee0..c8374b2 100644
+--- a/work/cctbx_sources/scitbx/libtbx_refresh.py
++++ b/work/cctbx_sources/scitbx/libtbx_refresh.py
+@@ -13,8 +13,7 @@ if (self.env.is_ready_for_build()):
+ generate_all.refresh(array_family=os.path.dirname(target_dir))
+ #
+ warn_if_unexpected_md5_hexdigest(
+- path=self.env.under_dist(
+- module_name="boost", path="boost/random/mersenne_twister.hpp"),
++ path="/usr/include/boost/random/mersenne_twister.hpp",
+ expected_md5_hexdigests=[
+ "a2533c79a21f0f773f2e0d29a37371b0", # CVS revision 1.21
+ "378432b5b280c9c0c894f7c80f0dad92", # CVS revision 1.20
+diff --git a/work/cctbx_sources/smtbx/SConscript b/work/cctbx_sources/smtbx/SConscript
+index f5031ee..02f81a4 100644
+--- a/work/cctbx_sources/smtbx/SConscript
++++ b/work/cctbx_sources/smtbx/SConscript
+@@ -7,7 +7,6 @@ env_etc.smtbx_common_includes = [
+ env_etc.cctbx_include,
+ env_etc.scitbx_include,
+ env_etc.chiltbx_include,
+- env_etc.boost_include,
+ ]
+
+ env = env_base.Clone(
+diff --git a/work/cctbx_sources/spotfinder/SConscript b/work/cctbx_sources/spotfinder/SConscript
+index 1d280d4..9dc9195 100644
+--- a/work/cctbx_sources/spotfinder/SConscript
++++ b/work/cctbx_sources/spotfinder/SConscript
+@@ -13,7 +13,6 @@ env_etc.spotfinder_common_includes = [
+ env_etc.iotbx_include,
+ os.path.dirname(env_etc.spotfinder_dist),
+ env_etc.boost_adaptbx_include,
+- env_etc.boost_include,
+ env_etc.annlib_dist,
+ env_etc.annlib_include[0],
+ env_etc.annlib_include[1],
+diff --git a/work/cctbx_sources/tntbx/SConscript b/work/cctbx_sources/tntbx/SConscript
+index e773186..ee29f10 100755
+--- a/work/cctbx_sources/tntbx/SConscript
++++ b/work/cctbx_sources/tntbx/SConscript
+@@ -10,7 +10,6 @@ env_etc.tntbx_common_includes = [
+ env_etc.tntbx_include,
+ env_etc.tntbx_tnt_include,
+ env_etc.scitbx_include,
+- env_etc.boost_include,
+ ]
+
+ Import("env_base", "env_etc")
+--
+1.7.1.1
diff --git a/sci-libs/cctbx/files/2010.03.29.2334-clipper.patch b/sci-libs/cctbx/files/2010.03.29.2334-clipper.patch
new file mode 100644
index 000000000000..8830dd8a054e
--- /dev/null
+++ b/sci-libs/cctbx/files/2010.03.29.2334-clipper.patch
@@ -0,0 +1,77 @@
+diff --git a/cctbx_sources/clipper_adaptbx/SConscript b/cctbx_sources/clipper_adaptbx/SConscript
+index 9cce49e..1046ed0 100644
+--- a/cctbx_sources/clipper_adaptbx/SConscript
++++ b/cctbx_sources/clipper_adaptbx/SConscript
+@@ -1,56 +1,13 @@
+ import libtbx.load_env
+ Import("env_base", "env_etc")
+
+-env_etc.clipper_dist = libtbx.env.dist_path("clipper")
+-env_etc.clipper_include = env_etc.clipper_dist
+-
+ env = env_base.Clone(
+ SHLINKFLAGS=env_etc.shlinkflags,
+ LIBS=env_etc.libm)
+-env.Prepend(CPPPATH=[env_etc.clipper_include])
+-
+-if (env_etc.static_libraries): builder = env.StaticLibrary
+-else: builder = env.SharedLibrary
+-builder(target='#lib/clipper',
+- source = ["../clipper/clipper/core/"+file_name for file_name in """
+- atomsf.cpp
+- cell.cpp
+- clipper_memory.cpp
+- clipper_message.cpp
+- clipper_stats.cpp
+- clipper_types.cpp
+- clipper_util.cpp
+- container.cpp
+- container_hkl.cpp
+- container_map.cpp
+- container_types.cpp
+- coords.cpp
+- derivs.cpp
+- hkl_compute.cpp
+- hkl_data.cpp
+- hkl_datatypes.cpp
+- hkl_info.cpp
+- hkl_lookup.cpp
+- hkl_operators.cpp
+- map_interp.cpp
+- map_utils.cpp
+- nxmap.cpp
+- nxmap_operator.cpp
+- ramachandran.cpp
+- resol_basisfn.cpp
+- resol_fn.cpp
+- resol_targetfn.cpp
+- rotation.cpp
+- spacegroup.cpp
+- spacegroup_data.cpp
+- symop.cpp
+- xmap.cpp
+-""".split()])
+-# fftmap_sparse.cpp
+-# fftmap.cpp
+
+ env_exe = env.Clone()
+-env_exe.Prepend(LIBS=["clipper"])
++env_exe.Prepend(LIBS=["clipper-minimol","clipper-mmdb","clipper-cns","clipper-cif","clipper-contrib","clipper-ccp4","clipper-phs","clipper-core"])
++env_exe.Prepend(SHLINKFLAGS=["-Wl,--as-needed"])
+
+ exe = env_exe.Program(
+ target='#exe_dev/'+env["PROGPREFIX"]+'clipper.symtest'
+@@ -76,12 +33,10 @@ if (hasattr(env_etc, "cctbx_include")):
+ env_etc.include_registry.append(
+ env=env_clipper_boost_python_ext,
+ paths=[
+- env_etc.clipper_include,
+ env_etc.libtbx_include,
+ env_etc.cctbx_include,
+ env_etc.scitbx_include,
+ env_etc.boost_adaptbx_include,
+- env_etc.boost_include,
+ env_etc.python_include])
+ Export("env_clipper_boost_python_ext")
+- SConscript("clipper/SConscript")
++
diff --git a/sci-libs/cctbx/files/2010.03.29.2334-flags.patch b/sci-libs/cctbx/files/2010.03.29.2334-flags.patch
new file mode 100644
index 000000000000..8a8033234713
--- /dev/null
+++ b/sci-libs/cctbx/files/2010.03.29.2334-flags.patch
@@ -0,0 +1,94 @@
+diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript
+index 16d22b6..f85b664 100644
+--- a/cctbx_sources/libtbx/SConscript
++++ b/cctbx_sources/libtbx/SConscript
+@@ -5,6 +5,7 @@ from libtbx.str_utils import show_string
+ from libtbx.path import norm_join, full_command_path
+ import platform
+ import sys, os
++import SCons.Util
+
+ if (hasattr(Environment, "Clone")):
+ Environment.Copy = Environment.Clone # XXX backward compatibility 2008_03_30
+@@ -132,9 +133,7 @@ if (env_etc.compiler == "unix_icpc"):
+ static_exe = libtbx.env.build_options.static_exe
+
+ def gcc_common_warn_options():
+- result = ["-Wall", "-Wno-sign-compare", "-Wno-unknown-pragmas"]
+- if (env_etc.gcc_version >= 40000):
+- result.append("-Winit-self")
++ result = [""]
+ return result
+
+ def enable_more_warnings(env):
+@@ -355,16 +354,22 @@ else:
+ cc = env_etc.compiler.replace("unix_", "")
+ cxx = cc.replace("gcc", "g++")
+ env_etc.gcc_version = libtbx.env_config.get_gcc_version(command_name=cc)
++# linkerflags = os.environ.get("LDFLAGS")
++# link_flags=env_etc.ldflags
++ link_flags=os.environ.get("LDFLAGS")
++ linker_options=SCons.Util.CLVar(os.environ['LDFLAGS'])
+ env_base.Replace(
+ CC=cc,
+ SHCC=cc,
+ CXX=cxx,
+ LINK=cxx,
++ LINKFLAGS=linker_options,
+ SHCXX=cxx,
+ SHLINK=cxx,
+ SHLIBSUFFIX=env_etc.shlibsuffix,
+ )
+- env_etc.c_link = cc
++# linkerflags = env_etc.ldflags
++# env_etc.c_link = cc + " " + linkerflags
+ env_etc.ccflags_base = [
+ "-fPIC",
+ "-fno-strict-aliasing"]
+@@ -380,7 +385,7 @@ else:
+ warn_options = gcc_common_warn_options() + ["-Werror"]
+ env_etc.ccflags_base.extend(warn_options)
+ if (libtbx.env.build_options.optimization):
+- opts = ["-DNDEBUG", "-O3", "-ffast-math"]
++ opts = ["-DNDEBUG"]
+ if (env_etc.gcc_version >= 40300):
+ opts.append("-fno-associative-math")
+ opts.append("-ftrapping-math")
+@@ -401,6 +406,7 @@ else:
+ env_base.Prepend(LINKFLAGS=["-static"])
+ static_exe = None
+ env_etc.shlinkflags = ["-shared"]
++ env_etc.shlinkflags.append(linker_options)
+ env_etc.shlinkflags_bpl = env_etc.shlinkflags
+ if (libtbx.env.build_options.mode == "profile"):
+ env_base.Prepend(LINKFLAGS=["-pg"])
+diff --git a/cctbx_sources/libtbx/env_config.py b/cctbx_sources/libtbx/env_config.py
+index ca510b9..68c58ea 100644
+--- a/cctbx_sources/libtbx/env_config.py
++++ b/cctbx_sources/libtbx/env_config.py
+@@ -1608,6 +1608,7 @@ class build_options:
+ self.env_cxxflags = ""
+ self.env_cflags = ""
+ self.env_cppflags = ""
++ self.env_ldflags = ""
+ flg = os.environ.get("CXXFLAGS")
+ if flg is not None:
+ self.env_cxxflags = flg
+@@ -1617,6 +1618,9 @@ class build_options:
+ flg = os.environ.get("CPPFLAGS")
+ if flg is not None:
+ self.env_cppflags = flg
++ flg = os.environ.get("LDFLAGS")
++ if flg is not None:
++ self.env_ldflags = flg
+
+ def report(self, f=None):
+ if (f is None): f = sys.stdout
+@@ -1640,6 +1644,7 @@ class build_options:
+ print >>f, " CXXFLAGS = ", self.env_cxxflags
+ print >>f, " CFLAGS = ", self.env_cflags
+ print >>f, " CPPFLAGS = ", self.env_cppflags
++ print >>f, " LDFLAGS = ", self.env_ldflags
+
+ class include_registry:
+
diff --git a/sci-libs/cctbx/files/2010.03.29.2334-soname.patch b/sci-libs/cctbx/files/2010.03.29.2334-soname.patch
new file mode 100644
index 000000000000..2c0efcabeb13
--- /dev/null
+++ b/sci-libs/cctbx/files/2010.03.29.2334-soname.patch
@@ -0,0 +1,123 @@
+diff --git a/cctbx_sources/ccp4io_adaptbx/SConscript b/cctbx_sources/ccp4io_adaptbx/SConscript
+index 4ff2232..2ee3991 100644
+--- a/cctbx_sources/ccp4io_adaptbx/SConscript
++++ b/cctbx_sources/ccp4io_adaptbx/SConscript
+@@ -40,6 +40,7 @@ def replace_printf(file_name):
+
+ env = env_base.Clone(
+ SHLINKFLAGS=env_etc.shlinkflags)
++env.Append(SHLINKFLAGS=["-Wl,-soname,libccp4io.so.0.0"])
+ env.Append(CCFLAGS=env_etc.ccp4io_defines)
+ env.Append(SHCCFLAGS=env_etc.ccp4io_defines)
+ env_etc.include_registry.append(
+diff --git a/cctbx_sources/cctbx/SConscript b/cctbx_sources/cctbx/SConscript
+index 6ec7c93..7f2e788 100644
+--- a/cctbx_sources/cctbx/SConscript
++++ b/cctbx_sources/cctbx/SConscript
+@@ -15,6 +15,7 @@ env_etc.cctbx_common_includes = [
+
+ env = env_base.Clone(
+ SHLINKFLAGS=env_etc.shlinkflags)
++env.Append(SHLINKFLAGS=["-Wl,-soname,libcctbx.so.0.0"])
+ env_etc.include_registry.append(
+ env=env,
+ paths=env_etc.cctbx_common_includes)
+diff --git a/cctbx_sources/iotbx/mtz/SConscript b/cctbx_sources/iotbx/mtz/SConscript
+index c0a4bb0..d3c1e45 100644
+--- a/cctbx_sources/iotbx/mtz/SConscript
++++ b/cctbx_sources/iotbx/mtz/SConscript
+@@ -6,6 +6,7 @@ ccp4io_lib = getattr(env_etc, "ccp4io_lib", "cmtz")
+ env.Prepend(LIBS=["cctbx", ccp4io_lib]+env_etc.libm)
+ env.Append(CXXFLAGS=env_etc.ccp4io_defines)
+ env.Append(SHCXXFLAGS=env_etc.ccp4io_defines)
++env.Append(SHLINKFLAGS=["-Wl,-soname,libiotbx_mtz.so.0.0"])
+ env_etc.enable_more_warnings(env=env)
+ if (env_etc.static_libraries): builder = env.StaticLibrary
+ else: builder = env.SharedLibrary
+diff --git a/cctbx_sources/iotbx/pdb/SConscript b/cctbx_sources/iotbx/pdb/SConscript
+index c1415c8..9e1af8d 100644
+--- a/cctbx_sources/iotbx/pdb/SConscript
++++ b/cctbx_sources/iotbx/pdb/SConscript
+@@ -2,6 +2,7 @@ Import("env_base", "env_etc")
+
+ env = env_base.Clone(
+ SHLINKFLAGS=env_etc.shlinkflags)
++env.Append(SHLINKFLAGS=["-Wl,-soname,libiotbx_pdb.so.0.0"])
+ env_etc.enable_more_warnings(env=env)
+ env_etc.include_registry.append(
+ env=env,
+diff --git a/cctbx_sources/mmtbx/masks/SConscript b/cctbx_sources/mmtbx/masks/SConscript
+index e70ab3c..cf2f530 100755
+--- a/cctbx_sources/mmtbx/masks/SConscript
++++ b/cctbx_sources/mmtbx/masks/SConscript
+@@ -17,7 +17,9 @@ builder(
+ target="#lib/mmtbx_masks",
+ source=lib_sources)
+
+-env = env.Clone()
++env = env.Clone(
++ SHLINKFLAGS=env_etc.shlinkflags)
++env.Append(SHLINKFLAGS=["-Wl,-soname,libmmtbx_masks.so.0.0"])
+ env.Prepend(LIBS=["mmtbx_masks", "iotbx_pdb", "cctbx_sgtbx_asu"])
+ env.Program( target = "tst_mask", source="tst_mask.cpp")
+
+diff --git a/cctbx_sources/omptbx/SConscript b/cctbx_sources/omptbx/SConscript
+index 43aac91..ce4b4f3 100644
+--- a/cctbx_sources/omptbx/SConscript
++++ b/cctbx_sources/omptbx/SConscript
+@@ -7,6 +7,7 @@ env_etc.omptbx_include = os.path.dirname(env_etc.omptbx_dist)
+
+ env = env_base.Clone(
+ SHLINKFLAGS=env_etc.shlinkflags)
++env.Append(SHLINKFLAGS=["-Wl,-soname,libomptbx.so.0.0"])
+ env_etc.include_registry.append(
+ env=env,
+ paths=[env_etc.omptbx_include])
+diff --git a/cctbx_sources/rstbx/SConscript b/cctbx_sources/rstbx/SConscript
+index 2213c2f..cae7542 100644
+--- a/cctbx_sources/rstbx/SConscript
++++ b/cctbx_sources/rstbx/SConscript
+@@ -15,6 +15,7 @@ env_etc.rstbx_common_includes = [
+ ]
+
+ env = env_base.Clone(SHLINKFLAGS=env_etc.shlinkflags)
++env.Append(SHLINKFLAGS=["-Wl,-soname,librstbx.so.0.0"])
+ env.Append(LIBS=["cctbx"] + env_etc.libm)
+ env_etc.include_registry.append(
+ env=env,
+diff --git a/cctbx_sources/scitbx/boost_python/SConscript b/cctbx_sources/scitbx/boost_python/SConscript
+index 6f221d0..c4698d8 100644
+--- a/cctbx_sources/scitbx/boost_python/SConscript
++++ b/cctbx_sources/scitbx/boost_python/SConscript
+@@ -4,6 +4,7 @@ Import("env_scitbx_boost_python_ext")
+ env = env_base.Clone(
+ SHLINKFLAGS=env_etc.shlinkflags)
+ env_etc.enable_more_warnings(env=env)
++env.Append(SHLINKFLAGS=["-Wl,-soname,libscitbx_boost_python.so.0.0"])
+ env.Append(CXXFLAGS=env_etc.cxxflags_bpl_defines_base)
+ env.Append(SHCXXFLAGS=env_etc.cxxflags_bpl_defines_base)
+ env.Append(LIBS=["boost_python"])
+diff --git a/cctbx_sources/scitbx/minpack/SConscript b/cctbx_sources/scitbx/minpack/SConscript
+index 7c325cb..cc23a04 100644
+--- a/cctbx_sources/scitbx/minpack/SConscript
++++ b/cctbx_sources/scitbx/minpack/SConscript
+@@ -3,6 +3,7 @@ Import("env_base", "env_etc")
+ env = env_base.Clone(
+ SHLINKFLAGS=env_etc.shlinkflags)
+ env_etc.enable_more_warnings(env=env)
++env.Append(SHLINKFLAGS=["-Wl,-soname,libscitbx_minipack.so.0.0"])
+ env_etc.include_registry.append(
+ env=env,
+ paths=env_etc.scitbx_common_includes)
+diff --git a/cctbx_sources/scitbx/slatec/SConscript b/cctbx_sources/scitbx/slatec/SConscript
+index ca9b6da..9c79d47 100644
+--- a/cctbx_sources/scitbx/slatec/SConscript
++++ b/cctbx_sources/scitbx/slatec/SConscript
+@@ -3,6 +3,7 @@ Import("env_base", "env_etc")
+ env = env_base.Clone(
+ SHLINKFLAGS=env_etc.shlinkflags)
+ env_etc.enable_more_warnings(env=env)
++env.Append(SHLINKFLAGS=["-Wl,-soname,libscitbx_slatec.so.0.0"])
+ env.Append(LIBS=env_etc.libm)
+ if (env_etc.static_libraries): builder = env.StaticLibrary
+ else: builder = env.SharedLibrary