summaryrefslogtreecommitdiff
path: root/media-gfx
diff options
context:
space:
mode:
Diffstat (limited to 'media-gfx')
-rw-r--r--media-gfx/Manifest.gzbin38350 -> 38354 bytes
-rw-r--r--media-gfx/digikam/Manifest2
-rw-r--r--media-gfx/digikam/digikam-8.5.0.ebuild133
-rw-r--r--media-gfx/openscad/Manifest8
-rw-r--r--media-gfx/openscad/metadata.xml7
-rw-r--r--media-gfx/openscad/openscad-20241114.ebuild240
-rw-r--r--media-gfx/openscad/openscad-9999.ebuild135
-rw-r--r--media-gfx/openscad/openscad-99999999.ebuild240
8 files changed, 626 insertions, 139 deletions
diff --git a/media-gfx/Manifest.gz b/media-gfx/Manifest.gz
index b2e2de7d6cea..4abb5aaa280d 100644
--- a/media-gfx/Manifest.gz
+++ b/media-gfx/Manifest.gz
Binary files differ
diff --git a/media-gfx/digikam/Manifest b/media-gfx/digikam/Manifest
index 4f932b77b3ab..868a1a99f236 100644
--- a/media-gfx/digikam/Manifest
+++ b/media-gfx/digikam/Manifest
@@ -1,6 +1,8 @@
AUX digikam-8.3.0-cmake-addressbook.patch 1245 BLAKE2B 22365de2072c5ce5e2eac3bc1d7138e820166b977e5894f29addcdb00ae3329c47965b2b7930a4725b01789add63b4416083e6e358ca6ffb4a0d60f3e80ad52c SHA512 a872aed53811642407c98e20f423cf5381a117e96d4e95d309da6f116a13aa2584671ef20af3e1059c3ed7e09fec178fdb77e7afecde21077252bb2c8f116158
AUX digikam-8.4.0-cmake.patch 7429 BLAKE2B 20d79867086e390c2a571bae76f2023e4ec5f26bdc137f28be6ec8eff54ba2c5e84ec15191ceed83eb8e9415a522165f5931cf6d972e1537806cbb6d7e22bbf0 SHA512 fd38773ce49a31d3fcd0d477c5e180b42d1a2ea586b41534b7dd3d08653fea4020af30bce3b20ba14c4a2710cde3fecbd13fbe8fcfd33bdca6b82989cf431214
DIST digiKam-8.4.0.tar.xz 58025616 BLAKE2B 33441e023cd9d6edba2e7c01e482a6eea7a6b1972b6bad0fc804fb3e94f97cc62e2663690137b2445fb7043789b7e942d830b71209385de77ccffe57d22d09ff SHA512 4342d18a7c04ab239821de3cf908f8e7d676598778f0174164aa336e8cfdc0a76327d31c64e6c4e47dcf0d6fbef46b01918312e4622ce3359888a9a94948a22b
+DIST digiKam-8.5.0.tar.xz 62028432 BLAKE2B ef061b73e72d9b2ad3da361fcdd3e27a4758b1ef837adde1a405cfbd759cc950d373464765f5ff07f36e8457c6c9c15550002e3ebd94215b154d2c51723192ee SHA512 5610f0173043e29a2b5ff62b2ed2c2bea79e10cd20a0c2416ebb425457cee55aa8b8d575ba57e8e188a899cc909516ea05e6c80e73e3316742cc9e8119855509
DIST digikam-8.4.0-patchset.tar.xz 11904 BLAKE2B 6ab167cae66710505eb81bb538fde2a81458b6580bf8c70d0c28500ca81a3c9c9b9e0a12ca288a4dc6f39ae1a175f7b2bd09e4d94624337348084c228eafcc38 SHA512 df1199d3aaecc0afc032090424af69c031e95afba1fed70b00cf61c5ef52fa2a7c3d97918592c167f9ea918dd2823e4cc52f12a470a9eede815b3ff43314001b
EBUILD digikam-8.4.0-r11.ebuild 4032 BLAKE2B bd5b43030acb8f92ee1dd9c09af52b38f6752daadfeeaba92e54f2242d87063d7baa726ffea7429008a20fc341afc38e5d15a24bcd5e8c756deafa77f8739f4d SHA512 96bd118cd133c5f34c6a2988ddcadc2952a1bcea7626717ee6028b3688b46928fa09caab442eb5e9dabe0f093b7549863b4ba14bdff71ad1790c038fb31a3f22
+EBUILD digikam-8.5.0.ebuild 4024 BLAKE2B 57b76116b8e57774e8f941cb39fc18807cbbb7f19a757dc96f9bc473141c3799e414324ae1a3d3ffed710de68b5b955e067d35fb4c2adfd2431420bdcc83cb6e SHA512 d8f05502567106e6c849f21a148b2750ff5197f69c1f30c6b999096060f51b048be3e4435b19d87334fadb2953bfaa0f24dcd6db5fd08180f548da56a3970693
MISC metadata.xml 981 BLAKE2B 1c1494b9c7fd7207550ea214baafcab17aa12ecb93f08885dd7c873a15114d826341027b8a37e36138cf89d1ba1451c8fff247d9fde18c235bee062f3cda1ab9 SHA512 7f4602eafde8e22b18b7abc1a071eb27369d2ab7df01554253f142614577209828698b39614666fd6d4688ff44b3c1dc3d4820ec3398a6f8228710343ef65f85
diff --git a/media-gfx/digikam/digikam-8.5.0.ebuild b/media-gfx/digikam/digikam-8.5.0.ebuild
new file mode 100644
index 000000000000..ef0b73fd8aa9
--- /dev/null
+++ b/media-gfx/digikam/digikam-8.5.0.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+KFMIN=6.3.0
+QTMIN=6.6.2
+inherit ecm kde.org toolchain-funcs
+
+DESCRIPTION="Digital photo management application"
+HOMEPAGE="https://www.digikam.org/"
+SRC_URI="mirror://kde/stable/${PN}/${PV}/digiKam-${PV/_/-}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+IUSE="addressbook calendar geolocation gphoto2 heif +imagemagick jpegxl +lensfun mysql openmp +panorama scanner semantic-desktop spell video"
+
+# bug 366505
+RESTRICT="test"
+
+# slot op: Uses Qt::GuiPrivate for qtx11extras_p.h
+COMMON_DEPEND="
+ dev-libs/expat
+ >=dev-qt/qtbase-${QTMIN}:6=[concurrent,dbus,-gles2-only,gui,mysql?,network,opengl,sql,widgets,X,xml]
+ >=dev-qt/qtnetworkauth-${QTMIN}:6
+ >=dev-qt/qtscxml-${QTMIN}:6
+ >=dev-qt/qtsvg-${QTMIN}:6
+ >=dev-qt/qtwebengine-${QTMIN}:6[widgets]
+ >=kde-frameworks/kconfig-${KFMIN}:6
+ >=kde-frameworks/kconfigwidgets-${KFMIN}:6
+ >=kde-frameworks/kcoreaddons-${KFMIN}:6
+ >=kde-frameworks/ki18n-${KFMIN}:6
+ >=kde-frameworks/kiconthemes-${KFMIN}:6
+ >=kde-frameworks/kio-${KFMIN}:6
+ >=kde-frameworks/knotifications-${KFMIN}:6
+ >=kde-frameworks/knotifyconfig-${KFMIN}:6
+ >=kde-frameworks/kservice-${KFMIN}:6
+ >=kde-frameworks/kwidgetsaddons-${KFMIN}:6
+ >=kde-frameworks/kwindowsystem-${KFMIN}:6
+ >=kde-frameworks/kxmlgui-${KFMIN}:6
+ >=kde-frameworks/solid-${KFMIN}:6
+ >=media-gfx/exiv2-0.27.1:=[xmp]
+ media-libs/lcms:2
+ media-libs/libjpeg-turbo:=
+ media-libs/liblqr
+ media-libs/libpng:=
+ >=media-libs/opencv-3.3.0:=[contrib,contribdnn,features2d]
+ media-libs/tiff:=
+ virtual/opengl
+ x11-libs/libX11
+ addressbook? (
+ >=kde-apps/akonadi-contacts-24.05.2:6
+ >=kde-frameworks/kcontacts-${KFMIN}:6
+ )
+ calendar? ( >=kde-frameworks/kcalendarcore-${KFMIN}:6 )
+ gphoto2? ( media-libs/libgphoto2:= )
+ heif? (
+ media-libs/libheif:=
+ media-libs/x265:=
+ )
+ imagemagick? ( media-gfx/imagemagick:= )
+ jpegxl? ( media-libs/libjxl:= )
+ lensfun? ( media-libs/lensfun )
+ panorama? ( >=kde-frameworks/threadweaver-${KFMIN}:6 )
+ scanner? ( >=kde-apps/libksane-24.05.2:6 )
+ semantic-desktop? ( >=kde-frameworks/kfilemetadata-${KFMIN}:6 )
+ spell? ( >=kde-frameworks/sonnet-${KFMIN}:6 )
+ video? ( >=dev-qt/qtmultimedia-${QTMIN}:6 )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-cpp/eigen:3
+ dev-libs/boost
+ addressbook? ( >=kde-apps/akonadi-24.05.2:6 )
+"
+RDEPEND="${COMMON_DEPEND}
+ !${CATEGORY}/${PN}:5
+ media-libs/exiftool
+ mysql? ( virtual/mysql[server(+)] )
+ panorama? ( media-gfx/hugin )
+"
+BDEPEND="
+ sys-devel/gettext
+ panorama? (
+ app-alternatives/lex
+ app-alternatives/yacc
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-8.4.0-cmake.patch"
+ "${FILESDIR}/${PN}-8.3.0-cmake-addressbook.patch"
+)
+
+pkg_pretend() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+ ecm_pkg_pretend
+}
+
+pkg_setup() {
+ [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+ ecm_pkg_setup
+}
+
+# FIXME: Unbundle libraw (libs/rawengine/libraw)
+# TODO: adding IUSE X requires upstreaming WITH_X11 option for libX11,
+# see core/cmake/rules/RulesX11.cmake; only used in core/libs/dimg/filters/icc
+src_configure() {
+ local mycmakeargs=(
+ -DBUILD_WITH_QT6=ON
+ -DBUILD_TESTING=OFF # bug 698192
+ -DENABLE_APPSTYLES=ON
+ -DCMAKE_DISABLE_FIND_PACKAGE_Jasper=ON
+ -DENABLE_SHOWFOTO=ON # built unconditionally so far, new option since 8.0
+ -DENABLE_AKONADICONTACTSUPPORT=$(usex addressbook)
+ $(cmake_use_find_package calendar KF6CalendarCore)
+ -DENABLE_GEOLOCATION=$(usex geolocation)
+ $(cmake_use_find_package gphoto2 Gphoto2)
+ $(cmake_use_find_package heif Libheif)
+ $(cmake_use_find_package imagemagick ImageMagick)
+ $(cmake_use_find_package jpegxl Libjxl)
+ $(cmake_use_find_package lensfun LensFun)
+ -DENABLE_MYSQLSUPPORT=$(usex mysql)
+ -DENABLE_INTERNALMYSQL=$(usex mysql)
+ $(cmake_use_find_package panorama KF6ThreadWeaver)
+ $(cmake_use_find_package scanner KSaneWidgets6)
+ -DENABLE_KFILEMETADATASUPPORT=$(usex semantic-desktop)
+ $(cmake_use_find_package spell KF6Sonnet)
+ -DENABLE_MEDIAPLAYER=$(usex video)
+ )
+
+ ecm_src_configure
+}
diff --git a/media-gfx/openscad/Manifest b/media-gfx/openscad/Manifest
index d224914ce133..bf443bdfd60c 100644
--- a/media-gfx/openscad/Manifest
+++ b/media-gfx/openscad/Manifest
@@ -9,6 +9,10 @@ AUX openscad-2021.01-Fix-build-issue-with-overloaded-join.patch 3336 BLAKE2B c92
AUX openscad-2021.01-Remove-double-quoting-of-the-output-file-parameter-f.patch 775 BLAKE2B eed37277c3e7ea84635c0b8cd02cc4ffde7abea78400ee39e67bcc782800197c57dae07a82084df47705951ced8968be78243a1d0e14a551783b8adcb669d43f SHA512 94306e68e53b01e799a5feb6f16a8f44c965a4b653b60227833013712f23648d20ac8272a7bfe38bde201af42946f91fe17231f120adfbe5b16e42b07d9f8d10
AUX openscad-2021.01-boost-1.85.patch 621 BLAKE2B f86fa92c1f3c4a059550017e7a16ee808bdd4ff4a4196c19dacf8b86fd97458f72ebbf0ef763b88115d56eb0cb6ec565b63dd789c4558d8011aaf252b9ceea00 SHA512 786bf3739f8296b83047ac6c36432d331f392a1d1cf67fc2135a98f227840ff1b099437f5157bf8472ea47206a7ff2ef0de09e2b8780830e235c94bfe6ccad5b
DIST openscad-2021.01.tar.gz 15817555 BLAKE2B 417857d704fa3c14312641ebda983eb85a1e3bc0d517a235fa3bd2523fce6f93c1ea526c330179bc35f03e6c73d3cd7c4c57cd71480088c21bfc99bb020ab7cd SHA512 8deaa26bf4c295c12da38f323d2b2e6f827851337f5bc1cc9c79afc083c9f913c19a263086e6e853bf2c8434c1ccc705ea22ddb02dc99d39bb1e5e03fc58d128
+DIST openscad-20241114.tar.gz 25288312 BLAKE2B 0c1a9b4b15c12f4b3b600e81cdb5eeddb34887c83e2ae67735d7221b6660730dc5e7f97f80b84d187772adfa20d15e20f0cded1b4937e26305434847bbf2af27 SHA512 6c66c09e4b72ec5ef200d077b58fcb7a5a9acd359551a5daebdc3e24cb2cb7ed7d607b04e5563ea6f14d9d929310c3a9194ac889f2530c2c933235271040981a
+DIST openscad-MCAD-bd0a7ba3f042bfbced5ca1894b236cea08904e26.tar.gz 58895 BLAKE2B e154a38e1c36873a34f7c80b8fa484e4bbcb1b0c217e15b977e6cedc9a83fd2e1518791f9a58a4f0e893c2a55947d7eaddb660d8b725eca048c30f0ea41cf14a SHA512 c6208a90f6a58ebdc0477d3e1b6be2f52e4ce976ac619a87818437cb9696b7e83285564fde757d32efaf50033d5217b55f67b6ce342250de838dd09fef334f36
+DIST sanitizers-cmake-3f0542e4e034aab417c51b2b22c94f83355dee15.tar.gz 7451 BLAKE2B 2ca72e3ecda02d4f0eed05be0954af02706425e94626d5a4b9d897968e35c341413171e2388ece7e83dad9eb7b5e2c2f73811ea8db8fa33b0bce6d5dd53550b7 SHA512 10cd4eeb3bbb7bf5c6f5cf8b5bc6a531b1ec8bdc147583d8de028a3e4b8b9d0e258aad81f02135267ce8f7d87b30999dedd25b44c0754b5c31e00d8481cd412f
EBUILD openscad-2021.01-r5.ebuild 2902 BLAKE2B 02406d442221462d7b31201a6a7e08628f978b332768d5bdc829ca9bd1fc533aeb3ec1e106b0870f026844052fe2c95a2b314ccf8b26459e6c26ec08d7194041 SHA512 4a3461c8c586a12fba89edd04300e4def30dba724edba51aecb0b76b6f1dbba2efb8c98028c6faf7fc627d4b99bedfe3ce86808205b4e1ae3451c3f54ac041bb
-EBUILD openscad-9999.ebuild 2820 BLAKE2B 97b9433782b6e0b486681d14d3c812ba3e09357223a3d86a81243c0932a5530a88ad957b33af3e677f71743994f7f2e31bcd86ba5fef8ef4868fe4bfe1a40d74 SHA512 9d22437d0656e33ccda551f0fc7424fec6127a4e1c9b7de2495da95b64761631cbdb4bfb2b84fa9724a7ba0e2b555d6146e900c7cf7f9fcd8d7f25905a0e9a22
-MISC metadata.xml 1685 BLAKE2B 7d859b263a2ff2e466b581f8b04aa1f5830ce5676ce4996e6537f904453a3b8078094ea12b8e8ec0369592d4cbafa705283ae9a93b04dabf078f00c62d7f3375 SHA512 c31e5f1a7a44ef3f1ea8a50ce43361fc8aba9377e48586b2b98ebd624a1a8bb682aacfa720a9a239ef42f5db0755e7be05fa832165d9b1fa861ff88aea507658
+EBUILD openscad-20241114.ebuild 5205 BLAKE2B df69b9f6b15d7183fefdd5bc206ff1b6a1e6c637f9d9b07128de34c3c16a0808269a1ab34ce95a9e9c25daead299437a87acd943613b388cdd0507b65f75a8e5 SHA512 e2701dd32cf7c6d7dca435679439233859d400a859b352408af5550177a559d50fd8d442dafed1ad5f80b28adef1eba67c93020d1ee0f939f69c91d8c654a4e7
+EBUILD openscad-99999999.ebuild 5205 BLAKE2B df69b9f6b15d7183fefdd5bc206ff1b6a1e6c637f9d9b07128de34c3c16a0808269a1ab34ce95a9e9c25daead299437a87acd943613b388cdd0507b65f75a8e5 SHA512 e2701dd32cf7c6d7dca435679439233859d400a859b352408af5550177a559d50fd8d442dafed1ad5f80b28adef1eba67c93020d1ee0f939f69c91d8c654a4e7
+MISC metadata.xml 1765 BLAKE2B 8663817a4565428f0c78ddc70f5921e66709582773daad5edaf8b28b7603be9626de926c85b3b3ef300cf9932828417118b4f600f8e6e6dd47509efaedff9bda SHA512 5a4cdb759b3934c8e00e713f301c62d173ebfaffe6a2df2e0546c8940fd62573d75f7fa83f3edf881545adbef215b94297b971d386fa87ab7790a77500bf7288
diff --git a/media-gfx/openscad/metadata.xml b/media-gfx/openscad/metadata.xml
index 654ea84529a5..65b56ea5a6ce 100644
--- a/media-gfx/openscad/metadata.xml
+++ b/media-gfx/openscad/metadata.xml
@@ -27,8 +27,8 @@
<flag name="experimental">
Enable experimental features
</flag>
- <flag name="gamepad">
- Add support for gamepads through <pkg>dev-qt/qtgamepad</pkg>
+ <flag name="glx">
+ Enable GLX to interface OpenGL and X11
</flag>
<flag name="gui">
Enable or disable building of the GUI
@@ -36,6 +36,9 @@
<flag name="hidapi">
Build in support for HID-Class devices using <pkg>dev-libs/hidapi</pkg>
</flag>
+ <flag name="manifold">
+ Enable Manifold render backend via <pkg>sci-mathematics/manifold</pkg>
+ </flag>
<flag name="mimalloc">
Build using <pkg>dev-libs/mimalloc</pkg> as memory allocator
</flag>
diff --git a/media-gfx/openscad/openscad-20241114.ebuild b/media-gfx/openscad/openscad-20241114.ebuild
new file mode 100644
index 000000000000..238288a09864
--- /dev/null
+++ b/media-gfx/openscad/openscad-20241114.ebuild
@@ -0,0 +1,240 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic optfeature virtualx xdg
+
+DESCRIPTION="The Programmers Solid 3D CAD Modeller"
+HOMEPAGE="https://openscad.org/"
+
+if [[ ${PV} = *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/openscad/openscad.git"
+ EGIT_SUBMODULES=(
+ '*'
+ '-mimalloc'
+ '-submodules/manifold'
+ '-OpenCSG'
+ )
+else
+ COMMIT="bc0d078e0361d7dba66723ac31bdb3b650ecff37"
+ SANITIZERS_CMAKE_COMMIT="3f0542e4e034aab417c51b2b22c94f83355dee15"
+ 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}"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+fi
+
+# Code is GPL-3+, MCAD library is LGPL-2.1
+LICENSE="GPL-3+ LGPL-2.1"
+SLOT="0"
+
+IUSE="dbus +egl experimental glx +gui hidapi +manifold mimalloc pdf spacenav test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ dbus? ( gui )
+ hidapi? ( gui )
+ spacenav? ( gui )
+ || ( egl glx )
+"
+
+RDEPEND="
+ dev-libs/boost:=
+ dev-libs/double-conversion:=
+ dev-libs/glib:2
+ dev-libs/libxml2
+ dev-libs/libzip:=
+ media-gfx/opencsg:=
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/harfbuzz:=
+ media-libs/lib3mf:=
+ sci-mathematics/cgal:=
+ media-libs/libglvnd[X]
+ gui? (
+ dev-qt/qt5compat:6
+ dev-qt/qtbase:6[concurrent,dbus?,-gles2-only,network,opengl,widgets]
+ dev-qt/qtmultimedia:6
+ dev-qt/qtsvg:6
+ x11-libs/qscintilla:=[qt6]
+ )
+ hidapi? ( dev-libs/hidapi )
+ manifold? (
+ dev-cpp/tbb
+ sci-mathematics/manifold
+ )
+ mimalloc? ( dev-libs/mimalloc:= )
+ pdf? ( x11-libs/cairo )
+ spacenav? ( dev-libs/libspnav )
+"
+DEPEND="
+ ${RDEPEND}
+ dev-cpp/eigen:3
+"
+BDEPEND="
+ app-alternatives/yacc
+ app-alternatives/lex
+ dev-util/itstool
+ sys-devel/gettext
+ virtual/pkgconfig
+"
+
+DOCS=(
+ README.md
+ RELEASE_NOTES.md
+ doc/TODO.txt
+ doc/contributor_copyright.txt
+ doc/hacking.md
+ doc/testing.txt
+ doc/translation.txt
+)
+
+src_prepare() {
+ if use test && [[ ${PV} != *9999* ]] ; then
+ mv -f "${WORKDIR}/MCAD-${MCAD_COMMIT}"/* "${S}/libraries/MCAD/" || die
+ fi
+
+ # NOTE adhere CMP0167
+ # https://cmake.org/cmake/help/latest/policy/CMP0167.html
+ sed \
+ -e '/find_package(Boost/s/)/ CONFIG)/g' \
+ -i CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ # -Werror=odr
+ # https://github.com/openscad/openscad/issues/5239
+ filter-lto
+
+ local mycmakeargs=(
+ -DCLANG_TIDY="no"
+ -DENABLE_CAIRO="$(usex pdf)"
+ -DENABLE_CGAL="yes"
+ -DENABLE_EGL="$(usex egl)"
+ -DENABLE_GLX="$(usex glx)"
+ -DENABLE_MANIFOLD="$(usex manifold)"
+ -DENABLE_PYTHON="no"
+ -DENABLE_TESTS="$(usex test)"
+
+ -DEXPERIMENTAL="$(usex experimental)"
+
+ -DHEADLESS="$(usex !gui)"
+ -DUSE_BUILTIN_MANIFOLD="no"
+ -DUSE_CCACHE="no"
+ -DUSE_GLAD="yes"
+ -DUSE_GLEW="no"
+ -DUSE_LEGACY_RENDERERS="no"
+ -DUSE_MIMALLOC="$(usex mimalloc)"
+ -DUSE_QT6="$(usex gui)"
+ -DOFFLINE_DOCS="no" # TODO
+ )
+
+ if use gui; then
+ mycmakeargs+=(
+ -DENABLE_HIDAPI="$(usex hidapi)"
+ -DENABLE_QTDBUS="$(usex dbus)"
+ -DENABLE_SPNAV="$(usex spacenav)"
+ )
+ fi
+
+ if [[ ${PV} != *9999* ]] ; then
+ mycmakeargs+=(
+ -DCMAKE_MODULE_PATH="${WORKDIR}/sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}/cmake"
+ -DOPENSCAD_COMMIT="${COMMIT:0:9}"
+ -DOPENSCAD_VERSION="${PV:0:4}.${PV:4:2}.${PV:6:2}"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_test() {
+ local i WRITE=()
+
+ if [[ -d "/dev/udmabuf" ]]; then
+ WRITE+=(
+ "/dev/udmabuf"
+ )
+ fi
+
+ if [[ -d /sys/module/nvidia ]]; then
+ # /dev/dri/card*
+ # /dev/dri/renderD*
+ readarray -t dri <<<"$(
+ find /sys/module/nvidia/drivers/*/*:*:*.*/drm \
+ -mindepth 1 -maxdepth 1 -type d -exec basename {} \; \
+ | sed 's:^:/dev/dri/:'
+ )"
+
+ # /dev/nvidia{0-9}
+ readarray -t cards <<<"$(find /dev -regextype sed -regex '/dev/nvidia[0-9]*')"
+
+ WRITE+=(
+ "${dri[@]}"
+ "${cards[@]}"
+ "/dev/nvidiactl"
+ "/dev/nvidia-caps/"
+ "/dev/nvidia-modeset"
+ "/dev/nvidia-uvm"
+ "/dev/nvidia-uvm-tools"
+ )
+ fi
+
+ WRITE+=(
+ # for portage
+ "/proc/self/task/"
+ )
+ for i in "${WRITE[@]}"; do
+ if [[ ! -w "$i" ]]; then
+ eqawarn "addwrite $i"
+ addwrite "$i"
+
+ if [[ ! -d "$i" ]] && [[ ! -w "$i" ]]; then
+ eqawarn "can not access $i after addwrite"
+ fi
+ fi
+ done
+
+ sed \
+ -e "s/OPENSCAD_BINARY/OPENSCADPATH/g" \
+ -i tests/test_cmdline_tool.py || die
+
+ cd "${BUILD_DIR}" || die
+
+ # NOTE link in from CMAKE_USE_DIR
+ ln -s "${CMAKE_USE_DIR}/color-schemes" . || die
+ ln -s "${CMAKE_USE_DIR}/locale" . || die
+ ln -s "${CMAKE_USE_DIR}/shaders" . || die
+
+ virtx cmake_src_test -j1
+}
+
+src_install() {
+ DOCS+=( doc/*.pdf )
+
+ cmake_src_install
+
+ mv -i "${ED}"/usr/share/openscad/locale "${ED}"/usr/share || die "failed to move locales"
+ dosym -r /usr/share/locale /usr/share/openscad/locale
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ optfeature "support scad major mode in GNU Emacs" app-emacs/scad-mode
+}
diff --git a/media-gfx/openscad/openscad-9999.ebuild b/media-gfx/openscad/openscad-9999.ebuild
deleted file mode 100644
index 4cfaae64dfac..000000000000
--- a/media-gfx/openscad/openscad-9999.ebuild
+++ /dev/null
@@ -1,135 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-# TODO's
-# package and unbundle manifold
-# set up proper testing
-# set up OFFLINE_DOCS and add doc USE flag
-
-EAPI=8
-
-inherit cmake flag-o-matic git-r3 optfeature xdg
-
-DESCRIPTION="The Programmers Solid 3D CAD Modeller"
-HOMEPAGE="https://openscad.org/"
-SRC_URI=""
-EGIT_REPO_URI="https://github.com/openscad/openscad.git"
-
-# Code is GPL-3+, MCAD library is LGPL-2.1
-LICENSE="GPL-3+ LGPL-2.1"
-SLOT="0"
-KEYWORDS=""
-IUSE="cairo dbus egl experimental gamepad gui hidapi mimalloc spacenav"
-RESTRICT="test" # 32 out 1300+ tests fail
-
-REQUIRED_USE="
- dbus? ( gui )
- gamepad? ( gui )
- spacenav? ( gui )
-"
-
-RDEPEND="
- dev-cpp/eigen:3
- dev-libs/boost:=
- dev-libs/double-conversion:=
- dev-libs/glib:2
- dev-libs/libxml2
- dev-libs/libzip:=
- media-gfx/opencsg:=
- media-libs/fontconfig
- media-libs/freetype
- media-libs/glew:0=
- media-libs/harfbuzz:=
- media-libs/lib3mf:=
- sci-mathematics/cgal:=
- virtual/opengl
- cairo? ( x11-libs/cairo )
- gui? (
- dev-qt/qtconcurrent:5
- dev-qt/qtcore:5
- dev-qt/qtgui:5[-gles2-only]
- dev-qt/qtmultimedia:5
- dev-qt/qtnetwork:5
- dev-qt/qtopengl:5
- dev-qt/qtsvg:5
- dev-qt/qtwidgets:5
- x11-libs/libX11
- x11-libs/qscintilla:=[qt5(+)]
- dbus? ( dev-qt/qtdbus:5 )
- gamepad? ( dev-qt/qtgamepad:5 )
- )
- hidapi? ( dev-libs/hidapi )
- mimalloc? ( dev-libs/mimalloc:= )
- spacenav? ( dev-libs/libspnav )
-"
-DEPEND="${RDEPEND}"
-BDEPEND="
- dev-util/itstool
- app-alternatives/yacc
- app-alternatives/lex
- sys-devel/gettext
- virtual/pkgconfig
-"
-
-DOCS=(
- README.md
- RELEASE_NOTES.md
- doc/TODO.txt
- doc/contributor_copyright.txt
- doc/hacking.md
- doc/testing.txt
- doc/translation.txt
-)
-
-src_configure() {
- # -Werror=odr
- # https://github.com/openscad/openscad/issues/5239
- filter-lto
-
- local mycmakeargs=(
- -DCLANG_TIDY=OFF
- -DENABLE_CAIRO=$(usex cairo)
- -DENABLE_EGL=$(usex egl)
- -DENABLE_HIDAPI=$(usex hidapi)
- # needs python deps, unbundle first before enabling
- -DENABLE_MANIFOLD=OFF
- -DENABLE_SPNAV=$(usex spacenav)
- -DENABLE_TESTS=OFF
- -DEXPERIMENTAL=$(usex experimental)
- -DHEADLESS=$(usex gui OFF ON)
- -DOFFLINE_DOCS=OFF
- -DUSE_CCACHE=OFF
- -DUSE_MIMALLOC=$(usex mimalloc)
- )
-
- if use gui; then
- mycmakeargs+=(
- -DENABLE_GAMEPAD=$(usex gamepad)
- -DENABLE_QTDBUS=$(usex dbus)
- )
- fi
-
- cmake_src_configure
-}
-
-src_install() {
- DOCS+=( doc/*.pdf )
- cmake_src_install
-
- mv -i "${ED}"/usr/share/openscad/locale "${ED}"/usr/share || die "failed to move locales"
- dosym -r /usr/share/locale /usr/share/openscad/locale
-}
-
-pkg_postinst() {
- xdg_desktop_database_update
- xdg_icon_cache_update
- xdg_mimeinfo_database_update
-
- optfeature "support scad major mode in GNU Emacs" app-emacs/scad-mode
-}
-
-pkg_postrm() {
- xdg_desktop_database_update
- xdg_icon_cache_update
- xdg_mimeinfo_database_update
-}
diff --git a/media-gfx/openscad/openscad-99999999.ebuild b/media-gfx/openscad/openscad-99999999.ebuild
new file mode 100644
index 000000000000..238288a09864
--- /dev/null
+++ b/media-gfx/openscad/openscad-99999999.ebuild
@@ -0,0 +1,240 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake flag-o-matic optfeature virtualx xdg
+
+DESCRIPTION="The Programmers Solid 3D CAD Modeller"
+HOMEPAGE="https://openscad.org/"
+
+if [[ ${PV} = *9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/openscad/openscad.git"
+ EGIT_SUBMODULES=(
+ '*'
+ '-mimalloc'
+ '-submodules/manifold'
+ '-OpenCSG'
+ )
+else
+ COMMIT="bc0d078e0361d7dba66723ac31bdb3b650ecff37"
+ SANITIZERS_CMAKE_COMMIT="3f0542e4e034aab417c51b2b22c94f83355dee15"
+ 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}"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+fi
+
+# Code is GPL-3+, MCAD library is LGPL-2.1
+LICENSE="GPL-3+ LGPL-2.1"
+SLOT="0"
+
+IUSE="dbus +egl experimental glx +gui hidapi +manifold mimalloc pdf spacenav test"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ dbus? ( gui )
+ hidapi? ( gui )
+ spacenav? ( gui )
+ || ( egl glx )
+"
+
+RDEPEND="
+ dev-libs/boost:=
+ dev-libs/double-conversion:=
+ dev-libs/glib:2
+ dev-libs/libxml2
+ dev-libs/libzip:=
+ media-gfx/opencsg:=
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/harfbuzz:=
+ media-libs/lib3mf:=
+ sci-mathematics/cgal:=
+ media-libs/libglvnd[X]
+ gui? (
+ dev-qt/qt5compat:6
+ dev-qt/qtbase:6[concurrent,dbus?,-gles2-only,network,opengl,widgets]
+ dev-qt/qtmultimedia:6
+ dev-qt/qtsvg:6
+ x11-libs/qscintilla:=[qt6]
+ )
+ hidapi? ( dev-libs/hidapi )
+ manifold? (
+ dev-cpp/tbb
+ sci-mathematics/manifold
+ )
+ mimalloc? ( dev-libs/mimalloc:= )
+ pdf? ( x11-libs/cairo )
+ spacenav? ( dev-libs/libspnav )
+"
+DEPEND="
+ ${RDEPEND}
+ dev-cpp/eigen:3
+"
+BDEPEND="
+ app-alternatives/yacc
+ app-alternatives/lex
+ dev-util/itstool
+ sys-devel/gettext
+ virtual/pkgconfig
+"
+
+DOCS=(
+ README.md
+ RELEASE_NOTES.md
+ doc/TODO.txt
+ doc/contributor_copyright.txt
+ doc/hacking.md
+ doc/testing.txt
+ doc/translation.txt
+)
+
+src_prepare() {
+ if use test && [[ ${PV} != *9999* ]] ; then
+ mv -f "${WORKDIR}/MCAD-${MCAD_COMMIT}"/* "${S}/libraries/MCAD/" || die
+ fi
+
+ # NOTE adhere CMP0167
+ # https://cmake.org/cmake/help/latest/policy/CMP0167.html
+ sed \
+ -e '/find_package(Boost/s/)/ CONFIG)/g' \
+ -i CMakeLists.txt || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ # -Werror=odr
+ # https://github.com/openscad/openscad/issues/5239
+ filter-lto
+
+ local mycmakeargs=(
+ -DCLANG_TIDY="no"
+ -DENABLE_CAIRO="$(usex pdf)"
+ -DENABLE_CGAL="yes"
+ -DENABLE_EGL="$(usex egl)"
+ -DENABLE_GLX="$(usex glx)"
+ -DENABLE_MANIFOLD="$(usex manifold)"
+ -DENABLE_PYTHON="no"
+ -DENABLE_TESTS="$(usex test)"
+
+ -DEXPERIMENTAL="$(usex experimental)"
+
+ -DHEADLESS="$(usex !gui)"
+ -DUSE_BUILTIN_MANIFOLD="no"
+ -DUSE_CCACHE="no"
+ -DUSE_GLAD="yes"
+ -DUSE_GLEW="no"
+ -DUSE_LEGACY_RENDERERS="no"
+ -DUSE_MIMALLOC="$(usex mimalloc)"
+ -DUSE_QT6="$(usex gui)"
+ -DOFFLINE_DOCS="no" # TODO
+ )
+
+ if use gui; then
+ mycmakeargs+=(
+ -DENABLE_HIDAPI="$(usex hidapi)"
+ -DENABLE_QTDBUS="$(usex dbus)"
+ -DENABLE_SPNAV="$(usex spacenav)"
+ )
+ fi
+
+ if [[ ${PV} != *9999* ]] ; then
+ mycmakeargs+=(
+ -DCMAKE_MODULE_PATH="${WORKDIR}/sanitizers-cmake-${SANITIZERS_CMAKE_COMMIT}/cmake"
+ -DOPENSCAD_COMMIT="${COMMIT:0:9}"
+ -DOPENSCAD_VERSION="${PV:0:4}.${PV:4:2}.${PV:6:2}"
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_test() {
+ local i WRITE=()
+
+ if [[ -d "/dev/udmabuf" ]]; then
+ WRITE+=(
+ "/dev/udmabuf"
+ )
+ fi
+
+ if [[ -d /sys/module/nvidia ]]; then
+ # /dev/dri/card*
+ # /dev/dri/renderD*
+ readarray -t dri <<<"$(
+ find /sys/module/nvidia/drivers/*/*:*:*.*/drm \
+ -mindepth 1 -maxdepth 1 -type d -exec basename {} \; \
+ | sed 's:^:/dev/dri/:'
+ )"
+
+ # /dev/nvidia{0-9}
+ readarray -t cards <<<"$(find /dev -regextype sed -regex '/dev/nvidia[0-9]*')"
+
+ WRITE+=(
+ "${dri[@]}"
+ "${cards[@]}"
+ "/dev/nvidiactl"
+ "/dev/nvidia-caps/"
+ "/dev/nvidia-modeset"
+ "/dev/nvidia-uvm"
+ "/dev/nvidia-uvm-tools"
+ )
+ fi
+
+ WRITE+=(
+ # for portage
+ "/proc/self/task/"
+ )
+ for i in "${WRITE[@]}"; do
+ if [[ ! -w "$i" ]]; then
+ eqawarn "addwrite $i"
+ addwrite "$i"
+
+ if [[ ! -d "$i" ]] && [[ ! -w "$i" ]]; then
+ eqawarn "can not access $i after addwrite"
+ fi
+ fi
+ done
+
+ sed \
+ -e "s/OPENSCAD_BINARY/OPENSCADPATH/g" \
+ -i tests/test_cmdline_tool.py || die
+
+ cd "${BUILD_DIR}" || die
+
+ # NOTE link in from CMAKE_USE_DIR
+ ln -s "${CMAKE_USE_DIR}/color-schemes" . || die
+ ln -s "${CMAKE_USE_DIR}/locale" . || die
+ ln -s "${CMAKE_USE_DIR}/shaders" . || die
+
+ virtx cmake_src_test -j1
+}
+
+src_install() {
+ DOCS+=( doc/*.pdf )
+
+ cmake_src_install
+
+ mv -i "${ED}"/usr/share/openscad/locale "${ED}"/usr/share || die "failed to move locales"
+ dosym -r /usr/share/locale /usr/share/openscad/locale
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ optfeature "support scad major mode in GNU Emacs" app-emacs/scad-mode
+}