From efe50fe9820731186324f7785eecac6d7fa75847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tatj=C3=A1na=20Ilona=20Czetfalvy?= Date: Tue, 10 Feb 2026 10:23:49 +0100 Subject: [PATCH 1/4] Initial Freedove Commit --- docs/freedove-customizations.md | 83 +++++++++++++ modules/libpref/init/StaticPrefList.yaml | 4 +- modules/libpref/init/all.js | 2 +- mozconfig.freedove-linux | 38 ++++++ mozconfig.freedove-win64 | 29 +++++ netwerk/dns/effective_tld_names.dat | 22 ++++ security/nss/lib/ckfw/builtins/certdata.txt | 115 ++++++++++++++++++ toolkit/locales/l10n.mk | 28 ++++- .../update/updater/freedove_primary.der | Bin 0 -> 1291 bytes .../update/updater/freedove_secondary.der | Bin 0 -> 1291 bytes 10 files changed, 317 insertions(+), 4 deletions(-) create mode 100644 docs/freedove-customizations.md create mode 100644 mozconfig.freedove-linux create mode 100644 mozconfig.freedove-win64 create mode 100644 toolkit/mozapps/update/updater/freedove_primary.der create mode 100644 toolkit/mozapps/update/updater/freedove_secondary.der diff --git a/docs/freedove-customizations.md b/docs/freedove-customizations.md new file mode 100644 index 000000000000..9562f692a42a --- /dev/null +++ b/docs/freedove-customizations.md @@ -0,0 +1,83 @@ +# FreeDove Customizations + +This page documents the FreeDove-specific changes for DNS/TRR, public suffixes, +branding, and NSS built-in root certificates. + +## DNS / DoH-only (TRR) + +Defaults are set in: +- `modules/libpref/init/StaticPrefList.yaml` + - `network.trr.mode = 3` (TRR-only) + - `network.trr.default_provider_uri = https://doves.wcs.cet.is/dns-query` +- `modules/libpref/init/all.js` + - `network.trr.uri = https://doves.wcs.cet.is/dns-query` + +Rebuild after changes and test with a fresh profile. In the browser: +`about:config` and `about:networking#dns` should show TRR active. + +## Public Suffixes + +Custom suffixes are added in: +- `netwerk/dns/effective_tld_names.dat` + - FreeDove block under the PRIVATE DOMAINS section: + - `cet` + - `cet.is` + +There is a patcher to re-apply these after upstream updates: +- `tools/freedove/psl/patch_public_suffixes.py` + - Run: `python tools/freedove/psl/patch_public_suffixes.py netwerk/dns/effective_tld_names.dat` + +## Branding + +Branding assets live in: +- `browser/branding/freedove/` (copied from `unofficial`) + +Key branding strings: +- `browser/branding/freedove/configure.sh` +- `browser/branding/freedove/locales/en-US/brand.ftl` +- `browser/branding/freedove/locales/en-US/brand.properties` +- `browser/branding/freedove/branding.nsi` +- `browser/branding/freedove/pref/firefox-branding.js` + +The build selects branding via mozconfig: +- `mozconfig.freedove-win64` + - `ac_add_options --with-branding=browser/branding/freedove` + +Icon generation from SVG: +- Source: `logo.svg` and `wordmark.svg` at repo root +- Generator: `tools/freedove/branding/generate_icons.py` + - Example: + - `python tools/freedove/branding/generate_icons.py --logo logo.svg --inkscape "C:\Program Files\Inkscape\bin\inkscape.exe"` + +## NSS Built-in Root CA + +Root store file: +- `security/nss/lib/ckfw/builtins/certdata.txt` + +FreeDove root CA is inserted from: +- `../wcs-root-ca.crt` (PEM) +- Script: `tools/freedove/certs/insert_root_ca.py` + - Run: + - `python tools/freedove/certs/insert_root_ca.py --cert ..\wcs-root-ca.crt --label "Custodial Root of the Willing Citizens"` + +Validation helper: +- `tools/freedove/certs/check_certdata.py` + - Ensures each cert has a matching trust object. + +Important notes: +- `certdata.txt` must use LF line endings (no CRLF). +- There must be a blank line between certificate and trust blocks. + +## Build Notes + +Always set the FreeDove mozconfig in PowerShell: + +``` +$env:MOZCONFIG = "$PWD\mozconfig.freedove-win64" +``` + +If branding or configure-time flags change, do: +``` +.\mach clobber +.\mach build +``` diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml index b34b34d6f945..d19290d8139b 100644 --- a/modules/libpref/init/StaticPrefList.yaml +++ b/modules/libpref/init/StaticPrefList.yaml @@ -14844,13 +14844,13 @@ # 4 - reserved/off, 5 off by choice - name: network.trr.mode type: RelaxedAtomicUint32 - value: 0 + value: 3 mirror: always # Default global TRR provider - name: network.trr.default_provider_uri type: String - value: "https://mozilla.cloudflare-dns.com/dns-query" + value: "https://doves.wcs.cet.is/dns-query" mirror: never # If true, retry TRR for recoverable errors once. diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 2c31515fc698..88c322c3d61a 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -3286,7 +3286,7 @@ pref("network.connectivity-service.DNS_HTTPS.domain", "cloudflare-dns.com"); pref("network.connectivity-service.IPv4.url", "http://detectportal.firefox.com/success.txt?ipv4"); pref("network.connectivity-service.IPv6.url", "http://detectportal.firefox.com/success.txt?ipv6"); -pref("network.trr.uri", ""); +pref("network.trr.uri", "https://doves.wcs.cet.is/dns-query"); // credentials to pass to DOH end-point pref("network.trr.credentials", ""); pref("network.trr.custom_uri", ""); diff --git a/mozconfig.freedove-linux b/mozconfig.freedove-linux new file mode 100644 index 000000000000..a70a7f4ba830 --- /dev/null +++ b/mozconfig.freedove-linux @@ -0,0 +1,38 @@ +# FreeDove Linux build config (build in $HOME, publish elsewhere) + +ac_add_options --enable-project=browser + +# App identity +ac_add_options --with-app-name=freedove +ac_add_options --with-app-basename=FreeDove + +# Branding +ac_add_options --with-branding=browser/branding/freedove +ac_add_options --disable-official-branding +ac_add_options --disable-release +ac_add_options --enable-ui-locale=cet + +# Update channel +ac_add_options --enable-update-channel=freedove-release + +# Locales checkout (keep it on NTFS if you like; it's read-only input) +ac_add_options --with-l10n-base=$PWD/../freedove-locales + +# Don't let merge output touch your l10n source tree +unset REAL_LOCALE_MERGEDIR +unset LOCALE_MERGEDIR + +export MOZ_CHROME_MULTILOCALE="cet de en-GB es-ES fr hu ja ko pt-PT ru zh-CN" + +# Build output in Linux home (EXT4), not /mnt/c, unless overridden by env MOZ_OBJDIR. +if [ -z "$MOZ_OBJDIR" ]; then + mk_add_options MOZ_OBJDIR=$HOME/obj-freedove-linux +fi +mk_add_options MOZ_PARALLEL_BUILD_COUNT=8 + +# Updater identity and channels +export MAR_CHANNEL_ID=freedove-release +export ACCEPTED_MAR_CHANNEL_IDS=freedove-release + +# Static update host +export MOZ_APPUPDATE_HOST=update.freedove.cet.is diff --git a/mozconfig.freedove-win64 b/mozconfig.freedove-win64 new file mode 100644 index 000000000000..435bc8a62ce0 --- /dev/null +++ b/mozconfig.freedove-win64 @@ -0,0 +1,29 @@ +# FreeDove Windows (POC) build config +ac_add_options --enable-project=browser +ac_add_options --with-app-name=freedove +ac_add_options --with-app-basename=FreeDove +ac_add_options --enable-update-channel=freedove-release +ac_add_options --disable-lto +ac_add_options --disable-artifact-builds +ac_add_options --with-branding=browser/branding/freedove +ac_add_options --disable-official-branding +ac_add_options --disable-release +ac_add_options --enable-nss-mar +ac_add_options --enable-ui-locale=cet +ac_add_options --with-l10n-base=C:/Project/Systems/Digital/Software/FreeDove/freedove-locales +unset REAL_LOCALE_MERGEDIR +unset LOCALE_MERGEDIR +export MOZ_CHROME_MULTILOCALE="cet de en-GB es-ES fr hu ja ko pt-PT ru zh-CN" + +# Use a dedicated objdir for FreeDove builds unless overridden by env MOZ_OBJDIR. +if [ -z "$MOZ_OBJDIR" ]; then + mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-freedove +fi +mk_add_options MOZ_PARALLEL_BUILD_COUNT=8 + +# Updater identity and channels +export MAR_CHANNEL_ID=freedove-release +export ACCEPTED_MAR_CHANNEL_IDS=freedove-release + +# Static update host +export MOZ_APPUPDATE_HOST=update.freedove.cet.is diff --git a/netwerk/dns/effective_tld_names.dat b/netwerk/dns/effective_tld_names.dat index cb58bf9f3462..b95ce5807b56 100644 --- a/netwerk/dns/effective_tld_names.dat +++ b/netwerk/dns/effective_tld_names.dat @@ -11275,6 +11275,28 @@ ltd.ua // 611 blockchain domain name system : https://sixone.one/ 611.to +// FreeDove (custom internal TLDs) +cet +cet.is +fur +bbs +chan +cyb +dyn +epic +geek +gopher +indy +libre +neo +null +o +opennic.glue +oss +oz +parody +pirate + // A2 Hosting // Submitted by Tyler Hall a2hosted.com diff --git a/security/nss/lib/ckfw/builtins/certdata.txt b/security/nss/lib/ckfw/builtins/certdata.txt index be24d9501c2d..03213cae4652 100644 --- a/security/nss/lib/ckfw/builtins/certdata.txt +++ b/security/nss/lib/ckfw/builtins/certdata.txt @@ -26755,3 +26755,118 @@ CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE + +# +# FreeDove built-in root +# +# Certificate "Custodial Root of the Willing Citizens" +CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Custodial Root of the Willing Citizens" +CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509 +CKA_SUBJECT MULTILINE_OCTAL +\060\201\216\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\042\060\040\006\003\125\004\012\023\031\127\151\154\154\151 +\156\147\040\103\151\164\151\172\145\156\163\047\040\123\157\143 +\151\145\164\171\061\052\060\050\006\003\125\004\013\023\041\127 +\151\154\154\151\156\147\040\103\151\164\151\172\145\156\163\047 +\040\124\162\165\163\164\040\101\165\164\150\157\162\151\164\171 +\061\057\060\055\006\003\125\004\003\023\046\103\165\163\164\157 +\144\151\141\154\040\122\157\157\164\040\157\146\040\164\150\145 +\040\127\151\154\154\151\156\147\040\103\151\164\151\172\145\156 +\163 +END +CKA_ID UTF8 "freedove-wcs-root" +CKA_ISSUER MULTILINE_OCTAL +\060\201\216\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\042\060\040\006\003\125\004\012\023\031\127\151\154\154\151 +\156\147\040\103\151\164\151\172\145\156\163\047\040\123\157\143 +\151\145\164\171\061\052\060\050\006\003\125\004\013\023\041\127 +\151\154\154\151\156\147\040\103\151\164\151\172\145\156\163\047 +\040\124\162\165\163\164\040\101\165\164\150\157\162\151\164\171 +\061\057\060\055\006\003\125\004\003\023\046\103\165\163\164\157 +\144\151\141\154\040\122\157\157\164\040\157\146\040\164\150\145 +\040\127\151\154\154\151\156\147\040\103\151\164\151\172\145\156 +\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\202\344\207\330\022\366\065\226\151\364\130\071\304 +\350\317\056 +END +CKA_VALUE MULTILINE_OCTAL +\060\202\002\143\060\202\002\012\240\003\002\001\002\002\021\000 +\202\344\207\330\022\366\065\226\151\364\130\071\304\350\317\056 +\060\012\006\010\052\206\110\316\075\004\003\002\060\201\216\061 +\013\060\011\006\003\125\004\006\023\002\104\105\061\042\060\040 +\006\003\125\004\012\023\031\127\151\154\154\151\156\147\040\103 +\151\164\151\172\145\156\163\047\040\123\157\143\151\145\164\171 +\061\052\060\050\006\003\125\004\013\023\041\127\151\154\154\151 +\156\147\040\103\151\164\151\172\145\156\163\047\040\124\162\165 +\163\164\040\101\165\164\150\157\162\151\164\171\061\057\060\055 +\006\003\125\004\003\023\046\103\165\163\164\157\144\151\141\154 +\040\122\157\157\164\040\157\146\040\164\150\145\040\127\151\154 +\154\151\156\147\040\103\151\164\151\172\145\156\163\060\040\027 +\015\062\065\060\071\060\064\061\071\061\067\064\060\132\030\017 +\062\060\065\065\060\070\062\070\061\071\061\067\064\060\132\060 +\201\216\061\013\060\011\006\003\125\004\006\023\002\104\105\061 +\042\060\040\006\003\125\004\012\023\031\127\151\154\154\151\156 +\147\040\103\151\164\151\172\145\156\163\047\040\123\157\143\151 +\145\164\171\061\052\060\050\006\003\125\004\013\023\041\127\151 +\154\154\151\156\147\040\103\151\164\151\172\145\156\163\047\040 +\124\162\165\163\164\040\101\165\164\150\157\162\151\164\171\061 +\057\060\055\006\003\125\004\003\023\046\103\165\163\164\157\144 +\151\141\154\040\122\157\157\164\040\157\146\040\164\150\145\040 +\127\151\154\154\151\156\147\040\103\151\164\151\172\145\156\163 +\060\131\060\023\006\007\052\206\110\316\075\002\001\006\010\052 +\206\110\316\075\003\001\007\003\102\000\004\146\126\140\120\002 +\366\301\367\330\240\222\364\346\130\021\354\035\102\014\016\347 +\131\104\372\124\314\064\031\260\370\105\116\007\065\322\321\265 +\313\214\111\101\220\177\004\020\340\002\355\265\210\322\257\307 +\152\154\347\207\326\336\120\127\103\176\314\243\105\060\103\060 +\016\006\003\125\035\017\001\001\377\004\004\003\002\001\006\060 +\022\006\003\125\035\023\001\001\377\004\010\060\006\001\001\377 +\002\001\001\060\035\006\003\125\035\016\004\026\004\024\215\325 +\337\266\066\115\306\230\023\051\022\054\137\016\302\331\020\352 +\046\260\060\012\006\010\052\206\110\316\075\004\003\002\003\107 +\000\060\104\002\040\156\340\261\113\333\375\306\135\077\175\232 +\132\002\256\057\327\017\242\045\070\172\233\344\056\226\172\361 +\065\020\302\264\074\002\040\167\156\177\377\317\362\037\337\372 +\334\155\003\342\000\005\065\203\040\256\131\214\266\011\216\126 +\257\217\274\024\224\365\121 +END + +# Trust for "Custodial Root of the Willing Citizens" +CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST +CKA_TOKEN CK_BBOOL CK_TRUE +CKA_PRIVATE CK_BBOOL CK_FALSE +CKA_MODIFIABLE CK_BBOOL CK_FALSE +CKA_LABEL UTF8 "Custodial Root of the Willing Citizens" +CKA_CERT_SHA1_HASH MULTILINE_OCTAL +\023\317\151\365\021\000\164\211\061\073\163\336\377\160\144\200 +\027\261\066\227 +END +CKA_CERT_MD5_HASH MULTILINE_OCTAL +\373\343\171\017\154\355\372\235\101\257\255\357\317\251\374\156 +END +CKA_ISSUER MULTILINE_OCTAL +\060\201\216\061\013\060\011\006\003\125\004\006\023\002\104\105 +\061\042\060\040\006\003\125\004\012\023\031\127\151\154\154\151 +\156\147\040\103\151\164\151\172\145\156\163\047\040\123\157\143 +\151\145\164\171\061\052\060\050\006\003\125\004\013\023\041\127 +\151\154\154\151\156\147\040\103\151\164\151\172\145\156\163\047 +\040\124\162\165\163\164\040\101\165\164\150\157\162\151\164\171 +\061\057\060\055\006\003\125\004\003\023\046\103\165\163\164\157 +\144\151\141\154\040\122\157\157\164\040\157\146\040\164\150\145 +\040\127\151\154\154\151\156\147\040\103\151\164\151\172\145\156 +\163 +END +CKA_SERIAL_NUMBER MULTILINE_OCTAL +\002\021\000\202\344\207\330\022\366\065\226\151\364\130\071\304 +\350\317\056 +END +CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR +CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST +CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE diff --git a/toolkit/locales/l10n.mk b/toolkit/locales/l10n.mk index 3f41b29a8753..2631bdc768b5 100644 --- a/toolkit/locales/l10n.mk +++ b/toolkit/locales/l10n.mk @@ -48,7 +48,16 @@ ACDEFINES += \ # export some global defines for l10n repacks BASE_MERGE:=$(CURDIR)/merge-dir -export REAL_LOCALE_MERGEDIR=$(BASE_MERGE)/$(AB_CD) + +# config/config.mk defines a default for REAL_LOCALE_MERGEDIR that points at +# $(L10NBASEDIR)/$(AB_CD). For our workflow, L10NBASEDIR is a source checkout +# and must never be clobbered. When REAL_LOCALE_MERGEDIR wasn't explicitly set +# (env/command line), force it to live under the objdir's merge-dir. +ifeq ($(origin REAL_LOCALE_MERGEDIR),file) +export REAL_LOCALE_MERGEDIR := $(BASE_MERGE)/$(AB_CD) +else +export REAL_LOCALE_MERGEDIR ?= $(BASE_MERGE)/$(AB_CD) +endif # is an l10n repack step: export IS_LANGUAGE_REPACK # is a language pack: @@ -118,6 +127,23 @@ GIT ?= git merge-%: IS_LANGUAGE_REPACK=1 merge-%: AB_CD=$* merge-%: + @real='$(patsubst %/,%,$(REAL_LOCALE_MERGEDIR))'; \ + base='$(patsubst %/,%,$(L10NBASEDIR))'; \ + if test -z "$$real"; then \ + echo "ERROR: REAL_LOCALE_MERGEDIR is empty; refusing to clobber."; \ + echo " AB_CD=$(AB_CD)"; \ + exit 1; \ + fi; \ + if test -n "$$base"; then \ + case "$$real" in \ + "$$base"|"$${base}/"*) \ + echo "ERROR: REAL_LOCALE_MERGEDIR points inside L10NBASEDIR; refusing to clobber."; \ + echo " REAL_LOCALE_MERGEDIR=$$real"; \ + echo " L10NBASEDIR=$$base"; \ + echo "Fix: unset REAL_LOCALE_MERGEDIR or set it to a path under your objdir (e.g. obj-*/browser/locales/merge-dir/)."; \ + exit 1 ;; \ + esac; \ + fi $(RM) -rf $(REAL_LOCALE_MERGEDIR) $(PYTHON3) -m moz.l10n.bin.build --config $(srcdir)/l10n.toml --base $(L10NBASEDIR) --target $(BASE_MERGE) --locales $(AB_CD) # Hunspell dictionaries are interesting, as we don't ship the en-US diff --git a/toolkit/mozapps/update/updater/freedove_primary.der b/toolkit/mozapps/update/updater/freedove_primary.der new file mode 100644 index 0000000000000000000000000000000000000000..74ad99e2395d01016990d87613585ec6e88282be GIT binary patch literal 1291 zcmXqLVr4gIVtT)TnTe5!iIw4`dDuGxUN%mxHjlRNyo`+8tPBQ5hJptCY|No7T*4e~ zMX9MS`DLkwvIf#1A!cC_n2>_6V~|2{W_n&`Ub=ytIIoeJfsuisfw7U1v1ODvuQ4*0 zEHj&!l#rdq$jZRn#Kg}4bUqhT6B8rDnzA?H$($$doqV=ZBHWktokX_%au=!KIVYzt z`x)Djp`-tY$w7R|WtAlc4UgHMGb^8MW-eY+lptHZIHl2hl9c4WV3pH-o3bP~3W?+# zWeo53*Gl|d6zb{i)iQst%kPECn~%@Zym!z}qBYGZfg4I)yqv9boy$BD9y_e;@QT&rm06kd+cx96^oNKoit?Lx!)0a=rZ*5!A&bh2TIwsNM#;%1N594?e&z-;e-s#eLZk3Xy{ZA6D zuZnFuukNTO@%4H@(A)4CPkYZrtW}N{<$8Bb>07MlQ?=Pf(t47k`hwAmP0S=pJH4Y)yq{46ZYOzaKF=?Iv_f$4~m!C-rHtTgk(bRomk zz?}0lK3j_^SDb%pwsw=klh7XRXRA%T)`ax$Rw<8*-e1hNy?$f<@i#X={(LADaE&!k zefz7|i?ioQ#7C@giB&9kDkJEhyzF!+@AAcd@+Keb)&8-8#k zt{5E3sr{;%!kNmFRcIo literal 0 HcmV?d00001 diff --git a/toolkit/mozapps/update/updater/freedove_secondary.der b/toolkit/mozapps/update/updater/freedove_secondary.der new file mode 100644 index 0000000000000000000000000000000000000000..74ad99e2395d01016990d87613585ec6e88282be GIT binary patch literal 1291 zcmXqLVr4gIVtT)TnTe5!iIw4`dDuGxUN%mxHjlRNyo`+8tPBQ5hJptCY|No7T*4e~ zMX9MS`DLkwvIf#1A!cC_n2>_6V~|2{W_n&`Ub=ytIIoeJfsuisfw7U1v1ODvuQ4*0 zEHj&!l#rdq$jZRn#Kg}4bUqhT6B8rDnzA?H$($$doqV=ZBHWktokX_%au=!KIVYzt z`x)Djp`-tY$w7R|WtAlc4UgHMGb^8MW-eY+lptHZIHl2hl9c4WV3pH-o3bP~3W?+# zWeo53*Gl|d6zb{i)iQst%kPECn~%@Zym!z}qBYGZfg4I)yqv9boy$BD9y_e;@QT&rm06kd+cx96^oNKoit?Lx!)0a=rZ*5!A&bh2TIwsNM#;%1N594?e&z-;e-s#eLZk3Xy{ZA6D zuZnFuukNTO@%4H@(A)4CPkYZrtW}N{<$8Bb>07MlQ?=Pf(t47k`hwAmP0S=pJH4Y)yq{46ZYOzaKF=?Iv_f$4~m!C-rHtTgk(bRomk zz?}0lK3j_^SDb%pwsw=klh7XRXRA%T)`ax$Rw<8*-e1hNy?$f<@i#X={(LADaE&!k zefz7|i?ioQ#7C@giB&9kDkJEhyzF!+@AAcd@+Keb)&8-8#k zt{5E3sr{;%!kNmFRcIo literal 0 HcmV?d00001 -- 2.45.1.windows.1 From b40a7f2c86835c87e9de5c33c99e479fd6c2df7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tatj=C3=A1na=20Ilona=20Czetfalvy?= Date: Tue, 10 Feb 2026 11:20:54 +0100 Subject: [PATCH 2/4] update gitignore to fix rebase issues --- .gitignore | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 3e4ea43b59a3..60b5dfcc3451 100644 --- a/.gitignore +++ b/.gitignore @@ -394,8 +394,12 @@ toolkit/crashreporter/minidump-analyzer/target/ # Ignore personal preferences files CLAUDE.local.md -.claude/settings.local.json -# Ignore .json.gz (typically profiles) in the root directory -# lint-ignore-next-line: git-only -/*.json.gz +# FreeDove Specific +tools/freedove/ +wordmark.svg +logo.svg +browser/branding/freedove/ +obj-freedove/ +l10n/ +cet-backup/ -- 2.45.1.windows.1 From 27dad874419e82a42f1372ea23da7757e8164b6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tatj=C3=A1na=20Ilona=20Czetfalvy?= Date: Wed, 18 Feb 2026 21:53:31 +0100 Subject: [PATCH 3/4] Stand at first Alpha release, 18.02.2026 --- .gitignore | 5 + browser/app/profile/firefox.js | 3 + browser/base/content/aboutDialog.xhtml | 8 +- browser/components/about/AboutRedirector.cpp | 4 +- .../modules/OnboardingMessageProvider.sys.mjs | 6 +- .../preferences/dialogs/browserLanguages.js | 17 ++- .../preferences/dialogs/languages.js | 9 +- browser/components/preferences/main.js | 38 ++++-- browser/installer/windows/Makefile.in | 1 + browser/locales/all-locales | 1 + browser/locales/generate_ini.py | 5 + browser/locales/l10n.toml | 1 + browser/locales/shipped-locales | 1 + browser/moz.configure | 5 +- building.md | 127 ++++++++++++++++++ config/config.mk | 10 ++ config/rules.mk | 8 ++ mozconfig.freedove-linux | 6 +- mozconfig.freedove-win64 | 2 +- .../7zstub/firefox/SFXSetup.vcxproj | 8 +- other-licenses/7zstub/firefox/setup.ico | Bin 61577 -> 72979 bytes python/mozbuild/mozbuild/jar.py | 23 ++-- .../en-US/toolkit/intl/languageNames.ftl | 1 + toolkit/mozapps/installer/packager.mk | 5 +- .../installer/windows/nsis/makensis.mk | 8 ++ 25 files changed, 251 insertions(+), 51 deletions(-) create mode 100644 building.md diff --git a/.gitignore b/.gitignore index 60b5dfcc3451..6eaf5f459d90 100644 --- a/.gitignore +++ b/.gitignore @@ -403,3 +403,8 @@ browser/branding/freedove/ obj-freedove/ l10n/ cet-backup/ +l10n-build/ +cet-backup/ +browser/locales/ +other-licenses/7zstub/firefox/ +build/ diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index 37ab891b287c..ba3326f8e321 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -800,6 +800,9 @@ pref("browser.urlbar.sports.featureGate", false); // suggestions are turned on. pref("browser.urlbar.suggest.sports", true); +// Force Ceticilian locale +pref("intl.locale.requested", "cet"); + // Timestamp of the time the user last performed a search via the urlbar // so that experiments can target users who have / have not performed // urlbar searches. diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml index c64980810570..e2b8b4fa70c6 100644 --- a/browser/base/content/aboutDialog.xhtml +++ b/browser/base/content/aboutDialog.xhtml @@ -129,8 +129,8 @@