Merge branch 'aramo' of git.cmxsl.org:CMXSL.org/package-helpers-cmxsl into aramo-cmxsl

This commit is contained in:
Ark74 2026-02-08 16:43:45 -06:00
commit 0723f7c82f
38 changed files with 2940 additions and 149 deletions

View file

@ -0,0 +1,32 @@
diff --git a/html/pdf.html b/html/pdf.html
index 2e4143fa..9f58faa9 100644
--- a/html/pdf.html
+++ b/html/pdf.html
@@ -7,7 +7,7 @@
<body>
<div class="content clear-block">
<h1>"An Anarchist FAQ" in pdf format</h1>
-<p>To view and print out the file you will need to have Adobe Document Reader on your computer. This is free software that now comes on many computers and with many CD's. If you do not already have it you can <a href="http://www.adobe.com/products/acrobat/readstep.html"> download it from the Adobe site.</a> [or <a href="http://www.adobe.com/products/acrobat/alternate.html"> click here for a faster text only page</a>]</p>
+<p>To view or print this file, you will need a PDF reader installed on your computer. Many PDF readers are free software and are available on most systems. If you don't already have one, you can browse a list of options at <a href="https://pdfreaders.org">pdfreaders.org</a>, or install a PDF reader from your operating system's software repository.</p>
<h2><u>An Anarchist FAQ<br>
</u></h2>
<ul>
diff --git a/markdown/pdf.md b/markdown/pdf.md
index 0375b395..5994bd6f 100644
--- a/markdown/pdf.md
+++ b/markdown/pdf.md
@@ -1,9 +1,10 @@
# "An Anarchist FAQ" in pdf format
-To view and print out the file you will need to have Adobe Document Reader on
-your computer. This is free software that now comes on many computers and with
-many CD's. If you do not already have it you can [ download it from the Adobe
-for a faster text only
+To view or print this file, you will need a PDF reader installed on your
+computer. Many PDF readers are free software and are available on most
+systems. If you don't already have one, you can browse a list of options at
+pdfreaders.org, or install a PDF reader from your operating system's software
+repository
## _An Anarchist FAQ
_

View file

@ -7,14 +7,12 @@ diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
index c5f7cf3a..f0124235 100644
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -1251,11 +1251,11 @@ pref("accessibility.typeaheadfind.linksonly", false);
@@ -1368,9 +1368,9 @@ pref("accessibility.typeaheadfind.linksonly", false);
pref("accessibility.typeaheadfind.flashBar", 1);
// Whether we can show the "Firefox Labs" section.
-pref("browser.preferences.experimental", true);
+pref("browser.preferences.experimental", false);
// Whether we had to hide the "Firefox Labs" section because it would be empty.
pref("browser.preferences.experimental.hidden", false);
-pref("browser.preferences.experimental.hidden", false);
+pref("browser.preferences.experimental.hidden", true);
// Whether we show the "More from Mozilla" section.
-pref("browser.preferences.moreFromMozilla", true);
+pref("browser.preferences.moreFromMozilla", false);

View file

@ -1,33 +1,32 @@
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
index 52a520fd..81cc685d 100644
index 217ed280..d91cde94 100644
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -1718,19 +1718,19 @@
pref("browser.topsites.component.enabled", false);
@@ -1806,16 +1806,16 @@ pref("browser.topsites.component.enabled", false);
pref("browser.topsites.useRemoteSetting", true);
// Fetch sponsored Top Sites from Mozilla Tiles Service (Contile)
-pref("browser.topsites.contile.enabled", true);
-pref("browser.topsites.contile.endpoint", "https://contile.services.mozilla.com/v1/tiles");
+pref("browser.topsites.contile.enabled", false);
+pref("browser.topsites.contile.endpoint", "");
// Whether to enable the Share-of-Voice feature for Sponsored Topsites via Contile.
-pref("browser.topsites.contile.sov.enabled", true);
+pref("browser.topsites.contile.sov.enabled", false);
// The base URL for the Quick Suggest anonymizing proxy. To make a request to
// the proxy, include a campaign ID in the path.
-pref("browser.partnerlink.attributionURL", "https://topsites.services.mozilla.com/cid/");
-pref("browser.partnerlink.campaign.topsites", "amzn_2020_a1");
+pref("browser.partnerlink.attributionURL", "");
+pref("browser.partnerlink.campaign.topsites", "");
// Activates preloading of the new tab url.
-pref("browser.newtab.preload", true);
+pref("browser.newtab.preload", false);
pref("browser.preonboarding.onTrainRolloutPopulation", 0);
// 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);
// Mozilla Ad Routing Service (MARS) unified ads service
-pref("browser.newtabpage.activity-stream.unifiedAds.tiles.enabled", true);
-pref("browser.newtabpage.activity-stream.unifiedAds.spocs.enabled", true);
@ -36,19 +35,23 @@ index 52a520fd..81cc685d 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);
pref("browser.newtabpage.activity-stream.unifiedAds.adsFeed.tiles.enabled", false);
pref("browser.newtabpage.activity-stream.unifiedAds.ohttp.enabled", false);
// 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.images.smart", true);
pref("browser.newtabpage.activity-stream.images.smart", true);
// enable location search for newtab weather widget
-pref("browser.newtabpage.activity-stream.weather.locationSearchEnabled", true);
+pref("browser.newtabpage.activity-stream.weather.locationSearchEnabled", false);
// List of regions that get weather by default.
pref("browser.newtabpage.activity-stream.discoverystream.region-weather-config", "US,CA")
-pref("browser.newtabpage.activity-stream.discoverystream.region-weather-config", "US,CA");
+pref("browser.newtabpage.activity-stream.discoverystream.region-weather-config", "");
// List of locales that weather widget supports.
pref("browser.newtabpage.activity-stream.discoverystream.locale-weather-config", "en-US,en-GB,en-CA");

View file

@ -19,35 +19,59 @@ with is="" and support-page="..."
Cheers!
diff --git a/browser/components/preferences/privacy.inc.xhtml b/browser/components/preferences/privacy.inc.xhtml_
index 77ea8f5d..62c3ce8e 100644
diff --git a/browser/components/preferences/privacy.inc.xhtml b/browser/components/preferences/privacy.inc.xhtml
index a9e8501a..02328371 100644
--- a/browser/components/preferences/privacy.inc.xhtml
+++ b/browser/components/preferences/privacy.inc.xhtml
@@ -372,10 +372,7 @@
support-page="global-privacy-control" />
</hbox>
<hbox id="doNotTrackBox" flex="1" align="center" hidden="true">
- <html:a is="moz-support-link"
- id="doNotTrackRemoval"
- support-page="how-do-i-turn-do-not-track-feature"
- data-l10n-id="do-not-track-removal" />
+ <html:a class="learnMore" href="https://trisquel.info/en/wiki/abrowser-help" target="_blank"/>
</hbox>
</vbox>
</groupbox>
@@ -388,11 +385,10 @@
<vbox flex="1">
<description class="description-with-side-element description-deemphasized" flex="1">
<html:span id="totalSiteDataSize"></html:span>
@@ -21,13 +21,13 @@
<hbox align="start">
<image id="trackingProtectionShield"/>
<description class="description-with-side-element" flex="1">
- <html:span id="contentBlockingDescription" data-l10n-id="content-blocking-section-top-level-description"></html:span>
- <html:a is="moz-support-link"
- id="siteDataLearnMoreLink"
- data-l10n-id="sitedata-learn-more"
- support-page="storage-permissions"
- id="contentBlockingLearnMore"
- class="learnMore"
- data-l10n-id="content-blocking-learn-more"
- support-page="enhanced-tracking-protection"
- />
+ <html:a id="doNotTrackLearnMoreLink"
+ href="https://trisquel.info/en/wiki/abrowser-help"
+ data-l10n-id="do-not-track-learn-more"
+ target="_blank"/>
+ <html:span id="contentBlockingDescription" data-l10n-id="content-blocking-section-top-level-description"></html:span>
+ <html:a id="contentBlockingLearnMore"
+ class="learnMore"
+ data-l10n-id="content-blocking-learn-more"
+ href="https://trisquel.info/en/wiki/abrowser-help"
+ target="_blank"
+ />
</description>
<hbox flex="1" id="deleteOnCloseNote" class="info-box-container smaller-font-size">
<hbox class="info-icon-container">
<button id="trackingProtectionExceptions"
is="highlightable-button"
#@@ -389,9 +386,10 @@
# class="tail-with-learn-more"
# preference="privacy.donottrackheader.enabled"
# data-l10n-id="do-not-track-description2" />
#- <html:a is="moz-support-link"
#- id="doNotTrackLearnMoreLink"
#- support-page="how-do-i-turn-do-not-track-feature" />
#+ <html:a id="doNotTrackLearnMoreLink"
#+ href="https://trisquel.info/en/wiki/abrowser-help"
#+ data-l10n-id="do-not-track-learn-more"
#+ target="_blank"/>
# </hbox>
# </vbox>
# </groupbox>
# dropped 144
#diff --git a/browser/components/preferences/privacy.inc.xhtml b/browser/components/preferences/privacy.inc.xhtml
#index 205c0e01..029b9925 100644
#--- a/browser/components/preferences/privacy.inc.xhtml
#+++ b/browser/components/preferences/privacy.inc.xhtml
#@@ -372,10 +372,7 @@
# support-page="global-privacy-control" />
# </hbox>
# <hbox id="doNotTrackBox" flex="1" align="center" hidden="true">
#- <html:a is="moz-support-link"
#- id="doNotTrackRemoval"
#- support-page="how-do-i-turn-do-not-track-feature"
#- data-l10n-id="do-not-track-removal" />
#+ <html:a class="learnMore" href="https://trisquel.info/en/wiki/abrowser-help" target="_blank"/>
# </hbox>
# </vbox>
# </groupbox>

View file

@ -22,7 +22,7 @@ diff --git a/browser/extensions/newtab/lib/AboutPreferences.sys.mjs b/browser/ex
index 0d43919b..f2e0fbd0 100644
--- a/browser/extensions/newtab/lib/AboutPreferences.sys.mjs
+++ b/browser/extensions/newtab/lib/AboutPreferences.sys.mjs
@@ -120,37 +120,6 @@ const PREFS_FOR_SETTINGS = () => [
@@ -88,33 +88,6 @@ const PREFS_FOR_SETTINGS = () => [
),
eventSource: "TOP_STORIES",
},
@ -52,15 +52,11 @@ index 0d43919b..f2e0fbd0 100644
- },
- ],
- },
- shouldHidePref: !Services.prefs.getBoolPref(
- "browser.newtabpage.activity-stream.system.showSponsoredCheckboxes",
- false
- ),
- },
];
export class AboutPreferences {
@@ -351,41 +320,8 @@ export class AboutPreferences {
@@ -344,41 +317,9 @@ export class AboutPreferences {
}
});
@ -89,7 +85,7 @@ index 0d43919b..f2e0fbd0 100644
- setupSupportFirefoxSubCheck("feeds.section.topstories", "showSponsored");
- setupSupportFirefoxSubCheck("feeds.topsites", "showSponsoredTopSites");
- }
-
pref.on("change", () => {
subChecks.forEach(subcheck => {
- // Update child preferences for the "Support Firefox" checkbox group
@ -120,14 +116,13 @@ index 269eca10..4c35b53f 100644
# Variables:
# $num (number) - Number of rows displayed
diff --git a/browser/themes/shared/preferences/preferences.css b/browser/themes/shared/preferences/preferences.css
index 9c8155e5..4718341f 100644
index 701d29be..769791d7 100644
--- a/browser/themes/shared/preferences/preferences.css
+++ b/browser/themes/shared/preferences/preferences.css
@@ -1541,12 +1541,3 @@ richlistitem .text-link:hover {
.search-header:has(.section-heading) {
@@ -1478,15 +1478,6 @@ setting-group[groupid="home"] {
margin: 0;
}
-
-/* Styles for the "sponsors support our mission" message and link on the Home tab */
-.mission-message {
- margin-block-start: var(--space-large);
@ -136,3 +131,7 @@ index 9c8155e5..4718341f 100644
- font-size: var(--font-size-small);
- }
-}
-
#dohProviderSelect {
--select-max-width: 235px;
}

View file

@ -305,9 +305,12 @@ pref("dom.private-attribution.submission.enabled", false);
// Disable Machine Learning
pref("browser.ml.chat.enabled", false);
pref("browser.tabs.groups.smart.enabled", false);
// Hide from UI
pref("browser.ml.chat.hideFromLabs", true);
pref("browser.ml.chat.hideLabsShortcuts", true);
pref("browser.tabs.groups.smart.userEnabled", false);
// Disable tab hover preview
pref("browser.tabs.hoverPreview.enabled", false);

View file

@ -0,0 +1,30 @@
From 333dfad568ba77456ff3b00e6c2750d6a2cf0d73 Mon Sep 17 00:00:00 2001
From: Felipe Borges <felipeborges@gnome.org>
Date: Wed, 10 Aug 2022 09:54:41 +0200
Subject: [PATCH] util-app: Make recommended-downloads parsing handle empty
media lists
---
src/util-app.vala | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/util-app.vala b/src/util-app.vala
index c0a42a94d..c5f47ae22 100644
--- a/src/util-app.vala
+++ b/src/util-app.vala
@@ -250,7 +250,11 @@ private async GLib.List<Osinfo.Media>? parse_recommended_downloads_file (string
continue;
}
- var media = os.get_media_list ().get_nth (0) as Osinfo.Media;
+ var media_list = os.get_media_list ();
+ if (media_list == null || media_list.get_length () == 0)
+ continue;
+
+ var media = media_list.get_nth (0) as Osinfo.Media;
if (media.url != null || os_id.has_prefix ("http://redhat.com"))
list.append (media);
--
GitLab

View file

@ -0,0 +1,34 @@
From fd702c02497b2f398e739e3119bed0b23dd7aa7b Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
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 <simon@josefsson.org>
---
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;

View file

@ -0,0 +1,78 @@
From ccba9f748aa8d50a38d7748e2e60362edd6a32cc Mon Sep 17 00:00:00 2001
From: Simon Josefsson <simon@josefsson.org>
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;

View file

@ -0,0 +1,103 @@
diff --git a/capplets/time-admin/src/main.c b/capplets/time-admin/src/main.c
index a15254e6..ac9adb43 100644
--- a/capplets/time-admin/src/main.c
+++ b/capplets/time-admin/src/main.c
@@ -156,8 +156,14 @@ static void InitMainWindow(TimeAdmin *ta)
/* NTP sync switch */
ta->NtpState = GetNtpState(ta);
+ /* If there is no NTP provider, then disable ntp switch and manually set NtpState = FALSE */
+ if (!GetCanNtp(ta)) {
+ gtk_widget_set_sensitive (ta->NtpSyncSwitch, FALSE);
+ ta->NtpState = FALSE;
+ }
gtk_switch_set_state (GTK_SWITCH(ta->NtpSyncSwitch), ta->NtpState);
-
+ /* Refresh the tooltip state consistently */
+ ChangeSpinBttonState (ta);
/* Time zone */
SetupTimezoneDialog(ta);
const char *TimeZone = GetTimeZone(ta);
diff --git a/capplets/time-admin/src/time-tool.c b/capplets/time-admin/src/time-tool.c
index 664f6284..ac41545a 100644
--- a/capplets/time-admin/src/time-tool.c
+++ b/capplets/time-admin/src/time-tool.c
@@ -138,6 +138,45 @@ EXIT:
}
+/* Returns TRUE if timedated reports a network time provider (CanNTP == TRUE). */
+gboolean GetCanNtp(TimeAdmin *ta)
+{
+ GDBusProxy *proxy = NULL;
+ GError *error = NULL;
+ GVariant *ret;
+ GVariant *canntp;
+
+ proxy = g_dbus_proxy_new_sync (ta->Connection,
+ G_DBUS_PROXY_FLAGS_NONE,
+ NULL,
+ "org.freedesktop.timedate1",
+ "/org/freedesktop/timedate1",
+ "org.freedesktop.DBus.Properties",
+ NULL,
+ &error);
+ if (proxy == NULL)
+ goto EXIT;
+
+ ret = g_dbus_proxy_call_sync (proxy,
+ "Get",
+ g_variant_new ("(ss)",
+ "org.freedesktop.timedate1",
+ "CanNTP"),
+ G_DBUS_CALL_FLAGS_NONE,
+ -1,
+ NULL,
+ &error);
+ if (ret == NULL)
+ goto EXIT;
+
+ g_variant_get (ret, "(v)", &canntp);
+ return g_variant_get_boolean (canntp);
+
+EXIT:
+ ErrorMessage (_("GetNtpState"), error ? error->message : _("Unknown error"));
+ if (error) g_error_free (error);
+ return FALSE;
+}
const gchar *GetTimeZone(TimeAdmin *ta)
{
GDBusProxy *proxy = NULL;
@@ -200,10 +238,16 @@ void SetTimeZone(GDBusProxy *proxy,const char *zone)
}
}
-static void
+void
ChangeSpinBttonState (TimeAdmin *ta)
{
+ /* Enable/disable manual edit widgets based on NTP state */
gtk_widget_set_sensitive (ta->SaveButton, !ta->NtpState);
+ gtk_widget_set_sensitive (ta->HourSpin, !ta->NtpState);
+ gtk_widget_set_sensitive (ta->MinuteSpin, !ta->NtpState);
+ gtk_widget_set_sensitive (ta->SecondSpin, !ta->NtpState);
+ gtk_widget_set_sensitive (ta->Calendar, !ta->NtpState);
+
SetTooltip (ta->SaveButton, !ta->NtpState);
SetTooltip (ta->HourSpin, !ta->NtpState);
SetTooltip (ta->MinuteSpin, !ta->NtpState);
diff --git a/capplets/time-admin/src/time-tool.h b/capplets/time-admin/src/time-tool.h
index 9c17703e..dfb0e601 100644
--- a/capplets/time-admin/src/time-tool.h
+++ b/capplets/time-admin/src/time-tool.h
@@ -42,6 +42,10 @@ void SaveModifyTime (GtkButton *button,
gboolean GetNtpState (TimeAdmin *ta);
+gboolean GetCanNtp (TimeAdmin *ta);
+
+void ChangeSpinBttonState (TimeAdmin *ta);
+
const gchar *GetTimeZone (TimeAdmin *ta);
void SetTimeZone (GDBusProxy *proxy,

View file

@ -0,0 +1,76 @@
diff --git a/src/user-admin.c b/src/user-admin.c
index c51a2022..a4fb6941 100644
--- a/src/user-admin.c
+++ b/src/user-admin.c
@@ -23,8 +23,10 @@
#include <pwd.h>
#include <libintl.h>
#include <locale.h>
+#include <glib.h>
#include <glib/gi18n.h>
#include <grp.h>
+#include <string.h>
#include <sys/types.h>
#include <libgroupservice/gas-group.h>
#include <libgroupservice/gas-group-manager.h>
@@ -285,6 +287,51 @@ static gboolean UserNameValidCheck (const gchar *UserName, gchar **Message)
valid = TRUE;
if (!in_use && !empty && !home_use)
{
+ /* Follow adduser(8) policy:
+ * Read NAME_REGEX from /etc/adduser.conf, compile an anchored regex,
+ * and require the username to fully match it. If unavailable or
+ * invalid, fall back to current Debian/Ubuntu default: ^[a-z][-a-z0-9_]*$
+ * (lowercase first char; then lowercase, digits, '-' and '_').
+ */
+ {
+ gchar *contents = NULL, *rx_s = NULL;
+ gsize len = 0;
+ const gchar *fallback = "^[a-z][-a-z0-9_]*$";
+ if (g_file_get_contents("/etc/adduser.conf", &contents, &len, NULL)) {
+ gchar **lines = g_strsplit(contents, "\n", -1);
+ for (gchar **p = lines; p && *p; ++p) {
+ gchar *line = g_strstrip(*p);
+ if (!line || !*line || line[0] == '#')
+ continue;
+ if (g_str_has_prefix(line, "NAME_REGEX")) {
+ /* Accept forms like: NAME_REGEX="...pattern..." */
+ gchar *q1 = strchr(line, '"');
+ if (q1) {
+ gchar *q2 = strrchr(q1 + 1, '"');
+ if (q2 && q2 > q1 + 1)
+ rx_s = g_strndup(q1 + 1, (gsize)(q2 - (q1 + 1)));
+ }
+ break;
+ }
+ }
+ g_strfreev(lines);
+ g_free(contents);
+ }
+
+ GError *rx_err = NULL;
+ GRegex *rx = g_regex_new(rx_s ? rx_s : fallback, G_REGEX_ANCHORED, 0, &rx_err);
+ g_free(rx_s);
+ if (rx) {
+ if (!g_regex_match(rx, UserName, 0, NULL)) {
+ valid = FALSE;
+ }
+ g_regex_unref(rx);
+ } else {
+ /* If regex cannot compile, be conservative */
+ if (rx_err) g_error_free(rx_err);
+ valid = FALSE;
+ }
+ }
for (c = UserName; *c; c++)
{
if (! ((*c >= 'a' && *c <= 'z') ||
@@ -313,7 +360,7 @@ static gboolean UserNameValidCheck (const gchar *UserName, gchar **Message)
}
else
{
- *Message = g_strdup (_("The username should only consist of upper and lower case \nletters from a-z,digits and the following characters: . - _"));
+ *Message = g_strdup (_("The username first character must be lower case, use only \nlowercase letters (az), digits and the following characters: -_"));
}
}

View file

@ -0,0 +1,25 @@
From 74f37ee5727f50f4175dbba9744391e3245e7982 Mon Sep 17 00:00:00 2001
From: "I.Rezkov" <fagothmail@gmail.com>
Date: Fri, 31 Oct 2025 21:06:08 +0300
Subject: [PATCH] fix downloading screenshots
---
common/rpackage.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/common/rpackage.cc b/common/rpackage.cc
index 834b199d..3b40fbc2 100644
--- a/common/rpackage.cc
+++ b/common/rpackage.cc
@@ -949,9 +949,9 @@ string RPackage::getScreenshotFile(pkgAcquire *fetcher, bool thumb)
verstr=string(verstr, verstr.find(':')+1);
char uri[512];
if(thumb)
- snprintf(uri,512,"http://screenshots.debian.net/thumbnail/%s", name());
+ snprintf(uri,512,"https://screenshots.debian.net/thumbnail/%s", name());
else
- snprintf(uri,512,"http://screenshots.debian.net/screenshot/%s", name());
+ snprintf(uri,512,"https://screenshots.debian.net/screenshot/%s", name());
//cerr << "uri is: " << uri << endl;

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

View file

@ -519,18 +519,18 @@ diff --git a/l10n/ru/mail/messenger/preferences/preferences.ftl b/l10n/ru/mail/m
index eda8e814..709bc792 100644
--- a/l10n/ru/mail/messenger/preferences/preferences.ftl
+++ b/l10n/ru/mail/messenger/preferences/preferences.ftl
@@ -818,12 +818,12 @@ sync-disconnected-turn-on-sync = Включить Cинхронизацию…
@@ -948,12 +948,12 @@ sync-disconnected-turn-on-sync = Включить Cинхронизацию…
## Mobile QR Export Pane
-qr-export-pane-header = Экспорт учётных записей в { -brand-product-name } для мобильных устройств
+qr-export-pane-header = Экспорт учётных записей для мобильных устройств
+qr-export-pane-header = Экспорт учётных записей в для мобильных устройств
qr-export-description = Быстро перенесите настройки своего аккаунта с ПК на мобильное устройство, сгенерировав QR-код. Выберите, какие учётные записи включить, решите, хотите ли вы передать свой пароль, и отсканируйте код мобильным устройством. Быстро, безопасно и просто.
qr-export-get-app = У вас ещё нет { -brand-product-name } на мобильных устройствах? <a data-l10n-name="app-link">Загрузите в Google Play</a>
qr-export-get-app = У вас ещё нет { -brand-product-name } на мобильных устройствах? <a data-l10n-name="app-link">Скачайте в Google Play</a>
qr-export-create = Создайте QR-код для экспорта ваших учётных записей
qr-export-select-accounts = Выберите учётные записи для экспорта:
-qr-export-no-accounts = Не видите все ваши учётные записи? Некоторые учётные записи могут быть отключены, поскольку они не поддерживаются { -brand-product-name } для Android. <a data-l10n-name="account-support-link">Поддержка</a>
+qr-export-no-accounts = Не видите все ваши учётные записи? Некоторые учётные записи могут быть отключены, поскольку они не поддерживаются для Android. <a data-l10n-name="account-support-link">Поддержка</a>
+qr-export-no-accounts = Не видите все ваши учётные записи? Некоторые учётные записи могут быть отключены, поскольку они не поддерживаются для Android. <a data-l10n-name="account-support-link">Поддержка</a>
qr-export-accounts-legend = Учётные записи электронной почты
qr-export-select-all-accounts = Выбрать все
qr-export-security-legend = Защита

View file

@ -0,0 +1,26 @@
diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml
index c6498081..a8db34ad 100644
--- a/browser/base/content/aboutDialog.xhtml
+++ b/browser/base/content/aboutDialog.xhtml
@@ -138,7 +138,7 @@
<vbox id="bottomBox">
<hbox pack="center">
<label is="text-link" class="bottom-link" useoriginprincipal="true" href="about:license" data-l10n-id="bottomLinks-license"/>
- <label is="text-link" class="bottom-link" href="https://www.mozilla.org/about/legal/terms/firefox/" data-l10n-id="bottom-links-terms"/>
+ <label is="text-link" class="bottom-link" href="https://trisquel.info/legal" data-l10n-id="bottom-links-terms"/>
<label is="text-link" class="bottom-link" href="https://www.mozilla.org/privacy/firefox/?utm_source=firefox-browser&#38;utm_medium=firefox-desktop&#38;utm_campaign=about-dialog" data-l10n-id="bottom-links-privacy"/>
</hbox>
<description id="trademark" data-l10n-id="trademarkInfo"></description>
diff --git a/browser/components/about/AboutRedirector.cpp b/browser/components/about/AboutRedirector.cpp
index d1fe0148..ce5d1f42 100644
--- a/browser/components/about/AboutRedirector.cpp
+++ b/browser/components/about/AboutRedirector.cpp
@@ -90,7 +90,7 @@ static const RedirEntry kRedirMap[] = {
{"profiling",
"chrome://devtools/content/performance-new/aboutprofiling/index.xhtml",
nsIAboutModule::ALLOW_SCRIPT | nsIAboutModule::IS_SECURE_CHROME_UI},
- {"rights", "https://www.mozilla.org/about/legal/terms/firefox/",
+ {"rights", "https://trisquel.info/legal",
nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
nsIAboutModule::URI_MUST_LOAD_IN_CHILD},
{"robots", "chrome://browser/content/aboutRobots.xhtml",

View file

@ -295,7 +295,7 @@ class UrlClassifierSkipUrls(EmptyRemoteSettings):
class TippyTopSites(JsonProcessor):
JSON_PATHS = (
arguments.MAIN_PATH /
'browser/components/newtab/data/content/tippytop/top_sites.json',
'browser/components/topsites/content/tippytop/top_sites.json',
arguments.BRANDING_PATH /
'tippytop/top_sites.json')
@ -325,7 +325,7 @@ class TopSites(RemoteSettings):
@classmethod
def should_drop_record(cls, site):
return site['url'] != 'https://www.wikipedia.org/'
return True
@classmethod
def process_record(cls, site):

View file

@ -86,12 +86,15 @@ index 5675445a..7afd324b 100644
if sys.platform in ('cygwin', 'win32'):
yield from map(os.path.expandvars, (
R'%APPDATA%\Mozilla\Firefox\Profiles',
@@ -205,7 +205,7 @@ def _firefox_browser_dirs():
else:
@@ -214,9 +214,9 @@ def _firefox_browser_dirs(browser_name='firefox'):
yield from map(os.path.expanduser, (
# New installations of FF147+ respect the XDG base directory specification
# Ref: https://bugzilla.mozilla.org/show_bug.cgi?id=259356
- os.path.join(_config_home(), 'mozilla/firefox'),
+ os.path.join(_config_home(), 'mozilla/{browser_name}'),
# Existing FF version<=146 installations
- '~/.mozilla/firefox',
+ f'~/.mozilla/{browser_name}',
'~/snap/firefox/common/.mozilla/firefox',
+ '~/.mozilla/{browser_name}',
# Flatpak XDG: https://docs.flatpak.org/en/latest/conventions.html#xdg-base-directories
'~/.var/app/org.mozilla.firefox/config/mozilla/firefox',
'~/.var/app/org.mozilla.firefox/.mozilla/firefox',
))

View file

@ -0,0 +1,35 @@
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:

View file

@ -81,12 +81,33 @@ pkgversion(){
replace(){
find ${@:3} -type f -not -iregex '.*changelog.*' -not -iregex '.*copyright.*' -execdir /bin/sed --follow-symlinks -i s^"$1"^"$2"^g {} \;
}
changelog_multiline() {
local msg="$1"
local version="${2:-$FULLVERSION}"
local dist="${3:-$REPO}"
if ! grep -q "$version" debian/changelog 2>/dev/null; then
dch -v "$version" -D "$dist" ""
fi
local count=0
while IFS= read -r line || [ -n "$line" ]; do
dch -a "$line"
count=$((count + 1))
done <<< "$msg"
if [ "$count" -gt 0 ]; then
dch -r ""
fi
}
changelog(){
head -n 1 debian/changelog | grep -q $UPSTREAM-security && REPO=$CODENAME-security || REPO=$CODENAME
[ "$SECURITY" = true ] && REPO=${CODENAME}-security
[ "$BACKPORT" = true ] || [ "$BACKPORTS" = true ] && REPO=${CODENAME}-backports
#Name convention issue "+" breaking packages build like console-setup, using "-" instead.
echo | dch -D $REPO -v $FULLVERSION "$1"
local msg="$1"
changelog_multiline "$msg" "$FULLVERSION" "$REPO"
# Make sure the changelog file is identical between archs
/bin/sed "/-- Desarrollo/s/.*/ -- Desarrollo CMXSL <devel@cmxsl.org> $DATE/" -i debian/changelog
@ -212,7 +233,7 @@ package(){
# Make sure the series file is formated correctly after removals
if [ -f debian/patches/series ]; then
grep -q [a-z] debian/patches/series || echo -n > debian/patches/series
grep -q [a-z] debian/patches/series || : > debian/patches/series
fi
if [ 1$QUILT != 1skip ]; then
@ -283,6 +304,7 @@ fi
}
remove_patch(){
echo "> Removing patch $1 in progress..."
rm "$(find */patches -name "$1")"
sed -i "/$1/d" debian/patches/series
}

28
helpers/make-anarchism Normal file
View file

@ -0,0 +1,28 @@
#!/bin/sh
#
# Copyright (C) 2026 Luis Guzmán <ark@switnet.org>
#
# 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=0
. ./config
apply_patch_changes
changelog "Replace promotion of non-free PDF software"
package

View file

@ -19,9 +19,9 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
VERSION=126
VERSION=129
EXTERNAL='deb-src http://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu $UPSTREAM main'
REPOKEY=9BDB3D89CE49EC21
REPOKEY=AEBDF4819BE21867
. ./config
@ -50,10 +50,7 @@ sed '/"showSponsored"/,/value/s/value: true/value: false/' -i $ActivityStream
sed '/"telemetry"/,/value/s/value: true/value: false/' -i $ActivityStream
#141#sed '/"section.highlights.includePocket"/,/value/s/value: true/value: false/' -i $ActivityStream
sed '/"telemetry.structuredIngestion.endpoint"/,/value/s/value: .*/value: ""/' -i $ActivityStream
sed '/read_more_endpoint/,+1s/http.*/",/' -i $ActivityStream
sed '/stories_endpoint/s/getpocket.cdn.mozilla.net/127.0.0.1/' -i $ActivityStream
sed '/stories_referrer/s/http.*/",/' -i $ActivityStream
sed '/topics_endpoint/s/getpocket.cdn.mozilla.net/127.0.0.1/' -i $ActivityStream
# feeds.section.topstories.options removed at 144.0.2
sed 's/preffedRegions.includes.geo. .. ..locales .. locales.includes.locale./false/' -i $ActivityStream
#sed 's/Ubuntu, //' -i browser/components/newtab/css/activity-stream*.css
#echo "#header-asrouter-container{display: none!important;}" >> browser/components/newtab/css/activity-stream-linux.css
@ -61,7 +58,7 @@ sed 's/preffedRegions.includes.geo. .. ..locales .. locales.includes.locale./fal
sed '/"showSponsoredTopSites"/,/value/s/value: true/value: false/' -i $ActivityStream
sed -i '/activity-stream.showSponsored/s|true|false|g' $BAP_FirefoxJs
#Disable «Mozilla VPN» - firefox 94
sed '/"browser.privatebrowsing.vpnpromourl"/s/https.*"/"/' -i $BAP_FirefoxJs
# browser.privatebrowsing.vpnpromourl at 144.0.2
grep -rl browser.vpn_promo.enabled | xargs -r sed -i '/browser.vpn_promo.enabled/s|true|false|'
sed '/network.connectivity-service.IPv/s/http.*success.txt?ipv[46]//' -i modules/libpref/init/all.js
@ -88,6 +85,16 @@ sed -i '/browser.uitour.enabled/s|true|false|' $BAP_FirefoxJs
##More info at $DATA/patch_changes/006_remova_mailto_handlers_correctly.patch
# keep contentRelevancy disabled (first appearence is false thus using /bin/sed)
/bin/sed -i '/"toolkit.contentRelevancy.ingestEnabled"/s|,.*)|, false)|' $BAP_FirefoxJs
# 144.0.2 -- disabled settings
for i in browser.urlbar.allowSearchSuggestionsForSimpleOrigins \
browser.urlbar.quicksuggest.online.enabled \
browser.urlbar.suggest.yelpRealtime \
browser.newtabpage.activity-stream.discoverystream.reportAds.enabled \
browser.newtabpage.activity-stream.discoverystream.publisherFavicon.enabled \
browser.ml.chat.page
do
sed -i "/${i}/s|true|false|" $BAP_FirefoxJs
done
# Remove ubufox recommendation and lower ublock to suggestion
# see more at: $DATA/009_remove_ubunfox_suggest_webext-ublock-origin.patch
@ -303,13 +310,15 @@ s|firefox-help|abrowser-help|g;
echo "Running batch replace operation"
find . -type f -not -iregex '.*changelog.*' \
-not -iregex '.*copyright.*' -not -iregex '.*third_party/.*' \
-execdir /bin/sed --follow-symlinks -i "$SEDSCRIPT" '{}' ';'
-not -iregex '.*copyright.*' \
-not -iregex '.*third_party/.*' \
-not -iregex '.*/mozglue/static/rust/.*' \
-execdir /bin/sed --follow-symlinks -i "$SEDSCRIPT" '{}' ';'
echo "Replacing Firefox with Abrowser on ./l10n"
find l10n -type f -not -iregex '.*changelog.*' \
-not -iregex '.*copyright.*' \
-execdir /bin/sed --follow-symlinks -i "s/Firefox/Abrowser/" '{}' ';'
find l10n -type f -not -iregex '.*changelog.*' \
-not -iregex '.*copyright.*' \
-execdir /bin/sed --follow-symlinks -i "s/Firefox/Abrowser/" '{}' ';'
sed 's/Firefox/Abrowser/' -i debian/control.in \
browser/locales/en-US/chrome/overrides/appstrings.properties

29
helpers/make-flit-scm Normal file
View file

@ -0,0 +1,29 @@
#!/bin/sh
#
# Copyright (C) 2026 Luis Guzman <ark@switnet.org>
#
# 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 3 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, see <http://www.gnu.org/licenses/>.
VERSION=1
EXTERNAL='deb-src http://archive.ubuntu.com/ubuntu noble universe'
BACKPORT=true
BUILD_UNTIL=11.0
. ./config
changelog "Backport dependency for newer yt-dlp"
package

View file

@ -19,13 +19,10 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
VERSION=5
VERSION=6
. ./config
# Add trisquel logo patch.
patch_p1 $DATA/001_add_trisquel_gnome-boxes_logo.patch
remove_patch Update-recommended-downloads.patch
#Required dependencies not in upstream.
@ -44,7 +41,6 @@ cat << recommended-os > data/recommended-downloads.xml
-->
<list>
<os_id>http://trisquel.info/trisquel/11</os_id>
<os_id>http://trisquel.info/trisquel/10</os_id>
<os_id>http://guix.gnu.org/guix/1.3</os_id>
<os_id>http://hyperbola.info/hyperbola/03</os_id>
<os_id>http://pureos.net/pureos/8</os_id>
@ -54,6 +50,9 @@ recommended-os
# Remove gnome recommendation.
grep -rl "<url>.*.iso.*</url>" data/osinfo/|xargs -r sed -i "/.iso/d"
# Apply patch_changes
apply_patch_changes
changelog "Replace recommended downloads."
package

29
helpers/make-hatchling Normal file
View file

@ -0,0 +1,29 @@
#!/bin/sh
#
# Copyright (C) 2026 Luis Guzman <ark@switnet.org>
#
# 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 3 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, see <http://www.gnu.org/licenses/>.
VERSION=1
EXTERNAL='deb-src http://deb.debian.org/debian trixie main'
REPOKEY=6ED0E7B82643E131
BACKPORTS=true
BUILD_UNTIL=11.0
. ./config
changelog "Backport dependency for newer yt-dlp"
package

32
helpers/make-inetutils Normal file
View file

@ -0,0 +1,32 @@
#!/bin/sh
#
# Copyright (C) 2026 Luis Guzmán <ark@switnet.org>
#
# 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=0
. ./config
# WARNING: telnetd is not recommended in 2026, especially in production.
# 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
changelog "Apply security patches to mitigate known issues proactively; telnetd is not recommended: avoid in production."
package

View file

@ -0,0 +1,26 @@
#!/bin/sh
#
# Copyright (C) 2025 Luis Guzmán <ark@switnet.org>
#
# 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
. ./config
apply_patch_changes
changelog "Add custom patch to fix TPH#162, non-editable mate clock w/o ntp server."
package

View file

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2024 Luis Guzmán <ark@switnet.org>
# Copyright (C) 2025 Luis Guzmán <ark@switnet.org>
#
# 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,7 +17,7 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
VERSION=2
VERSION=3
EXTERNAL='deb-src http://archive.ubuntu.com/ubuntu noble universe'
. ./config
@ -26,9 +26,11 @@ EXTERNAL='deb-src http://archive.ubuntu.com/ubuntu noble universe'
export FULLVERSION="$(sed 's|build3||' <<< $FULLVERSION)"
# Add cracklib-runtime dependency to debian/control
patch --no-backup-if-mismatch -p1 < $DATA/add-cracklib-runtime-as-dependency.patch
apply_patch_changes
changelog "Added cracklib-runtime dependency.
Added custom implementation to use adduser regex for user creation"
changelog "Imported into Trisquel Aramo | Added cracklib-runtime dependency."
head -n1 debian/changelog | grep -q build && echo "error: update upstream version" && exit
package

View file

@ -0,0 +1,29 @@
#!/bin/sh
#
# Copyright (C) 2026 Luis Guzman <ark@switnet.org>
#
# 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 3 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, see <http://www.gnu.org/licenses/>.
VERSION=1
EXTERNAL='deb-src http://deb.debian.org/debian trixie main'
REPOKEY=6ED0E7B82643E131
BACKPORTS=true
BUILD_UNTIL=11.0
. ./config
changelog "Backport dependency for newer yt-dlp"
package

View file

@ -0,0 +1,29 @@
#!/bin/sh
#
# Copyright (C) 2026 Luis Guzman <ark@switnet.org>
#
# 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 3 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, see <http://www.gnu.org/licenses/>.
VERSION=1
EXTERNAL='deb-src http://archive.ubuntu.com/ubuntu noble universe'
BACKPORT=true
BUILD_UNTIL=11.0
. ./config
changelog "Backport dependency for newer yt-dlp"
package

View file

@ -19,7 +19,7 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
VERSION=5
VERSION=6
. ./config
@ -39,6 +39,10 @@ adjustment-method=randr
; The location provider and adjustment method settings
; are in their own sections.
; When the local-provider is set to 'manual', you can obtain city latitude/longitude
; values from the libgweather-common package:
; libgweather-4-common: /usr/share/libgweather-4/Locations.xml
[manual]
lat=0.0
lon=0.0

30
helpers/make-synaptic Normal file
View file

@ -0,0 +1,30 @@
#!/bin/sh
#
# Copyright (C) 2025 Luis Guzmán <ark@switnet.org>
#
# 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=0
BUILD_UNTIL=11.0
. ./config
apply_patch_changes
changelog "Fix synaptic screenshot url issue."
package

View file

@ -19,21 +19,13 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
VERSION=24
VERSION=26
EXTERNAL='deb-src http://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu $UPSTREAM main'
REPOKEY=9BDB3D89CE49EC21
REPOKEY=AEBDF4819BE21867
. ./config
# Get initial SHA256 hashes.
SHA256_F1=$(sha256sum third_party/cbindgen/vendor/winnow/examples/http/main.rs|awk '{print$1}')
SHA256_F2=$(sha256sum third_party/cbindgen/vendor/winnow/examples/http/bench.rs|awk '{print$1}')
SHA256_F3=$(sha256sum third_party/dump_syms/vendor/httparse/benches/parse.rs|awk '{print$1}')
SHA256_F4=$(sha256sum third_party/dump_syms/vendor/httparse/src/lib.rs|awk '{print$1}')
SHA256_F5=$(sha256sum third_party/dump_syms/vendor/hyper-rustls/src/connector/builder.rs|awk '{print$1}')
SHA256_F6=$(sha256sum third_party/dump_syms/vendor/rustls/src/lib.rs|awk '{print$1}')
SHA256_F7=$(sha256sum third_party/dump_syms/vendor/rustls-webpki/src/subject_name/dns_name.rs|awk '{print$1}')
SHA256_F8=$(sha256sum third_party/dump_syms/vendor/rustls-webpki/src/verify_cert.rs|awk '{print$1}')
SHA256_F9=$(sha256sum comm/third_party/rust/glean/src/configuration.rs|awk '{print$1}')
# Copy in our local Trisquel branding files.
@ -143,11 +135,14 @@ pref("datareporting.healthreport.infoURL", "https://trisquel.info/legal");
EOF
#cp toolkit/components/telemetry/healthreport-prefs.js mobile/android/chrome/content/healthreport-prefs.js
# Browser legal page
sed 's%https://www.mozilla.org/legal/privacy/%https://trisquel.info/legal%' -i ./browser/app/profile/firefox.js ./toolkit/content/aboutRights.xhtml
sed -i 's|https://www.mozilla.org/thunderbird/legal/privacy/|https://trisquel.info/legal|' comm/mail/app/profile/all-thunderbird.js
sed -i 's|https://www.mozilla.org/en-US/privacy/thunderbird/|https://trisquel.info/legal|' comm/mail/app/profile/all-thunderbird.js
sed -i 's|https://www.mozilla.org/privacy/thunderbird/|https://trisquel.info/legal|' comm/mail/components/accountcreation/content/accountSetup.xhtml
grep -rl https://www.mozilla.org/privacy/thunderbird/ | xargs -r sed -i 's|https://www.mozilla.org/privacy/thunderbird/|https://trisquel.info/legal|g'
grep -rl https://www.mozilla.org/legal/privacy/ | \
xargs -r sed -i 's|https://www.mozilla.org/legal/privacy/.*"|https://trisquel.info/legal"|'
grep -rl https://mozilla.org/privacy/firefox/ | xargs -r \
sed -i 's|https://mozilla.org/privacy/firefox/.*"|https://trisquel.info/en/privacy"|'
# Disable telemetry pings
grep -rl TELEMETRY_BASE_URL | xargs -r sed -i 's|"https://incoming.telemetry.mozilla.org/submit"|""|'
@ -161,7 +156,7 @@ grep -rl toolkit.telemetry.newProfilePing.enabled | xargs -r sed -i '/toolkit.te
grep -rl toolkit.telemetry.firstShutdownPing.enabled | xargs -r sed -i '/toolkit.telemetry.firstShutdownPing.enabled/s|true|false|'
grep -rl toolkit.telemetry.bhrPing.enabled | xargs -r sed -i '/toolkit.telemetry.bhrPing.enabled/s|true|false|'
grep -rl browser.ping-centre.telemetry | xargs -r sed -i '/browser.ping-centre.telemetry/s|true|false|'
grep -rl security.certerrors.recordEventTelemetry | xargs -r sed -i '/security.certerrors.recordEventTelemetry/s|true|false|'
#grep -rl security.certerrors.recordEventTelemetry | xargs -r sed -i '/security.certerrors.recordEventTelemetry/s|true|false|'
grep -rl services.sync.telemetry.maxPayloadCount modules/ | xargs -r sed -i '/services.sync.telemetry.maxPayloadCount/s|500|-1|'
grep -rl services.sync.telemetry.submissionInterval modules/ | xargs -r sed -i '/services.sync.telemetry.submissionInterval/s|43200|-1|'
grep -rl '"datareporting.healthreport.uploadEnabled"'| xargs -r sed -i '/"datareporting.healthreport.uploadEnabled"/s|[Tt]rue|false|'
@ -221,8 +216,10 @@ echo "Running batch replace operation"
find . -type f \
-not -iregex '.*changelog.*' \
-not -iregex '.*copyright.*' \
-not -iregex '.*third_party/rust.*' \
-not -iregex '.*comm/rust.*' \
-not -iregex '.*third_party/rust.*' \
-not -iregex '.*third_party/dump_syms.*' \
-not -iregex '.*third_party/cbindgen.*' \
-execdir /bin/sed --follow-symlinks -i "$SEDSCRIPT" '{}' ';'
# Fix wrong changes, restore changes to reduce diff with previous sed script.
@ -231,20 +228,33 @@ grep -rl "AbrowserGraphics" | xargs -r sed -i "/github/s|AbrowserGraphics|Firefo
grep -rl IcedoveProfileImporter. | xargs -r sed -i 's|IcedoveProfileImporter|ThunderbirdProfileImporter|g'
grep -rl IcedoveProfileMigrator | xargs -r sed -i 's|IcedoveProfileMigrator|ThunderbirdProfileMigrator|g'
grep -rl AbrowserViewTestUtils | xargs -r sed -i 's|AbrowserViewTestUtils|FirefoxViewTestUtils|g'
grep -rl Abrowserview | xargs -r sed -i 's|Abrowserview|Firefoxview|g'
grep -rl AbrowserRelay | xargs -r sed -i 's|AbrowserRelay|FirefoxRelay|g'
grep -rl test_AbrowserLabs.js | xargs -r sed -i 's|AbrowserLabs|FirefoxLabs|g'
grep -rl AbrowserLabs.sys.mjs | xargs -r sed -i 's|AbrowserLabs|FirefoxLabs|g'
sed -i '/TB_/s|mozilla-icedove|mozilla-thunderbird|' debian/rules
# Or missing ones.
sed -i '/brand.ftl/s|thunderbird|icedove|' comm/rust/sys_tray/src/locales.rs
#Fix 1 character bigger than allowed yml line (81 > 80)
sed -i "s|Abrowser is not running. It|Abrowser isn't running. It|" toolkit/mozapps/update/pings.yaml
sed -i '/Certificate data/s|Trisquel|Mozilla|' third_party/dump_syms/vendor/webpki-roots/LICENSE
#140#sed -i '/Certificate data/s|Trisquel|Mozilla|' third_party/dump_syms/vendor/webpki-roots/LICENSE
# Set main links - check comm/mailnews/base/content/msgAccountCentral.xhtml for main class & id links.
grep -rl 'https://www.icedove.net/participate/' comm/ | xargs -r sed -i 's|https://www.icedove.net/participate/|https://trisquel.info/wiki/|'
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://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 sed -i 's|https://support.mozilla.org/products/icedove/|https://trisquel.info/wiki/icedove/|'
grep -rl 'https://developer.icedove.net/' comm/ | xargs -r sed -i 's|https://developer.icedove.net/|https://gitlab.trisquel.org/trisquel/package-helpers|'
grep -rl 'https://www.icedove.net/participate/' comm/ | xargs -r \
sed -i 's|https://www.icedove.net/participate/|https://trisquel.info/wiki/|'
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://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 \
sed -i 's|https://support.mozilla.org/products/icedove/|https://trisquel.info/wiki/icedove/|'
grep -rl 'https://developer.icedove.net/' comm/ | xargs -r \
sed -i 's|https://developer.icedove.net/|https://gitlab.trisquel.org/trisquel/package-helpers|'
replace Daily Trisquel comm/mail/branding/
# Remove Thunderbird branding
@ -258,41 +268,19 @@ sed 's/Provides: mail-reader,/Provides: mail-reader, thunderbird,/' -i debian/co
sed "s/Provides.*/Provides: icedove-locale-@LANGCODE@/" -i debian/control.langpacks
# Set and replace sha256 checksums to match our changes.
SHA256_F1_MOD=$(sha256sum third_party/cbindgen/vendor/winnow/examples/http/main.rs|awk '{print$1}')
SHA256_F2_MOD=$(sha256sum third_party/cbindgen/vendor/winnow/examples/http/bench.rs|awk '{print$1}')
SHA256_F3_MOD=$(sha256sum third_party/dump_syms/vendor/httparse/benches/parse.rs|awk '{print$1}')
SHA256_F4_MOD=$(sha256sum third_party/dump_syms/vendor/httparse/src/lib.rs|awk '{print$1}')
SHA256_F5_MOD=$(sha256sum third_party/dump_syms/vendor/hyper-rustls/src/connector/builder.rs|awk '{print$1}')
SHA256_F6_MOD=$(sha256sum third_party/dump_syms/vendor/rustls/src/lib.rs|awk '{print$1}')
SHA256_F7_MOD=$(sha256sum third_party/dump_syms/vendor/rustls-webpki/src/subject_name/dns_name.rs|awk '{print$1}')
SHA256_F8_MOD=$(sha256sum third_party/dump_syms/vendor/rustls-webpki/src/verify_cert.rs|awk '{print$1}')
SHA256_F9_MOD=$(sha256sum comm/third_party/rust/glean/src/configuration.rs|awk '{print$1}')
sed_csum $SHA256_F1 $SHA256_F1_MOD
sed_csum $SHA256_F2 $SHA256_F2_MOD
sed_csum $SHA256_F3 $SHA256_F3_MOD
sed_csum $SHA256_F4 $SHA256_F4_MOD
sed_csum $SHA256_F5 $SHA256_F5_MOD
sed_csum $SHA256_F6 $SHA256_F6_MOD
sed_csum $SHA256_F7 $SHA256_F7_MOD
sed_csum $SHA256_F8 $SHA256_F8_MOD
sed_csum $SHA256_F9 $SHA256_F9_MOD
#EO Manual fixing.
# about: page mods, like rights.
## Hide extra links in about box
find -wholename '*/brand.dtd' |xargs /bin/sed 's/trademarkInfo.part1.*/trademarkInfo.part1 "">/' -i
find -wholename '*/brand.dtd' | xargs -r \
perl -0777 -i -pe 's/<!ENTITY\s+trademarkInfo\.part1\s*"(?:[^"]|\n)*">/<!ENTITY trademarkInfo.part1 " ">/g'
for STRING in rights-intro-point-2 rights-intro-point-3 rights-intro-point-4 rights-intro-point-5 rights-intro-point-6 rights-webservices rights-safebrowsing
do
find -name aboutRights.ftl | xargs -r sed -i "s/^$STRING.*/$STRING = /"
done
##Remove invalid policy for trisquel, make sure to check for changes on
##each release as they silently update and change.
find -name aboutRights.ftl | xargs -r sed -i '/rights-intro-point-3/,/li>/d'
find -name aboutRights.xhtml |xargs -r sed -i "/rights-intro-point-5/,/li>/d"
find -name aboutRights.xhtml |xargs -r sed -i "/rights-intro-point-6/d"
find -name aboutRights-unbranded.xhtml |xargs -r sed -i "/rights-intro-point-5/,/li>/d"
## see more at DATA/thunderbird/patch_changes/008-aboutRights_removal_fix.patch
sed -i 's/<a\ href\=\"https\:\/\/www.icedove.net\/\">Icedove\ Project<\/a>/<a\ href\=\"https\:\/\/www.trisquel.info\/\"\>Trisquel\ Project<\/a>/g' \
comm/mail/base/content/overrides/app-license.html
@ -303,7 +291,10 @@ find devtools/client/themes/images/ -name aboutdebugging-firefox-*.svg | xargs -
find devtools/client/themes/images/ -name aboutdebugging-fenix*.svg | xargs -n1 cp $DATA/debug_brand/debuglogo.svg
find devtools/client/themes/images/ -name aboutdebugging-firefox-logo.svg | xargs -n1 cp $DATA/debug_brand/debuglogo_gray.svg
cp $DATA/debug_brand/about-logo.svg comm/mail/branding/icedove/TB-symbolic.svg
for i in icedove nightly
do
cp $DATA/debug_brand/about-logo.svg comm/mail/branding/$i/TB-symbolic.svg
done
cp $DATA/debug_brand/about-logo.svg comm/mail/themes/shared/mail/icons/aboutdebugging-logo.svg
cp $DATA/debug_brand/icon.png comm/mail/themes/icon.png
cp $DATA/debug_brand/icon64.png comm/mail/themes/icon64.png
@ -327,7 +318,6 @@ done
echo "Customizing search engines..."
# Reprocess search preconfiguration dump
python3 $DATA/process-json-files.py . browser/components/extensions/schemas/
python3 $DATA/process-json-files-v2.py . $DATA/search-custom/
#EO Debbuging tools
@ -356,6 +346,7 @@ grep -rl 'qr-export-no-accounts =' | xargs -r sed -i '/^qr-export-no-accounts =/
s| supported by for | supported for |g
}'
# As non-official we always use nightly, pending cleaning branding.
cat << EOF > comm/mail/branding/nightly/locales/en-US/brand.dtd
<!-- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
@ -368,7 +359,7 @@ cat << EOF > comm/mail/branding/nightly/locales/en-US/brand.dtd
This brand name can be used in messages where the product name needs to
remain unchanged across different versions (Trisquel, Beta, etc.). -->
<!ENTITY brandProductName "Icedove">
<!ENTITY vendorShortName "mozilla.org">
<!ENTITY vendorShortName "Mozilla">
<!ENTITY trademarkInfo.part1 " ">
EOF

View file

@ -0,0 +1,29 @@
#!/bin/sh
#
# Copyright (C) 2026 Luis Guzman <ark@switnet.org>
#
# 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 3 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, see <http://www.gnu.org/licenses/>.
VERSION=1
EXTERNAL='deb-src http://archive.ubuntu.com/ubuntu noble universe'
BACKPORT=true
BUILD_UNTIL=11.0
. ./config
changelog "Backport dependency for newer yt-dlp"
package

View file

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2025 Luis Guzman <ark@switnet.net>
# Copyright (C) 2026 Luis Guzman <ark@switnet.org>
#
# 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