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

This commit is contained in:
Ark74 2026-05-14 19:38:23 -06:00
commit ceeebe5f5c
43 changed files with 1061 additions and 344 deletions

View file

@ -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 cc42846d..52d35d49 100644
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -1368,9 +1368,9 @@ 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.
@ -16,9 +16,12 @@ index c5f7cf3a..f0124235 100644
// Whether we show the "More from Mozilla" section.
-pref("browser.preferences.moreFromMozilla", true);
+pref("browser.preferences.moreFromMozilla", false);
// Used by settings to track whether the user customized advanced
// performance settings. Not used directly elsewhere.
// Whether we show the "AI Controls" pane.
-pref("browser.preferences.aiControls", true);
+pref("browser.preferences.aiControls", false);
// 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");
@ -456,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 b2d65603..b44a1525 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
@ -736,10 +741,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 +782,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",

View file

@ -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);
@@ -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,13 +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);
pref("browser.newtabpage.activity-stream.unifiedAds.ohttp.enabled", false);
-pref("browser.newtabpage.activity-stream.unifiedAds.ohttp.enabled", true);
+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.weather.display", "detailed");
pref("browser.newtabpage.activity-stream.images.smart", true);

View file

@ -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",
+ },
],
};

View file

@ -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))))

View file

@ -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() {

View file

@ -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`
);

View file

@ -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"
}
}
}

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 36 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 42 KiB

View file

@ -0,0 +1,6 @@
<!-- Generator: Adobe Illustrator 9.0, SVG Export Plug-In -->
<svg id="svg2" width="28" height="28" version="1.1" viewBox="0 0 21 21" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<g id="g10" transform="matrix(.020161 0 0 .020161 1.5 6.4851)" stroke="#000">
<path id="path12" d="m86.4 193.62h-86.4v-64.8h86.4v-50.4h-14.4v-36h14.4v-14.4h36v14.4h216c59.668-31.267 129.7-37.338 190.24-38.083 66.813-0.858 70.275-0.107 97.53 0.088 115.37 0.859 123.32 1.368 139.6-1.201 6.564-1.081 13.763 3.26 14.332 6.495 1.323 7.172-13.626 15.478-18.242 16.941-14.351 4.555-40.043 6.616-109.93 10.648l-1.664 0.034c-110.99 10.48-173.25 36.647-189.34 44.135-63.641 29.703-70.511 43.531-62.237 52.355 8.768 9.358 58.312-11.226 82.607-18.164 48.282-13.774 76.735-0.583 94.708 13.152h43.2v-7.2h28.8v7.2h244.8v64.8h-244.8v50.401h208.8v36h-208.8v115.2h-28.8v-115.2h-14.4v-36h14.4v-50.401h-14.4c-0.249 25.469-7.709 48.819-14.848 58.438-66.632 89.505-368.87 101.02-462.49 102.55-23.625 0.405-40.536-3.558-41.059-9.787m167.37-217.57c4.039-16.988 15.325-34.298 28.846-48.704l-158.2 0.631-0.574 49.838 129.12 0.524 0.61 1.033m498.38-118.76c-1.645-0.819-85.667 3.864-90.391 3.435-4.723-0.43-55.339 0.295-83.09-0.43-32.85-0.859-67.324 0.034-99.409 3.006-32.42 3.006-65.914 13.097-93.61 24.691-26.348 11.031-52.604 24.905-73.215 41.223-10.555 8.354-18.579 17.633-25.764 28.986-8.159 12.881-12.092 27.596-6.657 39.935 5.859 13.284 18.962 19.168 35.212 21.685 14.754 2.294 32.85 1.073 44.444 3.435 6.884 1.402 18.183 3.254 18.894 9.877 0.644 6.011-10.206 16.063-15.244 18.463-9.447 4.51-22.115 0.645-34.353-1.932-8.435-1.771-20.953-5.878-28.771-9.448-5.279-2.414-10.927-4.32-12.001-4.32-0.428 0-165.81-0.428-165.6 0 0 2.791-0.213 137.56 0 144 0.235 7.112 24.778 5.005 39.976 3.529 29.361-2.873 59.902-6.442 89.532-10.735 16.942-2.456 34.897-5.637 51.958-9.019 27.053-5.366 59.401-12.882 72.852-17.177 33.642-10.734 68.424-20.181 100.2-33.922 14.286-6.173 31.347-13.956 42.942-21.901 12.358-8.468 25.549-20.182 31.132-32.205 6.199-13.352 8.097-29.428 1.717-44.015-6.011-13.741-22.544-25.978-36.929-28.341-8.187-1.342-14.6-2.147-22.544-1.503-9.138 0.738-24.691 4.079-34.997 5.368-16.942 2.12-36.849 5.133-53.462 2.577-11.164-1.719-28.77-16.103-22.544-32.85 4.563-12.279 22.242-24.88 32.85-31.776 25.765-16.748 72.114-31.368 111.86-40.795 33.493-7.943 80.513-14.385 120.23-14.814 3.83-0.04 39.713-2.449 43.37-2.577 60.332-2.147 62.264-12.023 61.406-12.452" fill="context-fill" stroke="none"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -0,0 +1,3 @@
<svg id="svg1" width="26" height="26" version="1.1" viewBox="0 0 96.89 78.87" xmlns="http://www.w3.org/2000/svg">
<path id="path1" d="m56.648 45.061-11.757 13.5-6.4785-2.6344-15.12 19.274 51.009 0.026555zm0.297-5.2542-13.104 15.021-6.3915-2.6585-18.1 23.043h2.0017l16.567-21.2 6.3553 2.632 12.45-14.278 19.583 32.909 1.9269-0.03622zm0.25837-4.822-14.106 16.108-6.4519-2.842-20.993 26.976h1.8303l19.631-25.122 6.3915 2.83 13.476-15.391c7.4672 12.697 15.516 24.912 22.835 37.695h1.8303zm0.38393-32.849-4.9645 38.079 4.5806-5.2301 0.64471 1.0624 8.6903-31.303-0.22215-0.08451a46.942 46.942 0 0 0-8.0987-2.4001 49.254 49.254 0 0 0-0.53122-0.11107zm-18.532 0.050708a39.809 39.809 0 0 0-0.80407 0.17144l-0.27044 0.050708a48.809 48.809 0 0 0-0.53122 0.12315l-0.26078 0.06278a48.648 48.648 0 0 0-7.0218 2.2239l-0.14971 0.07486 13.718 45.47 2.2335-2.5499-6.901-45.627zm43.408 12.882-19.078 30.096 2.2963 3.7813 23.159-26.213a43.629 43.629 0 0 0-3.5833-4.723 48.03 48.03 0 0 0-2.7937-2.941zm-68.554 0.54329a43.184 43.184 0 0 0-3.7451 4.228 50.812 50.812 0 0 0-2.2263 3.0666v0.02414l26.165 28.587 2.12-2.7237zm-13.017 24.453a47.263 47.263 0 0 0-0.891 9.3229l27.669 10.397 2.3084-2.9676zm95.281 0.82822-26.266 15.014 2.1539 3.5447 24.815-9.0501v-0.12556a28.014 28.014 0 0 0 0.0145-0.81615v-1.2604l-0.0145-0.25837v-0.27285l-0.0121-0.27285-0.0121-0.27044-0.0121-0.27286-0.0121-0.27044-0.024-0.26078-0.0121-0.27285-0.0266-0.27044-0.0121-0.27285-0.0241-0.25837-0.0242-0.27285-0.0241-0.27285-0.0266-0.27044-0.0241-0.26078a39.141 39.141 0 0 0-0.45637-3.2139v-0.05071zm-74.866 27.068-17.4 0.0821a49.18 49.18 0 0 0 4.8969 8.6903h0.01212l6.8479-1.5067h-0.01211zm56.135 0.35496 4.1701 6.8672 6.5099 1.4633 0.06278-0.07243a44.531 44.531 0 0 0 3.127-5.0707 45.99 45.99 0 0 0 1.4222-2.929z" fill="context-fill" stroke-width="1.2363"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 59 KiB

View file

@ -0,0 +1,163 @@
# 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 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()

View file

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

@ -1,78 +0,0 @@
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,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] <!nocheck>,
poppler-data [amd64 arm64 armhf] <!nocheck>,
pstoedit [amd64 arm64 armhf] <!nocheck>,
python3-lxml [!ppc64el !riscv64 !s390x] <!nocheck !nopython>,
- python3-pip [!ppc64el !riscv64 !s390x] <!nocheck !nopython>,
python3-setuptools [!ppc64el !riscv64 !s390x] <!nocheck !nopython>,
- python3-venv [!ppc64el !riscv64 !s390x] <!nocheck !nopython>,
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

View file

@ -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
@ -1503,16 +1504,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;
}

View file

@ -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? <a data-l10n-name="app-link">Stáhněte si ji z Google Play</a>
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. <a data-l10n-name="account-support-link">Podpora</a>
+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. <a data-l10n-name="account-support-link">Podpora</a>
+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. <a data-l10n-name="account-support-link">Podpora</a>
qr-export-accounts-legend = E-mailové účty
qr-export-select-all-accounts = Vybrat vše
qr-export-security-legend = Zabezpečení

View file

@ -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:

View file

@ -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

View file

@ -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."

View file

@ -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

View file

@ -1,30 +0,0 @@
#!/bin/sh
#
# Copyright (C) 2024 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
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

View file

@ -2,7 +2,7 @@
#
# Copyright (C) 2008-2023 Ruben Rodriguez <ruben@trisquel.info>
# Copyright (C) 2015 Santiago Rodriguez <santi@trisquel.info>
# Copyright (C) 2025 Luis Guzman <ark@switnet.org>
# 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
@ -19,12 +19,13 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
VERSION=129
VERSION=132
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
@ -274,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.
@ -287,6 +308,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,8 +344,11 @@ 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/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

View file

@ -1,6 +1,7 @@
#!/bin/sh
#
# Copyright (C) 2020 Rubén Rodríguez <ruben@trisquel.info>
# Copyright (C) 2026 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.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,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

View file

@ -17,6 +17,7 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
BUILD_UNTIL=11.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

View file

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2024 Luis Guzmán <ark@switnet.org>
# 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
@ -12,10 +12,6 @@
# 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'
@ -24,7 +20,11 @@ BACKPORT=true
. ./config
#sed -i "s|Utility|Network|" mirall.desktop.in
changelog "Added as a dependency for nextcloud-desktop backport"
#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

View file

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2023 Luis Guzmán <ark@switnet.org>
# 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
@ -17,18 +17,19 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
VERSION=4
VERSION=6
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
apply_patch_changes
# Increase CPU usage for amd64 build.
sed -i "/NUM_CPUS=/s|3|7|" debian/rules
changelog "Backport libreoffice fresh into Trisquel"
changelog "Disabled python-pip/venv tests for Trisquel
Backport libreoffice fresh into Trisquel"
package

View file

@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (C) 2025 Luis Guzman <ark@switnet.org>
# Copyright (C) 2026 Luis Guzman <ark@switnet.org>
# Copyright (C) 2008-2023 Ruben Rodriguez <ruben@trisquel.info>
# Copyright (C) 2019 David Trudgian <dave@trudgian.net>
#
@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,32 +0,0 @@
#!/bin/sh
#
# Copyright (C) 2024 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=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

View file

@ -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=13
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

View file

@ -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

View file

@ -1,6 +1,6 @@
#!/bin/bash
#
# Copyright (C) 2025 Luis Guzmán <ark@switnet.org>
# Copyright (C) 2026 Luis Guzmán <ark@switnet.org>
# Copyright (C) 2020 Ruben Rodriguez <ruben@trisquel.info>
# Copyright (C) 2019 David Trudgian <dave@trudgian.net>
#
@ -19,12 +19,14 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
VERSION=26
EXTERNAL='deb-src http://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu $UPSTREAM main'
VERSION=27
#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
MAIN_REBRANDING_ENABLED=1
# Get initial SHA256 hashes.
SHA256_F9=$(sha256sum comm/third_party/rust/glean/src/configuration.rs|awk '{print$1}')
@ -188,6 +190,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/
@ -247,8 +250,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 \
@ -362,6 +365,10 @@ cat << EOF > comm/mail/branding/nightly/locales/en-US/brand.dtd
<!ENTITY vendorShortName "Mozilla">
<!ENTITY trademarkInfo.part1 " ">
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

View file

@ -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."