diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-11-14 03:02:32 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-11-14 03:02:32 +0000 |
commit | d3c7d3e5f9607edef1a795ccc502ab3eb3121165 (patch) | |
tree | d36ccc4ef4aa53927a8cd66bc5d3ab06fe1bdd24 /sci-mathematics/mathematica | |
parent | 4dc2f97ed84159736ecfb5dea5485e83b27810d1 (diff) |
gentoo auto-resync : 14:11:2024 - 03:02:32
Diffstat (limited to 'sci-mathematics/mathematica')
-rw-r--r-- | sci-mathematics/mathematica/Manifest | 3 | ||||
-rw-r--r-- | sci-mathematics/mathematica/mathematica-14.1.0.ebuild | 211 |
2 files changed, 214 insertions, 0 deletions
diff --git a/sci-mathematics/mathematica/Manifest b/sci-mathematics/mathematica/Manifest index 38f127762382..13e47d988dd2 100644 --- a/sci-mathematics/mathematica/Manifest +++ b/sci-mathematics/mathematica/Manifest @@ -11,6 +11,8 @@ DIST Mathematica_13.3.1_LINUX.sh 2057562969 BLAKE2B 9b76652135330b0b44027faad370 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 +DIST Wolfram_14.1.0_LIN.sh 2181436246 BLAKE2B fe51d8dc47e92c502d35847ccc27caec1321db693a0c77fbb8c6a7fea450cee256623b1427724d165cf85d2631dded5cf7ff43e24a1990a04b7e3c3b25d9ee2a SHA512 db6ca86308480dc623346bf0b4fb11008703768f67c83f5c2db5827497ecd856f564cd719a418bcd572e29e7ca9381d0b6fa4ba7de9a6d52b115106bd8517818 +DIST Wolfram_14.1.0_LIN_Bndl.sh 6452683618 BLAKE2B 51353b92af4bbe9b650513458171a9df5bb853ad2750a206bf9533cd9e797ea98b78bfc92dae9a4c98bd86a50a9acfa423439bb1d0d877c9128a9a530520869c SHA512 b8618468a9a443183c23197bab8384237225131b422bd2315ebbba2bc15ef501a1f1a5ca30d6a689fa89ebce8050cf86497fc08c2c80ae034a18aa8921a95791 EBUILD mathematica-10.3.1-r1.ebuild 2821 BLAKE2B 958869840413f275d50272636693c776ac399cc14401d21d8709aab81ec23f396b0407618b787a4c04fe5a70327c604bef81735f6fcdeb8cbbaf6b74cf387172 SHA512 ac52970098b31e2e1a72d50dffc0db3cfe67c68eed8272b1d78febe5e47eb514b333c23a9c5f7030bb606f937106b5a237818d9ab829779533e33f5459d2aeb2 EBUILD mathematica-10.3.1-r2.ebuild 2878 BLAKE2B ce97d8f961e2fa5084a9f672def094f7549095c556929a1304703ab53163373cafccb6e4537df6e6969bd5c18cdb2525d49a342eaa029e84146d4b76635a928a SHA512 e3d3c1264ad780e604894378fd3d1b552d6384c1c47384b88aef1ef065071a47991eed4cb2def79412a479f277038bfc654c3b282347aae93fdfd0ec07c2e20e EBUILD mathematica-12.1.0.ebuild 3134 BLAKE2B 4a8f269cfb1d77dd941dfab8c56dc310306aea75fd6d676f2e79a1208420c25161afef7e253c101763d57a441480403580dbb62b31b420f6dbce3f7cfa786fc8 SHA512 cf14b8567a9dc6bd7f19447cb9d277c929084abf20bf073c4d9aa049e1795ddba0862f43340bfbb37d2633d84e7b5adfe4a3123554fd62bc55c018394177a2ee @@ -22,4 +24,5 @@ EBUILD mathematica-13.1.0.ebuild 7044 BLAKE2B 6411bceb04e19d939c7ac4287f37ecaf20 EBUILD mathematica-13.2.1.ebuild 6345 BLAKE2B bf34cf285d0bd5a60c4aa5987736f95a1b441f059a2d8f042a0245ed1265ef925e36cae9090d5c0d9e414ea2f573094f764f67c6657136541a4ace17666877c5 SHA512 2fe35f26f4c4066913088aec96b42cc4fb3a63b4cf101adea1fc191bd6ea9ed0cfa3d240be5a5750d348900dd4ba5efef752362c7b10808b612056b03ca6e951 EBUILD mathematica-13.3.1.ebuild 6888 BLAKE2B 7f5c1476cd54977b9adc085c3ac6a3d3220bf59ce9414b90a51e21bd616369725b97d6afd50d78f496b023ce52b18800bf1449995e8291f823f12f969a0fdece SHA512 d01c16ef26c730dda363df266f245a8e4b7c0897a9362ce565cfe7d90b088735df916a3bc214048da5fd1dc6fb036e8ef0c00d52168663cb99a121eb51c47d0b EBUILD mathematica-14.0.0.ebuild 6883 BLAKE2B 8051af45347c97e35a62d460c9afcca750de86166e7883694b36d5c9ae2fcd972bec27f3b6f5c2b6cae6747ccac213c9c8713980ff6a0d9cf5902b0a9e6c6391 SHA512 fb46fc9b0eb7ecf1f8a9b30035433a5ff1ee5e68f6c0790b364bc17f061fb2570644f22d342b84e39989c937a72e2e952583516db2df30796d402ac47e60c87a +EBUILD mathematica-14.1.0.ebuild 7614 BLAKE2B 6bf28c03bcb2bcd1732543176cde62c11d5c9cdc0abfec5fe884fd1ae0021af19270d81aa7d09c6ec2c91dd16913a38dac82b714a102202941c80689ff28f581 SHA512 bc84b64f481884a1f5521a1216dfe58bbaa0c64abb6811cf5e3f12a5b98b19fcb6818bb7d21f1b4a7ab89bb2eb30ff52d13c1e70d1fc4516db9e473d13b0b847 MISC metadata.xml 1224 BLAKE2B 45915419ad562bc26b980e184cc74e04a092c00b38fe17ec81f6a62c7d0ac9616b844fbd8fc4eaa61eb7a2b62e920b482532956c45e18878ad357f435699e367 SHA512 7ebd5fd0f09a4468b5031d21085f7f1ea6fe1d0fc81ac942dbb11a0c62b7c4ff918636f53ea77e6fbe0c53733056b30c97409532955bddda0a93bb1a82d963c7 diff --git a/sci-mathematics/mathematica/mathematica-14.1.0.ebuild b/sci-mathematics/mathematica/mathematica-14.1.0.ebuild new file mode 100644 index 000000000000..5bb3f3dad8d4 --- /dev/null +++ b/sci-mathematics/mathematica/mathematica-14.1.0.ebuild @@ -0,0 +1,211 @@ +# 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" + +# Note: Please do not "remove old". Mathematica is licensed by version, and there +# are certainly still active installations of old versions around. +# That said, the compatibility of old versions with new Linux installs is not +# really great... + +HOMEPAGE="https://www.wolfram.com/mathematica/" +SRC_URI=" + bundle? ( Wolfram_${PV}_LIN_Bndl.sh ) + !bundle? ( Wolfram_${PV}_LIN.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-libs/openssl-compat:1.1.1 + 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="math MathKernel mcc wolfram WolframKernel wolframnb WolframNB wolframscript" +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/WolframInstaller" || die + sed -e "s|xdg-desktop-menu|xdg-dummy-command|g" -i "Unix/Installer/WolframInstaller" || die + sed -e "s|xdg-icon-resource|xdg-dummy-command|g" -i "Unix/Installer/WolframInstaller" || die + sed -e "s|xdg-mime|xdg-dummy-command|g" -i "Unix/Installer/WolframInstaller" || die + # fix ACCESS DENIED issue when installer check the avahi-daemon + sed -e "s|avahi-daemon -c|true|g" -i "Unix/Installer/WolframInstaller" || die + # fix ACCESS DENIED issue when installing documentation + sed -e "s|\(exec ./WolframInstaller\) -noprompt|\1 -auto -targetdir=${S}/${M_TARGET}/Documentation -noexec|" -i "Unix/Installer/WolframInstaller" || die + + # in the depths of the installer it tests whether it can write here + # addpredict is by far the simplest solution + addpredict /usr/share/thisisatest + + /bin/sh "Unix/Installer/WolframInstaller" -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 -r {} + || 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} + [[ "$(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 + if [[ -e "${ED}/${M_TARGET}/Executables/${name}" || -h "${ED}/${M_TARGET}/Executables/${name}" ]] ; then + 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}" + + einfo "Symlinking ${name} to /opt/bin" + dosym ../../usr/bin/${name} /opt/bin/${name} + else + ewarn "${name} in M_BINARIES does not exist in ${PV}" + fi + done + + # for convenience + if [[ ! -e "${ED}/usr/bin/Mathematica" ]] ; then + dosym WolframNB /usr/bin/Mathematica + fi + + # fix some embedded paths and install desktop files + for filename in $(find "${ED}/${M_TARGET}/SystemFiles/Installation" -name "*.desktop") ; do + einfo "Fixing ${filename}" + sed -e "s|${S}||g" -e 's|^\t\t||g' -e 's|\\+|+|g' -e 's:Version=2.0:Version=1.5: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-wolfram.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}" +} |