Bundle non-system libraries instead of version-pinning depends
Bundling R alone was not enough: R links libicuuc, and Arch moves ICU regularly. The obvious fix - pinning 'icu>=78 <79' in depends - is worse than the disease on a rolling distro, because pacman would then refuse to upgrade ICU while JASP is installed, blocking the user's whole system upgrade until a rebuild lands. So bundle-libs.sh copies every non-system shared library into /opt/jasp-desktop/lib and rewrites rpaths, by denylist rather than allowlist. depends now carries no version constraints at all. Qt6 stays system-provided on purpose - Qt is binary compatible across Qt 6 minors, and bundling QtWebEngine would add ~500 MB. That also means the only rebuild triggers left are a new JASP release and a Qt major bump; rebuilding for anything else would cost users a 1.7 GB re-download. Also fixes check-upstream.py querying only repo=Extra, which silently returned nothing for icu (it lives in core).
This commit is contained in:
@@ -64,17 +64,12 @@ def main() -> int:
|
||||
)
|
||||
|
||||
qt_minor = info["qt6_minor"]
|
||||
icu_major = info["icu_major"]
|
||||
|
||||
substitutions = {
|
||||
"@MAINTAINER@": args.maintainer,
|
||||
"@JASP_VERSION@": jasp_version,
|
||||
"@PKGREL@": str(pkgrel),
|
||||
"@BUNDLED_R@": info["bundled_r_version"],
|
||||
"@QT_MINOR@": qt_minor,
|
||||
"@QT_NEXT_MINOR@": next_minor(qt_minor),
|
||||
"@ICU_MAJOR@": icu_major,
|
||||
"@ICU_NEXT_MAJOR@": str(int(icu_major) + 1),
|
||||
"@DOWNLOAD_URL@": download_url,
|
||||
"@SHA256@": info["sha256"],
|
||||
}
|
||||
@@ -96,9 +91,8 @@ def main() -> int:
|
||||
json.dump({"tag": tag, "pkgrel": pkgrel, "download_url": download_url, **info}, fh, indent=2)
|
||||
|
||||
print(f"wrote {args.out} ({args.pkgname} {jasp_version}-{pkgrel})")
|
||||
print(f" R bundled at {info['bundled_r_version']} (not an Arch dependency)")
|
||||
print(f" Qt pinned to >={qt_minor} <{next_minor(qt_minor)}")
|
||||
print(f" ICU pinned to >={icu_major} <{int(icu_major) + 1}")
|
||||
print(f" R bundled at {info['bundled_r_version']}; built against Qt {qt_minor}")
|
||||
print(" depends are unpinned - everything volatile is bundled")
|
||||
return 0
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user