Python patches and fix for implicit declaration (gone upstream)
authorJustin Lecher <jlec@gentoo.org>
Tue, 13 Jul 2010 07:36:22 +0000 (07:36 +0000)
committerJustin Lecher <jlec@gentoo.org>
Tue, 13 Jul 2010 07:36:22 +0000 (07:36 +0000)
Package-Manager: portage-2.2_rc67/cvs/Linux x86_64

sci-chemistry/ccpn/ChangeLog
sci-chemistry/ccpn/Manifest
sci-chemistry/ccpn/ccpn-2.1.3.1_p100713.ebuild [new file with mode: 0644]
sci-chemistry/ccpn/files/2.1.2_1-parallel.patch [deleted file]
sci-chemistry/ccpn/files/2.1.3-dynamics.patch [deleted file]
sci-chemistry/ccpn/files/2.1.3-parallel.patch [deleted file]
sci-chemistry/ccpn/files/2.1.3_1-impl-dec.patch [new file with mode: 0644]

index 1d06cc69f964cf18be0c3ef8089ad56b7df15795..7b64dc98ba9d5a13fbcf91cdf88cd7f150979d3f 100644 (file)
@@ -1,6 +1,14 @@
 # ChangeLog for sci-chemistry/ccpn
 # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ccpn/ChangeLog,v 1.30 2010/06/28 06:27:26 jlec Exp $
+# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ccpn/ChangeLog,v 1.31 2010/07/13 07:36:22 jlec Exp $
+
+*ccpn-2.1.3.1_p100713 (13 Jul 2010)
+
+  13 Jul 2010; Justin Lecher <jlec@gentoo.org>
+  -files/2.1.2_1-parallel.patch, +ccpn-2.1.3.1_p100713.ebuild,
+  -files/2.1.3-dynamics.patch, -files/2.1.3-parallel.patch,
+  +files/2.1.3_1-impl-dec.patch:
+  Python patches and fix for implicit declaration (gone upstream)
 
 *ccpn-2.1.3.1_p100628 (28 Jun 2010)
 
index 7997be4d1d543e64d357d3b41020b5ec482dc666..dc75528b4f1da51514ea601d4b54c392266a54d9 100644 (file)
@@ -1,10 +1,8 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-AUX 2.1.2_1-parallel.patch 490 RMD160 73b6c601950c9c83f8f3d3dd204db23ab9a60567 SHA1 676774362a3b5a2ecd2083cac09d3f73b38aeab0 SHA256 60f1b33d80545b97e32f8cbd5c01cd67824b9d3adf12cf2adceb197850d01d24
-AUX 2.1.3-dynamics.patch 1271 RMD160 3ce267fbe9b2f68bc9ae6936b74ba74b5976c966 SHA1 8a0a7b0c669ffc8b42982d97ecce22f537e4850f SHA256 f3bcc43c6334d89abf054d6031e74bd3e14b1e421d712ea68e10bee1cd77b27b
-AUX 2.1.3-parallel.patch 1158 RMD160 b9135a8f529374310e9a521fc1ac3c5bb96d3443 SHA1 fc94deb1d4978493abaef33178888f7d2d12076f SHA256 a7e5a741a98236d753fe32a28cd341583c9f9c08997bcf4924f4ff7f033e0f6a
 AUX 2.1.3_1-dynamics.patch 825 RMD160 1941257b998a1063c4a7cce796bdf67415a0380f SHA1 d76089c3280906507c29af9307d35aabce1cd01b SHA256 53577b6f9621a707b1b5d676d57ed16f3963f3172598d944b823133908226edb
+AUX 2.1.3_1-impl-dec.patch 2818 RMD160 182cb26478750711916c73b7f9ba5e0caeb30bde SHA1 078fee172d7b9cf9f6bd653b53c87351b4625aba SHA256 f175a1b4a9cc4f1636bf36928883d37a266af830234aa3d7676f4fe4f7f1ddd8
 AUX 2.1.3_1-parallel.patch 577 RMD160 8bafa14bec766aaca0e55f33f9b51f10f5f29c43 SHA1 e95891313f669e0908374aa98a725596140150cf SHA256 7e650ef2fa1ff0626349affdf1bc9578fe1da3b8cee7dd9125d33a2164978b69
 AUX analysis 290 RMD160 0615c926527a59cbcafd2084680bd491f55c6295 SHA1 03ed24715a97f96857026ca018c141ad3e685301 SHA256 ce472f49720fe6ed1f217c519ad66eb5921e64e0d4d002683dc516846b99c30d
 AUX dangle 286 RMD160 b0e6b5162b8940f129debfd006fba635b6d250e9 SHA1 d83cf9ee0940ff3d7c62270d8a79384b4e49f7af SHA256 3913f3ea1638638b76997ce02320bde74d279b3391d177e11d11678bfee9da08
@@ -18,16 +16,18 @@ DIST ccpn-update-100216.patch.bz2 37914 RMD160 92d2845f9a21a5ddc9fd71cf56928b61f
 DIST ccpn-update-100519.patch.bz2 136871 RMD160 34e91278eaa0f29eaca569033a3960440060b729 SHA1 32a6647b8e166748c539e990c0b2d1b21b995a23 SHA256 69f8d647ab0bb7d6d7fbc6f8a23b8164d97916dcef3b0b50137902084ad2b99e
 DIST ccpn-update-100607.patch.bz2 148229 RMD160 5154191926916e592ae3f3bede35937b93ec33be SHA1 0035824a5901276ba9b0d2efeee5e30d88264d32 SHA256 d9ed5dc5c56ea1f65a6e8d567d177a6ed5733d1281cb798e8e4c00f066f86821
 DIST ccpn-update-100628.patch.bz2 171691 RMD160 a7cd100c5fa5a3d5d3bda8eb7c5ef813e5a4c476 SHA1 c975d3f1125eca2983e558780e63d400f17fb341 SHA256 aec560829b43d1f4d9facc8a13f54c0e47799f21d67aceb05be30aeb647d9c15
+DIST ccpn-update-100713.patch.bz2 187527 RMD160 cc99e2dbe26073b572fd238d76d37c0ff9ced5a1 SHA1 6017a3fe5551a3634a53f5c944f548784f2d24ff SHA256 067e17290c296c93a7759e6d2951c6f3ab8055db314082008b46403e4d0ae9e2
 EBUILD ccpn-2.1.2.1_p100216.ebuild 4880 RMD160 e892baef0d74df30f40e5b393c893159bd08dda5 SHA1 e1a7a09588aa2f4e341e5d94f5260072dab10474 SHA256 7777534b663f05898cf40cc1f7114b2a6de38343fe5ab31f14d4c4c4f2456c47
 EBUILD ccpn-2.1.3.1_p100519.ebuild 5137 RMD160 a1e3bf959be4d0b0738fd49145470f41119c1137 SHA1 3f9d0195056fe4608f086ec51bf8ce594d4c947c SHA256 cc3dc5bcc874f45b75016276f81b2e771197b3bf3eb187d6c95953fddf5847d5
 EBUILD ccpn-2.1.3.1_p100607.ebuild 5137 RMD160 afa602fe700c230b52ddb64ac25a7a843efefa0b SHA1 fbefd8b8b7c2decc29992c55466e90cf3c93777e SHA256 81162c3e317b78d2d5206c8c03cb141c7641826864890b73d54c94c9654771a2
 EBUILD ccpn-2.1.3.1_p100628.ebuild 5137 RMD160 0b0e76b148209bb42e4e52bc67cae3a333264528 SHA1 30030425d79c300789db4f40627fe63318991b81 SHA256 9636d7213b9077a36c3a2e6bd0e29dac6d36789e9940b5965f87b0473e35c8a8
-MISC ChangeLog 5214 RMD160 e1f4cf927a31bb5b37ee632901850e397ee018b5 SHA1 821e594d5b3f646b15fe0334472a5820415bba47 SHA256 293e21c01d0c1e49cd1ff912c8e7e20c82a12bbf7afdeb2e4001cf9ecf1fa043
+EBUILD ccpn-2.1.3.1_p100713.ebuild 5183 RMD160 f94cbe794b34d9c15494f9b06bd1ce1ce530a406 SHA1 b2c73b11ad94ed917d3f4f335051242eff78a894 SHA256 71154074824601ce6ad3213047196ea8e55bd13dd289bf081e95b58e592f965d
+MISC ChangeLog 5521 RMD160 d86d215f4e064cbae224d7f94616d1b02c4d0af7 SHA1 fd615b1e9ae2b37e270acc158d668c5d31b1a967 SHA256 c6eafab7114866b66ffaccf9d5ceb00ceb1f29ea175a31f9882db69f41ea437a
 MISC metadata.xml 226 RMD160 0355d90bd8d1c106a19b136045ebdf970a0a2485 SHA1 1db0b2a470657641079d6613829df49a5c043ed6 SHA256 094a3ac740c81b9afbff3c855ba93cc20a593cad2392f6f4404715608a836fa1
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.15 (GNU/Linux)
 
-iEYEARECAAYFAkwoQNUACgkQgAnW8HDreRYzFgCgmT/60x4Cx+2zvYj+3NKBMeC5
-ZIQAoKCJG4DjTzCdMys5uoJ2JdypHBcD
-=MHBB
+iEYEARECAAYFAkw8F3wACgkQgAnW8HDreRbe2wCZAbjgdTeVShw0WoGFGul3tDV2
+I1cAoKYu6lnyoSp1oL67xPYPyEhPKcuG
+=cjWh
 -----END PGP SIGNATURE-----
diff --git a/sci-chemistry/ccpn/ccpn-2.1.3.1_p100713.ebuild b/sci-chemistry/ccpn/ccpn-2.1.3.1_p100713.ebuild
new file mode 100644 (file)
index 0000000..39a62fb
--- /dev/null
@@ -0,0 +1,187 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ccpn/ccpn-2.1.3.1_p100713.ebuild,v 1.1 2010/07/13 07:36:22 jlec Exp $
+
+EAPI="3"
+PYTHON_DEPEND="2:2.5"
+SUPPORT_PYTHON_ABIS="1"
+PYTHON_USE_WITH="ssl tk"
+
+inherit eutils portability python toolchain-funcs versionator
+
+PATCHSET="${PV##*_p}"
+MY_PN="${PN}mr"
+MY_PV="$(replace_version_separator 3 _ ${PV%%_p*})"
+
+DESCRIPTION="The Collaborative Computing Project for NMR"
+SRC_URI="http://www.bio.cam.ac.uk/ccpn/download/${MY_PN}/analysis${MY_PV}.tar.gz"
+       [[ -n ${PATCHSET} ]] && SRC_URI="${SRC_URI}     http://dev.gentoo.org/~jlec/distfiles/ccpn-update-${PATCHSET}.patch.bz2"
+HOMEPAGE="http://www.ccpn.ac.uk/ccpn"
+
+SLOT="0"
+LICENSE="|| ( CCPN LGPL-2.1 )"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+opengl"
+
+RDEPEND="
+       dev-lang/tk
+       dev-python/numpy
+       dev-tcltk/tix
+       x11-libs/libXext
+       x11-libs/libX11
+       opengl? ( virtual/glut )"
+DEPEND="${RDEPEND}"
+RESTRICT_PYTHON_ABIS="2.4 3.*"
+
+RESTRICT="mirror"
+S="${WORKDIR}"/${MY_PN}/${MY_PN}$(get_version_component_range 1-2 ${PV})
+
+src_prepare() {
+       [[ -n ${PATCHSET} ]] && \
+               epatch "${WORKDIR}"/ccpn-update-${PATCHSET}.patch
+
+       epatch "${FILESDIR}"/${MY_PV}-parallel.patch
+       epatch "${FILESDIR}"/${MY_PV}-dynamics.patch
+       epatch "${FILESDIR}"/${MY_PV}-impl-dec.patch
+
+       local tk_ver
+       local myconf
+
+       tk_ver="$(best_version dev-lang/tk | cut -d- -f3 | cut -d. -f1,2)"
+
+       if use opengl; then
+               GLUT_NEED_INIT="-DNEED_GLUT_INIT"
+               IGNORE_GL_FLAG=""
+               GL_FLAG="-DUSE_GL_FALSE"
+               GL_DIR="${EPREFIX}/usr"
+               GL_LIB="-lglut -lGLU -lGL"
+               GL_INCLUDE_FLAGS="-I\$(GL_DIR)/include"
+               GL_LIB_FLAGS="-L\$(GL_DIR)/$(get_libdir)"
+
+       else
+               IGNORE_GL_FLAG="-DIGNORE_GL"
+               GL_FLAG="-DUSE_GL_FALSE"
+       fi
+
+       GLUT_NOT_IN_GL=""
+       GLUT_FLAG="\$(GLUT_NEED_INIT) \$(GLUT_NOT_IN_GL)"
+
+       python_copy_sources
+
+       preparation() {
+               sed \
+                       -e "s:/usr:${EPREFIX}/usr:g" \
+                       -e "s:^\(CC =\).*:\1 $(tc-getCC):g" \
+                       -e "s:^\(OPT_FLAG =\).*:\1 ${CFLAGS}:g" \
+                       -e "s:^\(LINK_FLAGS =.*\):\1 ${LDFLAGS}:g" \
+                       -e "s:^\(IGNORE_GL_FLAG =\).*:\1 ${IGNORE_GL_FLAG}:g" \
+                       -e "s:^\(GL_FLAG =\).*:\1 ${GL_FLAG}:g" \
+                       -e "s:^\(GL_DIR =\).*:\1 ${GL_DIR}:g" \
+                       -e "s:^\(GL_LIB =\).*:\1 ${GL_LIB}:g" \
+                       -e "s:^\(GL_LIB_FLAGS =\).*:\1 ${GL_LIB_FLAGS}:g" \
+                       -e "s:^\(GL_INCLUDE_FLAGS =\).*:\1 ${GL_INCLUDE_FLAGS}:g" \
+                       -e "s:^\(GLUT_NEED_INIT =\).*:\1 ${GLUT_NEED_INIT}:g" \
+                       -e "s:^\(GLUT_NOT_IN_GL =\).*:\1:g" \
+                       -e "s:^\(X11_LIB_FLAGS =\).*:\1 -L${EPREFIX}/usr/$(get_libdir):g" \
+                       -e "s:^\(TCL_LIB_FLAGS =\).*:\1 -L${EPREFIX}/usr/$(get_libdir):g" \
+                       -e "s:^\(TK_LIB_FLAGS =\).*:\1 -L${EPREFIX}/usr/$(get_libdir):g" \
+                       -e "s:^\(PYTHON_INCLUDE_FLAGS =\).*:\1 -I\$(PYTHON_DIR)/include/python$(python_get_version):g" \
+                       -e "s:^\(PYTHON_LIB =\).*:\1 -lpython$(python_get_version):g" \
+                       c/environment_default.txt > c/environment.txt
+       }
+       python_execute_function -s preparation
+}
+
+src_compile() {
+       building() {
+               emake -C c all links
+       }
+       python_execute_function -s building
+}
+
+src_install() {
+       local libdir
+       local tkver
+
+       libdir=$(get_libdir)
+       tkver=$(best_version dev-lang/tk | cut -d- -f3 | cut -d. -f1,2)
+
+       for wrapper in analysis dangle dataShifter eci formatConverter pipe2azara; do
+               sed -e "s:gentoo_sitedir:${EPREFIX}/$(python_get_sitedir -f):g" \
+                   -e "s:gentoolibdir:${EPREFIX}/usr/${libdir}:g" \
+                       -e "s:gentootk:${EPREFIX}/usr/${libdir}/tk${tkver}:g" \
+                       -e "s:gentootcl:${EPREFIX}/usr/${libdir}/tclk${tkver}:g" \
+                       -e "s:gentoopython:${EPREFIX}/usr/bin/python:g" \
+                   "${FILESDIR}"/${wrapper} > "${T}"/${wrapper} || die "Fail fix ${wrapper}"
+               dobin "${T}"/${wrapper} || die "Failed to install ${wrapper}"
+       done
+
+       installation() {
+               local in_path
+               local files
+
+               in_path=$(python_get_sitedir)/${PN}
+
+               for i in python/memops/format/compatibility/{Converters,part2/Converters2}.py; do
+                       sed \
+                               -e 's:#from __future__:from __future__:g' \
+                               -i ${i}
+               done
+
+               insinto ${in_path}
+
+               dodir ${in_path}/c
+
+               ebegin "Installing main files"
+               doins -r data model python || die "main files installation failed"
+               eend
+
+               dohtml -r doc/* || die
+               dosym ../../../../share/doc/${PF}/html ${in_path}/doc || die
+
+               einfo "Adjusting permissions"
+
+               files="ccpnmr/c/ContourFile.so
+                       ccpnmr/c/ContourLevels.so
+                       ccpnmr/c/ContourStyle.so
+                       ccpnmr/c/PeakList.so
+                       ccpnmr/c/SliceFile.so
+                       ccpnmr/c/WinPeakList.so
+                       ccpnmr/c/AtomCoordList.so
+                       ccpnmr/c/AtomCoord.so
+                       ccpnmr/c/Bacus.so
+                       ccpnmr/c/CloudUtil.so
+                       ccpnmr/c/DistConstraintList.so
+                       ccpnmr/c/DistConstraint.so
+                       ccpnmr/c/DistForce.so
+                       ccpnmr/c/Dynamics.so
+                       ccpnmr/c/Midge.so
+                       ccp/c/StructAtom.so
+                       ccp/c/StructBond.so
+                       ccp/c/StructStructure.so
+                       ccp/c/StructUtil.so
+                       memops/c/BlockFile.so
+                       memops/c/FitMethod.so
+                       memops/c/GlHandler.so
+                       memops/c/MemCache.so
+                       memops/c/PdfHandler.so
+                       memops/c/PsHandler.so
+                       memops/c/ShapeFile.so
+                       memops/c/StoreFile.so
+                       memops/c/StoreHandler.so
+                       memops/c/TkHandler.so"
+
+               for FILE in ${files}; do
+                       fperms 755 ${in_path}/python/${FILE}
+               done
+       }
+       python_execute_function -s installation
+}
+
+pkg_postinst() {
+       python_mod_optimize ${PN}
+}
+
+pkg_postrm() {
+       python_mod_cleanup ${PN}
+}
diff --git a/sci-chemistry/ccpn/files/2.1.2_1-parallel.patch b/sci-chemistry/ccpn/files/2.1.2_1-parallel.patch
deleted file mode 100644 (file)
index 3b1917d..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/ccpnmr2.1/c/Makefile b/ccpnmr2.1/c/Makefile
-index 2208c06..71a87c9 100644
---- a/ccpnmr2.1/c/Makefile
-+++ b/ccpnmr2.1/c/Makefile
-@@ -7,13 +7,13 @@ compile: global structure analysis clouds
- global:
-       cd memops/global && $(MAKE)
- 
--structure:
-+structure: global
-       cd ccp/structure && $(MAKE)
- 
--analysis:
-+analysis: global
-       cd ccpnmr/analysis && $(MAKE)
- 
--clouds:
-+clouds: global
-       cd ccpnmr/clouds && $(MAKE)
- 
- clean: global_clean structure_clean analysis_clean clouds_clean
diff --git a/sci-chemistry/ccpn/files/2.1.3-dynamics.patch b/sci-chemistry/ccpn/files/2.1.3-dynamics.patch
deleted file mode 100644 (file)
index 89c36d4..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/ccpnmr2.1/python/ccpnmr/c/linkSharedObjs b/ccpnmr2.1/python/ccpnmr/c/linkSharedObjs
-index 8f56168..093bbe8 100755
---- a/ccpnmr2.1/python/ccpnmr/c/linkSharedObjs
-+++ b/ccpnmr2.1/python/ccpnmr/c/linkSharedObjs
-@@ -5,7 +5,6 @@ ln -s ../../../c/ccpnmr/analysis/ContourFile.so ContourFile.so
- ln -s ../../../c/ccpnmr/analysis/ContourLevels.so ContourLevels.so
- ln -s ../../../c/ccpnmr/analysis/ContourStyle.so ContourStyle.so
- ln -s ../../../c/ccpnmr/analysis/PeakCluster.so PeakCluster.so
--ln -s ../../../c/ccpnmr/analysis/PeakClusterList.so PeakClusterList.so
- ln -s ../../../c/ccpnmr/analysis/PeakList.so PeakList.so
- ln -s ../../../c/ccpnmr/analysis/SliceFile.so SliceFile.so
- ln -s ../../../c/ccpnmr/analysis/WinPeakList.so WinPeakList.so
-@@ -18,9 +17,3 @@ ln -s ../../../c/ccpnmr/clouds/DistForce.so .
- ln -s ../../../c/ccpnmr/clouds/Dynamics.so .
- ln -s ../../../c/ccpnmr/clouds/Midge.so .
- ln -s ../../../c/ccpnmr/clouds/Bacus.so .
--ln -s ../../../c/ccpnmr/dynamics/DyAtomCoord.so .
--ln -s ../../../c/ccpnmr/dynamics/DyAtomCoordList.so .
--ln -s ../../../c/ccpnmr/dynamics/DyDistConstraint.so .
--ln -s ../../../c/ccpnmr/dynamics/DyDistConstraintList.so .
--ln -s ../../../c/ccpnmr/dynamics/DyDistForce.so .
--ln -s ../../../c/ccpnmr/dynamics/DyDynamics.so .
diff --git a/sci-chemistry/ccpn/files/2.1.3-parallel.patch b/sci-chemistry/ccpn/files/2.1.3-parallel.patch
deleted file mode 100644 (file)
index 83ee505..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-diff --git a/ccpnmr2.1/c/Makefile b/ccpnmr2.1/c/Makefile
-index 9fa8500..a99a677 100644
---- a/ccpnmr2.1/c/Makefile
-+++ b/ccpnmr2.1/c/Makefile
-@@ -2,23 +2,20 @@ include environment.txt
- 
- all: compile
- 
--compile: global structure analysis clouds dynamics
-+compile: global structure analysis clouds
- 
- global:
-       cd memops/global && $(MAKE)
- 
--structure:
-+structure: global
-       cd ccp/structure && $(MAKE)
- 
--analysis:
-+analysis: global
-       cd ccpnmr/analysis && $(MAKE)
- 
--clouds:
-+clouds: global
-       cd ccpnmr/clouds && $(MAKE)
- 
--dynamics:
--      cd ccpnmr/dynamics && $(MAKE)
--
- clean: global_clean structure_clean analysis_clean clouds_clean dynamics_clean
- 
- global_clean:
-@@ -33,9 +30,6 @@ analysis_clean:
- clouds_clean:
-       cd ccpnmr/clouds && $(MAKE) clean
- 
--dynamics_clean:
--      cd ccpnmr/dynamics && $(MAKE) clean
--
- realclean: global_realclean structure_realclean analysis_realclean clouds_realclean dynamics_realclean
- 
- global_realclean:
-@@ -50,9 +44,6 @@ analysis_realclean:
- clouds_realclean:
-       cd ccpnmr/clouds && $(MAKE) realclean
- 
--dynamics_realclean:
--      cd ccpnmr/dynamics && $(MAKE) realclean
--
- links: memops_links ccp_links ccpnmr_links
- 
- memops_links:
diff --git a/sci-chemistry/ccpn/files/2.1.3_1-impl-dec.patch b/sci-chemistry/ccpn/files/2.1.3_1-impl-dec.patch
new file mode 100644 (file)
index 0000000..a895032
--- /dev/null
@@ -0,0 +1,72 @@
+diff --git a/ccpnmr2.1/c/ccpnmr/analysis/py_slice_file.c b/ccpnmr2.1/c/ccpnmr/analysis/py_slice_file.c
+index 451b32a..2f37c34 100644
+--- a/ccpnmr2.1/c/ccpnmr/analysis/py_slice_file.c
++++ b/ccpnmr2.1/c/ccpnmr/analysis/py_slice_file.c
+@@ -46,6 +46,7 @@ Development of a Software Pipeline. Proteins 59, 687 - 696.
+ ===========================REFERENCE END===============================
+ */
+ #include "py_slice_file.h"
++#include "utility.h"
+ 
+ #include "py_block_file.h"
+ #include "py_draw_handler.h"
+diff --git a/ccpnmr2.1/c/memops/global/gl_handler.c b/ccpnmr2.1/c/memops/global/gl_handler.c
+index 48a6a34..278134f 100644
+--- a/ccpnmr2.1/c/memops/global/gl_handler.c
++++ b/ccpnmr2.1/c/memops/global/gl_handler.c
+@@ -46,6 +46,7 @@ Development of a Software Pipeline. Proteins 59, 687 - 696.
+ ===========================REFERENCE END===============================
+ */
+ #include "gl_handler.h"
++#include "utility.h"
+ 
+ #ifndef IGNORE_GL
+ 
+diff --git a/ccpnmr2.1/c/memops/global/py_block_file.c b/ccpnmr2.1/c/memops/global/py_block_file.c
+index 0d3f863..2f2b0f4 100644
+--- a/ccpnmr2.1/c/memops/global/py_block_file.c
++++ b/ccpnmr2.1/c/memops/global/py_block_file.c
+@@ -49,6 +49,7 @@ Development of a Software Pipeline. Proteins 59, 687 - 696.
+ 
+ #include "py_mem_cache.h"
+ #include "python_util.h"
++#include "utility.h"
+ 
+ static PyObject *ErrorObject;   /* locally-raised exception */
+ 
+diff --git a/ccpnmr2.1/c/memops/global/py_draw_handler.c b/ccpnmr2.1/c/memops/global/py_draw_handler.c
+index 0d354d1..1d0ec59 100644
+--- a/ccpnmr2.1/c/memops/global/py_draw_handler.c
++++ b/ccpnmr2.1/c/memops/global/py_draw_handler.c
+@@ -46,6 +46,7 @@ Development of a Software Pipeline. Proteins 59, 687 - 696.
+ ===========================REFERENCE END===============================
+ */
+ #include "py_draw_handler.h"
++#include "utility.h"
+ 
+ #ifndef IGNORE_GL
+ #include "py_gl_handler.h"
+diff --git a/ccpnmr2.1/c/memops/global/py_shape_file.c b/ccpnmr2.1/c/memops/global/py_shape_file.c
+index 32673f5..0e62683 100644
+--- a/ccpnmr2.1/c/memops/global/py_shape_file.c
++++ b/ccpnmr2.1/c/memops/global/py_shape_file.c
+@@ -46,6 +46,7 @@ Development of a Software Pipeline. Proteins 59, 687 - 696.
+ ===========================REFERENCE END===============================
+ */
+ #include "py_shape_file.h"
++#include "utility.h"
+ 
+ #include "py_mem_cache.h"
+ #include "python_util.h"
+diff --git a/ccpnmr2.1/c/memops/global/py_store_file.c b/ccpnmr2.1/c/memops/global/py_store_file.c
+index 6a66a8c..8fa5973 100644
+--- a/ccpnmr2.1/c/memops/global/py_store_file.c
++++ b/ccpnmr2.1/c/memops/global/py_store_file.c
+@@ -46,6 +46,7 @@ Development of a Software Pipeline. Proteins 59, 687 - 696.
+ ===========================REFERENCE END===============================
+ */
+ #include "py_store_file.h"
++#include "utility.h"
+ 
+ #include "python_util.h"
+