7 |
7 |
inherit check-reqs desktop unpacker xdg
|
8 |
8 |
|
9 |
9 |
DESCRIPTION="Wolfram Mathematica"
|
10 |
|
SRC_URI="Mathematica_${PV}_BNDL_LINUX.sh"
|
|
10 |
SRC_URI="
|
|
11 |
doc? ( WLDocs_${PV}_LINUX.sh )
|
|
12 |
Mathematica_${PV}_LINUX.sh
|
|
13 |
"
|
11 |
14 |
HOMEPAGE="https://www.wolfram.com/mathematica/"
|
12 |
15 |
|
13 |
16 |
LICENSE="all-rights-reserved"
|
14 |
17 |
KEYWORDS="-* ~amd64"
|
15 |
18 |
SLOT="0"
|
16 |
|
IUSE="cuda doc R"
|
|
19 |
IUSE="cuda doc ffmpeg R"
|
17 |
20 |
|
18 |
21 |
RESTRICT="strip mirror bindist fetch"
|
19 |
22 |
|
20 |
23 |
# Mathematica comes with a lot of bundled stuff. We should place here only what we
|
21 |
24 |
# explicitly override with LD_PRELOAD.
|
22 |
25 |
# RLink (libjri.so) requires dev-lang/R
|
|
26 |
# FFmpegTools (FFmpegToolsSystem-5.0.so) requires media-video/ffmpeg
|
23 |
27 |
RDEPEND="
|
24 |
28 |
cuda? ( dev-util/nvidia-cuda-toolkit )
|
25 |
29 |
media-libs/freetype
|
|
30 |
ffmpeg? ( media-video/ffmpeg )
|
26 |
31 |
R? ( dev-lang/R )
|
27 |
32 |
virtual/libcrypt
|
28 |
33 |
"
|
... | ... | |
47 |
52 |
S=${WORKDIR}
|
48 |
53 |
|
49 |
54 |
src_unpack() {
|
50 |
|
/bin/sh "${DISTDIR}/${A}" --nox11 --keep --target "${S}/unpack" -- "-help" || die
|
|
55 |
/bin/sh "${DISTDIR}/Mathematica_${PV}_LINUX.sh" --nox11 --keep --target "${S}/unpack_app" -- "-help" || die
|
|
56 |
if use doc; then
|
|
57 |
/bin/sh "${DISTDIR}/WLDocs_${PV}_LINUX.sh" --nox11 --keep --target "${S}/unpack_doc" -- "-help" || die
|
|
58 |
fi
|
51 |
59 |
}
|
52 |
60 |
|
53 |
|
src_prepare() {
|
54 |
|
pushd "${S}/unpack" > /dev/null || die
|
|
61 |
src_install() {
|
|
62 |
local ARCH='-x86-64'
|
|
63 |
|
|
64 |
pushd "${S}/unpack_app" > /dev/null || die
|
|
65 |
# fix ACCESS DENIED issue when installer generate desktop files
|
|
66 |
sed -e "s|xdg-desktop-icon|xdg-dummy-command|g" -i "Unix/Installer/MathInstaller" || die
|
|
67 |
sed -e "s|xdg-desktop-menu|xdg-dummy-command|g" -i "Unix/Installer/MathInstaller" || die
|
|
68 |
sed -e "s|xdg-icon-resource|xdg-dummy-command|g" -i "Unix/Installer/MathInstaller" || die
|
|
69 |
sed -e "s|xdg-mime|xdg-dummy-command|g" -i "Unix/Installer/MathInstaller" || die
|
55 |
70 |
# fix ACCESS DENIED issue when installer check the avahi-daemon
|
56 |
71 |
sed -e "s|avahi-daemon -c|true|g" -i "Unix/Installer/MathInstaller" || die
|
57 |
72 |
/bin/sh "Unix/Installer/MathInstaller" -auto "-targetdir=${S}/${M_TARGET}" "-execdir=${S}/opt/bin" || die
|
58 |
73 |
popd > /dev/null || die
|
59 |
|
eapply_user
|
60 |
|
}
|
61 |
|
|
62 |
|
src_install() {
|
63 |
|
local ARCH='-x86-64'
|
64 |
74 |
|
65 |
75 |
if ! use doc; then
|
66 |
76 |
einfo "Removing documentation"
|
67 |
77 |
rm -r "${S}/${M_TARGET}/Documentation" || die
|
|
78 |
else
|
|
79 |
pushd "${S}/unpack_doc" > /dev/null || die
|
|
80 |
/bin/sh "Unix/Installer/MathInstaller" -auto "-targetdir=${S}/temp_doc" "-execdir=${S}/opt/bin" || die
|
|
81 |
popd > /dev/null || die
|
|
82 |
# Merge contents of Mathematica_docs with Mathematica
|
|
83 |
rm -r "${S}/${M_TARGET}"/Documentation/English/{SearchIndex,System} || die
|
|
84 |
mv "${S}"/temp_doc/Documentation/English/* "${S}/${M_TARGET}/"Documentation/English/ || die
|
|
85 |
rm -r "${S}"/temp_doc || die
|
68 |
86 |
fi
|
69 |
87 |
|
|
88 |
# fix world writable file QA problem for files
|
|
89 |
while IFS= read -r -d '' i; do
|
|
90 |
chmod o-w "${i}" || die
|
|
91 |
done < <(find "${S}/${M_TARGET}" -type f -print0)
|
|
92 |
|
70 |
93 |
einfo 'Removing MacOS- and Windows-specific files'
|
71 |
94 |
find "${S}/${M_TARGET}" -type d -\( -name Windows -o -name Windows-x86-64 \
|
72 |
95 |
-o -name MacOSX -o -name MacOSX-x86-64 -o -name Macintosh -\) \
|
... | ... | |
82 |
105 |
rm -r "${S}/${M_TARGET}/SystemFiles/Links/RLink/SystemFiles/Libraries/Linux-x86-64/3.5.0" || die
|
83 |
106 |
rm -r "${S}/${M_TARGET}/SystemFiles/Links/RLink/SystemFiles/Libraries/Linux-x86-64/3.6.0" || die
|
84 |
107 |
rm -r "${S}/${M_TARGET}/SystemFiles/Links/RLink/SystemFiles/Libraries/Linux/AllVersions" || die
|
|
108 |
# RLink can't use if R not used
|
85 |
109 |
if ! use R; then
|
86 |
110 |
einfo 'Removing RLink support'
|
87 |
111 |
rm -r "${S}/${M_TARGET}/SystemFiles/Links/RLink/SystemFiles/Libraries/Linux-x86-64/AllVersions/libjri.so" || die
|
88 |
112 |
fi
|
|
113 |
# FFmpegTools can't use if ffmpeg not used
|
|
114 |
if ! use ffmpeg || ! has_version '>=media-video/ffmpeg-5'; then
|
|
115 |
einfo 'Removing FFmpegTools support because lack of >=media-video/ffmpeg-5'
|
|
116 |
rm -r "${S}/${M_TARGET}/SystemFiles/Links/FFmpegTools/LibraryResources/Linux-x86-64/FFmpegToolsSystem-5.0.so" || die
|
|
117 |
fi
|
89 |
118 |
|
90 |
119 |
# fix RPATH
|
91 |
120 |
while IFS= read -r -d '' i; do
|