diff options
author | Pacho Ramos <pacho@gentoo.org> | 2021-01-13 20:05:06 +0100 |
---|---|---|
committer | Pacho Ramos <pacho@gentoo.org> | 2021-01-13 20:11:11 +0100 |
commit | 85e6d34ad04bc76ea9a8f9fa04eb46af9ebf433d (patch) | |
tree | 41549d97f8b2e3a935f36dddb280ae4919efe9f1 /sci-chemistry | |
parent | dev-python/voluptuous: Stabilize 0.12.1 ALLARCHES, #765319 (diff) | |
download | gentoo-85e6d34ad04bc76ea9a8f9fa04eb46af9ebf433d.tar.gz gentoo-85e6d34ad04bc76ea9a8f9fa04eb46af9ebf433d.tar.bz2 gentoo-85e6d34ad04bc76ea9a8f9fa04eb46af9ebf433d.zip |
sci-chemistry/pymol: Fix netcdf handling
Also fix upstream bug and use xdg.eclass to not need to redefine every pkg_
phase
Closes: https://bugs.gentoo.org/757798
Thanks-to: Soren Harward
Package-Manager: Portage-3.0.13, Repoman-3.0.2
Signed-off-by: Pacho Ramos <pacho@gentoo.org>
Diffstat (limited to 'sci-chemistry')
-rw-r--r-- | sci-chemistry/pymol/files/pymol-2.4.0-fix_bug119.patch | 34 | ||||
-rw-r--r-- | sci-chemistry/pymol/pymol-2.4.0-r1.ebuild | 117 |
2 files changed, 151 insertions, 0 deletions
diff --git a/sci-chemistry/pymol/files/pymol-2.4.0-fix_bug119.patch b/sci-chemistry/pymol/files/pymol-2.4.0-fix_bug119.patch new file mode 100644 index 000000000000..62512053fd71 --- /dev/null +++ b/sci-chemistry/pymol/files/pymol-2.4.0-fix_bug119.patch @@ -0,0 +1,34 @@ +From 885891cf60371674406cdff16b395e25cc13d8ae Mon Sep 17 00:00:00 2001 +From: Sebastian Keller <sebastian-keller@gmx.de> +Date: Tue, 28 Jul 2020 22:50:53 +0200 +Subject: [PATCH] Don't drop the last model when updating the selector table + +The last assigned model in the Obj vector was at position modelCnt. +Resizing the vector to modelCnt removes the last model, which later +results in a crash when trying to access it. + +See https://github.com/schrodinger/pymol-open-source/issues/119 +--- + layer3/Selector.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/layer3/Selector.cpp b/layer3/Selector.cpp +index 546725b..637cd60 100644 +--- a/layer3/Selector.cpp ++++ b/layer3/Selector.cpp +@@ -7284,11 +7284,11 @@ static sele_array_t SelectorUpdateTableSingleObject(PyMOLGlobals * G, ObjectMole + result[obj->SeleBase + at] = tag; + } + } + } + } +- I->Obj.resize(modelCnt); ++ I->Obj.resize(modelCnt + 1); + I->Table.resize(c); + + PRINTFD(G, FB_Selector) + "SelectorUpdateTableSingleObject-Debug: leaving...\n" ENDFD; + +-- +libgit2 1.0.1 + diff --git a/sci-chemistry/pymol/pymol-2.4.0-r1.ebuild b/sci-chemistry/pymol/pymol-2.4.0-r1.ebuild new file mode 100644 index 000000000000..540097824ec7 --- /dev/null +++ b/sci-chemistry/pymol/pymol-2.4.0-r1.ebuild @@ -0,0 +1,117 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6..9} ) +DISTUTILS_USE_SETUPTOOLS=no + +inherit distutils-r1 desktop optfeature flag-o-matic xdg + +DESCRIPTION="A Python-extensible molecular graphics system" +HOMEPAGE="https://www.pymol.org/" +SRC_URI=" + https://dev.gentoo.org/~jlec/distfiles/${PN}-1.8.4.0.png.xz + https://github.com/schrodinger/pymol-open-source/archive/v${PV}.tar.gz -> ${P}.tar.gz + " +RESTRICT="mirror" +LICENSE="PSF-2.2" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x64-macos" +IUSE="+netcdf web" + +DEPEND=" + dev-libs/msgpack[cxx] + dev-libs/mmtf-cpp + dev-python/pyopengl[${PYTHON_USEDEP}] + dev-python/PyQt5[opengl,${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pmw[${PYTHON_USEDEP}] + media-libs/freetype:2 + media-libs/glew:0= + media-libs/glm + media-libs/libpng:0= + media-video/mpeg-tools + sys-libs/zlib + netcdf? ( sci-libs/netcdf:0= ) +" +RDEPEND="${DEPEND} + sci-chemistry/chemical-mime-data +" + +S="${WORKDIR}"/${PN}-open-source-${PV} + +PATCHES=( + # https://github.com/schrodinger/pymol-open-source/issues/119 + "${FILESDIR}/${P}-fix_bug119.patch" +) + +python_prepare_all() { + sed \ + -e "s:\"/usr:\"${EPREFIX}/usr:g" \ + -e "/ext_comp_args.*+=/s:\[.*\]$:\[\]:g" \ + -e "/import/s:argparse:argparseX:g" \ + -i setup.py || die + + sed \ + -e "s:/opt/local:${EPREFIX}/usr:g" \ + -e '/ext_comp_args/s:\[.*\]:[]:g' \ + -i setup.py || die + sed \ + -e "s:\['msgpackc'\]:\['msgpack'\]:g" \ + -i setup.py || die + + append-cxxflags -std=c++0x + + use !netcdf && mydistutilsargs=( --no-vmd-plugins ) + + distutils-r1_python_prepare_all +} + +python_install() { + distutils-r1_python_install \ + --pymol-path="${EPREFIX}/usr/share/pymol" + + sed \ + -e '1d' \ + -e "/APBS_BINARY_LOCATION/s:None:\"${EPREFIX}/usr/bin/apbs\":g" \ + -e "/APBS_PSIZE_LOCATION/s:None:\"$(python_get_sitedir)/pdb2pqr/src/\":g" \ + -e "/APBS_PDB2PQR_LOCATION/s:None:\"$(python_get_sitedir)/pdb2pqr/\":g" \ + -i "${D}/$(python_get_sitedir)"/pmg_tk/startup/apbs_tools.py || die +} + +python_install_all() { + distutils-r1_python_install_all + + sed \ + -e '1i#!/usr/bin/env python' \ + "${D}/$(python_get_sitedir)"/pymol/__init__.py > "${T}"/${PN} || die + + python_foreach_impl python_doscript "${T}"/${PN} + + # These environment variables should not go in the wrapper script, or else + # it will be impossible to use the PyMOL libraries from Python. + cat >> "${T}"/20pymol <<- EOF || die + PYMOL_PATH="${EPREFIX}/usr/share/pymol" + PYMOL_DATA="${EPREFIX}/usr/share/pymol/data" + PYMOL_SCRIPTS="${EPREFIX}/usr/share/pymol/scripts" + EOF + + doenvd "${T}"/20pymol + + newicon "${WORKDIR}"/${PN}-1.8.4.0.png ${PN}.png + make_desktop_entry ${PN} PyMol ${PN} \ + "Graphics;Education;Science;Chemistry;" \ + "MimeType=chemical/x-pdb;chemical/x-mdl-molfile;chemical/x-mol2;chemical/seq-aa-fasta;chemical/seq-na-fasta;chemical/x-xyz;chemical/x-mdl-sdf;" + + if ! use web; then + rm -rf "${D}/$(python_get_sitedir)/web" || die + fi + + rm -f "${ED}"/usr/share/${PN}/LICENSE || die +} + +pkg_postinst() { + xdg_pkg_postinst + optfeature "Electrostatic calculations" sci-chemistry/apbs sci-chemistry/pdb2pqr +} |