From 26bc509c7596ba76b6c36e430a539221548e7504 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 08 2023 05:01:47 +0000
Subject: [PATCH 1/32] [flashrom-stable]: change 'replaces' to 'conflicts'


---

diff --git a/libre/flashrom-stable/PKGBUILD b/libre/flashrom-stable/PKGBUILD
index 3a36379..67fd61e 100644
--- a/libre/flashrom-stable/PKGBUILD
+++ b/libre/flashrom-stable/PKGBUILD
@@ -20,7 +20,7 @@ sha256sums=('8f7a5cefcb59be9994464031af5fea8e073b58e51b2b312155fecdd8298f1141'
 depends=('pciutils' 'libusb' 'libftdi' 'libjaylink' 'libgpiod')
 optdepends=("dmidecode: for SMBIOS/DMI table decoder support")
 provides=("flashrom")
-replaces=("flashrom")
+conflicts=("flashrom")
 arch=('armv7h' 'i686' 'x86_64')
 
 build() {

From ad89932133c721369deecad96c1c189f352b40b6 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 08 2023 05:02:05 +0000
Subject: [PATCH 2/32] [icu-compat]: upgrade to v72.1


---

diff --git a/libre/icu-compat-71/PKGBUILD b/libre/icu-compat-71/PKGBUILD
new file mode 100644
index 0000000..2e93405
--- /dev/null
+++ b/libre/icu-compat-71/PKGBUILD
@@ -0,0 +1,161 @@
+# Maintainer (arch): 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>
+
+
+# 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.
+
+
+# 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-71
+pkgver=71.1
+pkgrel=1
+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}")
+conflicts=("icu<=${pkgver}" icu${pkgver%%.*})
+makedepends=('python')
+provides=(libicu{data,i18n,io,test,tu,uc}.so)
+source=(https://github.com/unicode-org/icu/releases/download/release-${pkgver//./-}/icu4c-${pkgver//./_}-src.tgz{,.asc})
+source_armv7h=(icudata-stdlibs.patch)
+sha512sums=('1fd2a20aef48369d1f06e2bb74584877b8ad0eb529320b976264ec2db87420bae242715795f372dbc513ea80047bc49077a064e78205cd5e8b33d746fd2a2912'
+            '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>"
+
+
+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() {
+  # one of the 'iotest' tests 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-71/icudata-stdlibs.patch b/libre/icu-compat-71/icudata-stdlibs.patch
new file mode 100644
index 0000000..5e92bde
--- /dev/null
+++ b/libre/icu-compat-71/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/PKGBUILD b/libre/icu-compat/PKGBUILD
index 0025a1c..95e8b2e 100644
--- a/libre/icu-compat/PKGBUILD
+++ b/libre/icu-compat/PKGBUILD
@@ -7,13 +7,20 @@
 
 
 # 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.
+
+
+# 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; and we must hustle to make the system sane
+# 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
@@ -28,28 +35,27 @@
 #
 # 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 was synchronized, users could not upgrade if they had packages that
-# were not rebuilt yet against the new 'icu' package. However this workaround
-# also prevents installing packages that depends on 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'.
 #
-# The correct fix would be to automatically build/re-build all packages instead
-# of relying on ArchLinux. Still, a new staging repo would be required to hold
+# 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, even
-# if there is work in this direction.
+# 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 distribution's 'icu'; but may be
-# this package, if the dependent package has yet to be rebuilt against the
-# upgraded '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 versioned 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 scales elegantly to Parabola's needs, without consuming
-# increasing resources, which is the best definition of "not awkward".
+# 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:
@@ -82,17 +88,9 @@
 # many dependents, _and_ supports this hack robustly.
 
 
-# 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.
-
-
 pkgname=icu-compat
-pkgver=71.1
-pkgrel=1
-pkgrel+=.parabola1
+pkgver=72.1
+pkgrel=2
 pkgdesc="International Components for Unicode library"
 pkgdesc+=" (compatibility libraries for the previous release)"
 arch=(x86_64)
@@ -101,24 +99,27 @@ url="https://icu.unicode.org"
 license=('custom:icu')
 depends=('gcc-libs' 'sh')
 depends+=("icu>${pkgver}")
-conflicts=("icu<=${pkgver}")
+conflicts=("icu<=${pkgver}" icu${pkgver%%.*})
 makedepends=('python')
 provides=(libicu{data,i18n,io,test,tu,uc}.so)
 source=(https://github.com/unicode-org/icu/releases/download/release-${pkgver//./-}/icu4c-${pkgver//./_}-src.tgz{,.asc})
 source_armv7h=(icudata-stdlibs.patch)
-# https://github.com/unicode-org/icu/releases/download/release-71-1/SHASUM512.txt
-sha512sums=('1fd2a20aef48369d1f06e2bb74584877b8ad0eb529320b976264ec2db87420bae242715795f372dbc513ea80047bc49077a064e78205cd5e8b33d746fd2a2912'
+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=('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
@@ -151,7 +152,8 @@ package() {
   make -j1 DESTDIR="${pkgdir}" install
 
   # Install license
-  install -Dm644 "${srcdir}"/icu/LICENSE "${pkgdir}"/usr/share/licenses/"${pkgname}"/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

From e951a800dd63bfcf81dec5c02b169810c5fd45da Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 08 2023 05:02:08 +0000
Subject: [PATCH 3/32] [your-freedom]: upgrade to v20230704


---

diff --git a/libre/your-freedom/PKGBUILD b/libre/your-freedom/PKGBUILD
index 9ade258..36b901f 100644
--- a/libre/your-freedom/PKGBUILD
+++ b/libre/your-freedom/PKGBUILD
@@ -12,8 +12,8 @@
 
 
 pkgname=your-freedom
-pkgver=20230520
-_gitver=18229b6990e3549939a8ebd01e9dd5a80a978066
+pkgver=20230704
+_gitver=87bd1d5d9b8c6242784f41b839797799e3f24d19
 pkgrel=1
 pkgdesc="This meta-package conflicts with every known non-free Arch package, to ensure that your system is libre"
 arch=(any)
@@ -24,7 +24,7 @@ makedepends=(librelib)
 install=${pkgname}.install
 source=(${pkgname}-blacklist-${_gitver}.txt::https://git.parabola.nu/blacklist.git/plain/blacklist.txt?id=${_gitver})
 
-sha256sums=('e4ef9ec15a05c14a0d917419d808b6abc6a0e70ee29873143805d2c676a9fd29')
+sha256sums=('12933c82e2529ec778f04f06f74d9b688284a66d521526c809cb5291c5286c78')
 
 
 package()

From ca05e4f319cd7da542471fe1e4935a6d21b82beb Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 08 2023 05:02:09 +0000
Subject: [PATCH 4/32] [parabola-keyring]: upgrade to v20230704


---

diff --git a/libre/parabola-keyring/PKGBUILD b/libre/parabola-keyring/PKGBUILD
index 086fb5c..0a86725 100644
--- a/libre/parabola-keyring/PKGBUILD
+++ b/libre/parabola-keyring/PKGBUILD
@@ -2,71 +2,89 @@
 # Maintainer: Parabola Hackers <dev@lists.parabola.nu>
 
 
-# NOTE: This PKGBUILD does not need to be edited manually.
-#       The package is normally built automatically by autobuilder.
-#       To generate a new keyring, simply push a new commit to hackers.git.
-#         eg: $ git commit --allow-empty --message=rebuild
-#             $ git push parabola master
-#       The autobuilder will modify this PKGBUILD,
-#       replacing $pkgver and $_gitver,
-#       build and publish the package,
-#       and commit the modified PKGBUILD to abslibre.
+# NOTE: This PKGBUILD does not need to be edited manuall.
+#       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.
+#       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:
+#         $ KEY_ID=<YOUR_40_CHAR_KEY_ID> # 'pgp_keyid' in your hackers.git YAML file
+#         $ cd /path/to/hackers.git/
+#         $ gpg --armor --no-emit-version --export $KEY_ID > keys/$KEY_ID.asc
+#         $ git commit -m 'update my key' keys/$KEY_ID.asc
+#         $ git push parabola master
 
 
 pkgname=parabola-keyring
-pkgver=20230331
-_gitver=d81cb92a9b111bf2207036578487b09ea965d562
+pkgver=20230704
+_gitrev=9f016cda0a6ac0a988584461850dc16a2b646465
 pkgrel=1
 pkgdesc="Parabola GNU/Linux-libre PGP keyring"
 arch=(any)
 url=https://wiki.parabola.nu/Parabola_Keyring
-license=(GPL)
+license=(CCPL:zero)
 
 makedepends=(git parabola-hackers)
-makedepends=( ${makedepends[*]/parabola-hackers/parabola-hackers>=20220802-1} ) # in libre-testing
-install=$pkgname.install
-source=(hackers-${_gitver}::git://git.parabola.nu/hackers.git#commit=${_gitver})
+install=${pkgname}.install
+source=(hackers-${_gitrev}-git::git://git.parabola.nu/hackers.git#commit=${_gitrev})
 
-sha512sums=('SKIP')
+sha512sums=(SKIP)
 
 
-prepare()
-{
-  # network check
-  # NOTE: this is the only parabola PKGBUILD, which requires internet access in the build chroot
-  #       the pacman-make-keyring procedure was originally in a mksource() function,
-  #       presumably for that reason; but that o/c removed the requirement only from users
-  # TODO: it would be great to re-implement this, so that it does not
-  #       there is a WIP on the parabola-hackers.git 'wip-import-keys-from-hackers-git' branch
-  local net_check_url=https://repo.parabola.nu/check_network_status.txt
-  local net_err_msg="ERROR: this PKGBUILD requires internet access in the build chroot"
-  curl ${net_check_url} &> /dev/null || ! echo "${net_err_msg}" || return 1
-}
-
 build()
 {
-  mv {,.}hackers-${_gitver}
-  mkdir .cachedir
-  export PARABOLA_HACKERS_YAMLDIR="${PWD}"/.hackers-${_gitver}/users
-
-  # NOTE: the current 'parabola-hackers' package does not yet recognize
-  #       the 'keyserver' env-var - the keyserver is still hard-coded;
-  #       and it is now invalid - 'parabola-hackers' must be rebuilt for this;
-  #       but that build currently has a problem - the autobuilder handles
-  #       this now, via an un-published kludge in the autobuild.sh script
-  # TODO: remove this note and the version constraint,
-  #       after 'parabola-hackers' has been rebuilt
-  # NOTE: the rebuilt 'parabola-hackers' is now in [libre-testing]
-  /usr/lib/parabola-hackers/pacman-make-keyring \
-    V=${pkgver}                                 \
-    keyserver=hkp://pgp.cyberbits.eu:11371      \
-    cachedir="${PWD}/.cachedir"
+  collect_keyids() # (sed_rx)
+  {
+    export PARABOLA_HACKERS_YAMLDIR="${srcdir}"/hackers-${_gitrev}-git/users
+    /usr/lib/parabola-hackers/pgp-list-keyids | sed --quiet --regexp-extended "$1"
+  }
+
+
+  # prep
+  rm -rf build/ ; mkdir -p build/ ; touch build/parabola{.gpg,-{revoked,trusted}} ;
+  cd "${srcdir}"/build
+
+  # collect key IDs
+  collect_keyids 's|^revoked/\S+ ||p'           >> parabola-revoked # lines like: <KEY_ID>
+  collect_keyids 's|^trusted/\S+ (\S+)|\1:4:|p' >> parabola-trusted # lines like: <KEY_ID>:4:
+
+  # populate keyring file
+  local keys_dir="${srcdir}"/hackers-${_gitrev}-git/keys
+  local key_begin='-----BEGIN PGP PUBLIC KEY BLOCK-----'
+  local key_end='-----END PGP PUBLIC KEY BLOCK-----'
+  local key_id
+  local key_file
+  for key_id in $(cut -d: -f1 parabola-trusted)
+  do  key_file="${keys_dir}"/${key_id}.asc
+
+      if   [[ -f "${key_file}" ]]
+      then if   (( $(grep --count -- "${key_begin}" "${key_file}") == 1 &&
+                   $(grep --count -- "${key_end}"   "${key_file}") == 1 ))
+           then echo "certifying trusted key_id: ${key_id}"
+                cat "${key_file}" >> parabola.gpg # concatenated ASCII keys
+           else echo "invalid key_file: ${key_id}.asc"
+           fi
+      else echo "key_file missing for trusted key_id: ${key_id}"
+      fi
+  done
+
+  # verify collected keys
+  local n_trusted_keys=$(  grep --count    ':'          parabola-trusted)
+  local n_certified_keys=$(grep --count -- "${key_end}" parabola.gpg    )
+  if   (( n_certified_keys ))
+  then echo "certified (${n_certified_keys}/${n_trusted_keys}) keys"
+  elif (( n_trusted_keys ))
+  then echo "ERROR: no keys were certifed" ; return 1 ;
+  else echo "ERROR: no trusted keys found" ; return 1 ;
+  fi
 }
 
 package()
 {
-  bsdtar xf ${pkgname}-${pkgver}.tar.gz
-  cd ${pkgname}-${pkgver}
+  cd "${srcdir}"/build
 
-  make PREFIX=/usr DESTDIR="${pkgdir}" install
+  install -Dm644 parabola-revoked "${pkgdir}"/usr/share/pacman/keyrings/parabola-revoked
+  install -Dm644 parabola-trusted "${pkgdir}"/usr/share/pacman/keyrings/parabola-trusted
+  install -Dm644 parabola.gpg     "${pkgdir}"/usr/share/pacman/keyrings/parabola.gpg
 }
diff --git a/libre/parabola-keyring/PKGBUILD.backup b/libre/parabola-keyring/PKGBUILD.backup
deleted file mode 100644
index 996f35d..0000000
--- a/libre/parabola-keyring/PKGBUILD.backup
+++ /dev/null
@@ -1,35 +0,0 @@
-# Maintainer: Parabola automatic package builder <autobuilder@parabola.nu>
-
-pkgname=parabola-keyring
-pkgver=20191127
-_gitver=89066299c593bd574bda1c97f2a5c9be3bb833cf
-pkgrel=1
-pkgdesc='Parabola GNU/Linux-libre PGP keyring'
-arch=('any')
-url='https://git.parabola.nu/hackers.git/'
-license=('GPL')
-install=$pkgname.install
-source=(https://repo.parabola.nu/other/$pkgname/$pkgname-$pkgver.tar.gz{,.sig})
-sha512sums=('7955ba2afc61f2918025816494859faf2ed27ebdc609d492aae23f3b51744b29a2e4056823f1d4d6ae04837793a3cf24c431f0025b5ca719aa6b7ee64d4638ad'
-            'SKIP')
-validpgpkeys=('D3EAD7F9D076EB9AF650149DA170D6A0B669E21A') # Parabola automatic package builder <dev@lists.parabolagnulinux.org>
-
-mkdepends=('parabola-hackers')
-mksource=("hackers-${_gitver}::git://git.parabola.nu/hackers.git#commit=${_gitver}")
-mkmd5sums=('SKIP')
-
-mksource() {
-	cd "$srcdir"
-	mv {,.}hackers-$_gitver
-	mkdir .cachedir
-	/usr/lib/parabola-hackers/pacman-make-keyring \
-		V="$pkgver" \
-		PARABOLA_HACKERS_YAMLDIR="$PWD/.hackers-$_gitver/users" \
-		cachedir="$PWD/.cachedir"
-	bsdtar xf "$pkgname-$pkgver.tar.gz"
-}
-
-package() {
-	cd "$srcdir/$pkgname-$pkgver"
-	make PREFIX=/usr DESTDIR="${pkgdir}" install
-}

From 7476960c2b4b3b490c5e70b69d6d8a530128b58b Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Jul 08 2023 05:19:22 +0000
Subject: [PATCH 5/32] libre/iceweasel: 115.0-1.parabola1


---

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 96a8b61..5c988de 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
@@ -108,7 +108,7 @@ index 1d9e4cb79b..7c1f9895fc 100644
  // environment variables still apply.
  //
  // --stage: use stage Remote Settings
--//   (`https://settings-cdn.stage.mozaws.net/v1`) rather than production
+-//   (`https://firefox.settings.services.allizom.org/v1`) rather than production
 -//   (`https://firefox.settings.services.mozilla.com/v1`)
 +//   (`resource://app/defaults/settings/`) rather than production
 +//   (`resource://app/defaults/settings/`)
@@ -129,10 +129,10 @@ index 2d15977ae2..815bf5cac9 100644
 -      "https://firefox.settings.services.mozilla.com/v1/buckets/main-preview/collections/search-config/records",
 +      "resource://app/defaults/settings/main/search-config.json",
      "stage-main":
--      "https://settings.stage.mozaws.net/v1/buckets/main/collections/search-config/records",
+-      "https://firefox.settings.services.allizom.org/v1/buckets/main/collections/search-config/records",
 +      "resource://app/defaults/settings/main/search-config.json",
      "stage-preview":
--      "https://settings.stage.mozaws.net/v1/buckets/main-preview/collections/search-config/records",
+-      "https://firefox.settings.services.allizom.org/v1/buckets/main-preview/collections/search-config/records",
 +      "resource://app/defaults/settings/main/search-config.json",
    },
  
diff --git a/libre/iceweasel/9004-FSDG-misc.patch b/libre/iceweasel/9004-FSDG-misc.patch
index 4d2680c..c6d8e92 100644
--- a/libre/iceweasel/9004-FSDG-misc.patch
+++ b/libre/iceweasel/9004-FSDG-misc.patch
@@ -129,22 +129,20 @@ index 76b495ea6c..d0c2b98b11 100644
  pref("browser.preferences.defaultPerformanceSettings.enabled", true);
  
 diff --git a/browser/base/content/test/static/browser_all_files_referenced.js b/browser/base/content/test/static/browser_all_files_referenced.js
-index 4c59b84a7c..44d36d3b28 100644
+index df8a1997a7..40696ea097 100644
 --- a/browser/base/content/test/static/browser_all_files_referenced.js
 +++ b/browser/base/content/test/static/browser_all_files_referenced.js
-@@ -136,17 +135,6 @@ var whitelist = [
+@@ -147,15 +147,6 @@ var whitelist = [
    // extensions/pref/autoconfig/src/nsReadConfig.cpp
    { file: "resource://gre/defaults/autoconfig/prefcalls.js" },
  
 -  // browser/components/preferences/moreFromMozilla.js
 -  // These files URLs are constructed programatically at run time.
 -  {
--    file:
--      "chrome://browser/content/preferences/more-from-mozilla-qr-code-simple.svg",
+-    file: "chrome://browser/content/preferences/more-from-mozilla-qr-code-simple.svg",
 -  },
 -  {
--    file:
--      "chrome://browser/content/preferences/more-from-mozilla-qr-code-simple-cn.svg",
+-    file: "chrome://browser/content/preferences/more-from-mozilla-qr-code-simple-cn.svg",
 -  },
 -
    { file: "resource://gre/greprefs.js" },
@@ -232,7 +230,7 @@ index 1208a5dbcd..ff91f7421e 100644
      if (BrowserUtils.shouldShowVPNPromo()) {
        const vpn = {
 diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
-index f6dc2b3781..34c7d8c528 100644
+index 115a67c962..3f9b72b021 100644
 --- a/browser/components/preferences/preferences.js
 +++ b/browser/components/preferences/preferences.js
 @@ -10,7 +10,6 @@
@@ -243,23 +241,22 @@ index f6dc2b3781..34c7d8c528 100644
  /* import-globals-from findInPage.js */
  /* import-globals-from /browser/base/content/utilityOverlay.js */
  /* import-globals-from /toolkit/content/preferencesBindings.js */
-@@ -203,14 +202,6 @@ function init_all() {
+@@ -227,13 +226,6 @@ function init_all() {
      register_module("paneExperimental", gExperimentalPane);
    }
  
 -  NimbusFeatures.moreFromMozilla.recordExposureEvent({ once: true });
 -  if (NimbusFeatures.moreFromMozilla.getVariable("enabled")) {
 -    document.getElementById("category-more-from-mozilla").hidden = false;
--    gMoreFromMozillaPane.option = NimbusFeatures.moreFromMozilla.getVariable(
--      "template"
--    );
+-    gMoreFromMozillaPane.option =
+-      NimbusFeatures.moreFromMozilla.getVariable("template");
 -    register_module("paneMoreFromMozilla", gMoreFromMozillaPane);
 -  }
    // The Sync category needs to be the last of the "real" categories
    // registered and inititalized since many tests wait for the
    // "sync-pane-loaded" observer notification before starting the test.
 diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
-index 37544d2092..32b95bf95e 100644
+index a355a63d64..835cebe655 100644
 --- a/browser/components/preferences/preferences.xhtml
 +++ b/browser/components/preferences/preferences.xhtml
 @@ -31,7 +31,6 @@
@@ -268,8 +265,8 @@ index 37544d2092..32b95bf95e 100644
    <link rel="localization" href="browser/preferences/fonts.ftl"/>
 -  <link rel="localization" href="browser/preferences/moreFromMozilla.ftl"/>
    <link rel="localization" href="browser/preferences/preferences.ftl"/>
-   <link rel="localization" href="locales-preview/translations.ftl"/>
    <link rel="localization" href="toolkit/branding/accounts.ftl"/>
+   <link rel="localization" href="toolkit/branding/brandings.ftl"/>
 @@ -156,16 +155,6 @@
            <image class="category-icon"/>
            <label class="category-name" flex="1" data-l10n-id="pane-experimental-title"></label>
@@ -311,7 +308,7 @@ for the same reasons as the original Firefox.
  browser/app/profile/firefox.js                |   2 +-
  .../static/browser_all_files_referenced.js    |   2 -
  .../newtab/lib/OnboardingMessageProvider.jsm  | 215 ------------------
- .../newtab/lib/PanelTestProvider.jsm          |  84 -------
+ .../newtab/lib/PanelTestProvider.sys.mjs          |  84 -------
  .../content/assets/focus-qr-code.svg          | 114 ----------
  .../content/assets/klar-qr-code.svg           | 114 ----------
  6 files changed, 1 insertion(+), 530 deletions(-)
@@ -319,38 +316,40 @@ for the same reasons as the original Firefox.
  delete mode 100644 browser/components/privatebrowsing/content/assets/klar-qr-code.svg
 
 diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
-index d0c2b98b11..54cc9de7e6 100644
+index d0eeab95fa..f69cab44a1 100644
 --- a/browser/app/profile/firefox.js
 +++ b/browser/app/profile/firefox.js
-@@ -1907,7 +1907,7 @@ pref("browser.contentblocking.report.vpn_regions", "as,at,be,ca,ch,de,es,fi,fr,g
+@@ -2013,7 +2013,7 @@ pref("browser.contentblocking.report.vpn_regions", "as,at,be,ca,ch,de,es,fi,fr,g
  pref("browser.promo.focus.disallowed_regions", "cn");
  
  // Default to enabling focus promos to be shown where allowed.
 -pref("browser.promo.focus.enabled", true);
 +pref("browser.promo.focus.enabled", false);
  
- // Comma separated string of mozilla vpn supported platforms.
- pref("browser.contentblocking.report.vpn_platforms", "win,mac,linux");
+ // Default to enabling pin promos to be shown where allowed.
+ pref("browser.promo.pin.enabled", true);
 diff --git a/browser/base/content/test/static/browser_all_files_referenced.js b/browser/base/content/test/static/browser_all_files_referenced.js
-index 44d36d3b28..6823855d56 100644
+index df8a1997a7..d3cafd9c7f 100644
 --- a/browser/base/content/test/static/browser_all_files_referenced.js
 +++ b/browser/base/content/test/static/browser_all_files_referenced.js
-@@ -32,8 +32,6 @@ var gExceptionPaths = [
-   "chrome://activity-stream/content/data/content/assets/remote/",
+@@ -35,8 +35,6 @@ var gExceptionPaths = [
+   "chrome://activity-stream/content/data/content/assets/person-typing.svg",
    "chrome://browser/content/assets/moz-vpn.svg",
    "chrome://browser/content/assets/vpn-logo.svg",
 -  "chrome://browser/content/assets/focus-promo.png",
 -  "chrome://browser/content/assets/klar-qr-code.svg",
  
-   // These app marketplace icons are referenced based on the user's locale
-   // in browser/components/newtab/content-src/aboutwelcome/components/MobileDownloads.jsx
-diff -u a/browser/components/newtab/lib/OnboardingMessageProvider.jsm b/browser/components/newtab/lib/OnboardingMessageProvider.jsm
+   // 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
 --- a/browser/components/newtab/lib/OnboardingMessageProvider.jsm
 +++ b/browser/components/newtab/lib/OnboardingMessageProvider.jsm
-@@ -649,321 +649,6 @@
+@@ -513,315 +513,6 @@ const BASE_MESSAGES = () => [
+       ],
      },
    },
-   {
+-  {
 -    id: "PB_NEWTAB_FOCUS_PROMO",
 -    type: "default",
 -    template: "pb_newtab",
@@ -403,8 +402,7 @@ diff -u a/browser/components/newtab/lib/OnboardingMessageProvider.jsm b/browser/
 -                    ios: {
 -                      action: {
 -                        data: {
--                          args:
--                            "https://app.adjust.com/167k4ih?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Ffirefox-focus-privacy-browser%2Fid1055677337",
+-                          args: "https://app.adjust.com/167k4ih?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Ffirefox-focus-privacy-browser%2Fid1055677337",
 -                          where: "tabshifted",
 -                        },
 -                        type: "OPEN_URL",
@@ -414,8 +412,7 @@ diff -u a/browser/components/newtab/lib/OnboardingMessageProvider.jsm b/browser/
 -                    android: {
 -                      action: {
 -                        data: {
--                          args:
--                            "https://app.adjust.com/167k4ih?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dorg.mozilla.focus",
+-                          args: "https://app.adjust.com/167k4ih?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dorg.mozilla.focus",
 -                          where: "tabshifted",
 -                        },
 -                        type: "OPEN_URL",
@@ -510,8 +507,7 @@ diff -u a/browser/components/newtab/lib/OnboardingMessageProvider.jsm b/browser/
 -                    ios: {
 -                      action: {
 -                        data: {
--                          args:
--                            "https://app.adjust.com/a8bxj8j?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fapps.apple.com%2Fde%2Fapp%2Fklar-by-firefox%2Fid1073435754",
+-                          args: "https://app.adjust.com/a8bxj8j?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fapps.apple.com%2Fde%2Fapp%2Fklar-by-firefox%2Fid1073435754",
 -                          where: "tabshifted",
 -                        },
 -                        type: "OPEN_URL",
@@ -521,8 +517,7 @@ diff -u a/browser/components/newtab/lib/OnboardingMessageProvider.jsm b/browser/
 -                    android: {
 -                      action: {
 -                        data: {
--                          args:
--                            "https://app.adjust.com/a8bxj8j?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dorg.mozilla.klar",
+-                          args: "https://app.adjust.com/a8bxj8j?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dorg.mozilla.klar",
 -                          where: "tabshifted",
 -                        },
 -                        type: "OPEN_URL",
@@ -613,8 +608,7 @@ diff -u a/browser/components/newtab/lib/OnboardingMessageProvider.jsm b/browser/
 -                    ios: {
 -                      action: {
 -                        data: {
--                          args:
--                            "https://app.adjust.com/a8bxj8j?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fapps.apple.com%2Fde%2Fapp%2Fklar-by-firefox%2Fid1073435754",
+-                          args: "https://app.adjust.com/a8bxj8j?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fapps.apple.com%2Fde%2Fapp%2Fklar-by-firefox%2Fid1073435754",
 -                          where: "tabshifted",
 -                        },
 -                        type: "OPEN_URL",
@@ -624,8 +618,7 @@ diff -u a/browser/components/newtab/lib/OnboardingMessageProvider.jsm b/browser/
 -                    android: {
 -                      action: {
 -                        data: {
--                          args:
--                            "https://app.adjust.com/a8bxj8j?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dorg.mozilla.klar",
+-                          args: "https://app.adjust.com/a8bxj8j?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dorg.mozilla.klar",
 -                          where: "tabshifted",
 -                        },
 -                        type: "OPEN_URL",
@@ -665,17 +658,18 @@ diff -u a/browser/components/newtab/lib/OnboardingMessageProvider.jsm b/browser/
 -    },
 -    targeting: "localeLanguageCode == 'de'",
 -  },
--  {
+   {
      id: "PB_NEWTAB_INFO_SECTION",
      template: "pb_newtab",
-     content: {
-diff -u a/browser/components/newtab/lib/PanelTestProvider.jsm b/browser/components/newtab/lib/PanelTestProvider.jsm
---- a/browser/components/newtab/lib/PanelTestProvider.jsm
-+++ b/browser/components/newtab/lib/PanelTestProvider.jsm
-@@ -557,87 +557,6 @@
+diff --git a/browser/components/newtab/lib/PanelTestProvider.sys.mjs b/browser/components/newtab/lib/PanelTestProvider.sys.mjs
+index b5ff59290a..eb5fc60451 100644
+--- a/browser/components/newtab/lib/PanelTestProvider.sys.mjs
++++ b/browser/components/newtab/lib/PanelTestProvider.sys.mjs
+@@ -367,85 +367,6 @@ const MESSAGES = () => [
+     frequency: { lifetime: 3 },
      trigger: { id: "defaultBrowserCheck" },
    },
-   {
+-  {
 -    id: "PB_FOCUS_PROMO",
 -    groups: ["panel-test-provider"],
 -    template: "spotlight",
@@ -705,8 +699,7 @@ diff -u a/browser/components/newtab/lib/PanelTestProvider.jsm b/browser/componen
 -            ios: {
 -              action: {
 -                data: {
--                  args:
--                    "https://app.adjust.com/167k4ih?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Ffirefox-focus-privacy-browser%2Fid1055677337",
+-                  args: "https://app.adjust.com/167k4ih?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fapps.apple.com%2Fus%2Fapp%2Ffirefox-focus-privacy-browser%2Fid1055677337",
 -                  where: "tabshifted",
 -                },
 -                type: "OPEN_URL",
@@ -716,8 +709,7 @@ diff -u a/browser/components/newtab/lib/PanelTestProvider.jsm b/browser/componen
 -            android: {
 -              action: {
 -                data: {
--                  args:
--                    "https://app.adjust.com/167k4ih?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dorg.mozilla.focus",
+-                  args: "https://app.adjust.com/167k4ih?campaign=firefox-desktop&adgroup=pb&creative=focus-omc172&redirect=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dorg.mozilla.focus",
 -                  where: "tabshifted",
 -                },
 -                type: "OPEN_URL",
@@ -756,10 +748,9 @@ diff -u a/browser/components/newtab/lib/PanelTestProvider.jsm b/browser/componen
 -    },
 -    trigger: { id: "defaultBrowserCheck" },
 -  },
--  {
+   {
      id: "PB_NEWTAB_VPN_PROMO",
      template: "pb_newtab",
-     content: {
 diff --git a/browser/components/privatebrowsing/content/assets/focus-qr-code.svg b/browser/components/privatebrowsing/content/assets/focus-qr-code.svg
 deleted file mode 100644
 index f182567314..0000000000
@@ -1086,7 +1077,7 @@ so this can still be a privacy concern.  BTW, POST is the default search
 method when searching directly from DDG HTML home page.
 
 2. Remove suspicious t=ffab URL parameter, because it can tell DDG that
-   this particular search extension is the origin of the search.`
+   this particular search extension is the origin of the search.
 
 Private search engine that doesn't track its users, huh?
 
@@ -1097,7 +1088,7 @@ Private search engine that doesn't track its users, huh?
  1 file changed, 5 insertions(+), 6 deletions(-)
 
 diff --git a/browser/components/search/extensions/ddg/manifest.json b/browser/components/search/extensions/ddg/manifest.json
-index 56295197aa..475133c208 100644
+index 1e1bffed47..14b6cf9f5a 100644
 --- a/browser/components/search/extensions/ddg/manifest.json
 +++ b/browser/components/search/extensions/ddg/manifest.json
 @@ -1,6 +1,6 @@
@@ -1107,9 +1098,9 @@ index 56295197aa..475133c208 100644
 +  "name": "DuckDuckGo HTML",
 +  "description": "Search DuckDuckGo HTML",
    "manifest_version": 2,
-   "version": "1.3",
+   "version": "1.4",
    "browser_specific_settings": {
-@@ -18,10 +18,9 @@
+@@ -16,10 +16,9 @@
    "chrome_settings_overrides": {
      "search_provider": {
        "keyword": ["@duckduckgo", "@ddg"],
@@ -1221,11 +1212,11 @@ index a52cde5532..251acad0f8 100644
 +-firefoxview-brand-name = Iceweasel View
 
 diff --git a/browser/locales/en-US/browser/preferences/preferences.ftl b/browser/locales/en-US/browser/preferences/preferences.ftl
-index 1b29e8d..6f7566c 100644
+index 829c18c5e1..71c75114e9 100644
 --- a/browser/locales/en-US/browser/preferences/preferences.ftl
 +++ b/browser/locales/en-US/browser/preferences/preferences.ftl
-@@ -714,16 +714,6 @@ sync-signedout-account-signin2 =
-     .label = Sign in to { -sync-brand-short-name }…
+@@ -838,16 +838,6 @@ sync-signedout-account-signin3 =
+     .label = Sign in to sync…
      .accesskey = i
  
 -# This message contains two links and two icon images.
@@ -1238,7 +1229,7 @@ index 1b29e8d..6f7566c 100644
 -# to your language, but should not be changed or translated.
 -sync-mobile-promo = Download Firefox for <img data-l10n-name="android-icon"/> <a data-l10n-name="android-link">Android</a> or <img data-l10n-name="ios-icon"/> <a data-l10n-name="ios-link">iOS</a> to sync with your mobile device.
 -
- ## Firefox Account - Signed in
+ ## Firefox account - Signed in
  
  sync-profile-picture =
 diff --git a/toolkit/locales/en-US/toolkit/about/aboutAddons.ftl b/toolkit/locales/en-US/toolkit/about/aboutAddons.ftl
@@ -1277,18 +1268,26 @@ index 5ac8a7b08c..fec81698e3 100644
  vpn-banner-header = Protection that extends beyond the browser
  # Note This text is not being translated, and the <br> will need to be removed if or when it does get translated
 diff --git a/browser/components/protections/content/protections.html b/browser/components/protections/content/protections.html
-index e33c814f62..5698f2b3e9 100644
+index 1374c30fd7..0d70747bf7 100644
 --- a/browser/components/protections/content/protections.html
 +++ b/browser/components/protections/content/protections.html
-@@ -303,8 +303,6 @@
-               </div>
-               <p class="content" data-l10n-id="vpn-header-content"></p>
-               <p class="content subscribed" data-l10n-id="vpn-header-content-subscribed">
--                <a target="_blank" id="vpn-google-playstore-link" data-l10n-name="vpn-google-playstore-link"></a>
--                <a target="_blank" id="vpn-app-store-link" data-l10n-name="vpn-app-store-link"></a>
+@@ -572,16 +572,6 @@
+                 class="content subscribed"
+                 data-l10n-id="vpn-header-content-subscribed"
+               >
+-                <a
+-                  target="_blank"
+-                  id="vpn-google-playstore-link"
+-                  data-l10n-name="vpn-google-playstore-link"
+-                ></a>
+-                <a
+-                  target="_blank"
+-                  id="vpn-app-store-link"
+-                  data-l10n-name="vpn-app-store-link"
+-                ></a>
                </p>
              </div>
-             <a target="_blank" id="get-vpn-link" data-l10n-id="get-vpn-link"></a>
+             <a
 diff --git a/browser/components/protections/content/vpn-card.mjs b/browser/components/protections/content/vpn-card.mjs
 index 2417f1a641..698c48ccc3 100644
 --- a/browser/components/protections/content/vpn-card.mjs
diff --git a/libre/iceweasel/PKGBUILD b/libre/iceweasel/PKGBUILD
index ecc4fbc..0e3955e 100644
--- a/libre/iceweasel/PKGBUILD
+++ b/libre/iceweasel/PKGBUILD
@@ -70,10 +70,10 @@
 
 pkgname=iceweasel
 epoch=1
-pkgver=114.0
+pkgver=115.0
 pkgrel=1
 pkgrel+=.parabola1
-_brandingver=112.0
+_brandingver=115.0
 _brandingrel=1
 pkgdesc="Standalone web browser derived from Mozilla Firefox"
 url=https://wiki.parabola.nu/Iceweasel
@@ -179,15 +179,15 @@ validpgpkeys+=(
   'BFA8008A8265677063B11BF47171986E4B745536' # Andreas Grapentin
   '3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40' # bill-auger
 )
-sha256sums=('d23a0502742f52110ce496837ba82b47bf38d40585633787508ae5be9a5b4bc6'
+sha256sums=('7cdb23fe5ccb54334c8fe14c1e5dd89d5788f8e7b79a2bd9cc4eabdc7e54e898'
             'SKIP'
             '9cdc2602661717712092d28bb494e5b48e518cb930898aca85eaf21f91f7ef58')
-sha256sums+=('a44dc1e9f2d508203d1cacc2b5bb212c73eb04311da9a036560ff389d7b8e9e6'
+sha256sums+=('8df4cc8dab42268323594efd07697511746f21c006f1724b564b00fe8c5ac798'
              'SKIP'
-             '5c698551b1170e4bbf6e079c82ff0ccdc5266d87678b0653623dea5ec124d09a'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
+             'e90da1ee4fed83e8e40898f5f87b3f1534af50e253409539cd4b4635e14800eb'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
              '131acdeff2af06c07f245717cd7cb898291f4466136f441b7b90acb2ccdade0a'  # 9002-FSDG-preference-defaults.patch
              '13b701372b6fb35b96a1d58853db64643feb9be061ebc461b41ceca5de8eea62'  # 9003-FSDG-urihandlers.patch
-             'f2775f40dec9849b318f290c91f34c608ebbe274044fec9b05a485536e7041c0'  # 9004-FSDG-misc.patch
+             'f01c4bda81b859f400c741ca97fcf945a768a799efe73943f45eb327d717eaa2'  # 9004-FSDG-misc.patch
              '00cb44a91b42942f17258ad165810866ff123777b667a5691ea0745ba72f4332'  # process-json-files.py
              '8e113fd2730be3fd11b2a24918dd62e8741513cf4dce9819d8eae358c5411adc'  # vendor.js.in
              'aa663d899e924f4979114584cad671dad3b93dd9b0dfe28bb1cf11ddf92e6d47') # zstandard-0.21.0.diff
@@ -197,15 +197,15 @@ sha256sums_i686=('2f0c81a38c4578f68f5456b618fe84a78974072821488173eb55e0e72287e3
                  'ed3bb281697af7c4353a34067ffb4b18a971d40757bef2d6af3c8bf2d28d42d1'
                  '2fb39374fd3d80eea9e346032a2a4b2bc2e357dee7380855b24bcf19b1335d06'
                  'c3ce181fbb0142055aa6dd17f3cda2ba6a1e54d7a689a8c6e9cce76aa40e6544')
-b2sums=('09d29112a487bc23c0e54380bf5e6ef5c62639aa53b6cca7c9a61b2452f4ee0e1a1b9f7ca996ddb78b842170fa67be0dc926c17956ab505e42966d443a798f34'
+b2sums=('f5489d96be60f3ed5f5657cb43142a876a7ef2bfe46b2ebb54df2b9be8262ab8c8d3aa342adf84fa68ffe0abc63e3b4671f310e0a3dd4c53c137a612e9e67932'
         'SKIP'
         'f86353bbba05d8994db34c6abb66094aa61d2c37c8599930dbe9d215413f0f718a1ce55a8f2d07a65074c3947e28fc80d44c925bd9be239a870f82d2a1803635')
-b2sums+=('8472a10e5e27cc82f1467dd6592dfee512cd165e39f23ebbb4c8e76bbf6fd8614a4c1f1d91d42046f773eb711f463ece1aa23e1b1882173290529c28b0f3b60a'
+b2sums+=('c45680883ab019e5075214da47adf405c1a857de51df17f7254aa413f7e654d426e83bcd2be84b2260ceedaf98b85cb9d81588eb38b70a0d92686ce4bb152e45'
          'SKIP'
-         '9bd51af60740fcbf31b8387901d73c09dbc2f15ddd98d18f4c90ee909f58c9a8fe032712679c36d0c52358dad34c68b539695fccb019b4c35859673a724c3f72'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
+         'ed3eb1c8aba0e6302058a361431b5dd411ff4ff74587c2305279ef30b4d19fae9e8c97c029513a8a091384278a0930a950fb37d9cffc5713de58d1a7e289bf57'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
          'fc2204d183cf8ef133cb94580a92db26356edb069424e751743b2af349f115fb6069f0e3fe860496e05193cb0ca3dcb9aa5869c86d5c96c05a6eaec5242f8a35'  # 9002-FSDG-preference-defaults.patch
          '9e4ccfb8850d9f9a5222f5186b35f2ae7986b6c6d435de024b109a6fa01e65a1362664cfb6ea81621387cf33364cc8d3d466fae1bee24ab5fc7e23c4cb17bf2c'  # 9003-FSDG-urihandlers.patch
-         '7ce9bd437d2877545f71a2f258b94f4c3e4107dbb65957ea544b2ae915dd2f783ea1473354608097425e5245d76ea51c8993ddeffebd6aeca6e23711415bbf93'  # 9004-FSDG-misc.patch
+         '2213f136bb3c66baed52bbff1c09f3d883c5e9bb0b06d9d0777ad718fcd55ce68a5f512d4cca796de78d254aba1078d0d254070e79275571e3d94aacbbb8556f'  # 9004-FSDG-misc.patch
          '085c4631ec8cfdf5842068d882185c783e976b1fde74167bb71ef4d7db8c70c12844177b17e76f858ba3ce2a402848ac8fc19910dcbefd29887abfaf5faac5e4'  # process-json-files.py
          '5302b6abcfec3155c578e0664e6a0ac921234c5912d74c4a9b0feb3a051ed4ef5f11b93ee37739a3a92fc6693683374f92ac9c3f560780f879c4249d0718157a'  # vendor.js.in
          '2e568bb28f23f0f9225ca68a5084e3e835f6bd15046eea9d615d3462146da649c1b6b7439b4d768759bda2658d54ca73c9b3479e5e0b6d7a58822664dbe45aa2') # zstandard-0.21.0.diff
@@ -831,6 +831,9 @@ pref("browser.shell.checkDefaultBrowser", false);
 
 // Don't disable extensions in the application directory
 pref("extensions.autoDisableScopes", 11);
+
+// Enable GNOME Shell search provider
+pref("browser.gnome-search-provider.enabled", true);
 END
 
   # Parabola additions to vendor.js
@@ -905,6 +908,15 @@ END
     ln -srfv "$pkgdir/usr/lib/libnssckbi.so" "$nssckbi"
   fi
 
+  local sprovider="$pkgdir/usr/share/gnome-shell/search-providers/$pkgname.search-provider.ini"
+  install -Dvm644 /dev/stdin "$sprovider" <<END
+[Shell Search Provider]
+DesktopId=$pkgname.desktop
+BusName=org.mozilla.${pkgname//-/}.SearchProvider
+ObjectPath=/org/mozilla/${pkgname//-/}/SearchProvider
+Version=2
+END
+
   # export SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE="$startdir/.crash-stats-api.token" # anti-feature
   # if [[ -f $SOCORRO_SYMBOL_UPLOAD_TOKEN_FILE ]]; then                        # anti-feature
   #   make -C obj uploadsymbols                                                # anti-feature

From 3223758b87c1bc16b302a19bbfd8172193b30558 Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Jul 08 2023 05:19:26 +0000
Subject: [PATCH 6/32] New checksums for a branding tarball


---

diff --git a/libre/iceweasel/PKGBUILD b/libre/iceweasel/PKGBUILD
index 0e3955e..5296a4e 100644
--- a/libre/iceweasel/PKGBUILD
+++ b/libre/iceweasel/PKGBUILD
@@ -182,7 +182,7 @@ validpgpkeys+=(
 sha256sums=('7cdb23fe5ccb54334c8fe14c1e5dd89d5788f8e7b79a2bd9cc4eabdc7e54e898'
             'SKIP'
             '9cdc2602661717712092d28bb494e5b48e518cb930898aca85eaf21f91f7ef58')
-sha256sums+=('8df4cc8dab42268323594efd07697511746f21c006f1724b564b00fe8c5ac798'
+sha256sums+=('b701b4c47fca2661feeabe172e398c76c8015ee08ff4cc3cc2f7c3ef2ed692a7'
              'SKIP'
              'e90da1ee4fed83e8e40898f5f87b3f1534af50e253409539cd4b4635e14800eb'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
              '131acdeff2af06c07f245717cd7cb898291f4466136f441b7b90acb2ccdade0a'  # 9002-FSDG-preference-defaults.patch
@@ -200,7 +200,7 @@ sha256sums_i686=('2f0c81a38c4578f68f5456b618fe84a78974072821488173eb55e0e72287e3
 b2sums=('f5489d96be60f3ed5f5657cb43142a876a7ef2bfe46b2ebb54df2b9be8262ab8c8d3aa342adf84fa68ffe0abc63e3b4671f310e0a3dd4c53c137a612e9e67932'
         'SKIP'
         'f86353bbba05d8994db34c6abb66094aa61d2c37c8599930dbe9d215413f0f718a1ce55a8f2d07a65074c3947e28fc80d44c925bd9be239a870f82d2a1803635')
-b2sums+=('c45680883ab019e5075214da47adf405c1a857de51df17f7254aa413f7e654d426e83bcd2be84b2260ceedaf98b85cb9d81588eb38b70a0d92686ce4bb152e45'
+b2sums+=('a22044292e464b3922eb2e4a8cf0993524d232eeb4a8602707589d00f690498d3b76e515c8d0ce4995b3bf8a65df9aa814b49de469178aa1f8cc07ec19dd5d32'
          'SKIP'
          'ed3eb1c8aba0e6302058a361431b5dd411ff4ff74587c2305279ef30b4d19fae9e8c97c029513a8a091384278a0930a950fb37d9cffc5713de58d1a7e289bf57'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
          'fc2204d183cf8ef133cb94580a92db26356edb069424e751743b2af349f115fb6069f0e3fe860496e05193cb0ca3dcb9aa5869c86d5c96c05a6eaec5242f8a35'  # 9002-FSDG-preference-defaults.patch

From f74695608f6de8897e541e39426e1f0e95115924 Mon Sep 17 00:00:00 2001
From: Wael Karram <wael@waelk.tech>
Date: Jul 09 2023 01:03:45 +0000
Subject: [PATCH 7/32] Updated unifont to version 15.0.06


---

diff --git a/pcr/unifont/PKGBUILD b/pcr/unifont/PKGBUILD
index c3eaa4d..9fb8d97 100644
--- a/pcr/unifont/PKGBUILD
+++ b/pcr/unifont/PKGBUILD
@@ -31,7 +31,7 @@ pkgname=('pcf-unifont'
          'otf-unifont'
          'unifont-utils')
 pkgbase=unifont
-pkgver=15.0.01
+pkgver=15.0.06
 pkgrel=1
 pkgdesc="A free bitmap font with wide Unicode support (PCF, PSF and hex versions)"
 arch=('any')
@@ -39,7 +39,7 @@ arch=('any')
 url="http://unifoundry.com/"
 license=('GPL' 'custom:OFL')
 source=("http://unifoundry.com/pub/unifont/unifont-$pkgver/unifont-$pkgver.tar.gz"{,.sig})
-sha256sums=('7d11a924bf3c63ea7fdf2da2b96d6d4986435bedfd1e6816c8ac2e6db47634d5'
+sha256sums=('36668eb1326d22e1466b94b3929beeafd10b9838bf3d41f4e5e3b52406ae69f1'
             'SKIP')
 validpgpkeys=('95D2E9AB8740D8046387FD151A09227B1F435A33') # Paul Hardy <unifoundry@unifoundry.com>
 

From f6aa486c4e33ff296af0db8fc4f3f07c61211c47 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 09 2023 01:04:56 +0000
Subject: [PATCH 8/32] [unifont]: housekeeping


---

diff --git a/pcr/unifont/PKGBUILD b/pcr/unifont/PKGBUILD
index 9fb8d97..5894a6c 100644
--- a/pcr/unifont/PKGBUILD
+++ b/pcr/unifont/PKGBUILD
@@ -16,10 +16,10 @@
 #   - combination of several AUR packages
 
 # NOTE: This package should be built per-arch.
-#       The fonts are for 'any' arch; but 'unifont-utils' has binary executables.
-# NOTE: In order to publish all of these packages, `librestage` must be run twice.
+#       The fonts are for 'any' arch; but 'unifont-utils' is arch-specific.
+#       In order to publish all of these packages, `librestage` must be run twice.
 #       The first run will stage the 'any' packages.
-#       In order to librestage the per-arch 'unifont-utils' packages,
+#       In order to librestage the per-arch 'unifont-utils' and source packages,
 #       uncomment the commented arch=() array temporarily.
 
 

From f4f27bca0bce0be676e54402d96174a838720e9d Mon Sep 17 00:00:00 2001
From: Wael Karram <wael@waelk.tech>
Date: Jul 09 2023 01:05:00 +0000
Subject: [PATCH 9/32] Updated Prosody Modules


---

diff --git a/pcr/prosody-modules/PKGBUILD b/pcr/prosody-modules/PKGBUILD
index 9bff0cd..99f61bc 100644
--- a/pcr/prosody-modules/PKGBUILD
+++ b/pcr/prosody-modules/PKGBUILD
@@ -36,7 +36,7 @@
 # So we used the commit right before June 09 to correspond to the prosody release
 
 pkgname=prosody-modules
-pkgver=0.12.2
+pkgver=0.12.3
 pkgrel=1
 pkgdesc="Prosody community modules, includes experimental ones."
 arch=('any')
@@ -44,7 +44,7 @@ url="https://modules.prosody.im/"
 license=('MIT')
 depends=('prosody')
 makedepends=('mercurial')
-mksource=("${pkgname}-${pkgver}::hg+https://hg.prosody.im/prosody-modules/#revision=5143")
+mksource=("${pkgname}-${pkgver}::hg+https://hg.prosody.im/prosody-modules/#revision=5579")
 source=("https://repo.parabola.nu/other/${pkgname}-libre/${pkgname}-libre-${pkgver}")
 mksha1sums=('SKIP')
 sha1sums=('SKIP')

From 179cd74bc5de3e797588452c65d987938c492802 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 09 2023 01:05:03 +0000
Subject: [PATCH 10/32] [prosody-modules]: housekeeping


---

diff --git a/pcr/prosody-modules/PKGBUILD b/pcr/prosody-modules/PKGBUILD
index 99f61bc..e0272cd 100644
--- a/pcr/prosody-modules/PKGBUILD
+++ b/pcr/prosody-modules/PKGBUILD
@@ -2,38 +2,43 @@
 # SPDX-License-Identifier: CC0-1.0
 # Maintainer: Parabola Hackers <dev@lists.parabola.nu>
 
+
+# NOTE:
 # The prosody-modules repository doesn't have tags that correspond to
-# the prosody releases. In the prosody source code we have:
-# $ hg tags | grep "^0.12.1"
-# 0.12.1                         12526:252ed01896dd
-# $ hg log
-# [...]
-# changeset:   12543:cf29bdb74c15
-# branch:      0.12
-# parent:      12526:252ed01896dd
-# user:        Matthew Wild <mwild1@gmail.com>
-# date:        Thu Jun 09 12:42:57 2022 +0100
-# summary:     Added tag 0.12.1 for changeset 252ed01896dd
-# [...]
-# changeset:   12526:252ed01896dd
-# branch:      0.12
-# tag:         0.12.1
-# user:        Kim Alvefur <zash@zash.se>
-# date:        Fri May 27 14:45:35 2022 +0200
-# summary:     mod_smacks: Bounce unhandled stanzas from local origin (fix #1759)
-# So we used the revision 4959:0989dea9b356
-# and in prosody-modules we have:
-# $ hg log
-# changeset:   4960:59bedf167910
-# user:        Kim Alvefur <zash@zash.se>
-# date:        Mon Jun 13 14:25:39 2022 +0200
-# summary:     mod_muc_ping: Remove since Prosody mod_muc 0.11+ covers this natively
+# the prosody releases. So we used the commit right before June 09
+# to correspond to the prosody release.
+#
+# In the prosody source code we have:
+#   $ hg tags | grep "^0.12.1"
+#   0.12.1                         12526:252ed01896dd
+#   $ hg log
+#   [...]
+#   changeset:   12543:cf29bdb74c15
+#   branch:      0.12
+#   parent:      12526:252ed01896dd
+#   user:        Matthew Wild <mwild1@gmail.com>
+#   date:        Thu Jun 09 12:42:57 2022 +0100
+#   summary:     Added tag 0.12.1 for changeset 252ed01896dd
+#   [...]
+#   changeset:   12526:252ed01896dd
+#   branch:      0.12
+#   tag:         0.12.1
+#   user:        Kim Alvefur <zash@zash.se>
+#   date:        Fri May 27 14:45:35 2022 +0200
+#   summary:     mod_smacks: Bounce unhandled stanzas from local origin (fix #1759)
+#   So we used the revision 4959:0989dea9b356
+#   and in prosody-modules we have:
+#   $ hg log
+#   changeset:   4960:59bedf167910
+#   user:        Kim Alvefur <zash@zash.se>
+#   date:        Mon Jun 13 14:25:39 2022 +0200
+#   summary:     mod_muc_ping: Remove since Prosody mod_muc 0.11+ covers this natively
 #
-# changeset:   4959:0989dea9b356
-# user:        Kim Alvefur <zash@zash.se>
-# date:        Sun Jun 05 21:59:17 2022 +0200
-# summary:     mod_rest: Add various things to openapi spec
-# So we used the commit right before June 09 to correspond to the prosody release
+#   changeset:   4959:0989dea9b356
+#   user:        Kim Alvefur <zash@zash.se>
+#   date:        Sun Jun 05 21:59:17 2022 +0200
+#   summary:     mod_rest: Add various things to openapi spec
+
 
 pkgname=prosody-modules
 pkgver=0.12.3
@@ -44,8 +49,8 @@ url="https://modules.prosody.im/"
 license=('MIT')
 depends=('prosody')
 makedepends=('mercurial')
-mksource=("${pkgname}-${pkgver}::hg+https://hg.prosody.im/prosody-modules/#revision=5579")
-source=("https://repo.parabola.nu/other/${pkgname}-libre/${pkgname}-libre-${pkgver}")
+mksource=(${pkgname}-${pkgver}::hg+https://hg.prosody.im/prosody-modules/#revision=5579)
+source=(https://repo.parabola.nu/other/${pkgname}-libre/${pkgname}-libre-${pkgver}.tar.xz{,.sig})
 mksha1sums=('SKIP')
 sha1sums=('SKIP')
 

From 50d0c692893677a947973c0286384b364d39b00b Mon Sep 17 00:00:00 2001
From: David P <megver83@parabola.nu>
Date: Jul 11 2023 19:59:21 +0000
Subject: [PATCH 11/32] remove pcr/libgpiod, already in [extra]


Signed-off-by: David P <megver83@parabola.nu>

---

diff --git a/pcr/libgpiod/PKGBUILD b/pcr/libgpiod/PKGBUILD
deleted file mode 100644
index 26444f7..0000000
--- a/pcr/libgpiod/PKGBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Maintainer(Aur): Greg Erwin <first name last name 256 at gmail dot com>
-
-# parabola changes and rationale:
-#  no changes.
-
-pkgname=libgpiod
-pkgver=1.6.2
-pkgrel=1
-pkgdesc="C library and tools for interacting with the linux GPIO character device"
-url="https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git"
-arch=('x86_64' 'i686' 'arm' 'armv6h' 'armv7h' 'aarch64')
-license=('LGPL2.1')
-depends=('linux-api-headers>=4.8' 'python')
-makedepends=('autoconf-archive' 'help2man')
-conflicts=('libgpiod-git')
-source=("$url/snapshot/$pkgname-$pkgver.tar.gz")
-sha256sums=('0a1fa46d21c925ea245f101f60cc8253ff46a7ccadc1d7b952c99bb6ffec15cd')
-
-build() {
-  cd "$pkgname-$pkgver"
-  ./autogen.sh \
-    --prefix=/usr \
-    --enable-tools=yes \
-    --enable-bindings-cxx \
-    --enable-bindings-python
-  make
-}
-
-package() {
-  cd "$pkgname-$pkgver"
-  make DESTDIR="$pkgdir" install
-}

From 1ef558f39bbf80e285b1e7c0cf0a3fd7260ae470 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 14 2023 01:21:14 +0000
Subject: [PATCH 12/32] [prosody-modules]: declare validpgpkeys - declare maintainer


---

diff --git a/pcr/prosody-modules/PKGBUILD b/pcr/prosody-modules/PKGBUILD
index e0272cd..e95ed62 100644
--- a/pcr/prosody-modules/PKGBUILD
+++ b/pcr/prosody-modules/PKGBUILD
@@ -1,6 +1,6 @@
 # Copyright (C) 2022 Wael Karram <wael@waelk.tech>
 # SPDX-License-Identifier: CC0-1.0
-# Maintainer: Parabola Hackers <dev@lists.parabola.nu>
+# Maintainer: Wael Karram <wael@waelk.tech>
 
 
 # NOTE:
@@ -53,6 +53,8 @@ mksource=(${pkgname}-${pkgver}::hg+https://hg.prosody.im/prosody-modules/#revisi
 source=(https://repo.parabola.nu/other/${pkgname}-libre/${pkgname}-libre-${pkgver}.tar.xz{,.sig})
 mksha1sums=('SKIP')
 sha1sums=('SKIP')
+validpgpkeys=('3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40') # bill-auger
+
 
 mksource() {
 	cd "${srcdir}/${pkgname}-${pkgver}/"

From 3c6d0e3246cff98e9c1a81c4d5cba900df8fb71a Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 14 2023 01:22:45 +0000
Subject: [PATCH 13/32] [scripts/version_constraint.sh]: add reference script with tests


---

diff --git a/scripts/version_constraint.sh b/scripts/version_constraint.sh
new file mode 100755
index 0000000..53db47d
--- /dev/null
+++ b/scripts/version_constraint.sh
@@ -0,0 +1,116 @@
+#!/bin/bash
+
+_version_constraint() # (dep_pkgname [precision])
+{
+  Log() { [[ "${FUNCNAME[2]}" == package ]] && echo "$@" >&2 || : ; }
+
+
+  local dep_pkgname=$1
+  declare -i req_precision=$2
+  local full_version=$(pacman -S --print-format='%v' ${dep_pkgname} | tail -n 1)
+  local n_dots=$(tmp=${full_version%-*} ; tmp=${tmp//[^\.]} ; echo "${#tmp}" ;)
+  local def_precision=$(( n_dots + 1 ))
+  local is_prec_valid=$(( req_precision > 0 && req_precision <= def_precision ))
+  local precision=$( (( is_prec_valid )) && echo ${req_precision} || echo ${def_precision} )
+  local pkgver_rx='[^-\.\ ]+'
+  local subver_rx='\.'${pkgver_rx}
+  local pkgrel_rx='[^-\ ]+'
+  local capture_rx=${pkgver_rx}
+  for (( n_dots=1 ; n_dots < precision ; ++n_dots )) ; do capture_rx+=${subver_rx} ; done ;
+  local version pkgrel subver_inc pkgrel_inc version_min version_max constraint_string
+
+  if   [[ "${full_version}" =~ ^(${capture_rx})(${subver_rx})*-(${pkgrel_rx})$ ]]
+  then version=${BASH_REMATCH[1]}
+       pkgrel=${BASH_REMATCH[3]%%.*}
+       subver_inc=$(( ${version##*.} + 1 )) # NOTE: this right-trims from any non-numeric
+       pkgrel_inc=$(( pkgrel + 1 ))
+       version_min=$(   (( ! is_prec_valid    )) && echo ${full_version%-*}-${pkgrel} || \
+                                                    echo ${version}                      )
+       version_max=$( ( (( ! is_prec_valid    )) && echo ${full_version%-*}-${pkgrel_inc} ) || \
+                      ( [[ "${version}" =~ \. ]] && echo ${version%.*}.${subver_inc}      ) || \
+                                                    echo ${subver_inc}                         )
+       constraint_string="${dep_pkgname}>=${version_min} ${dep_pkgname}<${version_max}"
+
+       Log "Applied version constraint: '${constraint_string}'"
+  else Log "ERROR: in _version_constraint() parsing: dep_pkgname='${dep_pkgname}' full_version='${full_version}'"
+       exit 1
+  fi
+
+  echo -n "${constraint_string}"
+}
+
+
+## tests ##
+
+# NOTE: test data versions are extremely brittle - these will need adjustments routinely
+#       usually, these values will be the reported failed 'actual' - `pacman -Syu` first!
+readonly OPENEXR_VER_MIN_PR_1=3                      ; OPENEXR_VER_MAX_PR_1=4 ;
+readonly OPENEXR_VER_MIN_PR_2=3.1                    ; OPENEXR_VER_MAX_PR_2=3.2 ;
+readonly OPENEXR_VER_MIN_PR_3=3.1.9                  ; OPENEXR_VER_MAX_PR_3=3.1.10 ;
+readonly OPENEXR_VER_MIN_FULL=3.1.9-1                ; OPENEXR_VER_MAX_FULL=3.1.9-2 ;
+readonly OPENSHADINGLANGUAGE_VER_MIN_PR_1=1          ; OPENSHADINGLANGUAGE_VER_MAX_PR_1=2 ;
+readonly OPENSHADINGLANGUAGE_VER_MIN_PR_2=1.12       ; OPENSHADINGLANGUAGE_VER_MAX_PR_2=1.13 ;
+readonly OPENSHADINGLANGUAGE_VER_MIN_PR_3=1.12.13     ; OPENSHADINGLANGUAGE_VER_MAX_PR_3=1.12.14 ;
+readonly OPENSHADINGLANGUAGE_VER_MIN_PR_4=1.12.13.0   ; OPENSHADINGLANGUAGE_VER_MAX_PR_4=1.12.13.1 ;
+readonly OPENSHADINGLANGUAGE_VER_MIN_FULL=1.12.13.0-1 ; OPENSHADINGLANGUAGE_VER_MAX_FULL=1.12.13.0-2 ;
+readonly WEBKIT2GTK_VER_MIN=2.40.3-1                 ; WEBKIT2GTK_VER_MAX=2.40.3-2 ;
+readonly QT5BASE_VER_MIN=5.15.10+kde+r130            ; QT5BASE_VER_MAX=5.15.11 ;
+
+readonly RED='\033[01;31m'
+readonly GREEN='\033[00;32m'
+readonly AQUA='\033[00;36m'
+readonly CEND='\033[00m'
+
+
+TestVersionConstraint() # ("pkgname" "precision" "expected_res")
+{
+  local pkgname="$1"
+  local precision="$2"
+  local expected_res="$3"
+
+  local actual_res="$(_version_constraint "${pkgname}" "${precision}" 2> /dev/null)"
+# local actual_res="$(_version_constraint "${pkgname}" "${precision}")"
+
+  if   [[ "${actual_res}" == "${expected_res}" ]]
+  then echo -e "${GREEN}PASS <- ${pkgname}${CEND}"                                     ; return 0 ;
+  else echo -e "${RED}FAIL <- ${pkgname}${CEND}"
+       echo -e "${AQUA}  expected='${expected_res}'\n  actual  ='${actual_res}'${CEND}" ; return 1 ;
+  fi
+}
+
+RunTests()
+{
+  set -e
+
+  precision=1 ; echo -e "\n=== precision='${precision}' ===" ;
+  TestVersionConstraint 'openexr'              "${precision}" "openexr>=${OPENEXR_VER_MIN_PR_1} openexr<${OPENEXR_VER_MAX_PR_1}"
+  TestVersionConstraint 'openshadinglanguage'  "${precision}" "openshadinglanguage>=${OPENSHADINGLANGUAGE_VER_MIN_PR_1} openshadinglanguage<${OPENSHADINGLANGUAGE_VER_MAX_PR_1}"
+
+  precision=2 ; echo -e "\n=== precision='${precision}' ===" ;
+  TestVersionConstraint 'openexr'              "${precision}" "openexr>=${OPENEXR_VER_MIN_PR_2} openexr<${OPENEXR_VER_MAX_PR_2}"
+  TestVersionConstraint 'openshadinglanguage'  "${precision}" "openshadinglanguage>=${OPENSHADINGLANGUAGE_VER_MIN_PR_2} openshadinglanguage<${OPENSHADINGLANGUAGE_VER_MAX_PR_2}"
+
+  precision=3 ; echo -e "\n=== precision='${precision}' ===" ;
+  TestVersionConstraint 'openexr'              "${precision}" "openexr>=${OPENEXR_VER_MIN_PR_3} openexr<${OPENEXR_VER_MAX_PR_3}"
+  TestVersionConstraint 'openshadinglanguage'  "${precision}" "openshadinglanguage>=${OPENSHADINGLANGUAGE_VER_MIN_PR_3} openshadinglanguage<${OPENSHADINGLANGUAGE_VER_MAX_PR_3}"
+
+  precision=4 ; echo -e "\n=== precision='${precision}' ===" ;
+  TestVersionConstraint 'openexr'              "${precision}" "openexr>=${OPENEXR_VER_MIN_FULL} openexr<${OPENEXR_VER_MAX_FULL}"
+  TestVersionConstraint 'openshadinglanguage'  "${precision}" "openshadinglanguage>=${OPENSHADINGLANGUAGE_VER_MIN_PR_4} openshadinglanguage<${OPENSHADINGLANGUAGE_VER_MAX_PR_4}"
+
+  precision= ; echo -e "\n=== full precision (default) ===" ;
+  TestVersionConstraint 'openexr'              "${precision}" "openexr>=${OPENEXR_VER_MIN_FULL} openexr<${OPENEXR_VER_MAX_FULL}"
+  TestVersionConstraint 'openshadinglanguage'  "${precision}" "openshadinglanguage>=${OPENSHADINGLANGUAGE_VER_MIN_FULL} openshadinglanguage<${OPENSHADINGLANGUAGE_VER_MAX_FULL}"
+
+  precision= ; echo -e "\n=== non-existent-package ===" ;
+  TestVersionConstraint 'non-existent-package' "${precision}" ''
+
+  precision= ; echo -e "\n=== specific repo ===" ;
+  TestVersionConstraint 'extra/webkit2gtk'     "${precision}" "extra/webkit2gtk>=${WEBKIT2GTK_VER_MIN} extra/webkit2gtk<${WEBKIT2GTK_VER_MAX}"
+
+  precision=3 ; echo -e "\n=== non-numeric version ===" ;
+  TestVersionConstraint 'qt5-base'             "${precision}" "qt5-base>=${QT5BASE_VER_MIN} qt5-base<${QT5BASE_VER_MAX}"
+}
+
+
+RunTests

From 29ccbe950d569a9da75b291a68715503141dea03 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 14 2023 01:23:35 +0000
Subject: [PATCH 14/32] [scripts/version_constraint.sh]: refactor


---

diff --git a/scripts/version_constraint.sh b/scripts/version_constraint.sh
index 53db47d..d124d9d 100755
--- a/scripts/version_constraint.sh
+++ b/scripts/version_constraint.sh
@@ -7,22 +7,30 @@ _version_constraint() # (dep_pkgname [precision])
 
   local dep_pkgname=$1
   declare -i req_precision=$2
-  local full_version=$(pacman -S --print-format='%v' ${dep_pkgname} | tail -n 1)
+  local full_version=$(pacman -S --print-format='%v' ${dep_pkgname} 2> /dev/null | tail -n 1)
   local n_dots=$(tmp=${full_version%-*} ; tmp=${tmp//[^\.]} ; echo "${#tmp}" ;)
   local def_precision=$(( n_dots + 1 ))
   local is_prec_valid=$(( req_precision > 0 && req_precision <= def_precision ))
   local precision=$( (( is_prec_valid )) && echo ${req_precision} || echo ${def_precision} )
-  local pkgver_rx='[^-\.\ ]+'
+  local pkgver_rx='[0-9A-Za-z_]+'
+  pkgver_rx=$(sed 's|\]|\+]|' <<<${pkgver_rx}) # according to the wiki, '+' is not allowed,
+                                               # but some pkgver have it (eg: 5.15.10+kde+r130)
   local subver_rx='\.'${pkgver_rx}
-  local pkgrel_rx='[^-\ ]+'
+  local pkgrel_rx='[0-9]+'
+  local garbage_rx='[^0-9].*'
   local capture_rx=${pkgver_rx}
   for (( n_dots=1 ; n_dots < precision ; ++n_dots )) ; do capture_rx+=${subver_rx} ; done ;
-  local version pkgrel subver_inc pkgrel_inc version_min version_max constraint_string
-
-  if   [[ "${full_version}" =~ ^(${capture_rx})(${subver_rx})*-(${pkgrel_rx})$ ]]
-  then version=${BASH_REMATCH[1]}
-       pkgrel=${BASH_REMATCH[3]%%.*}
-       subver_inc=$(( ${version##*.} + 1 )) # NOTE: this right-trims from any non-numeric
+  local version pkgrel has_split_char version_min version_max constraint_string
+  declare -i subver subver_inc pkgrel_inc
+
+  if   [[ "${full_version}" =~ ^(${capture_rx})(${subver_rx})*-(${pkgrel_rx})[^0-9]*$ ]]
+  then version=${BASH_REMATCH[1]} # pkgver cut to the requested precision
+       #unused=${BASH_REMATCH[2]} # discarded pkgver segments
+       pkgrel=${BASH_REMATCH[3]}  # pkgrel with non-numerics right-trimmed
+       has_split_char=$(grep '\.' <<<${version} &> /dev/null ; echo $((! $?)) ; )
+       subver=$(sed "s|${garbage_rx}||" <<<${version##*.}) # right-trim from any non-numeric
+       version=$( ((has_split_char)) && echo ${version%.*}.${subver} || echo ${subver} )
+       subver_inc=$(( subver + 1 ))
        pkgrel_inc=$(( pkgrel + 1 ))
        version_min=$(   (( ! is_prec_valid    )) && echo ${full_version%-*}-${pkgrel} || \
                                                     echo ${version}                      )
@@ -44,17 +52,17 @@ _version_constraint() # (dep_pkgname [precision])
 
 # NOTE: test data versions are extremely brittle - these will need adjustments routinely
 #       usually, these values will be the reported failed 'actual' - `pacman -Syu` first!
-readonly OPENEXR_VER_MIN_PR_1=3                      ; OPENEXR_VER_MAX_PR_1=4 ;
-readonly OPENEXR_VER_MIN_PR_2=3.1                    ; OPENEXR_VER_MAX_PR_2=3.2 ;
-readonly OPENEXR_VER_MIN_PR_3=3.1.9                  ; OPENEXR_VER_MAX_PR_3=3.1.10 ;
-readonly OPENEXR_VER_MIN_FULL=3.1.9-1                ; OPENEXR_VER_MAX_FULL=3.1.9-2 ;
-readonly OPENSHADINGLANGUAGE_VER_MIN_PR_1=1          ; OPENSHADINGLANGUAGE_VER_MAX_PR_1=2 ;
-readonly OPENSHADINGLANGUAGE_VER_MIN_PR_2=1.12       ; OPENSHADINGLANGUAGE_VER_MAX_PR_2=1.13 ;
-readonly OPENSHADINGLANGUAGE_VER_MIN_PR_3=1.12.13     ; OPENSHADINGLANGUAGE_VER_MAX_PR_3=1.12.14 ;
-readonly OPENSHADINGLANGUAGE_VER_MIN_PR_4=1.12.13.0   ; OPENSHADINGLANGUAGE_VER_MAX_PR_4=1.12.13.1 ;
-readonly OPENSHADINGLANGUAGE_VER_MIN_FULL=1.12.13.0-1 ; OPENSHADINGLANGUAGE_VER_MAX_FULL=1.12.13.0-2 ;
-readonly WEBKIT2GTK_VER_MIN=2.40.3-1                 ; WEBKIT2GTK_VER_MAX=2.40.3-2 ;
-readonly QT5BASE_VER_MIN=5.15.10+kde+r130            ; QT5BASE_VER_MAX=5.15.11 ;
+readonly OPENEXR_VER_MIN_PR_1=3
+readonly OPENEXR_VER_MIN_PR_2=3.1
+readonly OPENEXR_VER_MIN_PR_3=3.1.9
+readonly OPENEXR_VER_MIN_FULL=3.1.9-1
+readonly OPENSHADINGLANGUAGE_VER_MIN_PR_1=1
+readonly OPENSHADINGLANGUAGE_VER_MIN_PR_2=1.12
+readonly OPENSHADINGLANGUAGE_VER_MIN_PR_3=1.12.13
+readonly OPENSHADINGLANGUAGE_VER_MIN_PR_4=1.12.13.0
+readonly OPENSHADINGLANGUAGE_VER_MIN_FULL=1.12.13.0-1
+readonly WEBKIT2GTK_VER_MIN_FULL=2.40.3-1
+readonly QT5BASE_VER_MIN_PR_3=5.15.10
 
 readonly RED='\033[01;31m'
 readonly GREEN='\033[00;32m'
@@ -62,17 +70,43 @@ readonly AQUA='\033[00;36m'
 readonly CEND='\033[00m'
 
 
+VerIncrement() # (version_string split_char)
+{
+  # NOTE This is not the same parsing logic as _version_constraint().
+  #      It is intended to be as simple as possible, only for the mock data.
+  #      Do not pass in unconventional version chars, such as '+'.
+  local version_string=$1
+  local split_char=$2
+  local has_split_char=$(grep "\\${split_char}" <<<$1 &> /dev/null ; echo $((! $?)) ; )
+  local unchanged_segment=${version_string%${split_char}*}
+  declare -i incremented_segment=$(( ${version_string##*${split_char}} + 1 ))
+
+  ((! has_split_char)) || echo -n ${unchanged_segment}${split_char}
+  echo ${incremented_segment}
+}
+readonly OPENEXR_VER_MAX_PR_1=$(            VerIncrement ${OPENEXR_VER_MIN_PR_1} '.')
+readonly OPENEXR_VER_MAX_PR_2=$(            VerIncrement ${OPENEXR_VER_MIN_PR_2} '.')
+readonly OPENEXR_VER_MAX_PR_3=$(            VerIncrement ${OPENEXR_VER_MIN_PR_3} '.')
+readonly OPENEXR_VER_MAX_FULL=$(            VerIncrement ${OPENEXR_VER_MIN_FULL} '-')
+readonly OPENSHADINGLANGUAGE_VER_MAX_PR_1=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_PR_1} '.')
+readonly OPENSHADINGLANGUAGE_VER_MAX_PR_2=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_PR_2} '.')
+readonly OPENSHADINGLANGUAGE_VER_MAX_PR_3=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_PR_3} '.')
+readonly OPENSHADINGLANGUAGE_VER_MAX_PR_4=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_PR_4} '.')
+readonly OPENSHADINGLANGUAGE_VER_MAX_FULL=$(VerIncrement ${OPENSHADINGLANGUAGE_VER_MIN_FULL} '-')
+readonly WEBKIT2GTK_VER_MAX_FULL=$(         VerIncrement ${WEBKIT2GTK_VER_MIN_FULL} '-')
+readonly QT5BASE_VER_MAX_PR_3=$(            VerIncrement ${QT5BASE_VER_MIN_PR_3} '.') ;
+
+
 TestVersionConstraint() # ("pkgname" "precision" "expected_res")
 {
   local pkgname="$1"
   local precision="$2"
   local expected_res="$3"
 
-  local actual_res="$(_version_constraint "${pkgname}" "${precision}" 2> /dev/null)"
-# local actual_res="$(_version_constraint "${pkgname}" "${precision}")"
+  local actual_res="$(_version_constraint "${pkgname}" "${precision}")"
 
   if   [[ "${actual_res}" == "${expected_res}" ]]
-  then echo -e "${GREEN}PASS <- ${pkgname}${CEND}"                                     ; return 0 ;
+  then echo -e "${GREEN}PASS <- ${pkgname}${CEND}"                                      ; return 0 ;
   else echo -e "${RED}FAIL <- ${pkgname}${CEND}"
        echo -e "${AQUA}  expected='${expected_res}'\n  actual  ='${actual_res}'${CEND}" ; return 1 ;
   fi
@@ -106,10 +140,10 @@ RunTests()
   TestVersionConstraint 'non-existent-package' "${precision}" ''
 
   precision= ; echo -e "\n=== specific repo ===" ;
-  TestVersionConstraint 'extra/webkit2gtk'     "${precision}" "extra/webkit2gtk>=${WEBKIT2GTK_VER_MIN} extra/webkit2gtk<${WEBKIT2GTK_VER_MAX}"
+  TestVersionConstraint 'extra/webkit2gtk'     "${precision}" "extra/webkit2gtk>=${WEBKIT2GTK_VER_MIN_FULL} extra/webkit2gtk<${WEBKIT2GTK_VER_MAX_FULL}"
 
   precision=3 ; echo -e "\n=== non-numeric version ===" ;
-  TestVersionConstraint 'qt5-base'             "${precision}" "qt5-base>=${QT5BASE_VER_MIN} qt5-base<${QT5BASE_VER_MAX}"
+  TestVersionConstraint 'qt5-base'             "${precision}" "qt5-base>=${QT5BASE_VER_MIN_PR_3} qt5-base<${QT5BASE_VER_MAX_PR_3}"
 }
 
 

From 1b0268275d04c2523808e5b2a2dee903509cc84c Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 14 2023 01:23:48 +0000
Subject: [PATCH 15/32] [prosody-modules]: rename to 'prosody-modules-hg'


---

diff --git a/pcr/prosody-modules-hg/PKGBUILD b/pcr/prosody-modules-hg/PKGBUILD
new file mode 100644
index 0000000..d99fc29
--- /dev/null
+++ b/pcr/prosody-modules-hg/PKGBUILD
@@ -0,0 +1,101 @@
+# Copyright (C) 2022 Wael Karram <wael@waelk.tech>
+# SPDX-License-Identifier: CC0-1.0
+# Maintainer: Wael Karram <wael@waelk.tech>
+
+
+# NOTE: The prosody-modules repository does not version nor make releases;
+#       so we use a date, and pin it to 'prosody' releases for compatibility.
+
+
+pkgname=prosody-modules-hg
+pkgver=20230708
+_prosody_ver=0.12.3
+pkgrel=1
+pkgdesc="Prosody community modules, includes experimental ones."
+arch=('any')
+url="https://modules.prosody.im/"
+license=('MIT')
+depends=(prosody=${_prosody_ver})
+makedepends=('mercurial')
+mksource=(${pkgname}-${pkgver}::hg+https://hg.prosody.im/prosody-modules/#revision=5579)
+source=(https://repo.parabola.nu/other/${pkgname}-libre/${pkgname}-libre-${pkgver}.tar.xz{,.sig})
+mksha1sums=('SKIP')
+sha1sums=('SKIP')
+validpgpkeys=('3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40') # bill-auger
+
+
+mksource() {
+	cd "${srcdir}/${pkgname}-${pkgver}/"
+	# Clean up mercurial files.
+	rm -rf \.hg \.hgtags
+
+	# Seems to download external dependencies, needs inspection.
+	rm -rf mod_admin_web
+
+	# Unmaintained and shouldn't be used.
+	rm -rf mod_auth_external_insecure
+
+	# Connects to AWS.
+	rm -rf mod_aws_profile
+
+	# Depricated, might conflict with built-in module.
+	rm -rf mod_bookmarks
+
+	# Requires modification to prosody core.
+	rm -rf mod_captcha_registrations
+
+	# Unsafe and unmaintained.
+	rm -rf mod_compression_unsafe
+
+	# Relies on conversejs' CDN, free software though.
+	rm -rf mod_conversejs
+
+	# Seems abandoned.
+	rm -rf mod_couchdb
+
+	# Deprecated.
+	rm -rf mod_easy_invite
+
+	# Integrated into core prosody software.
+	rm -rf mod_graceful_shutdown
+
+	# Seems to include unlicensed code.
+	rm -rf mod_pubsub_feeds
+
+	# Relies on github network services.
+	rm -rf mod_pubsub_github
+
+	# relies on twitter network services and API.
+	rm -rf mod_pubsub_twitter
+
+	# Monkeysphere project seems to be defunct.
+	rm -rf mod_s2s_auth_monkeysphere
+
+	# Relies on nonfree network services.
+	rm -rf mod_s2s_auth_posh
+
+	# Relies on nonfree network services.
+	rm -rf mod_sentry
+
+	# relies on nonfree network services.
+	rm -rf mod_slack_webhooks
+
+	# Relies on nonfree network services.
+	rm -rf mod_sms_clickatel
+
+	# Relies on nonfree network services.
+	rm -rf mod_sms_free
+
+	# Relies on nonfree network services.
+	rm -rf mod_tweet_data
+
+	# Relies on nonfree network services and unfinished/unmaintained.
+	rm -rf mod_twitter
+}
+
+package() {
+	# Make sure that the modules path exists.
+	mkdir -p "${pkgdir}/usr/lib/prosody/modules/"
+	# Copy the modules.
+	cp -r "${srcdir}/${pkgname}-${pkgver}/" "${pkgdir}/usr/lib/prosody/modules/"
+}
diff --git a/pcr/prosody-modules/PKGBUILD b/pcr/prosody-modules/PKGBUILD
deleted file mode 100644
index e95ed62..0000000
--- a/pcr/prosody-modules/PKGBUILD
+++ /dev/null
@@ -1,133 +0,0 @@
-# Copyright (C) 2022 Wael Karram <wael@waelk.tech>
-# SPDX-License-Identifier: CC0-1.0
-# Maintainer: Wael Karram <wael@waelk.tech>
-
-
-# NOTE:
-# The prosody-modules repository doesn't have tags that correspond to
-# the prosody releases. So we used the commit right before June 09
-# to correspond to the prosody release.
-#
-# In the prosody source code we have:
-#   $ hg tags | grep "^0.12.1"
-#   0.12.1                         12526:252ed01896dd
-#   $ hg log
-#   [...]
-#   changeset:   12543:cf29bdb74c15
-#   branch:      0.12
-#   parent:      12526:252ed01896dd
-#   user:        Matthew Wild <mwild1@gmail.com>
-#   date:        Thu Jun 09 12:42:57 2022 +0100
-#   summary:     Added tag 0.12.1 for changeset 252ed01896dd
-#   [...]
-#   changeset:   12526:252ed01896dd
-#   branch:      0.12
-#   tag:         0.12.1
-#   user:        Kim Alvefur <zash@zash.se>
-#   date:        Fri May 27 14:45:35 2022 +0200
-#   summary:     mod_smacks: Bounce unhandled stanzas from local origin (fix #1759)
-#   So we used the revision 4959:0989dea9b356
-#   and in prosody-modules we have:
-#   $ hg log
-#   changeset:   4960:59bedf167910
-#   user:        Kim Alvefur <zash@zash.se>
-#   date:        Mon Jun 13 14:25:39 2022 +0200
-#   summary:     mod_muc_ping: Remove since Prosody mod_muc 0.11+ covers this natively
-#
-#   changeset:   4959:0989dea9b356
-#   user:        Kim Alvefur <zash@zash.se>
-#   date:        Sun Jun 05 21:59:17 2022 +0200
-#   summary:     mod_rest: Add various things to openapi spec
-
-
-pkgname=prosody-modules
-pkgver=0.12.3
-pkgrel=1
-pkgdesc="Prosody community modules, includes experimental ones."
-arch=('any')
-url="https://modules.prosody.im/"
-license=('MIT')
-depends=('prosody')
-makedepends=('mercurial')
-mksource=(${pkgname}-${pkgver}::hg+https://hg.prosody.im/prosody-modules/#revision=5579)
-source=(https://repo.parabola.nu/other/${pkgname}-libre/${pkgname}-libre-${pkgver}.tar.xz{,.sig})
-mksha1sums=('SKIP')
-sha1sums=('SKIP')
-validpgpkeys=('3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40') # bill-auger
-
-
-mksource() {
-	cd "${srcdir}/${pkgname}-${pkgver}/"
-	# Clean up mercurial files.
-	rm -rf \.hg \.hgtags
-
-	# Seems to download external dependencies, needs inspection.
-	rm -rf mod_admin_web
-
-	# Unmaintained and shouldn't be used.
-	rm -rf mod_auth_external_insecure
-
-	# Connects to AWS.
-	rm -rf mod_aws_profile
-
-	# Depricated, might conflict with built-in module.
-	rm -rf mod_bookmarks
-
-	# Requires modification to prosody core.
-	rm -rf mod_captcha_registrations
-
-	# Unsafe and unmaintained.
-	rm -rf mod_compression_unsafe
-
-	# Relies on conversejs' CDN, free software though.
-	rm -rf mod_conversejs
-
-	# Seems abandoned.
-	rm -rf mod_couchdb
-
-	# Deprecated.
-	rm -rf mod_easy_invite
-
-	# Integrated into core prosody software.
-	rm -rf mod_graceful_shutdown
-
-	# Seems to include unlicensed code.
-	rm -rf mod_pubsub_feeds
-
-	# Relies on github network services.
-	rm -rf mod_pubsub_github
-
-	# relies on twitter network services and API.
-	rm -rf mod_pubsub_twitter
-
-	# Monkeysphere project seems to be defunct.
-	rm -rf mod_s2s_auth_monkeysphere
-
-	# Relies on nonfree network services.
-	rm -rf mod_s2s_auth_posh
-
-	# Relies on nonfree network services.
-	rm -rf mod_sentry
-
-	# relies on nonfree network services.
-	rm -rf mod_slack_webhooks
-
-	# Relies on nonfree network services.
-	rm -rf mod_sms_clickatel
-
-	# Relies on nonfree network services.
-	rm -rf mod_sms_free
-
-	# Relies on nonfree network services.
-	rm -rf mod_tweet_data
-
-	# Relies on nonfree network services and unfinished/unmaintained.
-	rm -rf mod_twitter
-}
-
-package() {
-	# Make sure that the modules path exists.
-	mkdir -p "${pkgdir}/usr/lib/prosody/modules/"
-	# Copy the modules.
-	cp -r "${srcdir}/${pkgname}-${pkgver}/" "${pkgdir}/usr/lib/prosody/modules/"
-}

From a8ad2a7d3983adc3b70708ac8d7778f2e53d3df3 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 14 2023 01:24:02 +0000
Subject: [PATCH 16/32] [gnustep-back][gnustep-gui]: upgrade to v0.30.0


---

diff --git a/pcr/gnustep-back/PKGBUILD b/pcr/gnustep-back/PKGBUILD
index b112d5d..7f32294 100644
--- a/pcr/gnustep-back/PKGBUILD
+++ b/pcr/gnustep-back/PKGBUILD
@@ -1,27 +1,30 @@
-# $Id: PKGBUILD 266875 2017-11-15 14:29:11Z foutrelis $
-# Maintainer (aur): Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Maintainer (aur): Vesa Kaihlavirta <vegai@iki.fi>
+# Maintainer (aur): <mumei AT airmail DOT cc>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Vesa Kaihlavirta <vegai@iki.fi>
 # Contributor: Sebastian Sareyko <public@nooms.de>
+# Maintainer: bill-auger <bill-auger@programmer.net>
+
+
+# build order: (gnustep-base) <- gnustep-gui <- gnustep-back <- gnustep-netclasses
 
-# parabola changes and rationale:
-#  no changes.
 
 pkgname=gnustep-back
-pkgver=0.26.2
+pkgver=0.30.0
 pkgrel=1
 pkgdesc="The GNUstep GUI Backend"
-arch=('x86_64' 'i686' 'armv7h')
-url="http://www.gnustep.org/"
+arch=(armv7h i686 x86_64)
+url=http://www.gnustep.org/
 license=('LGPL')
 depends=(libgl libxmu gcc-libs freetype2 cairo)
-makedepends=('gnustep-make' 'gnustep-base' 'gnustep-gui' 'libffi' 'gcc-objc')
-conflicts=('gnustep-back-svn')
+depends+=(libgnustep-gui.so)
+makedepends=('gnustep-make' 'gnustep-base' 'gnustep-gui>=0.30.0' 'libffi' 'gcc-objc')
+makedepends=( ${makedepends[*]/gnustep-base/} ) # this is a run-time dependency (also deps of gnustep-gui)
+makedepends=( ${makedepends[*]/gnustep-gui*/} ) # this is a run-time dependency
 groups=('gnustep-core')
-source=(https://github.com/gnustep/libs-back/releases/download/back-${pkgver//./_}/gnustep-back-$pkgver.tar.gz)
-#{,.sig}) # Upstream Signature wasn't correctly created
-sha256sums=('1807306b47f3cdb9f30743b5706d0e618621459ddf6347fad8c838867ed23322')
-#            'SKIP')
-#validpgpkeys=('83AAE47CE829A4146EF83420CA868D4C99149679')
+source=(https://github.com/gnustep/libs-back/releases/download/back-${pkgver//./_}/$pkgname-$pkgver.tar.gz{,.sig})
+sha256sums=('60177d44beebd0216be4aa7eea6cf009cf9ff844bc35f0eacd622bf710372cff'
+            'SKIP')
+validpgpkeys=('83AAE47CE829A4146EF83420CA868D4C99149679')
 
 build() {
   cd "$srcdir"/$pkgname-$pkgver
diff --git a/pcr/gnustep-gui/PKGBUILD b/pcr/gnustep-gui/PKGBUILD
index 3858287..500b407 100644
--- a/pcr/gnustep-gui/PKGBUILD
+++ b/pcr/gnustep-gui/PKGBUILD
@@ -1,31 +1,87 @@
-# $Id$
-# Maintainer (aur): Sergej Pupykin <pupykin.s+arch@gmail.com>
-# Maintainer (aur): Vesa Kaihlavirta <vegai@iki.fi>
+# Maintainer (aur): <mumei AT airmail DOT cc>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Vesa Kaihlavirta <vegai@iki.fi>
 # Contributor: Sebastian Sareyko <public@nooms.de>
+# Maintainer: bill-auger <bill-auger@programmer.net>
+
+
+# build order: (gnustep-base) <- gnustep-gui <- gnustep-back <- gnustep-netclasses
 
-# parabola changes and rationale:
-#  no changes.
 
 pkgname=gnustep-gui
-pkgver=0.26.2
+pkgver=0.30.0
 pkgrel=1
 pkgdesc="The GNUstep GUI class library"
-arch=('x86_64' 'i686' 'armv7h')
-url="http://www.gnustep.org/"
+arch=(armv7h i686 x86_64)
+url=http://www.gnustep.org/
 license=('LGPL')
-depends=('aspell' 'gcc-libs' 'libcups' 'audiofile' 'libsndfile' 'giflib' 'libao')
-makedepends=('gcc-objc' 'gnustep-base' 'gnustep-make')
-conflicts=('gnustep-gui-svn')
+depends=(
+  'gcc-libs'
+  'libjpeg'
+  'libpng'
+  'libtiff'
+)
+makedepends=(
+  'gcc-objc'
+  'gnustep-base'
+  'gnustep-make'
+)
+makedepends=( ${makedepends[*]/gnustep-base/} ) # this is a run-time dependency
+optdepends=(
+  'aspell'
+  'audiofile'
+  'flite1: required for speech synthesis'
+  'giflib'
+  'libao'
+  'libcups'
+  'libsndfile'
+)
+provides=('libgnustep-gui.so')
 groups=('gnustep-core')
 options=('!makeflags')
-source=(https://github.com/gnustep/libs-gui/releases/download/gui-${pkgver//./_}/gnustep-gui-${pkgver}.tar.gz)
-#{,.sig}) # Upstream Signature wasn't correctly created
-sha256sums=('09ab2ac10f4bf98f1254c6c525c752d1f7b13bf0e6cd95530452c504fae7b4db')
-#            'SKIP')
-#validpgpkeys=('83AAE47CE829A4146EF83420CA868D4C99149679')
+source=(https://github.com/gnustep/libs-gui/releases/download/gui-${pkgver//./_}/$pkgname-$pkgver.tar.gz{,.sig})
+sha256sums=('469dcaa54ed05b2520a704c30c0761a75b3ade8428e2e64645fb7b38a15c3cc3'
+            'SKIP')
+validpgpkeys=('83AAE47CE829A4146EF83420CA868D4C99149679')
 
-prepare() {
-  cd "$srcdir"/$pkgname-$pkgver
+
+_version_constraint() # (dep_pkgname [precision])
+{
+  Log() { [[ "${FUNCNAME[2]}" == package ]] && echo "$@" >&2 || : ; }
+
+
+  local dep_pkgname=$1
+  declare -i req_precision=$2
+  local full_version=$(pacman -S --print-format='%v' ${dep_pkgname} | tail -n 1)
+  local n_dots=$(tmp=${full_version%-*} ; tmp=${tmp//[^\.]} ; echo "${#tmp}" ;)
+  local def_precision=$(( n_dots + 1 ))
+  local is_prec_valid=$(( req_precision > 0 && req_precision <= def_precision ))
+  local precision=$( (( is_prec_valid )) && echo ${req_precision} || echo ${def_precision} )
+  local pkgver_rx='[^-\.\ ]+'
+  local subver_rx='\.'${pkgver_rx}
+  local pkgrel_rx='[^-\ ]+'
+  local capture_rx=${pkgver_rx}
+  for (( n_dots=1 ; n_dots < precision ; ++n_dots )) ; do capture_rx+=${subver_rx} ; done ;
+  local version pkgrel subver_inc pkgrel_inc version_min version_max constraint_string
+
+  if   [[ "${full_version}" =~ ^(${capture_rx})(${subver_rx})*-(${pkgrel_rx})$ ]]
+  then version=${BASH_REMATCH[1]}
+       pkgrel=${BASH_REMATCH[3]%%.*}
+       subver_inc=$(( ${version##*.} + 1 ))
+       pkgrel_inc=$(( pkgrel + 1 ))
+       version_min=$(   (( ! is_prec_valid    )) && echo ${full_version%-*}-${pkgrel} || \
+                                                    echo ${version}                      )
+       version_max=$( ( (( ! is_prec_valid    )) && echo ${full_version%-*}-${pkgrel_inc} ) || \
+                      ( [[ "${version}" =~ \. ]] && echo ${version%.*}.${subver_inc}      ) || \
+                                                    echo ${subver_inc}                         )
+       constraint_string="${dep_pkgname}>=${version_min} ${dep_pkgname}<${version_max}"
+
+       Log "Applied version constraint: '${constraint_string}'"
+  else Log "ERROR: in _version_constraint() parsing: dep_pkgname='${dep_pkgname}' full_version='${full_version}'"
+       exit 1
+  fi
+
+  echo -n "${constraint_string}"
 }
 
 build() {
@@ -36,6 +92,8 @@ build() {
 }
 
 package() {
+  depends+=( $(_version_constraint gnustep-base 2) )
+
   cd "$srcdir"/$pkgname-$pkgver
   make DESTDIR="$pkgdir" install
 }

From 4c2b97f0f372552380ca29d07f6b4fa2846c2e7f Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 14 2023 01:24:14 +0000
Subject: [PATCH 17/32] [talksoup][gnustep-netclasses]: add packages


---

diff --git a/pcr/gnustep-netclasses/PKGBUILD b/pcr/gnustep-netclasses/PKGBUILD
new file mode 100644
index 0000000..031bf4e
--- /dev/null
+++ b/pcr/gnustep-netclasses/PKGBUILD
@@ -0,0 +1,38 @@
+# Copyright 2023 bill-auger <bill-auger@programmer.net>
+# SPDX-License-Identifier: CC0-1.0
+# Maintainer: bill-auger <bill-auger@programmer.net>
+
+
+# build order: (gnustep-base) <- gnustep-gui <- gnustep-back <- gnustep-netclasses
+
+
+pkgname=gnustep-netclasses
+_upstream_name=netclasses
+pkgrel=1
+pkgver=1.1.0
+pkgdesc="Networking framework for GNUstep"
+arch=(armv7h i686 x86_64)
+url=http://gap.nongnu.org/talksoup/index.html
+license=(GPL2)
+depends=(gnustep-back)
+makedepends=(gcc-objc gnustep-make)
+source=(http://savannah.nongnu.org/download/gap/${_upstream_name}-${pkgver}.tar.gz)
+sha256sums=(d7d783c5b85abb289ef2fbb4bbf709eacb631e6ddf5a78e26fa45b94fb717f40)
+
+
+build()
+{
+  cd ${_upstream_name}-${pkgver}
+
+  export GNUSTEP_MAKEFILES=$(gnustep-config --variable=GNUSTEP_MAKEFILES)
+
+  ./configure
+  make
+}
+
+package()
+{
+  cd ${_upstream_name}-${pkgver}
+
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/pcr/talksoup/PKGBUILD b/pcr/talksoup/PKGBUILD
new file mode 100644
index 0000000..9347eb1
--- /dev/null
+++ b/pcr/talksoup/PKGBUILD
@@ -0,0 +1,41 @@
+# Copyright 2023 bill-auger <bill-auger@programmer.net>
+# SPDX-License-Identifier: CC0-1.0
+# Maintainer: bill-auger <bill-auger@programmer.net>
+
+
+pkgname=talksoup
+_upstream_name=TalkSoup
+pkgrel=1
+pkgver=1.1
+pkgdesc="IRC client for GNUstep"
+arch=(armv7h i686 x86_64)
+url=http://gap.nongnu.org/talksoup/index.html
+license=(GPL2)
+depends=(gnustep-netclasses)
+makedepends=(gcc-objc gnustep-make)
+source=(http://savannah.nongnu.org/download/gap/${_upstream_name}-${pkgver}.tar.gz)
+sha256sums=(3a469c66ce3067a88603d6ebae6f63fbcfad55586dd5455179887f28e5a63ae7)
+
+
+build()
+{
+  cd ${_upstream_name}-${pkgver}
+
+  export GNUSTEP_MAKEFILES=$(gnustep-config --variable=GNUSTEP_MAKEFILES)
+
+  make
+}
+
+package()
+{
+  cd ${_upstream_name}-${pkgver}
+
+  make DESTDIR="${pkgdir}" install
+
+  cd "${pkgdir}"/usr/lib/GNUstep/Applications/${_upstream_name}.app/Resources/
+
+  # install.desktop file to the standard system location
+  install -d "${pkgdir}"/usr/share/applications
+  sed -i 's|^Categories=X-GNUstep;|&Network;Chat;IRCClient;|' ${_upstream_name}.desktop
+  mv ${_upstream_name}.desktop "${pkgdir}"/usr/share/applications/${pkgname}.desktop
+}

From a4316038f7b83d67ce4139d2d086e9682406acb0 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 14 2023 01:24:26 +0000
Subject: [PATCH 18/32] [iceweasel]: upgrade to v115.0.2


---

diff --git a/libre/iceweasel/PKGBUILD b/libre/iceweasel/PKGBUILD
index 5296a4e..4a17b1b 100644
--- a/libre/iceweasel/PKGBUILD
+++ b/libre/iceweasel/PKGBUILD
@@ -70,7 +70,7 @@
 
 pkgname=iceweasel
 epoch=1
-pkgver=115.0
+pkgver=115.0.2
 pkgrel=1
 pkgrel+=.parabola1
 _brandingver=115.0
@@ -179,7 +179,7 @@ validpgpkeys+=(
   'BFA8008A8265677063B11BF47171986E4B745536' # Andreas Grapentin
   '3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40' # bill-auger
 )
-sha256sums=('7cdb23fe5ccb54334c8fe14c1e5dd89d5788f8e7b79a2bd9cc4eabdc7e54e898'
+sha256sums=('6b2844124c13b4bd9d97ac7f5840f3e957b7631659591f3bea1ac9a89bee1654'
             'SKIP'
             '9cdc2602661717712092d28bb494e5b48e518cb930898aca85eaf21f91f7ef58')
 sha256sums+=('b701b4c47fca2661feeabe172e398c76c8015ee08ff4cc3cc2f7c3ef2ed692a7'
@@ -197,7 +197,7 @@ sha256sums_i686=('2f0c81a38c4578f68f5456b618fe84a78974072821488173eb55e0e72287e3
                  'ed3bb281697af7c4353a34067ffb4b18a971d40757bef2d6af3c8bf2d28d42d1'
                  '2fb39374fd3d80eea9e346032a2a4b2bc2e357dee7380855b24bcf19b1335d06'
                  'c3ce181fbb0142055aa6dd17f3cda2ba6a1e54d7a689a8c6e9cce76aa40e6544')
-b2sums=('f5489d96be60f3ed5f5657cb43142a876a7ef2bfe46b2ebb54df2b9be8262ab8c8d3aa342adf84fa68ffe0abc63e3b4671f310e0a3dd4c53c137a612e9e67932'
+b2sums=('ca602d102f2b7b7fc7bebb6ca4b21e548d4542727da94410497ad6774b6dc7a9eba778c9b6e269beabdbf647e3447f621103cb68fbcac77c4beca1829cbfc535'
         'SKIP'
         'f86353bbba05d8994db34c6abb66094aa61d2c37c8599930dbe9d215413f0f718a1ce55a8f2d07a65074c3947e28fc80d44c925bd9be239a870f82d2a1803635')
 b2sums+=('a22044292e464b3922eb2e4a8cf0993524d232eeb4a8602707589d00f690498d3b76e515c8d0ce4995b3bf8a65df9aa814b49de469178aa1f8cc07ec19dd5d32'

From 8be68f7544456eb73ae9784bb513ca38fc7f53ca Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 14 2023 01:50:37 +0000
Subject: [PATCH 19/32] [scripts/version_constraint.sh]: bugfix capture regex


---

diff --git a/scripts/version_constraint.sh b/scripts/version_constraint.sh
index d124d9d..35272b2 100755
--- a/scripts/version_constraint.sh
+++ b/scripts/version_constraint.sh
@@ -23,7 +23,7 @@ _version_constraint() # (dep_pkgname [precision])
   local version pkgrel has_split_char version_min version_max constraint_string
   declare -i subver subver_inc pkgrel_inc
 
-  if   [[ "${full_version}" =~ ^(${capture_rx})(${subver_rx})*-(${pkgrel_rx})[^0-9]*$ ]]
+  if   [[ "${full_version}" =~ ^(${capture_rx})(${subver_rx})*-(${pkgrel_rx}).*$ ]]
   then version=${BASH_REMATCH[1]} # pkgver cut to the requested precision
        #unused=${BASH_REMATCH[2]} # discarded pkgver segments
        pkgrel=${BASH_REMATCH[3]}  # pkgrel with non-numerics right-trimmed

From 0b9e335b523526b28806eed8f49f11f03eecee61 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 16 2023 05:27:50 +0000
Subject: [PATCH 20/32] [linux-libre-vanilla]: update checksum


---

diff --git a/libre/linux-libre-vanilla/PKGBUILD b/libre/linux-libre-vanilla/PKGBUILD
index b14f5e1..a127abb 100644
--- a/libre/linux-libre-vanilla/PKGBUILD
+++ b/libre/linux-libre-vanilla/PKGBUILD
@@ -50,7 +50,7 @@ source_i686=(no-ultra-zstd.patch)
 validpgpkeys=(
   '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva
 )
-sha512sums=('6ccdf0621be8e207e37f4920b95df3617f5122fcf7ee61dbf39e5fda8e087c0c203cab5e53b6075e8151ed6c8789e9da2d370ee73f94f5f5a37b57cef3c4d84c'
+sha512sums=('ddfc752deff7a4c413b88eb33eb66731132684d1a1e34079ae905811c24b9cf0b52e0f23b2662fc4ada6a3cca1f85a755585aeb0df8e0e87f8766c474d228141'
             'SKIP'
             '13cb5bc42542e7b8bb104d5f68253f6609e463b6799800418af33eb0272cc269aaa36163c3e6f0aacbdaaa1d05e2827a4a7c4a08a029238439ed08b89c564bb3'
             'SKIP'

From e978d79571aff20d9ee2d462d41b4b985e419d17 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 16 2023 05:28:05 +0000
Subject: [PATCH 21/32] [udev]: WIP - upgrade to v252.5


---

diff --git a/nonsystemd/udev/PKGBUILD b/nonsystemd/udev/PKGBUILD
index 17d4874..57be5c7 100644
--- a/nonsystemd/udev/PKGBUILD
+++ b/nonsystemd/udev/PKGBUILD
@@ -280,7 +280,7 @@ package_libudev() {
     pkgdesc='udev library for enumerating and introspecting local devices'
     depends=('gcc-libs')
     provides=('libudev.so')
-    provides+=(''libeudev')
+    provides+=('libeudev')
     replaces=('libeudev')
 
     meson install -C build --destdir "$pkgdir" --no-rebuild --tags libudev

From ed5001bafc03faffcc247ed7529343513f2f6782 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 16 2023 05:28:22 +0000
Subject: [PATCH 22/32] [udev]: upgrade to v253.6


---

diff --git a/nonsystemd/udev/PKGBUILD b/nonsystemd/udev/PKGBUILD
index 57be5c7..4928120 100644
--- a/nonsystemd/udev/PKGBUILD
+++ b/nonsystemd/udev/PKGBUILD
@@ -9,22 +9,23 @@ _pkgbase=systemd-stable
 pkgbase=udev
 pkgname=('udev' 'libudev' 'esysusers' 'etmpfiles')
 pkgdesc='Userspace device file manager'
-_tag='b16ce4c7ab80665b65345ea030c51a5c758fe66b' # git rev-parse v${_tag_name}
-_tag_name=252.5
+_tag='c017ed867787d09484ba7de75a8f025820596955' # git rev-parse v${_tag_name}
+_tag_name=253.6
 pkgver="${_tag_name/-/}"
 pkgrel=1
 arch=('x86_64')
-arch+=('i686' 'armv7h')
+arch+=('armv7h' 'i686')
 url='https://www.github.com/systemd/systemd'
 license=('GPL2' 'LGPL2.1')
-makedepends=('acl' 'kmod' 'util-linux' 'hwdata' 'libcap' 'kbd' 'gperf'
-            'intltool' 'git' 'meson' 'docbook-xsl' 'rsync' 'python-jinja')
+makedepends=('acl' 'libacl.so' 'gperf' 'hwdata' 'kbd' 'kmod' 'libkmod.so'
+            'libcap' 'libcap.so' 'libxcrypt' 'libcrypt.so' 'util-linux' 'libblkid.so'
+            'docbook-xsl' 'git' 'intltool' 'meson' 'python-jinja' 'rsync')
 options=('strip')
 validpgpkeys=('63CDA1E5D3FC22B998D20DD6327F26951A015CC4'  # Lennart Poettering <lennart@poettering.net>
               'A9EA9081724FFAE0484C35A1A81CEA22BC8C7E2E'  # Luca Boccassi <luca.boccassi@gmail.com>
               '9A774DB5DB996C154EBBFBFDA0099A18E29326E1'  # Yu Watanabe <watanabe.yu+github@gmail.com>
               '5C251B5FC54EB2F80F407AAAC54CA336CFEB557E') # Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
-_alpm=57bcc7fee22d75df96fd546ee7215166cdfb1233
+_alpm=4ace40eddd2db821ff0e410e09e4e99a98dca559
 source=("git+https://github.com/systemd/systemd-stable#tag=${_tag}" #?signed
         "git+https://github.com/systemd/systemd#tag=v${_tag_name%.*}" #?signed
         '0001-Use-Arch-Linux-device-access-groups.patch'
@@ -32,16 +33,18 @@ source=("git+https://github.com/systemd/systemd-stable#tag=${_tag}" #?signed
         "git+https://gitea.artixlinux.org/artix/alpm-hooks.git#commit=${_alpm}"
         meson-install-tags.patch
         meson-artix.patch
-        udev-log-msg.patch)
+        udev-log-msg.patch
+        legacy.conf)
 sha512sums=('SKIP'
             'SKIP'
             'f26db75129f1f9a7b7235d77e4ec490864fa0a203431f515873443b227da3db7034d8d81f7974f23fc6fbeaa91727244ac8ab82762f02e87fb92ea19a6bd931f'
             '32606b42856b5f3ea7f485143e532671f58986237e14c58ea5ab17383dc39a375cb6c738c8a2db9e4a8c8be88ea44a876d6bbed129cb2f5c9aa3f8228b04d927'
             '38eed28d42ac8f70bc8d1058ace35f137f7f5c972442ee14b98c2146202e0615aa584304edbd59e8608d1b6bec3cb391fc69b25393740f6eabd8fc5ad3bde64f'
             'SKIP'
-            'e936a4b245400140d2cb4ed250fe23639bc3aaf81fb958b9b10dc1ff5aeb094f37b657e044bf35e832fd4a69dccea5b19ef45d20852ce3aa49325ae2e59d8f51'
+            'e7412ffe57bcbdfdf6e63caa36726a735eaf99c533613218e11dfc3c63912bcb0d713327eb8492ae91e2635e8923e68e552a559d980bc29517f75c711f2b5d71'
             'a26003ddcac5a83ec1fec040b36ff46816869028dc79aebb2646f9f2ed090e6358601f911c9d6a04b426c7f3367595e12716e411fca34ffce59d718b067e4e5c'
-            '268817ee63ca0b03d2a10bb952837052c1fa80a5d2f0fe933d2aa3d61a09d286f188a6358107114964930fcef7057392f9520f875a83f6e265d2f4bc2564c26e')
+            '268817ee63ca0b03d2a10bb952837052c1fa80a5d2f0fe933d2aa3d61a09d286f188a6358107114964930fcef7057392f9520f875a83f6e265d2f4bc2564c26e'
+            '0d3183b2088fa645fd760240f8dae87f03d0d505c7eda8f91f9c16a872eb18578b72110e028cb4f5407256dc4449332a0b31eac44240b179439ee1be655e4d71')
 
 _backports=(
 )
@@ -178,7 +181,7 @@ build() {
         -Dzlib=false
         -Dzstd=false
     )
-    artix-meson "$_pkgbase" build "${_meson_options[@]}"
+    arch-meson "$_pkgbase" build "${_meson_options[@]}"
 
     local _targets=()
     _targets+=(
@@ -253,17 +256,17 @@ _inst_man_utils() {
 
 package_udev() {
     pkgdesc='Userspace device file manager'
-    depends=('acl' 'libacl.so' 'kmod' 'libkmod.so'
-            'util-linux' 'libblkid.so' 'libudev' 'hwdata' 'kbd')
+    depends=('glibc' 'gcc-libs' 'acl' 'libacl.so' 'bash' 'hwdata' 'kbd' 'kmod' 'libkmod.so'
+            'libcap' 'libcap.so' 'libudev' 'util-linux' 'libblkid.so')
     provides=("udev=$pkgver")
     provides+=('eudev')
     replaces=('eudev')
 
-    meson install -C build --destdir "$pkgdir" --no-rebuild --tags udev,udev-devel,libudev-devel
+    meson install -C build --destdir "$pkgdir" --no-rebuild --tags udev,udev-devel
 
     mv -v  "${pkgdir}"/usr/bin/systemd-hwdb "${pkgdir}"/usr/bin/udev-hwdb
 
-    for m in libudev.3 udev.conf.5 udev.7 udevadm.8; do
+    for m in udev.conf.5 udev.7 udevadm.8; do
         _inst_man_udev "$m"
     done
     _inst_doc
@@ -278,18 +281,19 @@ package_udev() {
 
 package_libudev() {
     pkgdesc='udev library for enumerating and introspecting local devices'
-    depends=('gcc-libs')
+    depends=('gcc-libs' 'glibc' 'libcap' 'libcap.so')
     provides=('libudev.so')
     provides+=('libeudev')
-    replaces=('libeudev')
+    replaces=('eudev-libudev' 'libeudev')
 
-    meson install -C build --destdir "$pkgdir" --no-rebuild --tags libudev
+    meson install -C build --destdir "$pkgdir" --no-rebuild --tags libudev,libudev-devel
+
+    _inst_man_udev "libudev.3"
 }
 
 package_esysusers() {
     pkgdesc='the sysusers.d binary'
-    groups=('base-devel')
-    depends=('gcc-libs' 'libxcrypt')
+    depends=('glibc' 'gcc-libs' 'libxcrypt' 'libcrypt.so' 'libcap' 'libcap.so')
 
     meson install -C build --destdir "$pkgdir" --no-rebuild --tags sysusers
 
@@ -304,8 +308,7 @@ package_esysusers() {
 
 package_etmpfiles() {
     pkgdesc='the tmpfiles.d binary'
-    groups=('base-devel')
-    depends=('acl' 'libacl.so' 'libcap' 'libcap.so')
+    depends=('glibc' 'gcc-libs' 'acl' 'libacl.so' 'libcap' 'libcap.so')
 
     meson install -C build --destdir "$pkgdir" --no-rebuild --tags tmpfiles
 
@@ -314,6 +317,8 @@ package_etmpfiles() {
     _inst_man_utils tmpfiles
     _inst_doc
 
+    install -m644 ${srcdir}/legacy.conf "$pkgdir"/usr/lib/tmpfiles.d/legacy.conf
+
     # pacman hooks
     make -C alpm-hooks DESTDIR="${pkgdir}" install_tmpfiles
 }
diff --git a/nonsystemd/udev/legacy.conf b/nonsystemd/udev/legacy.conf
new file mode 100644
index 0000000..523a1d1
--- /dev/null
+++ b/nonsystemd/udev/legacy.conf
@@ -0,0 +1,7 @@
+# See tmpfiles.d(5) for details
+
+# These files are considered legacy and are unnecessary on legacy-free
+# systems.
+
+d /run/lock 0755 root root -
+L /var/lock - - - - ../run/lock
diff --git a/nonsystemd/udev/meson-install-tags.patch b/nonsystemd/udev/meson-install-tags.patch
index b928294..8315ca2 100644
--- a/nonsystemd/udev/meson-install-tags.patch
+++ b/nonsystemd/udev/meson-install-tags.patch
@@ -184,7 +184,7 @@ index 92d54078f0..6795f33e6a 100644
 +        install_data(
 +                libudev_h_path,
 +                install_dir: includedir,
-+                install_tag: 'udev-devel')
++                install_tag: 'libudev-devel')
 +endif
 +
  libudev_basic = static_library(

From a10bfce3e0d570d7a541d4d7974b311d7fce0c52 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 16 2023 05:28:39 +0000
Subject: [PATCH 23/32] [kio]: upgrade to v5.108.0


---

diff --git a/nonprism/kio/PKGBUILD b/nonprism/kio/PKGBUILD
index 0653c89..48df780 100644
--- a/nonprism/kio/PKGBUILD
+++ b/nonprism/kio/PKGBUILD
@@ -15,7 +15,7 @@
 
 
 pkgname=kio
-pkgver=5.107.0
+pkgver=5.108.0
 pkgrel=1
 pkgrel+=.parabola1
 _pkgver_i686=5.105.0
@@ -43,7 +43,7 @@ source+=(duckduckgo_html.desktop
          parabola-wiki.desktop
          searx.desktop
          yacy.desktop)
-sha256sums=('456a1856830c21e9a61181c22c0e14510ad6a4498da0684afc05761142ac48ae'
+sha256sums=('42044674b206c79bf8c9a40a91c7eaf754fff473d7b13fdb6efc160d92bcabec'
             'SKIP')
 sha256sums+=('31910ab7393e67609f15e04a57f6406f63e6dae58b01bce0787741bc5958f292'
              '40466a9dad7075f2525e9e024720da7d7b49a22892b6fca8b81cc0e6408d2f7d'

From 2cf4d1b9f2320814deb65f5e51fb22cc12cd9df8 Mon Sep 17 00:00:00 2001
From: Wael Karram <wael@waelk.tech>
Date: Jul 16 2023 05:28:51 +0000
Subject: [PATCH 24/32] Updated PHC-Intel to revision 45.


---

diff --git a/pcr/phc-intel/PKGBUILD b/pcr/phc-intel/PKGBUILD
index a697c42..b5046c3 100644
--- a/pcr/phc-intel/PKGBUILD
+++ b/pcr/phc-intel/PKGBUILD
@@ -12,7 +12,7 @@
 
 pkgname=phc-intel
 _phcver=0.3.2
-_upstream_ver=rev44
+_upstream_ver=rev45
 pkgver=$_phcver.$_upstream_ver
 pkgrel=1
 pkgdesc="Frequency driver for Intel CPUs with undervolting feature"
@@ -27,7 +27,7 @@ backup=('etc/default/phc-intel')
 _commit_hash=$_upstream_ver # use tag revNN (see https://gitlab.com/linux-phc/phc-intel/-/tags)
 source=("https://gitlab.com/linux-phc/phc-intel/-/archive/$_commit_hash/phc-intel-$_commit_hash.tar.gz"
         phc-intel.{default,sh,sleep,system-sleep} dkms.conf)
-sha256sums=('94e579e8564c2e4d9e4b926ed0328971926fa8e613b2fcf39ab8d9a3d6be0764'
+sha256sums=('f27fa7dece7c3ca7c81d08500878cac803f412dc1d6e76a05621ab72c82dfa17'
             'ce08a5a4107be1d5723f1f169d515e67b6c77893f3994fc2d0d2ccf611307ed3'
             'b526f3e8e66f6495531f13f2e6867d3a07b2ec7a7c3b8aa061f22be1cd6e770f'
             '569b85988cb38380fec85c25688b76abc24a46601aa8f58eb24eaebf863eebef'

From 1071529540c9961c34a8eed98deb4d547ee8b5b9 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 16 2023 05:29:09 +0000
Subject: [PATCH 25/32] [phc-intel]: rename to phc-intel-dkms - housekeeping changes (recipe upstream abandoned)


---

diff --git a/pcr/phc-intel-dkms/PKGBUILD b/pcr/phc-intel-dkms/PKGBUILD
new file mode 100644
index 0000000..2e747f8
--- /dev/null
+++ b/pcr/phc-intel-dkms/PKGBUILD
@@ -0,0 +1,65 @@
+# Contributor: adrien1018 <adrien.sf.wu[at]gmail[dot]com>
+# Contributor: fs4000 <matthias_dienstbier[at]yahoo[dot]de>
+# Contributor: trapanator <trap[at]trapanator[dot]com>
+# Contributor: tomprogrammer <Thomas-Bahn[at]gmx[dot]net>
+# Maintainer: Wael Karram <wael@waelk.tech>
+
+
+# parabola changes and rationale:
+#  - use VCS tag instead of arbitrary commit
+#  - use upstream revision as $pkgver - upstream version is hyper-stable
+
+
+pkgname=phc-intel-dkms
+_upstream_name=phc-intel
+_upstream_ver=0.3.2
+_upstream_rev=rev45 # use tag revNN (see https://gitlab.com/linux-phc/phc-intel/-/tags)
+pkgver=$_upstream_ver.$_upstream_rev
+pkgrel=1
+pkgdesc="Frequency driver for Intel CPUs with undervolting feature"
+pkgdesc+=", (for Core/Core2 systems)"
+url="https://gitlab.com/linux-phc/phc-intel"
+arch=('x86_64' 'i686') # could be 'any'; but avoid publishing to non-x86 repos
+license=('GPL')
+depends=('dkms')
+replaces=('phc-intel')
+backup=('etc/default/phc-intel')
+source=("https://gitlab.com/linux-phc/phc-intel/-/archive/$_upstream_rev/$_upstream_name-$_upstream_rev.tar.gz"
+        dkms.conf.in
+        phc-intel.default
+        phc-intel.sh
+        phc-intel.sleep
+        phc-intel.system-sleep)
+sha256sums=('f27fa7dece7c3ca7c81d08500878cac803f412dc1d6e76a05621ab72c82dfa17'
+            '2a5a6df46556687125f2082bff2f98c5941ebe98928c491458348c1174622e04'
+            'ce08a5a4107be1d5723f1f169d515e67b6c77893f3994fc2d0d2ccf611307ed3'
+            'b526f3e8e66f6495531f13f2e6867d3a07b2ec7a7c3b8aa061f22be1cd6e770f'
+            '569b85988cb38380fec85c25688b76abc24a46601aa8f58eb24eaebf863eebef'
+            '2e17c90d7bfae8f5070e46388e95d443188eaa7beb5ffdd418a0da090f2e7557')
+
+
+prepare()
+{
+  # inject version into dkms.conf
+  sed "s|@VERSION@|$pkgver|" dkms.conf.in > dkms.conf
+
+  cd $_upstream_name-$_upstream_rev
+
+  # initialize upon load?
+  # TODO: what does this do?
+  sed -i 's|/sbin/modprobe phc-intel |&\&\& /usr/bin/phc-intel set |' phc-intel.modprobe
+}
+
+package()
+{
+  umask 022
+  install -Dm644 dkms.conf "$pkgdir/usr/src/phc-intel-$_upstream_ver/dkms.conf"
+  install -Dm644 phc-intel.default "$pkgdir/etc/default/phc-intel"
+  install -Dm755 phc-intel.sh "$pkgdir/usr/bin/phc-intel"
+  install -Dm755 phc-intel.sleep "$pkgdir/usr/lib/pm-utils/sleep.d/00phc-intel"
+  install -Dm755 phc-intel.system-sleep "$pkgdir/usr/lib/systemd/system-sleep/phc-intel"
+
+  cd $_upstream_name-$_upstream_rev
+  install -Dm644 phc-intel.modprobe "$pkgdir/usr/lib/modprobe.d/phc-intel.conf"
+  cp -R inc Makefile "$pkgdir/usr/src/phc-intel-$_upstream_ver/"
+}
diff --git a/pcr/phc-intel-dkms/dkms.conf.in b/pcr/phc-intel-dkms/dkms.conf.in
new file mode 100644
index 0000000..a97befb
--- /dev/null
+++ b/pcr/phc-intel-dkms/dkms.conf.in
@@ -0,0 +1,7 @@
+PACKAGE_NAME="phc-intel"
+PACKAGE_VERSION=@VERSION@
+AUTOINSTALL="yes"
+
+BUILT_MODULE_NAME[0]="phc-intel"
+DEST_MODULE_LOCATION[0]="/extra"
+MAKE[0]="make KERNELSRC=$kernel_source_dir"
diff --git a/pcr/phc-intel-dkms/phc-intel.default b/pcr/phc-intel-dkms/phc-intel.default
new file mode 100644
index 0000000..4e390e7
--- /dev/null
+++ b/pcr/phc-intel-dkms/phc-intel.default
@@ -0,0 +1,4 @@
+# configuration for phc-intel
+
+# voltage IDs to be set for all CPUs
+VIDS=""
diff --git a/pcr/phc-intel-dkms/phc-intel.install b/pcr/phc-intel-dkms/phc-intel.install
new file mode 100644
index 0000000..fb69a8b
--- /dev/null
+++ b/pcr/phc-intel-dkms/phc-intel.install
@@ -0,0 +1,32 @@
+post_install() {
+	cat <<-EOF
+		You can enter the desired voltage IDs in /etc/default/phc-intel.
+		Booting with nophc kernel parameter skips setting of VIDs in case of failure.
+	EOF
+}
+
+pre_upgrade() {
+	if (( "$(vercmp $2 0.3.2.12.19-2)" < 0 )); then
+		cd usr/lib/modules/
+		for i in *; do
+			if [ -f "$i/extramodules/phc-intel.ko" ]; then
+				rm -f "$i/extramodules/phc-intel.ko"
+				[ -d "$i/kernel" ] && depmod "$i"
+			elif [ -f "$i/phc-intel.ko" ]; then
+				rm -f "$i/phc-intel.ko"
+				rmdir -p --ignore-fail-on-non-empty "$i"
+			elif [ -f "$i/extra/phc-intel.ko" ]; then
+				rm -f "$i/extra/phc-intel.ko"
+				rmdir -p --ignore-fail-on-non-empty "$i/extra"
+				[ -d "$i/kernel" ] && depmod "$i"
+			fi
+		done
+	fi
+}
+
+post_upgrade() {
+	if (( "$(vercmp $2 0.3.2.12.19-2)" < 0 )); then
+		rm -rf usr/src/phc-intel/
+		echo '===> The kernel module gets automatically built by DKMS now.'
+	fi
+}
diff --git a/pcr/phc-intel-dkms/phc-intel.sh b/pcr/phc-intel-dkms/phc-intel.sh
new file mode 100644
index 0000000..cce4bf9
--- /dev/null
+++ b/pcr/phc-intel-dkms/phc-intel.sh
@@ -0,0 +1,55 @@
+#!/bin/bash -e
+shopt -s nullglob
+
+case "$1" in
+start)
+	. /etc/default/phc-intel
+	if [ -z "$VIDS" ]; then
+		echo '=> Please edit /etc/default/phc-intel'
+		exit 1
+	fi
+	echo ':: Setting PHC VIDs'
+	for i in /sys/devices/system/cpu/cpu*/cpufreq/phc_vids; do
+		echo $VIDS > "$i"
+	done
+	;;
+stop)
+	echo ':: Resetting default PHC VIDs'
+	for i in /sys/devices/system/cpu/cpu*/cpufreq/phc_vids; do
+		cp "${i%vids}default_vids" "$i"
+	done
+	;;
+status)
+	check_off () {
+		for i in /sys/devices/system/cpu/cpu*/cpufreq/phc_vids; do
+			[ "$(< "$i")" = "$(< "${i%vids}default_vids")" ] || return;
+		done
+	}
+	check_on () {
+		for i in /sys/devices/system/cpu/cpu*/cpufreq/phc_vids; do
+			[[ "$(< "$i")" =~ "$VIDS" ]] || return;
+		done
+	}
+	echo -n 'PHC status: '
+	. /etc/default/phc-intel
+	if check_off; then
+		echo 'inactive'
+	elif check_on; then
+		echo 'active'
+	else
+		echo 'unknown'
+	fi
+	;;
+set)
+	. /etc/default/phc-intel
+	[ -z "$VIDS" ] && exit
+	for i in $(< /proc/cmdline); do
+		[ $i = nophc ] && exit
+	done
+	for i in /sys/devices/system/cpu/cpu*/cpufreq/phc_vids; do
+		echo $VIDS > "$i"
+	done
+	;;
+*)
+	echo "usage: $0 {start|stop|status|set}"
+esac
diff --git a/pcr/phc-intel-dkms/phc-intel.sleep b/pcr/phc-intel-dkms/phc-intel.sleep
new file mode 100644
index 0000000..342b81a
--- /dev/null
+++ b/pcr/phc-intel-dkms/phc-intel.sleep
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+case $1 in
+	resume|thaw)
+		. /usr/bin/phc-intel set
+		;;
+esac
diff --git a/pcr/phc-intel-dkms/phc-intel.system-sleep b/pcr/phc-intel-dkms/phc-intel.system-sleep
new file mode 100644
index 0000000..c76ea6a
--- /dev/null
+++ b/pcr/phc-intel-dkms/phc-intel.system-sleep
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+if [ "$1" = post ]; then
+	. /usr/bin/phc-intel set
+fi
diff --git a/pcr/phc-intel/PKGBUILD b/pcr/phc-intel/PKGBUILD
deleted file mode 100644
index b5046c3..0000000
--- a/pcr/phc-intel/PKGBUILD
+++ /dev/null
@@ -1,53 +0,0 @@
-# Maintainer (aur): adrien1018 <adrien.sf.wu[at]gmail[dot]com>
-# Contributor: fs4000 <matthias_dienstbier[at]yahoo[dot]de>
-# Contributor: trapanator <trap[at]trapanator[dot]com>
-# Contributor: tomprogrammer <Thomas-Bahn[at]gmx[dot]net>
-# Maintainer: Wael Karram <wael@waelk.tech>
-
-
-# parabola changes and rationale:
-#  - use versioned VCS tag instead of arbitrary commit
-#  - use version tag as $pkgver
-
-
-pkgname=phc-intel
-_phcver=0.3.2
-_upstream_ver=rev45
-pkgver=$_phcver.$_upstream_ver
-pkgrel=1
-pkgdesc="Frequency driver for Intel CPUs with undervolting feature"
-pkgdesc+=", (for Core/Core2 systems)"
-url="https://gitlab.com/linux-phc/phc-intel"
-arch=('any')
-arch=('x86_64' 'i686') # avoid publishing to non-x86 repos
-license=('GPL')
-depends=('dkms')
-# provides=('linux-phc') # useless - no arch, parabola, nor AUR package refers to this
-backup=('etc/default/phc-intel')
-_commit_hash=$_upstream_ver # use tag revNN (see https://gitlab.com/linux-phc/phc-intel/-/tags)
-source=("https://gitlab.com/linux-phc/phc-intel/-/archive/$_commit_hash/phc-intel-$_commit_hash.tar.gz"
-        phc-intel.{default,sh,sleep,system-sleep} dkms.conf)
-sha256sums=('f27fa7dece7c3ca7c81d08500878cac803f412dc1d6e76a05621ab72c82dfa17'
-            'ce08a5a4107be1d5723f1f169d515e67b6c77893f3994fc2d0d2ccf611307ed3'
-            'b526f3e8e66f6495531f13f2e6867d3a07b2ec7a7c3b8aa061f22be1cd6e770f'
-            '569b85988cb38380fec85c25688b76abc24a46601aa8f58eb24eaebf863eebef'
-            '2e17c90d7bfae8f5070e46388e95d443188eaa7beb5ffdd418a0da090f2e7557'
-            '7b44882a96eeb7c79dbb7fe5b1ff8cded68c2b6a374c95bdc5e08c414cfd3549')
-
-prepare() {
-	cd $pkgname-$_commit_hash
-	sed -i 's,/sbin/modprobe phc-intel |,/sbin/modprobe phc-intel \&\& /usr/bin/phc-intel set |,' phc-intel.modprobe
-}
-
-package() {
-	umask 022
-	install -Dm644 dkms.conf "$pkgdir/usr/src/phc-intel-$_phcver/dkms.conf"
-	install -Dm644 phc-intel.default "$pkgdir/etc/default/phc-intel"
-	install -Dm755 phc-intel.sh "$pkgdir/usr/bin/phc-intel"
-	install -Dm755 phc-intel.sleep "$pkgdir/usr/lib/pm-utils/sleep.d/00phc-intel"
-	install -Dm755 phc-intel.system-sleep "$pkgdir/usr/lib/systemd/system-sleep/phc-intel"
-
-	cd $pkgname-$_commit_hash
-	install -Dm644 phc-intel.modprobe "$pkgdir/usr/lib/modprobe.d/phc-intel.conf"
-	cp -R inc Makefile "$pkgdir/usr/src/phc-intel-$_phcver/"
-}
diff --git a/pcr/phc-intel/dkms.conf b/pcr/phc-intel/dkms.conf
deleted file mode 100644
index db66037..0000000
--- a/pcr/phc-intel/dkms.conf
+++ /dev/null
@@ -1,7 +0,0 @@
-PACKAGE_NAME="phc-intel"
-PACKAGE_VERSION=0.3.2
-AUTOINSTALL="yes"
-
-BUILT_MODULE_NAME[0]="phc-intel"
-DEST_MODULE_LOCATION[0]="/extra"
-MAKE[0]="make KERNELSRC=$kernel_source_dir"
diff --git a/pcr/phc-intel/phc-intel.default b/pcr/phc-intel/phc-intel.default
deleted file mode 100644
index 4e390e7..0000000
--- a/pcr/phc-intel/phc-intel.default
+++ /dev/null
@@ -1,4 +0,0 @@
-# configuration for phc-intel
-
-# voltage IDs to be set for all CPUs
-VIDS=""
diff --git a/pcr/phc-intel/phc-intel.install b/pcr/phc-intel/phc-intel.install
deleted file mode 100644
index fb69a8b..0000000
--- a/pcr/phc-intel/phc-intel.install
+++ /dev/null
@@ -1,32 +0,0 @@
-post_install() {
-	cat <<-EOF
-		You can enter the desired voltage IDs in /etc/default/phc-intel.
-		Booting with nophc kernel parameter skips setting of VIDs in case of failure.
-	EOF
-}
-
-pre_upgrade() {
-	if (( "$(vercmp $2 0.3.2.12.19-2)" < 0 )); then
-		cd usr/lib/modules/
-		for i in *; do
-			if [ -f "$i/extramodules/phc-intel.ko" ]; then
-				rm -f "$i/extramodules/phc-intel.ko"
-				[ -d "$i/kernel" ] && depmod "$i"
-			elif [ -f "$i/phc-intel.ko" ]; then
-				rm -f "$i/phc-intel.ko"
-				rmdir -p --ignore-fail-on-non-empty "$i"
-			elif [ -f "$i/extra/phc-intel.ko" ]; then
-				rm -f "$i/extra/phc-intel.ko"
-				rmdir -p --ignore-fail-on-non-empty "$i/extra"
-				[ -d "$i/kernel" ] && depmod "$i"
-			fi
-		done
-	fi
-}
-
-post_upgrade() {
-	if (( "$(vercmp $2 0.3.2.12.19-2)" < 0 )); then
-		rm -rf usr/src/phc-intel/
-		echo '===> The kernel module gets automatically built by DKMS now.'
-	fi
-}
diff --git a/pcr/phc-intel/phc-intel.sh b/pcr/phc-intel/phc-intel.sh
deleted file mode 100644
index cce4bf9..0000000
--- a/pcr/phc-intel/phc-intel.sh
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/bash -e
-shopt -s nullglob
-
-case "$1" in
-start)
-	. /etc/default/phc-intel
-	if [ -z "$VIDS" ]; then
-		echo '=> Please edit /etc/default/phc-intel'
-		exit 1
-	fi
-	echo ':: Setting PHC VIDs'
-	for i in /sys/devices/system/cpu/cpu*/cpufreq/phc_vids; do
-		echo $VIDS > "$i"
-	done
-	;;
-stop)
-	echo ':: Resetting default PHC VIDs'
-	for i in /sys/devices/system/cpu/cpu*/cpufreq/phc_vids; do
-		cp "${i%vids}default_vids" "$i"
-	done
-	;;
-status)
-	check_off () {
-		for i in /sys/devices/system/cpu/cpu*/cpufreq/phc_vids; do
-			[ "$(< "$i")" = "$(< "${i%vids}default_vids")" ] || return;
-		done
-	}
-	check_on () {
-		for i in /sys/devices/system/cpu/cpu*/cpufreq/phc_vids; do
-			[[ "$(< "$i")" =~ "$VIDS" ]] || return;
-		done
-	}
-	echo -n 'PHC status: '
-	. /etc/default/phc-intel
-	if check_off; then
-		echo 'inactive'
-	elif check_on; then
-		echo 'active'
-	else
-		echo 'unknown'
-	fi
-	;;
-set)
-	. /etc/default/phc-intel
-	[ -z "$VIDS" ] && exit
-	for i in $(< /proc/cmdline); do
-		[ $i = nophc ] && exit
-	done
-	for i in /sys/devices/system/cpu/cpu*/cpufreq/phc_vids; do
-		echo $VIDS > "$i"
-	done
-	;;
-*)
-	echo "usage: $0 {start|stop|status|set}"
-esac
diff --git a/pcr/phc-intel/phc-intel.sleep b/pcr/phc-intel/phc-intel.sleep
deleted file mode 100644
index 342b81a..0000000
--- a/pcr/phc-intel/phc-intel.sleep
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-
-case $1 in
-	resume|thaw)
-		. /usr/bin/phc-intel set
-		;;
-esac
diff --git a/pcr/phc-intel/phc-intel.system-sleep b/pcr/phc-intel/phc-intel.system-sleep
deleted file mode 100644
index c76ea6a..0000000
--- a/pcr/phc-intel/phc-intel.system-sleep
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash
-
-if [ "$1" = post ]; then
-	. /usr/bin/phc-intel set
-fi

From f8c5e489508c3832f23e4a9067d5709f4b4f9480 Mon Sep 17 00:00:00 2001
From: David P <megver83@parabola.nu>
Date: Jul 18 2023 23:26:42 +0000
Subject: [PATCH 26/32] updpkg: libre/hplip 1:3.23.5-1.par1


Signed-off-by: David P <megver83@parabola.nu>

---

diff --git a/libre/hplip/0018-Allow-non-JPEG-scanning-on-the-HP-DeskJet-3520-All-i.patch b/libre/hplip/0018-Allow-non-JPEG-scanning-on-the-HP-DeskJet-3520-All-i.patch
new file mode 100644
index 0000000..b001a26
--- /dev/null
+++ b/libre/hplip/0018-Allow-non-JPEG-scanning-on-the-HP-DeskJet-3520-All-i.patch
@@ -0,0 +1,150 @@
+From: =?utf-8?b?THVib8WhIERvbGXFvmVs?= <lubos@dolezel.info>
+Date: Fri, 22 Jul 2016 09:33:05 +0200
+Subject: Allow non-JPEG scanning on the HP DeskJet 3520 All-in-One and
+ similar devices
+
+LP: #1245578
+---
+ scan/sane/bb_ledm.c | 47 +++++++++++++++++++++++++++++++++++++++++------
+ scan/sane/ledm.c    | 12 +++++++-----
+ 2 files changed, 48 insertions(+), 11 deletions(-)
+
+diff --git a/scan/sane/bb_ledm.c b/scan/sane/bb_ledm.c
+index 4b18af8..168a6ab 100644
+--- a/scan/sane/bb_ledm.c
++++ b/scan/sane/bb_ledm.c
+@@ -189,7 +189,7 @@ Keep-Alive: 20\r\nProxy-Connection: keep-alive\r\nCookie: AccessCounter=new\r\n0
+ <YStart>%d</YStart>\
+ <Height>%d</Height>\
+ <Format>%s</Format>\
+-<CompressionQFactor>15</CompressionQFactor>\
++<CompressionQFactor>0</CompressionQFactor>\
+ <ColorSpace>%s</ColorSpace>\
+ <BitDepth>%d</BitDepth>\
+ <InputSource>%s</InputSource>\
+@@ -234,6 +234,38 @@ Keep-Alive: 300\r\nProxy-Connection: keep-alive\r\nCookie: AccessCounter=new\r\n
+ # define JOBSTATE_COMPLETED "<j:JobState>Completed</j:JobState>"
+ # define PRESCANPAGE "<PreScanPage>"
+ 
++static int parse_status_elements(const char *payload, int size, struct wscn_create_scan_job_response *resp)
++{
++  char tag[512];
++  char value[128];
++  char *tail=(char *)payload;
++
++  while (1)
++  {
++    get_tag(tail, size-(tail-payload), tag, sizeof(tag), &tail);
++
++    if (!tag[0])
++      break;
++
++    if (strncmp(tag, "ImageWidth", 10) == 0)
++    {
++      get_element(tail, size-(tail-payload), value, sizeof(value), &tail);
++      resp->pixels_per_line = strtol(value, NULL, 10);
++    }
++    else if (strncmp(tag, "ImageHeight", 11) == 0)
++    {
++      get_element(tail, size-(tail-payload), value, sizeof(value), &tail);
++      resp->lines = strtol(value, NULL, 10);
++    }
++    else if (strncmp(tag, "BytesPerLine", 12) == 0)
++    {
++      get_element(tail, size-(tail-payload), value, sizeof(value), &tail);
++      resp->bytes_per_line = strtol(value, NULL, 10);
++    }
++  }
++  return 0;
++}
++
+ static int parse_scan_elements(const char *payload, int size, struct wscn_scan_elements *elements)
+ {
+   char tag[512];
+@@ -764,8 +796,7 @@ int bb_get_parameters(struct ledm_session *ps, SANE_Parameters *pp, int option)
+       if (ps->currentCompression == SF_RAW && ps->currentScanMode != CE_GRAY8)
+       {
+          /* Set scan parameters based on scan job response values */
+-        //pp->lines = pbb->job.lines;
+-        pp->lines = (int)(SANE_UNFIX(ps->effectiveBry - ps->effectiveTly)/MM_PER_INCH*ps->currentResolution);
++        pp->lines = pbb->job.lines;
+         pp->pixels_per_line = pbb->job.pixels_per_line;
+         pp->bytes_per_line = pbb->job.bytes_per_line;
+       }
+@@ -786,8 +817,8 @@ int bb_get_parameters(struct ledm_session *ps, SANE_Parameters *pp, int option)
+       break;
+     case SPO_BEST_GUESS:  /* called by xsane & sane_start */
+       /* Set scan parameters based on best guess. */
+-      pp->lines = (int)round(SANE_UNFIX(ps->effectiveBry - ps->effectiveTly)/MM_PER_INCH*ps->currentResolution);
+-      pp->pixels_per_line = (int)round(SANE_UNFIX(ps->effectiveBrx -ps->effectiveTlx)/MM_PER_INCH*ps->currentResolution);
++      pp->lines = (int)(SANE_UNFIX(ps->effectiveBry - ps->effectiveTly)/MM_PER_INCH*ps->currentResolution);
++      pp->pixels_per_line = ps->image_traits.iPixelsPerRow;
+       pp->bytes_per_line = BYTES_PER_LINE(pp->pixels_per_line, pp->depth * factor);
+       break;
+     default:
+@@ -896,7 +927,7 @@ SANE_Status bb_start_scan(struct ledm_session *ps)
+         (int) ((ps->currentBrx / 5548.7133) - (ps->currentTlx / 5548.7133)),//<Width>
+         (int) (ps->currentTly / 5548.7133),//<YStart>
+         (int) ((ps->currentBry / 5548.7133) - (ps->currentTly / 5548.7133)),//<Height>
+-        "Jpeg",//<Format>
++        (ps->currentCompression == SF_RAW) ? "Raw" : "Jpeg", //<Format>
+         (! strcmp(ce_element[ps->currentScanMode], "Color8")) ? "Color" : (! strcmp(ce_element[ps->currentScanMode], "Gray8")) ? "Gray" : "Gray",//<ColorSpace>
+         ((! strcmp(ce_element[ps->currentScanMode], "Color8")) || (! strcmp(ce_element[ps->currentScanMode], "Gray8"))) ? 8: 8,//<BitDepth>
+         ps->currentInputSource == IS_PLATEN ? is_element[1] : is_element[2],//<InputSource>
+@@ -994,6 +1025,7 @@ SANE_Status bb_start_scan(struct ledm_session *ps)
+         _DBG("bb_start_scan() read_http_payload FAILED len=%d buf=%s\n", len, buf);
+         break;
+      }
++
+       //For a new scan, buf must contain <PreScanPage>. 
+      if (NULL == strstr(buf,PRESCANPAGE)) 
+      {         //i.e Paper is not present in Scanner
+@@ -1012,6 +1044,9 @@ SANE_Status bb_start_scan(struct ledm_session *ps)
+         stat = SANE_STATUS_GOOD;
+         goto bugout;
+      }
++	 // Parse buf here
++     parse_status_elements(buf, len, &pbb->job);
++
+      usleep(500000);//0.5 sec delay
+   }//end while()
+ 
+diff --git a/scan/sane/ledm.c b/scan/sane/ledm.c
+index ac9d604..a56f534 100644
+--- a/scan/sane/ledm.c
++++ b/scan/sane/ledm.c
+@@ -170,11 +170,11 @@ static int set_scan_mode_side_effects(struct ledm_session *ps, enum COLOR_ENTRY
+       case CE_GRAY8:
+       case CE_COLOR8:
+       default:
+-//         ps->compressionList[j] = STR_COMPRESSION_NONE;
+-//         ps->compressionMap[j++] = SF_RAW;
++         ps->compressionList[j] = STR_COMPRESSION_NONE;
++         ps->compressionMap[j++] = SF_RAW;
+          ps->compressionList[j] = STR_COMPRESSION_JPEG;
+          ps->compressionMap[j++] = SF_JPEG;
+-         ps->currentCompression = SF_JPEG;
++         ps->currentCompression = SF_RAW;
+          ps->option[LEDM_OPTION_JPEG_QUALITY].cap |= SANE_CAP_SOFT_SELECT;   /* enable jpeg quality */
+          break;
+    }
+@@ -690,7 +690,7 @@ SANE_Status ledm_control_option(SANE_Handle handle, SANE_Int option, SANE_Action
+          }
+          else
+          {  /* Set default. */
+-            ps->currentCompression = SF_JPEG;
++            ps->currentCompression = SF_RAW;
+             stat = SANE_STATUS_GOOD;
+          }
+          break;
+@@ -995,7 +995,9 @@ SANE_Status ledm_start(SANE_Handle handle)
+     }
+   }
+   else
+-  ipGetImageTraits(ps->ip_handle, NULL, &ps->image_traits);  /* get valid image traits */
++  {
++    ipGetOutputTraits(ps->ip_handle, &ps->image_traits);  /* get valid image traits */
++  }
+ 
+   stat = SANE_STATUS_GOOD;
+ 
diff --git a/libre/hplip/PKGBUILD b/libre/hplip/PKGBUILD
index 05e349a..deadb21 100644
--- a/libre/hplip/PKGBUILD
+++ b/libre/hplip/PKGBUILD
@@ -1,15 +1,15 @@
-# Maintainer (arch): Andreas Radke <andyrtr@archlinux.org>
-# Maintainer (arch): Tom Gundersen <teg@jklm.no>
-# Contributor: Rémy Oudompheng <remy@archlinux.org>
-# Contributor: Morgan LEFIEUX <comete@archlinuxfr.org>
-# Contributor: André Silva <emulatorman@hyperbola.info>
-# Contributor: Márcio Silva <coadde@hyperbola.info>
-# Contributor: Jorge López <jorginho@hyperbola.info>
 # Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
 # Maintainer: David P. <megver83@parabola.nu>
+# Maintainer (Arch): Andreas Radke <andyrtr@archlinux.org>
+# Contributor (Arch): Tom Gundersen <teg@jklm.no>
+# Contributor (Arch): Rémy Oudompheng <remy@archlinux.org>
+# Contributor (Arch): Morgan LEFIEUX <comete@archlinuxfr.org>
+# Contributor (Hyperbola): André Silva <emulatorman@hyperbola.info>
+# Contributor (Hyperbola): Márcio Silva <coadde@hyperbola.info>
+# Contributor (Hyperbola): Jorge López <jorginho@hyperbola.info>
 
 pkgname=hplip
-pkgver=3.22.6
+pkgver=3.23.5
 pkgrel=1
 pkgrel+=.par1
 epoch=1
@@ -19,7 +19,10 @@ arch=('x86_64')
 arch+=('i686' 'armv7h')
 url="https://hplipopensource.com"
 license=('GPL' 'custom')
-depends=('python-dbus' 'python-distro' 'ghostscript' 'net-snmp' 'foomatic-db-engine' 'python-gobject' 'libxcrypt')
+depends=('python-dbus' 'python-distro' 'ghostscript' 'net-snmp'
+         'foomatic-db-engine' 'python-gobject' 'libxcrypt'
+         'libjpeg-turbo' 'dbus' 'gcc-libs' 'avahi' 'python'
+         'xdg-utils' 'zlib' 'libcups' 'glibc')
 makedepends=('python-pyqt5' 'sane' 'rpcbind' 'cups' 'libusb')
 optdepends=('cups: for printing support'
             'sane: for scanner support'
@@ -36,6 +39,7 @@ backup=('etc/hp/hplip.conf' 'etc/sane.d/dll.d/hpaio')
 source=(https://downloads.sourceforge.net/${pkgname}/$pkgname-$pkgver.tar.gz{,.asc}
         disable_upgrade.patch
         0003-models.dat-Re-add-drivers-missing-from-3.19.1.patch
+        0018-Allow-non-JPEG-scanning-on-the-HP-DeskJet-3520-All-i.patch
         0022-Add-include-cups-ppd.h-in-various-places-as-CUPS-2.2.patch
         0023-Fix-handling-of-unicode-filenames-in-sixext.py.patch
         0025_fix-Werror-format-security.patch
@@ -43,10 +47,11 @@ source=(https://downloads.sourceforge.net/${pkgname}/$pkgname-$pkgver.tar.gz{,.a
         hplip-configure-python.patch
         python3.diff
         reproducible-gzip.patch)
-sha512sums=('cb25c07c767d3d8921468429ef154401a4df9d2fdf87ead3ab18f0d06e1bd3de610843b8131641a1af8d920c7e15e290a0923405bf609cdc0a3fba9df93ddb5e'
+sha512sums=('f7e8c431dece035c3e8709baffad7de923ec16ec168f0c1ab64e7aa72e2b3452bf510e3f98b1d0a783bf444869affc452c7adf8fdc2075fed341c64b55ec7c3e'
             'SKIP'
-            'ee0bd240568a7dbb4dc6ef64dba28ea84c4bedf7d688d054960c686666f8f0bc4562961c40845107ef0c936e60d3e676bffb2a1ba708039690bb0520cda3a525'
+            'a12aaeece5285ffb86bdbc24871bf512fbc1f29da44ae51ded314378032662074a42b8aca23bebb378bf78ed15bb7f99da59bfb4cd456f3458e7a5ef42a900f8'
             'f79b3f09d022178099f38b9eae1792396e730eb5352a03d088e6610d92b3895f3f65bb92089ce7f5b21d794f9716ceb176d29ca7283e8a48bb04cf6aba305a2f'
+            '93e29a9ef893636b2b84443e75525c4ed42531d6e68a182dfbb725c3919c77b966b5e7d9381a34d3b5853423995a7b15efb69ce3e500ec72b25b65b2ad6bd64c'
             '22aeb5b851f78bc6bc62e0bc3da99fecaf42d7604af41e2f3343f8d3666541f7b06b7d1a7d0ddf24f1731ac7b12dfe582375a98e3b94dfa323d6ce954549ca67'
             '763949a0bc460dcc9faefc86f2a91cf342781bfce696ed0c3826758572dd03ac266bbeb7b6a4f9376ac298d7d3c9c4def42d94921a8e1d1695e39396e36d95ff'
             'b7e67bccb2516f4d98e4c5ea55f7d2299d95bfdc341dbc0149af1423169bedcd8bcfdb125c92f373e9e7be57ea284fef80a8343035fb42572b9cb927929cd257'
@@ -74,6 +79,8 @@ prepare() {
  # https://bugs.launchpad.net/hplip/+bug/1879445
  # broken scanning - https://bugs.archlinux.org/task/66704
  patch -Np1 -i ../hplip-configure-python.patch
+ #  allow non-jpeg scanning on all-in-one devices - FS#78135
+ patch -Np1 -i ../0018-Allow-non-JPEG-scanning-on-the-HP-DeskJet-3520-All-i.patch
 
  # make gzip creation reproducible by removing the timestamp
  patch -Np1 -i ../reproducible-gzip.patch
diff --git a/libre/hplip/disable_upgrade.patch b/libre/hplip/disable_upgrade.patch
index f7d8fb3..3196b90 100644
--- a/libre/hplip/disable_upgrade.patch
+++ b/libre/hplip/disable_upgrade.patch
@@ -5,7 +5,7 @@
      log.set_level('debug')
  
 +
-+log.error("HPLIP upgrade is disabled by Archlinux for security reasons, see https://bugs.archlinux.org/task/38083 - if you like to upgrade HPLIP, use the Archlinux software package manager pacman.")
++log.warn("HPLIP upgrade is disabled by Archlinux for security reasons, see https://bugs.archlinux.org/task/38083 - if you like to upgrade HPLIP, use the Archlinux software package manager pacman.")
 +clean_exit(1)
 +
 +

From f27e0876b3ced74ad049402ebfc1e82691769794 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 19 2023 01:22:33 +0000
Subject: [PATCH 27/32] [linux-libre-vanilla]: tweak for i686


---

diff --git a/libre/linux-libre-vanilla/PKGBUILD b/libre/linux-libre-vanilla/PKGBUILD
index a127abb..5a376ad 100644
--- a/libre/linux-libre-vanilla/PKGBUILD
+++ b/libre/linux-libre-vanilla/PKGBUILD
@@ -35,6 +35,7 @@ makedepends=(
   git
 )
 makedepends=( ${makedepends[*]/git/} )
+makedepends_i686=(python=3.10.10) # dustbin - FIXME: sphinx-build returned an error at ./scripts/sphinx-pre-install line 317.
 makedepends_armv7h=(uboot-tools vboot-utils dtc) # required by linux-libre-chromebook
 options=('!strip')
 _srcname=linux-${_minor_ver}
@@ -49,6 +50,7 @@ source=(
 source_i686=(no-ultra-zstd.patch)
 validpgpkeys=(
   '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva
+  '6DB9C4B4F0D8C0DC432CF6E4227CA7C556B2BA78' # David P.
 )
 sha512sums=('ddfc752deff7a4c413b88eb33eb66731132684d1a1e34079ae905811c24b9cf0b52e0f23b2662fc4ada6a3cca1f85a755585aeb0df8e0e87f8766c474d228141'
             'SKIP'

From 1e25aabf3edc2d27ad6ef902285c780c7d952db1 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 19 2023 01:22:54 +0000
Subject: [PATCH 28/32] [iceweasel]: tweak for armv7h


---

diff --git a/libre/iceweasel/PKGBUILD b/libre/iceweasel/PKGBUILD
index 4a17b1b..eede40c 100644
--- a/libre/iceweasel/PKGBUILD
+++ b/libre/iceweasel/PKGBUILD
@@ -248,8 +248,6 @@ readonly _SHOULD_USE_GCC=$(case "${CARCH}" in armv7h) echo 1 ;; *) echo 0 ;; esa
 case "${CARCH}" in
 armv7h)
   makedepends=( ${makedepends[*]/wasi-*/} ) # armv7h has no wasi compiler
-
-  depends+=( icu=72.1 ) # --with-system-icu
   ;;
 esac
 

From c376cb6422b16c975405b8af8f111da8d7fcb34a Mon Sep 17 00:00:00 2001
From: SolveFinder <kwopleq@proton.me>
Date: Jul 19 2023 01:23:11 +0000
Subject: [PATCH 29/32] libre/ktorrent without qt5-webengine


---

diff --git a/libre/ktorrent/PKGBUILD b/libre/ktorrent/PKGBUILD
new file mode 100644
index 0000000..5af3b8d
--- /dev/null
+++ b/libre/ktorrent/PKGBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Travis Willard <travisw@wmpub.ca>
+# Contributor: Georg Grabler <ggrabler@gmail.com>
+
+pkgname=ktorrent
+pkgver=23.04.3
+pkgrel=1
+pkgrel+=.parabola1
+pkgdesc='A powerful BitTorrent client for KDE'
+pkgdesc+=', without nonfree qt5-webengine support'
+arch=(x86_64)
+arch+=(i686 armv7h)
+url='https://apps.kde.org/ktorrent/'
+license=(GPL2)
+depends=(libktorrent kcmutils knotifyconfig kparts phonon-qt5)
+makedepends=(extra-cmake-modules kdoctools boost plasma-workspace kdnssd taglib syndication kplotting geoip)
+optdepends=('plasma-workspace: shutdown plugin' 'kdnssd: zeroconf plugin' 'taglib: mediaplayer plugin' 'geoip: info widget plugin'
+            'syndication: syndication plugin' 'kplotting: statistics plugin')
+groups=(kde-applications kde-network)
+source=(https://download.kde.org/stable/release-service/$pkgver/src/$pkgname-$pkgver.tar.xz{,.sig}
+       'libre.patch')
+sha256sums=('e507cb5b176b11bbe9293ee92cb026838498e1f8bfad5097c5fd13b8ec8e069f'
+            'SKIP'
+            'aa44d844895294799f5d52838af3dc314f2005a892b365beed76c5de6a374a10')
+validpgpkeys=(CA262C6C83DE4D2FB28A332A3A6A4DB839EAA6D7  # Albert Astals Cid <aacid@kde.org>
+              F23275E4BF10AFC1DF6914A6DBD2CE893E2D1C87  # Christoph Feck <cfeck@kde.org>
+              D81C0CB38EB725EF6691C385BB463350D6EF31EF) # Heiko Becker <heiko.becker@kde.org>
+
+prepare() {
+  cd "$pkgname-$pkgver"
+  patch -p1 -i ../libre.patch
+  cd ..
+}
+
+build() {
+  cmake -B build -S $pkgname-$pkgver
+  cmake --build build
+}
+
+package() {
+  DESTDIR="$pkgdir" cmake --install build
+}
diff --git a/libre/ktorrent/keys/pgp/CA262C6C83DE4D2FB28A332A3A6A4DB839EAA6D7.asc b/libre/ktorrent/keys/pgp/CA262C6C83DE4D2FB28A332A3A6A4DB839EAA6D7.asc
new file mode 100644
index 0000000..07050e6
--- /dev/null
+++ b/libre/ktorrent/keys/pgp/CA262C6C83DE4D2FB28A332A3A6A4DB839EAA6D7.asc
@@ -0,0 +1,29 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBFfNZD4BEACo0YKCUEhTY7v8VZVw3csAtnsRSFQ18G8xfYIt7mJEBrtfiGG4
+g28EjNeWQfN8wGIaAeRGl5nb7s9RRpxXStUu719jGX1Z9Sr8p/JOmBS5kdfAtYId
+9Cl3VsGRvf4Smg1ClrEv6tQ97j+d1FY8QfgW/GS46YBOEeOFVQRtfi7Yv9lZkiBF
+rzP0Nr7JV9u1GkBsFgNkVuYs/3RDYULItBwGFerduOyQCOt819QvHHSZkXqJWwNR
+OA6lc8gW36lKbDHoZ1jSkDnDV0bW0cX1/6WJSzWYdcPiceA1vj/VDg0Kr23SVQ1P
+yPvBirT7ToirQm6KrIiKHWLSg156ht8/K2C1Dgypf+YMseMbHQxVLrI2p4zpmxu3
+B2SrSj3ImM5FO0XGd1gxn/qywNVJDQBfcYnndksD2i/9/Es8I/F6OymBZl4HWBvx
+7ixm2JPXkmwVPEC/lJn3eCBb1fAaJSlroHtaAEteCWuE5/Mg/uYEh1UeAstP47N3
+P0B3l1E4Ccw1ne2/O1BdsnXeUaI3YVYz9aZkVlL7ywda3h/goRKxc1b18bmgu/Ed
+QmcTEMj29B3szMpetWNt1ZbaMJzfDw+z+SiQ3toOTUiqMuWq+l+JK0dVUzOvpGhG
+VHv5m9CtJFP671ivEc4it0hJRH5kdW9aNbeG0g9TxHQqQMJIpeLvRq5WKwARAQAB
+tCFBbGJlcnQgQXN0YWxzIENpZCA8YWFjaWRAa2RlLm9yZz6JAlQEEwEIAD4CGwMF
+CwkIBwIGFQgJCgsCBBYCAwECHgECF4AWIQTKJixsg95NL7KKMyo6ak24Oeqm1wUC
+XVO22wUJB2eGHQAKCRA6ak24Oeqm176hD/9QGNeGm0UX/X8PY6OManUuC5tl/RI2
+xo5ZbckxgSlNKgdhuE9hcrCOX74smdFKkk3EoxfXTa+YaarjXPq+ZfqgOiAk7TyU
+BjZiiRiqgg7rWvsUa0ifxP++oN8aV9bTT8+WvkU2nXEPLtvaoSTXn/zE1bv7dIhB
+13u2Du3PIVoUQBfcg9tyNkMQ+ifAQxjUghbPKeqsoql1bqY3v561SVg6D+IqeA5s
+3Q8xxve4wc8vFgwRsWm4ugFTGRHdLhAFc3LlFxmFDhPMNvQguPh9MifBGthFcHBd
+F2lUTdXffhiKpCQ3+qUP/YP0rurL+Ke8aBNBXlU68+2l0JrCjySnDj3a5RKWOgWk
+2SSadUia06GGHRBaTVs5AAOfL0vaIbeUMxSv7Itg8jkqH2/9PdoCDOFznNS1C6o+
+MxtPFmjZSGna5wSlyUobCrcRGL1mD5w4r16MKFICSVQM5ns617bm0tWS0qyAARid
+Ng3baLoStf64wyk5QUwfVj1huQzRmk7os3OOik44J+nF8BqloW0bAsJ3mFgJVqLW
+5U6GpbURaVsnxgnu4VuRedHg/JC1gy7JqNASq3vlExmBJDsNZjgPWKlnUezyxM0+
+UP3OGb4AVPm7yVUZWB3XuPyk2565rOWEFyXy1/oOrHAgijD5d4FPGe4sxy0WH88E
+z+nBNcht+1juVw==
+=t/sG
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/libre/ktorrent/keys/pgp/D81C0CB38EB725EF6691C385BB463350D6EF31EF.asc b/libre/ktorrent/keys/pgp/D81C0CB38EB725EF6691C385BB463350D6EF31EF.asc
new file mode 100644
index 0000000..ac8562f
--- /dev/null
+++ b/libre/ktorrent/keys/pgp/D81C0CB38EB725EF6691C385BB463350D6EF31EF.asc
@@ -0,0 +1,63 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQINBFIoa28BEACX3sZB3hjIPlaXouQLMDX7yA5FeVccsyadoNnpJ6q04ZUSYbYW
+XvXKkDEK9D8DsQ7cftWcafQqNxamfmqQ5fyXtbQsmWty0MrckcT4pA5OaZlGZIgb
+gim4UDOtQF3EYCtw2Mwo4XnSrQtrWv8CWXY1sxCsVf4/txHm/VZ2s8pmT2b0+qVJ
+gUeK342Y1sZFoVtADcMCMCtMRi1JwZ5ARthRsLB2y9l5GwsSX30FvIwfGzHOjWWc
+5bzuaFIbPTrn8pyCD+FNWuS1Oth8LHDV76N/fbPkgoKk4Zqivb2/NfOlPiG2uPlh
+CPUd0ZoSSO4BFxpW/dkAbin5fWDF14cW4tE/P8M2DpUmvLsfrg1LGyyqkzYi9ha+
+HQVHHUC2k8lI+OEIoX+P/4JMK23jrjJdjbtqCRsuEAUGFsXXTf4XTaMi6SQJCaIy
+dVy9ehn9f68kCVt9FA/gv4h247wFkTR+RiHMxRZmzI6nNbN8pKAjsKlwh4TdzU7A
+DXfPShzafC7cs4fS3nhbqEj8p31t+SYK/XsKl5CTMhZDvRXljPDVfTyLBtQNC1Qj
+t8Uo+y9C7afB/W1rhAXb55CdJvvbRN+W+dMOfEpNnJcNCo1ov/dcDW4XhB4ax0Xd
+6IR1XCIQ0uJHp9e2hrN2q9tErO7DeqHmnoL9TVBmsj7SAx64c5KLZMWvAwARAQAB
+tB5IZWlrbyBCZWNrZXIgPGhlaWtvQHNocnV1Zi5kZT6JAjkEEwECACMFAlIoa28C
+GyMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRC7RjNQ1u8x7301D/sGoym9
+VtnwmVis3fXeY0BwjvRSnJ2vGuf9wNjjQNxiSbh61Zx4gV4w1SGL1pttPEj/3Vub
+LItXwsH8M2WDFl5gW4b5AGGFdBbBlPlHjcJMILCe9s1ayc0HpeMKf9VkuY93WcTM
+2cHQj96oxDyLwWEiaSIoYRHib28X2mYPHctQ307mp8HF3GeFtY9936ZiAfEXLykW
+F2f5iSKXKMK8t7P7dgDAUQ+C+IfyYpQLEcGUKMVpCk4ZoTItth56fe6xpwo1PllL
+oXgzy6gYQXwrOnM/w3j/1hJQal2o/gUVJzLhrb/zKoEyIhxV+bvgFiSd/ChDkits
+x1qf0FMbs3ACPgbCLYjbr8sFMHPQDTw2DmqGCLwEGAh/KEQ+Q2HVLS88glRwVLp2
+O16+26dm3f3DgiElmW3Qf4iMhj/+KGyWUf3eRldg/mTlBc0v8QKhJS8a+Pex6oPO
+jIo9+yyuSl2BK8Vvm8MLi5FFM1uLrsMo1plkNdTKUPoNRTCELREAIvq0ICnLit2j
+wDT4N5JWWcAZlhYAag7R0gnEOt3VAxCkGDSdS1mMgl5npgesu3T7k+khIEcvaU48
+g7II/q4kgYJvp8iWDwJew+n6PnYv0DjtmXoXISDIkmOESa1Py4M+K28omBu170es
+e3CK3LerNbBJSnlZgoYUqQMPGuMFE0mCOb0+8rQjSGVpa28gQmVja2VyIDxoZWly
+ZWNrYUBleGhlcmJvLm9yZz6JAjkEEwECACMFAlIobWYCGyMHCwkIBwMCAQYVCAIJ
+CgsEFgIDAQIeAQIXgAAKCRC7RjNQ1u8x7+tDEACRF1c9DVGJnubyrF5Aqn9ChCCR
+3GS4ynTxmf21xCoARpbbh8edBlzxJ7HNf1+t/0wEcmKGNdaRZUVIyXMCj2Uye6/C
+KbmBz0ynHjoRkVSX+imJynJKmKjWsqctRqT67K9pnCB5KIiUK3c3GWrxd2u8dZUJ
+pb5XhbWzIDwnR7AdvoT0ytuANbUA5gtwH0WriUQ2qsZK3tzmm0L4EJ07qGXB94WY
+VaLrz4+26ja4O/v87Pm0yadGMGjIFkq7u8g7kiME1VPvzjkUwxk3XcDVcFt5Gjct
+1beMX/SUt8WLYfL3XUyU8i/UKraf0hPG7TeWpPOvlmfjgMicmfgYDXMyTz3h54GR
+G3AvIZA9oMbcsc9SX6+IayWCN4m7j3qZWBbzCtbkXTJU42dHKjnANTRj+5e8RVVa
+DaI6WzWW4VCLfJrsVqEJvoJvCBrpfVClV64D/tqiCHNbBpBIcxBJd6i5QceS95EH
+BRjCvqeSUNvyVeIFWTBOodycMZufEtCMgPBvzSyT0FUtjk1PtQowe1VA47PiyjIw
+7CrcTzfC3KhOb0iXZLPVXZ8+A3Zbgq3iFt8MNj/Wvn+OnvZ6eFtoH5yfqmvrMisM
+mRxwMH+sd9WDqIpEf/vQhC54mA9F99dYmqYFJdkfgAaECqdqR+LwbNl8unPs5/BF
+gHGN+x6HNq5UXNx+pbkCDQRSKGtvARAAoyoGg3MhkXhQkJqsEsKq+D5mVWwaH4Ah
+h3YuujOk+sCdxOonSUPu3HMzQiZsxFrq/sT2QgrY+MIegB0ZtW0BpiacIkZPapgG
+xSaAaZv58ICBgvuX5N1CzqKQGjnyN01eyUvN+m1zbqB00iDeJ4MI5BJWipSls0ah
+FQqL5ZkFZ7bRDkPdxL7HrBJVs8Q/cs0eV2SaAsVxV4bz1DPdymsZbJnAXz9X/6Tv
+Fu+ANDD6XqhhYSsAzrCvkX8VVCBb+gdwFxHU9lrOYGqFL/bG0apNky2DILRCu8y/
+vHhtugRApJiTfvg4UToc9LkaU58gQbwnfP7t13Hz0iVKwyPuluFK+SlrRHOoCmXc
+hPwrhLiLWH9gCecxu/hm/uDj/ncNaxg0tU4myRoPBC2PC3c/bNHSLBrt3QXwb/HU
+4ot4rV4AYwAgPSTcDMPr/SIs4FsMP2lfWinMsrUO9TkMDVno7PzFncFA/ZCfp0+N
+MXbxCF2C8CyaQZHkApuHc1a2FZ3v3KrmqB+/h27UUZmNGHbGOYt0dm/NVHn05NNl
+gcNCt1etSkjFLvo+pWCnfqDhTBB+mPm1kW1rm+3X9nzGHfCbMWcy32ya9nDGQ9Y7
+8z5Gupd7CtJwqjFDzR10HqTPiydDriKYXB0guYRiJ7rqea+5LM54l/C+NcfDYpu+
+KzMmvOUCH8UAEQEAAYkCHwQYAQIACQUCUihrbwIbDAAKCRC7RjNQ1u8x7+X5D/46
+greky5mJmwRa2IqZpgk5PE5mN0EueCV3iH1K1jKjU8ZFwEkAG0XGDcPe8nBgXxfN
+CnTMayF3xWNWMUrX1WcGD/tEylkWRD3CGVvBS4U0Xym5n7gNhXXOBfLn853eySf9
+0OF6HCp31TWq/jwmjFpG7nvzQSV4CpMWn+LH9WsJ20VsR/k2TxmHtplGfv/zTiU4
+SWjSyjDS1v5JRd04Zxe44tnP1UfikHZCi/HetMV+4iDcp4s0M3/Y5aVtSnAXozAx
+3uEXQmDchFFEzG+4myyobj+m/KV6ABGkzXpwH8Tx54U5wTxuhklj0bmLZwwN2xpV
+fljZWtJNc9ZglS8PRLulu3Z8bVQOTnnuoyZxP7+9R5XhDY/SA2vj7n/w5F6lnqjy
+b8FsXr2qiEl2E0+xAa6UEku9zGgWPNTHZmmtiDKsqhlNW4eAphMvZFqC+6i7vRVV
+9moZ+8ueD0rMrVdP53th/W/R9cQtf/swwtof79ERqObC9Ur3/yy/CCNPI+Dj1qqM
+ZsFEKALVipcexKbqGhQfKYwwaKgDSe8mVHc/JbTwof2rmPxbmBNQWVgHwRVUGB63
+Jnn9afS3SYEBTAz/f4S6TAM30VL2To6H+vKtc4ZPtzRIQD5dU3SDWT4qGMusAgSl
+rG55+BcCqtgEEF7/JbOUHbLUu8+g/F2rZpAbsr5V8g==
+=P9hR
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/libre/ktorrent/keys/pgp/F23275E4BF10AFC1DF6914A6DBD2CE893E2D1C87.asc b/libre/ktorrent/keys/pgp/F23275E4BF10AFC1DF6914A6DBD2CE893E2D1C87.asc
new file mode 100644
index 0000000..ea1f1fc
--- /dev/null
+++ b/libre/ktorrent/keys/pgp/F23275E4BF10AFC1DF6914A6DBD2CE893E2D1C87.asc
@@ -0,0 +1,30 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+mQENBFlRpEYBCACecX3F5xzF6wzeXiuBAuHq74bVHON7I89U+ROloEWYUYMRNTz2
+l1BkNHWRTTqfmPO7LhMY6g4gOPeQVCwgTGVjI8bn6sJd3SFdeiRvvaFBpmn7SjBd
+s1rkKKJIjeMUl1w8dFnmf22V0PnhSSepmNwmd8RQnl1umCTSihDJydGxixw6ZNhr
+4tzbn+Rfadybli61H2hc6/JJHe91i+V1ltgkHwGcs6MUCqXgSL0dUIJs49gSrla0
+gkrcJYF5MWyGxKlajbCjkMCJtN+8bhEmpc4Oe8NZ33arEWnlyh1RVgi5p3RTNApY
+Pxctcg57ExczbKn9R8VLYmPJ7Di3gX0cmotrABEBAAG0HkNocmlzdG9waCBGZWNr
+IDxjZmVja0BrZGUub3JnPokBTgQTAQgAOBYhBPIydeS/EK/B32kUptvSzok+LRyH
+BQJZUaRGAhsDBQsJCAcCBhUICQoLAgQWAgMBAh4BAheAAAoJENvSzok+LRyHeWcH
+/A1E2d5UL2oHsrLIolIiWMmheRorcac+0Hgll1mMUQ5tfPH+LVzgrlMMG7g1Amky
+Hk1qZ5oszrXUg2H/28/cOF/WVlHgQcSGr7aQbHieUivPtZMua+lHUdILC3UV2l1V
+22Zz8HIDl4kxmK6EpoNIOK5Mo550S3e3AKYq5pa/FlckCV9/JoK9+thRCsoAAj3g
+oWwTx9RY5pmLPtklqyC5961Je7KHSIVqapJ/G5DX+yfOC1Psc+vIfyQVqnaefZPW
+dIxXQQhn46i6IRRimw94Gkwca+wslkimt/L/Z7ByZqBsXMyixSQPq+dtSO9CMgr0
+WxTX78wATkTGzh5oSwKCMga5AQ0EWVGkRgEIAMuUnfNfrdx8xn7Jjcm6MGkB/Yep
+XVysrlHxUUS6q7629JdSlVWnQo9GFO927GZClWI9rCGLQMfZZk/jfgKV/nkpLod3
+I51remOg7ohSkwRLAdwJ7xCuNrafhKntFh5/NxuaXxaVIY1muvZbTAsIRyks2jCE
+pUoK43Z8dr4/QPhBstssB8czDME1Tw4r7X+RwjFrQqDItFv6f0BIdEwR462khLEw
+vbXRN1nzs+6Y0foJbJCS3VDZC9scsrrMVMV+OEBF3DXp9ypSWsLnkuBPPIus6Y8G
+j7JvYUBtrUhKL5a7o5G3Te9YhwGgOKVqWlncs6ZLiOV6HnG0BO3xdPcn09cAEQEA
+AYkBNgQYAQgAIBYhBPIydeS/EK/B32kUptvSzok+LRyHBQJZUaRGAhsMAAoJENvS
+zok+LRyHaRMIAI5YaTfGeQDmR08I2LvztOEH/3YF63cNCP/Vp+WAtF/Kr8mMFpFS
+oTHJNMi7p964lHYTTPzPeQzLzV3ayiQjq+DHs6HFmYl73ukzlGGc7KDlyhugQjm6
+AqNtqqXAVykaixnFj8jf2WtQGl1hqpm8GhDRBmZycqMqne4tZokujhtpdC6suRvc
+AB0S+lRZUwrY05k6Nc1A8J8k/lxXXa9KzXNaqKsqppgBZoqKN3zS4146uEjvuLsh
+CarZ/6uUidvP0LBTR7HKye5A9Qdbjlg9qvtR7YF3hqy4g1PRNZWRlsQ1pkCdCTfN
+TA+HYUzK0ESVpY72lWvH49lNg+ufZ1bKvKI=
+=MZJ5
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/libre/ktorrent/libre.patch b/libre/ktorrent/libre.patch
new file mode 100644
index 0000000..9359af4
--- /dev/null
+++ b/libre/ktorrent/libre.patch
@@ -0,0 +1,33 @@
+From 4e021baa456b18cc7699145daed42d5aad961d58 Mon Sep 17 00:00:00 2001
+From: SolveFinder <kwopleq@proton.me>
+Date: Fri, 14 Jul 2023 14:50:31 +0300
+Subject: [PATCH] Removing WebEngineWidgets
+
+---
+ CMakeLists.txt | 10 +---------
+ 1 file changed, 1 insertion(+), 9 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8f0f9b0..c6762b6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -123,15 +123,7 @@ if(KF5Syndication_FOUND)
+   set(HAVE_KF5Syndication 1)
+ endif()
+ 
+-find_package(Qt${QT_MAJOR_VERSION}WebEngineWidgets ${QT_MIN_VERSION})
+-set_package_properties(Qt${QT_MAJOR_VERSION}WebEngineWidgets
+-  PROPERTIES
+-  TYPE OPTIONAL
+-  PURPOSE "Required for KTorrent's search and syndication plugins"
+-)
+-if(Qt${QT_MAJOR_VERSION}WebEngineWidgets_FOUND)
+-  set(HAVE_Qt${QT_MAJOR_VERSION}WebEngineWidgets 1)
+-endif()
++set(HAVE_Qt${QT_MAJOR_VERSION}WebEngineWidgets 0)
+ 
+ find_package(KF5DNSSD ${KF5_MIN_VERSION})
+ set_package_properties(KF5DNSSD
+-- 
+2.41.0
+

From 1901fdda85f0cf454be9928564a513492a0eeb55 Mon Sep 17 00:00:00 2001
From: bill-auger <mr.j.spam.me@gmail.com>
Date: Jul 19 2023 01:23:24 +0000
Subject: [PATCH 30/32] [ktorrent]: housekeeping


---

diff --git a/libre/ktorrent/PKGBUILD b/libre/ktorrent/PKGBUILD
index 5af3b8d..a0b09f2 100644
--- a/libre/ktorrent/PKGBUILD
+++ b/libre/ktorrent/PKGBUILD
@@ -1,35 +1,41 @@
-# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Maintainer (arch): Ronald van Haren <ronald.archlinux.org>
 # Contributor: Travis Willard <travisw@wmpub.ca>
 # Contributor: Georg Grabler <ggrabler@gmail.com>
+# Maintainer: Parabola Hackers <dev@lists.parabola.nu>
+
+
+# parabola changes and rationoale:
+# - build without webengine (search feature)
+
 
 pkgname=ktorrent
 pkgver=23.04.3
 pkgrel=1
 pkgrel+=.parabola1
 pkgdesc='A powerful BitTorrent client for KDE'
-pkgdesc+=', without nonfree qt5-webengine support'
 arch=(x86_64)
 arch+=(i686 armv7h)
 url='https://apps.kde.org/ktorrent/'
 license=(GPL2)
-depends=(libktorrent kcmutils knotifyconfig kparts phonon-qt5)
+depends=(libktorrent kcmutils knotifyconfig kparts phonon-qt5 qt5-webengine)
+depends=( ${depends[*]/qt5-webengine/} )
 makedepends=(extra-cmake-modules kdoctools boost plasma-workspace kdnssd taglib syndication kplotting geoip)
 optdepends=('plasma-workspace: shutdown plugin' 'kdnssd: zeroconf plugin' 'taglib: mediaplayer plugin' 'geoip: info widget plugin'
             'syndication: syndication plugin' 'kplotting: statistics plugin')
 groups=(kde-applications kde-network)
-source=(https://download.kde.org/stable/release-service/$pkgver/src/$pkgname-$pkgver.tar.xz{,.sig}
-       'libre.patch')
+source=(https://download.kde.org/stable/release-service/$pkgver/src/$pkgname-$pkgver.tar.xz{,.sig})
+source+=(libre.patch)
 sha256sums=('e507cb5b176b11bbe9293ee92cb026838498e1f8bfad5097c5fd13b8ec8e069f'
-            'SKIP'
-            'aa44d844895294799f5d52838af3dc314f2005a892b365beed76c5de6a374a10')
+            'SKIP')
+sha256sums+=('aa44d844895294799f5d52838af3dc314f2005a892b365beed76c5de6a374a10')
 validpgpkeys=(CA262C6C83DE4D2FB28A332A3A6A4DB839EAA6D7  # Albert Astals Cid <aacid@kde.org>
               F23275E4BF10AFC1DF6914A6DBD2CE893E2D1C87  # Christoph Feck <cfeck@kde.org>
               D81C0CB38EB725EF6691C385BB463350D6EF31EF) # Heiko Becker <heiko.becker@kde.org>
 
 prepare() {
-  cd "$pkgname-$pkgver"
+  cd $pkgname-$pkgver
+
   patch -p1 -i ../libre.patch
-  cd ..
 }
 
 build() {

From 4ace7cadac17f9087d766a741e3c35fe5a7dee56 Mon Sep 17 00:00:00 2001
From: David P <megver83@parabola.nu>
Date: Jul 23 2023 00:30:02 +0000
Subject: [PATCH 31/32] updpkg: nonsystemd/sddm 0.20.0-1.nonsystemd1


Signed-off-by: David P <megver83@parabola.nu>

---

diff --git a/nonsystemd/sddm/PKGBUILD b/nonsystemd/sddm/PKGBUILD
index 8bba57f..25ca87e 100644
--- a/nonsystemd/sddm/PKGBUILD
+++ b/nonsystemd/sddm/PKGBUILD
@@ -1,11 +1,11 @@
 # Maintainer: David P. <megver83@parabola.nu>
-# Maintainer (arch): Felix Yan <felixonmars@archlinux.org>
-# Maintainer (arch): Antonio Rojas <arojas@archlinux.org>
-# Contributor: Andrea Scarpino <andrea@archlinux.org>
+# Maintainer (Arch): Felix Yan <felixonmars@archlinux.org>
+# Maintainer (Arch): Antonio Rojas <arojas@archlinux.org>
+# Contributor (Arch): Andrea Scarpino <andrea@archlinux.org>
 
 pkgname=sddm
-pkgver=0.19.0
-pkgrel=8
+pkgver=0.20.0
+pkgrel=1
 pkgrel+=.nonsystemd1
 pkgdesc='QML based X11 and Wayland display manager'
 arch=(x86_64)
@@ -20,36 +20,11 @@ backup=('usr/share/sddm/scripts/Xsetup'
         'etc/pam.d/sddm-autologin'
         'etc/pam.d/sddm-greeter')
 provides=(display-manager)
-source=($pkgname-$pkgver.tar.gz::"https://github.com/$pkgname/$pkgname/archive/v$pkgver.tar.gz"
-        sddm.sysusers sddm.tmpfiles
-        pam-faillock.patch
-        sddm-fix-race-pre.patch::"https://github.com/sddm/sddm/commit/68cc9e31.patch"
-        sddm-fix-race.patch::"https://patch-diff.githubusercontent.com/raw/sddm/sddm/pull/1324.patch"
-        sddm-desktop-session.patch::"https://github.com/sddm/sddm/commit/5fd5ed27.patch"
-        sddm-0.18.0-Xsession.patch
-        sddm-0.19.0-pam-1.4-substack.patch
-        sddm-0.19.0-Xserver_startup.patch
-        sddm-fix-build.patch)
-sha256sums=('e76da1f13d5ad5e0179e3fec57543126044339405ef19c397e105e0807bd4e41'
+source=(https://github.com/$pkgname/$pkgname/archive/v$pkgver/$pkgname-$pkgver.tar.gz
+        sddm.sysusers sddm.tmpfiles)
+sha256sums=('467c8bd91e0d4f76d4bc4e57ab334f1f48a33478482ba9476d93b0b3d7ace9fb'
             '9fce66f325d170c61caed57816f4bc72e9591df083e89da114a3bb16b0a0e60f'
-            'db625f2a3649d6d203e1e1b187a054d5c6263cadf7edd824774d8ace52219677'
-            '441f441fc63c16c5dbd83411a305d88b17e50836c958677db881b9b6c13c668a'
-            '33770560315b5369fd15baf5cd877f1191e642cefc6d2a1b4f0a7a80c109c025'
-            'bbe45a316140c145d7de67dbe95764e44a0787ad9c6bcd2f7e0694484bd79640'
-            '83e4df6e1c0c23e7b38c1d523c236108eae177ba11c5d466825690845ef99fcf'
-            'dc2384e1b17cf1a217bff363c948494a74ec8d41c2a11dbd3cec0aefa880e845'
-            '921674946b1d0f728382ebd4fde2566f16b80434ebce6e790c684f98819273bb'
-            'd46932e0a60cf5050aaea590ff5f3ab580d2118cbf746f55f78033f72f1bcb76'
-            'e9058d261138e637248b20243e3e81ff337ab669a4a25fbff387bf9558a682c6')
-options=(debug)
-
-prepare() {
-  patch -d $pkgname-$pkgver -p1 < pam-faillock.patch # Port away from deprecated pam_tally2
-  patch -d $pkgname-$pkgver -p1 < sddm-fix-race-pre.patch # Make next patch apply
-  patch -d $pkgname-$pkgver -p1 < sddm-fix-race.patch # Fix race at startup
-  patch -d $pkgname-$pkgver -p1 < sddm-desktop-session.patch # Fix desktop session name
-  patch -d $pkgname-$pkgver -p1 < sddm-fix-build.patch # Fix build with Qt post 5.15.2
-}
+            'db625f2a3649d6d203e1e1b187a054d5c6263cadf7edd824774d8ace52219677')
 
 build() {
   cmake -B build -S $pkgname-$pkgver \
@@ -57,9 +32,9 @@ build() {
         -DCMAKE_INSTALL_LIBEXECDIR=/usr/lib/sddm \
         -DDBUS_CONFIG_DIR=/usr/share/dbus-1/system.d \
         -DDBUS_CONFIG_FILENAME=sddm_org.freedesktop.DisplayManager.conf \
+        -DBUILD_MAN_PAGES=ON \
         -DUSE_ELOGIND=yes \
         -DNO_SYSTEMD=yes \
-        -DBUILD_MAN_PAGES=ON \
         -DUID_MAX=60513
   cmake --build build
 }
diff --git a/nonsystemd/sddm/pam-faillock.patch b/nonsystemd/sddm/pam-faillock.patch
deleted file mode 100644
index 91c44bb..0000000
--- a/nonsystemd/sddm/pam-faillock.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/services/sddm-autologin.pam b/services/sddm-autologin.pam
-index 4c82048..b42991e 100755
---- a/services/sddm-autologin.pam
-+++ b/services/sddm-autologin.pam
-@@ -1,6 +1,6 @@
- #%PAM-1.0
- auth        required    pam_env.so
--auth        required    pam_tally2.so file=/var/log/tallylog onerr=succeed
-+auth        required    pam_faillock.so preauth
- auth        required    pam_shells.so
- auth        required    pam_nologin.so
- auth        required    pam_permit.so
diff --git a/nonsystemd/sddm/sddm-0.18.0-Xsession.patch b/nonsystemd/sddm/sddm-0.18.0-Xsession.patch
deleted file mode 100644
index 41c813a..0000000
--- a/nonsystemd/sddm/sddm-0.18.0-Xsession.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/data/scripts/Xsession	2016-08-28 14:52:04.910181422 +0200
-+++ b/data/scripts/Xsession	2017-10-21 15:25:47.668886596 +0200
-@@ -50,6 +50,10 @@
-     ;;
- esac
- 
-+# Make D-Bus and ConsoleKit start properly, see:
-+# /etc/X11/xinit/xinitrc.d/{80-dbus,90-consolekit}
-+command="$@"
-+
- [ -f /etc/xprofile ] && . /etc/xprofile
- [ -f $HOME/.xprofile ] && . $HOME/.xprofile
- 
-@@ -94,8 +98,8 @@
-   . "$USERXSESSION"
- fi
- 
--if [ -z "$*" ]; then
-+if [ -z "$command" ]; then
-     exec xmessage -center -buttons OK:0 -default OK "Sorry, $DESKTOP_SESSION is no valid session."
- else
--    exec $@
-+    exec $command
- fi
diff --git a/nonsystemd/sddm/sddm-0.19.0-Xserver_startup.patch b/nonsystemd/sddm/sddm-0.19.0-Xserver_startup.patch
deleted file mode 100644
index a8d6064..0000000
--- a/nonsystemd/sddm/sddm-0.19.0-Xserver_startup.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From a13d38ea605a8db7392f90ae1a894e14d7746e8d Mon Sep 17 00:00:00 2001
-From: Fabian Vogt <fabian@ritter-vogt.de>
-Date: Wed, 9 Dec 2020 19:33:08 +0100
-Subject: [PATCH] Emit XorgDisplayServer::started only when the auth file is
- ready
-
----
- src/daemon/XorgDisplayServer.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
-index 5f93a1b..4c51304 100644
---- a/src/daemon/XorgDisplayServer.cpp
-+++ b/src/daemon/XorgDisplayServer.cpp
-@@ -222,8 +222,6 @@ namespace SDDM {
- 
-             // close our pipe
-             close(pipeFds[0]);
--
--            emit started();
-         }
- 
-         // The file is also used by the greeter, which does care about the
-@@ -236,6 +234,8 @@ namespace SDDM {
-         }
-         changeOwner(m_authPath);
- 
-+        emit started();
-+
-         // set flag
-         m_started = true;
- 
--- 
-2.35.1
-
diff --git a/nonsystemd/sddm/sddm-0.19.0-pam-1.4-substack.patch b/nonsystemd/sddm/sddm-0.19.0-pam-1.4-substack.patch
deleted file mode 100644
index 49c41cb..0000000
--- a/nonsystemd/sddm/sddm-0.19.0-pam-1.4-substack.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- sddm-0.19.0/services/sddm-autologin.pam
-+++ sddm-0.19.0/services/sddm-autologin.pam
-@@ -1,6 +1,5 @@
- #%PAM-1.0
- auth        required    pam_env.so
--auth        required    pam_tally2.so file=/var/log/tallylog onerr=succeed
- auth        required    pam_shells.so
- auth        required    pam_nologin.so
- auth        required    pam_permit.so
---- sddm-0.19.0/services/sddm.pam
-+++ sddm-0.19.0/services/sddm.pam
-@@ -1,15 +1,15 @@
- #%PAM-1.0
- 
--auth		include		system-login
-+auth		substack	system-login
- -auth		optional	pam_gnome_keyring.so
- -auth   optional  pam_kwallet5.so
- 
--account		include		system-login
-+account		substack	system-login
- 
--password	include		system-login
-+password	substack	system-login
- -password	optional	pam_gnome_keyring.so use_authtok
- 
- session		optional	pam_keyinit.so force revoke
--session		include		system-login
-+session		substack	system-login
- -session		optional	pam_gnome_keyring.so auto_start
- -session  optional  pam_kwallet5.so auto_start
diff --git a/nonsystemd/sddm/sddm-fix-build.patch b/nonsystemd/sddm/sddm-fix-build.patch
deleted file mode 100644
index 8e6cde8..0000000
--- a/nonsystemd/sddm/sddm-fix-build.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
-index 5f93a1b..d5f29a9 100644
---- a/src/daemon/XorgDisplayServer.cpp
-+++ b/src/daemon/XorgDisplayServer.cpp
-@@ -65,7 +65,7 @@ namespace SDDM {
-         // create a random hexadecimal number
-         const char *digits = "0123456789abcdef";
-         for (int i = 0; i < 32; ++i)
--            m_cookie[i] = digits[dis(gen)];
-+            m_cookie[i] = QLatin1Char(digits[dis(gen)]);
-     }
- 
-     XorgDisplayServer::~XorgDisplayServer() {

From 36e299ccb1040c10094b7e8c901a8b966095ecfd Mon Sep 17 00:00:00 2001
From: grizzlyuser <grizzlyuser@protonmail.com>
Date: Aug 01 2023 20:30:44 +0000
Subject: [PATCH 32/32] libre/iceweasel: 116.0, only upstream changes


Please note, build for x86_64 required 50+ GB of (RAM + SWAP).
This is probably due to the full LTO enabled by Arch Linux. Based on my
monitoring, memory usage does not go over 15 GB most of the build time,
but increases significantly towards the end of the build.

---

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 5c988de..ef8e257 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
@@ -1,4 +1,4 @@
-From b46ca81d0aa1f481c8ac8059992c77258e5e556e Mon Sep 17 00:00:00 2001
+From 20106ae10f9c6a58f78ce42e7a319385441a1b95 Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Wed, 30 Dec 2020 17:20:39 +0200
 Subject: [PATCH 01/13] Point to local omni.ja files, not remote server
@@ -24,7 +24,8 @@ If necessary, missing files can be added later.
 ---
  .../components/ASRouterAdmin/ASRouterAdmin.jsx            | 2 +-
  .../newtab/data/content/activity-stream.bundle.js         | 2 +-
- services/settings/Utils.sys.mjs                               | 2 +-
+ services/settings/Utils.sys.mjs                           | 2 +-
+ services/settings/docs/index.rst                          | 4 ++--
  .../periodic-updates/scripts/periodic_file_updates.sh     | 2 +-
  .../components/antitracking/docs/query-stripping/index.md | 2 +-
  .../backgroundtasks/BackgroundTask_message.sys.mjs        | 4 ++--
@@ -33,13 +34,13 @@ If necessary, missing files can be added later.
  .../components/search/docs/SearchEngineConfiguration.rst  | 2 +-
  toolkit/modules/AppConstants.sys.mjs                      | 4 ++--
  toolkit/mozapps/defaultagent/RemoteSettings.cpp           | 2 +-
- 11 files changed, 16 insertions(+), 16 deletions(-)
+ 12 files changed, 18 insertions(+), 18 deletions(-)
 
 diff --git a/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx b/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx
-index c4aa6a03e9..345abc1e71 100644
+index 3762be9c99..1a9c5028ff 100644
 --- a/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx
 +++ b/browser/components/newtab/content-src/components/ASRouterAdmin/ASRouterAdmin.jsx
-@@ -1240,7 +1240,7 @@ export class ASRouterAdminInner extends React.PureComponent {
+@@ -1255,7 +1255,7 @@ export class ASRouterAdminInner extends React.PureComponent {
                    <a
                      className="providerUrl"
                      target="_blank"
@@ -49,10 +50,10 @@ index c4aa6a03e9..345abc1e71 100644
                    >
                      nimbus-desktop-experiments
 diff --git a/browser/components/newtab/data/content/activity-stream.bundle.js b/browser/components/newtab/data/content/activity-stream.bundle.js
-index 87cb0f624c..1cf1012f29 100644
+index 0f4445a88b..5806d07265 100644
 --- a/browser/components/newtab/data/content/activity-stream.bundle.js
 +++ b/browser/components/newtab/data/content/activity-stream.bundle.js
-@@ -1749,7 +1749,7 @@ class ASRouterAdminInner extends (external_React_default()).PureComponent {
+@@ -1783,7 +1783,7 @@ class ASRouterAdminInner extends (external_React_default()).PureComponent {
          label = /*#__PURE__*/external_React_default().createElement("span", null, "remote settings (", /*#__PURE__*/external_React_default().createElement("a", {
            className: "providerUrl",
            target: "_blank",
@@ -62,10 +63,10 @@ index 87cb0f624c..1cf1012f29 100644
          }, "nimbus-desktop-experiments"), ")");
        }
 diff --git a/services/settings/Utils.sys.mjs b/services/settings/Utils.sys.mjs
-index 94f4713380..3a8165f878 100644
+index 697409ab07..316cd907a2 100644
 --- a/services/settings/Utils.sys.mjs
 +++ b/services/settings/Utils.sys.mjs
-@@ -108,7 +108,7 @@ var Utils = {
+@@ -100,7 +100,7 @@ export var Utils = {
        : AppConstants.REMOTE_SETTINGS_SERVER_URL;
    },
  
@@ -74,6 +75,24 @@ index 94f4713380..3a8165f878 100644
  
    /**
     * Logger instance.
+diff --git a/services/settings/docs/index.rst b/services/settings/docs/index.rst
+index 3e042f67e4..dc8584c318 100644
+--- a/services/settings/docs/index.rst
++++ b/services/settings/docs/index.rst
+@@ -177,11 +177,11 @@ It is possible to package a dump of the server records that will be loaded into
+ 
+ The JSON dump will serve as the default dataset for ``.get()``, instead of doing a round-trip to pull the latest data. It will also reduce the amount of data to be downloaded on the first synchronization.
+ 
+-#. Place the JSON dump of the server records in the ``services/settings/dumps/main/`` folder. Using this command:
++#. Place the JSON dump of the server records in the ``services/settings/dumps/main/`` folder. Using this command (replace 'https://settings.invalid' with your Remote Settings address):
+    ::
+ 
+       CID="your-collection"
+-      curl "https://firefox.settings.services.mozilla.com/v1/buckets/main/collections/${CID}/changeset?_expected=0" | jq '{"data": .changes, "timestamp": .timestamp}' > services/settings/dumps/main/${CID}.json``
++      curl "https://settings.invalid/v1/buckets/main/collections/${CID}/changeset?_expected=0" | jq '{"data": .changes, "timestamp": .timestamp}' > services/settings/dumps/main/${CID}.json``
+ 
+ #. Add the filename to the ``FINAL_TARGET_FILES`` list in ``services/settings/dumps/main/moz.build``
+ #. Add the filename to the ``[browser]`` section of ``mobile/android/installer/package-manifest.in`` IF the file should be bundled with Android.
 diff --git a/taskcluster/docker/periodic-updates/scripts/periodic_file_updates.sh b/taskcluster/docker/periodic-updates/scripts/periodic_file_updates.sh
 index b88ee476da..440615e4e1 100755
 --- a/taskcluster/docker/periodic-updates/scripts/periodic_file_updates.sh
@@ -101,7 +120,7 @@ index e49d8513ba..c1c6ae5deb 100644
  they apply.
  
 diff --git a/toolkit/components/backgroundtasks/BackgroundTask_message.sys.mjs b/toolkit/components/backgroundtasks/BackgroundTask_message.sys.mjs
-index 1d9e4cb79b..7c1f9895fc 100644
+index bb9d71b5c0..ec0c5f11d7 100644
 --- a/toolkit/components/backgroundtasks/BackgroundTask_message.sys.mjs
 +++ b/toolkit/components/backgroundtasks/BackgroundTask_message.sys.mjs
 @@ -19,8 +19,8 @@
@@ -116,10 +135,10 @@ index 1d9e4cb79b..7c1f9895fc 100644
  // --preview: enable Remote Settings and Experiment previews.
  //
 diff --git a/toolkit/components/search/SearchUtils.sys.mjs b/toolkit/components/search/SearchUtils.sys.mjs
-index 2d15977ae2..815bf5cac9 100644
+index 65f30b5f15..13e58ac5f6 100644
 --- a/toolkit/components/search/SearchUtils.sys.mjs
 +++ b/toolkit/components/search/SearchUtils.sys.mjs
-@@ -151,13 +151,13 @@ export var SearchUtils = {
+@@ -152,13 +152,13 @@ export var SearchUtils = {
  
    ENGINES_URLS: {
      "prod-main":
@@ -175,10 +194,10 @@ index b430666f68..0f640980ae 100644
  
    REMOTE_SETTINGS_VERIFY_SIGNATURE:
 diff --git a/toolkit/mozapps/defaultagent/RemoteSettings.cpp b/toolkit/mozapps/defaultagent/RemoteSettings.cpp
-index 667d9fc628..b2bf628f29 100644
+index 37a376ff90..ef73563f85 100644
 --- a/toolkit/mozapps/defaultagent/RemoteSettings.cpp
 +++ b/toolkit/mozapps/defaultagent/RemoteSettings.cpp
-@@ -23,7 +23,7 @@ extern "C" {
+@@ -25,7 +25,7 @@ extern "C" {
  HRESULT IsAgentRemoteDisabledRust(const char* szUrl, DWORD* lpdwDisabled);
  }
  
@@ -188,10 +207,10 @@ index 667d9fc628..b2bf628f29 100644
  #define PROD_CID "windows-default-browser-agent"
  #define PROD_ID "state"
 -- 
-2.40.0
+2.41.0
 
 
-From 8183f65cfcd0596c0beaf25904b7a97c267f5032 Mon Sep 17 00:00:00 2001
+From cc689c8b58ccb66d58586e219bc41822f1e98890 Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Wed, 30 Dec 2020 17:34:08 +0200
 Subject: [PATCH 02/13] Remove polling triggered by push broadcasts
@@ -232,10 +251,10 @@ index 825bb4a452..eda1eaa321 100644
     * Call the listeners of the specified broadcasts.
     *
 diff --git a/services/settings/remote-settings.sys.mjs b/services/settings/remote-settings.sys.mjs
-index 4ce80b0b8b..235d32df0e 100644
+index de49d768a8..65ca487207 100644
 --- a/services/settings/remote-settings.sys.mjs
 +++ b/services/settings/remote-settings.sys.mjs
-@@ -578,11 +578,7 @@ function remoteSettingsFunction() {
+@@ -575,11 +575,7 @@ function remoteSettingsFunction() {
        moduleURI: import.meta.url,
        symbolName: "remoteSettingsBroadcastHandler",
      };
@@ -248,7 +267,7 @@ index 4ce80b0b8b..235d32df0e 100644
    };
  
    return remoteSettings;
-@@ -602,9 +598,6 @@ export var remoteSettingsBroadcastHandler = {
+@@ -599,9 +595,6 @@ export var remoteSettingsBroadcastHandler = {
        `Push notification received (version=${version} phase=${phase})`
      );
  
@@ -260,10 +279,10 @@ index 4ce80b0b8b..235d32df0e 100644
    },
  };
 -- 
-2.40.0
+2.41.0
 
 
-From 1c40cc62a19085d898a9a861decd610a8db143ca Mon Sep 17 00:00:00 2001
+From 53faed56ab66fd25c5e82a81b264454596b34a72 Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Wed, 30 Dec 2020 17:41:54 +0200
 Subject: [PATCH 03/13] Remove timer that triggers polling for changes
@@ -304,10 +323,10 @@ index 3bfed26ea4..807eb220ec 100644
 -# see syntax https://searchfox.org/mozilla-central/rev/cc280c4be94ff8cf64a27cc9b3d6831ffa49fa45/toolkit/components/timermanager/UpdateTimerManager.jsm#155
 -category update-timer RemoteSettingsComponents @mozilla.org/services/settings;1,getService,services-settings-poll-changes,services.settings.poll_interval,86400,259200
 -- 
-2.40.0
+2.41.0
 
 
-From d5ed0ed92a5a65ca841290becc9f42fe83b3e0dc Mon Sep 17 00:00:00 2001
+From 3a48f439a47bc8db72718660691472e412fb5363 Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Wed, 30 Dec 2020 17:47:41 +0200
 Subject: [PATCH 04/13] Utils: fetch timestamps of each collection locally
@@ -319,17 +338,17 @@ timestamps from that file and mock response headers to not confuse any
 code that expects them.
 ---
  browser/installer/package-manifest.in     |  1 +
- services/settings/Utils.sys.mjs               | 28 ++++++++++++++++++++---
+ services/settings/Utils.sys.mjs           | 28 ++++++++++++++++++++---
  services/settings/dumps/monitor/moz.build |  8 +++++++
  services/settings/dumps/moz.build         |  1 +
  4 files changed, 35 insertions(+), 3 deletions(-)
  create mode 100644 services/settings/dumps/monitor/moz.build
 
 diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
-index 8caff8de94..1e53e074c9 100644
+index 41d13e23c4..8fa609c2b5 100644
 --- a/browser/installer/package-manifest.in
 +++ b/browser/installer/package-manifest.in
-@@ -262,6 +262,7 @@
+@@ -270,6 +270,7 @@
  @RESPATH@/browser/defaults/settings/last_modified.json
  @RESPATH@/browser/defaults/settings/blocklists
  @RESPATH@/browser/defaults/settings/main
@@ -338,10 +357,10 @@ index 8caff8de94..1e53e074c9 100644
  
  ; Warning: changing the path to channel-prefs.js can cause bugs (Bug 756325)
 diff --git a/services/settings/Utils.sys.mjs b/services/settings/Utils.sys.mjs
-index 3a8165f878..90922cc6ff 100644
+index 316cd907a2..8765359371 100644
 --- a/services/settings/Utils.sys.mjs
 +++ b/services/settings/Utils.sys.mjs
-@@ -377,7 +377,7 @@ var Utils = {
+@@ -369,7 +369,7 @@ export var Utils = {
    async fetchLatestChanges(serverUrl, options = {}) {
      const { expectedTimestamp, lastEtag = "", filters = {} } = options;
  
@@ -350,7 +369,7 @@ index 3a8165f878..90922cc6ff 100644
      const params = {
        ...filters,
        _expected: expectedTimestamp ?? 0,
-@@ -392,7 +392,21 @@ var Utils = {
+@@ -384,7 +384,21 @@ export var Utils = {
            .map(([k, v]) => `${k}=${encodeURIComponent(v)}`)
            .join("&");
      }
@@ -373,7 +392,7 @@ index 3a8165f878..90922cc6ff 100644
  
      if (response.status >= 500) {
        throw new Error(`Server error ${response.status} ${response.statusText}`);
-@@ -427,7 +441,15 @@ var Utils = {
+@@ -419,7 +433,15 @@ export var Utils = {
        }
      }
  
@@ -417,10 +436,10 @@ index f407580bfa..53e9d8b45e 100644
  ]
  
 -- 
-2.40.0
+2.41.0
 
 
-From a68b1806bf33a57a383924226d2b8bd5e7692ba7 Mon Sep 17 00:00:00 2001
+From e9aecc206fbece0edaebd4ab45281bf3e2715a3b Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Wed, 30 Dec 2020 17:52:10 +0200
 Subject: [PATCH 05/13] Utils: disable offline checking
@@ -432,10 +451,10 @@ current and any future code that relies on it.
  1 file changed, 10 deletions(-)
 
 diff --git a/services/settings/Utils.sys.mjs b/services/settings/Utils.sys.mjs
-index 90922cc6ff..a4a578a73a 100644
+index 8765359371..7b894cc698 100644
 --- a/services/settings/Utils.sys.mjs
 +++ b/services/settings/Utils.sys.mjs
-@@ -191,16 +191,6 @@ var Utils = {
+@@ -183,16 +183,6 @@ export var Utils = {
     * @return {bool} Whether network is down or not.
     */
    get isOffline() {
@@ -453,10 +472,10 @@ index 90922cc6ff..a4a578a73a 100644
    },
  
 -- 
-2.40.0
+2.41.0
 
 
-From ad8c0e91a1e948d545a5c179fe8c6e5ae25d6fbf Mon Sep 17 00:00:00 2001
+From 42069dc660482b2d46cc28acd05b03a231042990 Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Wed, 30 Dec 2020 17:56:02 +0200
 Subject: [PATCH 06/13] Refactor hashing logic to a separate function
@@ -465,14 +484,14 @@ It is used instead of internal signature validation mechanism, for
 integrity checking of the locally cached data.
 ---
  services/settings/RemoteSettingsWorker.sys.mjs | 4 ++++
- services/settings/SharedUtils.jsm              | 9 +++++++--
+ services/settings/SharedUtils.sys.mjs          | 9 +++++++--
  2 files changed, 11 insertions(+), 2 deletions(-)
 
 diff --git a/services/settings/RemoteSettingsWorker.sys.mjs b/services/settings/RemoteSettingsWorker.sys.mjs
-index c08adbca98..a46114e1d6 100644
+index 57bfb3f3d5..52a0b7961a 100644
 --- a/services/settings/RemoteSettingsWorker.sys.mjs
 +++ b/services/settings/RemoteSettingsWorker.sys.mjs
-@@ -182,6 +182,10 @@ class Worker {
+@@ -177,6 +177,10 @@ class Worker {
      // task on the current thread instead of the worker thread.
      return lazy.SharedUtils.checkContentHash(buffer, size, hash);
    }
@@ -483,11 +502,11 @@ index c08adbca98..a46114e1d6 100644
  }
  
  // Now, first add a shutdown blocker. If that fails, we must have
-diff --git a/services/settings/SharedUtils.jsm b/services/settings/SharedUtils.jsm
-index 9804e80c91..de67b0fb6f 100644
---- a/services/settings/SharedUtils.jsm
-+++ b/services/settings/SharedUtils.jsm
-@@ -23,11 +23,16 @@ var SharedUtils = {
+diff --git a/services/settings/SharedUtils.sys.mjs b/services/settings/SharedUtils.sys.mjs
+index 1eeaf0bed9..d998a2d3b1 100644
+--- a/services/settings/SharedUtils.sys.mjs
++++ b/services/settings/SharedUtils.sys.mjs
+@@ -21,11 +21,16 @@ export var SharedUtils = {
        return false;
      }
      // Has expected content?
@@ -507,10 +526,10 @@ index 9804e80c91..de67b0fb6f 100644
  
    /**
 -- 
-2.40.0
+2.41.0
 
 
-From 9ff50eb26a00dcd58449c1299e1f7121803116f2 Mon Sep 17 00:00:00 2001
+From 61f117cd66893b44dbad129e09c7f3ad44bacbd9 Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Wed, 30 Dec 2020 18:05:02 +0200
 Subject: [PATCH 07/13] Client: Fetch and hash records from local dump
@@ -545,7 +564,7 @@ the upgrade to local-only setup.
  1 file changed, 28 insertions(+), 38 deletions(-)
 
 diff --git a/services/settings/RemoteSettingsClient.sys.mjs b/services/settings/RemoteSettingsClient.sys.mjs
-index 7506ce3a71..b69f5ca39d 100644
+index daf4798477..468f07bc9a 100644
 --- a/services/settings/RemoteSettingsClient.sys.mjs
 +++ b/services/settings/RemoteSettingsClient.sys.mjs
 @@ -706,11 +706,9 @@ export class RemoteSettingsClient extends EventEmitter {
@@ -609,7 +628,7 @@ index 7506ce3a71..b69f5ca39d 100644
      }
    }
  
-@@ -1188,24 +1176,26 @@ export class RemoteSettingsClient extends EventEmitter {
+@@ -1185,24 +1173,26 @@ export class RemoteSettingsClient extends EventEmitter {
     * @param since timestamp of last sync (optional)
     */
    async _fetchChangeset(expectedTimestamp, since) {
@@ -653,10 +672,10 @@ index 7506ce3a71..b69f5ca39d 100644
        remoteRecords,
      };
 -- 
-2.40.0
+2.41.0
 
 
-From 3dade2e006301402a7837694bcd3303fd0dfa3c0 Mon Sep 17 00:00:00 2001
+From 413b18048e8d302862d4c2795ce4e6b62fcad71a Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Wed, 30 Dec 2020 18:42:56 +0200
 Subject: [PATCH 08/13] Client: start deferred sync on get() or on()
@@ -678,17 +697,17 @@ occurs during the session.
  1 file changed, 26 insertions(+), 1 deletion(-)
 
 diff --git a/services/settings/RemoteSettingsClient.sys.mjs b/services/settings/RemoteSettingsClient.sys.mjs
-index b69f5ca39d..5cc577ea8f 100644
+index 468f07bc9a..34728b6eb1 100644
 --- a/services/settings/RemoteSettingsClient.sys.mjs
 +++ b/services/settings/RemoteSettingsClient.sys.mjs
-@@ -11,6 +11,7 @@ const lazy = {};
+@@ -13,6 +13,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
    ClientEnvironmentBase:
      "resource://gre/modules/components-utils/ClientEnvironment.sys.mjs",
    Database: "resource://services-settings/Database.sys.mjs",
 +  DeferredTask: "resource://gre/modules/DeferredTask.sys.mjs",
+   IDBHelpers: "resource://services-settings/IDBHelpers.sys.mjs",
+   KintoHttpClient: "resource://services-common/kinto-http-client.sys.mjs",
    RemoteSettingsWorker:
-     "resource://services-settings/RemoteSettingsWorker.sys.mjs",
-   UptakeTelemetry: "resource://services-common/uptake-telemetry.sys.mjs",
 @@ -27,6 +28,7 @@ XPCOMUtils.defineLazyModuleGetters(lazy, {
  });
  
@@ -758,10 +777,10 @@ index b69f5ca39d..5cc577ea8f 100644
     * Synchronize the local database with the remote server.
     *
 -- 
-2.40.0
+2.41.0
 
 
-From aa31402b33353697d89d75f068f5f17bf9120d8a Mon Sep 17 00:00:00 2001
+From 950176b012206ac2455abf39b0337c3763b41b2f Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Wed, 30 Dec 2020 18:53:51 +0200
 Subject: [PATCH 09/13] Client: deep compare records if timestamps match
@@ -783,18 +802,18 @@ noticeable performance issues.
  1 file changed, 5 insertions(+), 1 deletion(-)
 
 diff --git a/services/settings/RemoteSettingsClient.sys.mjs b/services/settings/RemoteSettingsClient.sys.mjs
-index e19cece909..39d5c239bf 100644
+index 34728b6eb1..debb3df51b 100644
 --- a/services/settings/RemoteSettingsClient.sys.mjs
 +++ b/services/settings/RemoteSettingsClient.sys.mjs
-@@ -20,6 +20,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
+@@ -24,6 +24,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
  });
  
  XPCOMUtils.defineLazyModuleGetters(lazy, {
 +  CanonicalJSON: "resource://gre/modules/CanonicalJSON.jsm",
-   IDBHelpers: "resource://services-settings/IDBHelpers.jsm",
-   KintoHttpClient: "resource://services-common/kinto-http-client.js",
    ObjectUtils: "resource://gre/modules/ObjectUtils.jsm",
-@@ -1176,7 +1177,10 @@ export class RemoteSettingsClient extends EventEmitter {
+ });
+ 
+@@ -1173,7 +1174,10 @@ export class RemoteSettingsClient extends EventEmitter {
          const old = oldById.get(r.id);
          if (old) {
            oldById.delete(r.id);
@@ -807,10 +826,10 @@ index e19cece909..39d5c239bf 100644
            }
          } else {
 -- 
-2.40.0
+2.41.0
 
 
-From 96305ff73eed9d556752b39fd265892a698a943e Mon Sep 17 00:00:00 2001
+From 1969cb005348ecaff8a0b6cd5e68bf46c6d066ce Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Wed, 30 Dec 2020 19:01:39 +0200
 Subject: [PATCH 10/13] Client: delete more data on cleanup
@@ -828,7 +847,7 @@ logic gets the data about the attachments from those records.
  1 file changed, 9 insertions(+), 3 deletions(-)
 
 diff --git a/services/settings/RemoteSettingsClient.sys.mjs b/services/settings/RemoteSettingsClient.sys.mjs
-index 833400d047..e4c2175e06 100644
+index debb3df51b..d2968c4faf 100644
 --- a/services/settings/RemoteSettingsClient.sys.mjs
 +++ b/services/settings/RemoteSettingsClient.sys.mjs
 @@ -259,7 +259,7 @@ class AttachmentDownloader extends Downloader {
@@ -840,7 +859,7 @@ index 833400d047..e4c2175e06 100644
          )
      );
    }
-@@ -1136,7 +1136,7 @@ export class RemoteSettingsClient extends EventEmitter {
+@@ -1133,7 +1133,7 @@ export class RemoteSettingsClient extends EventEmitter {
            // Signature failed, clear local DB because it contains
            // bad data (local + remote changes).
            lazy.console.debug(`${this.identifier} clear local data`);
@@ -849,7 +868,7 @@ index 833400d047..e4c2175e06 100644
            // Local data was tampered, throw and it will retry from empty DB.
            lazy.console.error(`${this.identifier} local data was corrupted`);
            throw new CorruptedDataError(this.identifier);
-@@ -1158,7 +1158,7 @@ export class RemoteSettingsClient extends EventEmitter {
+@@ -1155,7 +1155,7 @@ export class RemoteSettingsClient extends EventEmitter {
              // _importJSONDump() only clears DB if dump is available,
              // therefore do it here!
              if (imported < 0) {
@@ -858,7 +877,7 @@ index 833400d047..e4c2175e06 100644
              }
            }
          }
-@@ -1198,6 +1198,12 @@ export class RemoteSettingsClient extends EventEmitter {
+@@ -1195,6 +1195,12 @@ export class RemoteSettingsClient extends EventEmitter {
      return syncResult;
    }
  
@@ -872,10 +891,10 @@ index 833400d047..e4c2175e06 100644
     * Fetch information from changeset endpoint.
     *
 -- 
-2.40.0
+2.41.0
 
 
-From cb660b9206bd321c98379a0336c72b4c67fa8dc6 Mon Sep 17 00:00:00 2001
+From 51d266f167d239cba380d581670a6b0e237423d0 Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Wed, 30 Dec 2020 19:07:56 +0200
 Subject: [PATCH 11/13] Client: remove comparison of collection timestamps
@@ -890,10 +909,10 @@ necessary cleanup. So remove the checks.
  1 file changed, 5 deletions(-)
 
 diff --git a/services/settings/RemoteSettingsClient.sys.mjs b/services/settings/RemoteSettingsClient.sys.mjs
-index e4c2175e06..6b5ce4e447 100644
+index d2968c4faf..8233fe17cb 100644
 --- a/services/settings/RemoteSettingsClient.sys.mjs
 +++ b/services/settings/RemoteSettingsClient.sys.mjs
-@@ -1078,14 +1078,9 @@ export class RemoteSettingsClient extends EventEmitter {
+@@ -1075,14 +1075,9 @@ export class RemoteSettingsClient extends EventEmitter {
        updated: [],
        deleted: [],
      };
@@ -909,10 +928,10 @@ index e4c2175e06..6b5ce4e447 100644
      await this.db.importChanges(metadata, remoteTimestamp, remoteRecords, {
        clear: retry,
 -- 
-2.40.0
+2.41.0
 
 
-From 2010e9105610657a0c31c58f94ef82a228992195 Mon Sep 17 00:00:00 2001
+From a60122e67c4a865f9690becaed275e5dd10d98dc Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Wed, 30 Dec 2020 19:15:44 +0200
 Subject: [PATCH 12/13] Attachments: load only from dump and drop cached
@@ -922,10 +941,10 @@ Subject: [PATCH 12/13] Attachments: load only from dump and drop cached
  1 file changed, 8 insertions(+), 29 deletions(-)
 
 diff --git a/services/settings/Attachments.sys.mjs b/services/settings/Attachments.sys.mjs
-index ce4a0dd1ba..8dd03eee32 100644
+index 5ddc6bb046..f7888cb769 100644
 --- a/services/settings/Attachments.sys.mjs
 +++ b/services/settings/Attachments.sys.mjs
-@@ -152,9 +152,10 @@ export class Downloader {
+@@ -147,9 +147,10 @@ export class Downloader {
        retries,
        checkHash,
        attachmentId = record?.id,
@@ -937,7 +956,7 @@ index ce4a0dd1ba..8dd03eee32 100644
      if (!attachmentId) {
        // Check for pre-condition. This should not happen, but it is explicitly
        // checked to avoid mixing up attachments, which could be dangerous.
-@@ -205,6 +206,7 @@ export class Downloader {
+@@ -200,6 +201,7 @@ export class Downloader {
          const newBuffer = await this.downloadAsBytes(record, {
            retries,
            checkHash,
@@ -945,7 +964,7 @@ index ce4a0dd1ba..8dd03eee32 100644
          });
          const blob = new Blob([newBuffer]);
          // Store in cache but don't wait for it before returning.
-@@ -238,7 +240,7 @@ export class Downloader {
+@@ -233,7 +235,7 @@ export class Downloader {
        }
  
        try {
@@ -954,7 +973,7 @@ index ce4a0dd1ba..8dd03eee32 100644
        } catch (e) {
          // Failed to read from cache, e.g. IndexedDB unusable.
          console.error(e);
-@@ -310,7 +312,7 @@ export class Downloader {
+@@ -318,7 +320,7 @@ export class Downloader {
     * @returns {String} the absolute file path to the downloaded attachment.
     */
    async downloadToDisk(record, options = {}) {
@@ -963,7 +982,7 @@ index ce4a0dd1ba..8dd03eee32 100644
      const {
        attachment: { filename, size, hash },
      } = record;
-@@ -365,33 +367,10 @@ export class Downloader {
+@@ -373,33 +375,10 @@ export class Downloader {
     */
    async downloadAsBytes(record, options = {}) {
      const {
@@ -1001,10 +1020,10 @@ index ce4a0dd1ba..8dd03eee32 100644
  
    /**
 -- 
-2.40.0
+2.41.0
 
 
-From 269b327583b25ab611e29347fbca914d7a755817 Mon Sep 17 00:00:00 2001
+From 0a9a01a5ffc04de7de047ea4e0209bcdc5556c0b Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Wed, 30 Dec 2020 19:22:20 +0200
 Subject: [PATCH 13/13] Disable CRLite entirely for now
@@ -1029,10 +1048,10 @@ certificate revocations.
  2 files changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
-index c373cde395..d898dc9267 100644
+index 5632486c69..8a26664c08 100644
 --- a/modules/libpref/init/StaticPrefList.yaml
 +++ b/modules/libpref/init/StaticPrefList.yaml
-@@ -13686,7 +13686,7 @@
+@@ -14065,7 +14065,7 @@
  # 3: Consult CRLite and enforce "Not Revoked" results, but defer to OCSP for "Revoked".
  - name: security.pki.crlite_mode
    type: RelaxedAtomicUint32
@@ -1042,10 +1061,10 @@ index c373cde395..d898dc9267 100644
  
  - name: security.tls.version.min
 diff --git a/security/manager/ssl/nsNSSComponent.cpp b/security/manager/ssl/nsNSSComponent.cpp
-index 5844ffecfd..6084ffc93c 100644
+index 737f94812d..8762011f05 100644
 --- a/security/manager/ssl/nsNSSComponent.cpp
 +++ b/security/manager/ssl/nsNSSComponent.cpp
-@@ -1430,6 +1430,7 @@ void nsNSSComponent::setValidationOptions(
+@@ -1390,6 +1390,7 @@ void nsNSSComponent::setValidationOptions(
    CRLiteMode defaultCRLiteMode = CRLiteMode::Disabled;
    CRLiteMode crliteMode =
        static_cast<CRLiteMode>(StaticPrefs::security_pki_crlite_mode());
@@ -1054,5 +1073,5 @@ index 5844ffecfd..6084ffc93c 100644
      case CRLiteMode::Disabled:
      case CRLiteMode::TelemetryOnly:
 -- 
-2.40.0
+2.41.0
 
diff --git a/libre/iceweasel/9002-FSDG-preference-defaults.patch b/libre/iceweasel/9002-FSDG-preference-defaults.patch
index 323240c..ea12fea 100644
--- a/libre/iceweasel/9002-FSDG-preference-defaults.patch
+++ b/libre/iceweasel/9002-FSDG-preference-defaults.patch
@@ -1,7 +1,7 @@
-From b410d2259c469d5f3c30bbbdddaeeb1956c58297 Mon Sep 17 00:00:00 2001
+From 2fec68a4597270e7fce1c0a4e3a328be4766a2d3 Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Sun, 4 Apr 2021 13:09:05 +0300
-Subject: [PATCH 1/2] geolocation: Disable API and remove Google API URLs
+Subject: [PATCH 1/4] geolocation: Disable API and remove Google API URLs
 
 The idea for Iceweasel is to reference only services which can be
 self-hosted using 100% free software stack.
@@ -23,10 +23,10 @@ default for now.
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
-index 153d7504d2..79928ac755 100644
+index 5632486c69..b977858e04 100644
 --- a/modules/libpref/init/StaticPrefList.yaml
 +++ b/modules/libpref/init/StaticPrefList.yaml
-@@ -5067,7 +5067,7 @@
+@@ -5616,7 +5616,7 @@
  # Is support for Navigator.geolocation enabled?
  - name: geo.enabled
    type: bool
@@ -36,10 +36,10 @@ index 153d7504d2..79928ac755 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 651d38c0e2..0c5f36c5b6 100644
+index a366fdaeb8..c9d67004a2 100644
 --- a/modules/libpref/init/all.js
 +++ b/modules/libpref/init/all.js
-@@ -3726,7 +3726,7 @@ pref("network.psl.onUpdate_notify", false);
+@@ -3125,7 +3125,7 @@ pref("network.psl.onUpdate_notify", false);
  // All the Geolocation preferences are here.
  //
  #ifndef EARLY_BETA_OR_EARLIER
@@ -49,13 +49,13 @@ index 651d38c0e2..0c5f36c5b6 100644
    // Use MLS on Nightly and early Beta.
    pref("geo.provider.network.url", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
 -- 
-2.35.1
+2.41.0
 
 
-From f687c43eb8adc710c54d9dd2ee2ea8d57b8088e3 Mon Sep 17 00:00:00 2001
+From 413f141022f562beb53ed87370146a123872f35b Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Sun, 4 Apr 2021 13:49:05 +0300
-Subject: [PATCH 2/2] Disable banners and remove URLs for mobile apps on
+Subject: [PATCH 2/4] Disable banners and remove URLs for mobile apps on
  about:protections page
 
 ---
@@ -63,10 +63,10 @@ Subject: [PATCH 2/2] Disable banners and remove URLs for mobile apps on
  1 file changed, 8 insertions(+), 8 deletions(-)
 
 diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
-index af9c349671..0ecb9726bd 100644
+index a7d255df89..801816dc41 100644
 --- a/browser/app/profile/firefox.js
 +++ b/browser/app/profile/firefox.js
-@@ -1883,7 +1883,7 @@ pref("browser.contentblocking.report.monitor.enabled", true);
+@@ -1955,7 +1955,7 @@ pref("browser.contentblocking.report.monitor.enabled", false);
  pref("browser.contentblocking.report.proxy.enabled", false);
  
  // Disable the mobile promotion by default.
@@ -75,7 +75,7 @@ index af9c349671..0ecb9726bd 100644
  
  // Locales in which Send to Device emails are supported
  // The most recent list of supported locales can be found at https://github.com/mozilla/bedrock/blob/6a08c876f65924651554decc57b849c00874b4e7/bedrock/settings/base.py#L963
-@@ -1902,7 +1902,7 @@ pref("browser.contentblocking.report.vpn_regions", "at,be,ca,ch,de,fr,ie,it,my,n
+@@ -1989,7 +1989,7 @@ pref("browser.promo.cookiebanners.enabled", false);
  
  // Comma separated string of mozilla vpn supported platforms.
  pref("browser.contentblocking.report.vpn_platforms", "win,mac,linux");
@@ -84,7 +84,7 @@ index af9c349671..0ecb9726bd 100644
  pref("browser.contentblocking.report.vpn_sub_id", "sub_HrfCZF7VPHzZkA");
  
  pref("browser.contentblocking.report.monitor.url", "https://monitor.firefox.com/?entrypoint=protection_report_monitor&utm_source=about-protections");
-@@ -1913,12 +1913,12 @@ pref("browser.contentblocking.report.monitor.home_page_url", "https://monitor.fi
+@@ -2000,12 +2000,12 @@ pref("browser.contentblocking.report.monitor.home_page_url", "https://monitor.fi
  pref("browser.contentblocking.report.manage_devices.url", "https://accounts.firefox.com/settings/clients");
  pref("browser.contentblocking.report.endpoint_url", "https://monitor.firefox.com/user/breach-stats?includeResolved=true");
  pref("browser.contentblocking.report.proxy_extension.url", "https://fpn.firefox.com/browser?utm_source=firefox-desktop&utm_medium=referral&utm_campaign=about-protections&utm_content=about-protections");
@@ -104,12 +104,13 @@ index af9c349671..0ecb9726bd 100644
  // Protection Report's SUMO urls
  pref("browser.contentblocking.report.lockwise.how_it_works.url", "https://support.mozilla.org/1/firefox/%VERSION%/%OS%/%LOCALE%/password-manager-report");
 -- 
-2.35.1
+2.41.0
+
 
-From 842d945be96cddf4192fed890066f96bc9894a83 Mon Sep 17 00:00:00 2001
+From 275785d94093d5c2dd46739484a2744642df357f Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Tue, 17 Jan 2023 21:59:51 +0100
-Subject: [PATCH] FSDG: Remove some references to AMO
+Subject: [PATCH 3/4] FSDG: Remove some references to AMO
 
 * addons.mozilla.org (AMO) is a third-party repository, not compatible
   with the FSDG, because it is not committed to only including free
@@ -133,16 +134,16 @@ Subject: [PATCH] FSDG: Remove some references to AMO
 
 [1] https://labs.parabola.nu/issues/2409#note-4
 ---
- browser/app/profile/firefox.js                   | 10 +++++-----
- mobile/android/app/mobile.js                     |  8 ++++----
- modules/libpref/init/all.js                      |  8 ++++----
- 3 files changed, 13 insertions(+), 13 deletions(-)
+ browser/app/profile/firefox.js | 12 ++++++------
+ mobile/android/app/mobile.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
-index 9b56ba74cf..cc3f0b88f8 100644
+index 801816dc41..9c2562ff23 100644
 --- a/browser/app/profile/firefox.js
 +++ b/browser/app/profile/firefox.js
-@@ -37,11 +37,11 @@ pref("extensions.postDownloadThirdPartyPrompt", true);
+@@ -33,12 +33,12 @@ pref("extensions.postDownloadThirdPartyPrompt", true);
  
  // Preferences for AMO integration
  pref("extensions.getAddons.cache.enabled", true);
@@ -151,19 +152,21 @@ index 9b56ba74cf..cc3f0b88f8 100644
 -pref("extensions.getAddons.link.url", "https://addons.mozilla.org/%LOCALE%/firefox/");
 -pref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v4/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%");
 -pref("extensions.getAddons.discovery.api_url", "https://services.addons.mozilla.org/api/v4/discovery/?lang=%LOCALE%&edition=%DISTRIBUTION%");
+-pref("extensions.getAddons.browserMappings.url", "https://services.addons.mozilla.org/api/v5/addons/browser-mappings/?browser=%BROWSER%");
 +pref("extensions.getAddons.get.url", "");
 +pref("extensions.getAddons.search.browseURL", "https://www.parabola.nu/packages/?q=%TERMS%");
 +pref("extensions.getAddons.link.url", "https://www.parabola.nu/packages/?q=iceweasel-");
 +pref("extensions.getAddons.langpacks.url", "");
 +pref("extensions.getAddons.discovery.api_url", "");
++pref("extensions.getAddons.browserMappings.url", "");
  
  // 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 71e2959f18..acb7e4072c 100644
+index 7364651c6e..d18e18a95b 100644
 --- a/mobile/android/app/mobile.js
 +++ b/mobile/android/app/mobile.js
-@@ -183,10 +183,10 @@ pref("extensions.update.background.url", "https://versioncheck-bg.addons.mozilla
+@@ -106,10 +106,10 @@ pref("extensions.update.background.url", "https://versioncheck-bg.addons.mozilla
  
  /* preferences for the Get Add-ons pane */
  pref("extensions.getAddons.cache.enabled", true);
@@ -176,13 +179,13 @@ index 71e2959f18..acb7e4072c 100644
 +pref("extensions.getAddons.get.url", "");
 +pref("extensions.getAddons.langpacks.url", "");
  
- /* preference for the locale picker */
- pref("extensions.getLocales.get.url", "");
+ /* 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 5ec8703f29..48e92b1478 100644
+index c9d67004a2..e14f539172 100644
 --- a/modules/libpref/init/all.js
 +++ b/modules/libpref/init/all.js
-@@ -1938,11 +1938,11 @@ pref("services.settings.poll_interval", 86400); // 24H
+@@ -1851,11 +1851,11 @@ pref("services.settings.poll_interval", 86400); // 24H
  // other channels always report events.
  pref("services.common.uptake.sampleRate", 1);   // 1%
  
@@ -197,7 +200,7 @@ index 5ec8703f29..48e92b1478 100644
  
  // Blocklist preferences
  pref("extensions.blocklist.enabled", true);
-@@ -3362,7 +3362,7 @@ pref("extensions.webextensions.performanceCountersMaxAge", 5000);
+@@ -3193,7 +3193,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.
@@ -207,12 +210,13 @@ index 5ec8703f29..48e92b1478 100644
  // The URL for the privacy policy related to recommended add-ons.
  pref("extensions.recommendations.privacyPolicyUrl", "");
 -- 
-2.39.0
+2.41.0
+
 
-From bb913b7f286927f544af064e3ba7cc403163b671 Mon Sep 17 00:00:00 2001
+From 7c742c2c0e0bd817fd646d0b83a0265c67d6c5fb Mon Sep 17 00:00:00 2001
 From: grizzlyuser <grizzlyuser@protonmail.com>
 Date: Sun, 4 Jun 2023 13:16:40 +0200
-Subject: [PATCH] FSDG: Disable Contile and autoupdate of system addons
+Subject: [PATCH 4/4] FSDG: Disable Contile and autoupdate of system addons
 
 1. Contile (see change context lines) is used to fetch sponsored top
    sites, which are not controlled by Parabola and are likely to not
@@ -229,10 +233,10 @@ only free software, remove them from the source code.
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
-index 3f133f4ee5..1676441784 100644
+index 9c2562ff23..7577fbe008 100644
 --- a/browser/app/profile/firefox.js
 +++ b/browser/app/profile/firefox.js
-@@ -51,8 +51,8 @@ pref("extensions.recommendations.themeRecommendationUrl", "https://color.firefox
+@@ -48,8 +48,8 @@ pref("extensions.recommendations.themeRecommendationUrl", "https://color.firefox
  pref("extensions.update.autoUpdateDefault", true);
  
  // Check AUS for system add-on updates.
@@ -243,7 +247,7 @@ index 3f133f4ee5..1676441784 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.
-@@ -1523,8 +1523,8 @@ pref("prompts.defaultModalType", 3);
+@@ -1518,8 +1518,8 @@ pref("prompts.defaultModalType", 3);
  
  pref("browser.topsites.useRemoteSetting", true);
  // Fetch sponsored Top Sites from Mozilla Tiles Service (Contile)
@@ -252,8 +256,8 @@ index 3f133f4ee5..1676441784 100644
 +pref("browser.topsites.contile.enabled", false);
 +pref("browser.topsites.contile.endpoint", "");
  
- // The base URL for the Quick Suggest anonymizing proxy. To make a request to
- // the proxy, include a campaign ID in the path.
+ // Whether to enable the Share-of-Voice feature for Sponsored Topsites via Contile.
+ #if defined(EARLY_BETA_OR_EARLIER)
 -- 
 2.41.0
 
diff --git a/libre/iceweasel/PKGBUILD b/libre/iceweasel/PKGBUILD
index eede40c..e6ff7b8 100644
--- a/libre/iceweasel/PKGBUILD
+++ b/libre/iceweasel/PKGBUILD
@@ -70,7 +70,7 @@
 
 pkgname=iceweasel
 epoch=1
-pkgver=115.0.2
+pkgver=116.0
 pkgrel=1
 pkgrel+=.parabola1
 _brandingver=115.0
@@ -179,13 +179,13 @@ validpgpkeys+=(
   'BFA8008A8265677063B11BF47171986E4B745536' # Andreas Grapentin
   '3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40' # bill-auger
 )
-sha256sums=('6b2844124c13b4bd9d97ac7f5840f3e957b7631659591f3bea1ac9a89bee1654'
+sha256sums=('215d076945bf744327a252f498227ab68e9ba4e3b703e058683d9e4ab92cba76'
             'SKIP'
             '9cdc2602661717712092d28bb494e5b48e518cb930898aca85eaf21f91f7ef58')
 sha256sums+=('b701b4c47fca2661feeabe172e398c76c8015ee08ff4cc3cc2f7c3ef2ed692a7'
              'SKIP'
-             'e90da1ee4fed83e8e40898f5f87b3f1534af50e253409539cd4b4635e14800eb'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
-             '131acdeff2af06c07f245717cd7cb898291f4466136f441b7b90acb2ccdade0a'  # 9002-FSDG-preference-defaults.patch
+             'd8f9a78c06bac7e444dd2c98e4ae493583d9286cf21aef6adfe93ef801287eeb'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
+             '48813738459b55d8b5d61eb553ef838dbd0dd4fcdba4398c2cb1c245925be2b7'  # 9002-FSDG-preference-defaults.patch
              '13b701372b6fb35b96a1d58853db64643feb9be061ebc461b41ceca5de8eea62'  # 9003-FSDG-urihandlers.patch
              'f01c4bda81b859f400c741ca97fcf945a768a799efe73943f45eb327d717eaa2'  # 9004-FSDG-misc.patch
              '00cb44a91b42942f17258ad165810866ff123777b667a5691ea0745ba72f4332'  # process-json-files.py
@@ -197,13 +197,13 @@ sha256sums_i686=('2f0c81a38c4578f68f5456b618fe84a78974072821488173eb55e0e72287e3
                  'ed3bb281697af7c4353a34067ffb4b18a971d40757bef2d6af3c8bf2d28d42d1'
                  '2fb39374fd3d80eea9e346032a2a4b2bc2e357dee7380855b24bcf19b1335d06'
                  'c3ce181fbb0142055aa6dd17f3cda2ba6a1e54d7a689a8c6e9cce76aa40e6544')
-b2sums=('ca602d102f2b7b7fc7bebb6ca4b21e548d4542727da94410497ad6774b6dc7a9eba778c9b6e269beabdbf647e3447f621103cb68fbcac77c4beca1829cbfc535'
+b2sums=('844f37e6f1f0947771a5e9a629ad44c04733906cb5922d5541ec12c4193dee4307cd435c381a97ce4ff20be1f31200a0c13c6e33a0308fcab9ce16b1327723c1'
         'SKIP'
         'f86353bbba05d8994db34c6abb66094aa61d2c37c8599930dbe9d215413f0f718a1ce55a8f2d07a65074c3947e28fc80d44c925bd9be239a870f82d2a1803635')
 b2sums+=('a22044292e464b3922eb2e4a8cf0993524d232eeb4a8602707589d00f690498d3b76e515c8d0ce4995b3bf8a65df9aa814b49de469178aa1f8cc07ec19dd5d32'
          'SKIP'
-         'ed3eb1c8aba0e6302058a361431b5dd411ff4ff74587c2305279ef30b4d19fae9e8c97c029513a8a091384278a0930a950fb37d9cffc5713de58d1a7e289bf57'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
-         'fc2204d183cf8ef133cb94580a92db26356edb069424e751743b2af349f115fb6069f0e3fe860496e05193cb0ca3dcb9aa5869c86d5c96c05a6eaec5242f8a35'  # 9002-FSDG-preference-defaults.patch
+         'c2f3df87a04b04740181eaedd1b6bf6606c03c926c82a02a07e7aad0843d748406d4be9980f4b966792fb79802e6d935c4493c208d238333fceea221a4ed058d'  # 9001-FSDG-sync-remote-settings-with-local-dump.patch
+         '0220e899506fefa2b6e5de5192c4b56f824b3a9340fb33ea6f3062fa57ff0c91c8c084df4a9761eb102fdab359b1282888bc3138733b581043a8b5b5138628b4'  # 9002-FSDG-preference-defaults.patch
          '9e4ccfb8850d9f9a5222f5186b35f2ae7986b6c6d435de024b109a6fa01e65a1362664cfb6ea81621387cf33364cc8d3d466fae1bee24ab5fc7e23c4cb17bf2c'  # 9003-FSDG-urihandlers.patch
          '2213f136bb3c66baed52bbff1c09f3d883c5e9bb0b06d9d0777ad718fcd55ce68a5f512d4cca796de78d254aba1078d0d254070e79275571e3d94aacbbb8556f'  # 9004-FSDG-misc.patch
          '085c4631ec8cfdf5842068d882185c783e976b1fde74167bb71ef4d7db8c70c12844177b17e76f858ba3ce2a402848ac8fc19910dcbefd29887abfaf5faac5e4'  # process-json-files.py
@@ -787,7 +787,7 @@ END
 
     echo "Building optimized browser..."
     cat >.mozconfig ../mozconfig - <<END
-ac_add_options --enable-lto=cross
+ac_add_options --enable-lto=cross,full
 ac_add_options --enable-profile-use=cross
 ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata
 ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog

