public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Andrew Ammerlaan" <andrewammerlaan@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-mathematics/mathematica/
Date: Mon,  8 Aug 2022 17:29:17 +0000 (UTC)	[thread overview]
Message-ID: <1659979748.7d27cc6b9b5330b09c9e1e2870882654e11a6cee.andrewammerlaan@gentoo> (raw)

commit:     7d27cc6b9b5330b09c9e1e2870882654e11a6cee
Author:     Huang Rui <vowstar <AT> gmail <DOT> com>
AuthorDate: Sun Aug  7 15:51:12 2022 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Mon Aug  8 17:29:08 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d27cc6b

sci-mathematics/mathematica: add 13.1.0

Signed-off-by: Huang Rui <vowstar <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/25148
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>

 sci-mathematics/mathematica/Manifest               |   2 +
 .../mathematica/mathematica-13.1.0.ebuild          | 189 +++++++++++++++++++++
 sci-mathematics/mathematica/metadata.xml           |   1 +
 3 files changed, 192 insertions(+)

diff --git a/sci-mathematics/mathematica/Manifest b/sci-mathematics/mathematica/Manifest
index e465fb6c5a09..7a6a8e62ab4a 100644
--- a/sci-mathematics/mathematica/Manifest
+++ b/sci-mathematics/mathematica/Manifest
@@ -4,3 +4,5 @@ DIST Mathematica_12.1.1_LINUX.sh 4438946649 BLAKE2B 473f814a3e0686bb3a6ac1f49c88
 DIST Mathematica_12.2.0_LINUX.sh 4454613844 BLAKE2B 03b0567afe001fd0781ea6daf0f23ccaccf44ed6ce225cc190239d228c684099a1fa1070cedc0c5bf1517804a4b8b34903d56b2b028392895437a304b56f682d SHA512 0b98d0f2a15ea834892897a64089da08bee5783a8a51b1a0e624618105c896c91c865cca5b5c7b8e72569a5065ef091be7138b7d72d94e4697a213a91d5b8770
 DIST Mathematica_13.0.0_BNDL_LINUX.sh 5118155611 BLAKE2B ff15a9def53f7fb808b117ecf2573f415b928c13a86d15634e6282c8f8542b32fa42ff76baeac95faa1242dc4350b0db28231c5cb7f36bc5b57425c2804bf996 SHA512 05008559c531a6920745d0047be0f2c42cb6994309db3f2ee2ad44151655f43d88de063a4952c5ac5544818e2da8973305ee46f44e74d7301da21cdf710cbd5b
 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 WLDocs_13.1.0_LINUX.sh 3546448755 BLAKE2B e5dbf6bf9cd60a313329df8591c281215039d7efa7c83a53f3b2d4e176765b62efae3ff04628ecf6905e76bbaf6867e87c96bd6188d13df2b981bea5a633335a SHA512 2107b37b30fc76974d040e746ca26ddb5df23bbacb9d8fabcd546a7cf789f1daaf70179c53890bed2385430665f601fbbc1f9829bf64f61068909ea8774f91d2

diff --git a/sci-mathematics/mathematica/mathematica-13.1.0.ebuild b/sci-mathematics/mathematica/mathematica-13.1.0.ebuild
new file mode 100644
index 000000000000..577553f186a1
--- /dev/null
+++ b/sci-mathematics/mathematica/mathematica-13.1.0.ebuild
@@ -0,0 +1,189 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CHECKREQS_DISK_BUILD=19G
+inherit check-reqs desktop unpacker xdg
+
+DESCRIPTION="Wolfram Mathematica"
+SRC_URI="
+	doc? ( WLDocs_${PV}_LINUX.sh )
+	Mathematica_${PV}_LINUX.sh
+"
+HOMEPAGE="https://www.wolfram.com/mathematica/"
+
+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-5.0.so) requires media-video/ffmpeg
+RDEPEND="
+	cuda? ( dev-util/nvidia-cuda-toolkit )
+	media-libs/freetype
+	ffmpeg? ( media-video/ffmpeg )
+	R? ( dev-lang/R )
+	virtual/libcrypt
+"
+
+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/*"
+
+S=${WORKDIR}
+
+src_unpack() {
+	/bin/sh "${DISTDIR}/Mathematica_${PV}_LINUX.sh" --nox11 --keep --target "${S}/unpack_app" -- "-help" || die
+	if use doc; then
+		/bin/sh "${DISTDIR}/WLDocs_${PV}_LINUX.sh" --nox11 --keep --target "${S}/unpack_doc" -- "-help" || die
+	fi
+}
+
+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
+	/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
+	else
+		pushd "${S}/unpack_doc" > /dev/null || die
+		/bin/sh "Unix/Installer/MathInstaller" -auto "-targetdir=${S}/temp_doc" "-execdir=${S}/opt/bin" || die
+		popd > /dev/null || die
+		# Merge contents of Mathematica_docs with Mathematica
+		rm -r "${S}/${M_TARGET}"/Documentation/English/{SearchIndex,System} || die
+		mv "${S}"/temp_doc/Documentation/English/* "${S}/${M_TARGET}/"Documentation/English/ || die
+		rm -r "${S}"/temp_doc || 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 || ! has_version '>=media-video/ffmpeg-5'; then
+		einfo 'Removing FFmpegTools support because lack of >=media-video/ffmpeg-5'
+		rm -r "${S}/${M_TARGET}/SystemFiles/Links/FFmpegTools/LibraryResources/Linux-x86-64/FFmpegToolsSystem-5.0.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}"
+}

diff --git a/sci-mathematics/mathematica/metadata.xml b/sci-mathematics/mathematica/metadata.xml
index 90d6c3bbe4c6..3e0af950b15f 100644
--- a/sci-mathematics/mathematica/metadata.xml
+++ b/sci-mathematics/mathematica/metadata.xml
@@ -24,5 +24,6 @@
 	<use>
 		<flag name="cuda">Install with cuda support</flag>
 		<flag name="R">Enable <pkg>dev-lang/R</pkg> backend support</flag>
+		<flag name="ffmpeg">Enable <pkg>media-video/ffmpeg</pkg> backend support</flag>
 	</use>
 </pkgmetadata>


             reply	other threads:[~2022-08-08 17:29 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-08 17:29 Andrew Ammerlaan [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-10-16 21:42 [gentoo-commits] repo/gentoo:master commit in: sci-mathematics/mathematica/ Andreas K. Hüttel
2024-07-30 14:20 Andreas K. Hüttel
2023-11-10 13:30 Andreas K. Hüttel
2023-09-27  8:42 Andrew Ammerlaan
2023-03-03 14:26 Andrew Ammerlaan
2022-08-08 17:29 Andrew Ammerlaan
2022-01-27 23:36 Andreas K. Hüttel
2022-01-27 23:36 Andreas K. Hüttel
2022-01-27 23:36 Andreas K. Hüttel
2021-01-21 22:46 Andreas K. Hüttel
2020-10-28 13:02 Andreas K. Hüttel
2020-09-20 16:10 Andreas K. Hüttel
2020-07-04 14:20 Andreas K. Hüttel
2020-07-04 14:20 Andreas K. Hüttel
2020-07-04 14:20 Andreas K. Hüttel
2020-07-04 14:20 Andreas K. Hüttel
2020-07-04 14:20 Andreas K. Hüttel
2020-07-04 14:20 Andreas K. Hüttel
2020-06-24 14:11 Andreas K. Hüttel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1659979748.7d27cc6b9b5330b09c9e1e2870882654e11a6cee.andrewammerlaan@gentoo \
    --to=andrewammerlaan@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox