From 33dc96e0c7dc48261219505503b39dfd027f56ba Mon Sep 17 00:00:00 2001 From: Ark74 Date: Sun, 8 Feb 2026 23:46:22 -0600 Subject: [PATCH 01/29] yt-dlp: manually add Priority to debian/control --- helpers/make-yt-dlp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/helpers/make-yt-dlp b/helpers/make-yt-dlp index 02b9bd6e..4b74cd92 100644 --- a/helpers/make-yt-dlp +++ b/helpers/make-yt-dlp @@ -17,7 +17,7 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=3 +VERSION=4 EXTERNAL='deb-src http://deb.debian.org/debian sid main' REPOKEY=6ED0E7B82643E131 BACKPORTS=true @@ -32,6 +32,8 @@ sed -i "/Currently supported/s|are:|are at:|" debian/control [ "$SUPPORTED_SITES" != "$(tail -n2 debian/control|awk NF|sed 's|^ ||')" ] && \ echo -e ">>>Site replacement needs fixing, exiting...<<<\n" && exit +! grep -q "Priority:" debian/control && sed -i '/Section:/a Priority: optional' debian/control + apply_patch_changes changelog "Track latest release and remove explicit site listing, redirecting to website author." From 3095c9f84222297b5612272acb2ffbeb53968fa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Mon, 9 Feb 2026 09:50:46 -0600 Subject: [PATCH 02/29] inetutils: remove patch upstream just applied --- ..._injection_bug_with_bogus_user_names.patch | 34 -------- ...etd_sanitize_all_variable_expansions.patch | 78 ------------------- helpers/make-inetutils | 6 +- 3 files changed, 4 insertions(+), 114 deletions(-) delete mode 100644 helpers/DATA/inetutils/patch_changes/000-fix_injection_bug_with_bogus_user_names.patch delete mode 100644 helpers/DATA/inetutils/patch_changes/001-telnetd_sanitize_all_variable_expansions.patch diff --git a/helpers/DATA/inetutils/patch_changes/000-fix_injection_bug_with_bogus_user_names.patch b/helpers/DATA/inetutils/patch_changes/000-fix_injection_bug_with_bogus_user_names.patch deleted file mode 100644 index 344d9abd..00000000 --- a/helpers/DATA/inetutils/patch_changes/000-fix_injection_bug_with_bogus_user_names.patch +++ /dev/null @@ -1,34 +0,0 @@ -From fd702c02497b2f398e739e3119bed0b23dd7aa7b Mon Sep 17 00:00:00 2001 -From: Paul Eggert -Date: Tue, 20 Jan 2026 01:10:36 -0800 -Subject: [PATCH] Fix injection bug with bogus user names - -Problem reported by Kyu Neushwaistein. -* telnetd/utility.c (_var_short_name): -Ignore user names that start with '-' or contain shell metacharacters. - -Signed-off-by: Simon Josefsson ---- - telnetd/utility.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/telnetd/utility.c b/telnetd/utility.c -index b486226e..c02cd0e6 100644 ---- a/telnetd/utility.c -+++ b/telnetd/utility.c -@@ -1733,7 +1733,14 @@ _var_short_name (struct line_expander *exp) - return user_name ? xstrdup (user_name) : NULL; - - case 'U': -- return getenv ("USER") ? xstrdup (getenv ("USER")) : xstrdup (""); -+ { -+ /* Ignore user names starting with '-' or containing shell -+ metachars, as they can cause trouble. */ -+ char const *u = getenv ("USER"); -+ return xstrdup ((u && *u != '-' -+ && !u[strcspn (u, "\t\n !\"#$&'()*;<=>?[\\^`{|}~")]) -+ ? u : ""); -+ } - - default: - exp->state = EXP_STATE_ERROR; diff --git a/helpers/DATA/inetutils/patch_changes/001-telnetd_sanitize_all_variable_expansions.patch b/helpers/DATA/inetutils/patch_changes/001-telnetd_sanitize_all_variable_expansions.patch deleted file mode 100644 index 8b4653cf..00000000 --- a/helpers/DATA/inetutils/patch_changes/001-telnetd_sanitize_all_variable_expansions.patch +++ /dev/null @@ -1,78 +0,0 @@ -From ccba9f748aa8d50a38d7748e2e60362edd6a32cc Mon Sep 17 00:00:00 2001 -From: Simon Josefsson -Date: Tue, 20 Jan 2026 14:02:39 +0100 -Subject: [PATCH] telnetd: Sanitize all variable expansions - -* telnetd/utility.c (sanitize): New function. -(_var_short_name): Use it for all variables. ---- - telnetd/utility.c | 32 ++++++++++++++++++-------------- - 1 file changed, 18 insertions(+), 14 deletions(-) - -diff --git a/telnetd/utility.c b/telnetd/utility.c -index c02cd0e6..b21ad961 100644 ---- a/telnetd/utility.c -+++ b/telnetd/utility.c -@@ -1684,6 +1684,17 @@ static void _expand_cond (struct line_expander *exp); - static void _skip_block (struct line_expander *exp); - static void _expand_block (struct line_expander *exp); - -+static char * -+sanitize (const char *u) -+{ -+ /* Ignore values starting with '-' or containing shell metachars, as -+ they can cause trouble. */ -+ if (u && *u != '-' && !u[strcspn (u, "\t\n !\"#$&'()*;<=>?[\\^`{|}~")]) -+ return u; -+ else -+ return ""; -+} -+ - /* Expand a variable referenced by its short one-symbol name. - Input: exp->cp points to the variable name. - FIXME: not implemented */ -@@ -1710,13 +1721,13 @@ _var_short_name (struct line_expander *exp) - return xstrdup (timebuf); - - case 'h': -- return xstrdup (remote_hostname); -+ return xstrdup (sanitize (remote_hostname)); - - case 'l': -- return xstrdup (local_hostname); -+ return xstrdup (sanitize (local_hostname)); - - case 'L': -- return xstrdup (line); -+ return xstrdup (sanitize (line)); - - case 't': - q = strchr (line + 1, '/'); -@@ -1724,23 +1735,16 @@ _var_short_name (struct line_expander *exp) - q++; - else - q = line; -- return xstrdup (q); -+ return xstrdup (sanitize (q)); - - case 'T': -- return terminaltype ? xstrdup (terminaltype) : NULL; -+ return terminaltype ? xstrdup (sanitize (terminaltype)) : NULL; - - case 'u': -- return user_name ? xstrdup (user_name) : NULL; -+ return user_name ? xstrdup (sanitize (user_name)) : NULL; - - case 'U': -- { -- /* Ignore user names starting with '-' or containing shell -- metachars, as they can cause trouble. */ -- char const *u = getenv ("USER"); -- return xstrdup ((u && *u != '-' -- && !u[strcspn (u, "\t\n !\"#$&'()*;<=>?[\\^`{|}~")]) -- ? u : ""); -- } -+ return xstrdup (sanitize (getenv ("USER"))); - - default: - exp->state = EXP_STATE_ERROR; diff --git a/helpers/make-inetutils b/helpers/make-inetutils index f21bbe47..015b3664 100644 --- a/helpers/make-inetutils +++ b/helpers/make-inetutils @@ -17,6 +17,7 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # +BUILD_UNTIL=12.0 VERSION=0 . ./config @@ -25,8 +26,9 @@ VERSION=0 # Applying these patches is a proactive mitigation effort for known issues and does not # endorse continued use of telnetd. The patch co-author recommends deprecating it. -apply_patch_changes +# Remove patch now applied upstream -changelog "Apply security patches to mitigate known issues proactively; telnetd is not recommended: avoid in production." +changelog "Restore build to upstream changes +Apply security patches to mitigate known issues proactively; telnetd is not recommended: avoid in production." package From a21b844419ec21e417fd2742e8e00278236114ef Mon Sep 17 00:00:00 2001 From: Luis Guzman Date: Mon, 9 Feb 2026 15:55:04 +0000 Subject: [PATCH 03/29] inetutils: fix build until var on helper. --- helpers/make-inetutils | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helpers/make-inetutils b/helpers/make-inetutils index 015b3664..a1517bde 100644 --- a/helpers/make-inetutils +++ b/helpers/make-inetutils @@ -17,7 +17,7 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -BUILD_UNTIL=12.0 +BUILD_UNTIL=11.0 VERSION=0 . ./config From 20a13d1a4fcf56e1a1b7d7e787986129dffc170c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Thu, 19 Feb 2026 20:48:37 -0600 Subject: [PATCH 04/29] linux-hwe-6.8: update 000-silent-accept-firmware.patch for new build --- .../000-silent-accept-firmware.patch | 21 +++++++++++-------- helpers/make-linux-hwe-6.8 | 7 +++++-- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/helpers/DATA/linux-hwe-6.8/000-silent-accept-firmware.patch b/helpers/DATA/linux-hwe-6.8/000-silent-accept-firmware.patch index d0c1e834..139d0c4a 100644 --- a/helpers/DATA/linux-hwe-6.8/000-silent-accept-firmware.patch +++ b/helpers/DATA/linux-hwe-6.8/000-silent-accept-firmware.patch @@ -1503,16 +1503,19 @@ diff --color -Nru a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/sw.c b/driver err = request_firmware_nowait(THIS_MODULE, 1, wowlan_fw_name, rtlpriv->io.dev, GFP_KERNEL, hw, -diff -Nru --color a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c 2023-03-13 07:14:05.000000000 +0000 -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c 2023-03-13 07:46:23.778827386 +0000 -@@ -223,8 +223,7 @@ - - r = request_firmware(&fw, fw_name, adev->dev); +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +index 36d0deef..5f03247f 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +@@ -289,9 +289,9 @@ static int amdgpu_discovery_read_binary_from_file(struct amdgpu_device *adev, + r = firmware_request_nowarn(&fw, fw_name, adev->dev); if (r) { -- dev_err(adev->dev, "can't load firmware \"%s\"\n", -- fw_name); -+ dev_err(adev->dev, "can't load firmware\n"); + if (amdgpu_discovery == 2) +- dev_err(adev->dev, "can't load firmware \"%s\"\n", fw_name); ++ dev_err(adev->dev, "can't load firmware\n"); + else +- drm_info(&adev->ddev, "Optional firmware \"%s\" was not found\n", fw_name); ++ drm_info(&adev->ddev, "Optional firmware was not found\n"); return r; } diff --git a/helpers/make-linux-hwe-6.8 b/helpers/make-linux-hwe-6.8 index c6d62a08..96a4dfe1 100644 --- a/helpers/make-linux-hwe-6.8 +++ b/helpers/make-linux-hwe-6.8 @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (C) 2025 Luis Guzman +# Copyright (C) 2026 Luis Guzman # Copyright (C) 2008-2023 Ruben Rodriguez # Copyright (C) 2019 David Trudgian # @@ -19,7 +19,10 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=34 +# Advice: fixes to 000-silent-accept-firmware.patch could speed up by testing changes +# disabling deblob in order to apply changes. + +VERSION=35 HWEKR=6.8 DI_ENABLED=1 HWE_ENABLED=1 From 86269b2157df0421af83949e07334cf0f0fbdc68 Mon Sep 17 00:00:00 2001 From: Ark74 Date: Sun, 22 Feb 2026 03:06:47 -0600 Subject: [PATCH 05/29] apt-mirror: rearrange version to match current scheme --- helpers/make-apt-mirror | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/helpers/make-apt-mirror b/helpers/make-apt-mirror index 5962b05f..0ed99347 100644 --- a/helpers/make-apt-mirror +++ b/helpers/make-apt-mirror @@ -18,12 +18,12 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=5 +VERSION=6 . ./config # Set version number due to source origin change -export FULLVERSION="$(sed 's|ubuntu0.22.04.1||' <<< $FULLVERSION)" +export FULLVERSION="$(sed -E 's/^(.*)ubuntu([^+]+)(\+.*)$/\1\3~ubuntu\2/' <<< $FULLVERSION)" cp $DATA/Trisquel-mirror.list debian/ @@ -54,7 +54,6 @@ index e9c85e9..b6c1c97 100755 EOF changelog "Added config and update manpage for Trisquel." -head -n1 debian/changelog | grep -q ubuntu && echo "error: update upstream version" && exit package From c7f4b576be123d1b88539fdc9bcb3f0a0550dc8b Mon Sep 17 00:00:00 2001 From: Ark74 Date: Sun, 22 Feb 2026 03:48:56 -0600 Subject: [PATCH 06/29] expat: rearrange version to match current scheme --- helpers/make-expat | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/helpers/make-expat b/helpers/make-expat index 711f5341..4ed5023c 100644 --- a/helpers/make-expat +++ b/helpers/make-expat @@ -23,15 +23,14 @@ # such packages from Debian in order to build the required udeb packages. ## -VERSION=5 +VERSION=6 NETINST=true . ./config #FIXME:T12 # Set version number due to source origin change -export FULLVERSION="$(sed 's|ubuntu0.6||' <<< $FULLVERSION)" +export FULLVERSION="$(sed -E 's/^(.*)ubuntu([^+]+)(\+.*)$/\1\3~ubuntu\2/' <<< $FULLVERSION)" changelog "Fetch and build as udeb dependency for debian-installer." -head -n1 debian/changelog | grep -q ubuntu && echo "> error: update upstream version" && exit package From 93cf6dce306eb46fef536f5bcb5f596f467224c4 Mon Sep 17 00:00:00 2001 From: Ark74 Date: Sun, 22 Feb 2026 04:08:01 -0600 Subject: [PATCH 07/29] mate-user-admin: rearrange version to match current scheme --- helpers/make-mate-user-admin | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/helpers/make-mate-user-admin b/helpers/make-mate-user-admin index b86424fd..2df890c9 100644 --- a/helpers/make-mate-user-admin +++ b/helpers/make-mate-user-admin @@ -17,13 +17,13 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=3 +VERSION=4 EXTERNAL='deb-src http://archive.ubuntu.com/ubuntu noble universe' . ./config # Set version number due to source origin change -export FULLVERSION="$(sed 's|build3||' <<< $FULLVERSION)" +FULLVERSION=$(sed -E 's/^(.*)build([0-9]+)(\+.*)$/\1\3~build\2/' <<< $FULLVERSION) # Add cracklib-runtime dependency to debian/control apply_patch_changes @@ -31,6 +31,4 @@ apply_patch_changes changelog "Added cracklib-runtime dependency. Added custom implementation to use adduser regex for user creation" -head -n1 debian/changelog | grep -q build && echo "error: update upstream version" && exit - package From 4f69832a996d30c36ce4774ec5a9f238b748c5ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Sun, 22 Feb 2026 08:27:33 -0600 Subject: [PATCH 08/29] nano: rearrange version to match current scheme --- helpers/make-nano | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/helpers/make-nano b/helpers/make-nano index 61875840..4776206e 100644 --- a/helpers/make-nano +++ b/helpers/make-nano @@ -23,15 +23,14 @@ # or fetch such packages from Debian in order to build the required udeb packages. ## -VERSION=1 +VERSION=2 NETINST=true . ./config # Set version number due to source origin change -export FULLVERSION="$(sed 's|ubuntu0.1||' <<< $FULLVERSION)" +export FULLVERSION="$(sed -E 's/^(.*)ubuntu([^+]+)(\+.*)$/\1\3~ubuntu\2/' <<< $FULLVERSION)" changelog "Fetch and build as udeb dependency for debian-installer." -head -n1 debian/changelog | grep -q ubuntu && echo "error: update upstream version" && exit changelog "Rebuild upstream to get udeb dependency for debian-installer." package From c320b5f41dfd1fca105cca6c8c940a6ba3b48857 Mon Sep 17 00:00:00 2001 From: Ark74 Date: Sun, 22 Feb 2026 08:31:22 -0600 Subject: [PATCH 09/29] ncurses: rearrange version to match current scheme --- helpers/make-ncurses | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/helpers/make-ncurses b/helpers/make-ncurses index 7f494e08..2a0fe91c 100644 --- a/helpers/make-ncurses +++ b/helpers/make-ncurses @@ -23,19 +23,18 @@ # such packages from Debian in order to build the required udeb packages. ## -VERSION=2 +VERSION=3 NETINST=true BUILD_UNTIL=11.0 . ./config #FIXME:T12 # Set version number due to source origin change -export FULLVERSION="$(sed 's|ubuntu0.1||' <<< $FULLVERSION)" +FULLVERSION="$(sed -E 's/^(.*)ubuntu([^+]+)(\+.*)$/\1\3~ubuntu\2/' <<< $FULLVERSION)" # Apply Debian#1035621: ncurses: FTBFS: dh_autoreconf error on various architectures patch --no-backup-if-mismatch -p1 < $DATA/bbd46b3955647bf401325951d9f31db054e8d889.patch changelog "Rebuild as udeb dependency for debian-installer and patch dh_autoreconf." -head -n1 debian/changelog | grep -q ubuntu && echo "error: update upstream version" && exit package From ce304086728c8ccaafc5e6261de3aa21dba4eae5 Mon Sep 17 00:00:00 2001 From: Ark74 Date: Sun, 22 Feb 2026 09:10:01 -0600 Subject: [PATCH 10/29] python-apt: rearrange version to match current scheme --- helpers/make-python-apt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/helpers/make-python-apt b/helpers/make-python-apt index c53eae27..fca55a81 100644 --- a/helpers/make-python-apt +++ b/helpers/make-python-apt @@ -23,14 +23,14 @@ # a new release of the 'debian-installer' also ships the latest mirror # list available on the resulting netinstall (mini.iso) image. -VERSION=11 +VERSION=12 COMPONENT=main #Be aware to not pull/build before publish date on T12. . ./config # Fix version number due to early release. -export FULLVERSION="$(sed 's|ubuntu4||' <<< $FULLVERSION)" +FULLVERSION="$(sed -E 's/^(.*)ubuntu([^+]+)(\+.*)$/\1\3~ubuntu\2/' <<< $FULLVERSION)" # Use git Mirrors.masterlist as source. Mirrors_masterlist=$(mktemp) @@ -92,7 +92,6 @@ EOF export DEB_BUILD_OPTIONS=nocheck changelog "Compiled for Trisquel" -head -n1 debian/changelog | grep -q ubuntu && echo "error: update FULLVERSION value" && exit package From a3a0692b165cd45c376053b238bd8647954783a7 Mon Sep 17 00:00:00 2001 From: Ark74 Date: Sun, 22 Feb 2026 09:14:13 -0600 Subject: [PATCH 11/29] screen: rearrange version to match current scheme --- helpers/make-screen | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/helpers/make-screen b/helpers/make-screen index 49ec864c..0c726cc2 100644 --- a/helpers/make-screen +++ b/helpers/make-screen @@ -23,10 +23,12 @@ # or fetch such packages from Debian in order to build the required udeb packages. ## -VERSION=0 +VERSION=1 NETINST=true . ./config +# Fix version number due to early release. +FULLVERSION="$(sed -E 's/^(.*)ubuntu([^+]+)(\+.*)$/\1\3~ubuntu\2/' <<< $FULLVERSION)" changelog "Rebuild upstream to get udeb dependency for debian-installer." package From abb4718a88c411f58b759a44666445334e68dde7 Mon Sep 17 00:00:00 2001 From: Ark74 Date: Sun, 22 Feb 2026 09:17:53 -0600 Subject: [PATCH 12/29] openssh: rearrange version to match current scheme --- helpers/make-openssh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/helpers/make-openssh b/helpers/make-openssh index e914e1ad..b9baf347 100644 --- a/helpers/make-openssh +++ b/helpers/make-openssh @@ -17,20 +17,19 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=9 +VERSION=10 NETINST=true . ./config #FIXME:T12 # Set version number due to source origin change -export FULLVERSION="$(sed 's|ubuntu0.13||' <<< $FULLVERSION)" +FULLVERSION="$(sed -E 's/^(.*)ubuntu([^+]+)(\+.*)$/\1\3~ubuntu\2/' <<< $FULLVERSION)" sed 's:Ubuntu:Trisquel\ GNU/Linux:g' -i debian/rules sed "s|^SSH_EXTRAVERSION.*|SSH_EXTRAVERSION := Trisquel_GNU/Linux_$REVISION-$VERSION|" -i debian/rules changelog "Rebranded for Trisquel" -head -n1 debian/changelog | grep -q ubuntu && echo "error: update upstream version" && exit package From f9dea41b485a51939958b81b86129d4967032dec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Sun, 22 Feb 2026 21:15:01 -0600 Subject: [PATCH 13/29] yt-dlp: remove deprecated patch now fixed upstream --- ..._parsing_more_lentient_on_python3.12.patch | 35 ------------------- 1 file changed, 35 deletions(-) delete mode 100644 helpers/DATA/yt-dlp/patch_changes/002-make_cookies_parsing_more_lentient_on_python3.12.patch diff --git a/helpers/DATA/yt-dlp/patch_changes/002-make_cookies_parsing_more_lentient_on_python3.12.patch b/helpers/DATA/yt-dlp/patch_changes/002-make_cookies_parsing_more_lentient_on_python3.12.patch deleted file mode 100644 index 895c8f1a..00000000 --- a/helpers/DATA/yt-dlp/patch_changes/002-make_cookies_parsing_more_lentient_on_python3.12.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/yt_dlp/cookies.py b/yt_dlp/cookies.py -index 8c05a09f..8b6f6613 100644 ---- a/yt_dlp/cookies.py -+++ b/yt_dlp/cookies.py -@@ -1238,15 +1238,27 @@ def load(self, data): - else: - value, _ = self.value_decode(value) - -- morsel[key] = value -+ try: -+ morsel[key] = value -+ except http.cookies.CookieError: -+ # Lenient mode: ignore invalid attributes -+ pass - - elif is_attribute: - morsel = None - - elif value is not None: -- morsel = self.get(key, http.cookies.Morsel()) -+ morsel = self.get(key) or http.cookies.Morsel() - real_value, coded_value = self.value_decode(value) -- morsel.set(key, real_value, coded_value) -+ try: -+ morsel.set(key, real_value, coded_value) -+ except http.cookies.CookieError: -+ # Python 3.12+ rejects control characters in cookies. -+ # LenientSimpleCookie should accept them (yt-dlp tests expect this), so -+ # bypass Morsel.set() validation, assign underlying fields to read-only props. -+ morsel._key = key -+ morsel._value = real_value -+ morsel._coded_value = coded_value - self[key] = morsel - - else: From b9101b2b2f65c21431cfd6edfb29c792af47304c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Sun, 12 Oct 2025 13:00:20 -0600 Subject: [PATCH 14/29] libreoffice: remove pip test requirement on newer builds --- helpers/make-libreoffice | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/helpers/make-libreoffice b/helpers/make-libreoffice index dfa401b0..684ca90f 100644 --- a/helpers/make-libreoffice +++ b/helpers/make-libreoffice @@ -17,18 +17,22 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=4 +VERSION=5 EXTERNAL='deb-src http://ppa.launchpad.net/libreoffice/ppa/ubuntu $UPSTREAM main' REPOKEY="83FBA1751378B444" BACKPORT=true . ./config -patch --no-backup-if-mismatch -p1 < $DATA/debian-rules_7.3.patch +patch_p1 $DATA/debian-rules_7.3.patch # Increase CPU usage for amd64 build. sed -i "/NUM_CPUS=/s|3|7|" debian/rules +# Remote pip test +rm pyuno/qa/pytests/testpip.py +sed -i '/python3-pip/d' debian/control + changelog "Backport libreoffice fresh into Trisquel" package From 92bae1fccb05e81fdcfb782dd05c50322c0f3fdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Wed, 11 Mar 2026 08:02:08 -0600 Subject: [PATCH 15/29] firefox: add changes for 148.0.2 build --- ...emove_moreFromMozilla_Focus_and_Klar.patch | 16 ++-- ...sites_and_keep_weather_widget_static.patch | 9 +- ...ve_finish_setup_third_party_services.patch | 88 +++++++++---------- helpers/make-firefox | 7 +- 4 files changed, 66 insertions(+), 54 deletions(-) diff --git a/helpers/DATA/firefox/patch_changes/002-Remove_moreFromMozilla_Focus_and_Klar.patch b/helpers/DATA/firefox/patch_changes/002-Remove_moreFromMozilla_Focus_and_Klar.patch index 3f44f063..f1c1fd85 100644 --- a/helpers/DATA/firefox/patch_changes/002-Remove_moreFromMozilla_Focus_and_Klar.patch +++ b/helpers/DATA/firefox/patch_changes/002-Remove_moreFromMozilla_Focus_and_Klar.patch @@ -4,10 +4,10 @@ Based on https://git.parabola.nu/abslibre.git/diff/libre/iceweasel/9004-FSDG-mis - Remove promos of Firefox Focus and Klar from Private Browsing diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js -index c5f7cf3a..f0124235 100644 +index f9a558a1..9c171c72 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js -@@ -1368,9 +1368,9 @@ pref("accessibility.typeaheadfind.linksonly", false); +@@ -1366,11 +1366,11 @@ pref("accessibility.typeaheadfind.linksonly", false); pref("accessibility.typeaheadfind.flashBar", 1); // Whether we had to hide the "Firefox Labs" section because it would be empty. @@ -16,6 +16,9 @@ index c5f7cf3a..f0124235 100644 // Whether we show the "More from Mozilla" section. -pref("browser.preferences.moreFromMozilla", true); +pref("browser.preferences.moreFromMozilla", false); + // Whether we show the "AI Controls" pane. +-pref("browser.preferences.aiControls", true); ++pref("browser.preferences.aiControls", false); // Used by settings to track whether the user customized advanced // performance settings. Not used directly elsewhere. @@ -736,10 +739,10 @@ index 3888af10..1d6c606f 100644 "chrome://browser/content/asrouter/assets/fox-with-devices.svg", "chrome://browser/content/asrouter/assets/fox-with-locked-box.svg", diff --git a/browser/components/preferences/moreFromMozilla.js b/browser/components/preferences/moreFromMozilla.js -index 8807b5d3..82367922 100644 +index 109d334e..ee49d63f 100644 --- a/browser/components/preferences/moreFromMozilla.js +++ b/browser/components/preferences/moreFromMozilla.js -@@ -81,51 +81,7 @@ var gMoreFromMozillaPane = { +@@ -81,50 +81,7 @@ var gMoreFromMozillaPane = { renderProducts() { const isRegionUS = Region.home.toLowerCase() === "us"; @@ -777,9 +780,8 @@ index 8807b5d3..82367922 100644 - { - id: "mozilla-monitor", - title_string_id: "more-from-moz-mozilla-monitor-title", -- description_string_id: isRegionUS -- ? "more-from-moz-mozilla-monitor-us-description" -- : "more-from-moz-mozilla-monitor-global-description", +- description_string_id: +- "more-from-moz-mozilla-monitor-global-description", - region: isRegionUS ? "us" : "global", - button: { - id: "mozillaMonitor", diff --git a/helpers/DATA/firefox/patch_changes/003-disable_sponsored_topsites_and_keep_weather_widget_static.patch b/helpers/DATA/firefox/patch_changes/003-disable_sponsored_topsites_and_keep_weather_widget_static.patch index ffa7ea94..88677ac9 100644 --- a/helpers/DATA/firefox/patch_changes/003-disable_sponsored_topsites_and_keep_weather_widget_static.patch +++ b/helpers/DATA/firefox/patch_changes/003-disable_sponsored_topsites_and_keep_weather_widget_static.patch @@ -24,8 +24,8 @@ index 217ed280..d91cde94 100644 // Do not enable the preonboarding experience on Linux #ifdef XP_LINUX -@@ -1856,24 +1856,24 @@ pref("browser.newtabpage.activity-stream.mobileDownloadModal.variant-c", false); - pref("browser.newtabpage.activity-stream.discoverystream.refinedCardsLayout.enabled", true); +@@ -1879,28 +1879,28 @@ pref("browser.newtabpage.activity-stream.search.useHandoffComponent", true); + pref("browser.newtabpage.activity-stream.externalComponents.enabled", true); // Mozilla Ad Routing Service (MARS) unified ads service -pref("browser.newtabpage.activity-stream.unifiedAds.tiles.enabled", true); @@ -35,7 +35,12 @@ index 217ed280..d91cde94 100644 +pref("browser.newtabpage.activity-stream.unifiedAds.spocs.enabled", false); +pref("browser.newtabpage.activity-stream.unifiedAds.endpoint", ""); pref("browser.newtabpage.activity-stream.unifiedAds.adsFeed.enabled", false); + #ifdef NIGHTLY_BUILD +-pref("browser.newtabpage.activity-stream.unifiedAds.ohttp.enabled", true); ++pref("browser.newtabpage.activity-stream.unifiedAds.ohttp.enabled", false); + #else pref("browser.newtabpage.activity-stream.unifiedAds.ohttp.enabled", false); + #endif // Weather widget for newtab -pref("browser.newtabpage.activity-stream.showWeather", true); diff --git a/helpers/DATA/firefox/patch_changes/013-remove_finish_setup_third_party_services.patch b/helpers/DATA/firefox/patch_changes/013-remove_finish_setup_third_party_services.patch index c00136f7..0bc8d3ca 100644 --- a/helpers/DATA/firefox/patch_changes/013-remove_finish_setup_third_party_services.patch +++ b/helpers/DATA/firefox/patch_changes/013-remove_finish_setup_third_party_services.patch @@ -11,53 +11,53 @@ index ba47adb6..c4b29ec4 100644 where: "tabshifted", }, navigate: true, -@@ -750,49 +750,6 @@ const MR_ABOUT_WELCOME_DEFAULT = { +@@ -865,6 +865,49 @@ const MR_ABOUT_WELCOME_DEFAULT = { }, targeting: "isFxASignedIn", }, -- { -- id: "AW_ACCOUNT_LOGIN", -- content: { -- fullscreen: true, -- position: "split", -- split_narrow_bkg_position: "-228px", -- image_alt_text: { -- string_id: "mr2022-onboarding-gratitude-image-alt", -- }, -- background: -- "url('chrome://activity-stream/content/data/content/assets/fox-doodle-waving-laptop.svg') center center / 80% no-repeat var(--mr-screen-background-color)", -- progress_bar: true, -- logo: {}, -- title: { -- string_id: "onboarding-sign-up-title", -- }, -- subtitle: { -- string_id: "onboarding-sign-up-description", -- }, -- secondary_button: { -- label: { -- string_id: "mr2-onboarding-start-browsing-button-label", -- }, -- style: "secondary", -- action: { -- navigate: true, -- }, -- }, -- primary_button: { -- label: { -- string_id: "onboarding-sign-up-button", -- }, -- action: { -- data: { -- entrypoint: "newuser-onboarding-desktop", -- }, -- type: "FXA_SIGNIN_FLOW", -- navigate: true, -- }, -- }, -- }, -- targeting: "!isFxASignedIn", -- }, ++ { ++ id: "AW_ACCOUNT_LOGIN", ++ content: { ++ fullscreen: true, ++ position: "split", ++ split_narrow_bkg_position: "-228px", ++ image_alt_text: { ++ string_id: "mr2022-onboarding-gratitude-image-alt", ++ }, ++ background: ++ "url('chrome://activity-stream/content/data/content/assets/br-fxa-fox-mirror.svg') var(--mr-secondary-position) no-repeat light-dark(rgba(252, 245, 240, 1), rgba(33, 3, 64, 1))", ++ progress_bar: true, ++ logo: {}, ++ title: { ++ string_id: "onboarding-sign-up-title", ++ }, ++ subtitle: { ++ string_id: "onboarding-sign-up-description", ++ }, ++ secondary_button: { ++ label: { ++ string_id: "mr2-onboarding-start-browsing-button-label", ++ }, ++ style: "secondary", ++ action: { ++ navigate: true, ++ }, ++ }, ++ primary_button: { ++ label: { ++ string_id: "onboarding-sign-up-button", ++ }, ++ action: { ++ data: { ++ entrypoint: "newuser-onboarding-desktop", ++ }, ++ type: "FXA_SIGNIN_FLOW", ++ navigate: true, ++ }, ++ }, ++ }, ++ targeting: "!isFxASignedIn", ++ }, ], }; diff --git a/helpers/make-firefox b/helpers/make-firefox index 49c42426..201b45cd 100644 --- a/helpers/make-firefox +++ b/helpers/make-firefox @@ -19,12 +19,13 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=129 +VERSION=130 EXTERNAL='deb-src http://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu $UPSTREAM main' REPOKEY=AEBDF4819BE21867 . ./config +MAIN_REBRANDING_ENABLED=1 # SHA256 HASHES UPDATES GLEAN_CONF_RS_INITIAL=$(sha256sum third_party/rust/glean/src/configuration.rs|awk '{print$1}') # GNUZILLA ADDON REPLACEMENT @@ -287,6 +288,7 @@ MOZ_ENABLE_BREAKPAD = 0 MOZ_ENABLE_TELEMETRY = 0 EOF +main_rebranding() { SEDSCRIPT=" s|Updates from { -vendor-short-name } and { -brand-product-name }|Updates from { -vendor-short-name }|; s/Try Firefox/Try Abrowser/g; @@ -322,6 +324,9 @@ find l10n -type f -not -iregex '.*changelog.*' \ sed 's/Firefox/Abrowser/' -i debian/control.in \ browser/locales/en-US/chrome/overrides/appstrings.properties +} +# Useful when trying to catch patch issues faster. +[ "$MAIN_REBRANDING_ENABLED" = 1 ] && main_rebranding sed s/ubuntu/trisquel/g debian/distribution.ini -i sed "s/ubuntu_version/trisquel_version/; s/Ubuntu 10.10/Trisquel $REVISION/; s/1010/40/" -i debian/firefox.postinst.in From af52a489358949c9226ba62dab856741312525af Mon Sep 17 00:00:00 2001 From: Ark74 Date: Sat, 14 Mar 2026 17:47:32 -0600 Subject: [PATCH 16/29] linux-hwe-6.8: update patch for 6.8.106 --- .../000-silent-accept-firmware.patch | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/helpers/DATA/linux-hwe-6.8/000-silent-accept-firmware.patch b/helpers/DATA/linux-hwe-6.8/000-silent-accept-firmware.patch index 139d0c4a..8c0ac4a0 100644 --- a/helpers/DATA/linux-hwe-6.8/000-silent-accept-firmware.patch +++ b/helpers/DATA/linux-hwe-6.8/000-silent-accept-firmware.patch @@ -158,19 +158,20 @@ diff --color -Nru a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/am } /* SMC */ -diff --color -Nru a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c 2023-03-09 11:48:45.000000000 -0600 -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c 2023-03-09 19:35:41.949114270 -0600 -@@ -627,8 +627,7 @@ - */ +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +index 6ac35313..932e5d49 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +@@ -676,8 +676,7 @@ psp_cmd_submit_buf(struct psp_context *psp, if (!skip_unsupport && (psp->cmd_buf_mem->resp.status || !timeout) && !ras_intr) { if (ucode) -- DRM_WARN("failed to load ucode %s(0x%X) ", -- amdgpu_ucode_name(ucode->ucode_id), ucode->ucode_id); -+ DRM_WARN("failed to load ucode"); - DRM_WARN("psp gfx command %s(0x%X) failed and response status is (0x%X)\n", + dev_warn(psp->adev->dev, +- "failed to load ucode %s(0x%X) ", +- amdgpu_ucode_name(ucode->ucode_id), ucode->ucode_id); ++ "failed to load ucode"); + dev_warn(psp->adev->dev, + "psp gfx command %s(0x%X) failed and response status is (0x%X)\n", psp_gfx_cmd_name(psp->cmd_buf_mem->cmd_id), psp->cmd_buf_mem->cmd_id, - psp->cmd_buf_mem->resp.status); diff --color -Nru a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c 2022-07-31 16:03:01.000000000 -0500 +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c 2023-03-09 19:38:05.801817530 -0600 From c5d6c1550027599d405a04fb3f4e42f9ff90adb1 Mon Sep 17 00:00:00 2001 From: Ark74 Date: Thu, 19 Mar 2026 20:27:53 -0600 Subject: [PATCH 17/29] devscripts: remove unnecessary change on helper --- helpers/make-devscripts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/helpers/make-devscripts b/helpers/make-devscripts index e907dc8b..acf2310f 100644 --- a/helpers/make-devscripts +++ b/helpers/make-devscripts @@ -18,7 +18,7 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=2 +VERSION=3 . ./config @@ -26,7 +26,6 @@ VERSION=2 sed -i 's|UbuntuDistroInfo|TrisquelDistroInfo|' scripts/debchange.pl #Prevent debian test failing. -sed -i '/verifyGuessedDistribution/s|buster-backports|bookworm-backports|g' test/test_debchange rm scripts/devscripts/test/test_flake8.py changelog "Make use of TrisquelDistroInfo from distro-info package." From 7803b7dad495c5d7867725fa90334514825fbb01 Mon Sep 17 00:00:00 2001 From: Ark74 Date: Sat, 28 Mar 2026 00:37:50 -0600 Subject: [PATCH 18/29] python-apt: mirrors list update 03-2026 --- helpers/make-python-apt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helpers/make-python-apt b/helpers/make-python-apt index fca55a81..14f628f9 100644 --- a/helpers/make-python-apt +++ b/helpers/make-python-apt @@ -23,7 +23,7 @@ # a new release of the 'debian-installer' also ships the latest mirror # list available on the resulting netinstall (mini.iso) image. -VERSION=12 +VERSION=13 COMPONENT=main #Be aware to not pull/build before publish date on T12. From aa4b9a912bd011525a3c6a6523d1ede9a9326b7e Mon Sep 17 00:00:00 2001 From: Ark74 Date: Sat, 28 Mar 2026 10:03:35 -0600 Subject: [PATCH 19/29] kdsingleapplication: add new dependecy for nextcloud-desktop --- helpers/make-kdsingleapplication | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 helpers/make-kdsingleapplication diff --git a/helpers/make-kdsingleapplication b/helpers/make-kdsingleapplication new file mode 100644 index 00000000..854890c0 --- /dev/null +++ b/helpers/make-kdsingleapplication @@ -0,0 +1,30 @@ +#!/bin/sh +# +# Copyright (C) 2026 Luis Guzmán +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# + +VERSION=1 +EXTERNAL='deb-src http://ppa.launchpad.net/nextcloud-devs/client/ubuntu $UPSTREAM main' +REPOKEY="60EE47FBAD3DD469" +BACKPORT=true + +. ./config + +#sed -i "s|Utility|Network|" mirall.desktop.in + +#Prevent ppc64el arch since qtwebengine is not build for ppc64el. +sed -i 's|Architecture: any|Architecture: amd64 arm64 armhf i386 mips64el mipsel|g' debian/control + +changelog "Backported into Trisquel as nextcloud-desktop client dependency" + +package From acb8e638f6f7c99257b091dc6c225c948069a7a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Fri, 3 Apr 2026 23:28:33 -0600 Subject: [PATCH 20/29] libreoffice: rebuild using nopython instead of modifying control --- helpers/make-libreoffice | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/helpers/make-libreoffice b/helpers/make-libreoffice index 684ca90f..9d817f16 100644 --- a/helpers/make-libreoffice +++ b/helpers/make-libreoffice @@ -29,9 +29,7 @@ patch_p1 $DATA/debian-rules_7.3.patch # Increase CPU usage for amd64 build. sed -i "/NUM_CPUS=/s|3|7|" debian/rules -# Remote pip test -rm pyuno/qa/pytests/testpip.py -sed -i '/python3-pip/d' debian/control +# Profile 'nopython' changelog "Backport libreoffice fresh into Trisquel" From e55fd38e3e24f64f252da35153cc675c3e0d9294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Sat, 4 Apr 2026 17:26:05 -0600 Subject: [PATCH 21/29] libreoffice: add nopython patch for aramo --- .../000-debian-rules_7.3.patch} | 0 .../patch_changes/001-fix_nopython_profile.patch | 14 ++++++++++++++ helpers/make-libreoffice | 6 +++--- 3 files changed, 17 insertions(+), 3 deletions(-) rename helpers/DATA/libreoffice/{debian-rules_7.3.patch => patch_changes/000-debian-rules_7.3.patch} (100%) create mode 100644 helpers/DATA/libreoffice/patch_changes/001-fix_nopython_profile.patch diff --git a/helpers/DATA/libreoffice/debian-rules_7.3.patch b/helpers/DATA/libreoffice/patch_changes/000-debian-rules_7.3.patch similarity index 100% rename from helpers/DATA/libreoffice/debian-rules_7.3.patch rename to helpers/DATA/libreoffice/patch_changes/000-debian-rules_7.3.patch diff --git a/helpers/DATA/libreoffice/patch_changes/001-fix_nopython_profile.patch b/helpers/DATA/libreoffice/patch_changes/001-fix_nopython_profile.patch new file mode 100644 index 00000000..9cf39886 --- /dev/null +++ b/helpers/DATA/libreoffice/patch_changes/001-fix_nopython_profile.patch @@ -0,0 +1,14 @@ +diff --git a/debian/rules b/debian/rules +index abb880f..90b89d5 100755 +--- a/debian/rules ++++ b/debian/rules +@@ -2340,7 +2340,9 @@ ifeq "$(ENABLE_RUST)" "y" + endif + + ifneq "$(PYTHON_VERSION)" "default" ++ifneq "$(PYTHON)" "" + rm -f bin/$(PYTHON) ++endif + endif + + dh_clean diff --git a/helpers/make-libreoffice b/helpers/make-libreoffice index 9d817f16..f719af78 100644 --- a/helpers/make-libreoffice +++ b/helpers/make-libreoffice @@ -1,6 +1,6 @@ #!/bin/sh # -# Copyright (C) 2023 Luis Guzmán +# Copyright (C) 2026 Luis Guzmán # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,14 +17,14 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=5 +VERSION=6 EXTERNAL='deb-src http://ppa.launchpad.net/libreoffice/ppa/ubuntu $UPSTREAM main' REPOKEY="83FBA1751378B444" BACKPORT=true . ./config -patch_p1 $DATA/debian-rules_7.3.patch +apply_patch_changes # Increase CPU usage for amd64 build. sed -i "/NUM_CPUS=/s|3|7|" debian/rules From 131d298f77b4d0964f9b71db550983b649bca7f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Tue, 7 Apr 2026 13:35:18 -0600 Subject: [PATCH 22/29] libreoffice: disable pip and venv tests --- .../001-disable_tests_pyuno_trisquel.patch | 34 +++++++++++++++++++ .../001-fix_nopython_profile.patch | 14 -------- helpers/make-libreoffice | 5 ++- 3 files changed, 36 insertions(+), 17 deletions(-) create mode 100644 helpers/DATA/libreoffice/patch_changes/001-disable_tests_pyuno_trisquel.patch delete mode 100644 helpers/DATA/libreoffice/patch_changes/001-fix_nopython_profile.patch diff --git a/helpers/DATA/libreoffice/patch_changes/001-disable_tests_pyuno_trisquel.patch b/helpers/DATA/libreoffice/patch_changes/001-disable_tests_pyuno_trisquel.patch new file mode 100644 index 00000000..4dbd438c --- /dev/null +++ b/helpers/DATA/libreoffice/patch_changes/001-disable_tests_pyuno_trisquel.patch @@ -0,0 +1,34 @@ +diff --git a/debian/control b/debian/control +index b0f95119..073ece8e 100644 +--- a/debian/control ++++ b/debian/control +@@ -196,9 +196,7 @@ Build-Depends-Arch: at-spi2-core [amd64 arm64 armhf] , + poppler-data [amd64 arm64 armhf] , + pstoedit [amd64 arm64 armhf] , + python3-lxml [!ppc64el !riscv64 !s390x] , +- python3-pip [!ppc64el !riscv64 !s390x] , + python3-setuptools [!ppc64el !riscv64 !s390x] , +- python3-venv [!ppc64el !riscv64 !s390x] , + qt5-qmake, + qtbase5-dev, + qtbase5-dev-tools, +diff --git a/pyuno/qa/pytests/testimports.py b/pyuno/qa/pytests/testimports.py +index 29b14736..85ed1a53 100644 +--- a/pyuno/qa/pytests/testimports.py ++++ b/pyuno/qa/pytests/testimports.py +@@ -33,6 +33,7 @@ class ImportsTest(unittest.TestCase): + print(str(ssl), file=devnull) + + # tdf#162786: make sure importing pip works on all platforms ++ @unittest.skip("Test disabled on Trisquel") + def test_pip_import(self): + import pip + +@@ -40,6 +41,7 @@ class ImportsTest(unittest.TestCase): + with open(os.devnull, "w") as devnull: + print(str(pip), file=devnull) + ++ @unittest.skip("Test disabled on Trisquel") + def test_venv_import(self): + import venv + diff --git a/helpers/DATA/libreoffice/patch_changes/001-fix_nopython_profile.patch b/helpers/DATA/libreoffice/patch_changes/001-fix_nopython_profile.patch deleted file mode 100644 index 9cf39886..00000000 --- a/helpers/DATA/libreoffice/patch_changes/001-fix_nopython_profile.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/debian/rules b/debian/rules -index abb880f..90b89d5 100755 ---- a/debian/rules -+++ b/debian/rules -@@ -2340,7 +2340,9 @@ ifeq "$(ENABLE_RUST)" "y" - endif - - ifneq "$(PYTHON_VERSION)" "default" -+ifneq "$(PYTHON)" "" - rm -f bin/$(PYTHON) -+endif - endif - - dh_clean diff --git a/helpers/make-libreoffice b/helpers/make-libreoffice index f719af78..a49c883f 100644 --- a/helpers/make-libreoffice +++ b/helpers/make-libreoffice @@ -29,8 +29,7 @@ apply_patch_changes # Increase CPU usage for amd64 build. sed -i "/NUM_CPUS=/s|3|7|" debian/rules -# Profile 'nopython' - -changelog "Backport libreoffice fresh into Trisquel" +changelog "Disabled python-pip/venv tests for Trisquel +Backport libreoffice fresh into Trisquel" package From 07f7ac394c921e3d29139fbfa7c3d1015d6c0f15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Sat, 11 Apr 2026 12:33:28 -0600 Subject: [PATCH 23/29] misc: cleaning deprecated dependency helpers --- helpers/make-extra-cmake-modules | 30 ------------------------------ helpers/make-kf6-karchive | 30 ------------------------------ helpers/make-pkg-kde-tools | 32 -------------------------------- 3 files changed, 92 deletions(-) delete mode 100644 helpers/make-extra-cmake-modules delete mode 100644 helpers/make-kf6-karchive delete mode 100644 helpers/make-pkg-kde-tools diff --git a/helpers/make-extra-cmake-modules b/helpers/make-extra-cmake-modules deleted file mode 100644 index d770f93b..00000000 --- a/helpers/make-extra-cmake-modules +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2024 Luis Guzmán -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# - -VERSION=1 -EXTERNAL='deb-src http://ppa.launchpad.net/nextcloud-devs/client/ubuntu $UPSTREAM main' -REPOKEY="60EE47FBAD3DD469" -BACKPORT=true - -. ./config - - -changelog "Added as a dependency for nextcloud-desktop backport" - -package diff --git a/helpers/make-kf6-karchive b/helpers/make-kf6-karchive deleted file mode 100644 index d770f93b..00000000 --- a/helpers/make-kf6-karchive +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2024 Luis Guzmán -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# - -VERSION=1 -EXTERNAL='deb-src http://ppa.launchpad.net/nextcloud-devs/client/ubuntu $UPSTREAM main' -REPOKEY="60EE47FBAD3DD469" -BACKPORT=true - -. ./config - - -changelog "Added as a dependency for nextcloud-desktop backport" - -package diff --git a/helpers/make-pkg-kde-tools b/helpers/make-pkg-kde-tools deleted file mode 100644 index 68a08f70..00000000 --- a/helpers/make-pkg-kde-tools +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2024 Luis Guzmán -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# - -VERSION=3 -EXTERNAL='deb-src http://ppa.launchpad.net/nextcloud-devs/client/ubuntu $UPSTREAM main' -REPOKEY="60EE47FBAD3DD469" -BACKPORT=true - -. ./config - -# Add trisquel as maintainer to pass checks on custom packages. -patch_p1 $DATA/000_add_trisquel_maintainer.patch - -changelog "Upgrade backport as a dependency for nextcloud-desktop" - -package From 76741cc7c88bc284a86d4f06b43ac7d56b8ee02b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Mon, 4 May 2026 00:54:02 -0600 Subject: [PATCH 24/29] thunderbird: update work for v140.10 --- .../001-set_export_to_mobile_l10n.patch | 6 +++--- helpers/make-thunderbird | 10 ++++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/helpers/DATA/thunderbird/patches_changes/001-set_export_to_mobile_l10n.patch b/helpers/DATA/thunderbird/patches_changes/001-set_export_to_mobile_l10n.patch index fd94aa22..0f5fd2b7 100644 --- a/helpers/DATA/thunderbird/patches_changes/001-set_export_to_mobile_l10n.patch +++ b/helpers/DATA/thunderbird/patches_changes/001-set_export_to_mobile_l10n.patch @@ -24,7 +24,7 @@ diff --git a/l10n/cs/mail/messenger/preferences/preferences.ftl b/l10n/cs/mail/m index 67947ec7..ca2c1194 100644 --- a/l10n/cs/mail/messenger/preferences/preferences.ftl +++ b/l10n/cs/mail/messenger/preferences/preferences.ftl -@@ -895,12 +895,12 @@ sync-disconnected-turn-on-sync = Zapnout synchronizaci… +@@ -1054,12 +1054,12 @@ sync-disconnected-turn-on-sync = Zapnout synchronizaci… ## Mobile QR Export Pane @@ -33,9 +33,9 @@ index 67947ec7..ca2c1194 100644 qr-export-description = Rychle přeneste nastavení účtu z počítače do mobilu vygenerováním QR kódu. Vyberte, které účty chcete zahrnout, rozhodněte, zda chcete přenést heslo, a naskenujte kód pomocí mobilního zařízení. Rychlé, bezpečné a jednoduché. qr-export-get-app = Ještě nemáte { -brand-product-name } v mobilu? Stáhněte si ji z Google Play qr-export-create = Vytvoření QR kódu pro export účtů - qr-export-select-accounts = Vyberte, které účty chcete exportovat: + qr-export-select-accounts = Vyberte, které účty se mají exportovat: -qr-export-no-accounts = Nevidíte všechny své účty? Některé účty mohou být zakázány, protože je { -brand-product-name } pro Android nepodporuje. Podpora -+qr-export-no-accounts = Nevidíte všechny své účty? Některé účty mohou být zakázány, protože je pro Android nepodporuje. Podpora ++qr-export-no-accounts = Nevidíte všechny své účty? Některé účty mohou být zakázány, protože je pro Android nepodporuje. Podpora qr-export-accounts-legend = E-mailové účty qr-export-select-all-accounts = Vybrat vše qr-export-security-legend = Zabezpečení diff --git a/helpers/make-thunderbird b/helpers/make-thunderbird index dd439c1e..bea4a35c 100644 --- a/helpers/make-thunderbird +++ b/helpers/make-thunderbird @@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (C) 2025 Luis Guzmán +# Copyright (C) 2026 Luis Guzmán # Copyright (C) 2020 Ruben Rodriguez # Copyright (C) 2019 David Trudgian # @@ -19,12 +19,13 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=26 +VERSION=27 EXTERNAL='deb-src http://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu $UPSTREAM main' REPOKEY=AEBDF4819BE21867 . ./config +MAIN_REBRANDING_ENABLED=1 # Get initial SHA256 hashes. SHA256_F9=$(sha256sum comm/third_party/rust/glean/src/configuration.rs|awk '{print$1}') @@ -188,6 +189,7 @@ MOZ_WANT_UNIT_TESTS = 0 MOZ_ENABLE_BREAKPAD = 0 EOF +main_rebranding() { # Replace Thunderbird branding find -type d -name '*thunderbird*' | xargs rename s/thunderbird/icedove/ find -type f -name '*thunderbird*' | xargs rename s/thunderbird/icedove/ @@ -362,6 +364,10 @@ cat << EOF > comm/mail/branding/nightly/locales/en-US/brand.dtd EOF +} + +# Useful when trying to catch patch issues faster, careful with mixed branding issues. +[ "$MAIN_REBRANDING_ENABLED" = 1 ] && main_rebranding debian/rules debian/control touch -d "yesterday" debian/control From d9925ced9aa05027ac1b52ddf7d99a5ecf8dad1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Mon, 4 May 2026 17:07:54 -0600 Subject: [PATCH 25/29] thunderbird: tiny change for 140.10.1 release --- helpers/make-thunderbird | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/helpers/make-thunderbird b/helpers/make-thunderbird index bea4a35c..228e8571 100644 --- a/helpers/make-thunderbird +++ b/helpers/make-thunderbird @@ -249,8 +249,8 @@ grep -rl 'https://www.icedove.net/donate/' comm/ | xargs -r \ sed -i 's|https://www.icedove.net/donate/.*"|https://trisquel.info/donate/"|' grep -rl 'https://www.icedove.net/donate/' comm/ | xargs -r \ sed -i 's|https://www.icedove.net/donate/|https://trisquel.info/donate/|' -grep -rl 'https://updates.icedove.net/' comm/ | xargs -r \ - sed -i '/"URL":/s|https://updates.icedove.net/.*/appeal/.*"|https://trisquel.info/donate/"|' +#grep -rl 'https://updates.icedove.net/' comm/ | xargs -r \ +# sed -i '/"URL":/s|https://updates.icedove.net/.*/appeal/.*"|https://trisquel.info/donate/"|' grep -rl 'https://support.mozilla.org/products/icedove' comm/ | xargs -r \ sed -i 's|https://support.mozilla.org/products/icedove.*"|https://trisquel.info/wiki/icedove"|' grep -rl 'https://support.mozilla.org/products/icedove' comm/ | xargs -r \ From 5632fa6cb4f3172d204b7e6ce2fdcc7c89583e6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Mon, 4 May 2026 17:08:26 -0600 Subject: [PATCH 26/29] thunderbird: temporarily use source mirror while upstream fixes infra --- helpers/make-thunderbird | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/helpers/make-thunderbird b/helpers/make-thunderbird index 228e8571..cd15d0a5 100644 --- a/helpers/make-thunderbird +++ b/helpers/make-thunderbird @@ -20,7 +20,8 @@ # VERSION=27 -EXTERNAL='deb-src http://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu $UPSTREAM main' +#EXTERNAL='deb-src http://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu $UPSTREAM main' +EXTERNAL='deb-src http://ppa.si-n.cc/mozillateam/ubuntu/ppa/ $UPSTREAM main' REPOKEY=AEBDF4819BE21867 . ./config From 65ade0cc4ca7ea50965b86fd3141e3d2ead6fab8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Sun, 10 May 2026 19:11:56 -0600 Subject: [PATCH 27/29] firefox: update patches for 149.0.2 --- ...emove_moreFromMozilla_Focus_and_Klar.patch | 22 ++++++++++--------- helpers/make-firefox | 4 ++-- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/helpers/DATA/firefox/patch_changes/002-Remove_moreFromMozilla_Focus_and_Klar.patch b/helpers/DATA/firefox/patch_changes/002-Remove_moreFromMozilla_Focus_and_Klar.patch index f1c1fd85..c2ade630 100644 --- a/helpers/DATA/firefox/patch_changes/002-Remove_moreFromMozilla_Focus_and_Klar.patch +++ b/helpers/DATA/firefox/patch_changes/002-Remove_moreFromMozilla_Focus_and_Klar.patch @@ -4,10 +4,10 @@ Based on https://git.parabola.nu/abslibre.git/diff/libre/iceweasel/9004-FSDG-mis - Remove promos of Firefox Focus and Klar from Private Browsing diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js -index f9a558a1..9c171c72 100644 +index cc42846d..52d35d49 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js -@@ -1366,11 +1366,11 @@ pref("accessibility.typeaheadfind.linksonly", false); +@@ -1388,11 +1388,11 @@ pref("accessibility.typeaheadfind.linksonly", false); pref("accessibility.typeaheadfind.flashBar", 1); // Whether we had to hide the "Firefox Labs" section because it would be empty. @@ -19,9 +19,9 @@ index f9a558a1..9c171c72 100644 // Whether we show the "AI Controls" pane. -pref("browser.preferences.aiControls", true); +pref("browser.preferences.aiControls", false); - - // Used by settings to track whether the user customized advanced - // performance settings. Not used directly elsewhere. + // Whether to show unavailable AI controls regardless of region/locale + // restrictions. This is intended for localizers to be able to see the strings. + pref("browser.preferences.aiControls.showUnavailable", false); @@ -2281,7 +2281,7 @@ pref("browser.contentblocking.report.vpn_regions", "ca,my,nz,sg,gb,gg,im,io,je,u pref("browser.promo.focus.disallowed_regions", "cn"); @@ -459,17 +459,19 @@ index b5ff592..22cdf39 100644 { id: "PB_NEWTAB_VPN_PROMO", template: "pb_newtab", -diff -Nru a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn ---- a/browser/components/preferences/jar.mn 2022-05-22 09:35:55.400673986 +0000 -+++ b/browser/components/preferences/jar.mn 2022-05-22 21:45:51.512354083 +0000 -@@ -18,7 +18,5 @@ +diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn +index bd094a48..ac07e826 100644 +--- a/browser/components/preferences/jar.mn ++++ b/browser/components/preferences/jar.mn +@@ -19,8 +19,6 @@ browser.jar: content/browser/preferences/fxaPairDevice.xhtml content/browser/preferences/fxaPairDevice.js content/browser/preferences/findInPage.js - content/browser/preferences/more-from-mozilla-qr-code-simple.svg - content/browser/preferences/more-from-mozilla-qr-code-simple-cn.svg + content/browser/preferences/browser-layout-horizontal.svg + content/browser/preferences/browser-layout-vertical.svg content/browser/preferences/web-appearance-dark.svg - content/browser/preferences/web-appearance-light.svg diff --git a/browser/components/preferences/more-from-mozilla-qr-code-simple-cn.svg b/browser/components/preferences/more-from-mozilla-qr-code-simple-cn.svg index edcad0f3..e69de29b 100644 --- a/browser/components/preferences/more-from-mozilla-qr-code-simple-cn.svg diff --git a/helpers/make-firefox b/helpers/make-firefox index 201b45cd..b1a8b456 100644 --- a/helpers/make-firefox +++ b/helpers/make-firefox @@ -2,7 +2,7 @@ # # Copyright (C) 2008-2023 Ruben Rodriguez # Copyright (C) 2015 Santiago Rodriguez -# Copyright (C) 2025 Luis Guzman +# Copyright (C) 2026 Luis Guzman # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -19,7 +19,7 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=130 +VERSION=131 EXTERNAL='deb-src http://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu $UPSTREAM main' REPOKEY=AEBDF4819BE21867 From e3dc5300de384382ec65c46842f31eee21677d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Sun, 10 May 2026 19:12:26 -0600 Subject: [PATCH 28/29] firefox: add changes for v150 --- ...emove_moreFromMozilla_Focus_and_Klar.patch | 2 +- ...sites_and_keep_weather_widget_static.patch | 10 +- .../016-set_custom_cargo_1.91.patch | 28 +++ .../017-modify_sidebar_pins_promo_icons.patch | 38 ++++ .../018-adjust_wallpapers_abrowser.patch | 28 +++ helpers/DATA/firefox/ui_branding/build.json | 72 +++++++ .../debranding/assets/puzzle-fox.svg | 81 +++++++ .../debranding/assets/trisquel_qr.png | Bin 0 -> 6717 bytes .../debranding/content/history-empty.svg | 41 ++++ .../debranding/content/synced-tabs-empty.svg | 200 ++++++++++++++++++ .../debranding/content/synced-tabs-error.svg | 178 ++++++++++++++++ .../DATA/firefox/ui_branding/sidebar/fsf.svg | 6 + .../ui_branding/sidebar/liberachat.svg | 3 + .../firefox/ui_branding/sidebar/trisquel.svg | 3 + .../firefox/ui_branding/sidebar/wikipedia.svg | 3 + .../firefox/ui_branding/wallpaper-replace.py | 163 ++++++++++++++ helpers/make-firefox | 24 ++- 17 files changed, 870 insertions(+), 10 deletions(-) create mode 100644 helpers/DATA/firefox/patch_changes/016-set_custom_cargo_1.91.patch create mode 100644 helpers/DATA/firefox/patch_changes/017-modify_sidebar_pins_promo_icons.patch create mode 100644 helpers/DATA/firefox/patch_changes/018-adjust_wallpapers_abrowser.patch create mode 100644 helpers/DATA/firefox/ui_branding/build.json create mode 100644 helpers/DATA/firefox/ui_branding/debranding/assets/puzzle-fox.svg create mode 100644 helpers/DATA/firefox/ui_branding/debranding/assets/trisquel_qr.png create mode 100644 helpers/DATA/firefox/ui_branding/debranding/content/history-empty.svg create mode 100644 helpers/DATA/firefox/ui_branding/debranding/content/synced-tabs-empty.svg create mode 100644 helpers/DATA/firefox/ui_branding/debranding/content/synced-tabs-error.svg create mode 100644 helpers/DATA/firefox/ui_branding/sidebar/fsf.svg create mode 100644 helpers/DATA/firefox/ui_branding/sidebar/liberachat.svg create mode 100644 helpers/DATA/firefox/ui_branding/sidebar/trisquel.svg create mode 100644 helpers/DATA/firefox/ui_branding/sidebar/wikipedia.svg create mode 100644 helpers/DATA/firefox/ui_branding/wallpaper-replace.py diff --git a/helpers/DATA/firefox/patch_changes/002-Remove_moreFromMozilla_Focus_and_Klar.patch b/helpers/DATA/firefox/patch_changes/002-Remove_moreFromMozilla_Focus_and_Klar.patch index c2ade630..20fddec8 100644 --- a/helpers/DATA/firefox/patch_changes/002-Remove_moreFromMozilla_Focus_and_Klar.patch +++ b/helpers/DATA/firefox/patch_changes/002-Remove_moreFromMozilla_Focus_and_Klar.patch @@ -460,7 +460,7 @@ index b5ff592..22cdf39 100644 id: "PB_NEWTAB_VPN_PROMO", template: "pb_newtab", diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn -index bd094a48..ac07e826 100644 +index b2d65603..b44a1525 100644 --- a/browser/components/preferences/jar.mn +++ b/browser/components/preferences/jar.mn @@ -19,8 +19,6 @@ browser.jar: diff --git a/helpers/DATA/firefox/patch_changes/003-disable_sponsored_topsites_and_keep_weather_widget_static.patch b/helpers/DATA/firefox/patch_changes/003-disable_sponsored_topsites_and_keep_weather_widget_static.patch index 88677ac9..d015201f 100644 --- a/helpers/DATA/firefox/patch_changes/003-disable_sponsored_topsites_and_keep_weather_widget_static.patch +++ b/helpers/DATA/firefox/patch_changes/003-disable_sponsored_topsites_and_keep_weather_widget_static.patch @@ -24,8 +24,8 @@ index 217ed280..d91cde94 100644 // Do not enable the preonboarding experience on Linux #ifdef XP_LINUX -@@ -1879,28 +1879,28 @@ pref("browser.newtabpage.activity-stream.search.useHandoffComponent", true); - pref("browser.newtabpage.activity-stream.externalComponents.enabled", true); +@@ -1886,24 +1886,24 @@ pref("browser.newtabpage.activity-stream.mobileDownloadModal.variant-b", false); + pref("browser.newtabpage.activity-stream.mobileDownloadModal.variant-c", false); // Mozilla Ad Routing Service (MARS) unified ads service -pref("browser.newtabpage.activity-stream.unifiedAds.tiles.enabled", true); @@ -35,18 +35,14 @@ index 217ed280..d91cde94 100644 +pref("browser.newtabpage.activity-stream.unifiedAds.spocs.enabled", false); +pref("browser.newtabpage.activity-stream.unifiedAds.endpoint", ""); pref("browser.newtabpage.activity-stream.unifiedAds.adsFeed.enabled", false); - #ifdef NIGHTLY_BUILD -pref("browser.newtabpage.activity-stream.unifiedAds.ohttp.enabled", true); +pref("browser.newtabpage.activity-stream.unifiedAds.ohttp.enabled", false); - #else - pref("browser.newtabpage.activity-stream.unifiedAds.ohttp.enabled", false); - #endif // Weather widget for newtab -pref("browser.newtabpage.activity-stream.showWeather", true); +pref("browser.newtabpage.activity-stream.showWeather", false); pref("browser.newtabpage.activity-stream.weather.query", ""); - pref("browser.newtabpage.activity-stream.weather.display", "simple"); + pref("browser.newtabpage.activity-stream.weather.display", "detailed"); pref("browser.newtabpage.activity-stream.images.smart", true); diff --git a/helpers/DATA/firefox/patch_changes/016-set_custom_cargo_1.91.patch b/helpers/DATA/firefox/patch_changes/016-set_custom_cargo_1.91.patch new file mode 100644 index 00000000..5be58ff7 --- /dev/null +++ b/helpers/DATA/firefox/patch_changes/016-set_custom_cargo_1.91.patch @@ -0,0 +1,28 @@ +diff --git a/debian/control.in b/debian/control.in +index 758352f8..26383a38 100644 +--- a/debian/control.in ++++ b/debian/control.in +@@ -43,8 +43,8 @@ Build-Depends: cdbs, + libclang-22-dev | libclang-21-dev | libclang-20-dev | libclang-19-dev | libclang-18-dev, + llvm-22-dev | llvm-21-dev | llvm-20-dev | llvm-19-dev | llvm-18-dev, + lld-22 | lld-21 | lld-20 | lld-19 | lld-18, +- cargo-1.90, +- rustc-1.90, ++ cargo-1.91 | cargo-1.90, ++ rustc-1.91 | rustc-1.90, + nodejs (>= 12.22.12) + Standards-Version: 3.9.1 + +diff --git a/debian/build/rules.mk b/debian/build/rules.mk +index 896150e7..413e34fc 100644 +--- a/debian/build/rules.mk ++++ b/debian/build/rules.mk +@@ -109,7 +109,7 @@ LLVM_VERSIONS = 22 21 20 19 18 + DEB_LLVM_VERSION = $(firstword $(foreach llvm_version, $(LLVM_VERSIONS), \ + $(if $(shell which clang-$(llvm_version)), $(llvm_version)))) + +-RUSTC_VERSIONS = 1.90 ++RUSTC_VERSIONS = 1.91 1.90 + DEB_RUSTC_VERSION = $(firstword $(foreach rustc_version, $(RUSTC_VERSIONS), \ + $(if $(shell which rustc-$(rustc_version)), $(rustc_version)))) + diff --git a/helpers/DATA/firefox/patch_changes/017-modify_sidebar_pins_promo_icons.patch b/helpers/DATA/firefox/patch_changes/017-modify_sidebar_pins_promo_icons.patch new file mode 100644 index 00000000..8dfee481 --- /dev/null +++ b/helpers/DATA/firefox/patch_changes/017-modify_sidebar_pins_promo_icons.patch @@ -0,0 +1,38 @@ +diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn +index 3a12a7a3..ac1245a9 100644 +--- a/browser/themes/shared/jar.inc.mn ++++ b/browser/themes/shared/jar.inc.mn +@@ -266,10 +266,10 @@ + skin/classic/browser/search-indicator-badge-add.svg (../shared/search/search-indicator-badge-add.svg) + skin/classic/browser/searchbar.css (../shared/search/searchbar.css) + +- skin/classic/browser/sidebar/firefox.svg (../shared/sidebar/firefox.svg) +- skin/classic/browser/sidebar/foxy.svg (../shared/sidebar/foxy.svg) +- skin/classic/browser/sidebar/gmail.svg (../shared/sidebar/gmail.svg) +- skin/classic/browser/sidebar/slack.svg (../shared/sidebar/slack.svg) ++ skin/classic/browser/sidebar/trisquel.svg (../shared/sidebar/trisquel.svg) ++ skin/classic/browser/sidebar/fsf.svg (../shared/sidebar/fsf.svg) ++ skin/classic/browser/sidebar/wikipedia.svg (../shared/sidebar/wikipedia.svg) ++ skin/classic/browser/sidebar/liberachat.svg (../shared/sidebar/liberachat.svg) + + skin/classic/browser/tabbrowser/content-area.css (../shared/tabbrowser/content-area.css) + skin/classic/browser/tabbrowser/crashed.svg (../shared/tabbrowser/crashed.svg) +diff --git a/browser/components/sidebar/sidebar-pins-promo.mjs b/browser/components/sidebar/sidebar-pins-promo.mjs +index beac7ea4..538ae9aa 100644 +--- a/browser/components/sidebar/sidebar-pins-promo.mjs ++++ b/browser/components/sidebar/sidebar-pins-promo.mjs +@@ -56,10 +56,10 @@ export default class SidebarPinsPromo extends MozLitElement { + this.launcherObserver = new MutationObserver(() => this.requestUpdate()); + } + #icons = [ +- { name: "firefox", src: "chrome://browser/skin/sidebar/firefox.svg" }, +- { name: "slack", src: "chrome://browser/skin/sidebar/slack.svg" }, +- { name: "foxy", src: "chrome://browser/skin/sidebar/foxy.svg" }, +- { name: "gmail", src: "chrome://browser/skin/sidebar/gmail.svg" }, ++ { name: "trisquel", src: "chrome://browser/skin/sidebar/trisquel.svg" }, ++ { name: "liberachat", src: "chrome://browser/skin/sidebar/liberachat.svg" }, ++ { name: "fsf", src: "chrome://browser/skin/sidebar/fsf.svg" }, ++ { name: "wikipedia", src: "chrome://browser/skin/sidebar/wikipedia.svg" }, + ]; + + connectedCallback() { diff --git a/helpers/DATA/firefox/patch_changes/018-adjust_wallpapers_abrowser.patch b/helpers/DATA/firefox/patch_changes/018-adjust_wallpapers_abrowser.patch new file mode 100644 index 00000000..d582d489 --- /dev/null +++ b/helpers/DATA/firefox/patch_changes/018-adjust_wallpapers_abrowser.patch @@ -0,0 +1,28 @@ +diff --git a/browser/extensions/newtab/lib/Wallpapers/WallpaperFeed.sys.mjs b/browser/extensions/newtab/lib/Wallpapers/WallpaperFeed.sys.mjs +index 72df22b3..24f2f807 100644 +--- a/browser/extensions/newtab/lib/Wallpapers/WallpaperFeed.sys.mjs ++++ b/browser/extensions/newtab/lib/Wallpapers/WallpaperFeed.sys.mjs +@@ -156,7 +156,9 @@ export class WallpaperFeed { + ...record, + ...(record.attachment + ? { +- wallpaperUrl: `${baseAttachmentURL}${record.attachment.location}`, ++ wallpaperUrl: record.attachment.location.includes("trisquel") ++ ? `https://trisquel.cmxsl.org/newtab/${record.attachment.filename.replace(".avif", ".webp")}` ++ : `${baseAttachmentURL}${record.attachment.location}`, + } + : {}), + background_position: record.background_position || "center", +diff --git a/services/settings/remote-settings.sys.mjs b/services/settings/remote-settings.sys.mjs +index 2330fb01..2c4062d1 100644 +--- a/services/settings/remote-settings.sys.mjs ++++ b/services/settings/remote-settings.sys.mjs +@@ -301,7 +301,7 @@ function remoteSettingsFunction() { + bucketName: bucket, + signerName, + }); +- if (client.verifySignature) { ++ if (client.verifySignature && collection!== "newtab-wallpapers-v2") { + lazy.console.debug( + `${identifier}: Verify signature of bundled changeset` + ); diff --git a/helpers/DATA/firefox/ui_branding/build.json b/helpers/DATA/firefox/ui_branding/build.json new file mode 100644 index 00000000..d51c79df --- /dev/null +++ b/helpers/DATA/firefox/ui_branding/build.json @@ -0,0 +1,72 @@ +{ + "1d43f5a1-64bd-4ad4-b825-88a89878662f": { + "title": "trisquel-abe-01", + "theme": "dark", + "attachment": { + "hash": "962073af456fd63c6fc9b11dadbef724a56b223e04a7136f87e9b670f2b9283d", + "size": 62524, + "filename": "trisquel-abe-01.avif", + "location": "main-workspace/newtab-wallpapers-v2/trisquel-abe-01.avif", + "mimetype": "image/avif" + }, + "background_position": "bottom right" + }, + "2bf99683-cde8-438b-9f8e-a1222dc7f59c": { + "title": "trisquel-abe-02", + "theme": "light", + "attachment": { + "hash": "e3363cf5554c98e1243434ee047de9c31ddc3060355a55ce7b3cecd977f379ab", + "size": 72574, + "filename": "trisquel-abe-02.avif", + "location": "main-workspace/newtab-wallpapers-v2/trisquel-abe-02.avif", + "mimetype": "image/avif" + }, + "background_position": "bottom right" + }, + "2e468f89-ac6a-474f-a789-5de0be601887": { + "title": "trisquel-abe-03", + "theme": "dark", + "attachment": { + "hash": "3d6687928a6eeee6bd9f52ef2fae115ddfdcf974a832cce2286b37c642c0ede7", + "size": 48020, + "filename": "trisquel-abe-03.avif", + "location": "main-workspace/newtab-wallpapers-v2/trisquel-abe-03.avif", + "mimetype": "image/avif" + }, + "background_position": "bottom right" + }, + "429c288c-8d92-4baa-aefb-a04719882454": { + "title": "trisquel-abe-04", + "theme": "light", + "attachment": { + "hash": "f6b225b3f091dd556040028e758d143cbcb4d52d4e43ede3a2a367f44505993f", + "size": 25226, + "filename": "trisquel-abe-04.avif", + "location": "main-workspace/newtab-wallpapers-v2/trisquel-abe-04.avif", + "mimetype": "image/avif" + }, + "background_position": "bottom right" + }, + "451090be-cdf1-49fc-b1f3-bd2f3b4ac34d": { + "title": "trisquel-aramo", + "theme": "dark", + "attachment": { + "hash": "8c9ae9eb2063b763c737cd795af0f7b8883b43b2519d455b4097462ba6f4ad70", + "size": 196288, + "filename": "trisquel-aramo.avif", + "location": "main-workspace/newtab-wallpapers-v2/trisquel-aramo.avif", + "mimetype": "image/avif" + } + }, + "62aa72d9-b9f3-4f29-88f5-5120ee004e7c": { + "title": "trisquel-ecne", + "theme": "dark", + "attachment": { + "hash": "6a233237277c7cdc3a1078f250f1ae21576ceedec9d0abbe33be9f93add25355", + "size": 110186, + "filename": "trisquel-ecne.avif", + "location": "main-workspace/newtab-wallpapers-v2/trisquel-ecne.avif", + "mimetype": "image/avif" + } + } +} \ No newline at end of file diff --git a/helpers/DATA/firefox/ui_branding/debranding/assets/puzzle-fox.svg b/helpers/DATA/firefox/ui_branding/debranding/assets/puzzle-fox.svg new file mode 100644 index 00000000..b4ba9bcf --- /dev/null +++ b/helpers/DATA/firefox/ui_branding/debranding/assets/puzzle-fox.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/helpers/DATA/firefox/ui_branding/debranding/assets/trisquel_qr.png b/helpers/DATA/firefox/ui_branding/debranding/assets/trisquel_qr.png new file mode 100644 index 0000000000000000000000000000000000000000..d6e08c719934cdd435d6e590e4381953b9c5a79e GIT binary patch literal 6717 zcmeI1`9IX{zsE^&SC+f9*rFtDmWb@8?yL#z8rukC-85aXL6SN+{W!fpk@ z`NG1&R6PB>gI#U~z*YQ%+;bQ7rNA|v=0@kPg+HT>q5`f>HMA`+Djqt-pL9pTDaNvJ zeaDr_-5z@n_1hl2Be?U#9ACBZE3+K_mt!ZK8CK^CnYORXYXog&1Osf5k4?^=vNcw5 zZrf5Ge&}q2@>YfI+wX1tpm?Zb3?hSm6OsErjLI=tp%U(@#e*^^g87 z8ow>ZN^LNbkMG&x<{0O#5|@(r1Rm~kI;*xt_?Sryf9qeT{*~Yt-1Gl`{6A8JnvpEX)I2EH1uEI;H&u5@W-P^r{$@w7YT`KgJC z8E@Zen46oY-MhE-!GnoZ^=~&UED|*|G|WOntDhMnY@g=ls+J0ExpQ7kP3A{T(6q>FtLeZ{DZ_Rhwi<+R9F1@K@i0A7GiN?2B z=L!F6a&L6L=tZWqB-JIDYE$xr*B`$nLFCrGB=tC~4P!i5>^aNyMIrRVw z;_><5@S9t)6sDuZX}6?jx}lxe#z2Y*EOn)-$M9sS4Tf3HV}AQwa6XSQqpH*ZLH*9v5jn9>`F{9JGO@&%9)y)g0XwjvbE!W=PuK; z8tLfg&*jantWu^GF`bJ@mL9bJb~%MfAtYy@^}=jP<0u}2qQBhx!gNY{oPD1{!x;w# zRxax;PzN#DYip6jwHSVZb%`6fmidMbvXMUuymbXLo<5aY?G9@cucjGmHsi)3OJ5e& zj8DBxOiXmBwzjs;{`oV6ST`y&7q@f2>tKaL1;OcPP{S)Tt?}q83_0wigz(yiMR#&Z zNy%%!)TZ;llQX-B8lTsVZ5(68Vn!a%hWVBHYTiL;lyh~Y#471ytXzIji%X+ zTLtV8`Hi8MIanU{3uamSzF*&V3_NW?>V+?T+kD@y zt}c2!Wc@w+Y5iiO9WX^@DmWQeY;0!2h5ehjHNS*x7&K|t(b*X^!h0Vp3B!;GiH^5K~Cu@-9*t zG}sac@g^zdXnK=055y`y`{#EIvl1fZ$=l!()*c-?uW;rJ3F~;}inBdEq&bHFOYzmC zZIr63H*P4x;qVl4813soc(Hv@5LWnrZa+3JC&#m1%yN!OJ%Af{j>nILHw1clm28bY z*Tx+j80bhlY^p?k@Zf=Zz_+u+$l&0r=%x2U1mDTYNo`q}g0+B8oqt(^865uVWnrN$ zX%W9-r4!A514jUdNzcuthDYCa44>ErtqUopF#8HEGpfA@ZAqp{61RkZG$J@YtcmQ= zMHDZJV%hE9{p|S38)X3_U?Cj%&mX;6jQM$=mTWfgT!NGSPqNqq<%c|Jd9-Qe$2jjWGM2pMHG*Wur za;K-=Y*zXmU%!6+2xKO(Nc*3|Rqj(CABd;mU{|kFYRflmJ-wvlgbT0G<a^?G6 zqP!zzkJNAA^+{2mS)q3XIrhmDiP@pb7t5N3EI_@)DZ6Lsn4&10$!Khxoe-si>y)+y9RH08ZR z{cYd+aUtZ%6DQKw*Q1GRKWF<84d+-T*GpXoO0K7n7l*6b!iB4~XfcltQSb)-& zw*Fo(fV!t=^_NyxW*n;J45MoUFZ<%AyV2hGys(K6aRk=ia&n7a92Y`TT34=?9f`J2 z|1ZJV3RWdKVs5lPOu8vSEp+bMJI+GAGF7#a{X9@*W4TQ(dp|6?cbV<>>B*s{wE>J0 z71Ov@axwQz7Zyn^$8}OMO@2@9A=^$UxgfOT2HQ6mWlY;YpP6js0&f6*>rjo zk29VXs>Lyx%!nJc)C%0cOXv3dlTzQe)1EP@a*zdhSbpCNQ!$F_b{y=AcG$wRcx92@na^8yC$7y8SHXX!2jCE*wiuUzL5VgL%_N&=BT$~ z$NKvx$u*ddeSBnuHs!ni=*Y}Z8hP+0&Mu%HEDdNbisd(4ABKS=fb|iWz*E#}aN@#( z$=pqbs1d8r4JLy)D9_ByG>1ZS;G+u`d;H@5Ib_rJ+51oHb#z~6FB2kteakByflL~r zST$uRMk!3Q28MNgfCncsi{X!;+R?vygH0ZfS~Q?UN$7^WuH*vqOro7WeL9&&8&aPA zx-VDDKMQ~|F_N_~>cD6UUv`!}T5!W0Y7v_SWqS3zV+pb-|K2_^~ z^pE!XWp1Fm)8ec$Lq^4KFB+-R(bX* zx^Qw%yGxN(q1cZ@$YCs;u$eihYrt*QS0Xf!b8~Y^F2aJb1ZEU#L9?cZNDS6&gcGwQ zIh#9);ka+QF3ogP9<`y0pjBAAQhVJ^=MNaKzXXR$O`pMj9PeSimj?rrdC&1 z6If0-g;F%wiPctB;AsE^cAs)in^x2>=n~h6s!d9u5lZ1SQBw3=KmU6!g-l*;gKQikC4n-f_W`G*nf4hLE5qB`|>+7!u;ZjLF)-11b@qXDX%o z4wgYFYX(pD?As@WgGA6>VK^8R3NWTZa8N)1=JdZuJ^E-NM-a@}qt$w`LSk8Ve(zdw z8+~8COcun;V#|&yC`hmZfwg~nqSjKIEF>F#R!T}r=|4`JuOER0v~!abHa~O-Sds?w z7Jaa3{@AxBGxBx4ZSAIJeM2_6y%R0IdzcoyUF<2~E17oSzDyh%v@_~rZXhJu3k+DHs&B|#&c)!*Om z;YTk~vVGgmboR*rPDT9D`$CxtI)+Efls3EnX4WhQm|;*qg&fWNv6L74n*-g_3{RnQC?^t$z-R5$#&y20NY&%Oaq1w9UHF*|X;>KX~v zgyg;i(rsic-f(b0Z+1w7zE2iJWJF9;Wf=?uBnZexhBCdwe!V^Iurd{`8;V7sUYI1) zee`K3nm75gC0>j}LTz@Vjc%*pA^@pT`I-&+$gj8ihiPoFdd-P(hK?VEj(IYz9Ev4 zZiUu`l8Bw1FKcQ@*u10St9fCky6;Z zcQ2T%xPxdW>|CR%n4l=hT9bvje%P|{uyF*PN%q&1%}1NcMi{wuKbx)P!Zzsp&8@9* zW#d6aW%^txMt6Y+=qVj!a&#ByP!F)=j+gMKOy3v`J#@J$a)YjE$7222soqysv7~0X-G@1*yVVZ=~Gcu0o=&ag`wX`o-2>NY{JqP22m4fhYL|TES~~F6E;Q)?^kvSc$7x&%CQAg*wqWhM83oX9}wC15`6Zg38M&t&EF^i z+R-dvqC79g7K%>5xpVKM3NCq^J@_}fIN{WBVI$Mzgms%^dpgg=*?gQ<4e$o3Ywh9X zRc8Qdc6-;Xq-cDfzQi%UUE8;A$&{xDg4bCb{5w1fkgkZYR~rk>-@w*V|1~}0po+tN W?#JTMt>9ljeCEbhMiu`!-Tf~bDg~hc literal 0 HcmV?d00001 diff --git a/helpers/DATA/firefox/ui_branding/debranding/content/history-empty.svg b/helpers/DATA/firefox/ui_branding/debranding/content/history-empty.svg new file mode 100644 index 00000000..1c18635f --- /dev/null +++ b/helpers/DATA/firefox/ui_branding/debranding/content/history-empty.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + diff --git a/helpers/DATA/firefox/ui_branding/debranding/content/synced-tabs-empty.svg b/helpers/DATA/firefox/ui_branding/debranding/content/synced-tabs-empty.svg new file mode 100644 index 00000000..9ba72654 --- /dev/null +++ b/helpers/DATA/firefox/ui_branding/debranding/content/synced-tabs-empty.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/helpers/DATA/firefox/ui_branding/debranding/content/synced-tabs-error.svg b/helpers/DATA/firefox/ui_branding/debranding/content/synced-tabs-error.svg new file mode 100644 index 00000000..501befcf --- /dev/null +++ b/helpers/DATA/firefox/ui_branding/debranding/content/synced-tabs-error.svg @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/helpers/DATA/firefox/ui_branding/sidebar/fsf.svg b/helpers/DATA/firefox/ui_branding/sidebar/fsf.svg new file mode 100644 index 00000000..3f3bc136 --- /dev/null +++ b/helpers/DATA/firefox/ui_branding/sidebar/fsf.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/helpers/DATA/firefox/ui_branding/sidebar/liberachat.svg b/helpers/DATA/firefox/ui_branding/sidebar/liberachat.svg new file mode 100644 index 00000000..c76567fd --- /dev/null +++ b/helpers/DATA/firefox/ui_branding/sidebar/liberachat.svg @@ -0,0 +1,3 @@ + + + diff --git a/helpers/DATA/firefox/ui_branding/sidebar/trisquel.svg b/helpers/DATA/firefox/ui_branding/sidebar/trisquel.svg new file mode 100644 index 00000000..43b8b1cc --- /dev/null +++ b/helpers/DATA/firefox/ui_branding/sidebar/trisquel.svg @@ -0,0 +1,3 @@ + + + diff --git a/helpers/DATA/firefox/ui_branding/sidebar/wikipedia.svg b/helpers/DATA/firefox/ui_branding/sidebar/wikipedia.svg new file mode 100644 index 00000000..cdfca18f --- /dev/null +++ b/helpers/DATA/firefox/ui_branding/sidebar/wikipedia.svg @@ -0,0 +1,3 @@ + + + diff --git a/helpers/DATA/firefox/ui_branding/wallpaper-replace.py b/helpers/DATA/firefox/ui_branding/wallpaper-replace.py new file mode 100644 index 00000000..95942438 --- /dev/null +++ b/helpers/DATA/firefox/ui_branding/wallpaper-replace.py @@ -0,0 +1,163 @@ +# Copyright (C) 2026 Luis Guzman +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +import json +import hashlib +import os +import time +import argparse +import sys + +def calculate_sha256_hash(file_path): + """ + Calculates the SHA-256 hash of a physical file. + """ + sha256_hash = hashlib.sha256() + with open(file_path, "rb") as f: + for byte_block in iter(lambda: f.read(4096), b""): + sha256_hash.update(byte_block) + return sha256_hash.hexdigest() + +def build_step(config_path, output_path): + """ + Step 1: Reads config.json, processes the data, and creates build.json. + """ + print(f"--- Step 1: Building standalone artifact ---") + + if not os.path.exists(config_path): + print(f"ERROR: Configuration file '{config_path}' not found.") + sys.exit(1) + + with open(config_path, 'r', encoding='utf-8') as f: + config = json.load(f) + + build_data = {} + + for item in config.get('replacements',): + item_id = item.get('id_to_replace') + image_path = item.get('local_image_path') + theme = item.get('theme', '').strip() + + if not image_path or not os.path.exists(image_path): + print(f"WARNING: Local image not found at '{image_path}' for ID {item_id}. Skipping.") + continue + + file_size_bytes = os.path.getsize(image_path) + sha256_hash = calculate_sha256_hash(image_path) + + # Get the real file name (e.g., 'trisquel-aramo.webp') + real_file_name = os.path.basename(image_path) + + # Create the "disguised" file name to bypass Mozilla's strict schema validation + disguised_file_name = real_file_name.replace('.webp', '.avif') + + # Create a 100% schema-compliant entry masking the webp as an avif + build_data[item_id] = { + "title": real_file_name.replace('.webp', ''), + "theme": theme, + "attachment": { + "hash": sha256_hash, + "size": file_size_bytes, + "filename": disguised_file_name, + "location": f"main-workspace/newtab-wallpapers-v2/{disguised_file_name}", + "mimetype": "image/avif" # Masking the mime type for the validator + } + } + + # Check if the wallpaper is an "abe" one, to position logo accordingly + if "abe" in real_file_name.lower(): + build_data[item_id]["background_position"] = "bottom right" + + # Make sure dark theme is used on trisquel-ecne & trisquel-aramo images + if "trisquel-ecne" in real_file_name.lower() or "trisquel-aramo" in real_file_name.lower(): + build_data[item_id]["theme"] = "dark" + + print(f"Processed: {real_file_name} -> Masked as: {disguised_file_name} -> ID: {item_id}") + + with open(output_path, 'w', encoding='utf-8') as f: + json.dump(build_data, f, indent=2, ensure_ascii=False) + + print(f"\nSUCCESS: Generated standalone artifact at '{output_path}'.") + +def replace_step(source_path, target_path): + """ + Step 2: Injects the build.json data into the target Firefox JSON database. + """ + print(f"\n--- Step 2: Injecting into target JSON ---") + + if not os.path.exists(source_path): + print(f"ERROR: Build source file '{source_path}' not found.") + sys.exit(1) + + if not os.path.exists(target_path): + print(f"ERROR: Target JSON file '{target_path}' not found.") + sys.exit(1) + + with open(source_path, 'r', encoding='utf-8') as f: + build_data = json.load(f) + + with open(target_path, 'r', encoding='utf-8') as f: + target_db = json.load(f) + + current_timestamp = int(time.time() * 1000) + modified_count = 0 + + for item in target_db.get('data',): + item_id = item.get('id') + + if item_id in build_data: + new_data = build_data[item_id] + + # Wipe old custom keys if they exist from previous tests + item.pop('wallpaperUrl', None) + + # Apply schema-compliant data + item['attachment'] = new_data['attachment'] + item['title'] = new_data['title'] + item['schema'] = current_timestamp + item['last_modified'] = current_timestamp + + if new_data.get('theme'): + item['theme'] = new_data['theme'] + + # Apply background_position if it exists in build_data + if new_data.get('background_position'): + item['background_position'] = new_data['background_position'] + + print(f"Updated ID: {item_id} with file '{new_data['attachment']['filename']}'") + modified_count += 1 + + if modified_count > 0: + target_db['timestamp'] = current_timestamp + with open(target_path, 'w', encoding='utf-8') as f: + json.dump(target_db, f, indent=2, ensure_ascii=False) + print(f"\nSUCCESS: Modified {modified_count} entries in '{target_path}'.") + else: + print("\nWARNING: No matching IDs found in the target JSON to replace.") + +def main(): + parser = argparse.ArgumentParser(description="Firefox Newtab Wallpaper Injection Tool") + parser.add_argument('--config', type=str, nargs='?', const='./config.json', help="Step 1: Path to config.json.") + parser.add_argument('--replace', type=str, help="Step 2: Path to target Firefox JSON file to be modified.") + parser.add_argument('--source', type=str, default='./build.json', help="Step 2: Path to the standalone build.json.") + + args = parser.parse_args() + + if not args.config and not args.replace: + parser.print_help() + sys.exit(1) + + if args.config: build_step(args.config, './build.json') + if args.replace: replace_step(args.source, args.replace) + +if __name__ == "__main__": + main() diff --git a/helpers/make-firefox b/helpers/make-firefox index b1a8b456..6440b799 100644 --- a/helpers/make-firefox +++ b/helpers/make-firefox @@ -19,7 +19,7 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=131 +VERSION=132 EXTERNAL='deb-src http://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu $UPSTREAM main' REPOKEY=AEBDF4819BE21867 @@ -275,6 +275,26 @@ do /bin/sed -i 's|= Firefox |= |' $i done +# Replace sidebar icons +rm -rf browser/themes/shared/sidebar +cp -R $DATA/ui_branding/sidebar browser/themes/shared/ + +python3 $DATA/ui_branding/wallpaper-replace.py --source $DATA/ui_branding/build.json \ + --replace services/settings/dumps/main/newtab-wallpapers-v2.json + +# Graphic Debranding +cp $DATA/ui_branding/debranding/assets/puzzle-fox.svg browser/extensions/newtab/data/content/assets/puzzle-fox.svg +## replace multiple firefox qr codes. +for qr in download-qr-code-var-a.png download-qr-code-var-b.png download-qr-code-var-c.png +do + cp $DATA/ui_branding/debranding/assets/trisquel_qr.png browser/extensions/newtab/data/content/assets/$qr +done +## Remove mascot +for graph in history-empty.svg synced-tabs-empty.svg synced-tabs-error.svg +do + cp $DATA/ui_branding/debranding/content/$graph browser/components/firefoxview/content/$graph +done + # Disable preprocessor sed 's/_PP//' -i browser/branding/branding-common.mozbuild #Prevent duplicated values. @@ -328,7 +348,7 @@ sed 's/Firefox/Abrowser/' -i debian/control.in \ # Useful when trying to catch patch issues faster. [ "$MAIN_REBRANDING_ENABLED" = 1 ] && main_rebranding -sed s/ubuntu/trisquel/g debian/distribution.ini -i +sed "s/ubuntu/trisquel/g" -i debian/distribution.ini sed "s/ubuntu_version/trisquel_version/; s/Ubuntu 10.10/Trisquel $REVISION/; s/1010/40/" -i debian/firefox.postinst.in # Delete stuff we don't use and that may contain trademaked logos From 8ae707febcd9e61ef8db7f4cd4a5a66c7f32658d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20Guzm=C3=A1n?= Date: Mon, 11 May 2026 17:08:59 -0600 Subject: [PATCH 29/29] gnome-user-docs: fix missing gnome-help. --- helpers/make-gnome-user-docs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/helpers/make-gnome-user-docs b/helpers/make-gnome-user-docs index 2863796f..acca1535 100644 --- a/helpers/make-gnome-user-docs +++ b/helpers/make-gnome-user-docs @@ -1,6 +1,7 @@ #!/bin/sh # # Copyright (C) 2020 Rubén Rodríguez +# Copyright (C) 2026 Denis 'GNUtoo' Carikli # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,15 +18,20 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=2 +VERSION=3 COMPONENT=main . ./config sed '/ubuntu-docs/d' -i debian/control* + +# Ubuntu overrides all the files defined in the DO_NOT_INSTALL +# variable by deleting them. Since we don't use ubuntu-docs, we do +# want these files. +sed '/rm \$(DO_NOT_INSTALL); \\/d' -i debian/rules + touch AUTHORS changelog "Removed ubuntu-docs dependency" package -