commit:     9e9f187b3420b23315e79b166cbc078d4faad73d
Author:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 27 08:40:32 2023 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Wed Sep 27 08:41:52 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9e9f187b

sci-mathematics/mathematica: add 13.3.1

Closes: https://bugs.gentoo.org/913011
Co-authored-by: K Cameron <cameron <AT> ieee.org>
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>

 sci-mathematics/mathematica/Manifest               |   1 +
 .../mathematica/mathematica-13.3.1.ebuild          | 188 +++++++++++++++++++++
 2 files changed, 189 insertions(+)

diff --git a/sci-mathematics/mathematica/Manifest 
b/sci-mathematics/mathematica/Manifest
index 35f7e055fb48..32d0e3f76004 100644
--- a/sci-mathematics/mathematica/Manifest
+++ b/sci-mathematics/mathematica/Manifest
@@ -6,4 +6,5 @@ DIST Mathematica_13.0.0_BNDL_LINUX.sh 5118155611 BLAKE2B 
ff15a9def53f7fb808b117e
 DIST Mathematica_13.0.1_BNDL_LINUX.sh 5094982487 BLAKE2B 
55375b6038422fd5f11db36b33bc1162064c8d6a88575c982ce53b15678bf7b19dc62d66336b2105cbaa18a7fe86ba64f09db40e494c15d558f3ebd92ea025fe
 SHA512 
cf4106202dfcf290f0dbe9e8062457eb705c2802f608e60f2810fc31e166ab60b5726c0c9bf675fadb02f5628af1dc2d25db8d02119dc63381eef8a88cdb6ec6
 DIST Mathematica_13.1.0_LINUX.sh 2032362325 BLAKE2B 
d044fe1ed3c71e6ebc2357c440af6feaeb360962aea32843abbdfe40f124a29bd07bf0c3a5a35f8bac29c97a7d23dbcd79967b6d0028d01e09c9b662fc1f2b95
 SHA512 
3d84313be4da86d72cc652b0ec7dbbbf6d815debbde4c9ab855f447dda36aeccb416e90d298f0be975ae86fdf55f20aa7597b0d96d291ebdf6e4eb0dc2ca5433
 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 WLDocs_13.1.0_LINUX.sh 3546448755 BLAKE2B 
e5dbf6bf9cd60a313329df8591c281215039d7efa7c83a53f3b2d4e176765b62efae3ff04628ecf6905e76bbaf6867e87c96bd6188d13df2b981bea5a633335a
 SHA512 
2107b37b30fc76974d040e746ca26ddb5df23bbacb9d8fabcd546a7cf789f1daaf70179c53890bed2385430665f601fbbc1f9829bf64f61068909ea8774f91d2

diff --git a/sci-mathematics/mathematica/mathematica-13.3.1.ebuild 
b/sci-mathematics/mathematica/mathematica-13.3.1.ebuild
new file mode 100644
index 000000000000..82dfd39089d6
--- /dev/null
+++ b/sci-mathematics/mathematica/mathematica-13.3.1.ebuild
@@ -0,0 +1,188 @@
+# Copyright 1999-2023 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="Mathematica_${PV}_BNDL_LINUX.sh"
+S="${WORKDIR}"
+
+LICENSE="all-rights-reserved"
+KEYWORDS="-* ~amd64"
+SLOT="0"
+IUSE="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/Linux/AllVersions"
 || 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}"
+}

Reply via email to