Thanks, @aussetg I fixed it on the PKGBUILD but didn't make a new pkgrel so people don't have to rebuild the package. Not sure if I'll open an issue upstream this time, as I already have a few tickets opened there (and ignored).
Also, @micwoj92, gmime is not linked anywhere, so I removed it and reviewed the entire dependency list. Used the script below to do this, but I still had to do a lot of manual review. I also built the package in a clean chroot and installed it on a podman container, and I can tell that at least the required dependencies are working. Namcap also reports only a few dependency-detected-not-included issues, but that's only because it doesn't support LD_LIBRARY_PATH yet. In any case, the dependency list should be quite close to the actual dependencies now. (edit: forgot to remove OpenMP, now it's done).
namcap-mathematica.sh
#!/usr/bin/bash
# shellcheck disable=SC2312
set -euo pipefail
PACKAGE="${1:?missing package}"
rm -rf issues
mkdir -p issues
libdeps() {
echo "$@" | awk '{print $4}' | awk -F'=' '{print $1}'
}
python_list() {
LIST="$(rg --only-matching '\[[^\]]*\]' | head -n 1)"
python -c "print(*${LIST}, sep='\n')"
}
paren_list() {
rg --only-matching '\([^)]*\)' | head -n 1 | sed -E 's/^\(|\)$//g' | sed -E 's/, /\n/g'
}
parse_dependency() {
mkdir -p issues/DEPENDS
KIND="$1"
LINE="$2"
NEEDED="$(echo "${LINE}" | awk '{print $5}' | sed -E 's/^\(//')"
echo "${LINE}" | case "${NEEDED}" in
libraries-needed)
# shellcheck disable=SC2046
basename -a $(python_list) >> issues/DEPENDS/"soname-${KIND}".list
;;
python-modules-needed)
python_list >> issues/DEPENDS/"python-${KIND}".list
;;
java-runtime-needed)
paren_list | tail -n +2 >> issues/DEPENDS/"java-${KIND}".list
;;
*)
cat >> issues/DEPENDS/"unknown-${KIND}".list
;;
esac
}
namcap --info --machine-readable "${PACKAGE}" | while IFS= read -r line; do
# see /usr/share/namcap/namcap-tags
TAG="$(echo "${line}" | awk '{print $3}')"
case "${TAG}" in
elffile-* | insecure-r*path | unused-sodepend)
# ELF files are provided from upstream
continue
;;
link-level-dependence | symlink-found)
# we want other infos, but not these two
continue
;;
libdepends-detected-*)
mkdir -p issues/LIBDEPENDS
KIND="${TAG/#libdepends-detected-/}"
# shellcheck disable=SC2046
basename -a $(libdeps "${line}") >> issues/LIBDEPENDS/"soname-${KIND}".list
;;
dependency-detected-*)
KIND="${TAG/#dependency-detected-/}"
parse_dependency "${KIND}" "${line}"
;;
dependency-implicitly-*)
KIND=implicitly
parse_dependency "${KIND}" "${line}"
;;
*) ;;
esac
echo "${line}" >> issues/"${TAG}.list"
done
check_sonames() {
mapfile -t SONAMES < <(sort "$1" | uniq)
echo > "$1"
for soname in "${SONAMES[@]}"; do
MATCHES="$(fd -HIs "${soname}" /opt/Mathematica | grep -E '.' || echo '❌')"
echo "${soname}" "${MATCHES}" >> "$1"
done
}
for file in issues/*/soname-*.list; do
check_sonames "${file}"
done
echo '## POSSIBLY MISSING DEPENDENCIES ##'
rg --no-filename '❌' issues/*/soname-*.list | awk '{print $1}' | sort | uniq
Pinned Comments
marmis commented on 2024-12-24 03:37 (UTC) (edited on 2025-05-06 20:14 (UTC) by marmis)
mathematicaandmathematica-lighthave been updated to 14.1. Mathematica is being rebranded to WolframApp or just Wolfram. Because of that, you might have to update your current configuration according to Upgrading from Mathematica to Wolfram:$UserBaseDirectoryis now~/.Wolfram(you may need tomv ~/.Mathematica ~/.Wolfram)MATHINITis nowWOLFRAMNB_INIT(for additional arguments to Wolfram)MATHEMATICA_BASEis nowWOLFRAM_BASE(for custom$BaseDirectory)MATHEMATICA_USERBASEis nowWOLFRAM_USERBASE(for custom$UserBaseDirectory)JP-Ellis commented on 2022-10-08 00:22 (UTC) (edited on 2023-08-19 12:56 (UTC) by JP-Ellis)
Wolfram offers two bundles for Mathematica: one with offline docs included, and one which relies on online docs. I have created corresponding version of the Mathematica package in the AUR:
mathematica: As this package has historically always included offline docs, it will continue to do so now. As of 13.1.0, the package takes up around 14.1GiB with all documentation.mathematica-light: For those people who want a small package and/or want to use online docs, I have created this package which uses Wolfram's online-docs bundling of Mathematica. As of 13.3, the light version takes up around 7.2GiB.