commit:     34f5329184f922617c7f0ecfad261a5e40e9cbbd
Author:     Paul Zander <negril.nx+gentoo <AT> gmail <DOT> com>
AuthorDate: Fri Jan  3 19:36:40 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Jan  3 22:07:48 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=34f53291

media-gfx/openscad: add 2024.12.30_pre

Signed-off-by: Paul Zander <negril.nx+gentoo <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/39967
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-gfx/openscad/Manifest                        |  2 +
 ...-9999.ebuild => openscad-2024.12.30_pre.ebuild} | 73 ++++++++++++++++------
 media-gfx/openscad/openscad-9999.ebuild            | 73 ++++++++++++++++------
 3 files changed, 110 insertions(+), 38 deletions(-)

diff --git a/media-gfx/openscad/Manifest b/media-gfx/openscad/Manifest
index c20624a8c4dc..03d32353cffc 100644
--- a/media-gfx/openscad/Manifest
+++ b/media-gfx/openscad/Manifest
@@ -1,4 +1,6 @@
 DIST openscad-2021.01.tar.gz 15817555 BLAKE2B 
417857d704fa3c14312641ebda983eb85a1e3bc0d517a235fa3bd2523fce6f93c1ea526c330179bc35f03e6c73d3cd7c4c57cd71480088c21bfc99bb020ab7cd
 SHA512 
8deaa26bf4c295c12da38f323d2b2e6f827851337f5bc1cc9c79afc083c9f913c19a263086e6e853bf2c8434c1ccc705ea22ddb02dc99d39bb1e5e03fc58d128
+DIST openscad-2024.12.30_pre.tar.gz 25338952 BLAKE2B 
41baa7f5df30e46611a2ef59dc0aa05ccb85644dddfb979224b5b026f1b9338285eecd50e2078543163621c89fbc81e97b7593b641a223b48ca02029962f8076
 SHA512 
e63ac792c16852c1bbdf06a3cb044b453e05c20a95158adddbc09239bcf228fd113a6e33f83d5580e615ecab3cdab8436da9e21d2ab3c3f8846f66219218713b
 DIST openscad-20241114.tar.gz 25288312 BLAKE2B 
0c1a9b4b15c12f4b3b600e81cdb5eeddb34887c83e2ae67735d7221b6660730dc5e7f97f80b84d187772adfa20d15e20f0cded1b4937e26305434847bbf2af27
 SHA512 
6c66c09e4b72ec5ef200d077b58fcb7a5a9acd359551a5daebdc3e24cb2cb7ed7d607b04e5563ea6f14d9d929310c3a9194ac889f2530c2c933235271040981a
 DIST openscad-MCAD-bd0a7ba3f042bfbced5ca1894b236cea08904e26.tar.gz 58895 
BLAKE2B 
e154a38e1c36873a34f7c80b8fa484e4bbcb1b0c217e15b977e6cedc9a83fd2e1518791f9a58a4f0e893c2a55947d7eaddb660d8b725eca048c30f0ea41cf14a
 SHA512 
c6208a90f6a58ebdc0477d3e1b6be2f52e4ce976ac619a87818437cb9696b7e83285564fde757d32efaf50033d5217b55f67b6ce342250de838dd09fef334f36
+DIST sanitizers-cmake-0573e2ea8651b9bb3083f193c41eb086497cc80a.tar.gz 7495 
BLAKE2B 
57efaac8861755fd7fe3a9c9db2a68f775169ef82b91fbcf44da375540dce7673f319908c0d1a8ac324584bc217f9e2a1e27d6f935fe84f1f640049324ea3b24
 SHA512 
80d1c471492a771b12291e36cc7523e65c8f9add5b14643c9554156bbcc3e1753772054998306c3f89d33b7f5c9969e89670e16428a72040033b41329c9cb71b
 DIST sanitizers-cmake-3f0542e4e034aab417c51b2b22c94f83355dee15.tar.gz 7451 
BLAKE2B 
2ca72e3ecda02d4f0eed05be0954af02706425e94626d5a4b9d897968e35c341413171e2388ece7e83dad9eb7b5e2c2f73811ea8db8fa33b0bce6d5dd53550b7
 SHA512 
10cd4eeb3bbb7bf5c6f5cf8b5bc6a531b1ec8bdc147583d8de028a3e4b8b9d0e258aad81f02135267ce8f7d87b30999dedd25b44c0754b5c31e00d8481cd412f

diff --git a/media-gfx/openscad/openscad-9999.ebuild 
b/media-gfx/openscad/openscad-2024.12.30_pre.ebuild
similarity index 71%
copy from media-gfx/openscad/openscad-9999.ebuild
copy to media-gfx/openscad/openscad-2024.12.30_pre.ebuild
index 338bc1a67d88..0361bac9f047 100644
--- a/media-gfx/openscad/openscad-9999.ebuild
+++ b/media-gfx/openscad/openscad-2024.12.30_pre.ebuild
@@ -3,7 +3,8 @@
 
 EAPI=8
 
-inherit cmake flag-o-matic optfeature virtualx xdg
+PYTHON_COMPAT=( python3_{10..13} )
+inherit cmake flag-o-matic optfeature python-any-r1 virtualx xdg
 
 DESCRIPTION="The Programmers Solid 3D CAD Modeller"
 HOMEPAGE="https://openscad.org/";
@@ -18,22 +19,26 @@ if [[ ${PV} = *9999* ]] ; then
                '-OpenCSG'
        )
 else
-       COMMIT="bc0d078e0361d7dba66723ac31bdb3b650ecff37"
-       SANITIZERS_CMAKE_COMMIT="3f0542e4e034aab417c51b2b22c94f83355dee15"
-       MCAD_COMMIT="bd0a7ba3f042bfbced5ca1894b236cea08904e26"
-
-       SRC_URI="
-               https://github.com/openscad/openscad/archive/${COMMIT}.tar.gz
-                       -> ${PN}-20241114.tar.gz
-               
https://github.com/arsenm/sanitizers-cmake/archive/${SANITIZERS_CMAKE_COMMIT}.tar.gz
-                       -> sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}.tar.gz
-               test? (
-                       
https://github.com/openscad/MCAD/archive/${MCAD_COMMIT}.tar.gz -> 
${PN}-MCAD-${MCAD_COMMIT}.tar.gz
-               )
-       "
-       # doc downloads are not versioned and found at:
-       # https://files.openscad.org/documentation/
-       S="${WORKDIR}/${PN}-${COMMIT}"
+       if [[ ${PV} = *pre* ]] ; then
+               COMMIT="756e080c7e49072d9926cf9ce766def180a0dcae"
+               
SANITIZERS_CMAKE_COMMIT="0573e2ea8651b9bb3083f193c41eb086497cc80a"
+               MCAD_COMMIT="bd0a7ba3f042bfbced5ca1894b236cea08904e26"
+
+               SRC_URI="
+                       
https://github.com/openscad/openscad/archive/${COMMIT}.tar.gz
+                               -> ${P}.tar.gz
+                       
https://github.com/arsenm/sanitizers-cmake/archive/${SANITIZERS_CMAKE_COMMIT}.tar.gz
+                               -> 
sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}.tar.gz
+                       test? (
+                               
https://github.com/openscad/MCAD/archive/${MCAD_COMMIT}.tar.gz -> 
${PN}-MCAD-${MCAD_COMMIT}.tar.gz
+                       )
+               "
+               # doc downloads are not versioned and found at:
+               # https://files.openscad.org/documentation/
+               S="${WORKDIR}/${PN}-${COMMIT}"
+       else
+               
SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.src.tar.gz 
-> ${P}.tar.gz"
+       fi
        KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
 fi
 
@@ -74,7 +79,7 @@ RDEPEND="
        hidapi? ( dev-libs/hidapi )
        manifold? (
                dev-cpp/tbb
-               sci-mathematics/manifold
+               >=sci-mathematics/manifold-3.0.1
        )
        mimalloc? ( dev-libs/mimalloc:= )
        pdf? ( x11-libs/cairo )
@@ -90,6 +95,13 @@ BDEPEND="
        dev-util/itstool
        sys-devel/gettext
        virtual/pkgconfig
+       test? (
+               $(python_gen_any_dep '
+                       dev-python/numpy[${PYTHON_USEDEP}]
+                       dev-python/pillow[${PYTHON_USEDEP}]
+                       dev-python/pip[${PYTHON_USEDEP}]
+               ')
+       )
 "
 
 DOCS=(
@@ -102,6 +114,17 @@ DOCS=(
        doc/translation.txt
 )
 
+# NOTE the build system sets up a venv for tests, we could use imagemagick 
with -DUSE_IMAGE_COMPARE_PY="no"
+python_check_deps() {
+       python_has_version "dev-python/numpy[${PYTHON_USEDEP}]" &&
+       python_has_version "dev-python/pillow[${PYTHON_USEDEP}]" &&
+       python_has_version "dev-python/pip[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+       use test && python-any-r1_pkg_setup
+}
+
 src_prepare() {
        if use test && [[ ${PV} != *9999* ]] ; then
                mv -f "${WORKDIR}/MCAD-${MCAD_COMMIT}"/* "${S}/libraries/MCAD/" 
|| die
@@ -134,6 +157,7 @@ src_configure() {
                -DEXPERIMENTAL="$(usex experimental)"
 
                -DHEADLESS="$(usex !gui)"
+               -DUSE_BUILTIN_CLIPPER2="no"
                -DUSE_BUILTIN_MANIFOLD="no"
                -DUSE_CCACHE="no"
                -DUSE_GLAD="yes"
@@ -142,6 +166,7 @@ src_configure() {
                -DUSE_MIMALLOC="$(usex mimalloc)"
                -DUSE_QT6="$(usex gui)"
                -DOFFLINE_DOCS="no" # TODO
+               -DOPENCSG_DIR="${EPREFIX}/usr/$(get_libdir)"
        )
 
        if use gui; then
@@ -155,8 +180,18 @@ src_configure() {
        if [[ ${PV} != *9999* ]] ; then
                mycmakeargs+=(
                        
-DCMAKE_MODULE_PATH="${WORKDIR}/sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}/cmake"
+               )
+               if [[ ${PV} = *pre* ]] ; then
+                       mycmakeargs+=(
+                               -DOPENSCAD_COMMIT="${COMMIT:0:9}"
+                               -DOPENSCAD_VERSION="$(ver_cut 1-3)"
+                               -DSNAPSHOT="yes"
+                       )
+               fi
+       else
+               mycmakeargs+=(
                        -DOPENSCAD_COMMIT="${COMMIT:0:9}"
-                       -DOPENSCAD_VERSION="${PV:0:4}.${PV:4:2}.${PV:6:2}"
+                       -DSNAPSHOT="yes"
                )
        fi
 

diff --git a/media-gfx/openscad/openscad-9999.ebuild 
b/media-gfx/openscad/openscad-9999.ebuild
index 338bc1a67d88..0361bac9f047 100644
--- a/media-gfx/openscad/openscad-9999.ebuild
+++ b/media-gfx/openscad/openscad-9999.ebuild
@@ -3,7 +3,8 @@
 
 EAPI=8
 
-inherit cmake flag-o-matic optfeature virtualx xdg
+PYTHON_COMPAT=( python3_{10..13} )
+inherit cmake flag-o-matic optfeature python-any-r1 virtualx xdg
 
 DESCRIPTION="The Programmers Solid 3D CAD Modeller"
 HOMEPAGE="https://openscad.org/";
@@ -18,22 +19,26 @@ if [[ ${PV} = *9999* ]] ; then
                '-OpenCSG'
        )
 else
-       COMMIT="bc0d078e0361d7dba66723ac31bdb3b650ecff37"
-       SANITIZERS_CMAKE_COMMIT="3f0542e4e034aab417c51b2b22c94f83355dee15"
-       MCAD_COMMIT="bd0a7ba3f042bfbced5ca1894b236cea08904e26"
-
-       SRC_URI="
-               https://github.com/openscad/openscad/archive/${COMMIT}.tar.gz
-                       -> ${PN}-20241114.tar.gz
-               
https://github.com/arsenm/sanitizers-cmake/archive/${SANITIZERS_CMAKE_COMMIT}.tar.gz
-                       -> sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}.tar.gz
-               test? (
-                       
https://github.com/openscad/MCAD/archive/${MCAD_COMMIT}.tar.gz -> 
${PN}-MCAD-${MCAD_COMMIT}.tar.gz
-               )
-       "
-       # doc downloads are not versioned and found at:
-       # https://files.openscad.org/documentation/
-       S="${WORKDIR}/${PN}-${COMMIT}"
+       if [[ ${PV} = *pre* ]] ; then
+               COMMIT="756e080c7e49072d9926cf9ce766def180a0dcae"
+               
SANITIZERS_CMAKE_COMMIT="0573e2ea8651b9bb3083f193c41eb086497cc80a"
+               MCAD_COMMIT="bd0a7ba3f042bfbced5ca1894b236cea08904e26"
+
+               SRC_URI="
+                       
https://github.com/openscad/openscad/archive/${COMMIT}.tar.gz
+                               -> ${P}.tar.gz
+                       
https://github.com/arsenm/sanitizers-cmake/archive/${SANITIZERS_CMAKE_COMMIT}.tar.gz
+                               -> 
sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}.tar.gz
+                       test? (
+                               
https://github.com/openscad/MCAD/archive/${MCAD_COMMIT}.tar.gz -> 
${PN}-MCAD-${MCAD_COMMIT}.tar.gz
+                       )
+               "
+               # doc downloads are not versioned and found at:
+               # https://files.openscad.org/documentation/
+               S="${WORKDIR}/${PN}-${COMMIT}"
+       else
+               
SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.src.tar.gz 
-> ${P}.tar.gz"
+       fi
        KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
 fi
 
@@ -74,7 +79,7 @@ RDEPEND="
        hidapi? ( dev-libs/hidapi )
        manifold? (
                dev-cpp/tbb
-               sci-mathematics/manifold
+               >=sci-mathematics/manifold-3.0.1
        )
        mimalloc? ( dev-libs/mimalloc:= )
        pdf? ( x11-libs/cairo )
@@ -90,6 +95,13 @@ BDEPEND="
        dev-util/itstool
        sys-devel/gettext
        virtual/pkgconfig
+       test? (
+               $(python_gen_any_dep '
+                       dev-python/numpy[${PYTHON_USEDEP}]
+                       dev-python/pillow[${PYTHON_USEDEP}]
+                       dev-python/pip[${PYTHON_USEDEP}]
+               ')
+       )
 "
 
 DOCS=(
@@ -102,6 +114,17 @@ DOCS=(
        doc/translation.txt
 )
 
+# NOTE the build system sets up a venv for tests, we could use imagemagick 
with -DUSE_IMAGE_COMPARE_PY="no"
+python_check_deps() {
+       python_has_version "dev-python/numpy[${PYTHON_USEDEP}]" &&
+       python_has_version "dev-python/pillow[${PYTHON_USEDEP}]" &&
+       python_has_version "dev-python/pip[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+       use test && python-any-r1_pkg_setup
+}
+
 src_prepare() {
        if use test && [[ ${PV} != *9999* ]] ; then
                mv -f "${WORKDIR}/MCAD-${MCAD_COMMIT}"/* "${S}/libraries/MCAD/" 
|| die
@@ -134,6 +157,7 @@ src_configure() {
                -DEXPERIMENTAL="$(usex experimental)"
 
                -DHEADLESS="$(usex !gui)"
+               -DUSE_BUILTIN_CLIPPER2="no"
                -DUSE_BUILTIN_MANIFOLD="no"
                -DUSE_CCACHE="no"
                -DUSE_GLAD="yes"
@@ -142,6 +166,7 @@ src_configure() {
                -DUSE_MIMALLOC="$(usex mimalloc)"
                -DUSE_QT6="$(usex gui)"
                -DOFFLINE_DOCS="no" # TODO
+               -DOPENCSG_DIR="${EPREFIX}/usr/$(get_libdir)"
        )
 
        if use gui; then
@@ -155,8 +180,18 @@ src_configure() {
        if [[ ${PV} != *9999* ]] ; then
                mycmakeargs+=(
                        
-DCMAKE_MODULE_PATH="${WORKDIR}/sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}/cmake"
+               )
+               if [[ ${PV} = *pre* ]] ; then
+                       mycmakeargs+=(
+                               -DOPENSCAD_COMMIT="${COMMIT:0:9}"
+                               -DOPENSCAD_VERSION="$(ver_cut 1-3)"
+                               -DSNAPSHOT="yes"
+                       )
+               fi
+       else
+               mycmakeargs+=(
                        -DOPENSCAD_COMMIT="${COMMIT:0:9}"
-                       -DOPENSCAD_VERSION="${PV:0:4}.${PV:4:2}.${PV:6:2}"
+                       -DSNAPSHOT="yes"
                )
        fi
 

Reply via email to