summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas K. Hüttel <dilfridge@gentoo.org>2024-07-30 16:17:14 +0200
committerAndreas K. Hüttel <dilfridge@gentoo.org>2024-07-30 16:20:36 +0200
commit282c4b518562e6c194761d9ce0882f30672219c5 (patch)
tree22306441b2223796916bed742032a7f6b7a15f97 /sci-mathematics
parentdev-python/scikit-build-core: Bump to 0.9.9 (diff)
downloadgentoo-282c4b518562e6c194761d9ce0882f30672219c5.tar.gz
gentoo-282c4b518562e6c194761d9ce0882f30672219c5.tar.bz2
gentoo-282c4b518562e6c194761d9ce0882f30672219c5.zip
sci-mathematics/mathematica: add 14.0.0
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
Diffstat (limited to 'sci-mathematics')
-rw-r--r--sci-mathematics/mathematica/Manifest2
-rw-r--r--sci-mathematics/mathematica/mathematica-14.0.0.ebuild191
2 files changed, 193 insertions, 0 deletions
diff --git a/sci-mathematics/mathematica/Manifest b/sci-mathematics/mathematica/Manifest
index 7de6a79d2046..791ae5409e9a 100644
--- a/sci-mathematics/mathematica/Manifest
+++ b/sci-mathematics/mathematica/Manifest
@@ -8,4 +8,6 @@ DIST Mathematica_13.1.0_LINUX.sh 2032362325 BLAKE2B d044fe1ed3c71e6ebc2357c440af
DIST Mathematica_13.2.1_BNDL_LINUX.sh 5512713048 BLAKE2B 266a6979faab891c6fc10a1bc690ee21ad3af01413a2af29d81c27dffc92d8a10a2947aefe978dfcf16378e8f8f0d33145f99930840eeb2843d73270d2ad0de9 SHA512 2062b2ce7f6e7f33b8623607ef71475091b877112f03ffbc32671f513b71925aad8489f25e1b01ec75b5d4d7bee03bb2dc8b2627f767633de578ecae1d86b7f6
DIST Mathematica_13.3.1_BNDL_LINUX.sh 6072605531 BLAKE2B f9e6c218bef266fd9cb86905299f4074377c29270379cee24ad473bedc628bb30739ea2b00b333d3c7546775c9c9fbf95ebd2ff1fa075d9cce447a20279a0a6c SHA512 b40f4301d928fb760e0f1421df2dee78118edb9360afbf117049c93b3ee1a84975c3987bbef4483ff4f67c3f8d63c66081df71f6800dd259f8735ca062723d3f
DIST Mathematica_13.3.1_LINUX.sh 2057562969 BLAKE2B 9b76652135330b0b44027faad3703c1bf0dae3913416d2839e90582323291415fcbc7a59ca0bed152717a2e323d1b0f2ed2f46d700477b9574dec128ccaa8843 SHA512 cd470e1d171ab2df56b4d59fc9f156544217ea11c5e2d67683ca38c6a579cfebf4271bca7a52675fdab1d1d2d34a9b22410a93d95069a9008b2a377aae279201
+DIST Mathematica_14.0.0_BNDL_LINUX.sh 6362499931 BLAKE2B d5c4df6e556c970103f0736c72fb0b4419d41c19eb8c3887412c84c39446436279b3c1a2b8b5eb76158ddc4ae55d0131b90ef9f769f2350fdec4b93a1c44f69c SHA512 1c16369501a9a7e5e7864438a766ac89bbe5f20100eda6da2bb03120ab112acd55dda63b0c68a056c7899db0a1c8881e97bf31b7d58fa75a095b3b979347b4d5
+DIST Mathematica_14.0.0_LINUX.sh 2175783771 BLAKE2B ceb6e0d9ee8ef5c548c5dcf5d426ff1678c039a66da3936e69cadb91c24102163be253a63af528fedc37ce87f9fd2617958934479ed570955a14a2b2980d5a0e SHA512 83c02183e892a3a5a9b2b6db4010b763b50b30ac8d9417ceb1256b3dd7d78ecbad132b7fcd7c797a64536b64e5894f54341379c4c599420faff5857bd0f22390
DIST WLDocs_13.1.0_LINUX.sh 3546448755 BLAKE2B e5dbf6bf9cd60a313329df8591c281215039d7efa7c83a53f3b2d4e176765b62efae3ff04628ecf6905e76bbaf6867e87c96bd6188d13df2b981bea5a633335a SHA512 2107b37b30fc76974d040e746ca26ddb5df23bbacb9d8fabcd546a7cf789f1daaf70179c53890bed2385430665f601fbbc1f9829bf64f61068909ea8774f91d2
diff --git a/sci-mathematics/mathematica/mathematica-14.0.0.ebuild b/sci-mathematics/mathematica/mathematica-14.0.0.ebuild
new file mode 100644
index 000000000000..f75781884235
--- /dev/null
+++ b/sci-mathematics/mathematica/mathematica-14.0.0.ebuild
@@ -0,0 +1,191 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CHECKREQS_DISK_BUILD=20G
+inherit check-reqs desktop unpacker xdg
+
+DESCRIPTION="Wolfram Mathematica"
+HOMEPAGE="https://www.wolfram.com/mathematica/"
+SRC_URI="
+ bundle? ( Mathematica_${PV}_BNDL_LINUX.sh )
+ !bundle? ( Mathematica_${PV}_LINUX.sh )
+"
+S="${WORKDIR}"
+
+LICENSE="all-rights-reserved"
+KEYWORDS="-* ~amd64"
+SLOT="0"
+IUSE="bundle cuda doc ffmpeg R"
+
+RESTRICT="strip mirror bindist fetch"
+
+# Mathematica comes with a lot of bundled stuff. We should place here only what we
+# explicitly override with LD_PRELOAD.
+# RLink (libjri.so) requires dev-lang/R
+# FFmpegTools (FFmpegToolsSystem-6.0.so) requires media-video/ffmpeg-6.0
+# FFmpegTools (FFmpegToolsSystem-4.4.so) requires media-video/ffmpeg-4.4
+RDEPEND="
+ dev-qt/qt5compat:6
+ dev-qt/qtbase:6[eglfs,wayland]
+ dev-qt/qtsvg:6
+ dev-qt/qtwayland:6[compositor]
+ media-libs/freetype
+ virtual/libcrypt
+ cuda? (
+ >=dev-util/nvidia-cuda-toolkit-11
+ <dev-util/nvidia-cuda-toolkit-13
+ )
+ ffmpeg? ( || (
+ media-video/ffmpeg:0/56.58.58
+ media-video/ffmpeg:0/58.60.60
+ ) )
+ R? ( dev-lang/R )
+"
+
+DEPEND="
+ ${RDEPEND}
+"
+
+BDEPEND="
+ dev-util/patchelf
+"
+
+# we need this a few times
+MPN="Mathematica"
+MPV=$(ver_cut 1-2)
+M_BINARIES="MathKernel Mathematica WolframKernel wolframscript math mathematica mcc wolfram"
+M_TARGET="opt/Wolfram/${MPN}/${MPV}"
+
+# we might as well list all files in all QA variables...
+QA_PREBUILT="opt/*"
+
+src_unpack() {
+ /bin/sh "${DISTDIR}/${A}" --nox11 --keep --target "${S}/unpack_app" -- "-help" || die
+}
+
+src_install() {
+ local ARCH='-x86-64'
+
+ pushd "${S}/unpack_app" > /dev/null || die
+ # fix ACCESS DENIED issue when installer generate desktop files
+ sed -e "s|xdg-desktop-icon|xdg-dummy-command|g" -i "Unix/Installer/MathInstaller" || die
+ sed -e "s|xdg-desktop-menu|xdg-dummy-command|g" -i "Unix/Installer/MathInstaller" || die
+ sed -e "s|xdg-icon-resource|xdg-dummy-command|g" -i "Unix/Installer/MathInstaller" || die
+ sed -e "s|xdg-mime|xdg-dummy-command|g" -i "Unix/Installer/MathInstaller" || die
+ # fix ACCESS DENIED issue when installer check the avahi-daemon
+ sed -e "s|avahi-daemon -c|true|g" -i "Unix/Installer/MathInstaller" || die
+ # fix ACCESS DENIED issue when installing documentation
+ sed -e "s|\(exec ./MathInstaller\) -noprompt|\1 -auto -targetdir=${S}/${M_TARGET}/Documentation -noexec|" -i "Unix/Installer/MathInstaller" || die
+
+ /bin/sh "Unix/Installer/MathInstaller" -auto "-targetdir=${S}/${M_TARGET}" "-execdir=${S}/opt/bin" || die
+ popd > /dev/null || die
+
+ if ! use doc; then
+ einfo "Removing documentation"
+ rm -r "${S}/${M_TARGET}/Documentation" || die
+ fi
+
+ # fix world writable file QA problem for files
+ while IFS= read -r -d '' i; do
+ chmod o-w "${i}" || die
+ done < <(find "${S}/${M_TARGET}" -type f -print0)
+
+ einfo 'Removing MacOS- and Windows-specific files'
+ find "${S}/${M_TARGET}" -type d -\( -name Windows -o -name Windows-x86-64 \
+ -o -name MacOSX -o -name MacOSX-x86-64 -o -name Macintosh -\) \
+ -exec rm -rv {} + || die
+
+ if ! use cuda; then
+ einfo 'Removing cuda support'
+ rm -r "${S}/${M_TARGET}/SystemFiles/Components/CUDACompileTools/LibraryResources/Linux-x86-64/CUDAExtensions"*.so || die
+ fi
+
+ # Linux-x86-64/AllVersions is the supported version, other versions remove
+ einfo 'Removing unsupported RLink versions'
+ rm -r "${S}/${M_TARGET}/SystemFiles/Links/RLink/SystemFiles/Libraries/Linux-x86-64/3.5.0" || die
+ rm -r "${S}/${M_TARGET}/SystemFiles/Links/RLink/SystemFiles/Libraries/Linux-x86-64/3.6.0" || die
+ rm -r "${S}/${M_TARGET}/SystemFiles/Links/RLink/SystemFiles/Libraries/MacOSX-ARM64" || die
+ # RLink can't use if R not used
+ if ! use R; then
+ einfo 'Removing RLink support'
+ rm -r "${S}/${M_TARGET}/SystemFiles/Links/RLink/SystemFiles/Libraries/Linux-x86-64/AllVersions/libjri.so" || die
+ fi
+ # FFmpegTools can't use if ffmpeg not used
+ if ! use ffmpeg; then
+ einfo 'Removing FFmpegTools support'
+ rm -r "${S}/${M_TARGET}/SystemFiles/Links/FFmpegTools/LibraryResources/Linux-x86-64/FFmpegToolsSystem"*.so || die
+ fi
+
+ # fix RPATH
+ while IFS= read -r -d '' i; do
+ # Use \x7fELF header to separate ELF executables and libraries
+ # Skip .o files and static files to avoid surprises
+ [[ $(od -t x1 -N 4 "${i}") == *"7f 45 4c 46"* ]] || continue
+ [[ -f "${i}" && "${i: -2}" != ".o" ]] || continue
+ [[ "$(file "${i}")" == *"dynamically"* ]] || continue
+ einfo "Fixing RPATH of ${i}"
+ patchelf --set-rpath \
+'/'"${M_TARGET}"'/SystemFiles/Libraries/Linux-x86-64:'\
+'/'"${M_TARGET}"'/SystemFiles/Libraries/Linux-x86-64/Qt/lib:'\
+'/'"${M_TARGET}"'/SystemFiles/Java/Linux-x86-64/lib:'\
+'/'"${M_TARGET}"'/SystemFiles/Java/Linux-x86-64/lib/jli:'\
+'$ORIGIN' "${i}" || \
+ die "patchelf failed on ${i}"
+ done < <(find "${S}/${M_TARGET}" -type f -print0)
+
+ # fix broken symbolic link
+ ln -sf "/${M_TARGET}/SystemFiles/Kernel/Binaries/Linux-x86-64/wolframscript" "${S}/${M_TARGET}/Executables/wolframscript" || die
+
+ # move all over
+ mv "${S}"/opt "${ED}"/opt || die
+
+ # the autogenerated symlinks point into sandbox, remove
+ rm "${ED}"/opt/bin/* || die
+
+ # install wrappers instead
+ for name in ${M_BINARIES} ; do
+ einfo "Generating wrapper for ${name}"
+ echo '#!/bin/sh' >> "${T}/${name}" || die
+ echo 'QT_QPA_PLATFORM="wayland;xcb"' >> "${T}/${name}" || die
+ echo "LD_PRELOAD=/usr/$(get_libdir)/libfreetype.so.6:/$(get_libdir)/libz.so.1:/$(get_libdir)/libcrypt.so.1 /${M_TARGET}/Executables/${name} \$*" \
+ >> "${T}/${name}" || die
+ dobin "${T}/${name}"
+ done
+ for name in ${M_BINARIES} ; do
+ einfo "Symlinking ${name} to /opt/bin"
+ dosym ../../usr/bin/${name} /opt/bin/${name}
+ done
+
+ # fix some embedded paths and install desktop files
+ for filename in $(find "${ED}/${M_TARGET}/SystemFiles/Installation" -name "wolfram-mathematica*.desktop") ; do
+ einfo "Fixing ${filename}"
+ sed -e "s|${S}||g" -e 's|^\t\t||g' -i "${filename}" || die
+ echo "Categories=Physics;Science;Engineering;2DGraphics;Graphics;" >> "${filename}" || die
+ domenu "${filename}"
+ done
+
+ # install icons
+ for iconsize in 16 32 64 128 256; do
+ local iconfile="${ED}/${M_TARGET}/SystemFiles/FrontEnd/SystemResources/X/App-${iconsize}.png"
+ if [ -e "${iconfile}" ]; then
+ newicon -s "${iconsize}" "${iconfile}" wolfram-mathematica.png
+ fi
+ done
+
+ # install mime types
+ insinto /usr/share/mime/application
+ for filename in $(find "${ED}/${M_TARGET}/SystemFiles/Installation" -name "application-*.xml"); do
+ basefilename=$(basename "${filename}")
+ mv "${filename}" "${T}/${basefilename#application-}" || die
+ doins "${T}/${basefilename#application-}"
+ done
+}
+
+pkg_nofetch() {
+ einfo "Please place the Wolfram Mathematica installation file ${SRC_URI}"
+ einfo "in your \$\{DISTDIR\}."
+ einfo "Note that to actually run and use Mathematica you need a valid license."
+ einfo "Wolfram provides time-limited evaluation licenses at ${HOMEPAGE}"
+}