public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: sci-chemistry/pymol/, sci-chemistry/pymol/files/
@ 2021-01-13 19:11 Pacho Ramos
  0 siblings, 0 replies; 3+ messages in thread
From: Pacho Ramos @ 2021-01-13 19:11 UTC (permalink / raw
  To: gentoo-commits

commit:     85e6d34ad04bc76ea9a8f9fa04eb46af9ebf433d
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 13 19:05:06 2021 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Wed Jan 13 19:11:11 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=85e6d34a

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 <AT> gentoo.org>

 .../pymol/files/pymol-2.4.0-fix_bug119.patch       |  34 ++++++
 sci-chemistry/pymol/pymol-2.4.0-r1.ebuild          | 117 +++++++++++++++++++++
 2 files changed, 151 insertions(+)

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 00000000000..62512053fd7
--- /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 00000000000..540097824ec
--- /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
+}


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sci-chemistry/pymol/, sci-chemistry/pymol/files/
@ 2021-10-24 11:20 David Seifert
  0 siblings, 0 replies; 3+ messages in thread
From: David Seifert @ 2021-10-24 11:20 UTC (permalink / raw
  To: gentoo-commits

commit:     95a31681e14af07ba21add4cdb655fe3211eedeb
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 24 11:20:28 2021 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Oct 24 11:20:28 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=95a31681

sci-chemistry/pymol: drop 2.4.0-r1

Signed-off-by: David Seifert <soap <AT> gentoo.org>

 sci-chemistry/pymol/Manifest                       |   1 -
 .../pymol/files/pymol-2.4.0-fix_bug119.patch       |  34 ------
 sci-chemistry/pymol/pymol-2.4.0-r1.ebuild          | 116 ---------------------
 3 files changed, 151 deletions(-)

diff --git a/sci-chemistry/pymol/Manifest b/sci-chemistry/pymol/Manifest
index dec8f0b1525..2c6723b71c2 100644
--- a/sci-chemistry/pymol/Manifest
+++ b/sci-chemistry/pymol/Manifest
@@ -1,3 +1,2 @@
 DIST pymol-1.8.4.0.png.xz 19528 BLAKE2B f3d23d4cedca3d8bb96b20646a548da4be570697e3346a11b01c5c3599b536ba4697be08472dfa8a4f6533167defc1a37a1de332931a73857319cb28fd42cd2b SHA512 40bb0d3f226476f6e047b5361956aad955232a97641474765eaa5204f0539aee3810e0266213618a45364f9f31f6eb18380b17e0c79f64065f7b62a9016caa7c
-DIST pymol-2.4.0.tar.gz 10552539 BLAKE2B 34e31dce99c1e838b00389c3d7c29657534dd037349769bd6c8cb17028cfaaa856d5729760d3768fd43f61086cac30749a864fb4156c14eda07f9027430f0523 SHA512 2b19294197d58a808bf7bb7fa9f829c2ec582ba47a4380783a2b1eedda2ce4118cd398e01885db8c449e7fd5e4c08a1c40508e679ef42d8e183a6a52b031c02a
 DIST pymol-2.5.0.tar.gz 10470268 BLAKE2B ad3721432001053be93afe755f531ae47348213b042e84dae33cd79580428c9ac3d00629afa0222e4081807dc80e2dd69c3963a457666b5975b6263b988d02d9 SHA512 19f21b8f735fda5314abf202d56f3c81c7251bf6ef0df73ccee534d9c08035f4ef6155ffb68e09d7717a0fb5ba7289bbfa440691bea4cec0de7199c9e858ea91

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
deleted file mode 100644
index 62512053fd7..00000000000
--- a/sci-chemistry/pymol/files/pymol-2.4.0-fix_bug119.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-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
deleted file mode 100644
index c710896747d..00000000000
--- a/sci-chemistry/pymol/pymol-2.4.0-r1.ebuild
+++ /dev/null
@@ -1,116 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{7..9} )
-DISTUTILS_USE_SETUPTOOLS=no
-
-inherit desktop optfeature 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
-	"
-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" \
-		-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
-}


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sci-chemistry/pymol/, sci-chemistry/pymol/files/
@ 2024-09-28 14:50 Pacho Ramos
  0 siblings, 0 replies; 3+ messages in thread
From: Pacho Ramos @ 2024-09-28 14:50 UTC (permalink / raw
  To: gentoo-commits

commit:     5a1dfcc8986e29f5157bc9f706aaeb23307c4b68
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 28 14:42:14 2024 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Sat Sep 28 14:50:45 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5a1dfcc8

sci-chemistry/pymol: Multiple bugfixes

Upstream fixes for multiple bugs, also fixing python 3.12 and numpy2 compat,
and fixing LTO building.

Format-security patch looks to not be needed anymore (at least I couldn't
reproduce the problem). If the problem reappears, please report the bug to
upstream to follow its progress properly.

Use icon from the pymol tarball and update desktop file.

Update ebuild to try to run the tests, but keep them restricted for now as they
keep failing.

Bug: https://bugs.gentoo.org/932127
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>

 .../pymol-3.0.0-SceneGetDrawFlag-indexing.patch    |  22 +++
 .../pymol/files/pymol-3.0.0-distutils-py3.12.patch |  70 ++++++++
 .../pymol/files/pymol-3.0.0-eof-maeffplugin.patch  |  22 +++
 .../files/pymol-3.0.0-lto-molfile-plugin.patch     | 187 +++++++++++++++++++++
 sci-chemistry/pymol/files/pymol-3.0.0-numpy2.patch |  35 ++++
 .../pymol/files/pymol-3.0.0-py3.12-progress.patch  |  26 +++
 sci-chemistry/pymol/pymol-3.0.0-r1.ebuild          | 123 ++++++++++++++
 7 files changed, 485 insertions(+)

diff --git a/sci-chemistry/pymol/files/pymol-3.0.0-SceneGetDrawFlag-indexing.patch b/sci-chemistry/pymol/files/pymol-3.0.0-SceneGetDrawFlag-indexing.patch
new file mode 100644
index 000000000000..c23bf79d6166
--- /dev/null
+++ b/sci-chemistry/pymol/files/pymol-3.0.0-SceneGetDrawFlag-indexing.patch
@@ -0,0 +1,22 @@
+From 50be59fb4bd6706c7939a659f4477041e2f0619e Mon Sep 17 00:00:00 2001
+From: Jarrett Johnson <36459667+JarrettSJohnson@users.noreply.github.com>
+Date: Sat, 6 Apr 2024 22:49:41 -0400
+Subject: [PATCH] PYMOL-4849: Fix SceneGetDrawFlag slot indexing
+
+---
+ layer1/Scene.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/layer1/Scene.cpp b/layer1/Scene.cpp
+index e4888db6d..ed211bdd6 100644
+--- a/layer1/Scene.cpp
++++ b/layer1/Scene.cpp
+@@ -4448,7 +4448,7 @@ int SceneGetDrawFlag(GridInfo * grid, int *slot_vla, int slot)
+       {
+         if(((slot < 0) && grid->slot) ||
+            ((slot == 0) && (grid->slot == 0)) ||
+-           (slot_vla && (slot_vla[slot] == grid->slot))) {
++           (slot_vla && (slot >= 0 && slot_vla[slot] == grid->slot))) {
+           draw_flag = true;
+         }
+       }

diff --git a/sci-chemistry/pymol/files/pymol-3.0.0-distutils-py3.12.patch b/sci-chemistry/pymol/files/pymol-3.0.0-distutils-py3.12.patch
new file mode 100644
index 000000000000..3ab0384bd5f6
--- /dev/null
+++ b/sci-chemistry/pymol/files/pymol-3.0.0-distutils-py3.12.patch
@@ -0,0 +1,70 @@
+From 3d3c8963798d426e70675c3c40df146e12869b0a Mon Sep 17 00:00:00 2001
+From: Branch Vincent <branchevincent@gmail.com>
+Date: Fri, 10 May 2024 22:12:58 -0700
+Subject: [PATCH] replace distutils for python 3.12 (#362)
+
+Co-authored-by: Jarrett Johnson <jarrett.johnson@schrodinger.com>
+---
+ create_shadertext.py                  | 3 +--
+ modules/pymol/plugins/installation.py | 7 +++----
+ testing/tests/system/pymolwin.py      | 1 -
+ 3 files changed, 4 insertions(+), 7 deletions(-)
+
+diff --git a/create_shadertext.py b/create_shadertext.py
+index 7bae72180..f6857087e 100644
+--- a/create_shadertext.py
++++ b/create_shadertext.py
+@@ -7,7 +7,6 @@
+ from collections import defaultdict
+ from os.path import dirname
+ from subprocess import Popen, PIPE
+-from distutils import dir_util
+ 
+ def create_all(generated_dir, pymoldir="."):
+     '''
+@@ -30,7 +29,7 @@ def __init__(self, filename):
+             self.out = cStringIO.StringIO()
+             self.filename = filename
+         else:
+-            dir_util.mkpath(os.path.dirname(filename))
++            os.makedirs(os.path.dirname(filename), exist_ok=True)
+             self.out = open(filename, "w")
+             self.filename = None
+     def close(self):
+diff --git a/modules/pymol/plugins/installation.py b/modules/pymol/plugins/installation.py
+index 3a980545b..2fb8f6f03 100644
+--- a/modules/pymol/plugins/installation.py
++++ b/modules/pymol/plugins/installation.py
+@@ -45,8 +45,6 @@ def cmp_version(v1, v2):
+     '''
+     Compares two version strings. An empty version string is always considered
+     smaller than a non-empty version string.
+-
+-    Uses distutils.version.StrictVersion to evaluate non-empty version strings.
+     '''
+     if v1 == v2:
+         return 0
+@@ -55,8 +53,9 @@ def cmp_version(v1, v2):
+     if v2 == '':
+         return 1
+     try:
+-        from distutils.version import StrictVersion as Version
+-        return cmp(Version(v1), Version(v2))
++        v1_parts = list(map(int, v1.split('.')))
++        v2_parts = list(map(int, v2.split('.')))
++        return (v1_parts > v2_parts) - (v1_parts < v2_parts)
+     except:
+         print(' Warning: Version parsing failed for', v1, 'and/or', v2)
+         return 0
+diff --git a/testing/tests/system/pymolwin.py b/testing/tests/system/pymolwin.py
+index 429fd28aa..e7885bd38 100644
+--- a/testing/tests/system/pymolwin.py
++++ b/testing/tests/system/pymolwin.py
+@@ -7,7 +7,6 @@
+ import subprocess
+ import sys
+ import unittest
+-from distutils.spawn import find_executable
+ from pymol import cmd, CmdException, testing, stored
+ 
+ @unittest.skipIf(not sys.platform.startswith('win'), 'windows only')

diff --git a/sci-chemistry/pymol/files/pymol-3.0.0-eof-maeffplugin.patch b/sci-chemistry/pymol/files/pymol-3.0.0-eof-maeffplugin.patch
new file mode 100644
index 000000000000..8eb8fbde318b
--- /dev/null
+++ b/sci-chemistry/pymol/files/pymol-3.0.0-eof-maeffplugin.patch
@@ -0,0 +1,22 @@
+From f005dde377e3e50b6e3f405939435c5061fa8b63 Mon Sep 17 00:00:00 2001
+From: Jarrett Johnson <36459667+JarrettSJohnson@users.noreply.github.com>
+Date: Mon, 22 Apr 2024 11:12:21 -0400
+Subject: [PATCH] PYMOL-4869: Only compare eof token in maeffplugin parser
+
+---
+ contrib/uiuc/plugins/molfile_plugin/src/maeffplugin.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/contrib/uiuc/plugins/molfile_plugin/src/maeffplugin.cpp b/contrib/uiuc/plugins/molfile_plugin/src/maeffplugin.cpp
+index efaede65b..0547ff91b 100644
+--- a/contrib/uiuc/plugins/molfile_plugin/src/maeffplugin.cpp
++++ b/contrib/uiuc/plugins/molfile_plugin/src/maeffplugin.cpp
+@@ -248,7 +248,7 @@ const char * Tokenizer::token(bool ignore_single) {
+   char c = peek();
+   bool good = false;
+   ssize_t diff;
+-  while(state != DONE && c >= 0) {
++  while(state != DONE && c != std::char_traits<char>::eof()) {
+     // make sure we have space in m_token for 2 more characters
+     if ((diff = ptr-m_token) >= max_token_size-1) {
+       m_token = (char *)realloc( m_token, 2*max_token_size );

diff --git a/sci-chemistry/pymol/files/pymol-3.0.0-lto-molfile-plugin.patch b/sci-chemistry/pymol/files/pymol-3.0.0-lto-molfile-plugin.patch
new file mode 100644
index 000000000000..445fc6bc3a10
--- /dev/null
+++ b/sci-chemistry/pymol/files/pymol-3.0.0-lto-molfile-plugin.patch
@@ -0,0 +1,187 @@
+From 9d3061ca58d8b69d7dad74a68fc13fe81af0ff8e Mon Sep 17 00:00:00 2001
+From: Jarrett Johnson <jarrett.johnson@schrodinger.com>
+Date: Thu, 5 Sep 2024 11:20:02 -0400
+Subject: [PATCH] Symbol renaming in molfile_plugin and internal linkage
+
+Fixes #395
+---
+ contrib/uiuc/plugins/molfile_plugin/src/ReadPARM7.h    | 10 +++++-----
+ .../uiuc/plugins/molfile_plugin/src/parm7plugin.cpp    |  8 +++++---
+ contrib/uiuc/plugins/molfile_plugin/src/parmplugin.cpp |  2 ++
+ layer0/Isosurf.cpp                                     |  6 ++++--
+ layer0/Tetsurf.cpp                                     |  6 ++++--
+ ov/src/OVOneToAny.cpp                                  |  2 ++
+ ov/src/OVOneToOne.cpp                                  |  2 ++
+ 7 files changed, 24 insertions(+), 12 deletions(-)
+
+diff --git a/contrib/uiuc/plugins/molfile_plugin/src/ReadPARM7.h b/contrib/uiuc/plugins/molfile_plugin/src/ReadPARM7.h
+index 21d967d79..6bd6ddb08 100644
+--- a/contrib/uiuc/plugins/molfile_plugin/src/ReadPARM7.h
++++ b/contrib/uiuc/plugins/molfile_plugin/src/ReadPARM7.h
+@@ -59,7 +59,7 @@
+ #endif
+ 
+ 
+-typedef struct parm {
++typedef struct parm7 {
+   char title[85];
+   char version[85];
+   int   IfBox, Nmxrs, IfCap,
+@@ -70,7 +70,7 @@ typedef struct parm {
+         Ipatm, Natcap,Ifpert,Nbper,Ngper,Ndper,Mbper,Mgper,Mdper,
+         Numextra;
+   _REAL Box[3], Cutcap, Xcap, Ycap, Zcap;
+-} parmstruct;
++} parm7struct;
+ 
+ static int read_parm7_flag(FILE *file, const char *flag, const char *format) {
+   char buf[1024];
+@@ -359,10 +359,10 @@ static void close_parm7_file(FILE *fileptr, int popn) {
+ 
+ static const char *parm7 = "%8d%8d%8d%8d%8d%8d%8d%8d%8d%8d\n";
+ 
+-static parmstruct *read_parm7_header(FILE *file) {
++static parm7struct *read_parm7_header(FILE *file) {
+   char sdum[512]; 
+-  parmstruct *prm;
+-  prm = new parmstruct;
++  parm7struct *prm;
++  prm = new parm7struct;
+ 
+   /* READ VERSION */
+   fgets(sdum, 512, file);
+diff --git a/contrib/uiuc/plugins/molfile_plugin/src/parm7plugin.cpp b/contrib/uiuc/plugins/molfile_plugin/src/parm7plugin.cpp
+index faf2717c6..2d46553b4 100644
+--- a/contrib/uiuc/plugins/molfile_plugin/src/parm7plugin.cpp
++++ b/contrib/uiuc/plugins/molfile_plugin/src/parm7plugin.cpp
+@@ -24,13 +24,15 @@
+ #include "molfile_plugin.h"
+ #include "ReadPARM7.h"
+ 
++namespace {
+ typedef struct {
+-  parmstruct *prm;
++  parm7struct *prm;
+   int popn;
+   FILE *fd;
+   int nbonds;
+   int *from, *to;
+ } parmdata;
++}
+ 
+ static void *open_parm7_read(const char *filename, const char *,int *natoms) {
+   FILE *fd;
+@@ -39,7 +41,7 @@ static void *open_parm7_read(const char *filename, const char *,int *natoms) {
+     fprintf(stderr, "parm7plugin) Cannot open parm file '%s'\n", filename);
+     return NULL;
+   }
+-  parmstruct *prm = read_parm7_header(fd);
++  parm7struct *prm = read_parm7_header(fd);
+   if (!prm) {
+     close_parm7_file(fd, popn);
+     return NULL; 
+@@ -58,7 +60,7 @@ static void *open_parm7_read(const char *filename, const char *,int *natoms) {
+ 
+ static int read_parm7_structure(void *mydata, int *optflags, molfile_atom_t *atoms) {
+   parmdata *p = (parmdata *)mydata;
+-  const parmstruct *prm = p->prm;
++  const parm7struct *prm = p->prm;
+   FILE *file = p->fd;
+   char buf[85];
+   char field[85];
+diff --git a/contrib/uiuc/plugins/molfile_plugin/src/parmplugin.cpp b/contrib/uiuc/plugins/molfile_plugin/src/parmplugin.cpp
+index acabcb1b5..4996383e1 100644
+--- a/contrib/uiuc/plugins/molfile_plugin/src/parmplugin.cpp
++++ b/contrib/uiuc/plugins/molfile_plugin/src/parmplugin.cpp
+@@ -24,12 +24,14 @@
+ #include "ReadPARM.h"
+ #include "molfile_plugin.h"
+ 
++namespace {
+ typedef struct {
+   ReadPARM *rp;
+   FILE *parm;
+   int natoms;
+   int *from, *to;
+ } parmdata;
++}
+ 
+ static void *open_parm_read(const char *filename, const char *, 
+     int *natoms) {
+diff --git a/layer0/Isosurf.cpp b/layer0/Isosurf.cpp
+index 77cf42eeb..b2dfaedd7 100644
+--- a/layer0/Isosurf.cpp
++++ b/layer0/Isosurf.cpp
+@@ -44,11 +44,13 @@ Z* -------------------------------------------------------------------
+ 
+ #define I4(field,P1,P2,P3,P4) ((field)->get<int>(P1,P2,P3,P4))
+ 
+-typedef struct PointType {
++namespace {
++struct PointType {
+   float Point[3];
+   int NLink;
+   struct PointType* Link[4];
+-} PointType;
++};
++}
+ 
+ #define EdgePtPtr(field,P2,P3,P4,P5) ((field)->ptr(P2,P3,P4,P5))
+ 
+diff --git a/layer0/Tetsurf.cpp b/layer0/Tetsurf.cpp
+index 0d78b535e..cb2f5b37b 100644
+--- a/layer0/Tetsurf.cpp
++++ b/layer0/Tetsurf.cpp
+@@ -38,12 +38,14 @@ Z* -------------------------------------------------------------------
+ 
+ #define I3(field,P1,P2,P3) ((field)->get<int>(P1,P2,P3))
+ 
+-typedef struct {
++namespace {
++struct PointType {
+   float Point[3];
+   float Normal[3];
+   int NormalFlag;
+   int Link;
+-} PointType;
++};
++}
+ 
+ typedef struct {
+   PointType *p[3];
+diff --git a/ov/src/OVOneToAny.cpp b/ov/src/OVOneToAny.cpp
+index 1a675a51b..5dbbc498c 100644
+--- a/ov/src/OVOneToAny.cpp
++++ b/ov/src/OVOneToAny.cpp
+@@ -8,11 +8,13 @@
+ 
+ /* FYI: "up" stands for UniquePair -- a precursor to OneToAny */
+ 
++namespace {
+ typedef struct {
+   int active;
+   ov_word forward_value, reverse_value;
+   ov_size forward_next;
+ } up_element;
++}
+ 
+ struct _OVOneToAny {
+   OVHeap *heap;
+diff --git a/ov/src/OVOneToOne.cpp b/ov/src/OVOneToOne.cpp
+index 6dfa8f457..4e9baf9c6 100644
+--- a/ov/src/OVOneToOne.cpp
++++ b/ov/src/OVOneToOne.cpp
+@@ -8,11 +8,13 @@
+ 
+ /* FYI: "up" stands for UniquePair -- a precursor to OneToOne */
+ 
++namespace {
+ typedef struct {
+   int active;
+   ov_word forward_value, reverse_value;
+   ov_size forward_next, reverse_next;
+ } up_element;
++}
+ 
+ struct _OVOneToOne {
+   OVHeap *heap;

diff --git a/sci-chemistry/pymol/files/pymol-3.0.0-numpy2.patch b/sci-chemistry/pymol/files/pymol-3.0.0-numpy2.patch
new file mode 100644
index 000000000000..7cf2884ee201
--- /dev/null
+++ b/sci-chemistry/pymol/files/pymol-3.0.0-numpy2.patch
@@ -0,0 +1,35 @@
+From 758cec338057b23007ffd14c960634ff0ee24af1 Mon Sep 17 00:00:00 2001
+From: Jarrett Johnson <jarrett.johnson@schrodinger.com>
+Date: Tue, 27 Aug 2024 20:06:57 -0400
+Subject: [PATCH] Make numpy2 compatible
+
+---
+ layer2/ObjectMap.cpp    | 1 +
+ modules/chempy/brick.py | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/layer2/ObjectMap.cpp b/layer2/ObjectMap.cpp
+index ada826f8a..62e3457a4 100644
+--- a/layer2/ObjectMap.cpp
++++ b/layer2/ObjectMap.cpp
+@@ -5596,6 +5596,7 @@ static int ObjectMapNumPyArrayToMapState(PyMOLGlobals * G, ObjectMapState * ms,
+   void * ptr;
+ 
+ #ifdef _PYMOL_NUMPY
++  import_array1(0);
+   PyArrayObject * pao = (PyArrayObject *) ary;
+   const int itemsize = PyArray_ITEMSIZE(pao);
+ #endif
+diff --git a/modules/chempy/brick.py b/modules/chempy/brick.py
+index fc514eb3a..e4c0f1bbb 100644
+--- a/modules/chempy/brick.py
++++ b/modules/chempy/brick.py
+@@ -31,7 +31,7 @@ def from_numpy(cls, data, grid, origin=(0.0, 0.0, 0.0)):
+         @param range: 3f sequence
+         @param origin: 3f sequence
+         '''
+-        data = numpy.asfarray(data)
++        data = numpy.asarray(data, dtype=numpy.float64)
+         assert len(data.shape) == 3
+ 
+         self = cls()

diff --git a/sci-chemistry/pymol/files/pymol-3.0.0-py3.12-progress.patch b/sci-chemistry/pymol/files/pymol-3.0.0-py3.12-progress.patch
new file mode 100644
index 000000000000..b09f36048b20
--- /dev/null
+++ b/sci-chemistry/pymol/files/pymol-3.0.0-py3.12-progress.patch
@@ -0,0 +1,26 @@
+From 11325a6014565700be9673236c9b7b6c856ea6d9 Mon Sep 17 00:00:00 2001
+From: Jarrett Johnson <jarrett.johnson@schrodinger.com>
+Date: Wed, 28 Aug 2024 22:07:15 -0400
+Subject: [PATCH] Python 3.12 TypeError: convert progress to int for progress
+ bar
+
+---
+ modules/pmg_qt/pymol_qt_gui.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/modules/pmg_qt/pymol_qt_gui.py b/modules/pmg_qt/pymol_qt_gui.py
+index f2d663204..6e935b0d6 100644
+--- a/modules/pmg_qt/pymol_qt_gui.py
++++ b/modules/pmg_qt/pymol_qt_gui.py
+@@ -929,9 +929,9 @@ def command_set_cursor(self, i):
+         return self.lineedit.setCursorPosition(i)
+ 
+     def update_progress(self):
+-        progress = self.cmd.get_progress()
++        progress = int(self.cmd.get_progress() * 100)
+         if progress >= 0:
+-            self.progressbar.setValue(progress * 100)
++            self.progressbar.setValue(progress)
+             self.progressbar.show()
+             self.abortbutton.show()
+         else:

diff --git a/sci-chemistry/pymol/pymol-3.0.0-r1.ebuild b/sci-chemistry/pymol/pymol-3.0.0-r1.ebuild
new file mode 100644
index 000000000000..aeb6bc85c7e1
--- /dev/null
+++ b/sci-chemistry/pymol/pymol-3.0.0-r1.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..12} )
+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://github.com/schrodinger/pymol-open-source/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}"/${PN}-open-source-${PV}
+
+LICENSE="BitstreamVera BSD freedist HPND OFL-1.0 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/numpy[${PYTHON_USEDEP}]
+	sys-libs/zlib
+	media-libs/freetype:2
+	media-libs/glew:0=
+	media-libs/glm
+	media-libs/libpng:0=
+	netcdf? ( sci-libs/netcdf:0= )
+"
+BDEPEND="test? ( >=dev-cpp/catch-2:0 )"
+RDEPEND="
+	${DEPEND}
+	media-video/mpeg-tools
+	dev-python/pyopengl[${PYTHON_USEDEP}]
+	dev-python/PyQt5[opengl,${PYTHON_USEDEP}]
+	dev-python/pmw[${PYTHON_USEDEP}]
+	sci-chemistry/chemical-mime-data
+"
+
+distutils_enable_tests pytest
+
+# FIXME: We need to still figure out about how to make all the tests pass
+# https://bugs.gentoo.org/932127
+RESTRICT="test"
+
+PATCHES=(
+	"${FILESDIR}/${P}-distutils-py3.12.patch"
+	"${FILESDIR}/${P}-SceneGetDrawFlag-indexing.patch"
+	"${FILESDIR}/${P}-eof-maeffplugin.patch"
+	"${FILESDIR}/${P}-numpy2.patch"
+	"${FILESDIR}/${P}-py3.12-progress.patch"
+	"${FILESDIR}/${P}-lto-molfile-plugin.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++17
+
+	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_test() {
+	"${EPYTHON}" -m pymol -ckqy testing/testing.py --offline --no-mmlibs --no-undo --run all || die
+}
+
+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/* "${ED}/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 "${S}"/data/pymol/icons/icon2.svg ${PN}.svg
+	make_desktop_entry "${PN} %u"  PyMol ${PN} \
+		"Graphics;Education;Science;Chemistry;" \
+		"MimeType=chemical/x-pdb;chemical/pdby;chemical/x-mdl-sdfile;chemical/x-mdl-molfile;chemical/x-mol2;chemical/seq-aa-fasta;chemical/seq-na-fasta;chemical/x-xyz;chemical/x-mdl-sdf;chemical/x-macromodel-input;chemical/x-vmd;"
+
+	if ! use web; then
+		rm -rf "${D}/$(python_get_sitedir)/web" || die
+	fi
+
+	rm -f "${ED}"/usr/share/${PN}/LICENSE || die
+}


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-09-28 14:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-10-24 11:20 [gentoo-commits] repo/gentoo:master commit in: sci-chemistry/pymol/, sci-chemistry/pymol/files/ David Seifert
  -- strict thread matches above, loose matches on Subject: below --
2024-09-28 14:50 Pacho Ramos
2021-01-13 19:11 Pacho Ramos

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox