GNU bug report logs - #79355
[PATCH 1/2] Update to 140.2.0-1.

Previous Next

Package: gnuzilla;

Reported by: Maxim Cournoyer <maxim <at> guixotic.coop>

Date: Sun, 31 Aug 2025 14:13:02 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 79355 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnuzilla <at> gnu.org:
bug#79355; Package gnuzilla. (Sun, 31 Aug 2025 14:13:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Maxim Cournoyer <maxim <at> guixotic.coop>:
New bug report received and forwarded. Copy sent to bug-gnuzilla <at> gnu.org. (Sun, 31 Aug 2025 14:13:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim <at> guixotic.coop>
To: bug-gnuzilla <at> gnu.org
Cc: Maxim Cournoyer <maxim <at> guixotic.coop>
Subject: [PATCH 1/2] Update to 140.2.0-1.
Date: Sun, 31 Aug 2025 23:11:55 +0900
* 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.
* 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.
* tools/process-json-files.py (SearchConfig)
(SearchConfigOverrides): Delete classes.
(processors): De-register them.
* data/patches/icecat-fix-install.patch: New file.
---
 data/patches/hide-firefox-view-button.patch   | 18 +++---
 .../hide-submit-feedback-menu-item.patch      | 12 ++--
 data/patches/icecat-about-dialog.patch        | 23 ++++----
 data/patches/icecat-fix-install.patch         | 14 +++++
 data/patches/moz-configure-changes.patch      | 33 +++++++++--
 makeicecat                                    | 44 ++++++--------
 tools/process-json-files.py                   | 59 +------------------
 7 files changed, 88 insertions(+), 115 deletions(-)
 create mode 100644 data/patches/icecat-fix-install.patch

diff --git a/data/patches/hide-firefox-view-button.patch b/data/patches/hide-firefox-view-button.patch
index ef24a34..52bad1c 100644
--- a/data/patches/hide-firefox-view-button.patch
+++ b/data/patches/hide-firefox-view-button.patch
@@ -1,10 +1,10 @@
---- a/browser/base/content/navigator-toolbox.inc.xhtml
-+++ b/browser/base/content/navigator-toolbox.inc.xhtml
-@@ -43,6 +43,7 @@
-                          oncommand="FirefoxViewHandler.openTab();"
-                          onmousedown="FirefoxViewHandler.openToolbarMouseEvent(event);"
-                          cui-areatype="toolbar"
-+                         hidden="true"
-                          removable="true"/>
+--- a/browser/base/content/navigator-toolbox.inc.xhtml	2025-08-12 02:31:44.000000000 +0900
++++ b/browser/base/content/navigator-toolbox.inc.xhtml	2025-08-26 21:10:15.709368257 +0900
+@@ -41,6 +41,7 @@
+                        role="button"
+                        aria-pressed="false"
+                        cui-areatype="toolbar"
++                       hidden="true"
+                        removable="true"/>
  
-           <tabs id="tabbrowser-tabs"
+         <tabs id="tabbrowser-tabs"
diff --git a/data/patches/hide-submit-feedback-menu-item.patch b/data/patches/hide-submit-feedback-menu-item.patch
index 402ba31..5278da7 100644
--- a/data/patches/hide-submit-feedback-menu-item.patch
+++ b/data/patches/hide-submit-feedback-menu-item.patch
@@ -1,10 +1,10 @@
---- a/browser/base/content/browser-menubar.inc
-+++ b/browser/base/content/browser-menubar.inc
-@@ -465,6 +465,7 @@
-                           hidden="true"
-                           appmenu-data-l10n-id="menu-report-broken-site"/>
+--- a/browser/base/content/browser-menubar.inc	2025-08-26 21:16:57.929903122 +0900
++++ b/browser/base/content/browser-menubar.inc	2025-08-26 21:17:09.257918204 +0900
+@@ -431,6 +431,7 @@
+                           disabled="true"
+                           appmenu-data-l10n-id="appmenuitem-report-broken-site"/>
                  <menuitem id="feedbackPage"
 +                          hidden="true"
-                           oncommand="openFeedbackPage()"
                            data-l10n-id="menu-help-share-ideas"
                            appmenu-data-l10n-id="appmenu-help-share-ideas"/>
+                 <menuitem id="helpSafeMode"
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
@@ -1,16 +1,16 @@
---- a/browser/base/content/aboutDialog.xhtml
-+++ b/browser/base/content/aboutDialog.xhtml
-@@ -148,7 +148,6 @@
+--- a/browser/base/content/aboutDialog.xhtml	2025-08-26 21:23:08.866394736 +0900
++++ b/browser/base/content/aboutDialog.xhtml	2025-08-26 21:23:19.986408921 +0900
+@@ -139,7 +139,6 @@
        <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" useoriginprincipal="true" href="about:rights" data-l10n-id="bottomLinks-rights"/>
--        <label is="text-link" class="bottom-link" href="https://www.mozilla.org/privacy/?utm_source=firefox-browser&#38;utm_medium=firefox-desktop&#38;utm_campaign=about-dialog" data-l10n-id="bottomLinks-privacy"/>
+         <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://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>
      </vbox>
---- 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) {
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
diff --git a/data/patches/moz-configure-changes.patch b/data/patches/moz-configure-changes.patch
index 6f0525e..5745b38 100644
--- a/data/patches/moz-configure-changes.patch
+++ b/data/patches/moz-configure-changes.patch
@@ -1,18 +1,41 @@
+diff --git a/browser/moz.configure b/browser/moz.configure
+index e8b401a7dfb2..d5b3117ce3d8 100644
 --- 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")
+diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
+index 193272588caa..da8a729548c8 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -991,7 +991,7 @@ set_config("MOZ_BUILD_APP", build_project)
+ set_define("MOZ_BUILD_APP", build_project)
+ 
+ 
+-option(env="MOZILLA_OFFICIAL", help="Build an official release")
++option(env="MOZILLA_OFFICIAL", help="Build an official release", default=False)
+ 
  
- with only_when(target_has_linux_kernel & compile_environment):
-     option(env="MOZ_NO_PIE_COMPAT", help="Enable non-PIE wrapper")
+ @depends("MOZILLA_OFFICIAL")
diff --git a/makeicecat b/makeicecat
index fc0bb76..8601e70 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
+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
 readonly L10N_CMP_URL=https://github.com/mozilla/compare-locales
 readonly L10N_CMP_REV=RELEASE_9_0_4
 readonly L10N_PREFS_DIR=browser/chrome/browser/preferences
@@ -377,7 +378,7 @@ configure()
     sed '/"datareporting\.healthreport\.uploadEnabled"/s/true/false/' -i modules/libpref/init/all.js
 
     # Custom privacy statement link
-    sed "s|https://www\\.mozilla\\.org/legal/privacy/|https://${LEGALINFO_URL}|" -i ./browser/app/profile/firefox.js ./toolkit/content/aboutRights.xhtml
+    sed "s|https://www\\.mozilla\\.org/legal/privacy/|https://${LEGALINFO_URL}|" -i ./browser/app/profile/firefox.js
 
     # Sanitize lists
     local plugin_file
@@ -393,8 +394,8 @@ configure()
     # Disable activity-stream anti-features.
     # These are not condensed into a single sed script so that it
     # fails on individual commands that didn't change the source
-    local activity_stream=browser/components/newtab/lib/ActivityStream.sys.mjs
-    sed '/^const DEFAULT_SITES/,/^])\;/c const DEFAULT_SITES = new Map\([[""]]\);' -i browser/components/newtab/lib/DefaultSites.sys.mjs
+    local activity_stream=browser/extensions/newtab/lib/ActivityStream.sys.mjs
+    sed '/^const DEFAULT_SITES/,/^])\;/c const DEFAULT_SITES = new Map\([[""]]\);' -i browser/extensions/newtab/lib/DefaultSites.sys.mjs
     sed '/"showSponsored"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/  "telemetry"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/"section\.highlights\.includePocket"/,/value/s/value: true/value: false/' -i $activity_stream
@@ -405,11 +406,10 @@ configure()
     sed '/"telemetry\.structuredIngestion\.endpoint"/,/value/s/value: .*/value: "",/' -i $activity_stream
     sed '/name: "telemetry"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/name: "system\.topstories"/,/},/s/.*!!locales.*/false/' -i $activity_stream
-    sed 's/Ubuntu, //' -i browser/components/newtab/css/activity-stream*.css
 
-    sed '/^]$/d' -i browser/components/newtab/data/content/tippytop/top_sites.json
-    sed 's/}$/},/' -i browser/components/newtab/data/content/tippytop/top_sites.json
-    cat << EOF >> browser/components/newtab/data/content/tippytop/top_sites.json
+    sed '/^]$/d' -i browser/components/topsites/content/tippytop/top_sites.json
+    sed 's/}$/},/' -i browser/components/topsites/content/tippytop/top_sites.json
+    cat << EOF >> browser/components/topsites/content/tippytop/top_sites.json
 {
   "domains": ["gnu.org"],
   "image_url": "images/gnu.png",
@@ -505,8 +505,8 @@ EOF
 }
 EOF
 
-    cp "${DATADIR}"/newtab/*.ico browser/components/newtab/data/content/tippytop/favicons/
-    cp "${DATADIR}"/newtab/*.png browser/components/newtab/data/content/tippytop/images/
+    cp "${DATADIR}"/newtab/*.ico browser/components/topsites/content/tippytop/favicons/
+    cp "${DATADIR}"/newtab/*.png browser/components/topsites/content/tippytop/images/
 
     # IceCat menu l10n
     /bin/sed '/appmenuitem-settings/,+1s/\(.*.label = \)\(.*\)/\1\2\nappmenuitem-icecat-settings =\n\1IceCat \2/' -i ./l10n/*/browser/browser/appmenu.ftl ./browser/locales/en-US/browser/appmenu.ftl
@@ -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
@@ -713,27 +712,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
+
     # 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
 }
 
diff --git a/tools/process-json-files.py b/tools/process-json-files.py
index d449057..2407fa9 100644
--- a/tools/process-json-files.py
+++ b/tools/process-json-files.py
@@ -148,48 +148,6 @@ class Changes(RemoteSettings):
         return File(cls.OUTPUT_PATH, changes)
 
 
-class SearchConfig(RemoteSettings):
-    JSON_PATHS = (
-        RemoteSettings.DUMPS_PATH_ABSOLUTE /
-        'main/search-config.json',
-    )
-    SCHEMA_PATH = arguments.MAIN_PATH / \
-        'toolkit/components/search/schema/search-config-schema.json'
-    OUTPUT_PATH = JSON_PATHS[0]
-
-    _DUCKDUCKGO_SEARCH_ENGINE_ID = 'ddg <at> search.mozilla.org'
-
-    @classmethod
-    def should_drop_record(cls, search_engine):
-        return search_engine['webExtension']['id'] not in (
-            cls._DUCKDUCKGO_SEARCH_ENGINE_ID, 'wikipedia <at> search.mozilla.org')
-
-    @classmethod
-    def process_record(cls, search_engine):
-        [search_engine.pop(key, None)
-         for key in ['extraParams', 'telemetryId']]
-
-        general_specifier = {}
-        for specifier in search_engine['appliesTo'].copy():
-            if 'application' in specifier:
-                if 'distributions' in specifier['application']:
-                    search_engine['appliesTo'].remove(specifier)
-                    continue
-                specifier['application'].pop('extraParams', None)
-
-            if 'included' in specifier and 'everywhere' in specifier[
-                    'included'] and specifier['included']['everywhere']:
-                general_specifier = specifier
-
-        if not general_specifier:
-            general_specifier = {'included': {'everywhere': True}}
-            search_engine['appliesTo'].insert(0, general_specifier)
-        if search_engine['webExtension']['id'] == cls._DUCKDUCKGO_SEARCH_ENGINE_ID:
-            general_specifier['default'] = 'yes'
-
-        return search_engine
-
-
 class SearchConfigV2(RemoteSettings):
     JSON_PATHS = (
         RemoteSettings.DUMPS_PATH_ABSOLUTE /
@@ -224,20 +182,6 @@ class SearchConfigV2(RemoteSettings):
         return record
 
 
-class SearchConfigOverrides(RemoteSettings):
-    JSON_PATHS = (
-        RemoteSettings.DUMPS_PATH_ABSOLUTE /
-        'main/search-config-overrides.json',
-    )
-    SCHEMA_PATH = arguments.MAIN_PATH / \
-        'toolkit/components/search/schema/search-config-overrides-schema.json'
-    OUTPUT_PATH = JSON_PATHS[0]
-
-    @classmethod
-    def should_drop_record(cls, record):
-        return True
-
-
 class SearchConfigOverridesV2(RemoteSettings):
     JSON_PATHS = (
         RemoteSettings.DUMPS_PATH_ABSOLUTE /
@@ -295,8 +239,7 @@ class TopSites(RemoteSettings):
 
 # To reflect the latest timestamps, Changes class should always come after
 # all other RemoteSettings subclasses
-processors = (SearchConfig,   SearchConfigOverrides,
-              SearchConfigV2, SearchConfigOverridesV2,
+processors = (SearchConfigV2, SearchConfigOverridesV2,
               Changes)
 
 for processor in processors:

base-commit: ba161be3de71bb556be951ac4dbb81c807f68770
-- 
2.51.0





Information forwarded to bug-gnuzilla <at> gnu.org:
bug#79355; Package gnuzilla. (Mon, 01 Sep 2025 02:25:01 GMT) Full text and rfc822 format available.

Message #8 received at 79355 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim <at> guixotic.coop>
To: 79355 <at> debbugs.gnu.org
Cc: Maxim Cournoyer <maxim <at> guixotic.coop>
Subject: [PATCH v2] Update to 140.2.0-1.
Date: Mon,  1 Sep 2025 11:23:58 +0900
* 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.
* tools/process-json-files.py (SearchConfig)
(SearchConfigOverrides): Delete classes.
(processors): De-register them.
* data/patches/icecat-fix-install.patch: New file.
---
 data/patches/hide-firefox-view-button.patch   | 18 +++---
 .../hide-submit-feedback-menu-item.patch      | 12 ++--
 data/patches/icecat-about-dialog.patch        | 23 ++++----
 data/patches/icecat-fix-install.patch         | 14 +++++
 data/patches/moz-configure-changes.patch      | 33 +++++++++--
 makeicecat                                    | 53 ++++++-----------
 tools/process-json-files.py                   | 59 +------------------
 7 files changed, 88 insertions(+), 124 deletions(-)
 create mode 100644 data/patches/icecat-fix-install.patch

diff --git a/data/patches/hide-firefox-view-button.patch b/data/patches/hide-firefox-view-button.patch
index ef24a34..52bad1c 100644
--- a/data/patches/hide-firefox-view-button.patch
+++ b/data/patches/hide-firefox-view-button.patch
@@ -1,10 +1,10 @@
---- a/browser/base/content/navigator-toolbox.inc.xhtml
-+++ b/browser/base/content/navigator-toolbox.inc.xhtml
-@@ -43,6 +43,7 @@
-                          oncommand="FirefoxViewHandler.openTab();"
-                          onmousedown="FirefoxViewHandler.openToolbarMouseEvent(event);"
-                          cui-areatype="toolbar"
-+                         hidden="true"
-                          removable="true"/>
+--- a/browser/base/content/navigator-toolbox.inc.xhtml	2025-08-12 02:31:44.000000000 +0900
++++ b/browser/base/content/navigator-toolbox.inc.xhtml	2025-08-26 21:10:15.709368257 +0900
+@@ -41,6 +41,7 @@
+                        role="button"
+                        aria-pressed="false"
+                        cui-areatype="toolbar"
++                       hidden="true"
+                        removable="true"/>
  
-           <tabs id="tabbrowser-tabs"
+         <tabs id="tabbrowser-tabs"
diff --git a/data/patches/hide-submit-feedback-menu-item.patch b/data/patches/hide-submit-feedback-menu-item.patch
index 402ba31..5278da7 100644
--- a/data/patches/hide-submit-feedback-menu-item.patch
+++ b/data/patches/hide-submit-feedback-menu-item.patch
@@ -1,10 +1,10 @@
---- a/browser/base/content/browser-menubar.inc
-+++ b/browser/base/content/browser-menubar.inc
-@@ -465,6 +465,7 @@
-                           hidden="true"
-                           appmenu-data-l10n-id="menu-report-broken-site"/>
+--- a/browser/base/content/browser-menubar.inc	2025-08-26 21:16:57.929903122 +0900
++++ b/browser/base/content/browser-menubar.inc	2025-08-26 21:17:09.257918204 +0900
+@@ -431,6 +431,7 @@
+                           disabled="true"
+                           appmenu-data-l10n-id="appmenuitem-report-broken-site"/>
                  <menuitem id="feedbackPage"
 +                          hidden="true"
-                           oncommand="openFeedbackPage()"
                            data-l10n-id="menu-help-share-ideas"
                            appmenu-data-l10n-id="appmenu-help-share-ideas"/>
+                 <menuitem id="helpSafeMode"
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
@@ -1,16 +1,16 @@
---- a/browser/base/content/aboutDialog.xhtml
-+++ b/browser/base/content/aboutDialog.xhtml
-@@ -148,7 +148,6 @@
+--- a/browser/base/content/aboutDialog.xhtml	2025-08-26 21:23:08.866394736 +0900
++++ b/browser/base/content/aboutDialog.xhtml	2025-08-26 21:23:19.986408921 +0900
+@@ -139,7 +139,6 @@
        <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" useoriginprincipal="true" href="about:rights" data-l10n-id="bottomLinks-rights"/>
--        <label is="text-link" class="bottom-link" href="https://www.mozilla.org/privacy/?utm_source=firefox-browser&#38;utm_medium=firefox-desktop&#38;utm_campaign=about-dialog" data-l10n-id="bottomLinks-privacy"/>
+         <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://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>
      </vbox>
---- 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) {
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
diff --git a/data/patches/moz-configure-changes.patch b/data/patches/moz-configure-changes.patch
index 6f0525e..5745b38 100644
--- a/data/patches/moz-configure-changes.patch
+++ b/data/patches/moz-configure-changes.patch
@@ -1,18 +1,41 @@
+diff --git a/browser/moz.configure b/browser/moz.configure
+index e8b401a7dfb2..d5b3117ce3d8 100644
 --- 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")
+diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
+index 193272588caa..da8a729548c8 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -991,7 +991,7 @@ set_config("MOZ_BUILD_APP", build_project)
+ set_define("MOZ_BUILD_APP", build_project)
+ 
+ 
+-option(env="MOZILLA_OFFICIAL", help="Build an official release")
++option(env="MOZILLA_OFFICIAL", help="Build an official release", default=False)
+ 
  
- with only_when(target_has_linux_kernel & compile_environment):
-     option(env="MOZ_NO_PIE_COMPAT", help="Enable non-PIE wrapper")
+ @depends("MOZILLA_OFFICIAL")
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
+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
 readonly L10N_CMP_URL=https://github.com/mozilla/compare-locales
 readonly L10N_CMP_REV=RELEASE_9_0_4
 readonly L10N_PREFS_DIR=browser/chrome/browser/preferences
@@ -377,7 +378,7 @@ configure()
     sed '/"datareporting\.healthreport\.uploadEnabled"/s/true/false/' -i modules/libpref/init/all.js
 
     # Custom privacy statement link
-    sed "s|https://www\\.mozilla\\.org/legal/privacy/|https://${LEGALINFO_URL}|" -i ./browser/app/profile/firefox.js ./toolkit/content/aboutRights.xhtml
+    sed "s|https://www\\.mozilla\\.org/legal/privacy/|https://${LEGALINFO_URL}|" -i ./browser/app/profile/firefox.js
 
     # Sanitize lists
     local plugin_file
@@ -393,8 +394,8 @@ configure()
     # Disable activity-stream anti-features.
     # These are not condensed into a single sed script so that it
     # fails on individual commands that didn't change the source
-    local activity_stream=browser/components/newtab/lib/ActivityStream.sys.mjs
-    sed '/^const DEFAULT_SITES/,/^])\;/c const DEFAULT_SITES = new Map\([[""]]\);' -i browser/components/newtab/lib/DefaultSites.sys.mjs
+    local activity_stream=browser/extensions/newtab/lib/ActivityStream.sys.mjs
+    sed '/^const DEFAULT_SITES/,/^])\;/c const DEFAULT_SITES = new Map\([[""]]\);' -i browser/extensions/newtab/lib/DefaultSites.sys.mjs
     sed '/"showSponsored"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/  "telemetry"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/"section\.highlights\.includePocket"/,/value/s/value: true/value: false/' -i $activity_stream
@@ -405,11 +406,10 @@ configure()
     sed '/"telemetry\.structuredIngestion\.endpoint"/,/value/s/value: .*/value: "",/' -i $activity_stream
     sed '/name: "telemetry"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/name: "system\.topstories"/,/},/s/.*!!locales.*/false/' -i $activity_stream
-    sed 's/Ubuntu, //' -i browser/components/newtab/css/activity-stream*.css
 
-    sed '/^]$/d' -i browser/components/newtab/data/content/tippytop/top_sites.json
-    sed 's/}$/},/' -i browser/components/newtab/data/content/tippytop/top_sites.json
-    cat << EOF >> browser/components/newtab/data/content/tippytop/top_sites.json
+    sed '/^]$/d' -i browser/components/topsites/content/tippytop/top_sites.json
+    sed 's/}$/},/' -i browser/components/topsites/content/tippytop/top_sites.json
+    cat << EOF >> browser/components/topsites/content/tippytop/top_sites.json
 {
   "domains": ["gnu.org"],
   "image_url": "images/gnu.png",
@@ -505,8 +505,8 @@ EOF
 }
 EOF
 
-    cp "${DATADIR}"/newtab/*.ico browser/components/newtab/data/content/tippytop/favicons/
-    cp "${DATADIR}"/newtab/*.png browser/components/newtab/data/content/tippytop/images/
+    cp "${DATADIR}"/newtab/*.ico browser/components/topsites/content/tippytop/favicons/
+    cp "${DATADIR}"/newtab/*.png browser/components/topsites/content/tippytop/images/
 
     # IceCat menu l10n
     /bin/sed '/appmenuitem-settings/,+1s/\(.*.label = \)\(.*\)/\1\2\nappmenuitem-icecat-settings =\n\1IceCat \2/' -i ./l10n/*/browser/browser/appmenu.ftl ./browser/locales/en-US/browser/appmenu.ftl
@@ -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
@@ -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
@@ -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
+
     # 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
 }
 
diff --git a/tools/process-json-files.py b/tools/process-json-files.py
index d449057..2407fa9 100644
--- a/tools/process-json-files.py
+++ b/tools/process-json-files.py
@@ -148,48 +148,6 @@ class Changes(RemoteSettings):
         return File(cls.OUTPUT_PATH, changes)
 
 
-class SearchConfig(RemoteSettings):
-    JSON_PATHS = (
-        RemoteSettings.DUMPS_PATH_ABSOLUTE /
-        'main/search-config.json',
-    )
-    SCHEMA_PATH = arguments.MAIN_PATH / \
-        'toolkit/components/search/schema/search-config-schema.json'
-    OUTPUT_PATH = JSON_PATHS[0]
-
-    _DUCKDUCKGO_SEARCH_ENGINE_ID = 'ddg <at> search.mozilla.org'
-
-    @classmethod
-    def should_drop_record(cls, search_engine):
-        return search_engine['webExtension']['id'] not in (
-            cls._DUCKDUCKGO_SEARCH_ENGINE_ID, 'wikipedia <at> search.mozilla.org')
-
-    @classmethod
-    def process_record(cls, search_engine):
-        [search_engine.pop(key, None)
-         for key in ['extraParams', 'telemetryId']]
-
-        general_specifier = {}
-        for specifier in search_engine['appliesTo'].copy():
-            if 'application' in specifier:
-                if 'distributions' in specifier['application']:
-                    search_engine['appliesTo'].remove(specifier)
-                    continue
-                specifier['application'].pop('extraParams', None)
-
-            if 'included' in specifier and 'everywhere' in specifier[
-                    'included'] and specifier['included']['everywhere']:
-                general_specifier = specifier
-
-        if not general_specifier:
-            general_specifier = {'included': {'everywhere': True}}
-            search_engine['appliesTo'].insert(0, general_specifier)
-        if search_engine['webExtension']['id'] == cls._DUCKDUCKGO_SEARCH_ENGINE_ID:
-            general_specifier['default'] = 'yes'
-
-        return search_engine
-
-
 class SearchConfigV2(RemoteSettings):
     JSON_PATHS = (
         RemoteSettings.DUMPS_PATH_ABSOLUTE /
@@ -224,20 +182,6 @@ class SearchConfigV2(RemoteSettings):
         return record
 
 
-class SearchConfigOverrides(RemoteSettings):
-    JSON_PATHS = (
-        RemoteSettings.DUMPS_PATH_ABSOLUTE /
-        'main/search-config-overrides.json',
-    )
-    SCHEMA_PATH = arguments.MAIN_PATH / \
-        'toolkit/components/search/schema/search-config-overrides-schema.json'
-    OUTPUT_PATH = JSON_PATHS[0]
-
-    @classmethod
-    def should_drop_record(cls, record):
-        return True
-
-
 class SearchConfigOverridesV2(RemoteSettings):
     JSON_PATHS = (
         RemoteSettings.DUMPS_PATH_ABSOLUTE /
@@ -295,8 +239,7 @@ class TopSites(RemoteSettings):
 
 # To reflect the latest timestamps, Changes class should always come after
 # all other RemoteSettings subclasses
-processors = (SearchConfig,   SearchConfigOverrides,
-              SearchConfigV2, SearchConfigOverridesV2,
+processors = (SearchConfigV2, SearchConfigOverridesV2,
               Changes)
 
 for processor in processors:
-- 
2.51.0





Information forwarded to bug-gnuzilla <at> gnu.org:
bug#79355; Package gnuzilla. (Tue, 02 Sep 2025 13:48:02 GMT) Full text and rfc822 format available.

Message #11 received at 79355 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim <at> guixotic.coop>
To: 79355 <at> debbugs.gnu.org
Cc: Maxim Cournoyer <maxim <at> guixotic.coop>
Subject: [PATCH v3] Update to 140.2.0-1.
Date: Tue,  2 Sep 2025 22:46:06 +0900
* 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.
* tools/process-json-files.py (SearchConfig)
(SearchConfigOverrides): Delete classes.
(processors): De-register them.
* data/patches/icecat-fix-install.patch: New file.
---
Successfully built and ran icecat & icedove 140.2 with this.

 data/patches/hide-firefox-view-button.patch   | 18 +++---
 .../hide-submit-feedback-menu-item.patch      | 12 ++--
 data/patches/icecat-about-dialog.patch        | 23 ++++---
 data/patches/icecat-fix-install.patch         | 14 +++++
 data/patches/moz-configure-changes.patch      | 33 ++++++++--
 makeicecat                                    | 63 +++++++------------
 tools/process-json-files.py                   | 59 +----------------
 7 files changed, 95 insertions(+), 127 deletions(-)
 create mode 100644 data/patches/icecat-fix-install.patch

diff --git a/data/patches/hide-firefox-view-button.patch b/data/patches/hide-firefox-view-button.patch
index ef24a34..52bad1c 100644
--- a/data/patches/hide-firefox-view-button.patch
+++ b/data/patches/hide-firefox-view-button.patch
@@ -1,10 +1,10 @@
---- a/browser/base/content/navigator-toolbox.inc.xhtml
-+++ b/browser/base/content/navigator-toolbox.inc.xhtml
-@@ -43,6 +43,7 @@
-                          oncommand="FirefoxViewHandler.openTab();"
-                          onmousedown="FirefoxViewHandler.openToolbarMouseEvent(event);"
-                          cui-areatype="toolbar"
-+                         hidden="true"
-                          removable="true"/>
+--- a/browser/base/content/navigator-toolbox.inc.xhtml	2025-08-12 02:31:44.000000000 +0900
++++ b/browser/base/content/navigator-toolbox.inc.xhtml	2025-08-26 21:10:15.709368257 +0900
+@@ -41,6 +41,7 @@
+                        role="button"
+                        aria-pressed="false"
+                        cui-areatype="toolbar"
++                       hidden="true"
+                        removable="true"/>
  
-           <tabs id="tabbrowser-tabs"
+         <tabs id="tabbrowser-tabs"
diff --git a/data/patches/hide-submit-feedback-menu-item.patch b/data/patches/hide-submit-feedback-menu-item.patch
index 402ba31..5278da7 100644
--- a/data/patches/hide-submit-feedback-menu-item.patch
+++ b/data/patches/hide-submit-feedback-menu-item.patch
@@ -1,10 +1,10 @@
---- a/browser/base/content/browser-menubar.inc
-+++ b/browser/base/content/browser-menubar.inc
-@@ -465,6 +465,7 @@
-                           hidden="true"
-                           appmenu-data-l10n-id="menu-report-broken-site"/>
+--- a/browser/base/content/browser-menubar.inc	2025-08-26 21:16:57.929903122 +0900
++++ b/browser/base/content/browser-menubar.inc	2025-08-26 21:17:09.257918204 +0900
+@@ -431,6 +431,7 @@
+                           disabled="true"
+                           appmenu-data-l10n-id="appmenuitem-report-broken-site"/>
                  <menuitem id="feedbackPage"
 +                          hidden="true"
-                           oncommand="openFeedbackPage()"
                            data-l10n-id="menu-help-share-ideas"
                            appmenu-data-l10n-id="appmenu-help-share-ideas"/>
+                 <menuitem id="helpSafeMode"
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
@@ -1,16 +1,16 @@
---- a/browser/base/content/aboutDialog.xhtml
-+++ b/browser/base/content/aboutDialog.xhtml
-@@ -148,7 +148,6 @@
+--- a/browser/base/content/aboutDialog.xhtml	2025-08-26 21:23:08.866394736 +0900
++++ b/browser/base/content/aboutDialog.xhtml	2025-08-26 21:23:19.986408921 +0900
+@@ -139,7 +139,6 @@
        <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" useoriginprincipal="true" href="about:rights" data-l10n-id="bottomLinks-rights"/>
--        <label is="text-link" class="bottom-link" href="https://www.mozilla.org/privacy/?utm_source=firefox-browser&#38;utm_medium=firefox-desktop&#38;utm_campaign=about-dialog" data-l10n-id="bottomLinks-privacy"/>
+         <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://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>
      </vbox>
---- 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) {
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
diff --git a/data/patches/moz-configure-changes.patch b/data/patches/moz-configure-changes.patch
index 6f0525e..5745b38 100644
--- a/data/patches/moz-configure-changes.patch
+++ b/data/patches/moz-configure-changes.patch
@@ -1,18 +1,41 @@
+diff --git a/browser/moz.configure b/browser/moz.configure
+index e8b401a7dfb2..d5b3117ce3d8 100644
 --- 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")
+diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
+index 193272588caa..da8a729548c8 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -991,7 +991,7 @@ set_config("MOZ_BUILD_APP", build_project)
+ set_define("MOZ_BUILD_APP", build_project)
+ 
+ 
+-option(env="MOZILLA_OFFICIAL", help="Build an official release")
++option(env="MOZILLA_OFFICIAL", help="Build an official release", default=False)
+ 
  
- with only_when(target_has_linux_kernel & compile_environment):
-     option(env="MOZ_NO_PIE_COMPAT", help="Enable non-PIE wrapper")
+ @depends("MOZILLA_OFFICIAL")
diff --git a/makeicecat b/makeicecat
index fc0bb76..f47f089 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
+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
 readonly L10N_CMP_URL=https://github.com/mozilla/compare-locales
 readonly L10N_CMP_REV=RELEASE_9_0_4
 readonly L10N_PREFS_DIR=browser/chrome/browser/preferences
@@ -377,7 +378,7 @@ configure()
     sed '/"datareporting\.healthreport\.uploadEnabled"/s/true/false/' -i modules/libpref/init/all.js
 
     # Custom privacy statement link
-    sed "s|https://www\\.mozilla\\.org/legal/privacy/|https://${LEGALINFO_URL}|" -i ./browser/app/profile/firefox.js ./toolkit/content/aboutRights.xhtml
+    sed "s|https://www\\.mozilla\\.org/legal/privacy/|https://${LEGALINFO_URL}|" -i ./browser/app/profile/firefox.js
 
     # Sanitize lists
     local plugin_file
@@ -393,8 +394,8 @@ configure()
     # Disable activity-stream anti-features.
     # These are not condensed into a single sed script so that it
     # fails on individual commands that didn't change the source
-    local activity_stream=browser/components/newtab/lib/ActivityStream.sys.mjs
-    sed '/^const DEFAULT_SITES/,/^])\;/c const DEFAULT_SITES = new Map\([[""]]\);' -i browser/components/newtab/lib/DefaultSites.sys.mjs
+    local activity_stream=browser/extensions/newtab/lib/ActivityStream.sys.mjs
+    sed '/^const DEFAULT_SITES/,/^])\;/c const DEFAULT_SITES = new Map\([[""]]\);' -i browser/extensions/newtab/lib/DefaultSites.sys.mjs
     sed '/"showSponsored"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/  "telemetry"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/"section\.highlights\.includePocket"/,/value/s/value: true/value: false/' -i $activity_stream
@@ -405,11 +406,10 @@ configure()
     sed '/"telemetry\.structuredIngestion\.endpoint"/,/value/s/value: .*/value: "",/' -i $activity_stream
     sed '/name: "telemetry"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/name: "system\.topstories"/,/},/s/.*!!locales.*/false/' -i $activity_stream
-    sed 's/Ubuntu, //' -i browser/components/newtab/css/activity-stream*.css
 
-    sed '/^]$/d' -i browser/components/newtab/data/content/tippytop/top_sites.json
-    sed 's/}$/},/' -i browser/components/newtab/data/content/tippytop/top_sites.json
-    cat << EOF >> browser/components/newtab/data/content/tippytop/top_sites.json
+    sed '/^]$/d' -i browser/components/topsites/content/tippytop/top_sites.json
+    sed 's/}$/},/' -i browser/components/topsites/content/tippytop/top_sites.json
+    cat << EOF >> browser/components/topsites/content/tippytop/top_sites.json
 {
   "domains": ["gnu.org"],
   "image_url": "images/gnu.png",
@@ -505,8 +505,8 @@ EOF
 }
 EOF
 
-    cp "${DATADIR}"/newtab/*.ico browser/components/newtab/data/content/tippytop/favicons/
-    cp "${DATADIR}"/newtab/*.png browser/components/newtab/data/content/tippytop/images/
+    cp "${DATADIR}"/newtab/*.ico browser/components/topsites/content/tippytop/favicons/
+    cp "${DATADIR}"/newtab/*.png browser/components/topsites/content/tippytop/images/
 
     # IceCat menu l10n
     /bin/sed '/appmenuitem-settings/,+1s/\(.*.label = \)\(.*\)/\1\2\nappmenuitem-icecat-settings =\n\1IceCat \2/' -i ./l10n/*/browser/browser/appmenu.ftl ./browser/locales/en-US/browser/appmenu.ftl
@@ -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
@@ -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
@@ -632,8 +622,10 @@ apply_branding()
 
 apply_batch_branding()
 {
-    find . -depth | grep -i fennec  | rename_files -e s/fennec/icecatmobile/g -e s/Fennec/IceCatMobile/g
-    find . -depth | grep -i firefox | rename_files -e s/firefox/icecat/g -e s/Firefox/IceCat/g
+    find . -depth | grep -i fennec |
+        rename_files -e s/fennec/icecatmobile/g -e s/Fennec/IceCatMobile/g
+    find . -depth | grep -i firefox |
+        rename_files -e s/firefox/icecat/g -e s/Firefox/IceCat/g
 
     echo "Running batch rebranding (this will take a while)"
     local sed_script="
@@ -672,7 +664,9 @@ s|https://www\\.mozilla\\.org/icecat/?utm_source=synceol|https://www.mozilla.org
 
 s|www\\.gnu\\.org/software/gnuzilla/icecat-help|libreplanet.org/wiki/Group:IceCat/Help|g;
 "
-    find . -type f -not -iregex '.*changelog.*' -not -iregex '.*copyright.*' -not -iregex '.*third_party/rust.*' -execdir /bin/sed --follow-symlinks -i "${sed_script}" '{}' ';'
+    find . -type f -not -iregex '.*changelog.*' -not -iregex '.*copyright.*' \
+         -not -iregex '.*third_party/rust.*' \
+         -execdir /bin/sed --follow-symlinks -i "${sed_script}" '{}' ';'
 
     find l10n -type f -execdir /bin/sed --follow-symlinks -i "s/from GNU/from Mozilla/g" '{}' ';'
 
@@ -713,27 +707,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
+
     # 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
 }
 
diff --git a/tools/process-json-files.py b/tools/process-json-files.py
index d449057..2407fa9 100644
--- a/tools/process-json-files.py
+++ b/tools/process-json-files.py
@@ -148,48 +148,6 @@ class Changes(RemoteSettings):
         return File(cls.OUTPUT_PATH, changes)
 
 
-class SearchConfig(RemoteSettings):
-    JSON_PATHS = (
-        RemoteSettings.DUMPS_PATH_ABSOLUTE /
-        'main/search-config.json',
-    )
-    SCHEMA_PATH = arguments.MAIN_PATH / \
-        'toolkit/components/search/schema/search-config-schema.json'
-    OUTPUT_PATH = JSON_PATHS[0]
-
-    _DUCKDUCKGO_SEARCH_ENGINE_ID = 'ddg <at> search.mozilla.org'
-
-    @classmethod
-    def should_drop_record(cls, search_engine):
-        return search_engine['webExtension']['id'] not in (
-            cls._DUCKDUCKGO_SEARCH_ENGINE_ID, 'wikipedia <at> search.mozilla.org')
-
-    @classmethod
-    def process_record(cls, search_engine):
-        [search_engine.pop(key, None)
-         for key in ['extraParams', 'telemetryId']]
-
-        general_specifier = {}
-        for specifier in search_engine['appliesTo'].copy():
-            if 'application' in specifier:
-                if 'distributions' in specifier['application']:
-                    search_engine['appliesTo'].remove(specifier)
-                    continue
-                specifier['application'].pop('extraParams', None)
-
-            if 'included' in specifier and 'everywhere' in specifier[
-                    'included'] and specifier['included']['everywhere']:
-                general_specifier = specifier
-
-        if not general_specifier:
-            general_specifier = {'included': {'everywhere': True}}
-            search_engine['appliesTo'].insert(0, general_specifier)
-        if search_engine['webExtension']['id'] == cls._DUCKDUCKGO_SEARCH_ENGINE_ID:
-            general_specifier['default'] = 'yes'
-
-        return search_engine
-
-
 class SearchConfigV2(RemoteSettings):
     JSON_PATHS = (
         RemoteSettings.DUMPS_PATH_ABSOLUTE /
@@ -224,20 +182,6 @@ class SearchConfigV2(RemoteSettings):
         return record
 
 
-class SearchConfigOverrides(RemoteSettings):
-    JSON_PATHS = (
-        RemoteSettings.DUMPS_PATH_ABSOLUTE /
-        'main/search-config-overrides.json',
-    )
-    SCHEMA_PATH = arguments.MAIN_PATH / \
-        'toolkit/components/search/schema/search-config-overrides-schema.json'
-    OUTPUT_PATH = JSON_PATHS[0]
-
-    @classmethod
-    def should_drop_record(cls, record):
-        return True
-
-
 class SearchConfigOverridesV2(RemoteSettings):
     JSON_PATHS = (
         RemoteSettings.DUMPS_PATH_ABSOLUTE /
@@ -295,8 +239,7 @@ class TopSites(RemoteSettings):
 
 # To reflect the latest timestamps, Changes class should always come after
 # all other RemoteSettings subclasses
-processors = (SearchConfig,   SearchConfigOverrides,
-              SearchConfigV2, SearchConfigOverridesV2,
+processors = (SearchConfigV2, SearchConfigOverridesV2,
               Changes)
 
 for processor in processors:
-- 
2.51.0





Information forwarded to bug-gnuzilla <at> gnu.org:
bug#79355; Package gnuzilla. (Tue, 02 Sep 2025 18:08:02 GMT) Full text and rfc822 format available.

Message #14 received at 79355 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Maxim Cournoyer <maxim <at> guixotic.coop>
Cc: 79355 <at> debbugs.gnu.org
Subject: Re: bug#79355: [PATCH v2] Update to 140.2.0-1.
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 <maxim <at> guixotic.coop> 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




Information forwarded to bug-gnuzilla <at> gnu.org:
bug#79355; Package gnuzilla. (Wed, 03 Sep 2025 14:16:02 GMT) Full text and rfc822 format available.

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




Information forwarded to bug-gnuzilla <at> gnu.org:
bug#79355; Package gnuzilla. (Wed, 03 Sep 2025 14:20:02 GMT) Full text and rfc822 format available.

Message #20 received at 79355 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim <at> guixotic.coop>
To: 79355 <at> debbugs.gnu.org
Cc: Maxim Cournoyer <maxim <at> guixotic.coop>
Subject: [PATCH v4] Update to 140.2.0-1.
Date: Wed,  3 Sep 2025 23:17:42 +0900
* 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.
* tools/process-json-files.py (SearchConfig)
(SearchConfigOverrides): Delete classes.
(processors): De-register them.
* data/patches/fix-install.patch: New file.
---
This renames the fix-install.patch file and fixes the L10N_REV commit

 data/patches/fix-install.patch                | 14 +++++
 data/patches/hide-firefox-view-button.patch   | 18 +++---
 .../hide-submit-feedback-menu-item.patch      | 12 ++--
 data/patches/icecat-about-dialog.patch        | 23 ++++---
 data/patches/moz-configure-changes.patch      | 33 ++++++++--
 makeicecat                                    | 63 +++++++------------
 tools/process-json-files.py                   | 59 +----------------
 7 files changed, 95 insertions(+), 127 deletions(-)
 create mode 100644 data/patches/fix-install.patch

diff --git a/data/patches/fix-install.patch b/data/patches/fix-install.patch
new file mode 100644
index 0000000..b62d36f
--- /dev/null
+++ b/data/patches/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
diff --git a/data/patches/hide-firefox-view-button.patch b/data/patches/hide-firefox-view-button.patch
index ef24a34..52bad1c 100644
--- a/data/patches/hide-firefox-view-button.patch
+++ b/data/patches/hide-firefox-view-button.patch
@@ -1,10 +1,10 @@
---- a/browser/base/content/navigator-toolbox.inc.xhtml
-+++ b/browser/base/content/navigator-toolbox.inc.xhtml
-@@ -43,6 +43,7 @@
-                          oncommand="FirefoxViewHandler.openTab();"
-                          onmousedown="FirefoxViewHandler.openToolbarMouseEvent(event);"
-                          cui-areatype="toolbar"
-+                         hidden="true"
-                          removable="true"/>
+--- a/browser/base/content/navigator-toolbox.inc.xhtml	2025-08-12 02:31:44.000000000 +0900
++++ b/browser/base/content/navigator-toolbox.inc.xhtml	2025-08-26 21:10:15.709368257 +0900
+@@ -41,6 +41,7 @@
+                        role="button"
+                        aria-pressed="false"
+                        cui-areatype="toolbar"
++                       hidden="true"
+                        removable="true"/>
  
-           <tabs id="tabbrowser-tabs"
+         <tabs id="tabbrowser-tabs"
diff --git a/data/patches/hide-submit-feedback-menu-item.patch b/data/patches/hide-submit-feedback-menu-item.patch
index 402ba31..5278da7 100644
--- a/data/patches/hide-submit-feedback-menu-item.patch
+++ b/data/patches/hide-submit-feedback-menu-item.patch
@@ -1,10 +1,10 @@
---- a/browser/base/content/browser-menubar.inc
-+++ b/browser/base/content/browser-menubar.inc
-@@ -465,6 +465,7 @@
-                           hidden="true"
-                           appmenu-data-l10n-id="menu-report-broken-site"/>
+--- a/browser/base/content/browser-menubar.inc	2025-08-26 21:16:57.929903122 +0900
++++ b/browser/base/content/browser-menubar.inc	2025-08-26 21:17:09.257918204 +0900
+@@ -431,6 +431,7 @@
+                           disabled="true"
+                           appmenu-data-l10n-id="appmenuitem-report-broken-site"/>
                  <menuitem id="feedbackPage"
 +                          hidden="true"
-                           oncommand="openFeedbackPage()"
                            data-l10n-id="menu-help-share-ideas"
                            appmenu-data-l10n-id="appmenu-help-share-ideas"/>
+                 <menuitem id="helpSafeMode"
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
@@ -1,16 +1,16 @@
---- a/browser/base/content/aboutDialog.xhtml
-+++ b/browser/base/content/aboutDialog.xhtml
-@@ -148,7 +148,6 @@
+--- a/browser/base/content/aboutDialog.xhtml	2025-08-26 21:23:08.866394736 +0900
++++ b/browser/base/content/aboutDialog.xhtml	2025-08-26 21:23:19.986408921 +0900
+@@ -139,7 +139,6 @@
        <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" useoriginprincipal="true" href="about:rights" data-l10n-id="bottomLinks-rights"/>
--        <label is="text-link" class="bottom-link" href="https://www.mozilla.org/privacy/?utm_source=firefox-browser&#38;utm_medium=firefox-desktop&#38;utm_campaign=about-dialog" data-l10n-id="bottomLinks-privacy"/>
+         <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://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>
      </vbox>
---- 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) {
diff --git a/data/patches/moz-configure-changes.patch b/data/patches/moz-configure-changes.patch
index 6f0525e..5745b38 100644
--- a/data/patches/moz-configure-changes.patch
+++ b/data/patches/moz-configure-changes.patch
@@ -1,18 +1,41 @@
+diff --git a/browser/moz.configure b/browser/moz.configure
+index e8b401a7dfb2..d5b3117ce3d8 100644
 --- 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")
+diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
+index 193272588caa..da8a729548c8 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -991,7 +991,7 @@ set_config("MOZ_BUILD_APP", build_project)
+ set_define("MOZ_BUILD_APP", build_project)
+ 
+ 
+-option(env="MOZILLA_OFFICIAL", help="Build an official release")
++option(env="MOZILLA_OFFICIAL", help="Build an official release", default=False)
+ 
  
- with only_when(target_has_linux_kernel & compile_environment):
-     option(env="MOZ_NO_PIE_COMPAT", help="Enable non-PIE wrapper")
+ @depends("MOZILLA_OFFICIAL")
diff --git a/makeicecat b/makeicecat
index fc0bb76..552a41e 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
+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=a0c1ffda4ed19c0399e4175610361179e09829de
 readonly L10N_CMP_URL=https://github.com/mozilla/compare-locales
 readonly L10N_CMP_REV=RELEASE_9_0_4
 readonly L10N_PREFS_DIR=browser/chrome/browser/preferences
@@ -377,7 +378,7 @@ configure()
     sed '/"datareporting\.healthreport\.uploadEnabled"/s/true/false/' -i modules/libpref/init/all.js
 
     # Custom privacy statement link
-    sed "s|https://www\\.mozilla\\.org/legal/privacy/|https://${LEGALINFO_URL}|" -i ./browser/app/profile/firefox.js ./toolkit/content/aboutRights.xhtml
+    sed "s|https://www\\.mozilla\\.org/legal/privacy/|https://${LEGALINFO_URL}|" -i ./browser/app/profile/firefox.js
 
     # Sanitize lists
     local plugin_file
@@ -393,8 +394,8 @@ configure()
     # Disable activity-stream anti-features.
     # These are not condensed into a single sed script so that it
     # fails on individual commands that didn't change the source
-    local activity_stream=browser/components/newtab/lib/ActivityStream.sys.mjs
-    sed '/^const DEFAULT_SITES/,/^])\;/c const DEFAULT_SITES = new Map\([[""]]\);' -i browser/components/newtab/lib/DefaultSites.sys.mjs
+    local activity_stream=browser/extensions/newtab/lib/ActivityStream.sys.mjs
+    sed '/^const DEFAULT_SITES/,/^])\;/c const DEFAULT_SITES = new Map\([[""]]\);' -i browser/extensions/newtab/lib/DefaultSites.sys.mjs
     sed '/"showSponsored"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/  "telemetry"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/"section\.highlights\.includePocket"/,/value/s/value: true/value: false/' -i $activity_stream
@@ -405,11 +406,10 @@ configure()
     sed '/"telemetry\.structuredIngestion\.endpoint"/,/value/s/value: .*/value: "",/' -i $activity_stream
     sed '/name: "telemetry"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/name: "system\.topstories"/,/},/s/.*!!locales.*/false/' -i $activity_stream
-    sed 's/Ubuntu, //' -i browser/components/newtab/css/activity-stream*.css
 
-    sed '/^]$/d' -i browser/components/newtab/data/content/tippytop/top_sites.json
-    sed 's/}$/},/' -i browser/components/newtab/data/content/tippytop/top_sites.json
-    cat << EOF >> browser/components/newtab/data/content/tippytop/top_sites.json
+    sed '/^]$/d' -i browser/components/topsites/content/tippytop/top_sites.json
+    sed 's/}$/},/' -i browser/components/topsites/content/tippytop/top_sites.json
+    cat << EOF >> browser/components/topsites/content/tippytop/top_sites.json
 {
   "domains": ["gnu.org"],
   "image_url": "images/gnu.png",
@@ -505,8 +505,8 @@ EOF
 }
 EOF
 
-    cp "${DATADIR}"/newtab/*.ico browser/components/newtab/data/content/tippytop/favicons/
-    cp "${DATADIR}"/newtab/*.png browser/components/newtab/data/content/tippytop/images/
+    cp "${DATADIR}"/newtab/*.ico browser/components/topsites/content/tippytop/favicons/
+    cp "${DATADIR}"/newtab/*.png browser/components/topsites/content/tippytop/images/
 
     # IceCat menu l10n
     /bin/sed '/appmenuitem-settings/,+1s/\(.*.label = \)\(.*\)/\1\2\nappmenuitem-icecat-settings =\n\1IceCat \2/' -i ./l10n/*/browser/browser/appmenu.ftl ./browser/locales/en-US/browser/appmenu.ftl
@@ -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
@@ -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
@@ -632,8 +622,10 @@ apply_branding()
 
 apply_batch_branding()
 {
-    find . -depth | grep -i fennec  | rename_files -e s/fennec/icecatmobile/g -e s/Fennec/IceCatMobile/g
-    find . -depth | grep -i firefox | rename_files -e s/firefox/icecat/g -e s/Firefox/IceCat/g
+    find . -depth | grep -i fennec |
+        rename_files -e s/fennec/icecatmobile/g -e s/Fennec/IceCatMobile/g
+    find . -depth | grep -i firefox |
+        rename_files -e s/firefox/icecat/g -e s/Firefox/IceCat/g
 
     echo "Running batch rebranding (this will take a while)"
     local sed_script="
@@ -672,7 +664,9 @@ s|https://www\\.mozilla\\.org/icecat/?utm_source=synceol|https://www.mozilla.org
 
 s|www\\.gnu\\.org/software/gnuzilla/icecat-help|libreplanet.org/wiki/Group:IceCat/Help|g;
 "
-    find . -type f -not -iregex '.*changelog.*' -not -iregex '.*copyright.*' -not -iregex '.*third_party/rust.*' -execdir /bin/sed --follow-symlinks -i "${sed_script}" '{}' ';'
+    find . -type f -not -iregex '.*changelog.*' -not -iregex '.*copyright.*' \
+         -not -iregex '.*third_party/rust.*' \
+         -execdir /bin/sed --follow-symlinks -i "${sed_script}" '{}' ';'
 
     find l10n -type f -execdir /bin/sed --follow-symlinks -i "s/from GNU/from Mozilla/g" '{}' ';'
 
@@ -713,27 +707,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
+
     # 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
 }
 
diff --git a/tools/process-json-files.py b/tools/process-json-files.py
index d449057..2407fa9 100644
--- a/tools/process-json-files.py
+++ b/tools/process-json-files.py
@@ -148,48 +148,6 @@ class Changes(RemoteSettings):
         return File(cls.OUTPUT_PATH, changes)
 
 
-class SearchConfig(RemoteSettings):
-    JSON_PATHS = (
-        RemoteSettings.DUMPS_PATH_ABSOLUTE /
-        'main/search-config.json',
-    )
-    SCHEMA_PATH = arguments.MAIN_PATH / \
-        'toolkit/components/search/schema/search-config-schema.json'
-    OUTPUT_PATH = JSON_PATHS[0]
-
-    _DUCKDUCKGO_SEARCH_ENGINE_ID = 'ddg <at> search.mozilla.org'
-
-    @classmethod
-    def should_drop_record(cls, search_engine):
-        return search_engine['webExtension']['id'] not in (
-            cls._DUCKDUCKGO_SEARCH_ENGINE_ID, 'wikipedia <at> search.mozilla.org')
-
-    @classmethod
-    def process_record(cls, search_engine):
-        [search_engine.pop(key, None)
-         for key in ['extraParams', 'telemetryId']]
-
-        general_specifier = {}
-        for specifier in search_engine['appliesTo'].copy():
-            if 'application' in specifier:
-                if 'distributions' in specifier['application']:
-                    search_engine['appliesTo'].remove(specifier)
-                    continue
-                specifier['application'].pop('extraParams', None)
-
-            if 'included' in specifier and 'everywhere' in specifier[
-                    'included'] and specifier['included']['everywhere']:
-                general_specifier = specifier
-
-        if not general_specifier:
-            general_specifier = {'included': {'everywhere': True}}
-            search_engine['appliesTo'].insert(0, general_specifier)
-        if search_engine['webExtension']['id'] == cls._DUCKDUCKGO_SEARCH_ENGINE_ID:
-            general_specifier['default'] = 'yes'
-
-        return search_engine
-
-
 class SearchConfigV2(RemoteSettings):
     JSON_PATHS = (
         RemoteSettings.DUMPS_PATH_ABSOLUTE /
@@ -224,20 +182,6 @@ class SearchConfigV2(RemoteSettings):
         return record
 
 
-class SearchConfigOverrides(RemoteSettings):
-    JSON_PATHS = (
-        RemoteSettings.DUMPS_PATH_ABSOLUTE /
-        'main/search-config-overrides.json',
-    )
-    SCHEMA_PATH = arguments.MAIN_PATH / \
-        'toolkit/components/search/schema/search-config-overrides-schema.json'
-    OUTPUT_PATH = JSON_PATHS[0]
-
-    @classmethod
-    def should_drop_record(cls, record):
-        return True
-
-
 class SearchConfigOverridesV2(RemoteSettings):
     JSON_PATHS = (
         RemoteSettings.DUMPS_PATH_ABSOLUTE /
@@ -295,8 +239,7 @@ class TopSites(RemoteSettings):
 
 # To reflect the latest timestamps, Changes class should always come after
 # all other RemoteSettings subclasses
-processors = (SearchConfig,   SearchConfigOverrides,
-              SearchConfigV2, SearchConfigOverridesV2,
+processors = (SearchConfigV2, SearchConfigOverridesV2,
               Changes)
 
 for processor in processors:
-- 
2.51.0





Information forwarded to bug-gnuzilla <at> gnu.org:
bug#79355; Package gnuzilla. (Wed, 03 Sep 2025 14:22:02 GMT) Full text and rfc822 format available.

Message #23 received at 79355 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim <at> guixotic.coop>
To: 79355 <at> debbugs.gnu.org
Cc: Maxim Cournoyer <maxim <at> guixotic.coop>
Subject: [PATCH v4] Update to 140.2.0-1.
Date: Wed,  3 Sep 2025 23:20:18 +0900
* 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.
* tools/process-json-files.py (SearchConfig)
(SearchConfigOverrides): Delete classes.
(processors): De-register them.
* data/patches/fix-install.patch: New file.
---
Fixes L10N_REV and renames fix-install.patch.

 data/patches/fix-install.patch                | 14 +++++
 data/patches/hide-firefox-view-button.patch   | 18 +++---
 .../hide-submit-feedback-menu-item.patch      | 12 ++--
 data/patches/icecat-about-dialog.patch        | 23 ++++---
 data/patches/moz-configure-changes.patch      | 33 ++++++++--
 makeicecat                                    | 63 +++++++------------
 tools/process-json-files.py                   | 59 +----------------
 7 files changed, 95 insertions(+), 127 deletions(-)
 create mode 100644 data/patches/fix-install.patch

diff --git a/data/patches/fix-install.patch b/data/patches/fix-install.patch
new file mode 100644
index 0000000..b62d36f
--- /dev/null
+++ b/data/patches/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
diff --git a/data/patches/hide-firefox-view-button.patch b/data/patches/hide-firefox-view-button.patch
index ef24a34..52bad1c 100644
--- a/data/patches/hide-firefox-view-button.patch
+++ b/data/patches/hide-firefox-view-button.patch
@@ -1,10 +1,10 @@
---- a/browser/base/content/navigator-toolbox.inc.xhtml
-+++ b/browser/base/content/navigator-toolbox.inc.xhtml
-@@ -43,6 +43,7 @@
-                          oncommand="FirefoxViewHandler.openTab();"
-                          onmousedown="FirefoxViewHandler.openToolbarMouseEvent(event);"
-                          cui-areatype="toolbar"
-+                         hidden="true"
-                          removable="true"/>
+--- a/browser/base/content/navigator-toolbox.inc.xhtml	2025-08-12 02:31:44.000000000 +0900
++++ b/browser/base/content/navigator-toolbox.inc.xhtml	2025-08-26 21:10:15.709368257 +0900
+@@ -41,6 +41,7 @@
+                        role="button"
+                        aria-pressed="false"
+                        cui-areatype="toolbar"
++                       hidden="true"
+                        removable="true"/>
  
-           <tabs id="tabbrowser-tabs"
+         <tabs id="tabbrowser-tabs"
diff --git a/data/patches/hide-submit-feedback-menu-item.patch b/data/patches/hide-submit-feedback-menu-item.patch
index 402ba31..5278da7 100644
--- a/data/patches/hide-submit-feedback-menu-item.patch
+++ b/data/patches/hide-submit-feedback-menu-item.patch
@@ -1,10 +1,10 @@
---- a/browser/base/content/browser-menubar.inc
-+++ b/browser/base/content/browser-menubar.inc
-@@ -465,6 +465,7 @@
-                           hidden="true"
-                           appmenu-data-l10n-id="menu-report-broken-site"/>
+--- a/browser/base/content/browser-menubar.inc	2025-08-26 21:16:57.929903122 +0900
++++ b/browser/base/content/browser-menubar.inc	2025-08-26 21:17:09.257918204 +0900
+@@ -431,6 +431,7 @@
+                           disabled="true"
+                           appmenu-data-l10n-id="appmenuitem-report-broken-site"/>
                  <menuitem id="feedbackPage"
 +                          hidden="true"
-                           oncommand="openFeedbackPage()"
                            data-l10n-id="menu-help-share-ideas"
                            appmenu-data-l10n-id="appmenu-help-share-ideas"/>
+                 <menuitem id="helpSafeMode"
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
@@ -1,16 +1,16 @@
---- a/browser/base/content/aboutDialog.xhtml
-+++ b/browser/base/content/aboutDialog.xhtml
-@@ -148,7 +148,6 @@
+--- a/browser/base/content/aboutDialog.xhtml	2025-08-26 21:23:08.866394736 +0900
++++ b/browser/base/content/aboutDialog.xhtml	2025-08-26 21:23:19.986408921 +0900
+@@ -139,7 +139,6 @@
        <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" useoriginprincipal="true" href="about:rights" data-l10n-id="bottomLinks-rights"/>
--        <label is="text-link" class="bottom-link" href="https://www.mozilla.org/privacy/?utm_source=firefox-browser&#38;utm_medium=firefox-desktop&#38;utm_campaign=about-dialog" data-l10n-id="bottomLinks-privacy"/>
+         <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://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>
      </vbox>
---- 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) {
diff --git a/data/patches/moz-configure-changes.patch b/data/patches/moz-configure-changes.patch
index 6f0525e..5745b38 100644
--- a/data/patches/moz-configure-changes.patch
+++ b/data/patches/moz-configure-changes.patch
@@ -1,18 +1,41 @@
+diff --git a/browser/moz.configure b/browser/moz.configure
+index e8b401a7dfb2..d5b3117ce3d8 100644
 --- 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")
+diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
+index 193272588caa..da8a729548c8 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -991,7 +991,7 @@ set_config("MOZ_BUILD_APP", build_project)
+ set_define("MOZ_BUILD_APP", build_project)
+ 
+ 
+-option(env="MOZILLA_OFFICIAL", help="Build an official release")
++option(env="MOZILLA_OFFICIAL", help="Build an official release", default=False)
+ 
  
- with only_when(target_has_linux_kernel & compile_environment):
-     option(env="MOZ_NO_PIE_COMPAT", help="Enable non-PIE wrapper")
+ @depends("MOZILLA_OFFICIAL")
diff --git a/makeicecat b/makeicecat
index fc0bb76..552a41e 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
+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=a0c1ffda4ed19c0399e4175610361179e09829de
 readonly L10N_CMP_URL=https://github.com/mozilla/compare-locales
 readonly L10N_CMP_REV=RELEASE_9_0_4
 readonly L10N_PREFS_DIR=browser/chrome/browser/preferences
@@ -377,7 +378,7 @@ configure()
     sed '/"datareporting\.healthreport\.uploadEnabled"/s/true/false/' -i modules/libpref/init/all.js
 
     # Custom privacy statement link
-    sed "s|https://www\\.mozilla\\.org/legal/privacy/|https://${LEGALINFO_URL}|" -i ./browser/app/profile/firefox.js ./toolkit/content/aboutRights.xhtml
+    sed "s|https://www\\.mozilla\\.org/legal/privacy/|https://${LEGALINFO_URL}|" -i ./browser/app/profile/firefox.js
 
     # Sanitize lists
     local plugin_file
@@ -393,8 +394,8 @@ configure()
     # Disable activity-stream anti-features.
     # These are not condensed into a single sed script so that it
     # fails on individual commands that didn't change the source
-    local activity_stream=browser/components/newtab/lib/ActivityStream.sys.mjs
-    sed '/^const DEFAULT_SITES/,/^])\;/c const DEFAULT_SITES = new Map\([[""]]\);' -i browser/components/newtab/lib/DefaultSites.sys.mjs
+    local activity_stream=browser/extensions/newtab/lib/ActivityStream.sys.mjs
+    sed '/^const DEFAULT_SITES/,/^])\;/c const DEFAULT_SITES = new Map\([[""]]\);' -i browser/extensions/newtab/lib/DefaultSites.sys.mjs
     sed '/"showSponsored"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/  "telemetry"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/"section\.highlights\.includePocket"/,/value/s/value: true/value: false/' -i $activity_stream
@@ -405,11 +406,10 @@ configure()
     sed '/"telemetry\.structuredIngestion\.endpoint"/,/value/s/value: .*/value: "",/' -i $activity_stream
     sed '/name: "telemetry"/,/value/s/value: true/value: false/' -i $activity_stream
     sed '/name: "system\.topstories"/,/},/s/.*!!locales.*/false/' -i $activity_stream
-    sed 's/Ubuntu, //' -i browser/components/newtab/css/activity-stream*.css
 
-    sed '/^]$/d' -i browser/components/newtab/data/content/tippytop/top_sites.json
-    sed 's/}$/},/' -i browser/components/newtab/data/content/tippytop/top_sites.json
-    cat << EOF >> browser/components/newtab/data/content/tippytop/top_sites.json
+    sed '/^]$/d' -i browser/components/topsites/content/tippytop/top_sites.json
+    sed 's/}$/},/' -i browser/components/topsites/content/tippytop/top_sites.json
+    cat << EOF >> browser/components/topsites/content/tippytop/top_sites.json
 {
   "domains": ["gnu.org"],
   "image_url": "images/gnu.png",
@@ -505,8 +505,8 @@ EOF
 }
 EOF
 
-    cp "${DATADIR}"/newtab/*.ico browser/components/newtab/data/content/tippytop/favicons/
-    cp "${DATADIR}"/newtab/*.png browser/components/newtab/data/content/tippytop/images/
+    cp "${DATADIR}"/newtab/*.ico browser/components/topsites/content/tippytop/favicons/
+    cp "${DATADIR}"/newtab/*.png browser/components/topsites/content/tippytop/images/
 
     # IceCat menu l10n
     /bin/sed '/appmenuitem-settings/,+1s/\(.*.label = \)\(.*\)/\1\2\nappmenuitem-icecat-settings =\n\1IceCat \2/' -i ./l10n/*/browser/browser/appmenu.ftl ./browser/locales/en-US/browser/appmenu.ftl
@@ -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
@@ -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
@@ -632,8 +622,10 @@ apply_branding()
 
 apply_batch_branding()
 {
-    find . -depth | grep -i fennec  | rename_files -e s/fennec/icecatmobile/g -e s/Fennec/IceCatMobile/g
-    find . -depth | grep -i firefox | rename_files -e s/firefox/icecat/g -e s/Firefox/IceCat/g
+    find . -depth | grep -i fennec |
+        rename_files -e s/fennec/icecatmobile/g -e s/Fennec/IceCatMobile/g
+    find . -depth | grep -i firefox |
+        rename_files -e s/firefox/icecat/g -e s/Firefox/IceCat/g
 
     echo "Running batch rebranding (this will take a while)"
     local sed_script="
@@ -672,7 +664,9 @@ s|https://www\\.mozilla\\.org/icecat/?utm_source=synceol|https://www.mozilla.org
 
 s|www\\.gnu\\.org/software/gnuzilla/icecat-help|libreplanet.org/wiki/Group:IceCat/Help|g;
 "
-    find . -type f -not -iregex '.*changelog.*' -not -iregex '.*copyright.*' -not -iregex '.*third_party/rust.*' -execdir /bin/sed --follow-symlinks -i "${sed_script}" '{}' ';'
+    find . -type f -not -iregex '.*changelog.*' -not -iregex '.*copyright.*' \
+         -not -iregex '.*third_party/rust.*' \
+         -execdir /bin/sed --follow-symlinks -i "${sed_script}" '{}' ';'
 
     find l10n -type f -execdir /bin/sed --follow-symlinks -i "s/from GNU/from Mozilla/g" '{}' ';'
 
@@ -713,27 +707,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
+
     # 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
 }
 
diff --git a/tools/process-json-files.py b/tools/process-json-files.py
index d449057..2407fa9 100644
--- a/tools/process-json-files.py
+++ b/tools/process-json-files.py
@@ -148,48 +148,6 @@ class Changes(RemoteSettings):
         return File(cls.OUTPUT_PATH, changes)
 
 
-class SearchConfig(RemoteSettings):
-    JSON_PATHS = (
-        RemoteSettings.DUMPS_PATH_ABSOLUTE /
-        'main/search-config.json',
-    )
-    SCHEMA_PATH = arguments.MAIN_PATH / \
-        'toolkit/components/search/schema/search-config-schema.json'
-    OUTPUT_PATH = JSON_PATHS[0]
-
-    _DUCKDUCKGO_SEARCH_ENGINE_ID = 'ddg <at> search.mozilla.org'
-
-    @classmethod
-    def should_drop_record(cls, search_engine):
-        return search_engine['webExtension']['id'] not in (
-            cls._DUCKDUCKGO_SEARCH_ENGINE_ID, 'wikipedia <at> search.mozilla.org')
-
-    @classmethod
-    def process_record(cls, search_engine):
-        [search_engine.pop(key, None)
-         for key in ['extraParams', 'telemetryId']]
-
-        general_specifier = {}
-        for specifier in search_engine['appliesTo'].copy():
-            if 'application' in specifier:
-                if 'distributions' in specifier['application']:
-                    search_engine['appliesTo'].remove(specifier)
-                    continue
-                specifier['application'].pop('extraParams', None)
-
-            if 'included' in specifier and 'everywhere' in specifier[
-                    'included'] and specifier['included']['everywhere']:
-                general_specifier = specifier
-
-        if not general_specifier:
-            general_specifier = {'included': {'everywhere': True}}
-            search_engine['appliesTo'].insert(0, general_specifier)
-        if search_engine['webExtension']['id'] == cls._DUCKDUCKGO_SEARCH_ENGINE_ID:
-            general_specifier['default'] = 'yes'
-
-        return search_engine
-
-
 class SearchConfigV2(RemoteSettings):
     JSON_PATHS = (
         RemoteSettings.DUMPS_PATH_ABSOLUTE /
@@ -224,20 +182,6 @@ class SearchConfigV2(RemoteSettings):
         return record
 
 
-class SearchConfigOverrides(RemoteSettings):
-    JSON_PATHS = (
-        RemoteSettings.DUMPS_PATH_ABSOLUTE /
-        'main/search-config-overrides.json',
-    )
-    SCHEMA_PATH = arguments.MAIN_PATH / \
-        'toolkit/components/search/schema/search-config-overrides-schema.json'
-    OUTPUT_PATH = JSON_PATHS[0]
-
-    @classmethod
-    def should_drop_record(cls, record):
-        return True
-
-
 class SearchConfigOverridesV2(RemoteSettings):
     JSON_PATHS = (
         RemoteSettings.DUMPS_PATH_ABSOLUTE /
@@ -295,8 +239,7 @@ class TopSites(RemoteSettings):
 
 # To reflect the latest timestamps, Changes class should always come after
 # all other RemoteSettings subclasses
-processors = (SearchConfig,   SearchConfigOverrides,
-              SearchConfigV2, SearchConfigOverridesV2,
+processors = (SearchConfigV2, SearchConfigOverridesV2,
               Changes)
 
 for processor in processors:
-- 
2.51.0





This bug report was last modified 3 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.