diff options
author | Pacho Ramos <pacho@gentoo.org> | 2023-07-20 10:01:11 +0200 |
---|---|---|
committer | Pacho Ramos <pacho@gentoo.org> | 2023-07-20 10:01:11 +0200 |
commit | e7319a218c29e15bae4b0dd617db10d286adfef6 (patch) | |
tree | e009d505aba6fd2e791adc9f5cf80c4fe86d0eb4 /sci-chemistry/pymol | |
parent | x11-misc/meteo: add 0.9.9.2 (diff) | |
download | gentoo-e7319a218c29e15bae4b0dd617db10d286adfef6.tar.gz gentoo-e7319a218c29e15bae4b0dd617db10d286adfef6.tar.bz2 gentoo-e7319a218c29e15bae4b0dd617db10d286adfef6.zip |
sci-chemistry/pymol: Use PEP517 build
Closes: https://bugs.gentoo.org/910021
Signed-off-by: Pacho Ramos <pacho@gentoo.org>
Diffstat (limited to 'sci-chemistry/pymol')
-rw-r--r-- | sci-chemistry/pymol/files/pymol-2.5.0-format-security.patch | 15 | ||||
-rw-r--r-- | sci-chemistry/pymol/pymol-2.5.0-r4.ebuild | 108 |
2 files changed, 123 insertions, 0 deletions
diff --git a/sci-chemistry/pymol/files/pymol-2.5.0-format-security.patch b/sci-chemistry/pymol/files/pymol-2.5.0-format-security.patch new file mode 100644 index 000000000000..080e5e8960e4 --- /dev/null +++ b/sci-chemistry/pymol/files/pymol-2.5.0-format-security.patch @@ -0,0 +1,15 @@ +Author: Michael Banck <mbanck@debian.org> +Description: Fix "error: format not a string literal and no format arguments [-Werror=format-security]" (#759860) +Forwarded: yes + +--- a/contrib/uiuc/plugins/molfile_plugin/src/maeffplugin.cpp ++++ b/contrib/uiuc/plugins/molfile_plugin/src/maeffplugin.cpp +@@ -2004,7 +2004,7 @@ namespace { + } + } + catch (std::exception &e) { +- fprintf(stderr, "%s", e.what()); ++ fprintf(stderr, "Cannot write timestamp to mae file: %s\n", e.what()); + return MOLFILE_ERROR; + } + return MOLFILE_SUCCESS; diff --git a/sci-chemistry/pymol/pymol-2.5.0-r4.ebuild b/sci-chemistry/pymol/pymol-2.5.0-r4.ebuild new file mode 100644 index 000000000000..0bc61b40744a --- /dev/null +++ b/sci-chemistry/pymol/pymol-2.5.0-r4.ebuild @@ -0,0 +1,108 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) +DISTUTILS_USE_PEP517="setuptools" +DISTUTILS_EXT=1 + +inherit desktop flag-o-matic xdg distutils-r1 + +DESCRIPTION="A Python-extensible molecular graphics system" +HOMEPAGE="https://www.pymol.org/" +SRC_URI=" + https://dev.gentoo.org/~pacho/${PN}/${PN}-1.8.4.0.png.xz + https://github.com/schrodinger/pymol-open-source/archive/v${PV}.tar.gz -> ${P}.tar.gz + " +LICENSE="BitstreamVera BSD freedist HPND OFL public-domain UoI-NCSA" #844991 +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x64-macos" +IUSE="+netcdf web" + +DEPEND=" + dev-cpp/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=( + "${FILESDIR}/${PN}-2.5.0-format-security.patch" +) + +python_prepare_all() { + sed \ + -e "s:\"/usr:\"${EPREFIX}/usr:g" \ + -e "/ext_comp_args.*+=/s:\[.*\]$:\[\]: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 + + distutils-r1_python_prepare_all +} + +python_configure_all() { + use !netcdf && DISTUTILS_ARGS=( --no-vmd-plugins ) +} + +python_install() { + distutils-r1_python_install \ + --pymol-path="${EPREFIX}/usr/share/pymol" + + sed \ + -e '1i#!/usr/bin/env python' \ + "${D}/$(python_get_sitedir)"/pymol/__init__.py > "${T}"/${PN} || die + python_doscript "${T}"/${PN} +} + +python_install_all() { + distutils-r1_python_install_all + + # Move data to correct location + dodir /usr/share/pymol + mv "${D}/$(python_get_sitedir)"/pymol/pymol_path/* "${D}/usr/share/pymol" || die + + # 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} %u" 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 +} |