Subject: bug#79355: [PATCH v2] Update to 140.2.0-1.

From: Mark H Weaver <[email-masked]>
Date: Tue, 02 Sep 2025 14:08:32 -0400

Hi Maxim,

Thanks very much for this work, Maxim!
I'm profoundly grateful to you for taking care of this.

Please see below for inline comments:

Maxim Cournoyer <[email-masked]> 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?

> diff --git a/data/patches/icecat-about-dialog.patch b/data/patches/icecat-about-dialog.patch
> index c7e77b0..87dc835 100644
> --- a/data/patches/icecat-about-dialog.patch
> +++ b/data/patches/icecat-about-dialog.patch
[...]
> ---- a/browser/base/content/aboutDialog.css
> -+++ b/browser/base/content/aboutDialog.css
> -@@ -38,10 +38,9 @@
> +--- 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.

> diff --git a/data/patches/icecat-fix-install.patch b/data/patches/icecat-fix-install.patch
> new file mode 100644
> index 0000000..b62d36f
> --- /dev/null
> +++ b/data/patches/icecat-fix-install.patch
> @@ -0,0 +1,14 @@
> +diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
> +index 6ebf2f62c477..2ddcef37816c 100644
> +--- a/browser/installer/package-manifest.in
> ++++ b/browser/installer/package-manifest.in
> +@@ -174,7 +174,9 @@
> + @RESPATH@/components/nsUpdateService.manifest
> + #endif
> + @RESPATH@/components/ProcessSingleton.manifest
> ++#ifdef MOZ_SERVICES_SYNC
> + @RESPATH@/components/SyncComponents.manifest
> ++#endif
> + @RESPATH@/components/servicesComponents.manifest
> + @RESPATH@/components/servicesSettings.manifest
> + @RESPATH@/components/cryptoComponents.manifest

It's a minor point, but I'd prefer to name this patch
"fix-install.patch" without the "icecat-" prefix.

>  --- 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').

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

> +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.

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

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

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

>      # 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?

I just successfully built IceCat 140.2 with those settings retained.

I understand why the settings for MOZ_APP_UA_NAME, MOZ_APP_VENDOR, and
MOZ_APP_PROFILE, MOZ_SERVICES_HEALTHREPORT, MOZ_NORMANDY, and
MOZ_SERVICES_SYNC had to be removed, and anyway those settings are now
made in 'browser/moz.configure'.

Anyway, many thanks again for this excellent work!

    Warm regards,
        Mark