From 6c3e374a4ff9086ec2267d1404ff81fe1331a19b Mon Sep 17 00:00:00 2001 From: Antoine Martin Date: Sun, 14 Apr 2024 16:59:37 -0400 Subject: [PATCH] user/zotero: upgrade to 7.0.0_beta74 --- user/zotero/APKBUILD | 119 ++++----- user/zotero/python-deps.patch | 11 +- user/zotero/rust-lto-thin.patch | 6 +- user/zotero/sandbox-sched_setscheduler.patch | 16 +- user/zotero/zotero_build-modifications.patch | 144 +++++++++++ user/zotero/zotero_drop-phantomjs.patch | 243 +++++++++++++++++++ 6 files changed, 452 insertions(+), 87 deletions(-) create mode 100644 user/zotero/zotero_build-modifications.patch create mode 100644 user/zotero/zotero_drop-phantomjs.patch diff --git a/user/zotero/APKBUILD b/user/zotero/APKBUILD index a0e35e4..4074407 100644 --- a/user/zotero/APKBUILD +++ b/user/zotero/APKBUILD @@ -1,15 +1,18 @@ # Contributor: Antoine Martin (ayakael) # Maintainer: Antoine Martin (ayakael) pkgname=zotero -pkgver=7.0.0_beta57 +pkgver=7.0.0_beta74 pkgrel=0 -_fxver=102.15.1 +_fxver=115.9.1 +_gittag=$pkgver # Date of release, YY-MM-DD for metainfo file (see package()) -_releasedate=2024-02-03 +# https://www.mozilla.org/firefox/organizations/notes/ +_releasedate=2024-03-22 pkgdesc="A free, easy-to-use tool to help you collect, organize, cite, and share your research sources." -arch="x86_64" -url="https://github.com/zotero/zotero" -_gittag=7.0.0-beta.57 +url="https://www.mozilla.org/en-US/firefox/organizations/" +# s390x and riscv64: blocked by rust and cargo +# armhf: build failure on armhf due to wasm +arch="x86_64 armv7 aarch64 x86 ppc64le" license="GPL-3.0-only AND LGPL-2.1-only AND LGPL-3.0-only AND MPL-2.0" options="!check" # No test suite depends=" @@ -64,31 +67,23 @@ makedepends=" wireless-tools-dev zip " -source=" - https://ftp.mozilla.org/pub/firefox/releases/${_fxver}esr/source/firefox-${_fxver}esr.source.tar.xz - allow-custom-rust-vendor.patch +source="https://ftp.mozilla.org/pub/firefox/releases/${_fxver}esr/source/firefox-${_fxver}esr.source.tar.xz audio-lfs64.patch - avoid-redefinition.patch disable-moz-stackwalk.patch esr-metainfo.patch - firefox-102.12.0-ffmpeg_6-1.patch - ffmpeg6-fixup.patch - fix-neon-aom.patch fix-fortify-system-wrappers.patch fix-rust-target.patch fix-webrtc-glibcisms.patch - gcc13.patch - mallinfo.patch + icu74.patch + lfs64.patch + no-ccache-stats.patch + ppc-musttail.patch + ppc-webrtc.patch python-deps.patch rust-lto-thin.patch sandbox-fork.patch sandbox-largefile.patch sandbox-sched_setscheduler.patch - zstandard.patch - icu74.patch - lfs64.patch - hunspell-dont-build-unused-function.patch - utils-libc-lfs64.patch stab.h @@ -98,7 +93,8 @@ source=" zotero.desktop https://lab.ilot.io/mirrors/zotero-client/-/releases/$_gittag/downloads/tarball/zotero-client-$_gittag.tar.gz - zotero_build-modifications.diff + zotero_build-modifications.patch + zotero_drop-phantomjs.patch " builddir="$srcdir"/firefox-$_fxver @@ -107,7 +103,6 @@ _mozappdir=/usr/lib/zotero # help our shared-object scanner to find the libs ldpath="$_mozappdir" -sonameprefix="$pkgname:" # we need this because cargo verifies checksums of all files in vendor # crates when it builds and gives us no way to override or update the @@ -133,26 +128,25 @@ export RUST_TARGET="$CTARGET" export CC="clang" export CXX="clang++" +# set rpath so linker finds the libs +export LDFLAGS="$LDFLAGS -Wl,-rpath,$_mozappdir" + # let firefox do this itself. unset CARGO_PROFILE_RELEASE_OPT_LEVEL unset CARGO_PROFILE_RELEASE_LTO export CFLAGS="${CFLAGS/-fstack-clash-protection/} -g0 -O2" export CXXFLAGS="${CXXFLAGS/-fstack-clash-protection/} -g0 -O2 -Wno-deprecated-builtins -Wno-deprecated-declarations" -export LDFLAGS="$LDFLAGS -Wl,--undefined-version" prepare() { + # moves zotero source to mozilla source + mv "$_zoterodir" "$builddir"/zotero default_prepare cp "$srcdir"/stab.h toolkit/crashreporter/google-breakpad/src/ - base64 -d "$srcdir"/mozilla-location.keys > "$builddir"/mozilla-api-key - _clear_vendor_checksums audio_thread_priority - _clear_vendor_checksums target-lexicon-0.9.0 - _clear_vendor_checksums packed_simd_2 - _clear_vendor_checksums bindgen - _clear_vendor_checksums mp4parse - _clear_vendor_checksums getrandom + + base64 -d "$srcdir"/mozilla-location.keys > "$builddir"/mozilla-api-key # webrtc does not build on these case "$CARCH" in @@ -255,20 +249,10 @@ prepare() { # zotero prepare ( - cd "$_zoterodir" + cd "$builddir"/zotero # zotero build expects to be in a git repo git init git commit --allow-empty -m 'Initial' - - # zorero patches - for i in $source; do - case ${i%::*} in - *.diff) - msg ${i%::*} - patch ${patch_args:--p1} -i "$srcdir/$(filename_from_uri $i)" - ;; - esac - done ) } @@ -295,14 +279,6 @@ build() { ;; esac - case "$CARCH" in - x86) - # the i586 baseline cannot compile firefox - export CFLAGS="$CFLAGS -march=pentium4" - export CXXFLAGS="$CXXFLAGS -march=pentium4" - ;; - esac - export LDFLAGS="$LDFLAGS -Wl,--thinlto-jobs=$thinlto_jobs" case "$CARCH" in @@ -313,19 +289,16 @@ build() { EOF esac - # set rpath so linker finds the libs - export LDFLAGS="$LDFLAGS -Wl,-rpath,$_mozappdir" - - ./mach build + ./mach build # install to where zotero expects it - DESTDIR="$_zoterodir"/app/xulrunner/firefox-$CARCH ./mach install - mv "$_zoterodir"/app/xulrunner/firefox-$CARCH/usr/lib/firefox-esr/* "$_zoterodir"/app/xulrunner/firefox-$CARCH/. - rm -R "$_zoterodir"/app/xulrunner/firefox-$CARCH/usr + DESTDIR="$builddir"/zotero/app/xulrunner/firefox ./mach install + mv "$builddir"/zotero/app/xulrunner/firefox/usr/lib/firefox-esr/* "$builddir"/zotero/app/xulrunner/firefox/. + rm -R "$builddir"/zotero/app/xulrunner/firefox/usr # zotero build ( - cd "$_zoterodir" + cd "$builddir"/zotero npm i --legacy-peer-deps NODE_OPTIONS=--openssl-legacy-provider npm run build @@ -336,7 +309,7 @@ build() { package() { install -dDm755 "$pkgdir"/usr/bin install -dDm755 "$pkgdir"/usr/lib/zotero - cp -r "$_zoterodir"/app/staging/Zotero_linux-$CARCH/* "$pkgdir/usr/lib/zotero" + cp -r "$builddir"/zotero/app/staging/Zotero_linux/* "$pkgdir/usr/lib/zotero" ln -s /usr/lib/zotero/zotero "$pkgdir/usr/bin/zotero" install -Dm644 "$srcdir/zotero.desktop" "$pkgdir/usr/share/applications/zotero.desktop" @@ -350,35 +323,29 @@ package() { } sha512sums=" -bdb66b4fb5622af3e60580a3bcd464d98ef13cb38d6ac6c9e5fc046e567a003cf080125d7748950c91c442fde5e8024c50c4180d2f551aa3528160a3c05ae187 firefox-102.15.1esr.source.tar.xz -4e584621145cf8add069c6dac18e805b3274a1ee402d84e924df2341f7d3c5be261a93ef51283bacbd606f47fbdc628c4323ecc31efc5b403b8d224b18dc278f allow-custom-rust-vendor.patch +9ccaede2fcda13a07f98a2110bb8f99c7324601d66bff311f3070a669576a1598fe1d7de2d005d725d1f44dbe3934a9c0fd0b7950f60686047d4ce8d9d812310 firefox-115.9.1esr.source.tar.xz 3e0501ae7a650346c667dfdc0ae0ca286084f22e89ab2ac671cc0d7315673dc5b6dcb9f9882f6f39d26e9a31e57f7a0fd53d6b805e520224e22b8976850e2eb8 audio-lfs64.patch -b1cb2db3122634f66d2bae7066e76f2dcd455c464e021db4de3b0a08314df95cb667846081682db549dd2af8a00831cabe44a2420c66cdfb5e3b5fa7e6bd21d3 avoid-redefinition.patch 454ea3263cabce099accbdc47aaf83be26a19f8b5a4568c01a7ef0384601cf8315efd86cd917f9c8bf419c2c845db89a905f3ff9a8eb0c8e41042e93aa96a85c disable-moz-stackwalk.patch f7b3b45ba04d05d17439d009bf0c9f27881e126f424e2257552338a0c1e3771ee1289c044babcb0920f62af62873a268c0cf524e1d35711e6dc8b808ca5e9f26 esr-metainfo.patch -a13dee87adf659423f5b3fa0358cfbde135fa614c85dd170d1a48d32ee080e27aef062d3a8e3c45059c41463fda579f8900988166ccb51568793ee7ef9080d04 firefox-102.12.0-ffmpeg_6-1.patch -c2e17f269070d782154f843b95bf68be25d8c4356825dd436b1877aab63ac023051899371da5c21f6151970b2562376c2dadd2d6a038446e5fa621e2495668e1 ffmpeg6-fixup.patch -d3a54897089eda9fdfe4b25ade1cb2c01c4b31fa9bf0e0ddbb0bbe674072ec5d36a6e52f791a8cbc8d3908e912ac2d7edec69b34d87ecca0acca876d45974c8d fix-neon-aom.patch 2f4f15974d52de4bb273b62a332d13620945d284bbc6fe6bd0a1f58ff7388443bc1d3bf9c82cc31a8527aad92b0cd3a1bc41d0af5e1800e0dcbd7033e58ffd71 fix-fortify-system-wrappers.patch cd68b89e29e5f6379fbd5679db27b9a5ef70ea65e51c0d0a8137e1f1fd210e35a8cfb047798e9549bc7275606d7ec5c8d8af1335d29da4699db7acd8bc7ff556 fix-rust-target.patch 305c874fdea3096e9c4c6aa6520ac64bb1c347c4b59db8360096646593fe684c3b5377874d91cecd33d56d1410b4714fbdea2b514923723ecbeff79d51265d9b fix-webrtc-glibcisms.patch -49aa1dfbe11ed5370e839afb190da7f55ae4887b35645865efe25d398d890563722caedd5696d648ad71448621fbc8bab8def1a3d079e301d6414f0f20e96758 gcc13.patch -a4a3e062661bda64d502d426c480ac9645345860118de9df9ffe6e0597738c70c11e5cdef2d4fd12c5e2ee30a09310159230524655a419a4f7e4eeeb0f3c06b0 mallinfo.patch -f3d419880cc7f043b6eb547894d486457d407640be2bd8b402eb3a534ccea39568f6d506fc44a3b29c94eb0dc6fc2bec6600d161786fd233d26b1dc8970f5ab4 python-deps.patch -9f433c8051d05efb8b119e0b67b97951837aca6a8c5671646714a24023be11a9d63fa7c4e56a6c7f3911c9d8406b06cd95926de1a82925d02197dfd55daf5642 rust-lto-thin.patch -2518f2fc75b5db30058e0735f47d60fdf1e7adfaeee4b33fb2afb1bd9a616ce943fd88f4404d0802d4083703f4acf1d5ad42377218d025bc768807fbaf7e1609 sandbox-fork.patch -b7d0a6126bdf6c0569f80aabf5b37ed2c7a35712eb8a0404a2d85381552f5555d4f97d213ea26cec6a45dc2785f22439376ed5f8e78b4fd664ef0223307b333e sandbox-largefile.patch -94433c5ffdbe579c456d95c5f053f61fcbab2f652fa90bc69dcc27d9a1507a8e5c677adeadae9a7a75cc9a55184c1040737f4dfd10b279c088ef016561e6f135 sandbox-sched_setscheduler.patch -12fbe50d94624931a581314b8e6e228a1f8a4550704a6ee4f8904184ac4727efd90982e87a8fdd318e15515f9430dfc6cf7455b301e903003027b3f0afa79795 zstandard.patch afabea91b328c5a68eaa20f9099ac7b2d0e7f2423e816b05ed168bdd326a5684fa02de08bf05c6033e9b888f02775d1b0443a00329b7a632ee399122a391c13a icu74.patch 5fa9382c692e4bd6a2634308f24a6526fd12a60a2563d2090056d43a60505df3ec9881bbf54562e69394467529b3b0dc45955afca46ed329af03cea074fff070 lfs64.patch -6aa925477109ed3be8f061fe1ea91caf95c7a7f5cca05c3e31322d08c3c2c044fb12bb1dbea09cd224b22e40e987571e415c6457aa5cab6a0b67f248f11b3df2 hunspell-dont-build-unused-function.patch -2625dcf433abbfa4c6835830b04c7b8cab72fba3a987515a6ba8e4f181332e804d98ccfbcc07e62c673be50db04c80d0f51c415173bb18cf4d18dc1364e165d0 utils-libc-lfs64.patch +c0437a6753f3f350968fa12d250efdfe1bea77baf0e4c06b072b5cc9e78c774dbf4506bc536337030d349fb3ba4460097b75b0c7c5b8fb2d39d8b0a392948936 no-ccache-stats.patch +2d8dff86212d6d2a904cbb5a5a1d6c17b89adc929fc6a3f4c6cb669f5e83ecddff5a799225319ba445a187b04d111251af75dd3ce8a039164bc14d2a432a2a04 ppc-musttail.patch +6f60e83599041db1b707c21784197ea9816b2c936b89a274bfc24554a600981e6f28448fe41fab0942bd31acd49b1c00beb2eb0961149f2ffa6a4154be123ea7 ppc-webrtc.patch +4e40b34c5f77a1a21fe971a6fcd8a21b1a63423a3a7932a5a6e1c7a2779f9f06a561c806614a01931679a4b1c6afdfd8ae1f3cc6b673f259ccd368e8e54f6e90 python-deps.patch +1c6918dd6655d3a1251bfd4af2e1c561cbb00d540a883b4c1ebf7f5de530d754d9ac07b4b5f56cdab6c511d25c8910ec94043f5733e97501a67abffe1bafaeb1 rust-lto-thin.patch +2518f2fc75b5db30058e0735f47d60fdf1e7adfaeee4b33fb2afb1bd9a616ce943fd88f4404d0802d4083703f4acf1d5ad42377218d025bc768807fbaf7e1609 sandbox-fork.patch +b7d0a6126bdf6c0569f80aabf5b37ed2c7a35712eb8a0404a2d85381552f5555d4f97d213ea26cec6a45dc2785f22439376ed5f8e78b4fd664ef0223307b333e sandbox-largefile.patch +f8c3555ef6207933cbffbf4fc101a9b4c0d2990c0063162f0f0bde70ef0b46f86bfac42e7110695183424a87948de593f3927b2d8509ede3e4fc7bd8a1fad1ce sandbox-sched_setscheduler.patch 0b3f1e4b9fdc868e4738b5c81fd6c6128ce8885b260affcb9a65ff9d164d7232626ce1291aaea70132b3e3124f5e13fef4d39326b8e7173e362a823722a85127 stab.h d354f48a29bfc16719f3b230b1395063239d4420f9e47522de4662392d9697b15f931ca3bf6055d100fa33d61a9a1a13477687d5eac99e50ae7dbef9882a5808 firefox.desktop 382510375b1a2fa79be0ab79e3391a021ae2c022429ffbaa7e7a69166f99bb56d01e59a1b10688592a29238f21c9d6977672bd77f9fae439b66bdfe0c55ddb15 mozilla-location.keys fc45bc3ffb9404e5338ea26a9f04807b40f6f516324972cddd48bedb91b8bd7c6b8d4e03a0209020f5e67b703bc4ff89389985791b9bd544a0fc3951e2dc338e vendor-prefs.js e1a0a4ff5cc1b53f13776ca11927d671426b0691e78e74a4adf2166d57bb2ae8ac409cc11a37ce5e2f680fdf05d5bc3849c33a9717aca1bb62d03ae5231a67fb zotero.desktop -55d3a4e4d3d647e21343689e1c9b105efc05eb3f2edf5017eebe50ecac6c5bd7d8ad5b5fa701abfbe7beec0b064eec88584b6b17cab0a8fc689500ed72a5eb23 zotero-client-7.0.0-beta.57.tar.gz -089370d86388b34003179ebf95894fb68069fe7ee1624f88e6c411bbbb4f7bc846287cf593034487967cf2bdf807c761212bdb6356bd604d1d04de35aeb3e646 zotero_build-modifications.diff +0d33924c32271f22abd91a9a2e151cc920faa03a84f3f0ebb70d00e20d28f44915fcc9c2d1168ab10a866dc6cf23be7ef124d2c3a94406188f44ee323e44a863 zotero-client-7.0.0_beta74.tar.gz +746dbabbb3ea9199d17891e2079b9256d04843f548132178862117d2334694d98e2cc981945d72f31d0e5b2c42904d371633f6905996bb580aa0b5ae95c64ddc zotero_build-modifications.patch +cfe583f2da7508a4e07734a42519d7c28265928fe14c14b2f650ca6e56c35cb79272b03ed3bfb81e06c4e01458b55e04d10df5cbdd549da0d97206b2c10c3530 zotero_drop-phantomjs.patch " diff --git a/user/zotero/python-deps.patch b/user/zotero/python-deps.patch index dea6345..dfdd3b2 100644 --- a/user/zotero/python-deps.patch +++ b/user/zotero/python-deps.patch @@ -1,9 +1,12 @@ +diff --git a/python/sites/mach.txt b/python/sites/mach.txt +index 55cc6fb..51bf67d 100644 --- a/python/sites/mach.txt +++ b/python/sites/mach.txt -@@ -134,4 +134,4 @@ +@@ -141,5 +141,5 @@ pypi-optional:glean-sdk==52.7.0:telemetry will not be collected + # Mach gracefully handles the case where `psutil` is unavailable. # We aren't (yet) able to pin packages in automation, so we have to # support down to the oldest locally-installed version (5.4.2). --pypi-optional:psutil>=5.4.2,<=5.8.0:telemetry will be missing some data +-pypi-optional:psutil>=5.4.2,<=5.9.4:telemetry will be missing some data +-pypi-optional:zstandard>=0.11.1,<=0.22.0:zstd archives will not be possible to extract +pypi-optional:psutil>=5.4.2,<=5.10.0:telemetry will be missing some data --pypi-optional:zstandard>=0.11.1,<=0.17.0:zstd archives will not be possible to extract -+pypi-optional:zstandard>=0.11.1,<=0.18.0:zstd archives will not be possible to extract ++pypi-optional:zstandard>=0.11.1,<=0.24.0:zstd archives will not be possible to extract diff --git a/user/zotero/rust-lto-thin.patch b/user/zotero/rust-lto-thin.patch index 147acca..788fcea 100644 --- a/user/zotero/rust-lto-thin.patch +++ b/user/zotero/rust-lto-thin.patch @@ -1,11 +1,11 @@ -set rust crate lto to thin to not use fatlto for gkrust which ooms on 32-bit +set rust crate lto to thin to not use fatlto for gkrust which fails sometimes --- a/config/makefiles/rust.mk +++ b/config/makefiles/rust.mk -@@ -94,7 +94,7 @@ +@@ -92,7 +92,7 @@ # Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045. ifndef MOZ_CODE_COVERAGE ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE))) --cargo_rustc_flags += -Clto +-cargo_rustc_flags += -Clto$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat) +cargo_rustc_flags += -Clto=thin endif # We need -Cembed-bitcode=yes for all crates when using -Clto. diff --git a/user/zotero/sandbox-sched_setscheduler.patch b/user/zotero/sandbox-sched_setscheduler.patch index 3163c9e..ffdf126 100644 --- a/user/zotero/sandbox-sched_setscheduler.patch +++ b/user/zotero/sandbox-sched_setscheduler.patch @@ -1,9 +1,9 @@ upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1657849 +diff --git a/security/sandbox/linux/SandboxFilter.cpp b/security/sandbox/linux/SandboxFilter.cpp +index ed958bc..9824433 100644 --- a/security/sandbox/linux/SandboxFilter.cpp +++ b/security/sandbox/linux/SandboxFilter.cpp -@@ -1694,10 +1694,10 @@ - return Allow(); - case __NR_sched_get_priority_min: +@@ -1751,6 +1751,6 @@ class GMPSandboxPolicy : public SandboxPolicyCommon { case __NR_sched_get_priority_max: + case __NR_sched_setscheduler: return Allow(); @@ -12,5 +12,13 @@ upstream bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1657849 - case __NR_sched_setscheduler: { + case __NR_sched_getscheduler: { Arg pid(0); - return If(pid == 0, Allow()).Else(Trap(SchedTrap, nullptr)); +@@ -1926,3 +1926,2 @@ class RDDSandboxPolicy final : public SandboxPolicyCommon { + case __NR_sched_getscheduler: +- case __NR_sched_setscheduler: + case __NR_sched_getattr: +@@ -1932,2 +1931,5 @@ class RDDSandboxPolicy final : public SandboxPolicyCommon { } ++ // sched_setscheduler gets special treatment here (bug 1657849): ++ case __NR_sched_setscheduler: ++ return Allow(); + diff --git a/user/zotero/zotero_build-modifications.patch b/user/zotero/zotero_build-modifications.patch new file mode 100644 index 0000000..22aa90e --- /dev/null +++ b/user/zotero/zotero_build-modifications.patch @@ -0,0 +1,144 @@ +diff --git a/zotero/app/build.sh b/zotero/app/build.sh +index 649d629..7d078b8 100755 +--- a/zotero/app/build.sh ++++ b/zotero/app/build.sh +@@ -59,10 +59,7 @@ function abspath { + } + + function check_lfs_file { +- if [ "$(head --bytes 5 "$1")" = "versi" ]; then +- echo "$1 not checked out -- install Git LFS and run 'git lfs pull'" >&2 +- exit 1 +- fi ++ return 0 + } + + SOURCE_DIR="" +@@ -840,18 +837,13 @@ if [ $BUILD_LINUX == 1 ]; then + cp -r "$runtime_path/"!(application.ini|browser|defaults|devtools-files|crashreporter|crashreporter.ini|firefox|pingsender|precomplete|removed-files|run-mozilla.sh|update-settings.ini|updater|updater.ini) "$APPDIR" + + # Use our own launcher that calls the original Firefox executable with -app +- mv "$APPDIR"/firefox-bin "$APPDIR"/zotero-bin ++ mv "$APPDIR"/firefox-esr "$APPDIR"/zotero-bin + cp "$CALLDIR/linux/zotero" "$APPDIR"/zotero + + # Copy Ubuntu launcher files + cp "$CALLDIR/linux/zotero.desktop" "$APPDIR" + cp "$CALLDIR/linux/set_launcher_icon" "$APPDIR" + +- # Use our own updater, because Mozilla's requires updates signed by Mozilla +- check_lfs_file "$CALLDIR/linux/updater.tar.xz" +- tar xf "$CALLDIR/linux/updater.tar.xz" --to-stdout updater-$arch > "$APPDIR/updater" +- chmod 755 "$APPDIR/updater" +- + # Copy app files + rsync -a "$base_dir/" "$APPDIR/" + +@@ -860,6 +852,7 @@ if [ $BUILD_LINUX == 1 ]; then + cp -RH "$CALLDIR/modules/zotero-libreoffice-integration/install" "$APPDIR/integration/libreoffice" + + # Copy icons ++ mkdir -p "$APPDIR"/icons + cp "$CALLDIR/linux/icons/icon32.png" "$APPDIR/icons/" + cp "$CALLDIR/linux/icons/icon64.png" "$APPDIR/icons/" + cp "$CALLDIR/linux/icons/icon128.png" "$APPDIR/icons/" + +diff --git a/zotero/app/build.sh.orig b/zotero/app/build.sh +index 702f499..3ee7e34 100755 +--- a/zotero/app/build.sh.orig ++++ b/zotero/app/build.sh +@@ -189,7 +189,7 @@ BUILD_ID=`date +%Y%m%d%H%M%S` + # Paths to Gecko runtimes + MAC_RUNTIME_PATH="$CALLDIR/xulrunner/Firefox.app" + WIN_RUNTIME_PATH_PREFIX="$CALLDIR/xulrunner/firefox-" +-LINUX_RUNTIME_PATH_PREFIX="$CALLDIR/xulrunner/firefox-" ++LINUX_RUNTIME_PATH_PREFIX="$CALLDIR/xulrunner/firefox" + + base_dir="$BUILD_DIR/base" + app_dir="$BUILD_DIR/base/app" +@@ -223,8 +223,8 @@ elif [ $BUILD_WIN == 1 ]; then + unzip -qj "${WIN_RUNTIME_PATH_PREFIX}win-x64"/omni.ja "hyphenation/*" -d "$app_dir"/hyphenation/ + elif [ $BUILD_LINUX == 1 ]; then + # Non-arch-specific files, so just use 64-bit version +- cp -Rp "${LINUX_RUNTIME_PATH_PREFIX}x86_64"/browser/omni "$app_dir" +- unzip -qj "${LINUX_RUNTIME_PATH_PREFIX}x86_64"/omni.ja "hyphenation/*" -d "$app_dir"/hyphenation/ ++ cp -Rp "${LINUX_RUNTIME_PATH_PREFIX}"/browser/omni "$app_dir" ++ unzip -qj "${LINUX_RUNTIME_PATH_PREFIX}"/omni.ja "hyphenation/*" -d "$app_dir"/hyphenation/ + fi + set -e + cd $omni_dir +@@ -825,11 +825,11 @@ if [ $BUILD_LINUX == 1 ]; then + fi + + for arch in $archs; do +- runtime_path="${LINUX_RUNTIME_PATH_PREFIX}${arch}" ++ runtime_path="${LINUX_RUNTIME_PATH_PREFIX}" + + # Set up directory +- echo 'Building Zotero_linux-'$arch +- APPDIR="$STAGE_DIR/Zotero_linux-$arch" ++ echo 'Building Zotero_linux' ++ APPDIR="$STAGE_DIR/Zotero_linux" + rm -rf "$APPDIR" + mkdir "$APPDIR" + +diff --git a/zotero/app/scripts/fetch_xulrunner.orig b/zotero/app/scripts/fetch_xulrunner +index 2b57bfb..2bbc110 100755 +--- a/zotero/app/scripts/fetch_xulrunner.orig ++++ b/zotero/app/scripts/fetch_xulrunner +@@ -134,15 +134,6 @@ function modify_omni { + # Continue using app.update.auto in prefs.js on Windows + replace_line 'PER_INSTALLATION_PREFS_PLATFORMS = \["win"\]' 'PER_INSTALLATION_PREFS_PLATFORMS = []' modules/UpdateUtils.sys.mjs + +- # Prompt if major update is available instead of installing automatically on restart +- replace_line 'if \(!updateAuto\) \{' 'if (update.type == "major") { +- LOG("UpdateService:_selectAndInstallUpdate - prompting because it is a major update"); +- AUSTLMY.pingCheckCode(this._pingSuffix, AUSTLMY.CHK_SHOWPROMPT_PREF); +- Services.obs.notifyObservers(update, "update-available", "show-prompt"); +- return; +- } +- if (!updateAuto) {' modules/UpdateService.sys.mjs +- + # Avoid console warning about resource://gre/modules/FxAccountsCommon.js + replace_line 'const logins = this._data.logins;' 'const logins = this._data.logins; if (this._data.logins.length != -1) return;' modules/LoginStore.sys.mjs + +@@ -516,36 +507,10 @@ fi + + if [ $BUILD_LINUX == 1 ]; then + GECKO_VERSION="$GECKO_VERSION_LINUX" +- DOWNLOAD_URL="https://ftp.mozilla.org/pub/firefox/releases/$GECKO_VERSION" + +- +- # Include 32-bit build if not in CI +- if [[ "${CI:-}" = "1" ]] || [[ "${SKIP_32:-}" = "1" ]]; then +- arches="x86_64" +- else +- arches="i686 x86_64" +- fi +- for arch in $arches; do +- xdir="firefox-$arch" +- rm -rf $xdir +- +- archived_file="firefox-$GECKO_VERSION-$arch.tar.bz2" +- if [ -e "$archived_file" ]; then +- echo "Using $archived_file" +- cp "$archived_file" "firefox-$GECKO_VERSION.tar.bz2" +- else +- curl -O "$DOWNLOAD_URL/linux-$arch/en-US/firefox-$GECKO_VERSION.tar.bz2" +- fi +- +- tar xvf firefox-$GECKO_VERSION.tar.bz2 +- mv firefox firefox-$arch +- +- pushd firefox-$arch +- modify_omni $arch +- popd +- echo $($SCRIPT_DIR/xulrunner_hash -p l) > hash-linux +- rm "firefox-$GECKO_VERSION.tar.bz2" +- done ++ pushd firefox ++ modify_omni linux64 ++ popd + fi + + echo Done diff --git a/user/zotero/zotero_drop-phantomjs.patch b/user/zotero/zotero_drop-phantomjs.patch new file mode 100644 index 0000000..1333cbe --- /dev/null +++ b/user/zotero/zotero_drop-phantomjs.patch @@ -0,0 +1,243 @@ +diff --git a/zotero/reader/epubjs/epub.js/package.json.orig b/zotero/reader/epubjs/epub.js/package.json +index bb440ac..b4c5c32 100644 +--- a/zotero/reader/epubjs/epub.js/package.json.orig ++++ b/zotero/reader/epubjs/epub.js/package.json +@@ -41,7 +41,6 @@ + "karma-chrome-launcher": "^3.1.0", + "karma-mocha": "^2.0.1", + "karma-mocha-reporter": "^2.2.5", +- "karma-phantomjs-launcher": "^1.0.4", + "karma-sourcemap-loader": "^0.3.7", + "karma-webpack": "^5.0.0", + "mocha": "^7.2.0", +diff --git a/zotero/reader/epubjs/epub.js/package-lock.json.orig b/zotero/reader/epubjs/epub.js/package-lock.json +index 6d728e7..c889b68 100644 +--- a/zotero/reader/epubjs/epub.js/package-lock.json.orig ++++ b/zotero/reader/epubjs/epub.js/package-lock.json +@@ -28,7 +28,6 @@ + "karma-chrome-launcher": "^3.1.0", + "karma-mocha": "^2.0.1", + "karma-mocha-reporter": "^2.2.5", +- "karma-phantomjs-launcher": "^1.0.4", + "karma-sourcemap-loader": "^0.3.7", + "karma-webpack": "^5.0.0", + "mocha": "^7.2.0", +@@ -8855,16 +8854,6 @@ + "node": ">=4" + } + }, +- "node_modules/karma-phantomjs-launcher": { +- "version": "1.0.4", +- "resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz", +- "integrity": "sha1-0jyjSAG9qYY60xjju0vUBisTrNI=", +- "dev": true, +- "dependencies": { +- "lodash": "^4.0.1", +- "phantomjs-prebuilt": "^2.1.7" +- } +- }, + "node_modules/karma-sourcemap-loader": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz", +@@ -11342,26 +11331,6 @@ + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, +- "node_modules/phantomjs-prebuilt": { +- "version": "2.1.14", +- "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz", +- "integrity": "sha1-1T0xH8+30dCN2yQBRVjxGIxRbaA=", +- "dev": true, +- "dependencies": { +- "es6-promise": "~4.0.3", +- "extract-zip": "~1.5.0", +- "fs-extra": "~1.0.0", +- "hasha": "~2.2.0", +- "kew": "~0.7.0", +- "progress": "~1.1.8", +- "request": "~2.79.0", +- "request-progress": "~2.0.1", +- "which": "~1.2.10" +- }, +- "bin": { +- "phantomjs": "bin/phantomjs" +- } +- }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", +@@ -22124,16 +22093,6 @@ + } + } + }, +- "karma-phantomjs-launcher": { +- "version": "1.0.4", +- "resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz", +- "integrity": "sha1-0jyjSAG9qYY60xjju0vUBisTrNI=", +- "dev": true, +- "requires": { +- "lodash": "^4.0.1", +- "phantomjs-prebuilt": "^2.1.7" +- } +- }, + "karma-sourcemap-loader": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz", +@@ -23984,23 +23943,6 @@ + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, +- "phantomjs-prebuilt": { +- "version": "2.1.14", +- "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz", +- "integrity": "sha1-1T0xH8+30dCN2yQBRVjxGIxRbaA=", +- "dev": true, +- "requires": { +- "es6-promise": "~4.0.3", +- "extract-zip": "~1.5.0", +- "fs-extra": "~1.0.0", +- "hasha": "~2.2.0", +- "kew": "~0.7.0", +- "progress": "~1.1.8", +- "request": "~2.79.0", +- "request-progress": "~2.0.1", +- "which": "~1.2.10" +- } +- }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", +diff --git a/zotero/reader/package-lock.json.orig b/zotero/reader/package-lock.json +index 949e5de..0485ddd 100644 +--- a/zotero/reader/package-lock.json.orig ++++ b/zotero/reader/package-lock.json +@@ -83,7 +83,6 @@ + "karma-chrome-launcher": "^3.1.0", + "karma-mocha": "^2.0.1", + "karma-mocha-reporter": "^2.2.5", +- "karma-phantomjs-launcher": "^1.0.4", + "karma-sourcemap-loader": "^0.3.7", + "karma-webpack": "^5.0.0", + "mocha": "^7.2.0", +@@ -12332,20 +12331,6 @@ + "node": ">=4" + } + }, +- "node_modules/karma-phantomjs-launcher": { +- "version": "1.0.4", +- "resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz", +- "integrity": "sha512-tf4P3plsE7wb5Pqh8GJ6RnElxfI/UM4MtVnjbSIZFpdFJlKnjRzfIx8MLCcSYJBwZ1+qSKFz4uBe3XNoq2t3KA==", +- "deprecated": "PhantomJS development have stopped, use puppeteer or similar", +- "dev": true, +- "dependencies": { +- "lodash": "^4.0.1", +- "phantomjs-prebuilt": "^2.1.7" +- }, +- "peerDependencies": { +- "karma": ">=0.9" +- } +- }, + "node_modules/karma-sourcemap-loader": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.8.tgz", +@@ -15330,40 +15315,6 @@ + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, +- "node_modules/phantomjs-prebuilt": { +- "version": "2.1.16", +- "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", +- "integrity": "sha512-PIiRzBhW85xco2fuj41FmsyuYHKjKuXWmhjy3A/Y+CMpN/63TV+s9uzfVhsUwFe0G77xWtHBG8xmXf5BqEUEuQ==", +- "deprecated": "this package is now deprecated", +- "dev": true, +- "hasInstallScript": true, +- "dependencies": { +- "es6-promise": "^4.0.3", +- "extract-zip": "^1.6.5", +- "fs-extra": "^1.0.0", +- "hasha": "^2.2.0", +- "kew": "^0.7.0", +- "progress": "^1.1.8", +- "request": "^2.81.0", +- "request-progress": "^2.0.1", +- "which": "^1.2.10" +- }, +- "bin": { +- "phantomjs": "bin/phantomjs" +- } +- }, +- "node_modules/phantomjs-prebuilt/node_modules/which": { +- "version": "1.3.1", +- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", +- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", +- "dev": true, +- "dependencies": { +- "isexe": "^2.0.0" +- }, +- "bin": { +- "which": "bin/which" +- } +- }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", +@@ -27177,7 +27128,6 @@ + "karma-chrome-launcher": "^3.1.0", + "karma-mocha": "^2.0.1", + "karma-mocha-reporter": "^2.2.5", +- "karma-phantomjs-launcher": "^1.0.4", + "karma-sourcemap-loader": "^0.3.7", + "karma-webpack": "^5.0.0", + "mocha": "^7.2.0", +@@ -30497,16 +30447,6 @@ + } + } + }, +- "karma-phantomjs-launcher": { +- "version": "1.0.4", +- "resolved": "https://registry.npmjs.org/karma-phantomjs-launcher/-/karma-phantomjs-launcher-1.0.4.tgz", +- "integrity": "sha512-tf4P3plsE7wb5Pqh8GJ6RnElxfI/UM4MtVnjbSIZFpdFJlKnjRzfIx8MLCcSYJBwZ1+qSKFz4uBe3XNoq2t3KA==", +- "dev": true, +- "requires": { +- "lodash": "^4.0.1", +- "phantomjs-prebuilt": "^2.1.7" +- } +- }, + "karma-sourcemap-loader": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.8.tgz", +@@ -32672,34 +32612,6 @@ + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, +- "phantomjs-prebuilt": { +- "version": "2.1.16", +- "resolved": "https://registry.npmjs.org/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.16.tgz", +- "integrity": "sha512-PIiRzBhW85xco2fuj41FmsyuYHKjKuXWmhjy3A/Y+CMpN/63TV+s9uzfVhsUwFe0G77xWtHBG8xmXf5BqEUEuQ==", +- "dev": true, +- "requires": { +- "es6-promise": "^4.0.3", +- "extract-zip": "^1.6.5", +- "fs-extra": "^1.0.0", +- "hasha": "^2.2.0", +- "kew": "^0.7.0", +- "progress": "^1.1.8", +- "request": "^2.81.0", +- "request-progress": "^2.0.1", +- "which": "^1.2.10" +- }, +- "dependencies": { +- "which": { +- "version": "1.3.1", +- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", +- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", +- "dev": true, +- "requires": { +- "isexe": "^2.0.0" +- } +- } +- } +- }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", -- 2.45.2