Package: gnuzilla;
Reported by: Maxim Cournoyer <maxim <at> guixotic.coop>
Date: Sun, 31 Aug 2025 14:13:02 UTC
Severity: normal
Tags: patch
Message #17 received at 79355 <at> debbugs.gnu.org (full text, mbox):
From: Maxim Cournoyer <maxim <at> guixotic.coop> To: Mark H Weaver <mhw <at> netris.org> Cc: 79355 <at> debbugs.gnu.org Subject: Re: bug#79355: [PATCH v2] Update to 140.2.0-1. Date: Wed, 03 Sep 2025 23:14:42 +0900
Hey Mark! Thanks for your reactivity! Mark H Weaver <mhw <at> netris.org> writes: [...] >> * makeicecat: Update FFMINOR and SOURCEBALL_CHECKSUM. >> Update patching for moved files on no longer existing patterns. >> Do not set MOZ_APP_VENDOR/MOZ_APP_UA_NAME/MOZ_APP_PROFILE, as confvars, which now >> fails the build. Delete no obsolete variables, or those already set to >> the correct value in browser/moz.configure. >> Do not patch (and break) translation data. >> * data/patches/hide-firefox-view-button.patch: Update patch. >> * data/patches/hide-submit-feedback-menu-item.patch: Likewise. >> * data/patches/icecat-about-dialog.patch: Likewise. >> * data/patches/moz-configure-changes.patch: Likewise. Set >> MOZILLA_OFFICIAL to False by default, which disables telemetry. > > Interesting observation about telemetry! Can you please cite a > reference for this claim, or else tell us how you came to know it? I spent quite some time grepping the firefox source, and I randomly found that odd relationship. In Telemetry.cpp, there's: --8<---------------cut here---------------start------------->8--- // This function was copied from the implementation of // nsITelemetry::isOfficialTelemetry, currently found in the file // toolkit/components/telemetry/core/Telemetry.cpp. static bool IsOfficialTelemetry() { #if defined(MOZILLA_OFFICIAL) && defined(MOZ_TELEMETRY_REPORTING) && \ !defined(DEBUG) return true; #else return false; #endif } [...] // Do not send the ping if we are not an official telemetry-enabled build; // don't even generate the ping in fact, because if we write the file out // then some other build might find it later and decide to submit it. if (!IsOfficialTelemetry() || IsTelemetryDisabled()) { return MaybeCache(cache, notificationType, notificationShown, notificationAction, prevNotificationAction); } --8<---------------cut here---------------end--------------->8--- [...] >> +--- a/browser/base/content/aboutDialog.css 2025-08-26 21:26:43.618669160 +0900 >> ++++ b/browser/base/content/aboutDialog.css 2025-08-26 21:31:54.207067616 +0900 >> +@@ -32,10 +32,9 @@ >> #rightBox { >> background-image: url("chrome://branding/content/about-wordmark.svg"); >> background-repeat: no-repeat; >> @@ -19,6 +19,9 @@ >> padding-top: 38px; >> - margin-top: 20px; >> + margin-top: 60px; >> - } >> - >> + /* We don't want this box to contribute arbitrarily to the intrinsic size of >> + * the dialog, so set the width to a reasonable size, but let it flex to take >> + * all available space. */ >> +--- a/browser/base/content/aboutDialog.css >> ++++ b/browser/base/content/aboutDialog.css >> #rightBox:-moz-locale-dir(rtl) { > > The three lines above, which are the last three lines of > 'data/patches/icecat-about-dialog.patch' after your patch is applied, > are vestigial and should be dropped. These lines are part of the context (from recent commit 0da0a471026ca), so I'm not sure what is the suggestion here. [...] > It's a minor point, but I'd prefer to name this patch > "fix-install.patch" without the "icecat-" prefix. Done. >> --- a/browser/moz.configure >> +++ b/browser/moz.configure >> -@@ -5,11 +5,11 @@ >> +@@ -5,16 +5,17 @@ >> # file, You can obtain one at http://mozilla.org/MPL/2.0/. >> >> imply_option("MOZ_PLACES", True) >> -imply_option("MOZ_SERVICES_HEALTHREPORT", True) >> -+imply_option("MOZ_SERVICES_HEALTHREPORT", False) >> - imply_option("MOZ_SERVICES_SYNC", True) >> +-imply_option("MOZ_SERVICES_SYNC", True) >> -imply_option("MOZ_DEDICATED_PROFILES", True) >> -imply_option("MOZ_BLOCK_PROFILE_DOWNGRADE", True) >> -imply_option("MOZ_NORMANDY", True) >> ++imply_option("MOZ_SERVICES_HEALTHREPORT", False) >> ++imply_option("MOZ_SERVICES_SYNC", False) >> +imply_option("MOZ_DEDICATED_PROFILES", False) >> +imply_option("MOZ_BLOCK_PROFILE_DOWNGRADE", False) >> +imply_option("MOZ_NORMANDY", False) >> + imply_option("MOZ_PROFILE_MIGRATOR", True) >> + >> + >> +-imply_option("MOZ_APP_VENDOR", "Mozilla") >> ++imply_option("MOZ_APP_VENDOR", "GNU") >> + imply_option("MOZ_APP_ID", "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}") >> ++imply_option("MOZ_APP_PROFILE", "mozilla/icecat") >> + # Include the DevTools client, not just the server (which is the default) >> + imply_option("MOZ_DEVTOOLS", "all") >> + imply_option("BROWSER_CHROME_URL", "chrome://browser/content/browser.xhtml") > > I suggest adding the line: > > imply_option("MOZ_APP_UA_NAME", "Firefox") > > to 'browser/moz.configure' above, to compensate for the fact that the > MOZ_APP_UA_NAME option had to be removed from 'browser/confvars.sh' (via > the code in 'makeicecat'). This doesn't seem to be necessary; testing 140.2 my useragent is currently: --8<---------------cut here---------------start------------->8--- Mozilla/5.0 (X11; Linux x86_64; rv:140.0) Gecko/20100101 Firefox/140.0 --8<---------------cut here---------------end--------------->8--- According to code in nsHttpHandler.cpp, a fallback is used when it's not set: --8<---------------cut here---------------start------------->8--- mAppName.AssignLiteral(MOZ_APP_UA_NAME); if (mAppName.Length() == 0 && appInfo) { // Try to get the UA name from appInfo, falling back to the name appInfo->GetUAName(mAppName); if (mAppName.Length() == 0) { appInfo->GetName(mAppName); } appInfo->GetVersion(mAppVersion); mAppName.StripChars(R"( ()<>@,;:\"/[]?={})"); } else { mAppVersion.AssignLiteral(MOZ_APP_UA_VERSION); } --8<---------------cut here---------------end--------------->8--- > >> diff --git a/makeicecat b/makeicecat >> index fc0bb76..85ca5c6 100755 >> --- a/makeicecat >> +++ b/makeicecat >> @@ -21,12 +21,13 @@ >> >> >> # metadata >> -readonly FFMAJOR=128 >> -readonly FFMINOR=14 >> +readonly FFMAJOR=140 >> +readonly FFMINOR=2 >> readonly FFSUB=0 >> readonly FFBUILD=1 >> readonly GNUVERSION=1 >> -readonly SOURCEBALL_CHECKSUM='93b9ef6229f41cb22ff109b95bbf61a78395a0fe4b870192eeca22947cb09a53' >> +# SHA-256 > > I'd prefer to drop the "# SHA-256" comment. It's trivial enough to find > this out by grepping for SOURCEBALL_CHECKSUM in the script. The purpose of the comment was to tell the reader *which* checksum type is used here. Maybe be obvious for some, but I had to check. >> +readonly SOURCEBALL_CHECKSUM='956dce675c3b706d563caf07ed3ca9af632ab830be710dfd4351da78a0a2ef55' >> readonly SOURCEBALL_SIGNINGKEY='14F26682D0916CDD81E37B6D61B7B526D98F0353' >> readonly FFVERSION=${FFMAJOR}.${FFMINOR}.${FFSUB} >> readonly SOURCEBALL=firefox-${FFVERSION}esr.source.tar.xz >> @@ -41,7 +42,7 @@ readonly LIST_URL=lists.gnu.org/mailman/listinfo/bug-gnuzilla >> >> # l10n >> readonly L10N_URL=https://github.com/mozilla-l10n/firefox-l10n >> -readonly L10N_REV=fcd0300e8478d1ec4d1c097a073ddb8e1e0351e3 >> +readonly L10N_REV=4846304555affc92db4c693149c0f1c59afc7828 > > I prefer to set L10N_REV to the commit specified in > 'browser/locales/l10n-changesets.json', which in the case of 140.2 is > a0c1ffda4ed19c0399e4175610361179e09829de. Good catch! Adjusted. >> @@ -541,7 +541,6 @@ configure_mobile() >> >> cat << EOF >> mobile/android/confvars.sh >> # IceCat settings >> -MOZ_APP_VENDOR=GNU >> MOZ_APP_VERSION=${FFVERSION} >> MOZ_PAY=0 >> MOZ_SERVICES_HEALTHREPORT=0 > > Did you intend to make this change to the Android configuration? Note > that our Android support has fallen into disrepair, and is not currently > functional. Yeah, it's not used right now, but if someone tried, it fail, so it's better to remove it. >> @@ -606,15 +605,6 @@ apply_branding() >> >> # Custom legal about pages >> find l10n -wholename '*/brand.ftl' | xargs /bin/sed >> 's/^trademarkInfo = .*/trademarkInfo = The IceCat logo is Copyright >> 2008-2015 Free Software Foundation, released under the terms of the >> GNU Lesser General Public License, version 3 or any later version./' >> -i >> - local string >> - 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 sed -i "s/^${string}.*/${string} = /" >> - done >> - for string in helpus community-2 community-exp >> - do >> - find -wholename '*/browser/aboutDialog.ftl' | xargs sed -i "s/^${string}.*/${string} = /" >> - done >> cp "${DATADIR}"/aboutRights.xhtml toolkit/content/aboutRights.xhtml >> cp "${DATADIR}"/aboutRights.xhtml toolkit/content/aboutRights-unbranded.xhtml >> sed -i 's|<a href="http://www\.mozilla\.org/">Mozilla >> Project</a>|<a href="http://www.gnu.org/">GNU Project</a>|g' >> browser/base/content/overrides/app-license.html > > Are you sure that the code above is no longer appropriate? I see files > named 'aboutRights.ftl' in l10n that still contain bindings for > 'rights-intro-point-*', and therefore at least the first loop above > still seems to be relevant. I think the above code above was only clearing the last 3 keys (helpus, comMnity-2, community-exp) with empty values, which is no longer valid and broke the fluent parser (localization tool) These values left unpatched are thus: --8<---------------cut here---------------start------------->8--- community-exp = <label data-l10n-name="community-exp-mozillaLink">{ -vendor-short-name }</label> is a <label data-l10n-name="community-exp-creditsLink">global community</label> working together to keep the Web open, public and accessible to all. community-2 = { -brand-short-name } is designed by <label data-l10n-name="community-mozillaLink">{ -vendor-short-name }</label>, a <label data-l10n-name="community-creditsLink">global community</label> working together to keep the Web open, public and accessible to all. helpus = Want to help? <label data-l10n-name="helpus-donateLink">Make a donation</label> or <label data-l10n-name="helpus-getInvolvedLink">get involved!</label> --8<---------------cut here---------------end--------------->8--- Which doesn't look too critical to my eye. >> @@ -713,27 +703,18 @@ s/OpenSource/Free Software/g; >> # Ditto for browser/modules/moz.build >> sort_inner_list_in_file "EXTRA_JS_MODULES += [" "]" browser/modules/moz.build >> >> + # Adjust the capitalization of IceCat to match the expected symbol >> + # names in build-time generated source files like TelemetryEventEnums.h. >> + sed 's/IceCatview/Icecatview/g' -i browser/components/icecatview/metrics.yaml >> + > > Hmm. Do you know where the "Icecatview" is originating from? Is there > some code that changes all but the first letter of that identifier to > lowercase? I think it comes from the scripts under toolkit/components/telemetry/build_scripts/gen_*.py, but I can't find where the capital casing code is anymore. > >> # Copy js settings >> cat "${DATADIR}"/settings.js >> browser/app/profile/icecat.js >> >> cat << EOF >> browser/confvars.sh >> # IceCat settings >> MOZ_APP_BASENAME=IceCat >> -MOZ_APP_UA_NAME=Firefox >> -MOZ_APP_VENDOR=GNU >> MOZ_APP_VERSION=${FFVERSION} >> -MOZ_APP_PROFILE=mozilla/icecat >> -MOZ_PAY=0 >> -MOZ_SERVICES_HEALTHREPORT=0 >> -MOZ_SERVICES_HEALTHREPORTER=0 >> -MOZ_SERVICES_FXACCOUNTS=0 >> -MOZ_SERVICES_METRICS=0 >> MOZ_DATA_REPORTING=0 >> -MOZ_NORMANDY=0 >> -MOZ_SERVICES_SYNC=0 >> -MOZ_DEVICES=0 >> -MOZ_ANDROID_GOOGLE_PLAY_SERVICES=0 >> -MOZ_ADDON_SIGNING=0 >> EOF >> } > > In the code above, what is the rationale for removing the settings for > MOZ_PAY=0, MOZ_SERVICES_HEALTHREPORTER=0, MOZ_SERVICES_FXACCOUNTS=0, > MOZ_SERVICES_METRICS=0, MOZ_DEVICES=0, > MOZ_ANDROID_GOOGLE_PLAY_SERVICES=0, and MOZ_ADDON_SIGNING=0? None of these outside MOZ_SERVICES_HEALTHREPORTER are still in use, according to 'git grep' on Firefox's source. ++imply_option("MOZ_SERVICES_HEALTHREPORT", False) is now in the 'moz-configure-changes.patch' There are two things that are currently broken in IceCat 140.2 based on limited testing: 1. Contextual menu on right click has empty lines (sounds deja-vu? what was the past resolution?) 2. The parameters page is borked. I have no idea what needs fixing. I'd appreciate your help for the above two points. -- Thanks, Maxim
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.