From 9bc1e2eabe89a25287757ded84ffe7c39dc5b5b6 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Dec 04 2023 21:15:46 +0000
Subject: [PATCH 1/19] libre/iceweasel: 120.0.parabola1


Update python-zstandard patch, tested it works.

---

diff --git a/libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch b/libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch
index 721c30c..31f4a5b 100644
--- a/libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch
+++ b/libre/iceweasel/9001-FSDG-sync-remote-settings-with-local-dump.patch
@@ -38,7 +38,7 @@ If necessary, missing files can be added later.
  13 files changed, 20 insertions(+), 20 deletions(-)
 
 diff --git a/browser/components/newtab/bin/import-rollouts.js b/browser/components/newtab/bin/import-rollouts.js
-index 8208c51aef..d012db2b25 100644
+index ce22d4a114..b2dc35e9d9 100644
 --- a/browser/components/newtab/bin/import-rollouts.js
 +++ b/browser/components/newtab/bin/import-rollouts.js
 @@ -36,7 +36,7 @@ const jsonschema = require("../../../../third_party/js/cfworker/json-schema.js")
@@ -50,15 +50,15 @@ index 8208c51aef..d012db2b25 100644
  const EXPERIMENTER_URL = "https://experimenter.services.mozilla.com/nimbus/";
  const OUTPUT_PATH = "./test/NimbusRolloutMessageProvider.sys.mjs";
  const LICENSE_STRING = `/* This Source Code Form is subject to the terms of the Mozilla Public
-@@ -89,7 +89,7 @@ const cli = meow(
-   }
- );
+@@ -237,7 +237,7 @@ async function main() {
+     }
+   );
+ 
+-  const RECORDS_URL = `${BASE_URL}${cli.flags.collection}/records`;
++  const RECORDS_URL = `${BASE_URL}${cli.flags.collection}.json`;
  
--const RECORDS_URL = `${BASE_URL}${cli.flags.collection}/records`;
-+const RECORDS_URL = `${BASE_URL}${cli.flags.collection}.json`;
+   console.log(`Fetching records from ${chalk.underline.yellow(RECORDS_URL)}`);
  
- function fetchJSON(url) {
-   return new Promise((resolve, reject) => {
 diff --git a/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx b/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx
 index 3762be9c99..1a9c5028ff 100644
 --- a/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx
@@ -216,19 +216,6 @@ index b430666f68..0f640980ae 100644
  #endif
  
    REMOTE_SETTINGS_VERIFY_SIGNATURE:
-diff --git a/toolkit/mozapps/defaultagent/RemoteSettings.cpp b/toolkit/mozapps/defaultagent/RemoteSettings.cpp
-index 37a376ff90..ef73563f85 100644
---- a/toolkit/mozapps/defaultagent/RemoteSettings.cpp
-+++ b/toolkit/mozapps/defaultagent/RemoteSettings.cpp
-@@ -25,7 +25,7 @@ extern "C" {
- HRESULT IsAgentRemoteDisabledRust(const char* szUrl, DWORD* lpdwDisabled);
- }
- 
--#define PROD_ENDPOINT "https://firefox.settings.services.mozilla.com/v1"
-+#define PROD_ENDPOINT "resource://app/defaults/settings"
- #define PROD_BID "main"
- #define PROD_CID "windows-default-browser-agent"
- #define PROD_ID "state"
 diff --git a/third_party/rust/remote_settings/.cargo-checksum.json b/third_party/rust/remote_settings/.cargo-checksum.json
 index 8794c625fe..d2752e72ef 100644
 --- a/third_party/rust/remote_settings/.cargo-checksum.json
@@ -1127,4 +1114,3 @@ index 3893cdcdf2..adf85992a4 100644
      case CRLiteMode::TelemetryOnly:
 -- 
 2.42.0
-
diff --git a/libre/iceweasel/9002-FSDG-preference-defaults.patch b/libre/iceweasel/9002-FSDG-preference-defaults.patch
index 30950e7..b13653a 100644
--- a/libre/iceweasel/9002-FSDG-preference-defaults.patch
+++ b/libre/iceweasel/9002-FSDG-preference-defaults.patch
@@ -134,9 +134,9 @@ Subject: [PATCH 3/5] FSDG: Remove some references to AMO
 
 [1] https://labs.parabola.nu/issues/2409#note-4
 ---
- browser/app/profile/firefox.js | 12 ++++++------
- mobile/android/app/mobile.js   |  8 ++++----
- modules/libpref/init/all.js    |  8 ++++----
+ browser/app/profile/firefox.js        | 12 ++++++------
+ mobile/android/app/geckoview-prefs.js |  8 ++++----
+ modules/libpref/init/all.js           |  8 ++++----
  3 files changed, 14 insertions(+), 14 deletions(-)
 
 diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
@@ -162,24 +162,25 @@ index 801816dc41..9c2562ff23 100644
  
  // The URL for the privacy policy related to recommended extensions.
  pref("extensions.recommendations.privacyPolicyUrl", "https://www.mozilla.org/privacy/firefox/?utm_source=firefox-browser&utm_medium=firefox-browser&utm_content=privacy-policy-link#addons");
-diff --git a/mobile/android/app/mobile.js b/mobile/android/app/mobile.js
-index 7364651c6e..d18e18a95b 100644
---- a/mobile/android/app/mobile.js
-+++ b/mobile/android/app/mobile.js
-@@ -106,10 +106,10 @@ pref("extensions.update.background.url", "https://versioncheck-bg.addons.mozilla
+diff --git a/mobile/android/app/geckoview-prefs.js b/mobile/android/app/geckoview-prefs.js
+index c1983abc2b..35c24e5d43 100644
+--- a/mobile/android/app/geckoview-prefs.js
++++ b/mobile/android/app/geckoview-prefs.js
+@@ -228,11 +228,11 @@ pref("extensions.experiments.enabled", false);
+ // Support credit cards in GV autocomplete API (bug 1691819)
+ pref("extensions.formautofill.addresses.capture.enabled", true);
  
- /* preferences for the Get Add-ons pane */
- pref("extensions.getAddons.cache.enabled", true);
--pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/android/search?q=%TERMS%&platform=%OS%&appver=%VERSION%");
 -pref("extensions.getAddons.browseAddons", "https://addons.mozilla.org/%LOCALE%/android/collections/4757633/mob/?page=1&collection_sort=-popularity");
++pref("extensions.getAddons.browseAddons", "");
+ pref("extensions.getAddons.cache.enabled", true);
 -pref("extensions.getAddons.get.url", "https://services.addons.mozilla.org/api/v4/addons/search/?guid=%IDS%&lang=%LOCALE%");
 -pref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v4/addons/language-tools/?app=android&type=language&appversion=%VERSION%");
-+pref("extensions.getAddons.search.browseURL", "");
-+pref("extensions.getAddons.browseAddons", "");
+-pref("extensions.getAddons.search.browseURL", "https://addons.mozilla.org/%LOCALE%/android/search?q=%TERMS%&platform=%OS%&appver=%VERSION%");
 +pref("extensions.getAddons.get.url", "");
 +pref("extensions.getAddons.langpacks.url", "");
++pref("extensions.getAddons.search.browseURL", "");
  
- /* Don't let XPIProvider install distribution add-ons; we do our own thing on mobile. */
+ // Don't let XPIProvider install distribution add-ons; we do our own thing on mobile
  pref("extensions.installDistroAddons", false);
 diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
 index c9d67004a2..e14f539172 100644
@@ -329,4 +330,29 @@ index f58075204d..a2ffbec390 100644
 2.42.0
 
 
+From e0f27816208ff4371f9de3e2a9190f1a26a4a2f8 Mon Sep 17 00:00:00 2001
+From: grizzlyuser <grizzlyuser@protonmail.com>
+Date: Fri, 17 Nov 2023 20:52:18 +0100
+Subject: [PATCH] FSDG: Put a fuse, to blow up when upstream switches to
+ search-config-v2
+
+process-json-files.py will probably need rework.
+---
+ modules/libpref/init/all.js | 2 ++
+ 1 file changed, 2 insertions(+)
 
+diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
+index 86bfe71247..af91481d2d 100644
+--- a/modules/libpref/init/all.js
++++ b/modules/libpref/init/all.js
+@@ -3462,6 +3462,8 @@ pref("browser.search.removeEngineInfobar.enabled", true);
+ // Enables a new search configuration style with no functional changes for the
+ // user. This is solely intended as a rollout button - it will go away once the
+ // new configuration has been rolled out.
++//
++// Extra comment, so the patch fails to apply as soon as the line below is changed upstream.
+ pref("browser.search.newSearchConfig.enabled", false);
+ 
+ // GMPInstallManager prefs
+-- 
+2.42.1
diff --git a/libre/iceweasel/9004-FSDG-misc.patch b/libre/iceweasel/9004-FSDG-misc.patch
index ffb073f..dbbf484 100644
--- a/libre/iceweasel/9004-FSDG-misc.patch
+++ b/libre/iceweasel/9004-FSDG-misc.patch
@@ -342,10 +342,10 @@ index df8a1997a7..d3cafd9c7f 100644
    // toolkit/components/pdfjs/content/build/pdf.js
    "resource://pdf.js/web/images/",
 diff --git a/browser/components/newtab/lib/OnboardingMessageProvider.jsm b/browser/components/newtab/lib/OnboardingMessageProvider.jsm
-index bcc02aba5f..6a36bfb797 100644
+index 49a76defeb..38407b8e4b 100644
 --- a/browser/components/newtab/lib/OnboardingMessageProvider.jsm
 +++ b/browser/components/newtab/lib/OnboardingMessageProvider.jsm
-@@ -513,315 +513,6 @@ const BASE_MESSAGES = () => [
+@@ -505,315 +505,6 @@ const BASE_MESSAGES = () => [
        ],
      },
    },
@@ -659,7 +659,7 @@ index bcc02aba5f..6a36bfb797 100644
 -    targeting: "localeLanguageCode == 'de'",
 -  },
    {
-     id: "PB_NEWTAB_INFO_SECTION",
+     id: "PB_NEWTAB_PIN_PROMO",
      template: "pb_newtab",
 diff --git a/browser/components/newtab/lib/PanelTestProvider.sys.mjs b/browser/components/newtab/lib/PanelTestProvider.sys.mjs
 index b5ff59290a..eb5fc60451 100644
diff --git a/libre/iceweasel/PKGBUILD b/libre/iceweasel/PKGBUILD
index c05b2ab..9c50605 100644
--- a/libre/iceweasel/PKGBUILD
+++ b/libre/iceweasel/PKGBUILD
@@ -70,10 +70,10 @@
 
 pkgname=iceweasel
 epoch=1
-pkgver=119.0.1
+pkgver=120.0
 pkgrel=1
 pkgrel+=.parabola1
-_brandingver=119.0
+_brandingver=120.0
 _brandingrel=1
 pkgdesc="Standalone web browser derived from Mozilla Firefox"
 url=https://wiki.parabola.nu/Iceweasel
@@ -164,7 +164,7 @@ source+=(
   9004-FSDG-misc.patch
   process-json-files.py
   vendor.js.in
-  zstandard-0.21.0.diff
+  zstandard-0.22.0.diff
 )
 source_i686=(
   avoid-libxul-OOM-python-check.patch
@@ -184,37 +184,37 @@ validpgpkeys+=(
 )
 
 
-sha256sums=('48cc43cab060e97467e9a17617f511a177e7b91b7e77e408425351a2cbb07f70'
+sha256sums=('e710058701074eda53ca9f5fd52c57254858a027984f735bdcd58d6906f6b574'
             'SKIP'
             '9cdc2602661717712092d28bb494e5b48e518cb930898aca85eaf21f91f7ef58') # $pkgname.desktop
                                                                                 # identity-icons-brand.svg
-sha256sums+=('6af335bf59b5d5147e4883154d623826b57cbc3d9e41770a334ae2afe772ba6e'  # *.branding.tar.xz
+sha256sums+=('3fc4fcc7f471a831b2e00e3b8698b382fd6d0d0cbfc55b20ff73364be2ee5b96'  # *.branding.tar.xz
              'SKIP'
-             'b01209c5462237dff3ff7788e7bfedad7a327d9d2759dd65c77cfb71667f2fbd'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
-             '65d9a18b9b2b3f1034b427af486c82416c360c0e9254ada42d81ff2b7132b1ca'  # 9002-FSDG-preference-defaults.patch
+             '4ff07eff69343e50357c9bb571dfa6a702efb3a7915ce8ca8dcb42ee18446aac'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
+             '77ce3e4de9b4bb280a6766cea61b0fbd81f0f946aa115bfe7bf24eca370e1d17'  # 9002-FSDG-preference-defaults.patch
              '07d6910ddd07f60b803957259e06e3babee6f072f48c6fe31b906a1ea24e3b62'  # 9003-FSDG-urihandlers.patch
-             '75c437e73c4a8007251581c957d3d36b85ba77270a72411ff5185a201cfeac6f'  # 9004-FSDG-misc.patch
+             'f999ddb5a2cde87217bb5b0ebf20b4e0aabe88657a73545c9487cddde1deab22'  # 9004-FSDG-misc.patch
              '00cb44a91b42942f17258ad165810866ff123777b667a5691ea0745ba72f4332'  # process-json-files.py
              '86bd54db6026ff65bd24ac4f05d0679a645ff447e2f81b0ee44037c0c4285e06'  # vendor.js.in
-             'aa663d899e924f4979114584cad671dad3b93dd9b0dfe28bb1cf11ddf92e6d47') # zstandard-0.21.0.diff
+             '3803336b109ab3663d227d6d16f712c33f5c55712028ee74e6e82f2ef74bf55f') # zstandard-0.22.0.diff
 sha256sums_i686=('62fa060e09b95e92fa81f4ac47c06b03d70c2bbc6cda061d85e965a82730e1c0'  # avoid-libxul-OOM-python-check.patch
                  'b25d9fb901afc5447bcd87416741f705eb7188502e10097387d5b0c86417fd01'  # rust-static-disable-network-test-on-static-libraries.patch
                  'ed3bb281697af7c4353a34067ffb4b18a971d40757bef2d6af3c8bf2d28d42d1'  # firefox-111.0.1-fdlibm.patch
                  '2fb39374fd3d80eea9e346032a2a4b2bc2e357dee7380855b24bcf19b1335d06'  # fix-i686-build-moz-1792159.patch
                  'c3ce181fbb0142055aa6dd17f3cda2ba6a1e54d7a689a8c6e9cce76aa40e6544') # fix-i686-xsimd-incomplete.patch
-b2sums=('b5a2ceadf05692d482dc8114634902d33c32c908e60394bf2e6b38afd8d83830d40c83afec28f7257e269595196140c0a8a1f345232f29c649a202d51ca39c68'
+b2sums=('06f11d9d6f705c13c3288f1757d68c7c910e258b3efa643f0f0168fba0d585f758082af3905c951e227894df0c092965663f52196ee1fc3477195748e0049767'
         'SKIP'
         'f86353bbba05d8994db34c6abb66094aa61d2c37c8599930dbe9d215413f0f718a1ce55a8f2d07a65074c3947e28fc80d44c925bd9be239a870f82d2a1803635') # $pkgname.desktop
                                                                                                                                             # identity-icons-brand.svg
-b2sums+=('8946e6e2dbfca390d69d79d409f8c4dbf74522c96a038a79659869f697ba3aafc0289e4ebc5ba21508cc2ef070d2859cee07b1b8052991d4c17ed992fef8bed1'  # *.branding.tar.xz
+b2sums+=('026f09cddb198badbf6ae67dda21ac9f99cfa80cfa490732b7b3c52eb43cfc83c3ae163506bdad657beaa368c3eba17dd154fdb1c8c40ab2d4f7934004982aa8'  # *.branding.tar.xz
          'SKIP'
-         'cc79ed221206fcc4ec63f4d5e2e430a2993904077a5074d9bfa193911401199d5d8df01c392fdab0adfdce4085938855ab3098556630cc6fd377d5cf97d00b25'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
-         '2d2174819ec281314a5c736c05e647c8ba270670e92fc9a4c17496a2ac45da4514095ae57db05253cf48513e42d58eda87b28c9c62c119d5a4788fcaab01d213'  # 9002-FSDG-preference-defaults.patch
+         '9834f69d69f9ce3cee872a7e75b6848d5539b94752aa50c74612177a740319a33b02734f1d2cdde31ee50efa7a3ed85cf85efb7e6687cfe6ab7be843b4089e7b'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
+         '702f3179595ce27660e9761811369158a8102c94e77ccb28d3a58026641b055e53f9ec45a1272346eada54021d02956360e1267728fbec201c50fee42c7d677f'  # 9002-FSDG-preference-defaults.patch
          'dbb0f9639cbe08bf423faf9e2966b5464a26ab5c6314eea18be0e89edd8ac465bfa04a219821852bdd0801dfed9092999bcca1a982a631035bae9a51408d8dde'  # 9003-FSDG-urihandlers.patch
-         '878b4aa544b65dac165e329e3cbcb88d4ee8cdc41a5c47a9e1bc332c3f52912fd73836072e60da907c825a062695d34478d52886aa05a76915852e6dbd892e91'  # 9004-FSDG-misc.patch
+         '7d7c9a67ef8035f85482b37d0b7b7743f005d5e7f48d1865f21745ebd10053ed8a6c15e1e176f42d5ef738e7bb074bdad8e912983ca4614a2aab50b95824a4a6'  # 9004-FSDG-misc.patch
          '085c4631ec8cfdf5842068d882185c783e976b1fde74167bb71ef4d7db8c70c12844177b17e76f858ba3ce2a402848ac8fc19910dcbefd29887abfaf5faac5e4'  # process-json-files.py
          'f3f344196d03499f3f0392d5dfc5310e131d8c85772edd340faf1df3f04ebf2931eb1dda1b7fe6870d61d498618f4d8ae9f1dd446acbe83e0ce324e04b38f3f9'  # vendor.js.in
-         '2e568bb28f23f0f9225ca68a5084e3e835f6bd15046eea9d615d3462146da649c1b6b7439b4d768759bda2658d54ca73c9b3479e5e0b6d7a58822664dbe45aa2') # zstandard-0.21.0.diff
+         '6176a2e4b7a651b50b1ca2d6c8b62b1fd7557cacff50f38cb87f126590d9a2ac8d9b249c1671be0551cc81ce9a028a22e9b29ac121e480dab61cd7c10b891d50') # zstandard-0.22.0.diff
 b2sums_i686=('684559d207d33e8b83c70d79ddb8b4d7532f2440895668245856553e02b6c786cf0de776981cdcce2438c7add2d692f4afbc85255949558852bdec9800c59882'  # avoid-libxul-OOM-python-check.patch
              '32c60a9259f9ab6b950c0a3af81e4c36c14160860d3b9da70aa3fbc3676e5fd2b2705b02d7e6b6ac49f9510577de89ab2334abe3b0a126e3d70e65ac42ba62c9'  # rust-static-disable-network-test-on-static-libraries.patch
              '05c7c9727201971650df4ca2e00539767fc9e159539835c641fccab5ec9577a7294e8f62f5d0670158316e5467ea121c03a36fd4ba153e1d60f3402f0430548d'  # firefox-111.0.1-fdlibm.patch
@@ -266,9 +266,6 @@ armv7h)
 
   depends+=( libicudata.so libicui18n.so libicuuc.so ) # --with-system-icu
 
-  # zstandard<=0.21.0,>=0.11.1: Installed with unexpected version "0.22.0"
-  makedepends=( ${makedepends[*]/python-zstandard/python-zstandard<=0.21.0} ) # archived
-
   # warning: obj/dist/system_wrappers/cmath:3:15: fatal error: 'cmath' file not found
   (( _USE_ALT_COMPILER )) || makedepends=( ${makedepends[*]/llvm/llvm15} llvm15-libs )
   # still FTBS
@@ -281,10 +278,6 @@ i686)
   #       and ... nss>=3.94 is required; but it FTBS
   # still FTBS
   ;;
-x86_64)
-  # zstandard<=0.21.0,>=0.11.1: Installed with unexpected version "0.22.0"
-  makedepends=( ${makedepends[*]/python-zstandard/python-zstandard<=0.21.0} ) # archived
-  ;;
 esac
 
 
@@ -367,12 +360,11 @@ prepare() {
   mkdir mozbuild
   cd firefox-$pkgver
 
-
   ## technical patching ##
 
-  # Unbreak build with python-zstandard 0.21.0
-  echo "applying zstandard-0.21.0.diff"
-  patch -Np1 -i ../zstandard-0.21.0.diff
+  # Unbreak build with python-zstandard 0.22.0
+  echo "applying zstandard-0.22.0.diff"
+  patch -Np1 -i ../zstandard-0.22.0.diff
 
   # Use system python-typing-extensions instead of the old vendored one to avoid
   # unresolvable dependency versions. They are probably downloaded when network
diff --git a/libre/iceweasel/zstandard-0.21.0.diff b/libre/iceweasel/zstandard-0.21.0.diff
deleted file mode 100644
index f99ef3e..0000000
--- a/libre/iceweasel/zstandard-0.21.0.diff
+++ /dev/null
@@ -1,10 +0,0 @@
-diff --git a/python/sites/mach.txt b/python/sites/mach.txt
-index d105723399..b10a7e42d7 100644
---- a/python/sites/mach.txt
-+++ b/python/sites/mach.txt
-@@ -143,4 +143,4 @@ pypi-optional:glean-sdk==52.7.0:telemetry will not be collected
- # 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.9.4:telemetry will be missing some data
--pypi-optional:zstandard>=0.11.1,<=0.19.0:zstd archives will not be possible to extract
-+pypi-optional:zstandard>=0.11.1,<=0.21.0:zstd archives will not be possible to extract
diff --git a/libre/iceweasel/zstandard-0.22.0.diff b/libre/iceweasel/zstandard-0.22.0.diff
new file mode 100644
index 0000000..ed3083d
--- /dev/null
+++ b/libre/iceweasel/zstandard-0.22.0.diff
@@ -0,0 +1,10 @@
+diff --git a/python/sites/mach.txt b/python/sites/mach.txt
+index d105723399..b10a7e42d7 100644
+--- a/python/sites/mach.txt
++++ b/python/sites/mach.txt
+@@ -143,4 +143,4 @@ pypi-optional:glean-sdk==52.7.0:telemetry will not be collected
+ # 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.9.4:telemetry will be missing some data
+-pypi-optional:zstandard>=0.11.1,<=0.19.0:zstd archives will not be possible to extract
++pypi-optional:zstandard>=0.11.1,<=0.22.0:zstd archives will not be possible to extract

From 29f0b38a9ac7419fef9bcea8fa228f921369a8f8 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 04 2023 21:16:17 +0000
Subject: [PATCH 2/19] [parabola-keyring]: housekeeping


---

diff --git a/libre/parabola-keyring/PKGBUILD b/libre/parabola-keyring/PKGBUILD
index c42ca2a..719ddb3 100644
--- a/libre/parabola-keyring/PKGBUILD
+++ b/libre/parabola-keyring/PKGBUILD
@@ -2,10 +2,10 @@
 # Maintainer: Parabola Hackers <dev@lists.parabola.nu>
 
 
-# NOTE: This PKGBUILD does not need to be edited manuall.
-#       You do not need to build it, nor librerelease it.
+# NOTE: This PKGBUILD does not need to be edited manually.
+#       You do not need to build it, nor `librerelease` it.
 #       The package is built automatically by autobuilder,
-#       upon a git push to the 'master' branch of hackers.git.
+#       upon a `git push` to the 'master' branch of hackers.git.
 #       The autobuilder will modify this PKGBUILD, replacing $pkgver and $_gitrev,
 #       build and publish the package, and commit the modified PKGBUILD to abslibre.
 #       To generate a new keyring:

From 60edfeebcf574e74745a2d6ffd67fa9b0d754950 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 04 2023 21:19:10 +0000
Subject: [PATCH 3/19] [iceweasel]: the usual housekeeping and arch-specific tweaks


---

diff --git a/libre/iceweasel/PKGBUILD b/libre/iceweasel/PKGBUILD
index 9c50605..12f8cd9 100644
--- a/libre/iceweasel/PKGBUILD
+++ b/libre/iceweasel/PKGBUILD
@@ -78,9 +78,7 @@ _brandingrel=1
 pkgdesc="Standalone web browser derived from Mozilla Firefox"
 url=https://wiki.parabola.nu/Iceweasel
 arch=(x86_64)
-arch+=(
-  armv7h
-  i686)
+arch+=(armv7h i686)
 license=(
   GPL
   LGPL
@@ -182,13 +180,11 @@ validpgpkeys+=(
   'BFA8008A8265677063B11BF47171986E4B745536' # Andreas Grapentin
   '3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40' # bill-auger
 )
-
-
 sha256sums=('e710058701074eda53ca9f5fd52c57254858a027984f735bdcd58d6906f6b574'
             'SKIP'
             '9cdc2602661717712092d28bb494e5b48e518cb930898aca85eaf21f91f7ef58') # $pkgname.desktop
                                                                                 # identity-icons-brand.svg
-sha256sums+=('3fc4fcc7f471a831b2e00e3b8698b382fd6d0d0cbfc55b20ff73364be2ee5b96'  # *.branding.tar.xz
+sha256sums+=('a5eed3c1f31a253f90b0284e0caf17bd35b3fa35197cfc403cb1bd987ecd56eb'  # *.branding.tar.xz
              'SKIP'
              '4ff07eff69343e50357c9bb571dfa6a702efb3a7915ce8ca8dcb42ee18446aac'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
              '77ce3e4de9b4bb280a6766cea61b0fbd81f0f946aa115bfe7bf24eca370e1d17'  # 9002-FSDG-preference-defaults.patch
@@ -206,7 +202,7 @@ b2sums=('06f11d9d6f705c13c3288f1757d68c7c910e258b3efa643f0f0168fba0d585f758082af
         'SKIP'
         'f86353bbba05d8994db34c6abb66094aa61d2c37c8599930dbe9d215413f0f718a1ce55a8f2d07a65074c3947e28fc80d44c925bd9be239a870f82d2a1803635') # $pkgname.desktop
                                                                                                                                             # identity-icons-brand.svg
-b2sums+=('026f09cddb198badbf6ae67dda21ac9f99cfa80cfa490732b7b3c52eb43cfc83c3ae163506bdad657beaa368c3eba17dd154fdb1c8c40ab2d4f7934004982aa8'  # *.branding.tar.xz
+b2sums+=('d6ccdc46fce7cfc4bb35a6b09deee8cd96b9076c599c1f031b4d2c5a9c2722bdf98dd14eddde50422e9a1b88f24d425c8a5f1e861877a367c6ff5365e61258c0'  # *.branding.tar.xz
          'SKIP'
          '9834f69d69f9ce3cee872a7e75b6848d5539b94752aa50c74612177a740319a33b02734f1d2cdde31ee50efa7a3ed85cf85efb7e6687cfe6ab7be843b4089e7b'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
          '702f3179595ce27660e9761811369158a8102c94e77ccb28d3a58026641b055e53f9ec45a1272346eada54021d02956360e1267728fbec201c50fee42c7d677f'  # 9002-FSDG-preference-defaults.patch
@@ -834,8 +830,8 @@ END
 }
 
 package() {
-  export MOZBUILD_STATE_PATH="$srcdir/mozbuild"         # needed for `libremakepkg -R`
-  export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system # needed for `libremakepkg -R`
+  export MOZBUILD_STATE_PATH="$srcdir/mozbuild"         # needed for `{libre,}makepkg -R`
+  export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system # needed for `{libre,}makepkg -R`
 
   cd firefox-$pkgver
   DESTDIR="$pkgdir" ./mach install

From 5d1808d2813fc47ff6425aa43e79782d41f740c0 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 04 2023 21:26:33 +0000
Subject: [PATCH 4/19] [iceweasel]: upgrade to v120.0.1


---

diff --git a/libre/iceweasel/PKGBUILD b/libre/iceweasel/PKGBUILD
index 12f8cd9..3da81af 100644
--- a/libre/iceweasel/PKGBUILD
+++ b/libre/iceweasel/PKGBUILD
@@ -70,7 +70,7 @@
 
 pkgname=iceweasel
 epoch=1
-pkgver=120.0
+pkgver=120.0.1
 pkgrel=1
 pkgrel+=.parabola1
 _brandingver=120.0
@@ -180,7 +180,8 @@ validpgpkeys+=(
   'BFA8008A8265677063B11BF47171986E4B745536' # Andreas Grapentin
   '3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40' # bill-auger
 )
-sha256sums=('e710058701074eda53ca9f5fd52c57254858a027984f735bdcd58d6906f6b574'
+
+sha256sums=('76e7bb2a144880158444d8e9014f4d080d219bd150c3db405b27e4c7e3959ae2'
             'SKIP'
             '9cdc2602661717712092d28bb494e5b48e518cb930898aca85eaf21f91f7ef58') # $pkgname.desktop
                                                                                 # identity-icons-brand.svg
@@ -198,7 +199,7 @@ sha256sums_i686=('62fa060e09b95e92fa81f4ac47c06b03d70c2bbc6cda061d85e965a82730e1
                  'ed3bb281697af7c4353a34067ffb4b18a971d40757bef2d6af3c8bf2d28d42d1'  # firefox-111.0.1-fdlibm.patch
                  '2fb39374fd3d80eea9e346032a2a4b2bc2e357dee7380855b24bcf19b1335d06'  # fix-i686-build-moz-1792159.patch
                  'c3ce181fbb0142055aa6dd17f3cda2ba6a1e54d7a689a8c6e9cce76aa40e6544') # fix-i686-xsimd-incomplete.patch
-b2sums=('06f11d9d6f705c13c3288f1757d68c7c910e258b3efa643f0f0168fba0d585f758082af3905c951e227894df0c092965663f52196ee1fc3477195748e0049767'
+b2sums=('66ac2f1071ad8276b61946465db6d71cbe0a43c154fb57db67670e8f88183893fe7c7c8284388242964fd2883e50f40f29c879ebec3a2d759d20c356f27ca151'
         'SKIP'
         'f86353bbba05d8994db34c6abb66094aa61d2c37c8599930dbe9d215413f0f718a1ce55a8f2d07a65074c3947e28fc80d44c925bd9be239a870f82d2a1803635') # $pkgname.desktop
                                                                                                                                             # identity-icons-brand.svg

From 1ce028e55e9fdb2fc259a53be04cebcce6410ffd Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 04 2023 21:26:54 +0000
Subject: [PATCH 5/19] [searx]: upgrade to v1.1.0


---

diff --git a/pcr/searx/0003-Fix-deprecated-werkzeug-import.patch b/pcr/searx/0003-Fix-deprecated-werkzeug-import.patch
deleted file mode 100644
index ca6e27c..0000000
--- a/pcr/searx/0003-Fix-deprecated-werkzeug-import.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From b8b13372c8fd3bfe978a1c724ab98b05348df054 Mon Sep 17 00:00:00 2001
-Message-Id: <b8b13372c8fd3bfe978a1c724ab98b05348df054.1581582658.git.git@rationality.eu>
-In-Reply-To: <a818d3241df2cf010086f837a504b11983c3d55f.1581582658.git.git@rationality.eu>
-References: <a818d3241df2cf010086f837a504b11983c3d55f.1581582658.git.git@rationality.eu>
-From: Nicolas Gelot <nicolas.gelot@e.email>
-Date: Thu, 6 Feb 2020 22:40:58 +0100
-Subject: [PATCH 3/6] Fix deprecated werkzeug import
-
-Close: #1830
-Signed-off-by: Nicolas Gelot <nicolas.gelot@e.email>
----
- requirements.txt | 2 +-
- searx/webapp.py  | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/requirements.txt b/requirements.txt
-index 6e4df37a..ea4a5a7a 100644
---- a/requirements.txt
-+++ b/requirements.txt
-@@ -1,6 +1,6 @@
- certifi==2019.3.9
- babel==2.7.0
--flask-babel==0.12.2
-+flask-babel==1.0.0
- flask==1.0.2
- idna==2.8
- jinja2==2.10.1
-diff --git a/searx/webapp.py b/searx/webapp.py
-index aadefe6b..5ed9f127 100644
---- a/searx/webapp.py
-+++ b/searx/webapp.py
-@@ -47,7 +47,7 @@ except:
-     from html import escape
- from datetime import datetime, timedelta
- from time import time
--from werkzeug.contrib.fixers import ProxyFix
-+from werkzeug.middleware.proxy_fix import ProxyFix
- from flask import (
-     Flask, request, render_template, url_for, Response, make_response,
-     redirect, send_from_directory
--- 
-2.25.0
-
diff --git a/pcr/searx/PKGBUILD b/pcr/searx/PKGBUILD
index 08dab5e..e3593d3 100644
--- a/pcr/searx/PKGBUILD
+++ b/pcr/searx/PKGBUILD
@@ -1,19 +1,22 @@
 # Maintainer (aur): Jake <aur@ja-ke.tech>
+# Maintainer: Parabola Hackers <dev@lists.parabola.nu>
+
+
 # parabola changes and rationale:
-# - Fixed license
-# - Moved random secret key generation in the .install: having that in 
-#   prepare() is not obtimal even for AUR, but it still works fine in many 
-#   cases because users run the package on the machine that compiles it, so
-#   even if it ends up in the package, it's not a big issue, unless users share
-#   the package as they are not aware of this issue in the first place.
+# libre:
+# - Fixed license name in 'license' array
+# privacy:
+# - Moved random secret key generation into an .install hook
+# technical:
+# - Renamed upstream source-ball
+
 
 pkgname=searx
-pkgver=0.16.0
+pkgver=1.1.0
 pkgrel=2
-pkgrel+=par1
 pkgdesc="A privacy-respecting, hackable metasearch engine (python(3) based)"
 arch=('any')
-url="https://asciimoo.github.io/searx/"
+url="https://searx.github.io/searx/"
 license=('AGPL3')
 makedepends=('openssl')
 install="${pkgname}.install"
@@ -21,34 +24,37 @@ depends=(
         'uwsgi'
         'uwsgi-plugin-python'
         'python-certifi'
-        'python-flask'
-        'python-flask-babel'        
+        'python-flask-babel' # sub dep: flask, babel, jinja
         'python-lxml'
         'python-idna'
         'python-pygments'
-        'python-pyopenssl'
-        'python-dateutil'        
+        'python-dateutil'
         'python-yaml'
         'python-requests'
-        'python-pysocks')
+        'python-pysocks'
+        'python-langdetect')
 conflicts=('searx-git' )
 replaces=('searx-py3')
 backup=('etc/searx/settings.yml' 'etc/uwsgi/searx.ini')
-source=("https://github.com/asciimoo/searx/archive/v$pkgver.zip"
+source=(${pkgname}-${pkgver}.zip::https://github.com/searx/searx/archive/refs/tags/v1.1.0.zip
+        'flask-babel-3.patch'
         'searx.ini'
-        'searx.sysusers'
-        '0003-Fix-deprecated-werkzeug-import.patch')
-sha512sums=('3ae4e4c295830e65eefbd39ed9885b60a42a4d4db4d87c179ace76cf43f8c75d49f1363f019bedd135c0597191612e16592cacd159ae97a42a25dcc2fee9d00b'
-            '6e1e7771e747e2bcb9cbc3e5ec9735461b6d791c0c0412e06e7dd802c18625edd0916de32164bf780c18ef7b6a87f55ed1e917377b3adb2bf53c0344f34b49e8'
-            '6856e26451fe053d37c2ce4b9d5f3b35891dd8ec702c5256c02d04415124c57705abc497f12943948a85621bb0238d26c2c1f3a7bf42404a6ff1487c7655909e'
-            '064738f57b8bfbd937d56c592f7321140aab5f894e8ea457ae0d2d9407523f58471f4ba7424968f1d6db7fe51e4f8d360d1e997284eeb7b8528dbcf10f5f12dd')
+        'searx.sysusers')
+sha512sums=('ed92199913353ed246ff30c516402326e9eac0f439b4519d6500b516f9ef73e73d0b25d894c078fb9b65870f2b10a09777d1ae068d13c8e10c91ec14de450b1e'
+            '1db543553aa4989e1cb9fb449a1c4badfd5a1c8e39afc99b5f894557ba74b9293b64d02882919ce9f2e4c108a6cd3b7acb51043e98bc3bab40e69078fbe8813f'
+            '476a4297c51681a9a92c6db3933359cc5a8ec292e45b229d98608ef2906b80c173868a30df06c329204c6f9371736a5bb322239860199526fd559780b37a2d0a'
+            '6856e26451fe053d37c2ce4b9d5f3b35891dd8ec702c5256c02d04415124c57705abc497f12943948a85621bb0238d26c2c1f3a7bf42404a6ff1487c7655909e')
 
 prepare() {
   cd "$srcdir/$pkgname-$pkgver"
-  patch --forward --strip=1 --input="${srcdir}/0003-Fix-deprecated-werkzeug-import.patch"
+
+  patch -Np1 < ../flask-babel-3.patch
 
   # Allow newer versions of the dependencies
   sed -i "s|==|>=|g" requirements.txt
+
+  # Generate a random secret key
+  # parabola does this in the .install hook (privacy concern)
 }
 
 package() {
diff --git a/pcr/searx/flask-babel-3.patch b/pcr/searx/flask-babel-3.patch
new file mode 100644
index 0000000..a575a0e
--- /dev/null
+++ b/pcr/searx/flask-babel-3.patch
@@ -0,0 +1,33 @@
+diff --git a/searx/webapp.py b/searx/webapp.py
+index e37eaf73..96bac1c0 100755
+--- a/searx/webapp.py
++++ b/searx/webapp.py
+@@ -141,7 +141,6 @@ if not werkzeug_reloader\
+    or (werkzeug_reloader and os.environ.get("WERKZEUG_RUN_MAIN") == "true"):
+     search_initialize(enable_checker=True)
+ 
+-babel = Babel(app)
+ 
+ rtl_locales = ['ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'fa_IR', 'glk', 'he',
+                'ku', 'mzn', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi']
+@@ -188,7 +187,6 @@ def _get_browser_or_settings_language(request, lang_list):
+     return settings['search']['default_lang'] or 'en'
+ 
+ 
+-@babel.localeselector
+ def get_locale():
+     if 'locale' in request.form\
+        and request.form['locale'] in settings['locales']:
+@@ -217,6 +215,12 @@ def get_locale():
+ 
+     return locale
+ 
++babel = Babel()
++if hasattr(babel, "localeselector"):
++    babel.init_app(app)
++    babel.localeselector(get_locale)
++else:
++    babel.init_app(app, locale_selector=get_locale)
+ 
+ # code-highlighter
+ @app.template_filter('code_highlighter')
diff --git a/pcr/searx/searx.ini b/pcr/searx/searx.ini
index 7681436..ee7d3c1 100644
--- a/pcr/searx/searx.ini
+++ b/pcr/searx/searx.ini
@@ -31,3 +31,6 @@ module = searx.webapp
 #virtualenv = /usr/local/searx/searx-ve/
 #pythonpath = /usr/local/searx/
 #chdir = /usr/local/searx/searx/ 
+
+# Cache: https://uwsgi-docs.readthedocs.io/en/latest/Caching.html
+cache2 = name=searxcache,items=2000,blocks=2000,blocksize=4096,bitmap=1

From e6dcf87989fd4d6e71a37e8ff597b3fd8275c16d Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 18 2023 04:20:10 +0000
Subject: [PATCH 6/19] [kio5]: upgrade to v5.113.0


---

diff --git a/nonprism/kio5/PKGBUILD b/nonprism/kio5/PKGBUILD
index 964c657..64f7caa 100644
--- a/nonprism/kio5/PKGBUILD
+++ b/nonprism/kio5/PKGBUILD
@@ -16,7 +16,7 @@
 
 _name=kio
 pkgname=${_name}5
-pkgver=5.112.0
+pkgver=5.113.0
 pkgrel=1
 pkgrel+=.parabola1
 _pkgver_i686=5.105.0       # n/a i686
@@ -26,8 +26,8 @@ eval "[[ -v _pkgrel_${CARCH} ]] && pkgrel=\$_pkgrel_${CARCH}" # always roll at t
 pkgdesc='Resource and network access abstraction'
 pkgdesc+=', with privacy-respecting search engines only'
 arch=(x86_64)
-#arch+=(armv7h i686) # n/a i686
-arch+=(armv7h)       # n/a i686
+arch+=(armv7h i686)
+arch=( ${arch[*]/i686/} ) # n/a i686
 url='https://community.kde.org/Frameworks'
 license=(LGPL)
 depends=(solid5 kjobwidgets5 kbookmarks5 libxslt kwallet5 ktextwidgets5 kded5)
@@ -49,7 +49,7 @@ source+=(duckduckgo_html.desktop
          parabola-wiki.desktop
          searx.desktop
          yacy.desktop)
-sha256sums=('84b8531c077fe8854f9fa69f6d2c120b222bf8334c14c6734dc14a429103fb99'
+sha256sums=('a8b110ef3cfefd53c0fadc58eca5b573319663f380fedfc35ef8d7dbf8d855ae'
             'SKIP')
 sha256sums+=('31910ab7393e67609f15e04a57f6406f63e6dae58b01bce0787741bc5958f292'
              '40466a9dad7075f2525e9e024720da7d7b49a22892b6fca8b81cc0e6408d2f7d'

From 16ccf982c432fb87bf97f3270760a215461a752e Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 18 2023 04:20:25 +0000
Subject: [PATCH 7/19] [icu-compat]: rotate v73


---

diff --git a/libre/icu-compat-72/PKGBUILD b/libre/icu-compat-72/PKGBUILD
new file mode 100644
index 0000000..b7facfa
--- /dev/null
+++ b/libre/icu-compat-72/PKGBUILD
@@ -0,0 +1,168 @@
+# Maintainer (arch:icu): Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Art Gramlich <art@gramlich-net.com>
+# Contributor: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+# Contributor: Eli Schwartz <eschwartz@archlinux.org>
+# Contributor: bill-auger <bill-auger@programmer.net>
+# Maintainer: Parabola Hackers <dev@lists.parabola.nu>
+# Maintainer (archarm:icu): Kevin Mihelich <kevin@archlinuxarm.org>
+
+
+# parabola changes and rationale:
+# - remove all files other than libicu*.so.*
+# - depend on icu; this is needed because if the package is installed on its
+#   own, ldconfig will create un-tracked symlinks which were supposed to be
+#   installed by the icu package.
+# archarm changes and rationale:
+#  - patch to fix icudata library linking on ARM
+#  - remove check for clang in configure - picks up distcc
+
+
+# NOTE:
+#
+# Several Parabola packages depends on 'icu', and the 'icu' "sonames" change
+# frequently. If we don't rebuild all of the Parabola packages which depend on
+# 'icu', as soon as the new ArchLinux, ArchLinux32, and ArchLinuxARM 'icu'
+# packages are synchronized into the Parabola repositories, we have a problem.
+# The repo server synchronizes with the upstream repos un-attended; so this is
+# a wonderful surprise each time. We must hustle to make the system sane
+# again. We could watch the upstream testing and staging repos of each upstream,
+# and start re-building everything in a Parabola staging repo; but that could
+# result in discarded work, if those exact versions are not the ones which are
+# eventually released into the main repos.
+#
+# At first nothing was done to fix or workaround that issue. In practice, once
+# a new 'icu' was synchronized, many users were upgrading before the Parabola
+# packages had the time to be rebuilt. For such users, it broke all the
+# installed Parabola packages that were depending on the old 'icu'. This means
+# that users had to find a way to downgrade packages manually or wait until
+# the package maintainers would finally have rebuilt all of the broken packages.
+#
+# Then such packages were modified to make them depend on the exact version of
+# the 'icu' packages they were built against. This way, once the new 'icu'
+# package is synchronized, the upgrade and the resulting breakage is suppressed,
+# if packages needing rebuild against the new 'icu' package are installed.
+# However this workaround also prevents installing packages that depends on the
+# new 'icu'.
+#
+# An alternate fix would be to automatically build all packages, instead
+# of relying on the upstreams. Still, new staging repos would be required to hold
+# the new packages, until they all can be released together sanely. However we
+# don't have the tooling to run an automatic builder for all packages yet.
+#
+# In the meantime, this version of 'icu' exists for Parabola packages to link
+# against at runtime. In this way, Parabola packages can depend only on the
+# shared-object dependencies (aka: "sodeps", eg: libicu*.so) exposed by 'icu',
+# which is usually provided by the upstream's 'icu'; but may fall-back on this
+# package, if the dependent package has yet to be rebuilt.
+#
+# It is inspired by the awkward hack of carrying multiple versions of library
+# dependencies, commonly used temporarily, for extraordinary cases (e.g. in
+# ArchLinux32 and the AUR as 'icu65', in ArchLinux as 'electronNN', etc).
+# The awkwardness is superficial though. This "rolling" fall-back scales
+# elegantly to Parabola's needs, without consuming increasing resources.
+#
+# 'icu-compat' will usually be one major version behind core/icu. Dependent
+# PKGBUILDs of 'icu' can simply add the following "sodep" dependency:
+#
+#   depends=('libicui18n.so')
+#
+# or whichever libicu*.so.* linkage is reported by:
+#
+#   $ readelf -d /path/to/compiled/ELF/file | grep libicu
+#
+# Then, each time the upstream distribution upgrades 'icu', upgrade this package
+# as well, ensuring that it is always at the immediately preceding upstream
+# version. If some dependent is not yet re-built when it's 'icu' sodep becomes
+# more than one version behind upstream, this PKGBUILD could be renamed/re-built
+# as 'icu-compat-NN'. Of course, it would still be better to rebuild the
+# dependent(s) instead; but sometimes (especially for i686) the dependent may
+# have other problems, preventing rebuild.
+#
+# Though pacman will pull in the appropriate package automatically as needed, the
+# general recommendation is for all Parabola users to keep this package installed
+# always, as a catch-all for any dependent lacking the appropriate sodep.
+#
+# This works well for 'icu', even for packages which link to both the older and
+# newer versions of libicu*.so, since 'icu' uses versioned symbols as reported by:
+#
+#   $ nm -D --demangle --with-symbol-versions /path/to/library
+#
+# However, caution must be taken before implementing the same hack for other
+# libraries. Currently, 'icu' is the only one which changes so often, has so
+# many dependents, _and_ supports this hack robustly.
+
+
+pkgname=icu-compat-72
+pkgver=72.1
+pkgrel=2
+pkgdesc="International Components for Unicode library"
+pkgdesc+=" (compatibility libraries for the previous release)"
+arch=(x86_64)
+arch+=(armv7h i686)
+url="https://icu.unicode.org"
+license=('custom:icu')
+depends=('gcc-libs' 'sh')
+depends+=("icu>${pkgver}")
+makedepends=('python')
+provides=(libicu{data,i18n,io,test,tu,uc}.so)
+conflicts=("icu<=${pkgver}" icu${pkgver%%.*})
+options=('debug')
+source=(https://github.com/unicode-org/icu/releases/download/release-${pkgver//./-}/icu4c-${pkgver//./_}-src.tgz{,.asc})
+source_armv7h=(icudata-stdlibs.patch)
+sha512sums=('848c341b37c0ff077e34a95d92c6200d5aaddd0ee5e06134101a74e04deb08256a5e817c8aefab020986abe810b7827dd7b2169a60dacd250c298870518dcae8'
+            'SKIP')
+sha512sums_armv7h=('8f13898c2b2d69ef516ee0831a73e5865676795716e7becac4457e208642bfdffb42f2a9280e99dcc10303ad721f5dc2e10ef83c633bd723044e98cc72c6bc7b')
+# checksums may be checked against upstream:
+#   $ curl -Ls https://github.com/unicode-org/icu/releases/download/release-${pkgver//./-}/SHASUM512.txt | grep '\-src.tgz'
+#validpgpkeys=('BA90283A60D67BA0DD910A893932080F4FB419E3') #  "Steven R. Loomis (filfla-signing) <srloomis@us.ibm.com>" 
+#validpgpkeys+=('9731166CD8E23A83BEE7C6D3ACA5DBE1FD8FABF1') #  "Steven R. Loomis (ICU Project) <srl@icu-project.org>" 
+#validpgpkeys+=('FFA9129A180D765B7A5BEA1C9B432B27D1BA20D7') # "Fredrik Roubert <fredrik@roubert.name>"
+#validpgpkeys+=('E4098B78AFC94394F3F49AA903996C7C83F12F11') # "keybase.io/srl295 <srl295@keybase.io>"
+#validpgpkeys+=('4569BBC09DA846FC91CBD21CE1BBA44593CF2AE0') # "Steven R. Loomis (codesign-qormi) <srloomis@us.ibm.com>"
+#validpgpkeys=('0E51E7F06EF719FBD072782A5F56E5AFA63CCD33') #"Craig Cornelius (For use with ICU releases) <ccornelius@google.com>"
+validpgpkeys=('3DA35301A7C330257B8755754058F67406EAA6AB') # Craig Cornelius <ccornelius@google.com>
+
+
+prepare() {
+  ## arch-specific patching ##
+  case "${CARCH}" in
+  armv7h)
+    # ../../bin/genrb: error while loading shared libraries: ../../lib/libicudata.so.70: internal error
+    cd icu/source
+    patch -p2 -i ${srcdir}/icudata-stdlibs.patch
+    sed -r -i 's/(for ac_prog in )clang(\+\+)? /\1/g' configure
+    ;;
+  esac
+}
+
+build() {
+  cd icu/source
+  ./configure --prefix=/usr \
+  --sysconfdir=/etc \
+  --mandir=/usr/share/man \
+  --sbindir=/usr/bin
+  make
+}
+
+check() {
+  # v71 - the 'iotest' test fails on armv7h
+  # v72 - the 'intltest' test fails on armv7h
+  [[ "${CARCH}" != armv7h ]] || return 0
+
+  cd icu/source
+  make -k check
+}
+
+package() {
+  cd icu/source
+  make -j1 DESTDIR="${pkgdir}" install
+
+  # Install license
+  install -Dm644 "${srcdir}"/icu/LICENSE "${pkgdir}"/usr/share/licenses/icu/LICENSE
+  mv "${pkgdir}"/usr/share/licenses/{icu,${pkgname}}
+
+  # to avoid conflicts against the preferred 'icu' package, we remove all files
+  # except the actual shared libraries
+  rm -r "${pkgdir}"/usr/{bin,include,lib/{icu,pkgconfig},share}
+  rm "${pkgdir}"/usr/lib/*.so
+}
diff --git a/libre/icu-compat-72/icudata-stdlibs.patch b/libre/icu-compat-72/icudata-stdlibs.patch
new file mode 100644
index 0000000..5e92bde
--- /dev/null
+++ b/libre/icu-compat-72/icudata-stdlibs.patch
@@ -0,0 +1,15 @@
+Index: icu-52~m1/source/config/mh-linux
+===================================================================
+--- icu-52~m1.orig/source/config/mh-linux	2013-09-14 18:53:23.284040467 -0400
++++ icu-52~m1/source/config/mh-linux	2013-09-14 18:53:23.284040467 -0400
+@@ -21,7 +21,9 @@
+ LD_RPATH_PRE = -Wl,-rpath,
+ 
+ ## These are the library specific LDFLAGS
+-LDFLAGSICUDT=-nodefaultlibs -nostdlib
++#LDFLAGSICUDT=-nodefaultlibs -nostdlib
++# Debian change: linking icudata as data only causes too many problems.
++LDFLAGSICUDT=
+ 
+ ## Compiler switch to embed a library name
+ # The initial tab in the next line is to prevent icu-config from reading it.
diff --git a/libre/icu-compat/ICU-22132.patch b/libre/icu-compat/ICU-22132.patch
new file mode 100644
index 0000000..3b93c92
--- /dev/null
+++ b/libre/icu-compat/ICU-22132.patch
@@ -0,0 +1,25 @@
+diff -u a/i18n/vtzone.cpp a/i18n/vtzone.cpp
+--- a/i18n/vtzone.cpp	2023-07-14 09:05:38.000000000 +0100
++++ b/i18n/vtzone.cpp	2023-07-14 09:05:38.000000000 +0100
+@@ -1735,14 +1735,14 @@
+             }
+         }
+     } else {
+-        UnicodeString icutzprop;
+-        UVector customProps(nullptr, uhash_compareUnicodeString, status);
++        UVector customProps(uprv_deleteUObject, uhash_compareUnicodeString, status);
+         if (olsonzid.length() > 0 && icutzver.length() > 0) {
+-            icutzprop.append(olsonzid);
+-            icutzprop.append(u'[');
+-            icutzprop.append(icutzver);
+-            icutzprop.append(u']');
+-            customProps.addElement(&icutzprop, status);
++            LocalPointer<UnicodeString> icutzprop(new UnicodeString(ICU_TZINFO_PROP), status);
++            icutzprop->append(olsonzid);
++            icutzprop->append(u'[');
++            icutzprop->append(icutzver);
++            icutzprop->append(u']');
++            customProps.adoptElement(icutzprop.orphan(), status);
+         }
+         writeZone(writer, *tz, &customProps, status);
+     }
\ No newline at end of file
diff --git a/libre/icu-compat/PKGBUILD b/libre/icu-compat/PKGBUILD
index 04545d7..d0ec9fa 100644
--- a/libre/icu-compat/PKGBUILD
+++ b/libre/icu-compat/PKGBUILD
@@ -93,7 +93,7 @@
 
 
 pkgname=icu-compat
-pkgver=72.1
+pkgver=73.2
 pkgrel=2
 pkgdesc="International Components for Unicode library"
 pkgdesc+=" (compatibility libraries for the previous release)"
@@ -101,19 +101,20 @@ arch=(x86_64)
 arch+=(armv7h i686)
 url="https://icu.unicode.org"
 license=('custom:icu')
-depends=('gcc-libs' 'sh')
+depends=('gcc-libs' 'glibc' 'sh')
 depends+=("icu>${pkgver}")
 makedepends=('python')
 provides=(libicu{data,i18n,io,test,tu,uc}.so)
 conflicts=("icu<=${pkgver}" icu${pkgver%%.*})
 options=('debug')
-source=(https://github.com/unicode-org/icu/releases/download/release-${pkgver//./-}/icu4c-${pkgver//./_}-src.tgz{,.asc})
+source=(https://github.com/unicode-org/icu/releases/download/release-${pkgver//./-}/icu4c-${pkgver//./_}-src.tgz{,.asc}
+        ICU-22132.patch)
 source_armv7h=(icudata-stdlibs.patch)
-sha512sums=('848c341b37c0ff077e34a95d92c6200d5aaddd0ee5e06134101a74e04deb08256a5e817c8aefab020986abe810b7827dd7b2169a60dacd250c298870518dcae8'
-            'SKIP')
+# https://github.com/unicode-org/icu/releases/download/release-73-2/SHASUM512.txt
+sha512sums=('76dd782db6205833f289d7eb68b60860dddfa3f614f0ba03fe7ec13117077f82109f0dc1becabcdf4c8a9c628b94478ab0a46134bdb06f4302be55f74027ce62'
+            'SKIP'
+            '1178062ccfcf7ecc698c64132b3612e73f9c4b0bbfaa668ae2039f3eb4cb2722d0b08a9f45b057da10def7a308d5c8d14c0c644892e7f11092c9cc488c850ab7')
 sha512sums_armv7h=('8f13898c2b2d69ef516ee0831a73e5865676795716e7becac4457e208642bfdffb42f2a9280e99dcc10303ad721f5dc2e10ef83c633bd723044e98cc72c6bc7b')
-# checksums may be checked against upstream:
-#   $ curl -Ls https://github.com/unicode-org/icu/releases/download/release-${pkgver//./-}/SHASUM512.txt | grep '\-src.tgz'
 #validpgpkeys=('BA90283A60D67BA0DD910A893932080F4FB419E3') #  "Steven R. Loomis (filfla-signing) <srloomis@us.ibm.com>" 
 #validpgpkeys+=('9731166CD8E23A83BEE7C6D3ACA5DBE1FD8FABF1') #  "Steven R. Loomis (ICU Project) <srl@icu-project.org>" 
 #validpgpkeys+=('FFA9129A180D765B7A5BEA1C9B432B27D1BA20D7') # "Fredrik Roubert <fredrik@roubert.name>"
@@ -124,11 +125,15 @@ validpgpkeys=('3DA35301A7C330257B8755754058F67406EAA6AB') # Craig Cornelius <cco
 
 
 prepare() {
+  cd icu/source
+  patch -Np1 < "../../ICU-22132.patch"
+
+
   ## arch-specific patching ##
+
   case "${CARCH}" in
   armv7h)
     # ../../bin/genrb: error while loading shared libraries: ../../lib/libicudata.so.70: internal error
-    cd icu/source
     patch -p2 -i ${srcdir}/icudata-stdlibs.patch
     sed -r -i 's/(for ac_prog in )clang(\+\+)? /\1/g' configure
     ;;
@@ -145,9 +150,10 @@ build() {
 }
 
 check() {
-  # v71 - the 'iotest' test fails on armv7h
-  # v72 - the 'intltest' test fails on armv7h
-  [[ "${CARCH}" != armv7h ]] || return 0
+  # v71 - 'iotest' test fails on armv7h
+  # v72 - 'intltest' test fails on armv7h
+  # v73 - 'intltest' test fails on x86_64
+  [[ "${CARCH}" != x86_64 ]] || return 0
 
   cd icu/source
   make -k check
@@ -161,8 +167,8 @@ package() {
   install -Dm644 "${srcdir}"/icu/LICENSE "${pkgdir}"/usr/share/licenses/icu/LICENSE
   mv "${pkgdir}"/usr/share/licenses/{icu,${pkgname}}
 
-  # to avoid conflicts against the preferred 'icu' package, we remove all files
-  # except the actual shared libraries
+  # icu-compat - to avoid conflicts against the preferred 'icu' package,
+  #              we remove all files except the actual shared libraries
   rm -r "${pkgdir}"/usr/{bin,include,lib/{icu,pkgconfig},share}
   rm "${pkgdir}"/usr/lib/*.so
 }
diff --git a/libre/icu-compat/keys/pgp/0E51E7F06EF719FBD072782A5F56E5AFA63CCD33.asc b/libre/icu-compat/keys/pgp/0E51E7F06EF719FBD072782A5F56E5AFA63CCD33.asc
new file mode 100644
index 0000000..8a35b6c
--- /dev/null
+++ b/libre/icu-compat/keys/pgp/0E51E7F06EF719FBD072782A5F56E5AFA63CCD33.asc
@@ -0,0 +1,41 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQGNBF+HGz4BDAC00mXlPPgW5JI9ECxI9juSX/xpzAhM/2NvXzc4Smq7efJMzwvp
+PkfBwdfLavred6rxqjVfXJZuPL4rAY2fKBiMq2ANBRsx6t0Bl1jbZbI/MGb18Qcl
+5EQ/n1I0WslugsZpSX7crj2A+bO42BRWOgroQdpLTrdTjdeS774MaOvt7i3S2Cy/
+YT+U6ysrz0F7wWdiOMUftHEBOrXPJ0s7P3bJGDYsca0sV1o5EmefQWh7cymhroHQ
+UzUnsthmU0Qv8BQ7xc7zsCBrJR0V0ryMww8u/mLexz7i+W522olx78Vj887yC//l
+lAZYI+ORG9hTr3QvcVaF/FaZsbwrA3FPKB+LFWQr/CFa0eSuXWoY5u2g3aL5KoCy
+G/l7x7YlMx7Rw+65YIssZYv39AiZEU3nei+qsaneNc8v6HTX39mMXVdMc5/iWV6A
+pBo+1+wTgaOWMFf5zOg38DyzdQaDz6TNoAgwHbQhz7MDHqLZssy2U/ATnqAPi/Xf
+8oGmQtTh/8zupCsAEQEAAbRDQ3JhaWcgQ29ybmVsaXVzIChGb3IgdXNlIHdpdGgg
+SUNVIHJlbGVhc2VzKSA8Y2Nvcm5lbGl1c0Bnb29nbGUuY29tPokBzgQTAQoAOBYh
+BA5R5/Bu9xn70HJ4Kl9W5a+mPM0zBQJfhxs+AhsDBQsJCAcCBhUKCQgLAgQWAgMB
+Ah4BAheAAAoJEF9W5a+mPM0zJ5IL/2XJ6VHdSdMstzjpnCDjQTYuhFkwEfGSlMrh
+NTZftoQ1qYXuU8DKISgEo1OlguuK61xePn5wl8BfT6XfF2XCZpVUah2fom1m9ZAI
+2gkt/Bwn1ulBKQd3NQpAQKPSKzOVJ+0BBOoBCwoCy+hHr8oeRJGgxz+j8aux10IV
+OHviRkBizx0vnVcy3dN41QLNvtq2cZcKig68sAJPM3t4//co89pH3kjKzBFVCqxF
++INFyaGMyhT1zEhEYB+o6fvYGS4zX9qGRpLzx64beA84DZRmv6aLvjwzhSfA74Ey
+f+FLiAMYae1opWLS+to54WEB5hK2Ak251PqOfWCuR1KVGmQaa4sabT3uQQ4bRh6Y
+yGSXD9qSRJC/W2vNRwkEnKrjwFgH6w2XgHpVLlJiC6Ir7U57AkCfUDVdRCcWQoGN
+ZTuPIHfoj7IehJgR8NZvbHAWViC3FP9DZEm+1druAbc62PngbTUlF6zJrZ/zl90s
+kDg8cNNhQtCdgDKdL/cZwBm/G8RzULkBjQRfhxs+AQwAztqSswDb1xUqU+SHjAnA
+LziAH/L4CaTvOAZ40Pfz4IjmTJkFtN0yHa2PvcCgEzsb1E6QuxvtO9DON/FMJRiV
+/Os42OwsV/sXYsqi/QKyuUCZb2l0r4cdanAK4CyIlvl96rP1P2P6lziDUtoGVEmG
+jAZ1h7l7rSF0kC4qot5eutp0j7you1o6R4IvO01dsxvgfcRdtwMTGVrYf9L7SHry
+IXqAfL5NJiaKLPB5sdapJ5Jw6iAk/xZZ8ZvX9VMgzmPiMFjEcr2WVK/q9PL4O6oN
+EyB5GHjMETKL502XAD6DbxU9ch7MU3X+5gNckxwspgbz+WlLl4fhSfrXz5ihr8+u
+W7NFZpXFNdCpfhJ7Re054lYQqf0AeTPDAOhyjNM8TkRTBme8Z1fYLup0T3EfvD7x
+BcWNsIBHH+6X4+sBnUvj64v3St/ud2mxPES4v2iVvsItlzXf2kVo6UgtigZh1JNe
+2YKdyW+iIo2/nu23E3/kRF4ItPj7JDWngslOC80rWQsFABEBAAGJAbYEGAEKACAW
+IQQOUefwbvcZ+9ByeCpfVuWvpjzNMwUCX4cbPgIbDAAKCRBfVuWvpjzNM1C2C/9u
+/hA+WvLON6tuGQjkED2X5V8vtDJ81uBcI/X+1rMQ/35I+udafzKEVZroMrUbYt0/
+PgOFC1LisWrQmfkPkiKG121hw9B/oVaLAaIVOh5ll+TW8otfMJOWAzVszeJ9Hbob
++pW+LZ9zPbrV/VnUFp7nVzYys3XTYosWpXOXlPbzBKRJ8Ci3Jmf3n0opqnxl5XTI
+08PhSIesB4QXJ7lV0Ko//iHttJeEV7elcVJbWcGkCZx+p3/+E9QeLJZTaOks/ER4
+563Pko7iERGoGp0TWdARemgI+qpPUU5ZJgRogHZr7QrhkaqrBtovDq079MQKwhhL
+Nd1b+QROiX2SP2Hcz7qtrtCTPXbBDOr9yy8YZX8cTpjPTmTOPhgT/iTAd08nSvLe
+73y1tJA0b8plTLla0NdwR+w9U1pczO4zdXU6CMklyIxkXDKak/9i6mA8B36yQnUG
+RigwZebzVl8DbDguzxbScLVzZfKeyb5N5aZVOazUkpExfIUhYLcbuHKSeVQGPJ0=
+=VLtP
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/libre/icu-compat/keys/pgp/3DA35301A7C330257B8755754058F67406EAA6AB.asc b/libre/icu-compat/keys/pgp/3DA35301A7C330257B8755754058F67406EAA6AB.asc
new file mode 100644
index 0000000..3389e93
--- /dev/null
+++ b/libre/icu-compat/keys/pgp/3DA35301A7C330257B8755754058F67406EAA6AB.asc
@@ -0,0 +1,41 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=oZq8
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/libre/icu-compat/keys/pgp/FFA9129A180D765B7A5BEA1C9B432B27D1BA20D7.asc b/libre/icu-compat/keys/pgp/FFA9129A180D765B7A5BEA1C9B432B27D1BA20D7.asc
new file mode 100644
index 0000000..37a42f7
--- /dev/null
+++ b/libre/icu-compat/keys/pgp/FFA9129A180D765B7A5BEA1C9B432B27D1BA20D7.asc
@@ -0,0 +1,63 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=wXuO
+-----END PGP PUBLIC KEY BLOCK-----

From 566b51483fed90a36108583c65a1b863b925ea49 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 18 2023 21:58:22 +0000
Subject: [PATCH 8/19] [poliit]: upgrade to v123


---

diff --git a/nonsystemd/polkit/0001-remove-sysd.patch b/nonsystemd/polkit/0001-remove-sysd.patch
index 90be4d5..5780436 100644
--- a/nonsystemd/polkit/0001-remove-sysd.patch
+++ b/nonsystemd/polkit/0001-remove-sysd.patch
@@ -1,22 +1,12 @@
-From 3cd3b5e477811e8b604113d42cffa8ce6a29fec1 Mon Sep 17 00:00:00 2001
-From: Nathan <ndowens@artixlinux.org>
-Date: Wed, 26 Oct 2022 20:53:44 -0500
-Subject: [PATCH] remove sysd
-
----
- data/meson.build | 10 ----------
- meson.build      | 10 ----------
- 2 files changed, 20 deletions(-)
-
 diff --git a/data/meson.build b/data/meson.build
-index 5889495..bbbc1f9 100644
+index 651d2cf..c4d2f79 100644
 --- a/data/meson.build
 +++ b/data/meson.build
 @@ -26,16 +26,6 @@ if enable_pam
    )
  endif
  
--if enable_logind
+-if session_tracking == 'libsystemd-login'
 -  configure_file(
 -    input: 'polkit.service.in',
 -    output: '@BASENAME@',
@@ -30,16 +20,16 @@ index 5889495..bbbc1f9 100644
    'policyconfig-1.dtd',
    install_dir: pk_datadir / 'polkit-1'
 diff --git a/meson.build b/meson.build
-index 1da0e08..79be2cc 100644
+index 3b96562..7a6f0a9 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -202,13 +202,6 @@ if enable_logind
+@@ -207,13 +207,6 @@ if enable_logind
    func = 'sd_uid_get_display'
    config_h.set10('HAVE_' + func.to_upper(), cc.has_function(func, dependencies: logind_dep))
  
 -  # systemd unit / service files
 -  systemd_systemdsystemunitdir = get_option('systemdsystemunitdir')
--  if systemd_systemdsystemunitdir == ''
+-  if systemd_systemdsystemunitdir == '' and session_tracking == 'libsystemd-login'
 -    systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it')
 -    # FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used
 -    systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir')
@@ -47,7 +37,11 @@ index 1da0e08..79be2cc 100644
  endif
  config_h.set('HAVE_LIBSYSTEMD', enable_logind)
  
-@@ -386,9 +379,6 @@ output += '        introspection:            ' + enable_introspection.to_string(
+diff --git a/meson.build b/meson.build
+index 7a6f0a9..4abc73e 100644
+--- a/meson.build
++++ b/meson.build
+@@ -386,9 +386,6 @@ output += '        introspection:            ' + enable_introspection.to_string(
  output += '        Distribution/OS:          ' + os_type + '\n'
  output += '        Authentication framework: ' + auth_fw + '\n'
  output += '        Session tracking:         ' + session_tracking + '\n'
@@ -57,6 +51,3 @@ index 1da0e08..79be2cc 100644
  output += '        polkitd user:             ' + polkitd_user + ' \n'
  output += '        Javascript engine:        ' + js_engine + '\n'
  output += '        PAM support:              ' + enable_pam.to_string() + '\n\n'
--- 
-2.38.1
-
diff --git a/nonsystemd/polkit/PKGBUILD b/nonsystemd/polkit/PKGBUILD
index 9c7c853..409438e 100644
--- a/nonsystemd/polkit/PKGBUILD
+++ b/nonsystemd/polkit/PKGBUILD
@@ -3,8 +3,13 @@
 # Maintainer (artix): Nathan Owens <ndowens@artixlinux.org>
 # Maintainer: Parabola Hackers <dev@lists.parabola.nu>
 
+
+# parabola changes and rationale:
+# - use upstream source-ball rather than VCS sources
+
+
 pkgname=polkit
-pkgver=122
+pkgver=123
 pkgrel=1
 pkgrel+=.nonsystemd1
 pkgdesc="Application development toolkit for controlling system-wide privileges"
@@ -20,36 +25,37 @@ depends=(
   pam
 )
 makedepends=(
-  meson
-  gtk-doc
-  gobject-introspection
   git
+  gobject-introspection
+  gtk-doc
+  meson
 )
 checkdepends=(python-dbusmock)
 checkdepends_i686=(dbus-python) # FIXME: arch32 FS#252
 provides=(libpolkit-{agent,gobject}-1.so)
 backup=(etc/pam.d/polkit-1)
 options=(debug)
-_commit=da87c5698019897dd731bb2cbb54ebd9c9481f52  # tags/122
+# we use source-ball
 source=(
-  "git+https://gitlab.freedesktop.org/polkit/polkit.git#commit=$_commit"
+  https://gitlab.freedesktop.org/polkit/polkit/-/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz
   '99-artix.rules'
   '0001-remove-sysd.patch')
-b2sums=('SKIP'
+b2sums=('38a1afcc6d5da0d4bc572c83ac682a2946f4ce48905430d1f5dd76fd22b58b0dd1573d5dad2e82518852ab7f48919af0f0c601e3f6b03c9420efb9725b345a04'
         'd320d928b5480b5b8143717e6f88101912709020efc9583fbb233a2cc11aff51d36226b94cf69104db06f330e04d4dcfd6e4c7b027df75a3c72c43adec625fb2'
-        'aadd7eb9dee584c7c0721e472b1ea52e6f7dcd1fffaea34bcc93baebccfa7c693db2478a83f0281005ead721523ace92222f06697faf98f13c50b09ca2d88848')
+        'f7e2d94c79c8e1e5cf65c6c22f888f95ca9689137d30ff62759bb3ca91b43900c293afbb0cbd3954c889dc5cf3531a2a37c258b53fe0c0f866706376fcd6e37d')
 
-pkgver() {
-  cd polkit
-  git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g'
-}
 
 prepare() {
+  ln -s ${pkgname}-${pkgver} polkit # minimize diff
+
   cd polkit
   patch -Np1 -i ../0001-remove-sysd.patch
 }
 
 build() {
+  artix-meson() { arch-meson "$@" ; } # minimize diff
+
+
   local meson_options=(
     -D examples=true
     -D gtk_doc=true
@@ -59,7 +65,7 @@ build() {
     -D tests=true
   )
 
-  arch-meson polkit build "${meson_options[@]}"
+  artix-meson polkit build "${meson_options[@]}"
   meson compile -C build
 }
 
@@ -70,10 +76,9 @@ check() {
 package() {
   meson install -C build --destdir "$pkgdir"
 
-  install -Dm644 "${srcdir}"/polkit/src/polkitbackend/50-default.rules \
-        "${pkgdir}"/etc/polkit-1/rules.d
+  install -d -o root -g 102 -m 750 "$pkgdir"/{etc,usr/share}/polkit-1/rules.d
 
-  install -Dm0644 /dev/stdin "$pkgdir/usr/lib/sysusers.d/$pkgname.conf" <<END
+  install -Dm644 /dev/stdin "$pkgdir/usr/lib/sysusers.d/$pkgname.conf" <<END
 u polkitd 102 "PolicyKit daemon"
 m polkitd proc
 END

From 9736d60e28531384fc45d8c35002951497f868c9 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 18 2023 21:58:47 +0000
Subject: [PATCH 9/19] [pulseaudio]: rebuild to provide 'pulse-native-provider'


---

diff --git a/nonsystemd/pulseaudio/PKGBUILD b/nonsystemd/pulseaudio/PKGBUILD
index 811ee17..7ee701f 100644
--- a/nonsystemd/pulseaudio/PKGBUILD
+++ b/nonsystemd/pulseaudio/PKGBUILD
@@ -1,5 +1,6 @@
 # Maintainer: David P. <megver83@parabola.nu>
-# Maintainer (Artix): Nathan <ndowens@artixlinux.org>
+# Maintainer (arch): Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+# Maintainer (artix): Nathan <ndowens@artixlinux.org>
 
 pkgbase=pulseaudio
 pkgname=(
@@ -13,7 +14,7 @@ pkgname=(
   pulseaudio-rtp
 )
 pkgver=16.1
-pkgrel=6
+pkgrel=7
 pkgrel+=.nonsystemd1
 pkgdesc="A featureful, general-purpose sound server"
 url="https://www.freedesktop.org/wiki/Software/PulseAudio/"
@@ -70,16 +71,18 @@ prepare() {
 }
 
 build() {
+  artix-meson() { arch-meson "$@" ; } # minimize diff
+
   local meson_options=(
-    -D pulsedsp-location='/usr/\$LIB/pulseaudio'
     -D elogind=enabled
+    -D pulsedsp-location='/usr/\$LIB/pulseaudio'
     -D stream-restore-clear-old-devices=true
     -D tcpwrap=disabled
     -D systemd=disabled
     -D udevrulesdir=/usr/lib/udev/rules.d
   )
 
-  arch-meson pulseaudio build "${meson_options[@]}"
+  artix-meson pulseaudio build "${meson_options[@]}"
   meson compile -C build
 }
 
@@ -123,6 +126,8 @@ package_pulseaudio() {
     'pulseaudio-rtp: RTP and RAOP support'
     'pulseaudio-zeroconf: Zeroconf support'
   )
+  provides=(pulse-native-provider)
+  conflicts=(pipewire-pulse)
   backup=(
     etc/pulse/daemon.conf
     etc/pulse/default.pa
@@ -150,6 +155,10 @@ package_pulseaudio() {
   sed -e '/Load several protocols/aload-module module-dbus-protocol' \
       -i etc/pulse/default.pa
 
+  # Avoid warning about nonexistent dir
+  # https://gitlab.archlinux.org/archlinux/packaging/packages/pulseaudio/-/issues/3
+  mkdir -p etc/pulse/{default,system}.pa.d
+
   rm -r etc/dbus-1
 
   # Split packages
@@ -198,7 +207,10 @@ package_libpulse() {
     libsndfile
     libxcb
   )
-  optdepends=('glib2: mainloop integration')
+  optdepends=(
+    'glib2: mainloop integration'
+    'pulse-native-provider: PulseAudio backend'
+  )
   provides=(
     libpulse-mainloop-glib.so
     libpulse-simple.so

From 2776bb0437a54988a35bdc5e21f0816a50bac50d Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 20 2023 06:29:06 +0000
Subject: [PATCH 10/19] [webkit2gtk]: upgrade to v2.42.4


---

diff --git a/nonprism/webkit2gtk/GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch b/nonprism/webkit2gtk/GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch
new file mode 100644
index 0000000..bfa8ba5
--- /dev/null
+++ b/nonprism/webkit2gtk/GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch
@@ -0,0 +1,76 @@
+From 745633e606ca70bf926545149beed35aab6450b7 Mon Sep 17 00:00:00 2001
+From: Carlos Garcia Campos <cgarcia@igalia.com>
+Date: Wed, 4 Oct 2023 10:19:28 +0200
+Subject: [PATCH] [GTK] Disable DMABuf renderer for NVIDIA proprietary drivers
+ https://bugs.webkit.org/show_bug.cgi?id=262607
+
+Reviewed by NOBODY (OOPS!).
+
+Some NVIDIA users are reporting nothing is rendered, so let's just
+disable the DMA-BUF renderer until we figure out how to make it work.
+
+* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp:
+(WebKit::isNVIDIA):
+(WebKit::AcceleratedBackingStoreDMABuf::rendererBufferMode):
+---
+ .../gtk/AcceleratedBackingStoreDMABuf.cpp     | 28 +++++++++++++++++++
+ 1 file changed, 28 insertions(+)
+
+diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
+index 9c0f5efdfb0e3..a03842e15db0e 100644
+--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
++++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
+@@ -38,11 +38,13 @@
+ #include <WebCore/GLContext.h>
+ #include <WebCore/IntRect.h>
+ #include <WebCore/PlatformDisplay.h>
++#include <WebCore/PlatformDisplaySurfaceless.h>
+ #include <epoxy/egl.h>
+ #include <wtf/glib/GUniquePtr.h>
+ 
+ #if USE(GBM)
+ #include <WebCore/DMABufFormat.h>
++#include <WebCore/PlatformDisplayGBM.h>
+ #include <gbm.h>
+ static constexpr uint64_t s_dmabufInvalidModifier = uint64_t(WebCore::DMABufFormat::Modifier::Invalid);
+ #else
+@@ -55,6 +57,29 @@ static constexpr uint64_t s_dmabufInvalidModifier = ((1ULL << 56) - 1);
+ 
+ namespace WebKit {
+ 
++static bool isNVIDIA()
++{
++    const char* forceDMABuf = getenv("WEBKIT_FORCE_DMABUF_RENDERER");
++    if (forceDMABuf && strcmp(forceDMABuf, "0"))
++        return false;
++
++    std::unique_ptr<WebCore::PlatformDisplay> platformDisplay;
++#if USE(GBM)
++    const char* disableGBM = getenv("WEBKIT_DMABUF_RENDERER_DISABLE_GBM");
++    if (!disableGBM || !strcmp(disableGBM, "0")) {
++        if (auto* device = WebCore::PlatformDisplay::sharedDisplay().gbmDevice())
++            platformDisplay = WebCore::PlatformDisplayGBM::create(device);
++    }
++#endif
++    if (!platformDisplay)
++        platformDisplay = WebCore::PlatformDisplaySurfaceless::create();
++
++    WebCore::GLContext::ScopedGLContext glContext(WebCore::GLContext::createOffscreen(platformDisplay ? *platformDisplay : WebCore::PlatformDisplay::sharedDisplay()));
++    if (strstr(reinterpret_cast<const char*>(glGetString(GL_VENDOR)), "NVIDIA"))
++        return true;
++    return false;
++}
++
+ OptionSet<DMABufRendererBufferMode> AcceleratedBackingStoreDMABuf::rendererBufferMode()
+ {
+     static OptionSet<DMABufRendererBufferMode> mode;
+@@ -70,6 +95,9 @@ OptionSet<DMABufRendererBufferMode> AcceleratedBackingStoreDMABuf::rendererBuffe
+             return;
+         }
+ 
++        if (isNVIDIA())
++            return;
++
+         mode.add(DMABufRendererBufferMode::SharedMemory);
+ 
+         const auto& eglExtensions = WebCore::PlatformDisplay::sharedDisplay().eglExtensions();
diff --git a/nonprism/webkit2gtk/GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch b/nonprism/webkit2gtk/GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch
new file mode 100644
index 0000000..b10bd9a
--- /dev/null
+++ b/nonprism/webkit2gtk/GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch
@@ -0,0 +1,100 @@
+From e07345343415dd2496edc721daa61a3b42703131 Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail@eworm.de>
+Date: Tue, 19 Sep 2023 12:16:39 -0700
+Subject: [PATCH] [GTK] MiniBrowser should hide the toolbar when using
+ --full-screen #17909 https://bugs.webkit.org/show_bug.cgi?id=261732
+
+Reviewed by Michael Catanzaro.
+
+Entering fullscreen mode with F11 works as expected.
+Starting with command line switch `--full-screen` does make the window
+fullscreen, but does not hide the toolbar. Let's change that.
+
+Instead of just making the window fullscreen with `gtk_window_fullscreen()`
+this introduces a new function `browser_window_fullscreen()` that hides
+the toolbar as well.
+
+Also introduce new function `browserWindowUnfullscreen()`, use both
+in `toggleFullScreen()`, and drop extra inversion.
+
+* Tools/MiniBrowser/gtk/BrowserWindow.c
+* Tools/MiniBrowser/gtk/BrowserWindow.h
+* Tools/MiniBrowser/gtk/main.c
+
+Canonical link: https://commits.webkit.org/268141@main
+---
+ Tools/MiniBrowser/gtk/BrowserWindow.c | 27 ++++++++++++++++++---------
+ Tools/MiniBrowser/gtk/BrowserWindow.h |  1 +
+ Tools/MiniBrowser/gtk/main.c          |  2 +-
+ 3 files changed, 20 insertions(+), 10 deletions(-)
+
+diff --git a/Tools/MiniBrowser/gtk/BrowserWindow.c b/Tools/MiniBrowser/gtk/BrowserWindow.c
+index 626ce2207e845..58eb5ae39e2e0 100644
+--- a/Tools/MiniBrowser/gtk/BrowserWindow.c
++++ b/Tools/MiniBrowser/gtk/BrowserWindow.c
+@@ -482,6 +482,20 @@ static GtkWidget *webViewCreate(WebKitWebView *webView, WebKitNavigationAction *
+     return GTK_WIDGET(newWebView);
+ }
+ 
++void browser_window_fullscreen(BrowserWindow *window)
++{
++    gtk_window_fullscreen(GTK_WINDOW(window));
++    gtk_widget_hide(window->toolbar);
++    window->fullScreenIsEnabled = TRUE;
++}
++
++static void browserWindowUnfullscreen(BrowserWindow *window)
++{
++    gtk_window_unfullscreen(GTK_WINDOW(window));
++    gtk_widget_show(window->toolbar);
++    window->fullScreenIsEnabled = FALSE;
++}
++
+ static gboolean webViewEnterFullScreen(WebKitWebView *webView, BrowserWindow *window)
+ {
+     gtk_widget_hide(window->toolbar);
+@@ -867,15 +881,10 @@ static void loadHomePage(GSimpleAction *action, GVariant *parameter, gpointer us
+ static void toggleFullScreen(GSimpleAction *action, GVariant *parameter, gpointer userData)
+ {
+     BrowserWindow *window = BROWSER_WINDOW(userData);
+-    if (!window->fullScreenIsEnabled) {
+-        gtk_window_fullscreen(GTK_WINDOW(window));
+-        gtk_widget_hide(window->toolbar);
+-        window->fullScreenIsEnabled = TRUE;
+-    } else {
+-        gtk_window_unfullscreen(GTK_WINDOW(window));
+-        gtk_widget_show(window->toolbar);
+-        window->fullScreenIsEnabled = FALSE;
+-    }
++    if (window->fullScreenIsEnabled)
++        browserWindowUnfullscreen(window);
++    else
++        browser_window_fullscreen(window);
+ }
+ 
+ static void webKitPrintOperationFailedCallback(WebKitPrintOperation *printOperation, GError *error)
+diff --git a/Tools/MiniBrowser/gtk/BrowserWindow.h b/Tools/MiniBrowser/gtk/BrowserWindow.h
+index c58ebc2beec7e..1fd07efb828b8 100644
+--- a/Tools/MiniBrowser/gtk/BrowserWindow.h
++++ b/Tools/MiniBrowser/gtk/BrowserWindow.h
+@@ -58,6 +58,7 @@ GtkWidget* browser_window_new(GtkWindow*, WebKitWebContext*);
+ #endif
+ WebKitWebContext* browser_window_get_web_context(BrowserWindow*);
+ void browser_window_append_view(BrowserWindow*, WebKitWebView*);
++void browser_window_fullscreen(BrowserWindow*);
+ void browser_window_load_uri(BrowserWindow*, const char *uri);
+ void browser_window_load_session(BrowserWindow *, const char *sessionFile);
+ void browser_window_set_background_color(BrowserWindow*, GdkRGBA*);
+diff --git a/Tools/MiniBrowser/gtk/main.c b/Tools/MiniBrowser/gtk/main.c
+index 8be643a541511..451e0333dd4e8 100644
+--- a/Tools/MiniBrowser/gtk/main.c
++++ b/Tools/MiniBrowser/gtk/main.c
+@@ -925,7 +925,7 @@ static void activate(GApplication *application, WebKitSettings *webkitSettings)
+     if (darkMode)
+         g_object_set(gtk_widget_get_settings(GTK_WIDGET(mainWindow)), "gtk-application-prefer-dark-theme", TRUE, NULL);
+     if (fullScreen)
+-        gtk_window_fullscreen(GTK_WINDOW(mainWindow));
++        browser_window_fullscreen(mainWindow);
+ 
+     if (backgroundColor)
+         browser_window_set_background_color(mainWindow, backgroundColor);
diff --git a/nonprism/webkit2gtk/PKGBUILD b/nonprism/webkit2gtk/PKGBUILD
index e646f0e..f2568d2 100644
--- a/nonprism/webkit2gtk/PKGBUILD
+++ b/nonprism/webkit2gtk/PKGBUILD
@@ -13,8 +13,12 @@
 #  - pinned to 'icu' sodep
 
 
-pkgname=webkit2gtk
-pkgver=2.36.3
+pkgbase=webkit2gtk
+pkgname=(
+  webkit2gtk
+  webkit2gtk-docs
+)
+pkgver=2.42.4
 pkgrel=1
 pkgrel+=.nonprism1
 pkgdesc="Web content engine for GTK"
@@ -23,29 +27,105 @@ url="https://webkitgtk.org"
 arch=(x86_64)
 arch+=(armv7h i686)
 license=(custom)
-depends=(cairo fontconfig freetype2 libgcrypt glib2 gtk3 harfbuzz harfbuzz-icu
-         icu libjpeg libsoup libxml2 zlib libpng sqlite atk libwebp at-spi2-core
-         libegl libgl libgles libwpe wpebackend-fdo libxslt libsecret libtasn1
-         enchant libx11 libxext libice libxt wayland libnotify hyphen openjpeg2
-         woff2 libsystemd bubblewrap libseccomp xdg-dbus-proxy gstreamer
-         gst-plugins-base-libs libmanette)
-makedepends=(cmake ninja gtk-doc python ruby gobject-introspection
-             wayland-protocols systemd gst-plugins-bad gperf)
-optdepends=('gst-plugins-good: media decoding'
-            'gst-plugins-bad: media decoding'
-            'gst-libav: nonfree media decoding')
+depends=(
+  at-spi2-core
+  atk
+  bubblewrap
+  cairo
+  enchant
+  fontconfig
+  freetype2
+  glib2
+  gst-plugins-bad-libs
+  gst-plugins-base-libs
+  gstreamer
+  gtk3
+  harfbuzz
+  harfbuzz-icu
+  hyphen
+  icu
+  libavif
+  libdrm
+  libegl
+  libepoxy
+  libgcrypt
+  libgl
+  libgles
+  libjpeg
+  libjxl
+  libmanette
+  libpng
+  libseccomp
+  libsecret
+  libsoup
+  libsystemd
+  libtasn1
+  libwebp
+  libwpe
+  libx11
+  libxcomposite
+  libxml2
+  libxslt
+  libxt
+  mesa
+  openjpeg2
+  sqlite
+  wayland
+  woff2
+  wpebackend-fdo
+  xdg-dbus-proxy
+  zlib
+)
+makedepends=(
+  clang
+  cmake
+  gi-docgen
+  gobject-introspection
+  gperf
+  gst-plugins-bad
+  lld
+  ninja
+  python
+  ruby
+  systemd
+  unifdef
+  wayland-protocols
+)
 options=(debug)
-source=($url/releases/webkitgtk-$pkgver.tar.xz{,.asc})
+source=(
+  $url/releases/webkitgtk-$pkgver.tar.xz{,.asc}
+  GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch
+  GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch
+)
 source_i686=(webkitgtk-2.36.3-no-sse2.arch32.patch)
-sha256sums=('732fcf8c4ec644b8ed28b46ebbd7c1ebab9d9e0afea9bdf5e5d12786afc478d1'
-            'SKIP')
+sha256sums=('52288b30bda22373442cecb86f9c9a569ad8d4769a1f97b352290ed92a67ed86'
+            'SKIP'
+            'a921d6be1303e9f23474971f381886fd291ec5bb1a7ff1e85acede8cfb88bef2'
+            '655f3b2c96355ac83c4fa1fc6048e3256bbfdbfb9727e1e18c5af12613536206')
 sha256sums_i686=('58a724b7f1092a9049186a3b8c61689c31558b6c2b587c827cec04219397adac')
-validpgpkeys=('D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3'  # Carlos Garcia Campos <cgarcia@igalia.com>
-              '5AA3BC334FD7E3369E7C77B291C559DBE4C9123B') # Adrián Pérez de Castro <aperez@igalia.com>
-
+b2sums=('3a8cd0818e0d989ab778cda63dd873d7e185ec20fbfe609b9da70041fe38ac30351046516600cb8eb86089e43136487d81c922690468daa70ed2a436561c2401'
+        'SKIP'
+        'd440d82c769f1b35caf5464dc850cdf1c896224205c90c17d8b0a44aee62e4b1383e11306936aaca067fde8836770d346d5122d7b05c91a5c7c1741c89c65e2f'
+        'daa782d4d40cc12a05c02b2494e879333f66f32820f1a1b89b7ab68f62fd53043b116ecb5ef476004095a7c7b924b12695b7e87e21dd547f66e72fa02a972f0d')
+validpgpkeys=(
+  'D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3'  # Carlos Garcia Campos <cgarcia@igalia.com>
+  '5AA3BC334FD7E3369E7C77B291C559DBE4C9123B'  # Adrián Pérez de Castro <aperez@igalia.com>
+)
 
 prepare() {
   cd webkitgtk-$pkgver
+
+  # Requested by eworm
+  # https://github.com/WebKit/WebKit/pull/17909
+  patch -Np1 -i ../GTK-MiniBrowser-should-hide-the-toolbar-when-using-full-screen.patch
+
+  # https://bugs.archlinux.org/task/79783
+  # https://github.com/WebKit/WebKit/pull/18614
+  patch -Np1 -i ../GTK-Disable-DMABuf-renderer-for-NVIDIA-proprietary-drivers.patch
+
+
+  ## arch-specific patching ##
+
   case "$CARCH" in
   i686)
     options+=(!debug)
@@ -58,45 +138,86 @@ prepare() {
 }
 
 build() {
+  local cmake_options=(
+    -DPORT=GTK
+    -DCMAKE_BUILD_TYPE=Release
+    -DCMAKE_INSTALL_PREFIX=/usr
+    -DCMAKE_INSTALL_LIBDIR=lib
+    -DCMAKE_INSTALL_LIBEXECDIR=lib
+    -DCMAKE_SKIP_RPATH=ON
+    -DUSE_AVIF=ON
+    -DUSE_SOUP2=ON
+    -DENABLE_DOCUMENTATION=ON
+    -DENABLE_MINIBROWSER=ON
+  )
+
+  # GCC with LTO fails to link libjavascriptcoregtk
+  #     /usr/bin/ld: /tmp/ccXxyWZV.ltrans0.ltrans.o: in function `ipint_table_size_validate':
+  #     <artificial>:(.text+0x49f0f): undefined reference to `ipint_extern_table_size'
+  #     /usr/bin/ld: /tmp/ccXxyWZV.ltrans0.ltrans.o: in function `ipint_table_fill_validate':
+  #     <artificial>:(.text+0x4a019): undefined reference to `ipint_extern_table_fill'
+  #     collect2: error: ld returned 1 exit status
+  export CC=clang CXX=clang++
+  LDFLAGS+=" -fuse-ld=lld"
+
   # Produce minimal debug info: 4.3 GB of debug data makes the
   # build too slow and is too much to package for debuginfod
   CFLAGS+=' -g1'
   CXXFLAGS+=' -g1'
 
-  local parabola_options=( -DENABLE_GEOLOCATION=OFF )
-  case "$CARCH" in
+
+  ## parabola config ##
+
+  # clang-16: error: unknown argument: '-fvar-tracking-assignments'
+  CFLAGS="${CFLAGS/-fvar-tracking-assignments/}"
+  CXXFLAGS="${CXXFLAGS/-fvar-tracking-assignments/}"
+
+
+  ## arch-specific config ##
+
+  case "${CARCH}" in
   i686)
     # linker runs out of memory on 32-bit
     LDFLAGS+=" -Wl,--no-keep-memory"
 
     # do not build JIT code on non-pentium4 (breaks in micro-optimizations)
-    parabola_options+=( -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON -DENABLE_SAMPLING_PROFILER=OFF )
+    cmake_options+=( -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON -DENABLE_SAMPLING_PROFILER=OFF )
     ;;
   esac
+  local parabola_options=( -DENABLE_GEOLOCATION=OFF )
+  cmake_options+=( ${parabola_options[@]} )
 
-  cmake -S webkitgtk-$pkgver -B build -G Ninja \
-    ${parabola_options[@]} \
-    -DPORT=GTK \
-    -DCMAKE_BUILD_TYPE=Release \
-    -DCMAKE_INSTALL_PREFIX=/usr \
-    -DCMAKE_INSTALL_LIBDIR=lib \
-    -DCMAKE_INSTALL_LIBEXECDIR=lib \
-    -DCMAKE_SKIP_RPATH=ON \
-    -DUSE_SOUP2=ON \
-    -DENABLE_GTKDOC=OFF \
-    -DENABLE_MINIBROWSER=ON
+
+  ## upstream ##
+
+  cmake -S webkitgtk-$pkgver -B build -G Ninja "${cmake_options[@]}"
   cmake --build build
 }
 
-package() {
-  depends+=(libwpe-1.0.so libWPEBackend-fdo-1.0.so)
-  depends+=(libicui18n.so libicuuc.so)
-  provides+=(libjavascriptcoregtk-4.0.so libwebkit2gtk-4.0.so)
+package_webkit2gtk() {
+  depends+=(
+    libWPEBackend-fdo-1.0.so
+    libwpe-1.0.so
+  )
+  depends+=( libicui18n.so libicuuc.so )
+  provides+=(
+    libjavascriptcoregtk-4.0.so
+    libwebkit2gtk-4.0.so
+  )
+  optdepends=(
+    # 'geoclue: Geolocation support' # anti-feature
+    'gst-libav: nonfree media decoding'
+    'gst-plugins-bad: media decoding'
+    'gst-plugins-good: media decoding'
+  )
 
   DESTDIR="$pkgdir" cmake --install build
 
   rm -r "$pkgdir/usr/bin"
 
+  mkdir -p doc/usr/share
+  mv {"$pkgdir",doc}/usr/share/gtk-doc
+
   cd webkitgtk-$pkgver
   find Source -name 'COPYING*' -or -name 'LICENSE*' -print0 | sort -z |
     while IFS= read -d $'\0' -r _f; do
@@ -106,3 +227,11 @@ package() {
     done |
     install -Dm644 /dev/stdin "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
 }
+
+package_webkit2gtk-docs() {
+  pkgdesc+=" (documentation)"
+  depends=()
+
+  mv doc/* "$pkgdir"
+}
+

From ae69779236192811b500c78e4f8b3a7454b53c55 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 20 2023 06:32:53 +0000
Subject: [PATCH 11/19] [webkit2gtk]: tweak for i686 (FTBS)


---

diff --git a/nonprism/webkit2gtk/PKGBUILD b/nonprism/webkit2gtk/PKGBUILD
index f2568d2..ba0a66c 100644
--- a/nonprism/webkit2gtk/PKGBUILD
+++ b/nonprism/webkit2gtk/PKGBUILD
@@ -12,6 +12,8 @@
 #  - remove geoclue2 support
 #  - pinned to 'icu' sodep
 
+# NOTE: i686 currently fails to build (FS32#310)
+
 
 pkgbase=webkit2gtk
 pkgname=(
@@ -182,6 +184,14 @@ build() {
 
     # do not build JIT code on non-pentium4 (breaks in micro-optimizations)
     cmake_options+=( -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON -DENABLE_SAMPLING_PROFILER=OFF )
+
+    # Could NOT find GIDocgen (missing: GIDocgen_VERSION) (found version "")
+    # ENABLE_INTROSPECTION is needed for gi-docgen.
+    cmake_options+=( -DENABLE_DOCUMENTATION=OFF )
+
+    # Package 'gstreamer-webrtc-1.0' has version '1.16.2', required version is '>= 1.18.4'
+    # GStreamerTranscoder >= 1.20 is needed for USE_GSTREAMER_TRANSCODER.
+    cmake_options+=( -DUSE_GSTREAMER_TRANSCODER=OFF )
     ;;
   esac
   local parabola_options=( -DENABLE_GEOLOCATION=OFF )

From 2dd98d71e474a04fec3c7840c13d283b6763db6a Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 20 2023 06:33:46 +0000
Subject: [PATCH 12/19] [webkit2gtk]: twaek for armv7h


---

diff --git a/nonprism/webkit2gtk/PKGBUILD b/nonprism/webkit2gtk/PKGBUILD
index ba0a66c..69a518b 100644
--- a/nonprism/webkit2gtk/PKGBUILD
+++ b/nonprism/webkit2gtk/PKGBUILD
@@ -6,11 +6,15 @@
 # Contributor: Luke R. <g4jc@openmailbox.org>
 # Contributor: Freemor <freemor@fremor.ca>
 # Contributor: bill-auger <bill-auger@programmer.net>
+# Maintainer (archarm): Kevin Mihelich <kevin@archlinuxarm.org>
+# Maintainer: Parabola Hackers <dev@lists.parabola.nu>
 
 
 # parabola changes and rationale:
 #  - remove geoclue2 support
 #  - pinned to 'icu' sodep
+# archarm changes:
+#  - build v7 with vfpv3, neon is broken
 
 # NOTE: i686 currently fails to build (FS32#310)
 
@@ -178,6 +182,11 @@ build() {
   ## arch-specific config ##
 
   case "${CARCH}" in
+  armv7h)
+    export -n CC CXX
+    LDFLAGS="${LDFLAGS/ -fuse-ld=lld/}"
+    [[ $CARCH == "armv7h" ]] && CFLAGS=`echo $CFLAGS | sed -e 's/neon/vfpv3/'` && CXXFLAGS="$CFLAGS"
+    ;;
   i686)
     # linker runs out of memory on 32-bit
     LDFLAGS+=" -Wl,--no-keep-memory"

From 97865a336f8f70df1c2980c6ee0556804719de13 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 20 2023 06:34:10 +0000
Subject: [PATCH 13/19] [empathy]: remove package


---

diff --git a/nonprism/empathy/PKGBUILD b/nonprism/empathy/PKGBUILD
deleted file mode 100644
index e3f1bf3..0000000
--- a/nonprism/empathy/PKGBUILD
+++ /dev/null
@@ -1,66 +0,0 @@
-# $Id$
-# Contributor: Ionut Biru <ibiru@archlinux.org>
-# Contributor: Andreas Grapentin <andreas@grapentin.org>
-# Contributor: André Silva <emulatorman@hyperbola.info>
-# Maintainer: Parabola Hackers <dev@lists.parabola.nu>
-
-# parabola changes and rationale
-#  - removed geoclue2 support
-
-pkgname=empathy
-pkgver=3.25.90+34+g78f4d4fda
-pkgrel=3.nonprism1
-pkgdesc="A GNOME instant messaging client using the Telepathy framework, without geoclue2 support"
-url="https://wiki.gnome.org/Apps/Empathy"
-arch=(x86_64 i686 armv7h)
-license=(GPL2)
-depends=(clutter-gst clutter-gtk folks gcr iso-codes libcanberra libpulse webkit2gtk
-         telepathy-farstream telepathy-glib telepathy-logger telepathy-mission-control
-         geocode-glib cheese libchamplain libgudev)
-makedepends=(intltool itstool docbook-xsl python gnome-common git)
-optdepends=('telepathy-gabble: XMPP/Jabber support'
-            'telepathy-idle: IRC support'
-            'telepathy-salut: Link-local XMPP support'
-            'telepathy-haze: libpurple support')
-_commit=78f4d4fdadd7da67e063c2905649f6a6015ef8f9  # master
-source=("git+https://git.gnome.org/browse/empathy#commit=$_commit"
-        "git+https://git.gnome.org/browse/telepathy-account-widgets"
-        enchant-2.patch)
-sha256sums=('SKIP'
-            'SKIP'
-            'f177f0dfc242018dd52e312637f513fd08f64aa991b45930cc3ea9a2576f795e')
-
-pkgver() {
-  cd $pkgname
-  git describe --tags | sed 's/^EMPATHY_//;s/_/./g;s/-/+/g'
-}
-
-prepare() {
-  cd $pkgname
-
-  git submodule init
-  git config --local submodule.telepathy-account-widgets.url "$srcdir/telepathy-account-widgets"
-  git submodule update
-
-  patch -Np1 -i ../enchant-2.patch
-
-  NOCONFIGURE=1 ./autogen.sh
-}
-
-build() {
-  cd $pkgname
-  export LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8
-  ./configure --prefix=/usr \
-      --sysconfdir=/etc  \
-      --libexecdir=/usr/lib/empathy \
-      --disable-static \
-      --disable-Werror \
-      --enable-location=no
-  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
-  make
-}
-
-package() {
-  cd $pkgname
-  make DESTDIR="$pkgdir" install
-}
diff --git a/nonprism/empathy/enchant-2.patch b/nonprism/empathy/enchant-2.patch
deleted file mode 100644
index f80a522..0000000
--- a/nonprism/empathy/enchant-2.patch
+++ /dev/null
@@ -1,39 +0,0 @@
- configure.ac                   | 4 ++--
- libempathy-gtk/empathy-spell.c | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git c/configure.ac i/configure.ac
-index 7aeb6b31c..31e5b847b 100644
---- c/configure.ac
-+++ i/configure.ac
-@@ -72,7 +72,7 @@ WEBKIT_REQUIRED=2.10.0
- GOA_REQUIRED=3.5.1
- 
- # Optional deps
--ENCHANT_REQUIRED=1.2.0
-+ENCHANT_REQUIRED=2.2.0
- GEOCLUE_REQUIRED=2.1.0
- GEOCODE_GLIB_REQUIRED=0.99.1
- ISO_CODES_REQUIRED=0.35
-@@ -307,7 +307,7 @@ AC_ARG_ENABLE(spell,
- if test "x$enable_spell" != "xno"; then
-    PKG_CHECK_MODULES(ENCHANT,
-    [
--      enchant >= $ENCHANT_REQUIRED,
-+      enchant-2 >= $ENCHANT_REQUIRED,
-       iso-codes >= $ISO_CODES_REQUIRED
-    ], have_enchant="yes", have_enchant="no")
- 
-diff --git c/libempathy-gtk/empathy-spell.c i/libempathy-gtk/empathy-spell.c
-index 27f27f902..bb0159fd8 100644
---- c/libempathy-gtk/empathy-spell.c
-+++ i/libempathy-gtk/empathy-spell.c
-@@ -424,7 +424,7 @@ empathy_spell_add_to_dictionary (const gchar *code,
- 	if (lang == NULL)
- 		return;
- 
--	enchant_dict_add_to_pwl (lang->speller, word, strlen (word));
-+	enchant_dict_add (lang->speller, word, strlen (word));
- }
- 
- #else /* not HAVE_ENCHANT */

From 23ac5315daad59357ebebe2f2768684240b726d2 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 20 2023 06:52:48 +0000
Subject: [PATCH 14/19] [gthumb]: upgrade to v3.12.4


---

diff --git a/nonprism/gthumb/PKGBUILD b/nonprism/gthumb/PKGBUILD
index 08439a4..e6f67ea 100644
--- a/nonprism/gthumb/PKGBUILD
+++ b/nonprism/gthumb/PKGBUILD
@@ -1,50 +1,82 @@
-# $Id$
-# Maintainer (arch): Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Maintainer (arch): Jan Alexander Steffens (heftig) heftig@archlinux.org>
 # Contributor: Jan de Groot <jgc@archlinux.org>
 # Contributor: Tobias Kieslich <tobias@justdreams.de>
 # Contributor: Andreas Grapentin <andreas@grapentin.org>
 # Contributor: André Silva <emulatorman@hyperbola.info>
 # Contributor: Márcio Silva <coadde@hyperbola.info>
+# Maintainer: Parabola Hackers <dev@lists.parabola.nu>
+
 
 # parabola changes and rationale:
-#  - removed support for possibly unsafe protocols
+# privacy:
+# - removed support for possibly unsafe protocols
+# technical:
+# - use upstream source-ball rather than VCS sources
+
 
 pkgname=gthumb
-pkgver=3.8.3
+pkgver=3.12.4
 pkgrel=1
 pkgrel+=.nonprism1
-pkgdesc="Image browser and viewer for the GNOME Desktop, without support for unsafe and dangerous for privacy protocols"
+pkgdesc="Image browser and viewer for the GNOME Desktop"
+pkgdesc+=", without support for unsafe and dangerous for privacy protocols"
 url="https://wiki.gnome.org/Apps/gthumb"
-arch=(x86_64 i686 armv7h)
+arch=(x86_64)
+arch+=(armv7h i686)
 license=(GPL)
-depends=(dconf librsvg clutter-gtk gst-plugins-base-libs gsettings-desktop-schemas libwebp
-         libsecret libsoup webkit2gtk json-glib gtk3-print-backends)
-makedepends=(libchamplain exiv2 brasero libraw liboauth docbook-xsl yelp-tools meson git)
-optdepends=('libraw: read RAW files'
-            'exiv2: metadata support'
-            'libchamplain: map viewer'
-            'brasero: burn discs'
-            'liboauth: web albums')
-_commit=ca8f528209ab78935c30e42fe53bdf1a24f3cb44  # tags/3.8.3^0
-source=("git+https://gitlab.gnome.org/GNOME/gthumb.git#commit=$_commit"
-        nonprism.patch)
-sha256sums=('SKIP'
-            'ec0e5fdf9b7d48b90821e9ce9f7fdacc60fd843183c27479854d33f457805796')
-
-pkgver() {
-  cd $pkgname
-  git describe --tags | sed 's/-/+/g'
-}
+depends=(
+  clutter-gtk
+  dconf
+  gsettings-desktop-schemas
+  gst-plugin-gtk
+  gst-plugins-base-libs
+  json-glib
+  libheif
+  libjxl
+  librsvg
+  libsecret
+  libsoup
+  libwebp
+  webkit2gtk
+)
+makedepends=(
+  brasero
+  docbook-xsl
+  exiv2
+  git
+  liboauth
+  libraw
+  meson
+  yelp-tools
+)
+optdepends=(
+  'brasero: burn discs'
+  'exiv2: metadata support'
+  'liboauth: web albums'
+  'libraw: read RAW files'
+)
+# we use source-ball
+source=(
+  https://gitlab.gnome.org/GNOME/gthumb/-/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz
+)
+source+=( nonprism.patch )
+b2sums=('be952a6ce111137c35501252459e884307e2e43962cf877b30c9fae7ab8af3c8e9341fd0a331201e4eeff829319362362f12079a108ef8f6b1b40adf5304d51c')
+b2sums+=('83f8e250b1483ff88ba1d6f12230fb7c3c23b51b9716855192263400c89136d33f513673763ef3e1a53effba3416f0513e96e0a747ccfcc0398280a6a6560270')
+
 
 prepare() {
+  ln -s ${pkgname}-${pkgver} $pkgname # minimize diff
+
   cd $pkgname
-  patch --verbose -Np1 -i ../nonprism.patch			# Set meson_options to build without webservices
-  rm ./data/icons/private/hicolor/16x16/actions/site-*.png   	# Get rid of the logos 
+
+  echo "applying nonprism.patch"
+  patch --verbose -Np1 -i ../nonprism.patch                # disable webservices build
+  rm ./data/icons/private/hicolor/16x16/actions/site-*.png # delete logos
 }
 
 build() {
-  arch-meson $pkgname build -D libchamplain=true
-  ninja -C build
+  arch-meson gthumb build
+  meson compile -C build
 }
 
 check() {
@@ -52,5 +84,5 @@ check() {
 }
 
 package() {
-  DESTDIR="$pkgdir" meson install -C build
+  meson install -C build --destdir "$pkgdir"
 }
diff --git a/nonprism/gthumb/nonprism.patch b/nonprism/gthumb/nonprism.patch
index d43e50c..fac8f26 100644
--- a/nonprism/gthumb/nonprism.patch
+++ b/nonprism/gthumb/nonprism.patch
@@ -1,11 +1,11 @@
---- a/meson_options.txt	2020-01-23 17:25:40.113885277 -0400
-+++ b/meson_options.txt	2020-01-23 17:28:25.303643676 -0400
-@@ -72,7 +72,7 @@ option('libsecret',
+--- a/meson_options.txt   2023-12-18 20:44:46.658558619 -0500
++++ b/meson_options.txt   2023-12-18 21:06:49.241898826 -0500
+@@ -90,7 +90,7 @@
  
- option('webservices', 
-   type : 'boolean', 
--  value : true, 
-+  value : false, 
+ option('webservices',
+   type : 'boolean',
+-  value : true,
++  value : false,
    description : 'Compile extensions that import/export images from web services'
  )
  

From 531d2f513fe5b1da4086d81cbdd906dd2b4c2e32 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 20 2023 06:53:10 +0000
Subject: [PATCH 15/19] housekeeping


---

diff --git a/nonsystemd/polkit/PKGBUILD b/nonsystemd/polkit/PKGBUILD
index 409438e..9533edf 100644
--- a/nonsystemd/polkit/PKGBUILD
+++ b/nonsystemd/polkit/PKGBUILD
@@ -30,6 +30,7 @@ makedepends=(
   gtk-doc
   meson
 )
+makedepends=( ${makedepends[*]/git/} )
 checkdepends=(python-dbusmock)
 checkdepends_i686=(dbus-python) # FIXME: arch32 FS#252
 provides=(libpolkit-{agent,gobject}-1.so)
@@ -46,7 +47,7 @@ b2sums=('38a1afcc6d5da0d4bc572c83ac682a2946f4ce48905430d1f5dd76fd22b58b0dd1573d5
 
 
 prepare() {
-  ln -s ${pkgname}-${pkgver} polkit # minimize diff
+  ln -s ${pkgname}-${pkgver} $pkgname # minimize diff
 
   cd polkit
   patch -Np1 -i ../0001-remove-sysd.patch

From a48e81803b587db5831005370551c53c5abd90da Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 20 2023 06:58:25 +0000
Subject: [PATCH 16/19] [version_constraint.sh]: `unset` the inner Log() function


---

diff --git a/libre/bibletime/PKGBUILD b/libre/bibletime/PKGBUILD
index 9123326..961272a 100644
--- a/libre/bibletime/PKGBUILD
+++ b/libre/bibletime/PKGBUILD
@@ -75,6 +75,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/libre/blender/PKGBUILD b/libre/blender/PKGBUILD
index 09e3b7f..38238d6 100644
--- a/libre/blender/PKGBUILD
+++ b/libre/blender/PKGBUILD
@@ -121,6 +121,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/libre/cups-filters/PKGBUILD b/libre/cups-filters/PKGBUILD
index 3ad2838..caec7c5 100644
--- a/libre/cups-filters/PKGBUILD
+++ b/libre/cups-filters/PKGBUILD
@@ -83,6 +83,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/libre/freecad/PKGBUILD b/libre/freecad/PKGBUILD
index b247104..13a6f7d 100644
--- a/libre/freecad/PKGBUILD
+++ b/libre/freecad/PKGBUILD
@@ -97,6 +97,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/libre/icedove-extension-enigmail/PKGBUILD b/libre/icedove-extension-enigmail/PKGBUILD
index f976588..c6a7730 100644
--- a/libre/icedove-extension-enigmail/PKGBUILD
+++ b/libre/icedove-extension-enigmail/PKGBUILD
@@ -91,6 +91,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/libre/jami-qt/PKGBUILD b/libre/jami-qt/PKGBUILD
index 0c983d0..0d00b57 100644
--- a/libre/jami-qt/PKGBUILD
+++ b/libre/jami-qt/PKGBUILD
@@ -76,6 +76,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/libre/libxfce4ui/PKGBUILD b/libre/libxfce4ui/PKGBUILD
index 5be606f..63a1ccd 100644
--- a/libre/libxfce4ui/PKGBUILD
+++ b/libre/libxfce4ui/PKGBUILD
@@ -75,6 +75,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/libre/pyqt5/PKGBUILD b/libre/pyqt5/PKGBUILD
index 9478fc2..f5a99e9 100644
--- a/libre/pyqt5/PKGBUILD
+++ b/libre/pyqt5/PKGBUILD
@@ -100,6 +100,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/libre/qt5-styleplugins/PKGBUILD b/libre/qt5-styleplugins/PKGBUILD
index 102edde..a3f5d57 100644
--- a/libre/qt5-styleplugins/PKGBUILD
+++ b/libre/qt5-styleplugins/PKGBUILD
@@ -75,6 +75,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/libre/qt5-webkit/PKGBUILD b/libre/qt5-webkit/PKGBUILD
index c0237ec..02b5c52 100644
--- a/libre/qt5-webkit/PKGBUILD
+++ b/libre/qt5-webkit/PKGBUILD
@@ -87,6 +87,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/libre/qutebrowser/PKGBUILD b/libre/qutebrowser/PKGBUILD
index 9c900e7..932a08b 100644
--- a/libre/qutebrowser/PKGBUILD
+++ b/libre/qutebrowser/PKGBUILD
@@ -95,6 +95,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/pcr-testing/calamares/PKGBUILD b/pcr-testing/calamares/PKGBUILD
index 962cd64..7b0ebce 100644
--- a/pcr-testing/calamares/PKGBUILD
+++ b/pcr-testing/calamares/PKGBUILD
@@ -63,6 +63,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/pcr/gmid/PKGBUILD b/pcr/gmid/PKGBUILD
index 6ea41b4..da9c37f 100644
--- a/pcr/gmid/PKGBUILD
+++ b/pcr/gmid/PKGBUILD
@@ -97,6 +97,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/pcr/gnustep-gui/PKGBUILD b/pcr/gnustep-gui/PKGBUILD
index 0ee33da..21a0566 100644
--- a/pcr/gnustep-gui/PKGBUILD
+++ b/pcr/gnustep-gui/PKGBUILD
@@ -89,6 +89,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/pcr/lightspark/PKGBUILD b/pcr/lightspark/PKGBUILD
index 3ad53ad..4a91f68 100644
--- a/pcr/lightspark/PKGBUILD
+++ b/pcr/lightspark/PKGBUILD
@@ -74,6 +74,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/pcr/puzzlemoppet-git/PKGBUILD b/pcr/puzzlemoppet-git/PKGBUILD
index 5b14bab..7b6de38 100644
--- a/pcr/puzzlemoppet-git/PKGBUILD
+++ b/pcr/puzzlemoppet-git/PKGBUILD
@@ -62,6 +62,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/pcr/pypolicyd-spf/PKGBUILD b/pcr/pypolicyd-spf/PKGBUILD
index d2236a0..6e37f71 100644
--- a/pcr/pypolicyd-spf/PKGBUILD
+++ b/pcr/pypolicyd-spf/PKGBUILD
@@ -69,6 +69,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/pcr/python-py3dns/PKGBUILD b/pcr/python-py3dns/PKGBUILD
index 4f1e33c..b6a5dae 100644
--- a/pcr/python-py3dns/PKGBUILD
+++ b/pcr/python-py3dns/PKGBUILD
@@ -64,6 +64,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 
diff --git a/pcr/python-pyspf/PKGBUILD b/pcr/python-pyspf/PKGBUILD
index bf5a8b6..76a864f 100644
--- a/pcr/python-pyspf/PKGBUILD
+++ b/pcr/python-pyspf/PKGBUILD
@@ -63,6 +63,8 @@ _version_constraint() # (dep_pkgname [precision])
        exit 1
   fi
 
+  unset -f Log
+
   echo -n "${constraint_string}"
 }
 

From e6e5725ad52fe243e9474cbea3aa6196f3c786f9 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 20 2023 06:58:41 +0000
Subject: [PATCH 17/19] [qt5-webkit]: rebuild against latest 'icu'


---

diff --git a/libre/qt5-webkit/PKGBUILD b/libre/qt5-webkit/PKGBUILD
index 02b5c52..4a7308e 100644
--- a/libre/qt5-webkit/PKGBUILD
+++ b/libre/qt5-webkit/PKGBUILD
@@ -1,6 +1,7 @@
-# Maintainer (aur): Felix Yan <felixonmars@archlinux.org>
-# Maintainer (aur): Antonio Rojas <arojas@archlinux.org>
-# Maintainer (aur): Zen Wen <zen.8841@gmail.com>
+# Maintainer (aur): Fabio 'Lolix' Loli <fabio.loli@disroot.org>
+# Contributor: Zen Wen <zen.8841@gmail.com>
+# Contributor: Felix Yan <felixonmars@archlinux.org>
+# Contributor: Antonio Rojas <arojas@archlinux.org>
 # Contributor: Andrea Scarpino <andrea@archlinux.org>
 # Maintainer: Parabola Hackers <dev@lists.parabola.nu>
 
@@ -16,7 +17,7 @@
 pkgname=qt5-webkit
 _pkgver=5.212.0-alpha4
 pkgver=${_pkgver/-/}
-pkgrel=20
+pkgrel=21
 pkgrel+=.parabola1
 arch=(x86_64)
 arch+=(armv7h i686)
@@ -119,13 +120,15 @@ build() {
   #   > cc1plus: out of memory allocating 1420112 bytes after a total of 41308160 bytes
   [[ "${CARCH}" != armv7h ]] || export CC=clang CXX=clang++
 
-  cmake -B build -S qtwebkit-$_pkgver \
+  cmake -B build -S qtwebkit-$_pkgver -Wno-dev \
     -DCMAKE_INSTALL_PREFIX=/usr \
     -DCMAKE_CXX_FLAGS="${CXXFLAGS} -DNDEBUG" \
     -DPORT=Qt \
-    -DENABLE_TOOLS=OFF \
-    -Wno-dev
+    -DENABLE_XSLT=OFF \
+    -DENABLE_TOOLS=OFF
   cmake --build build
+
+# disabling XSLT to build https://github.com/qtwebkit/qtwebkit/issues/1097
 }
 
 package() {

From 6d1ec26c327eefee6a444a3c55c815a20e699d4b Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Dec 20 2023 06:58:55 +0000
Subject: [PATCH 18/19] [texlive-bin]: upgrade to v2023.66984


---

diff --git a/libre/texlive-bin/PKGBUILD b/libre/texlive-bin/PKGBUILD
index 4601966..7f321e4 100644
--- a/libre/texlive-bin/PKGBUILD
+++ b/libre/texlive-bin/PKGBUILD
@@ -1,4 +1,5 @@
-# Maintainer (arch): Rémy Oudompheng <remy@archlinux.org>
+# Maintainer (arch): Antonio Rojas <arojas@archlinux.org>
+# Contributor: Rémy Oudompheng <remy@archlinux.org>
 # Contributor: francois <francois.archlinux.org>
 # Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
 # Contributor: André Silva <emulatorman@hyperbola.info>
@@ -6,435 +7,170 @@
 # Contributor: Isaac David <isacdaavid(at)isacdaavid!info>
 # Contributor: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
 # Contrbutor: bill-auger <bill-auger@programmer.net>
+# Maintainer (archarm): Kevin Mihelich <kevin@archlinuxarm.org>
 
 
 # parabola changes and rationale:
-#  - rebrand for parabola
+# technical:
+#  - re-brand for parabola (due to changes in texlive-{core,fontsextra,latexextra})
 #  - pin to strongly-coupled dependency versions
 #  - disable texindy/xindy on armv7h
-
-
-pkgname=('texlive-bin' 'libsynctex')
-pkgver=2023.66539
-pkgrel=1
-pkgrel+=.parabola3
-license=('GPL')
-arch=('x86_64')
-arch+=('i686' 'armv7h')
-makedepends=('git' 'cairo' 'pixman' 'graphite' 't1lib' 'gd'
-         'libsigsegv' 'zziplib' 'libpng' 'libjpeg' 'freetype2'
-         'icu' 'harfbuzz' 'harfbuzz-icu' 'gmp' 'mpfr' 'potrace' 'libpaper'
-         'perl' 'clisp' 'ffcall' 'libxcrypt')
+#  - build from upstream sourve-ball, rather than VCS
+# archarm changes:
+#  -fPIC for v6 and v7
+#  --disable-xindy, remove xindy stuff, segfaults with clisp
+#  --disable-cxx-runtime-hack
+#  drop clisp and ffcall makedepends
+
+
+pkgname=(texlive-bin libsynctex)
+_rev=66984
+pkgver=2023.$_rev
+pkgrel=17
+pkgrel+=.parabola1
+license=(GPL)
+arch=(x86_64)
+arch+=(armv7h i686)
+makedepends=(git cairo pixman graphite t1lib gd libsigsegv zziplib libpng libjpeg freetype2
+             icu harfbuzz-icu mpfr potrace libpaper perl clisp ffcall libxcrypt subversion
+             glibc zlib bash libxaw fontconfig icu readline libxmu libxpm libunistring libxt
+             libx11 ncurses gcc-libs harfbuzz)
+makedepends=( ${makedepends[*]/git/} )
 [[ "${CARCH}" == 'armv7h' ]] && makedepends=( $(sed -E 's/clisp|ffcall//g' <<<${makedepends[@]}) )
 url='https://tug.org/texlive/'
-_commit=0d0bb3a2401e8825b4987eee51e8ef469eb8c3fc # tags/texlive-2023.0
-source=("git+https://github.com/Tex-Live/texlive-source.git#commit=${_commit}"
-        "ptex-debug-print.patch")
+# we use source-ball
+source=(texlive-bin-${_rev}.tar.gz::https://github.com/TeX-Live/texlive-source/archive/refs/tags/build-svn${_rev}.tar.gz
+        ptex-debug-print.patch
+        context-luatex-1.17.patch)
 sha256sums=('SKIP'
-            'aa838f09003c62c2efb5770a8de66f99b409df049fbd65098d80fd1957d06c50')
+            'aa838f09003c62c2efb5770a8de66f99b409df049fbd65098d80fd1957d06c50'
+            'a56838d19c3bd820781693b5a2e058e1a22378b37ea199bac426d97fcc420920')
 
 prepare() {
-    cd "$srcdir/texlive-source"
-
-    # bibtex-x needs kpathsea flags
-    sed -i '/AC_SEARCH_LIBS/a KPSE_KPATHSEA_FLAGS' texk/bibtex-x/configure.ac
-    (cd texk/bibtex-x && autoreconf)
-    # t4ht expects to be un /usr/share/texmf/bin/t4ht (FS#27251)
-    sed -i s/SELFAUTOPARENT/TEXMFROOT/ texk/tex4htk/t4ht.c
-    # remove spurious ptex "guessed encoding" print
-    patch -Np1 -i "${srcdir}/ptex-debug-print.patch"
+  ln -s texlive-source-build-svn${_rev} texlive-source # minimize diff
+  cd texlive-source
+
+  # bibtex-x needs kpathsea flags
+  sed -i '/AC_SEARCH_LIBS/a KPSE_KPATHSEA_FLAGS' texk/bibtex-x/configure.ac
+  (cd texk/bibtex-x && autoreconf)
+  # t4ht expects to be un /usr/share/texmf/bin/t4ht (FS#27251)
+  sed -i s/SELFAUTOPARENT/TEXMFROOT/ texk/tex4htk/t4ht.c
+  # remove spurious ptex "guessed encoding" print
+  patch -p1 -i ../ptex-debug-print.patch
+  # update context to work with luatex 1.17
+  patch -p1 -i ../context-luatex-1.17.patch
 }
 
 build() {
-   cd "$srcdir/texlive-source"
-
-   #############################################################
-   ### configure
-   mkdir -p Work
-   cd Work
-   echo "--> Initial configuration..."
-   # we use temporary prefix to avoid messing the existing
-   # $pkgdir/usr/share/texmf tree
-   #
-   # Preset float endianness to avoid a crash in cairo configure
-   # with recent toolchains. We are not building cairo anyway.
-   ax_cv_c_float_words_bigendian=no \
-     ../configure --prefix=/usr -C \
-     --sysconfdir=/etc \
-     --datarootdir=/usr/share \
-     --datadir=/usr/share \
-     --mandir=/usr/share/man \
-     --disable-native-texlive-build \
-     --with-banner-add="/Parabola GNU/Linux-libre" \
-     --disable-multiplatform \
-     --disable-dialog \
-     --disable-psutils \
-     --disable-t1utils \
-     --disable-bibtexu \
-     --disable-dvisvgm \
-     --disable-xz \
-     --enable-shared \
-     --disable-static \
-     --with-system-zlib \
-     --with-system-zziplib \
-     --with-system-pnglib \
-     --with-system-ncurses \
-     --with-system-t1lib \
-     --with-system-gd \
-     --with-system-freetype2 \
-     --with-system-pixman \
-     --with-system-cairo \
-     --with-system-harfbuzz \
-     --with-system-graphite \
-     --with-system-icu \
-     --with-system-gmp \
-     --with-system-mpfr \
-     --with-system-potrace \
-     --with-system-libpaper \
-     --with-freetype2-libdir=/usr/lib \
-     --with-freetype2-include=/usr/include/freetype2 \
-     --with-xdvi-x-toolkit=xaw \
-     --disable-dump-share \
-     --disable-aleph \
-     --enable-luatex \
-     --with-clisp-runtime=default \
-     $(case "$CARCH" in
-         armv7h     ) echo '--disable-xindy --disable-cxx-runtime-hack'                ;;
-         i686|x86_64) echo '--enable-xindy --disable-xindy-rules --disable-xindy-docs' ;;
-       esac)
-   #############################################################
-   ### make
-   echo "-------------------------------------------------------"
-   echo "--> Building the whole beast ..."
-   echo "-------------------------------------------------------"
-   make
+  cd texlive-source
+
+  mkdir -p build
+  cd build
+  ax_cv_c_float_words_bigendian=no \
+  ../configure --prefix=/usr -C \
+    --sysconfdir=/etc \
+    --datarootdir=/usr/share \
+    --datadir=/usr/share \
+    --mandir=/usr/share/man \
+    $([[ "${CARCH}" != armv7h ]] || printf -- '--disable-cxx-runtime-hack') \
+    --disable-native-texlive-build \
+    --with-banner-add="/Parabola GNU/Linux-libre" \
+    --disable-multiplatform \
+    --disable-dialog \
+    --disable-psutils \
+    --disable-t1utils \
+    --disable-bibtexu \
+    --disable-dvisvgm \
+    --disable-xz \
+    --enable-shared \
+    --disable-static \
+    --with-system-zlib \
+    --with-system-zziplib \
+    --with-system-pnglib \
+    --with-system-ncurses \
+    --with-system-t1lib \
+    --with-system-gd \
+    --with-system-freetype2 \
+    --with-system-pixman \
+    --with-system-cairo \
+    --with-system-harfbuzz \
+    --with-system-graphite \
+    --with-system-icu \
+    --with-system-gmp \
+    --with-system-mpfr \
+    --with-system-potrace \
+    --with-system-libpaper \
+    --with-freetype2-libdir=/usr/lib \
+    --with-freetype2-include=/usr/include/freetype2 \
+    --with-xdvi-x-toolkit=xaw \
+    --disable-dump-share \
+    --with-clisp-runtime=default \
+    $([[ "${CARCH}" == armv7h ]] && echo -n --disable-xindy || echo -n --enable-xindy) \
+    --disable-xindy-rules \
+    --disable-xindy-docs
+  # prevent excessive overlinking due to libtool
+  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+  make
 }
 
 package_libsynctex() {
-    pkgdesc='Library for synchronization between TeX files and resulting file'
-    depends=('glibc' 'zlib')
+  pkgdesc='Library for synchronization between TeX files and resulting file'
+  depends=(glibc zlib)
 
-    cd "${srcdir}/texlive-source/Work"
-    make -C texk/web2c DESTDIR="${pkgdir}" \
+  cd texlive-source/build
+  make -C texk/web2c DESTDIR="$pkgdir" \
         install-data-am install-libLTLIBRARIES
 
-    rm -f "$pkgdir"/usr/share/man/man1/hi*.*
+  # remove docs included in texlive-doc
+  rm -r "$pkgdir"/usr/share/man
 }
 
 package_texlive-bin() {
-   pkgdesc="TeX Live binaries"
-   depends=('cairo' 'pixman' 'graphite' 't1lib' 'gd' 'poppler' 'ffcall'
-            'libsigsegv' 'zziplib' 'libpng' 'libjpeg' 'freetype2' 'libxcrypt'
-            'icu' 'harfbuzz' 'harfbuzz-icu' 'gmp' 'mpfr' 'potrace' 'libpaper'
-            'libsynctex')
-   provides=('lcdf-typetools' 'kpathsea' 'xindy')
-   optdepends=('ed: for texconfig'
-               'biber: for bibliography processing')
-
-   # pin to strongly-coupled dependency versions
-   depends+=('libicui18n.so' 'libicuuc.so')
-
-   cd "$srcdir/texlive-source"
-
-   #############################################################
-   ### install
-   # fixes for xindy
-   find utils/xindy -name Makefile -exec sed -i -e "s|^prefix =.\+$|prefix = $pkgdir/usr|" -e "s|^mandir =.\+$|mandir = \${prefix}/share/man|" -e "s|^datadir =.\+$|datadir = \${datarootdir}/texmf|" -e "s|^docdir =.\+$|docdir = \${datadir}/doc/xindy|" '{}' \;
-
-   echo "-------------------------------------------------------"
-   echo "--> Proceeding with make install ..."
-   echo "-------------------------------------------------------"
-   cd Work
-   make DESTDIR="${pkgdir}" texmf="$pkgdir"/usr/share/texmf install
-   rm -rf "${pkgdir}"/usr/{texmf,share/texmf-dist}
-
-   ## symlink engines by hand. texlinks has moved to texlive-core...
-   mkdir -p "${pkgdir}"/usr/bin
-   ln -s eptex "${pkgdir}"/usr/bin/platex
-   ln -s euptex "${pkgdir}"/usr/bin/uplatex
-   ln -s luatex "${pkgdir}"/usr/bin/dvilualatex
-   ln -s luatex "${pkgdir}"/usr/bin/dviluatex
-   ln -s luahbtex "${pkgdir}"/usr/bin/lualatex
-   ln -s pdftex "${pkgdir}"/usr/bin/amstex
-   ln -s pdftex "${pkgdir}"/usr/bin/cslatex
-   ln -s pdftex "${pkgdir}"/usr/bin/csplain
-   ln -s pdftex "${pkgdir}"/usr/bin/eplain
-   ln -s pdftex "${pkgdir}"/usr/bin/etex
-   ln -s pdftex "${pkgdir}"/usr/bin/jadetex
-   ln -s pdftex "${pkgdir}"/usr/bin/latex
-   ln -s tex "${pkgdir}"/usr/bin/lollipop
-   ln -s pdftex "${pkgdir}"/usr/bin/mex
-   ln -s pdftex "${pkgdir}"/usr/bin/mllatex
-   ln -s pdftex "${pkgdir}"/usr/bin/mltex
-   ln -s pdftex "${pkgdir}"/usr/bin/pdfetex
-   ln -s pdftex "${pkgdir}"/usr/bin/pdfcslatex
-   ln -s pdftex "${pkgdir}"/usr/bin/pdfcsplain
-   ln -s pdftex "${pkgdir}"/usr/bin/pdfjadetex
-   ln -s pdftex "${pkgdir}"/usr/bin/pdflatex
-   ln -s pdftex "${pkgdir}"/usr/bin/pdfmex
-   ln -s pdftex "${pkgdir}"/usr/bin/pdfxmltex
-   ln -s pdftex "${pkgdir}"/usr/bin/texsis
-   ln -s pdftex "${pkgdir}"/usr/bin/utf8mex
-   ln -s pdftex "${pkgdir}"/usr/bin/xmltex
-   ln -s xetex "${pkgdir}"/usr/bin/xelatex
-
-   #############################################################
-   # remove dangling symlinks
-   _bibtexextra_scripts="
-bbl2bib
-bib2gls
-bibcop
-bibdoiadd
-bibexport
-bibmradd
-biburl2doi
-bibzbladd
-citeproc-lua
-convertgls2bib
-listbib
-ltx2crossrefxml
-multibibliography
-urlbst
-"
-   _core_scripts="
-a2ping
-a5toa4
-adhocfilelist
-afm2afm
-albatross
-allcm
-allec
-allneeded
-arara
-arlatex
-autoinst
-bundledoc
-checkcites
-checklistings
-chklref
-chkweb
-cjk-gs-integrate
-cluttex
-cllualatex
-clxelatex
-ctanbib
-ctanify
-ctanupload
-ctan-o-mat
-de-macro
-depythontex
-deweb
-digestif
-dosepsbin
-dtxgen
-dvi2fax
-dviasm
-dviinfox
-dvired
-e2pall
-epstopdf
-findhyph
-fmtutil
-fmtutil-sys
-fmtutil-user
-fontinst
-fragmaster
-git-latexdiff
-ht
-htcontext
-htlatex
-htmex
-httex
-httexi
-htxelatex
-htxetex
-installfont-tl
-jfmutil
-ketcindy
-kpsepath
-kpsetool
-kpsewhere
-kpsexpand
-latex-git-log
-latex-papersize
-latex2man
-latex2nemeth
-latexdef
-latexdiff
-latexdiff-vc
-latexfileversion
-latexindent
-latexmk
-latexpand
-latexrevise
-listings-ext.sh
-llmk
-ltxfileinfo
-ltximg
-luafindfont
-luaotfload-tool
-lwarpmk
-make4ht
-match_parens
-mf2pt1
-mk4ht
-mkjobtexmf
-mkt1font
-mktexfmt
-mktexlsr
-mktexmf
-mktexpk
-mktextfm
-mptopdf
-optexcount
-ot2kpx
-pamphletangler
-pdfatfi
-pdfbook2
-pdfcrop
-pdfjam
-pdflatexpicscale
-pdftex-quiet
-pdfxup
-pfarrei
-pkfix
-pkfix-helper
-ps2eps
-ps2frag
-pslatex
-purifyeps
-pythontex
-repstopdf
-rpdfcrop
-rungs
-simpdftex
-spix
-srcredact
-sty2dtx
-tex4ebook
-texaccents
-texconfig
-texconfig-dialog
-texconfig-sys
-texcount
-texdef
-texdiff
-texdirflatten
-texdoc
-texdoctk
-texfot
-texhash
-texlinks
-texliveonfly
-texloganalyser
-texlogfilter
-texlogsieve
-texosquery
-texosquery-jre5
-texosquery-jre8
-texplate
-thumbpdf
-tlcockpit
-tlshell
-typeoutfileinfo
-updmap
-updmap-sys
-updmap-user
-vpl2ovp
-vpl2vpl
-xelatex-unsafe
-xetex-unsafe
-xhlatex
-xindex
-"
-if [[ "$CARCH" != "armv7h" ]]; then
-   _core_scripts+="
-texindy
-xindy
-"
-fi
-
-   _games_scripts="rubikrotation"
-   _humanities_scripts="diadia"
-   _langcyrillic_scripts="rubibtex rumakeindex"
-   _langextra_scripts="ebong"
-   _langgreek_scripts="mkgrkindex"
-   _langjapanese_scripts="convbkmk ptex2pdf
-kanji-fontmap-creator
-kanji-config-updmap
-kanji-config-updmap-sys
-kanji-config-updmap-user
-"
-   _langkorean_scripts="jamo-normalize komkindex ttf2kotexfont"
-   _latexextra_scripts="
-authorindex
-exceltex
-hyperxmp-add-bytecount
-l3build
-makedtx
-makeglossaries
-makeglossaries-lite
-pagelayoutapi
-pdfannotextractor
-perltex
-ps4pdf
-splitindex
-svn-multi
-textestvis
-vpe
-webquiz
-wordcount
-yplan"
-   _music_scripts="lily-glyph-commands lily-image-commands lily-rebuild-pdfs
-m-tx
-musixtex
-musixflx
-pmxchords"
-   _pictures_scripts="
-cachepic
-epspdf
-epspdftk
-fig4latex
-getmapdl
-mathspic
-mkpic
-pn2pdf
-tikztosvg"
-   _pstricks_scripts="pedigree pst2pdf"
-   _science_scripts="pygmentex ulqda"
-   for s in \
-        ${_bibtexextra_scripts} \
-        ${_core_scripts}        \
-        ${_games_scripts}       \
-        ${_htmlxml_scripts}     \
-        ${_humanities_scripts}   \
-        ${_langcyrillic_scripts} \
-        ${_langextra_scripts}    \
-        ${_langgreek_scripts}    \
-        ${_langjapanese_scripts} \
-        ${_langkorean_scripts} \
-        ${_latexextra_scripts} \
-        ${_music_scripts}      \
-        ${_pictures_scripts}   \
-        ${_pstricks_scripts}   \
-        ${_science_scripts}    \
-        tlmgr; do
-       ! readlink -e "$pkgdir"/usr/bin/$s && rm "$pkgdir"/usr/bin/$s
-       if [[ -f "$pkgdir/usr/share/man/man1/${s%.*}.1" ]]; then
-           rm -vf "$pkgdir/usr/share/man/man1/${s%.*}.1"
-       fi
-   done
-   ###################################################################
-
-   # Install old ConTeXt stubs
-   cd "$srcdir/texlive-source"
-   for stub in context contextjit luatools mtxrun mtxrunjit texexec texmfstart; do
-       install -m755 texk/texlive/linked_scripts/context/stubs/unix/"$stub" "$pkgdir/usr/bin/$stub"
-   done
-
-   # remove libsynctex
-   rm -f "$pkgdir"/usr/include/synctex/*
-   rm -f "$pkgdir"/usr/lib/libsynctex.*
-   rm -f "$pkgdir"/usr/lib/pkgconfig/synctex.pc
-   rm -f "$pkgdir"/usr/share/man/man*/synctex.*
+  pkgdesc='TeX Live binaries'
+  depends=(cairo pixman graphite t1lib gd poppler ffcall libsigsegv zziplib libpng libjpeg freetype2 libxcrypt
+           harfbuzz-icu mpfr potrace libpaper libsynctex glibc zlib bash libxaw fontconfig icu readline libxmu
+           libxpm libunistring libxt libx11 ncurses gcc-libs harfbuzz)
+  provides=(lcdf-typetools kpathsea xindy)
+  optdepends=('psutils: to manipulate the output of dvips')
+
+  case "$CARCH" in
+  armv7h)
+    depends=(  ${depends[*]/ffcall/} )
+    provides=( ${provides[*]/xindy/} )
+  esac
+
+  # pin to strongly-coupled dependency versions
+  depends+=('libicui18n.so' 'libicuuc.so')
+
+  cd texlive-source
+  # fixes for xindy
+  find utils/xindy -name Makefile -exec sed -i -e "s|^prefix =.\+$|prefix = $pkgdir/usr|" -e "s|^mandir =.\+$|mandir = \${prefix}/share/man|" -e "s|^datadir =.\+$|datadir = \${datarootdir}/texmf|" -e "s|^docdir =.\+$|docdir = \${datadir}/doc/xindy|" '{}' \;
+
+  cd build
+  make DESTDIR="$pkgdir" texmf="$pkgdir"/usr/share/texmf install
+  LD_PRELOAD="$pkgdir"/usr/lib/libkpathsea.so.6 \
+  make DESTDIR="$pkgdir" texlinks
+
+  # install old ConTeXt stubs
+  cd "$srcdir"/texlive-source
+  for _stub in `ls texk/texlive/linked_scripts/context/stubs/unix`; do
+    install -m755 texk/texlive/linked_scripts/context/stubs/unix/$_stub "$pkgdir"/usr/bin/$_stub
+  done
+
+  # remove stuff included in texlive-texmf
+  rm -r "$pkgdir"/usr/share/texmf-dist
+
+  # remove docs included in texlive-doc
+  rm -r "$pkgdir"/usr/share/{info,man}
+
+  # remove links to scripts
+  for _link in $(ls "$pkgdir"/usr/bin); do
+    [[ $(readlink -m "$pkgdir"/usr/bin/$_link) == */scripts/* ]] && _rmlinks+="$pkgdir/usr/bin/$_link "
+  done
+  rm $_rmlinks
+
+  # remove libsynctex
+  rm "$pkgdir"/usr/include/synctex/*
+  rm "$pkgdir"/usr/lib/libsynctex.*
+  rm "$pkgdir"/usr/lib/pkgconfig/synctex.pc
 }

From c51eaaf9f48785f0070a3b83858ddcbdae3c50f5 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Dec 20 2023 20:40:30 +0000
Subject: [PATCH 19/19] libre/iceweasel: 121.0.parabola1


Usual updates according to upstream changes. search-config-v2.json needs
to be patched later, it seems to be unused currently. So just skip it in
patch-json-files.py for now.

---

diff --git a/libre/iceweasel/9002-FSDG-preference-defaults.patch b/libre/iceweasel/9002-FSDG-preference-defaults.patch
index b13653a..770b1f8 100644
--- a/libre/iceweasel/9002-FSDG-preference-defaults.patch
+++ b/libre/iceweasel/9002-FSDG-preference-defaults.patch
@@ -18,7 +18,6 @@ possible while keeping the SW stack 100% free, release builds don't have
 any valid geolocation provider, so let's disable geolocation API by
 default for now.
 ---
- modules/libpref/init/StaticPrefList.yaml | 2 +-
  modules/libpref/init/all.js              | 2 +-
  2 files changed, 2 insertions(+), 2 deletions(-)
 
@@ -36,18 +35,18 @@ index 5632486c69..b977858e04 100644
  
  # Time, in milliseconds, to wait for the location provider to spin up.
 diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
-index a366fdaeb8..c9d67004a2 100644
+index af04cba691..514f750a23 100644
 --- a/modules/libpref/init/all.js
 +++ b/modules/libpref/init/all.js
-@@ -3125,7 +3125,7 @@ pref("network.psl.onUpdate_notify", false);
+@@ -3094,7 +3094,7 @@ pref("network.psl.onUpdate_notify", false);
+ 
  // All the Geolocation preferences are here.
  //
- #ifndef EARLY_BETA_OR_EARLIER
--  pref("geo.provider.network.url", "https://www.googleapis.com/geolocation/v1/geolocate?key=%GOOGLE_LOCATION_SERVICE_API_KEY%");
-+  pref("geo.provider.network.url", "");
- #else
-   // Use MLS on Nightly and early Beta.
-   pref("geo.provider.network.url", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
+-pref("geo.provider.network.url", "https://www.googleapis.com/geolocation/v1/geolocate?key=%GOOGLE_LOCATION_SERVICE_API_KEY%");
++pref("geo.provider.network.url", "");
+ 
+ // Timeout to wait before sending the location request.
+ pref("geo.provider.network.timeToWaitBeforeSending", 5000);
 -- 
 2.41.0
 
@@ -183,25 +182,25 @@ index c1983abc2b..35c24e5d43 100644
  // Don't let XPIProvider install distribution add-ons; we do our own thing on mobile
  pref("extensions.installDistroAddons", false);
 diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
-index c9d67004a2..e14f539172 100644
+index 514f750a23..abbf229223 100644
 --- a/modules/libpref/init/all.js
 +++ b/modules/libpref/init/all.js
-@@ -1851,11 +1851,11 @@ pref("services.settings.poll_interval", 86400); // 24H
- // other channels always report events.
- pref("services.common.uptake.sampleRate", 1);   // 1%
- 
--pref("extensions.abuseReport.enabled", true);
-+pref("extensions.abuseReport.enabled", false);
- // Allow AMO to handoff reports to the Firefox integrated dialog.
- pref("extensions.abuseReport.amWebAPI.enabled", true);
+@@ -1851,11 +1851,11 @@ pref("services.common.uptake.sampleRate", 1);   // 1%
+ pref("extensions.abuseReport.enabled", false);
+ // Whether abuse report originated from AMO should use the Firefox integrated dialog.
+ pref("extensions.abuseReport.amWebAPI.enabled", false);
 -pref("extensions.abuseReport.url", "https://services.addons.mozilla.org/api/v4/abuse/report/addon/");
 -pref("extensions.abuseReport.amoDetailsURL", "https://services.addons.mozilla.org/api/v4/addons/addon/");
 +pref("extensions.abuseReport.url", "");
 +pref("extensions.abuseReport.amoDetailsURL", "");
+ // Whether Firefox integrated abuse reporting feature should be opening the new abuse report form hosted on AMO.
+ pref("extensions.abuseReport.amoFormEnabled", false);
+-pref("extensions.abuseReport.amoFormURL", "https://addons.mozilla.org/%LOCALE%/%APP%/feedback/addon/%addonID%/");
++pref("extensions.abuseReport.amoFormURL", "");
  
  // Blocklist preferences
  pref("extensions.blocklist.enabled", true);
-@@ -3193,7 +3193,7 @@ pref("extensions.webextensions.ExtensionStorageIDB.enabled", true);
+@@ -3158,7 +3158,7 @@ pref("extensions.webextensions.ExtensionStorageIDB.enabled", true);
  // Whether to allow the inline options browser in HTML about:addons page.
  pref("extensions.htmlaboutaddons.inline-options.enabled", true);
  // Show recommendations on the extension and theme list views.
@@ -210,6 +209,23 @@ index c9d67004a2..e14f539172 100644
  
  // The URL for the privacy policy related to recommended add-ons.
  pref("extensions.recommendations.privacyPolicyUrl", "");
+diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
+index 1f1b1cbd3e..7ea9d82cdf 100644
+--- a/browser/app/profile/firefox.js
++++ b/browser/app/profile/firefox.js
+@@ -22,9 +22,9 @@
+ pref("browser.hiddenWindowChromeURL", "chrome://browser/content/hiddenWindowMac.xhtml");
+ 
+ // Set add-ons abuse report related prefs specific to Firefox Desktop.
+-pref("extensions.abuseReport.enabled", true);
+-pref("extensions.abuseReport.amWebAPI.enabled", true);
+-pref("extensions.abuseReport.amoFormEnabled", true);
++pref("extensions.abuseReport.enabled", false);
++pref("extensions.abuseReport.amWebAPI.enabled", false);
++pref("extensions.abuseReport.amoFormEnabled", false);
+ 
+ // Enables some extra Extension System Logging (can reduce performance)
+ pref("extensions.logging.enabled", false);
 -- 
 2.41.0
 
@@ -248,7 +264,7 @@ index 9c2562ff23..7577fbe008 100644
  
  // Disable add-ons that are not installed by the user in all scopes by default.
  // See the SCOPE constants in AddonManager.jsm for values to use here.
-@@ -1518,8 +1518,8 @@ pref("prompts.defaultModalType", 3);
+@@ -1603,8 +1603,8 @@ pref("prompts.defaultModalType", 3);
  
  pref("browser.topsites.useRemoteSetting", true);
  // Fetch sponsored Top Sites from Mozilla Tiles Service (Contile)
@@ -258,7 +274,7 @@ index 9c2562ff23..7577fbe008 100644
 +pref("browser.topsites.contile.endpoint", "");
  
  // Whether to enable the Share-of-Voice feature for Sponsored Topsites via Contile.
- #if defined(EARLY_BETA_OR_EARLIER)
+ pref("browser.topsites.contile.sov.enabled", true);
 -- 
 2.41.0
 
diff --git a/libre/iceweasel/PKGBUILD b/libre/iceweasel/PKGBUILD
index 3da81af..575bc74 100644
--- a/libre/iceweasel/PKGBUILD
+++ b/libre/iceweasel/PKGBUILD
@@ -70,7 +70,7 @@
 
 pkgname=iceweasel
 epoch=1
-pkgver=120.0.1
+pkgver=121.0
 pkgrel=1
 pkgrel+=.parabola1
 _brandingver=120.0
@@ -85,7 +85,7 @@ license=(
   MPL
 )
 depends=(
-  dbus-glib
+  dbus
   ffmpeg
   gtk3
   libpulse
@@ -181,17 +181,17 @@ validpgpkeys+=(
   '3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40' # bill-auger
 )
 
-sha256sums=('76e7bb2a144880158444d8e9014f4d080d219bd150c3db405b27e4c7e3959ae2'
+sha256sums=('edc7a5159d23ff2a23e22bf5abe22231658cee2902b93b5889ee73958aa06aa4'
             'SKIP'
             '9cdc2602661717712092d28bb494e5b48e518cb930898aca85eaf21f91f7ef58') # $pkgname.desktop
                                                                                 # identity-icons-brand.svg
 sha256sums+=('a5eed3c1f31a253f90b0284e0caf17bd35b3fa35197cfc403cb1bd987ecd56eb'  # *.branding.tar.xz
              'SKIP'
              '4ff07eff69343e50357c9bb571dfa6a702efb3a7915ce8ca8dcb42ee18446aac'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
-             '77ce3e4de9b4bb280a6766cea61b0fbd81f0f946aa115bfe7bf24eca370e1d17'  # 9002-FSDG-preference-defaults.patch
+             '3e3c5c0a9751e4728a7c7f009a1eb90565de4ebe1b938b74b6669b28168bf335'  # 9002-FSDG-preference-defaults.patch
              '07d6910ddd07f60b803957259e06e3babee6f072f48c6fe31b906a1ea24e3b62'  # 9003-FSDG-urihandlers.patch
              'f999ddb5a2cde87217bb5b0ebf20b4e0aabe88657a73545c9487cddde1deab22'  # 9004-FSDG-misc.patch
-             '00cb44a91b42942f17258ad165810866ff123777b667a5691ea0745ba72f4332'  # process-json-files.py
+             '5f3a646d90a075458b4cb27c19ddbd50ae7717f4e3371c9e2e4de1a8e718553e'  # process-json-files.py
              '86bd54db6026ff65bd24ac4f05d0679a645ff447e2f81b0ee44037c0c4285e06'  # vendor.js.in
              '3803336b109ab3663d227d6d16f712c33f5c55712028ee74e6e82f2ef74bf55f') # zstandard-0.22.0.diff
 sha256sums_i686=('62fa060e09b95e92fa81f4ac47c06b03d70c2bbc6cda061d85e965a82730e1c0'  # avoid-libxul-OOM-python-check.patch
@@ -199,17 +199,17 @@ sha256sums_i686=('62fa060e09b95e92fa81f4ac47c06b03d70c2bbc6cda061d85e965a82730e1
                  'ed3bb281697af7c4353a34067ffb4b18a971d40757bef2d6af3c8bf2d28d42d1'  # firefox-111.0.1-fdlibm.patch
                  '2fb39374fd3d80eea9e346032a2a4b2bc2e357dee7380855b24bcf19b1335d06'  # fix-i686-build-moz-1792159.patch
                  'c3ce181fbb0142055aa6dd17f3cda2ba6a1e54d7a689a8c6e9cce76aa40e6544') # fix-i686-xsimd-incomplete.patch
-b2sums=('66ac2f1071ad8276b61946465db6d71cbe0a43c154fb57db67670e8f88183893fe7c7c8284388242964fd2883e50f40f29c879ebec3a2d759d20c356f27ca151'
+b2sums=('80905caeb208ef5dce7b62e248c86598ca786eb7032e114ad5d10812623bfceb688832f646dfbe220ef2fcecacf11cefae2afb0f1cdc0f7952647b71c58c9602'
         'SKIP'
         'f86353bbba05d8994db34c6abb66094aa61d2c37c8599930dbe9d215413f0f718a1ce55a8f2d07a65074c3947e28fc80d44c925bd9be239a870f82d2a1803635') # $pkgname.desktop
                                                                                                                                             # identity-icons-brand.svg
 b2sums+=('d6ccdc46fce7cfc4bb35a6b09deee8cd96b9076c599c1f031b4d2c5a9c2722bdf98dd14eddde50422e9a1b88f24d425c8a5f1e861877a367c6ff5365e61258c0'  # *.branding.tar.xz
          'SKIP'
          '9834f69d69f9ce3cee872a7e75b6848d5539b94752aa50c74612177a740319a33b02734f1d2cdde31ee50efa7a3ed85cf85efb7e6687cfe6ab7be843b4089e7b'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
-         '702f3179595ce27660e9761811369158a8102c94e77ccb28d3a58026641b055e53f9ec45a1272346eada54021d02956360e1267728fbec201c50fee42c7d677f'  # 9002-FSDG-preference-defaults.patch
+         'c11cb32b7959a47e6d52b45a1611d27c04129eefcb015f8f9b005c9b29a2ee216e4a4702386b159867ed121705768f0a1721e01f5cab03a5444cdf09a9ef053b'  # 9002-FSDG-preference-defaults.patch
          'dbb0f9639cbe08bf423faf9e2966b5464a26ab5c6314eea18be0e89edd8ac465bfa04a219821852bdd0801dfed9092999bcca1a982a631035bae9a51408d8dde'  # 9003-FSDG-urihandlers.patch
          '7d7c9a67ef8035f85482b37d0b7b7743f005d5e7f48d1865f21745ebd10053ed8a6c15e1e176f42d5ef738e7bb074bdad8e912983ca4614a2aab50b95824a4a6'  # 9004-FSDG-misc.patch
-         '085c4631ec8cfdf5842068d882185c783e976b1fde74167bb71ef4d7db8c70c12844177b17e76f858ba3ce2a402848ac8fc19910dcbefd29887abfaf5faac5e4'  # process-json-files.py
+         '6224eb8db58c0d00353512d5bf420a16be90a86dc86c9a8d735026a7f77ca4a8a148fea38015fc9639254b9e02b17d01521ad6b233a890aa082fb8476992fa2f'  # process-json-files.py
          'f3f344196d03499f3f0392d5dfc5310e131d8c85772edd340faf1df3f04ebf2931eb1dda1b7fe6870d61d498618f4d8ae9f1dd446acbe83e0ce324e04b38f3f9'  # vendor.js.in
          '6176a2e4b7a651b50b1ca2d6c8b62b1fd7557cacff50f38cb87f126590d9a2ac8d9b249c1671be0551cc81ce9a028a22e9b29ac121e480dab61cd7c10b891d50') # zstandard-0.22.0.diff
 b2sums_i686=('684559d207d33e8b83c70d79ddb8b4d7532f2440895668245856553e02b6c786cf0de776981cdcce2438c7add2d692f4afbc85255949558852bdec9800c59882'  # avoid-libxul-OOM-python-check.patch
diff --git a/libre/iceweasel/process-json-files.py b/libre/iceweasel/process-json-files.py
index a2fd0e9..57e54d4 100644
--- a/libre/iceweasel/process-json-files.py
+++ b/libre/iceweasel/process-json-files.py
@@ -136,7 +136,7 @@ class Changes(RemoteSettings):
         changes = []
 
         for collection in unwrapped_jsons:
-            if collection.path != RemoteSettings.DUMPS_PATH_ABSOLUTE / 'main/example.json':
+            if collection.path not in (RemoteSettings.DUMPS_PATH_ABSOLUTE / 'main/example.json', RemoteSettings.DUMPS_PATH_ABSOLUTE / 'main/search-config-v2.json'):
                 latest_change = {}
                 latest_change[cls._LAST_MODIFIED_KEY_NAME] = cls.get_collection_timestamp(
                     collection)

