mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-24 18:58:08 -07:00
sci-mathematics/mathematica: add 14.1.0
Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
This commit is contained in:
@@ -11,3 +11,5 @@ 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
|
||||
|
||||
207
sci-mathematics/mathematica/mathematica-14.1.0.ebuild
Normal file
207
sci-mathematics/mathematica/mathematica-14.1.0.ebuild
Normal file
@@ -0,0 +1,207 @@
|
||||
# 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
|
||||
|
||||
/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}"
|
||||
}
|
||||
Reference in New Issue
Block a user