1
0
Fork 0

Adding debian version 140.0-1.

Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
This commit is contained in:
Daniel Baumann 2025-06-25 09:41:39 +02:00
parent 5e9a113729
commit 8baeab6532
Signed by: daniel.baumann
GPG key ID: BCC918A2ABD66424
75 changed files with 20037 additions and 0 deletions

3
debian/browser-dev.links.in vendored Normal file
View file

@ -0,0 +1,3 @@
%if USE_SYSTEM_NSPR
usr/bin/nspr-config usr/lib/@browser@-devel-@GRE_VERSION@/sdk/bin/nspr-config
%endif

4
debian/browser-symbolic.svg.in vendored Normal file
View file

@ -0,0 +1,4 @@
%if 0
# Within dummy preprocessor directive to make the preprocessor happy.
%endif
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><title>newtab-firefox-gry</title><path d="M31.359,14.615h0c-.044-.289-.088-.459-.088-.459s-.113.131-.3.378A10.77,10.77,0,0,0,30.6,12.5a13.846,13.846,0,0,0-.937-2.411,10.048,10.048,0,0,0-.856-1.468q-.176-.263-.359-.51c-.57-.931-1.224-1.5-1.981-2.576a7.806,7.806,0,0,1-.991-2.685A10.844,10.844,0,0,0,25,4.607c-.777-.784-1.453-1.341-1.861-1.721C21.126,1.006,21.36.031,21.36.031h0S17.6,4.228,19.229,8.6a8.4,8.4,0,0,0,2.8,3.733c1.576,1.3,3.273,2.323,4.168,4.937a8.377,8.377,0,0,0-3.144-3.317,7.573,7.573,0,0,1,.6,3,7.124,7.124,0,0,1-8.711,6.94,6.561,6.561,0,0,1-1.765-.6,7.183,7.183,0,0,1-2.115-1.955l-.01-.017.126.046a6.5,6.5,0,0,0,.9.241,5.628,5.628,0,0,0,3.583-.423c1.126-.625,1.808-1.088,2.361-.905l.01,0c.54.172.966-.352.58-.9a2.94,2.94,0,0,0-2.848-1.112c-1.127.164-2.16.965-3.637.189a3.129,3.129,0,0,1-.277-.163c-.1-.057.317.087.22.022a7.33,7.33,0,0,1-.928-.554c-.022-.018.223.07.2.052a3.581,3.581,0,0,1-.968-.979,1.741,1.741,0,0,1-.066-1.554,1.371,1.371,0,0,1,.6-.564c.191.094.309.165.309.165s-.087-.16-.134-.244c.017-.006.032,0,.049-.011.167.072.537.26.732.375a1.016,1.016,0,0,1,.335.3s.067-.033.017-.173a.9.9,0,0,0-.346-.424l.016,0a2.94,2.94,0,0,1,.426.265,2.079,2.079,0,0,0,.17-.9,1.178,1.178,0,0,0-.069-.5c-.053-.1.03-.14.123-.035a.976.976,0,0,0-.079-.238v-.008h0s.053-.069.077-.094a1.43,1.43,0,0,1,.216-.176,9.973,9.973,0,0,1,1.465-.747c.414-.181.757-.319.827-.359a2.3,2.3,0,0,0,.293-.225,1.968,1.968,0,0,0,.66-1.14,1.6,1.6,0,0,0,.017-.178v-.05l0-.03v0l0-.012v0l0-.013h0c-.06-.225-.448-.394-2.476-.584a1.773,1.773,0,0,1-1.45-1.36l0,.009c-.029.074-.055.149-.081.225.026-.075.052-.15.081-.225l0-.016a5.138,5.138,0,0,1,1.986-2.466c.052-.042-.208.011-.156-.032a5.156,5.156,0,0,1,.53-.224c.091-.038-.39-.222-.815-.177a2.2,2.2,0,0,0-.756.178c.1-.086.4-.2.329-.2a4.865,4.865,0,0,0-1.542.583.314.314,0,0,1,.03-.14,2.4,2.4,0,0,0-.964.744,1.275,1.275,0,0,0,.01-.174,2.876,2.876,0,0,0-.473.444l-.009.007a6.285,6.285,0,0,0-3.517-.3l-.01-.009.012,0a2.943,2.943,0,0,1-.625-.7L6.1,5.852,6.081,5.83c-.077-.114-.156-.243-.237-.387-.058-.1-.117-.217-.176-.338,0-.008-.009-.011-.013-.012-.024,0-.041.111-.061.082l0-.006a4.308,4.308,0,0,1-.283-1.687l-.016.008a1.884,1.884,0,0,0-.714.934c-.061.137-.1.212-.14.287,0,.006,0-.01,0-.035.009-.069.039-.211.032-.2s-.012.019-.019.029a1.733,1.733,0,0,0-.251.372,2.355,2.355,0,0,0-.15.382c-.006.021,0-.018,0-.064s.009-.128,0-.111l-.022.043a9.5,9.5,0,0,0-.8,3.035A3.022,3.022,0,0,0,3.2,8.7v.016a6.628,6.628,0,0,0-.817,1.1,15.606,15.606,0,0,0-1.727,4.23,10.351,10.351,0,0,1,.925-1.621,15,15,0,0,0-1.045,5.5,14.233,14.233,0,0,1,.45-1.629A13.807,13.807,0,0,0,2.234,22.76a15.037,15.037,0,0,0,5.951,6.748h0a13.016,13.016,0,0,0,3.468,1.662c.162.059.326.117.494.173-.053-.021-.1-.044-.153-.067a15.7,15.7,0,0,0,4.5.662c5.394,0,7.175-2.054,7.339-2.259h0a2.73,2.73,0,0,0,.637-.856h0q.156-.064.315-.137l.067-.03.121-.057a11.312,11.312,0,0,0,2.277-1.426,5.5,5.5,0,0,0,2.123-3.1h0a1.938,1.938,0,0,0,.029-1.428q.083-.131.171-.28a12.706,12.706,0,0,0,1.907-6.181v-.006c0-.059,0-.118,0-.177A7.731,7.731,0,0,0,31.359,14.615Z" fill="#d7d7db"/></svg>

105
debian/browser.1.in vendored Normal file
View file

@ -0,0 +1,105 @@
.TH @BROWSER@ 1 "November 4, 2004" @browser@ "Linux User's Manual"
.SH NAME
@browser@ - a Web browser for X11 derived from the Mozilla browser
.SH SYNOPSIS
.B @browser@
[\fIOPTIONS\fR] [\fIURL\fR]
.B /usr/lib/@browser@/@browser@
[\fIOPTIONS\fR] [\fIURL\fR]
.SH DESCRIPTION
\fB@Browser@\fR is an open-source web browser, designed for
standards compliance, performance and portability.
.SH USAGE
If there is an @Browser@ browser already running, \fB@browser@\fR will
arrange for it to create a new browser window; otherwise it will start
a new instance.
.SH OPTIONS
A summary of the options supported by \fB@browser@\fR is included below.
.SS "X11 options"
.TP
.BI \-\-display= DISPLAY
X display to use
.TP
.B \-\-sync
Make X calls synchronous
.TP
.B \-\-no\-xshm
Don't use X shared memory extension
.TP
.BI \-\-xim\-preedit= STYLE
.TP
.BI \-\-xim\-status= STYLE
.TP
.B \-\-g\-fatal\-warnings
Make all warnings fatal
.SS "Mozilla options"
.TP
.B \-h, \-help
Show summary of options.
.TP
.B \-v, \-version
Print @Browser@ version.
.TP
\fB\-P\fR [\fIprofile\fR]
Start with \fIprofile\fR. When no profile is given, displays the Profile Manager. May require \fB\-no\-remote\fR, see below.
.TP
.B \-migration
Start with migration wizard. May require \fB\-no\-remote\fR, see below.
.TP
.B \-ProfileManager
Start with profile manager. May require \fB\-no\-remote\fR, see below.
.TP
.B \-no\-remote
Don't connect to a running @Browser@ instance. This option can be necessary
in conjunction to several of the options above, that won't have any effect
when an @Browser@ instance is running unless \fB\-no\-remote\fR is used at
the same time.
.TP
\fB\-UILocale\fR \fIlocale\fR
Start with \fIlocale\fR resources as User Interface locale. By default, it is
guessed from environment and available locales for @Browser@.
.TP
.B \-safe\-mode
Starts @Browser@ in safe mode, i.e. disabling all extensions and
showing a bit more debugging messages.
.TP
.B \-jsconsole
Start with Javascript Console
.TP
\fB\-new-window\fR \fIURL\fR
Open \fIURL\fR in a new window in an already running @Browser@ process.
.TP
\fB\-new-tab\fR \fIURL\fR
Open \fIURL\fR in a new tab in an already running @Browser@ process.
.TP
\fB\-chrome\fR \fIurl\fR
Load the specified chrome.
.SH ENVIRONMENT
\fIMOZILLA_DISABLE_PLUGINS\fR - when set, totally disables loading browser plugins
(the ones that appear at the about:plugins url)
.SH FILES
\fI/usr/bin/@browser@\fR - symbolic link to \fB/usr/lib/@browser@/@browser@\fR.
.br
\fI/usr/lib/@browser@/@browser@\fR - @Browser@ executable.
\fI/usr/lib/@browser@/firefox\-bin\fR - Legacy executable.
.br
.SH BUGS
To report a bug, please visit \fIhttp://bugzilla.mozilla.org/\fR and/or report bugs
to the Debian Bug Tracking System, as usual.
.SH AUTHORS
.TP
.B The Mozilla Organization
.I http://www.mozilla.org/about.html

21
debian/browser.NEWS.in vendored Normal file
View file

@ -0,0 +1,21 @@
%define firefox_esr firefox-esr
%if browser == firefox_esr
%define esr esr
%else
%define esr
%endif
@browser@ (60.0@esr@-1) unstable; urgency=medium
* The use of `lockPref` in preferences under /etc/@browser@ is deprecated.
Please use `pref("name", value, locked)` instead. `lockPref` will still
be supported for compatibility purpose until version 67.
-- Mike Hommey <glandium@debian.org> Thu, 10 May 2018 09:36:46 +0900
%if browser == firefox_esr
@browser@ (45.0esr-1) unstable; urgency=medium
* The iceweasel package was replaced with the firefox-esr package.
-- Mike Hommey <glandium@debian.org> Mon, 7 Mar 2016 07:45:02 +0900
%endif

61
debian/browser.README.Debian.in vendored Normal file
View file

@ -0,0 +1,61 @@
@Browser@ for Debian
====================
Please read the file /usr/share/bug/@browser@/presubj for information
you may want to know if you will report a bug.
Buttons
-------
Some people have complained that the button order in dialogs is
non-intuitive (ie, they don't like it). To reverse the order, add the
following to your chrome/userChrome.css file, under the
~/.mozilla/firefox directory:
.dialog-button-box { -moz-box-direction: reverse; -moz-box-pack: right; }
.dialog-button-box spacer { display: none ! important; }
Emacs keybindings
-----------------
Versions of Firefox before 1.0 supported Emacs style keybindings in
text entry boxes. Version 1.0 now merely follows the GTK keybindings
settings. To enable Emacs keybindings in GTK, follow the instructions
at http://kb.mozillazine.org/Emacs_Keybindings_(Firefox).
Well Known Ports
----------------
To prevent @Browser@ from being used to launch attacks against other
protocols, certain ports cannot be connected to by default. See
http://www.mozilla.org/projects/netlib/PortBanning.html for further
information. To allow the port numbers being used, enter
"about:config" in the URL bar and edit the
"network.security.ports.banned.override" entry to list the ports you
wish to allow (eg "2049,4045,6000").
Safe Browsing
-------------
Phishing and malware protection, also known as Safe Browsing, makes use
of a third party web service and regularly downloads updates. More
information on how this works and what is being sent and downloaded are
available on the following page:
http://www.mozilla.com/en-US/firefox/phishing-protection/
NTLM
----
Since version 30.0, NTLMv1 authentication has been disabled because
it's known as insecure. Companies and organizations still deploying
the older protocol should upgrade to NTLMv2, unfortunately, it's not
supported by @Browser@.
It is however still possible to toggle the preference to continue using
NTLMv1, though the NTLM auth support is considered deprecated, by
switching the network.negotiate-auth.allow-insecure-ntlm-v1 preference
in about:config.
See https://developer.mozilla.org/en-US/Firefox/Releases/30/Site_Compatibility#Security
for more details.
-- Mike Hommey <glandium@debian.org>, Mon, 7 Mar 2016 07:42:57 +0200

1
debian/browser.bug-control.in vendored Normal file
View file

@ -0,0 +1 @@
report-with: xulrunner-@GRE_VERSION@

45
debian/browser.bug-presubj.in vendored Normal file
View file

@ -0,0 +1,45 @@
*** Please submit non packaging issue (e.g. feature requests) bugs to
the Debian BTS and the upstream bugzilla
(https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox) and put a
reference to the bugzilla bug in the Debian bug report to ease bug
triage for the maintainers. You may need to reproduce this with
upstream's Firefox for upstream to take you seriously. Thank you. ***
@Browser@ extensions being a big source of problems, please either try
to reproduce your bug with a clean user or with your current user in
safe mode, with the "@browser@ -safe-mode" command line before filing
any bugs. If your bug disappears with a clean user or in safe mode,
you might want to find which extension is responsible for it and file
a bug to the appropriate package, bug tracking system, or author.
If your previous @Browser@ installation pre-dates 3.0, you might have
had problems since upgrading from one release to another can lack clean
support for some features. Please try moving your ~/.mozilla/firefox
directory out of the way to see if it helps with your issue.
@Browser@ requires the loopback interface (lo) to be up and unfiltered
to accept keyboard input and function correctly. Please make sure this
is the case before filing any bugs.
If you get crashes and none of the above hints helped, please also
try to run "MOZILLA_DISABLE_PLUGINS=1 @browser@".
If @Browser@ still crashes, please submit the crash to Mozilla, then
visit `about:crashes` and paste the url to the corresponding submitted
crash report in your bug report.
Alternatively, please install the @browser@-dbgsym package and run
@Browser@ under gdb with:
gdb --args @browser@ [command-line-arguments]
At the gdb prompt, type the following commands:
set pagination off
run
bt full
And attach the resulting backtrace to your bug report.
If you see XML parsing errors, please make sure you kill all running
@Browser@s and reload before filing any bugs.

19
debian/browser.bug-script.in vendored Normal file
View file

@ -0,0 +1,19 @@
#!/bin/sh
# Don't run as root
[ "$(id -u)" -eq 0 ] && exit
tmp="$(mktemp)"
tmp2="$(mktemp)"
@browser@ -dump-addons-info "$tmp"
awk -F: '$1 == "Location" {print $2}' "$tmp" | xargs dpkg -S 2>/dev/null > "$tmp2"
echo >&3
awk -F": " 'BEGIN { while (i = getline < "'"$tmp2"'") { p[$2] = $1; } }
{ print $0 }
$1 == "Location" && p[$2] { print "Package: " p[$2] }' "$tmp" >&3
echo >&3
echo -- Addons package information >&3
awk -F": " '{ print $1 }' "$tmp2" | sort -u | COLUMNS=79 xargs -r dpkg -l 2> /dev/null | grep ^i >&3
rm -f "$tmp" "$tmp2"

104
debian/browser.desktop.in vendored Normal file
View file

@ -0,0 +1,104 @@
[Desktop Entry]
Name=@Browser@
Name[bg]=@Browser@
Name[ca]=@Browser@
Name[cs]=@Browser@
Name[el]=@Browser@
Name[es]=@Browser@
Name[fa]=@Browser@
Name[fi]=@Browser@
Name[fr]=@Browser@
Name[hu]=@Browser@
Name[it]=@Browser@
Name[ja]=@Browser@
Name[ko]=@Browser@
Name[nb]=@Browser@
Name[nl]=@Browser@
Name[nn]=@Browser@
Name[no]=@Browser@
Name[pl]=@Browser@
Name[pt]=@Browser@
Name[pt_BR]=@Browser@
Name[ru]=@Browser@
Name[sk]=@Browser@
Name[sv]=@Browser@
Comment=Browse the World Wide Web
Comment[bg]=Сърфиране в Мрежата
Comment[ca]=Navegueu per el web
Comment[cs]=Prohlížení stránek World Wide Webu
Comment[de]=Im Internet surfen
Comment[el]=Περιηγηθείτε στον παγκόσμιο ιστό
Comment[es]=Navegue por la web
Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
Comment[fi]=Selaa Internetin WWW-sivuja
Comment[fr]=Navigue sur Internet
Comment[hu]=A világháló böngészése
Comment[it]=Esplora il web
Comment[ja]=
Comment[ko]=
Comment[nb]=Surf på nettet
Comment[nl]=Verken het internet
Comment[nn]=Surf på nettet
Comment[no]=Surf på nettet
Comment[pl]=Przeglądanie stron WWW
Comment[pt]=Navegue na Internet
Comment[pt_BR]=Navegue na Internet
Comment[ru]=Обозреватель Всемирной Паутины
Comment[sk]=Prehliadanie internetu
Comment[sv]=Surfa på webben
GenericName=Web Browser
GenericName[bg]=Интернет браузър
GenericName[ca]=Navegador web
GenericName[cs]=Webový prohlížeč
GenericName[de]=Webbrowser
GenericName[el]=Περιηγητής ιστού
GenericName[es]=Navegador web
GenericName[fa]=مرورگر اینترنتی
GenericName[fi]=WWW-selain
GenericName[fr]=Navigateur Web
GenericName[hu]=Webböngésző
GenericName[it]=Browser Web
GenericName[ja]=
GenericName[ko]=
GenericName[nb]=Nettleser
GenericName[nl]=Webbrowser
GenericName[nn]=Nettlesar
GenericName[no]=Nettleser
GenericName[pl]=Przeglądarka WWW
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador Web
GenericName[ru]=Интернет-браузер
GenericName[sk]=Internetový prehliadač
GenericName[sv]=Webbläsare
X-GNOME-FullName=@Browser@ Web Browser
X-GNOME-FullName[bg]=Интернет браузър (@Browser@)
X-GNOME-FullName[ca]=Navegador web @Browser@
X-GNOME-FullName[cs]=@Browser@ Webový prohlížeč
X-GNOME-FullName[el]=Περιηγήτης Ιστού @Browser@
X-GNOME-FullName[es]=Navegador web @Browser@
X-GNOME-FullName[fa]=مرورگر اینترنتی @Browser@
X-GNOME-FullName[fi]=@Browser@-selain
X-GNOME-FullName[fr]=Navigateur Web @Browser@
X-GNOME-FullName[hu]=@Browser@ webböngésző
X-GNOME-FullName[it]=@Browser@ Browser Web
X-GNOME-FullName[ja]=@Browser@
X-GNOME-FullName[ko]=@Browser@
X-GNOME-FullName[nb]=@Browser@ Nettleser
X-GNOME-FullName[nl]=@Browser@ webbrowser
X-GNOME-FullName[nn]=@Browser@ Nettlesar
X-GNOME-FullName[no]=@Browser@ Nettleser
X-GNOME-FullName[pl]=Przeglądarka WWW @Browser@
X-GNOME-FullName[pt]=@Browser@ Navegador Web
X-GNOME-FullName[pt_BR]=Navegador Web @Browser@
X-GNOME-FullName[ru]=Интернет-браузер @Browser@
X-GNOME-FullName[sk]=Internetový prehliadač @Browser@
X-GNOME-FullName[sv]=Webbläsaren @Browser@
Exec=/usr/lib/@browser@/@browser@ %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=@browser@
Categories=Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;
StartupWMClass=@MOZ_APP_REMOTINGNAME@
StartupNotify=true

9
debian/browser.dirs.in vendored Normal file
View file

@ -0,0 +1,9 @@
etc/@browser@
usr/lib/mozilla/plugins
usr/lib/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
usr/share/icons/hicolor/16x16/apps
usr/share/icons/hicolor/32x32/apps
usr/share/icons/hicolor/48x48/apps
usr/share/icons/hicolor/64x64/apps
usr/share/icons/hicolor/128x128/apps

74
debian/browser.install.in vendored Normal file
View file

@ -0,0 +1,74 @@
usr/lib/@browser@/platform.ini
usr/lib/@browser@/libxul.so
usr/lib/@browser@/dependentlibs.list
usr/lib/@browser@/omni.ja
usr/lib/@browser@/libmozsqlite3.so
%ifndef USE_SYSTEM_NSPR
usr/lib/@browser@/libnspr4.so
usr/lib/@browser@/libplc4.so
usr/lib/@browser@/libplds4.so
%endif
%ifndef USE_SYSTEM_NSS
usr/lib/@browser@/libfreeblpriv3.so
usr/lib/@browser@/libnss3.so
usr/lib/@browser@/libnssutil3.so
usr/lib/@browser@/libsmime3.so
usr/lib/@browser@/libsoftokn3.so
usr/lib/@browser@/libssl3.so
%endif
%if SHORT_SOURCE_CHANNEL == central
usr/lib/@browser@/libreplace_jemalloc.so
%endif
usr/lib/@browser@/libmozgtk.so
usr/lib/@browser@/libmozwayland.so
usr/lib/@browser@/liblgpllibs.so
usr/lib/@browser@/libmozavcodec.so
usr/lib/@browser@/libmozavutil.so
%if DEB_HOST_ARCH == i386 || DEB_HOST_ARCH == amd64 || DEB_HOST_ARCH == arm64 || DEB_HOST_ARCH == armhf || DEB_HOST_ARCH == armel
usr/lib/@browser@/libmozsandbox.so
%endif
usr/lib/@browser@/libgkcodecs.so
usr/lib/@browser@/defaults/pref/channel-prefs.js
usr/lib/@browser@/@browser@ usr/lib/@browser@
usr/lib/@browser@/browser/defaults/preferences usr/share/@browser@/browser/defaults
usr/lib/@browser@/browser/chrome usr/share/@browser@/browser
usr/lib/@browser@/application.ini usr/lib/@browser@
usr/lib/@browser@/browser/omni.ja usr/lib/@browser@/browser
debian/@browser@.desktop usr/share/applications
debian/@browser@.js etc/@browser@
debian/vendor.js usr/share/@browser@/browser/defaults/preferences
debian/debsearch.xml usr/share/@browser@/distribution/searchplugins/common
%if browser != firefox
debian/firefox usr/bin
%endif
usr/lib/@browser@/gmp-clearkey/0.1/manifest.json
usr/lib/@browser@/gmp-clearkey/0.1/libclearkey.so
%if CRASH_REPORTER
usr/lib/@browser@/crashreporter
usr/lib/@browser@/crashhelper
%endif
usr/lib/@browser@/fonts/TwemojiMozilla.ttf
usr/lib/@browser@/pingsender
usr/lib/@browser@/glxtest
%if MOZ_ENABLE_V4L2
usr/lib/@browser@/v4l2test
%endif
usr/lib/@browser@/vaapitest
debian/@browser@-symbolic.svg usr/share/icons/hicolor/symbolic/apps

30
debian/browser.js.in vendored Normal file
View file

@ -0,0 +1,30 @@
// This is the Debian specific preferences file for @Browser@
// You can make any change in here, it is the purpose of this file.
// You can, with this file and all files present in the
// /etc/@browser@ directory, override any preference you can see in
// about:config.
//
// Note that pref("name", value, locked) is allowed in these
// preferences files if you don't want users to be able to override
// some preferences.
pref("extensions.update.enabled", true);
// Use LANG environment variable to choose locale
pref("intl.locale.requested", "");
// Disable default browser checking.
pref("browser.shell.checkDefaultBrowser", false);
// Disable openh264.
pref("media.gmp-gmpopenh264.enabled", false);
// Default to classic view for about:newtab
pref("browser.newtabpage.enhanced", false, sticky);
// Disable health report upload
pref("datareporting.healthreport.uploadEnabled", false);
// Default to no suggestions in the urlbar. This still brings a panel asking
// the user whether they want to opt-in on first use.
pref("browser.urlbar.suggest.searches", false);

13
debian/browser.links.in vendored Normal file
View file

@ -0,0 +1,13 @@
/usr/lib/@browser@/@browser@ /usr/bin/@browser@
/usr/lib/@browser@/@browser@ /usr/lib/@browser@/firefox-bin
/usr/share/icons/hicolor/16x16/apps/@browser@.png /usr/share/@browser@/browser/chrome/icons/default/default16.png
/usr/share/icons/hicolor/32x32/apps/@browser@.png /usr/share/@browser@/browser/chrome/icons/default/default32.png
/usr/share/icons/hicolor/48x48/apps/@browser@.png /usr/share/@browser@/browser/chrome/icons/default/default48.png
/usr/share/icons/hicolor/64x64/apps/@browser@.png /usr/share/@browser@/browser/chrome/icons/default/default64.png
/usr/share/icons/hicolor/128x128/apps/@browser@.png /usr/share/@browser@/browser/chrome/icons/default/default128.png
/etc/@browser@ /usr/share/@browser@/browser/defaults/syspref
/usr/share/@browser@/browser/chrome /usr/lib/@browser@/browser/chrome
/usr/share/@browser@/browser/defaults /usr/lib/@browser@/browser/defaults
/usr/share/@browser@/distribution /usr/lib/@browser@/distribution

24
debian/browser.lintian-overrides.in vendored Normal file
View file

@ -0,0 +1,24 @@
# The embedded libjpeg is libjpeg-turbo, not libjpeg.
@browser@: embedded-library libjpeg [usr/lib/@browser@/libxul.so]
# The embedded libpng is patched for APNG support
@browser@: embedded-library libpng [usr/lib/@browser@/libxul.so]
# Upstream code is not ready to use system library
@browser@: embedded-library srtp [usr/lib/@browser@/libxul.so]
# False positive from gfx/ots/src/name.cc
@browser@: embedded-library freetype [usr/lib/@browser@/libxul.so]
# A version without C++ exceptions
@browser@: embedded-library libjsoncpp [usr/lib/@browser@/libxul.so]
@browser@: embedded-library libjsoncpp [usr/lib/@browser@/minidump-analyzer]
# This is a stripped down libavutil
@browser@: embedded-library libavutil [usr/lib/@browser@/libmozavutil.so]
%ifndef USE_SYSTEM_NSS
# Debian doesn't have the right version.
@browser@: embedded-library nss [usr/lib/@browser@/libnss3.so]
%endif
%ifndef USE_SYSTEM_NSPR
# Debian doesn't have the right version.
@browser@: embedded-library nspr [usr/lib/@browser@/libnspr4.so]
%endif
# The following libraries are stubs to help support both X11 and Wayland.
@browser@: shared-library-lacks-prerequisites [usr/lib/@browser@/libmozwayland.so]
@browser@: library-not-linked-against-libc [usr/lib/@browser@/libmozgtk.so]

1
debian/browser.manpages.in vendored Normal file
View file

@ -0,0 +1 @@
debian/@browser@.1

5
debian/browser.mime.in vendored Normal file
View file

@ -0,0 +1,5 @@
text/html; /usr/bin/@browser@ %s; description=HTML Text; test=test -n "$DISPLAY"; nametemplate=%s.html; priority=5
text/xml; /usr/bin/@browser@ %s; description=XML Text; test=test -n "$DISPLAY"; nametemplate=%s.xml; priority=5
image/png; /usr/bin/@browser@ %s; description=PNG Image; test=test -n "$DISPLAY"; nametemplate=%s.png; priority=2
image/jpeg; /usr/bin/@browser@ %s; description=JPEG Image; test=test -n "$DISPLAY"; nametemplate=%s.jpeg; priority=2
image/gif; /usr/bin/@browser@ %s; description=GIF Image; test=test -n "$DISPLAY"; nametemplate=%s.gif; priority=2

35
debian/browser.mozconfig.in vendored Normal file
View file

@ -0,0 +1,35 @@
# Please don't use this mozconfig unless you are planning to build
# packages for Debian or a derivative.
ac_add_options --with-app-name=@browser@
ac_add_options --enable-release
ac_add_options --enable-default-toolkit=cairo-gtk3-wayland
ac_add_options --with-google-location-service-api-keyfile=$topsrcdir/debian/google.key
ac_add_options --with-google-safebrowsing-api-keyfile=$topsrcdir/debian/google.key
ac_add_options --with-mozilla-api-keyfile=$topsrcdir/debian/mls.key
%if USE_SYSTEM_ZLIB
ac_add_options --with-system-zlib # MOZ_SYSTEM_ZLIB=1
%endif
ac_add_options --disable-strip
ac_add_options --disable-install-strip
%if USE_SYSTEM_FFI
ac_add_options --enable-system-ffi # MOZ_SYSTEM_FFI=1
%endif
%if USE_SYSTEM_LIBEVENT
ac_add_options --with-system-libevent # MOZ_SYSTEM_LIBEVENT=1
%endif
%if USE_SYSTEM_NSPR
ac_add_options --with-system-nspr # MOZ_SYSTEM_NSPR=1
%endif
%if USE_SYSTEM_NSS
ac_add_options --with-system-nss # MOZ_SYSTEM_NSS=1
%endif
%if USE_SYSTEM_VPX
ac_add_options --with-system-libvpx # MOZ_SYSTEM_LIBVPX=1
%endif
ac_add_options --disable-updater
ac_add_options --with-unsigned-addon-scopes=app,system
ac_add_options --allow-addon-sideload
ac_add_options --enable-alsa
%if DIST == bullseye || DEB_HOST_ARCH_ENDIAN == big
ac_add_options --without-wasm-sandboxed-libraries
%endif

19
debian/browser.postinst.in vendored Normal file
View file

@ -0,0 +1,19 @@
#!/bin/sh -e
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] ; then
update-alternatives --install /usr/bin/x-www-browser \
x-www-browser /usr/bin/@browser@ 70 \
--slave /usr/share/man/man1/x-www-browser.1.gz \
x-www-browser.1.gz /usr/share/man/man1/@browser@.1.gz
update-alternatives --remove mozilla /usr/bin/@browser@
update-alternatives --install /usr/bin/gnome-www-browser \
gnome-www-browser /usr/bin/@browser@ 70 \
--slave /usr/share/man/man1/gnome-www-browser.1.gz \
gnome-www-browser.1.gz /usr/share/man/man1/@browser@.1.gz
fi
if [ "$1" = "configure" ] ; then
rm -rf /usr/lib/@browser@/updates
fi
#DEBHELPER#

7
debian/browser.postrm.in vendored Normal file
View file

@ -0,0 +1,7 @@
#!/bin/sh -e
if [ "$1" = "remove" ]; then
dpkg-divert --package @browser@ --rename --remove /usr/bin/firefox
fi
#DEBHELPER#

7
debian/browser.preinst.in vendored Normal file
View file

@ -0,0 +1,7 @@
#!/bin/sh -e
if [ "$1" = "upgrade" ] || [ "$1" = "install" ] ; then
dpkg-divert --package @browser@ --divert /usr/bin/firefox.real --rename /usr/bin/firefox
fi
#DEBHELPER#

12
debian/browser.prerm.in vendored Normal file
View file

@ -0,0 +1,12 @@
#!/bin/sh -e
if [ "$1" = "remove" ] || [ "$1" = "deconfigure" ] ; then
update-alternatives --remove x-www-browser /usr/bin/@browser@
update-alternatives --remove gnome-www-browser /usr/bin/@browser@
fi
if [ "$1" = "remove" ]; then
rm -rf /usr/lib/@browser@/updates
fi
#DEBHELPER#

10218
debian/changelog vendored Normal file

File diff suppressed because it is too large Load diff

2969
debian/changelog.xulrunner vendored Normal file

File diff suppressed because it is too large Load diff

1270
debian/control vendored Normal file

File diff suppressed because it is too large Load diff

128
debian/control.in vendored Normal file
View file

@ -0,0 +1,128 @@
Source: @browser@
Section: web
Priority: optional
Maintainer: Maintainers of Mozilla-related packages <team+pkg-mozilla@tracker.debian.org>
Uploaders: Mike Hommey <glandium@debian.org>
Build-Depends: debhelper-compat (= 12),
libx11-dev,
libx11-xcb-dev,
libxt-dev,
libgtk-3-dev,
libglib2.0-dev,
libdrm-dev,
libstartup-notification0-dev,
libjpeg-dev,
%if USE_SYSTEM_ZLIB
zlib1g-dev,
%endif
libreadline-dev,
python3 (>= 3.8),
%if USE_SYSTEM_NSPR
%define NSPR_VERSION 4.32
libnspr4-dev (>= 2:@NSPR_VERSION@~),
%endif
%if USE_SYSTEM_NSS
%define NSS_VERSION 3.110
libnss3-dev (>= 2:@NSS_VERSION@~),
%endif
%if USE_SYSTEM_VPX
libvpx-dev (>= 1.10.0),
%endif
libdbus-1-dev,
%if USE_SYSTEM_FFI
libffi-dev,
%endif
%if USE_SYSTEM_LIBEVENT
libevent-dev,
%endif
libpulse-dev,
libasound2-dev,
nasm (>= 2.14) [amd64 i386],
%if DIST == bookworm
g++-11,
%endif
%define RUST_VERSION 1.82
%if DIST == bookworm || DIST == bullseye
rustc-web (>= @RUST_VERSION@),
cargo-web (>= @RUST_VERSION@),
%else
rustc (>= @RUST_VERSION@),
cargo (>= @RUST_VERSION@),
%endif
llvm-dev,
libclang-dev,
clang,
%if DIST != bullseye
libc++-dev-wasm32,
libclang-rt-dev-wasm32,
lld,
%endif
%define CBINDGEN_VERSION 0.27.0
%if DIST == bookworm || DIST == bullseye
cbindgen-web (>= @CBINDGEN_VERSION@),
%else
cbindgen (>= @CBINDGEN_VERSION@),
%endif
nodejs (>= 12.22.1),
zip,
unzip,
locales,
xvfb,
xfonts-base,
xauth,
ttf-bitstream-vera,
fonts-freefont-ttf,
fonts-dejima-mincho,
iso-codes
Build-Conflicts: graphicsmagick-imagemagick-compat,
liboss4-salsa-dev,
libhildonmime-dev,
libosso-dev
Standards-Version: 3.9.8.0
Vcs-Git: https://salsa.debian.org/mozilla-team/firefox.git -b @SHORT_SOURCE_CHANNEL@/master
Vcs-Browser: https://salsa.debian.org/mozilla-team/firefox/commits/@SHORT_SOURCE_CHANNEL@/master
Package: @browser@
Architecture: any
Depends: ${shlibs:Depends},
${misc:Depends},
fontconfig,
procps,
debianutils (>= 1.16),
%if USE_SYSTEM_NSPR
libnspr4 (>= 2:@NSPR_VERSION@~),
%endif
%if USE_SYSTEM_NSS
libnss3 (>= 2:@NSS_VERSION@~)
%endif
Recommends: @LIBAVCODEC@
Suggests: fonts-stix | otf-stix,
fonts-lmodern,
libgssapi-krb5-2 | libkrb53,
libcanberra0,
pulseaudio
Provides: www-browser,
gnome-www-browser
%define RAW_DESCRIPTION Mozilla Firefox web browser
%define LONGDESC1 @Browser@ is a powerful, extensible web browser with support for modern
%define LONGDESC2 web application technologies.
%define firefox_esr firefox-esr
%if browser == firefox_esr
%define DESCRIPTION @RAW_DESCRIPTION@ - Extended Support Release (ESR)
%else
%define DESCRIPTION @RAW_DESCRIPTION@
%endif
Description: @DESCRIPTION@
@LONGDESC1@
@LONGDESC2@
Package: @browser@-l10n-all
Architecture: all
Section: metapackages
Depends: ${misc:Depends}, @L10N_PACKAGES_DEPS@
Description: All language packages for @Browser@ (meta)
@LONGDESC1@
@LONGDESC2@
.
This is a metapackage depending on all available localizations of @Browser@.
%include l10n/browser-l10n.control

1613
debian/copyright vendored Normal file

File diff suppressed because it is too large Load diff

8
debian/debsearch.xml vendored Normal file
View file

@ -0,0 +1,8 @@
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/" xmlns:os="http://a9.com/-/spec/opensearch/1.1/">
<os:ShortName>Debian packages</os:ShortName>
<os:Description>Debian packages name search</os:Description>
<os:InputEncoding>UTF-8</os:InputEncoding>
<os:Image width="16" height="16">data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAJnKAACZygHjkaQiAAAAB3RJTUUH1gsYEToVv17oJgAAAXpJREFUOMuN0s+LjWEUB/DPvabrR9EYpVFkoWbxFv+ADE2JxSkLUVLKQmo2FvYUKzulqVmQSMpSvck0Slmyms2xYMNCoiaFGsqPzfPk7XZv5rs57/e83+/3OefpASnuGY0UD3odch5fKtk3LF1IMVfJq1K3pZjq42mKY/jWaFelmBx35FoNT7E1xRr0S2Ox0W7CIWi0X7E3xUR1v+4knUxxdNQRcymmhvvdTWdwGyu41mg/d923Uix2+KMUlyrZmOJ0+d5dbyTFUhUc7zgHpW5J8aGu+acz04kU0/iB2SpYTnG4CJZxBhsa7dvukG/8DymejOr3hkR9XMVl/MISPmEHjhTZDdxstP8CivEgHuNco23HTDHAC+zB/ka72i//DuAOpqs5xWSKCyVcikGj/YlT+F7fZw3YhYdFUDGPu432d+GbS92OZ1U0Uer7YujiPq6keFcMMynOYqHRzo/a7/q4m143UsymeF6fzHrQGxO0ExfxEiuN9uO4gL9fqYR9Njj9WAAAAABJRU5ErkJggg==</os:Image>
<os:Url type="text/html" method="GET" template="http://packages.debian.org/search?keywords={searchTerms}&amp;searchon=names&amp;suite=all&amp;section=all&amp;sourceid=mozilla-search"/>
<SearchForm>http://packages.debian.org/</SearchForm>
</SearchPlugin>

25
debian/dh vendored Executable file
View file

@ -0,0 +1,25 @@
#!/bin/sh
# Wrapper around dh to enable parallelism in debian/rules if not already
# enabled.
case "$MAKEFLAGS" in
*-j*)
# Already enabled, do nothing.
;;
*)
parallel=
for opt in "$DEB_BUILD_OPTIONS"; do
case "$opt" in
parallel=*)
parallel=${opt#parallel=}
;;
esac
done
if [ -n "$parallel" ]; then
export MAKEFLAGS="-j$parallel${MAKEFLAGS:+ $MAKEFLAGS}"
fi
;;
esac
exec dh "$@"

0
debian/extra-stuff/Makefile.in vendored Normal file
View file

11
debian/extra-stuff/addonsInfo.conf vendored Normal file
View file

@ -0,0 +1,11 @@
Classes = [
{
'cid': '17a1f091-70f7-411c-a9d7-191689552d01',
'contract_ids': [
'@mozilla.org/toolkit/addonsInfo-clh;1',
],
'esModule': 'resource://gre/modules/addonsInfo.sys.mjs',
'constructor': 'addonsInfoHandler',
'categories': {'command-line-handler': 'a-addons-info'},
},
]

77
debian/extra-stuff/addonsInfo.sys.mjs vendored Normal file
View file

@ -0,0 +1,77 @@
import {XPCOMUtils} from "resource://gre/modules/XPCOMUtils.sys.mjs";
import {AddonManager} from "resource://gre/modules/AddonManager.sys.mjs";
function compare(a, b) {
return a.name.localeCompare(b.name);
}
function dump_addons(path) {
AddonManager.getAllAddons().then(function(addons) {
var resProtoHandler;
var file = Cc["@mozilla.org/file/local;1"]
.createInstance(Ci.nsIFile);
file.initWithPath(path);
var outstream = Cc["@mozilla.org/network/file-output-stream;1"]
.createInstance(Ci.nsIFileOutputStream);
outstream.init(file, 0x2A /* TRUNCATE | WRONLY | CREATE */, 0o666, 0);
var out = Cc["@mozilla.org/intl/converter-output-stream;1"]
.createInstance(Ci.nsIConverterOutputStream);
out.init(outstream, "UTF-8", 0, 0);
addons.sort(compare);
out.writeString("-- Extensions information\n");
addons.forEach(function(extension) {
if (extension.type == "plugin")
return;
out.writeString("Name: " + extension.name);
if (extension.type != "extension")
out.writeString(" " + extension.type);
out.writeString("\n");
if (extension.getResourceURI) {
var location = extension.getResourceURI("");
if (location.scheme == "resource") {
if (!resProtoHandler) {
resProtoHandler = Services.io.getProtocolHandler("resource")
.QueryInterface(Ci.nsIResProtocolHandler);
}
location = Services.io.newURI(resProtoHandler.resolveURI(location));
}
if (location instanceof Ci.nsIJARURI) {
location = location.JARFile;
}
location = location.QueryInterface(Ci.nsIFileURL).file;
if (!extension.isBuiltin && extension.scope == AddonManager.SCOPE_PROFILE)
out.writeString("Location: ${PROFILE_EXTENSIONS}/" +
location.leafName + "\n");
else
out.writeString("Location: " + location.path + "\n");
}
out.writeString("Status: " + (extension.appDisabled ? "app-disabled" :
(extension.softDisabled ? "soft-disabled" :
(extension.userDisabled ? "user-disabled" :
"enabled"))) + "\n");
out.writeString("\n");
});
out.close();
// Avoid running -dumps-addons-info without a running Firefox counting as
// a crash.
Services.startup.trackStartupCrashEnd();
});
}
export function addonsInfoHandler() {}
addonsInfoHandler.prototype = {
handle: function clh_handle(cmdLine) {
var path = cmdLine.handleFlagWithParam("dump-addons-info", false);
if (!path)
return;
cmdLine.preventDefault = true;
dump_addons(path);
},
classDescription: "addonsInfoHandler",
QueryInterface: ChromeUtils.generateQI([Ci.nsICommandLineHandler]),
};

7
debian/extra-stuff/moz.build vendored Normal file
View file

@ -0,0 +1,7 @@
XPCOM_MANIFESTS += [
'addonsInfo.conf',
]
EXTRA_JS_MODULES += [
'addonsInfo.sys.mjs',
]

6
debian/firefox.in vendored Normal file
View file

@ -0,0 +1,6 @@
#!/bin/sh
FIREFOX="$(command -v firefox)"
[ -x "$FIREFOX.real" ] && exec "$FIREFOX.real" "$@"
exec @browser@ "$@"

1
debian/google.key vendored Normal file
View file

@ -0,0 +1 @@
AIzaSyD3uzXks34szqk9WhKoFZypVPgdDbT3uPw

97
debian/import-tar.py vendored Executable file
View file

@ -0,0 +1,97 @@
#!/usr/bin/env python3
import glob
import tarfile
import sys
from optparse import OptionParser
import os
class GitImportTar(object):
def __init__(self, filename, head):
self.mark = 1
self.git = sys.stdout
self.files = {}
self.name = filename
self.mtime = 0
self.head = head
def addfile(self, info, prefix = '', file = None):
if info.isdir():
return
self.git.write("blob\n" +
"mark :%d\n" % self.mark)
mode = info.mode
if info.issym():
self.git.write("data %d\n" % len(info.linkname) +
info.linkname)
mode = 0o120000
elif file:
self.git.write("data %d\n" % (info.size))
self.git.flush()
self.git.buffer.write(file.read(info.size))
self.git.write("\n")
if not prefix in self.files:
self.files[prefix] = {}
self.files[prefix][info.name] = (self.mark, mode)
self.mark += 1
if info.mtime > self.mtime:
self.mtime = info.mtime
def close(self):
self.git.write("commit refs/heads/%s\n" % (self.head) +
"author T Ar Creator' <tar@example.com> %d +0000\n" % (self.mtime) +
"committer T Ar Creator' <tar@example.com> %d +0000\n" % (self.mtime) +
"data <<EOM\n" +
"Imported from %s\n" % (self.name) +
"EOM\n\n" +
"from refs/heads/%s^0\n" % (self.head) +
"deleteall\n")
for prefix, fileset in self.files.items():
basedir = os.path.commonprefix(list(fileset.keys()))
for path, info in fileset.items():
(mark, mode) = info
if mode != 0o120000:
mode = 0o755 if (mode & 0o111) else 0o644
path = path[len(basedir):].lstrip('/')
if prefix != '':
path = prefix + '/' + path
self.git.write("M %o :%d %s\n" % (mode, mark, path))
def main():
parser = OptionParser()
parser.add_option("-H", "--head", dest="head",
help="import on the given head", metavar="NAME")
(options, args) = parser.parse_args()
if not options.head:
options.head = "upstream"
(name, ext) = os.path.splitext(args[0])
if ext[0:2] != '.t':
(name, ext) = os.path.splitext(name)
git_import = GitImportTar(os.path.basename(args[0]), options.head)
for file in [args[0]] + glob.glob(name + "-*" + ext + "*"):
(_, this_ext) = os.path.splitext(file)
if this_ext == ext:
prefix = file[len(name)+1:-len(this_ext)]
else:
prefix = file[len(name)+1:-len(this_ext) - len(ext)]
tar = tarfile.open(file, "r:*")
while True:
info = tar.next()
if not info:
break
if info.isfile():
file = tar.extractfile(info)
git_import.addfile(info, prefix, file)
else:
git_import.addfile(info, prefix)
tar.close()
git_import.close()
if __name__ == '__main__':
main()

1
debian/l10n.filter vendored Normal file
View file

@ -0,0 +1 @@
.hg*

510
debian/l10n/browser-l10n.control vendored Normal file
View file

@ -0,0 +1,510 @@
%define L10N_LANG ach
%define L10N_LANGUAGE Acoli
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG af
%define L10N_LANGUAGE Afrikaans
%define L10N_RECOMMENDS hunspell-af
%include @PRODUCT@-l10n.control.in
%define L10N_LANG an
%define L10N_LANGUAGE Aragonese
%define L10N_RECOMMENDS hunspell-an
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ar
%define L10N_LANGUAGE Arabic
%define L10N_RECOMMENDS hunspell-ar
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ast
%define L10N_LANGUAGE Asturian
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG az
%define L10N_LANGUAGE Azerbaijani
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG be
%define L10N_LANGUAGE Belarusian
%define L10N_RECOMMENDS hunspell-be
%include @PRODUCT@-l10n.control.in
%define L10N_LANG bg
%define L10N_LANGUAGE Bulgarian
%define L10N_RECOMMENDS hunspell-bg | myspell-bg
%include @PRODUCT@-l10n.control.in
%define L10N_LANG bn
%define L10N_LANGUAGE Bengali
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG br
%define L10N_LANGUAGE Breton
%define L10N_RECOMMENDS hunspell-br
%include @PRODUCT@-l10n.control.in
%define L10N_LANG bs
%define L10N_LANGUAGE Bosnian
%define L10N_RECOMMENDS hunspell-bs
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ca
%define L10N_LANGUAGE Catalan
%define L10N_RECOMMENDS hunspell-ca
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ca-valencia
%define L10N_LANGUAGE Catalan (Valencia)
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG cak
%define L10N_LANGUAGE Kaqchikel
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG cs
%define L10N_LANGUAGE Czech
%define L10N_RECOMMENDS hunspell-cs
%include @PRODUCT@-l10n.control.in
%define L10N_LANG cy
%define L10N_LANGUAGE Welsh
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG da
%define L10N_LANGUAGE Danish
%define L10N_RECOMMENDS hunspell-da | myspell-da
%include @PRODUCT@-l10n.control.in
%define L10N_LANG de
%define L10N_LANGUAGE German
%define L10N_RECOMMENDS hunspell-de-de | hunspell-de-at | hunspell-de-ch
%include @PRODUCT@-l10n.control.in
%define L10N_LANG dsb
%define L10N_LANGUAGE Lower Sorbian
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG el
%define L10N_LANGUAGE Modern Greek
%define L10N_RECOMMENDS hunspell-el | myspell-el-gr
%include @PRODUCT@-l10n.control.in
%define L10N_LANG en-ca
%define L10N_LANGUAGE English (Canada)
%define L10N_RECOMMENDS hunspell-en-gb | hunspell-en-us
%include @PRODUCT@-l10n.control.in
%define L10N_LANG en-gb
%define L10N_LANGUAGE English (United Kingdom)
%define L10N_RECOMMENDS hunspell-en-gb | hunspell-en-us
%include @PRODUCT@-l10n.control.in
%define L10N_LANG eo
%define L10N_LANGUAGE Esperanto
%define L10N_RECOMMENDS myspell-eo
%include @PRODUCT@-l10n.control.in
%define L10N_LANG es-ar
%define L10N_LANGUAGE Spanish (Argentina)
%define L10N_RECOMMENDS hunspell-es | myspell-es
%include @PRODUCT@-l10n.control.in
%define L10N_LANG es-cl
%define L10N_LANGUAGE Spanish (Chile)
%define L10N_RECOMMENDS hunspell-es | myspell-es
%include @PRODUCT@-l10n.control.in
%define L10N_LANG es-es
%define L10N_LANGUAGE Spanish (Spain)
%define L10N_RECOMMENDS hunspell-es | myspell-es
%include @PRODUCT@-l10n.control.in
%define L10N_LANG es-mx
%define L10N_LANGUAGE Spanish (Mexico)
%define L10N_RECOMMENDS hunspell-es | myspell-es
%include @PRODUCT@-l10n.control.in
%define L10N_LANG et
%define L10N_LANGUAGE Estonian
%define L10N_RECOMMENDS myspell-et
%include @PRODUCT@-l10n.control.in
%define L10N_LANG eu
%define L10N_LANGUAGE Basque
%define L10N_RECOMMENDS hunspell-eu
%include @PRODUCT@-l10n.control.in
%define L10N_LANG fa
%define L10N_LANGUAGE Persian
%define L10N_RECOMMENDS myspell-fa
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ff
%define L10N_LANGUAGE Fulah
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG fi
%define L10N_LANGUAGE Finnish
%define L10N_RECOMMENDS xul-ext-mozvoikko
%include @PRODUCT@-l10n.control.in
%define L10N_LANG fr
%define L10N_LANGUAGE French
%define L10N_RECOMMENDS hunspell-fr | myspell-fr | myspell-fr-gut
%include @PRODUCT@-l10n.control.in
%define L10N_LANG fur
%define L10N_LANGUAGE Friulian
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG fy-nl
%define L10N_LANGUAGE Western Frisian (Netherlands)
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ga-ie
%define L10N_LANGUAGE Irish (Ireland)
%define L10N_RECOMMENDS myspell-ga
%include @PRODUCT@-l10n.control.in
%define L10N_LANG gd
%define L10N_LANGUAGE Scottish Gaelic
%define L10N_RECOMMENDS hunspell-gd | myspell-gd
%include @PRODUCT@-l10n.control.in
%define L10N_LANG gl
%define L10N_LANGUAGE Galician
%define L10N_RECOMMENDS hunspell-gl-es | hunspell-gl
%include @PRODUCT@-l10n.control.in
%define L10N_LANG gn
%define L10N_LANGUAGE Guarani
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG gu-in
%define L10N_LANGUAGE Gujarati (India)
%define L10N_RECOMMENDS hunspell-gu
%include @PRODUCT@-l10n.control.in
%define L10N_LANG he
%define L10N_LANGUAGE Hebrew
%define L10N_RECOMMENDS hunspell-he | myspell-he
%include @PRODUCT@-l10n.control.in
%define L10N_LANG hi-in
%define L10N_LANGUAGE Hindi (India)
%define L10N_RECOMMENDS hunspell-hi
%include @PRODUCT@-l10n.control.in
%define L10N_LANG hr
%define L10N_LANGUAGE Croatian
%define L10N_RECOMMENDS hunspell-hr
%include @PRODUCT@-l10n.control.in
%define L10N_LANG hsb
%define L10N_LANGUAGE Upper Sorbian
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG hu
%define L10N_LANGUAGE Hungarian
%define L10N_RECOMMENDS hunspell-hu | myspell-hu
%include @PRODUCT@-l10n.control.in
%define L10N_LANG hy-am
%define L10N_LANGUAGE Armenian (Armenia)
%define L10N_RECOMMENDS myspell-hy
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ia
%define L10N_LANGUAGE Interlingua
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG id
%define L10N_LANGUAGE Indonesian
%define L10N_RECOMMENDS hunspell-id
%include @PRODUCT@-l10n.control.in
%define L10N_LANG is
%define L10N_LANGUAGE Icelandic
%define L10N_RECOMMENDS hunspell-is
%include @PRODUCT@-l10n.control.in
%define L10N_LANG it
%define L10N_LANGUAGE Italian
%define L10N_RECOMMENDS hunspell-it
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ja
%define L10N_LANGUAGE Japanese
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ka
%define L10N_LANGUAGE Georgian
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG kab
%define L10N_LANGUAGE Kabyle
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG kk
%define L10N_LANGUAGE Kazakh
%define L10N_RECOMMENDS hunspell-kk
%include @PRODUCT@-l10n.control.in
%define L10N_LANG km
%define L10N_LANGUAGE Khmer
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG kn
%define L10N_LANGUAGE Kannada
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ko
%define L10N_LANGUAGE Korean
%define L10N_RECOMMENDS hunspell-ko
%include @PRODUCT@-l10n.control.in
%define L10N_LANG lij
%define L10N_LANGUAGE Ligurian
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG lt
%define L10N_LANGUAGE Lithuanian
%define L10N_RECOMMENDS hunspell-lt
%include @PRODUCT@-l10n.control.in
%define L10N_LANG lv
%define L10N_LANGUAGE Latvian
%define L10N_RECOMMENDS hunspell-lv | myspell-lv
%include @PRODUCT@-l10n.control.in
%define L10N_LANG mk
%define L10N_LANGUAGE Macedonian
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG mr
%define L10N_LANGUAGE Marathi
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ms
%define L10N_LANGUAGE Malay
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG my
%define L10N_LANGUAGE Burmese
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG nb-no
%define L10N_LANGUAGE Norwegian Bokmål (Norway)
%define L10N_RECOMMENDS myspell-nb
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ne-np
%define L10N_LANGUAGE Nepali (Nepal)
%define L10N_RECOMMENDS hunspell-ne
%include @PRODUCT@-l10n.control.in
%define L10N_LANG nl
%define L10N_LANGUAGE Dutch
%define L10N_RECOMMENDS hunspell-nl
%include @PRODUCT@-l10n.control.in
%define L10N_LANG nn-no
%define L10N_LANGUAGE Norwegian Nynorsk (Norway)
%define L10N_RECOMMENDS myspell-nn
%include @PRODUCT@-l10n.control.in
%define L10N_LANG oc
%define L10N_LANGUAGE Occitan
%define L10N_RECOMMENDS hunspell-oc
%include @PRODUCT@-l10n.control.in
%define L10N_LANG pa-in
%define L10N_LANGUAGE Panjabi (India)
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG pl
%define L10N_LANGUAGE Polish
%define L10N_RECOMMENDS hunspell-pl | myspell-pl
%include @PRODUCT@-l10n.control.in
%define L10N_LANG pt-br
%define L10N_LANGUAGE Portuguese (Brazil)
%define L10N_RECOMMENDS hunspell-pt-br | myspell-pt-br
%include @PRODUCT@-l10n.control.in
%define L10N_LANG pt-pt
%define L10N_LANGUAGE Portuguese (Portugal)
%define L10N_RECOMMENDS hunspell-pt-pt | myspell-pt-pt
%include @PRODUCT@-l10n.control.in
%define L10N_LANG rm
%define L10N_LANGUAGE Romansh
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ro
%define L10N_LANGUAGE Romanian
%define L10N_RECOMMENDS hunspell-ro
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ru
%define L10N_LANGUAGE Russian
%define L10N_RECOMMENDS hunspell-ru | myspell-ru
%include @PRODUCT@-l10n.control.in
%define L10N_LANG sat
%define L10N_LANGUAGE Santali
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG sc
%define L10N_LANGUAGE Sardinian
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG sco
%define L10N_LANGUAGE Scots
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG si
%define L10N_LANGUAGE Sinhala
%define L10N_RECOMMENDS hunspell-si
%include @PRODUCT@-l10n.control.in
%define L10N_LANG sk
%define L10N_LANGUAGE Slovak
%define L10N_RECOMMENDS hunspell-sk | myspell-sk
%include @PRODUCT@-l10n.control.in
%define L10N_LANG skr
%define L10N_LANGUAGE Saraiki
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG sl
%define L10N_LANGUAGE Slovenian
%define L10N_RECOMMENDS hunspell-sl
%include @PRODUCT@-l10n.control.in
%define L10N_LANG son
%define L10N_LANGUAGE Songhai languages
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG sq
%define L10N_LANGUAGE Albanian
%define L10N_RECOMMENDS myspell-sq
%include @PRODUCT@-l10n.control.in
%define L10N_LANG sr
%define L10N_LANGUAGE Serbian
%define L10N_RECOMMENDS hunspell-sr
%include @PRODUCT@-l10n.control.in
%define L10N_LANG sv-se
%define L10N_LANGUAGE Swedish (Sweden)
%define L10N_RECOMMENDS hunspell-sv-se
%include @PRODUCT@-l10n.control.in
%define L10N_LANG szl
%define L10N_LANGUAGE Silesian
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ta
%define L10N_LANGUAGE Tamil
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG te
%define L10N_LANGUAGE Telugu
%define L10N_RECOMMENDS hunspell-te
%include @PRODUCT@-l10n.control.in
%define L10N_LANG tg
%define L10N_LANGUAGE Tajik
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG th
%define L10N_LANGUAGE Thai
%define L10N_RECOMMENDS hunspell-th
%include @PRODUCT@-l10n.control.in
%define L10N_LANG tl
%define L10N_LANGUAGE Tagalog
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG tr
%define L10N_LANGUAGE Turkish
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG trs
%define L10N_LANGUAGE Chicahuaxtla Triqui
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG uk
%define L10N_LANGUAGE Ukrainian
%define L10N_RECOMMENDS hunspell-uk | myspell-uk
%include @PRODUCT@-l10n.control.in
%define L10N_LANG ur
%define L10N_LANGUAGE Urdu
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG uz
%define L10N_LANGUAGE Uzbek
%define L10N_RECOMMENDS hunspell-uz
%include @PRODUCT@-l10n.control.in
%define L10N_LANG vi
%define L10N_LANGUAGE Vietnamese
%define L10N_RECOMMENDS hunspell-vi
%include @PRODUCT@-l10n.control.in
%define L10N_LANG xh
%define L10N_LANGUAGE Xhosa
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG zh-cn
%define L10N_LANGUAGE Chinese (China)
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in
%define L10N_LANG zh-tw
%define L10N_LANGUAGE Chinese (Taiwan)
%undef L10N_RECOMMENDS
%include @PRODUCT@-l10n.control.in

18
debian/l10n/browser-l10n.control.in vendored Normal file
View file

@ -0,0 +1,18 @@
Package: @browser@-l10n-@L10N_LANG@
Architecture: all
Section: localization
Depends: ${misc:Depends},
@browser@ (>= ${source:Version}), @browser@ (<< ${source:Version}.1~)
%ifdef L10N_RECOMMENDS
Recommends: @L10N_RECOMMENDS@
%endif
%if L10N_LANG == bn
Breaks: @browser@-l10n-bn-in (<< 68), @browser@-l10n-bn-bd (<< 68)
Replaces: @browser@-l10n-bn-in (<< 68), @browser@-l10n-bn-bd (<< 68)
Provides: @browser@-l10n-bn-in, @browser@-l10n-bn-bd
%endif
Description: @L10N_LANGUAGE@ language package for @Browser@
@LONGDESC1@
@LONGDESC2@
.
This package contains the localization of @Browser@ in @L10N_LANGUAGE@.

108
debian/l10n/gen vendored Normal file
View file

@ -0,0 +1,108 @@
#!/usr/bin/env python2.7
import json
import os
import re
import sys
import codecs
from xml import sax
class Iso3166(sax.handler.ContentHandler, dict):
def startElement(self, name, attrs):
if 'alpha_2_code' in attrs:
self[attrs['alpha_2_code'].lower()] = attrs['name']
class Iso639(sax.handler.ContentHandler, dict):
def startElement(self, name, attrs):
if 'iso_639_1_code' in attrs:
self[attrs['iso_639_1_code']] = attrs['name']
if 'iso_639_2B_code' in attrs:
self[attrs['iso_639_2B_code']] = attrs['name']
class Iso639_3(sax.handler.ContentHandler, dict):
def startElement(self, name, attrs):
if 'id' in attrs:
self[attrs['id']] = attrs['name']
if 'part1_code' in attrs:
self[attrs['part1_code']] = attrs['name']
if 'part2_code' in attrs and not attrs['part2_code'] in self:
self[attrs['part2_code']] = attrs['name']
if os.path.exists('/usr/share/iso-codes/json/iso_639-2.json'):
with open('/usr/share/iso-codes/json/iso_639-2.json') as fh:
iso639 = {}
for data in json.load(fh)['639-2']:
for k in ('alpha_2', 'alpha_3', 'bibliographic'):
if k in data:
iso639[data[k]] = data['name']
with open('/usr/share/iso-codes/json/iso_639-3.json') as fh:
iso639_3 = {}
for data in json.load(fh)['639-3']:
for k in ('alpha_2', 'alpha_3', 'bibliographic'):
if k in data:
iso639_3[data[k]] = \
data.get('inverted_name') or data['name']
with open('/usr/share/iso-codes/json/iso_3166-1.json') as fh:
iso3166 = {}
for data in json.load(fh)['3166-1']:
if 'alpha_2' in data:
iso3166[data['alpha_2'].lower()] = data['name']
else:
parser = sax.make_parser()
iso639_3 = Iso639_3()
parser.setContentHandler(iso639_3)
parser.parse('/usr/share/xml/iso-codes/iso_639_3.xml')
iso639 = Iso639()
parser.setContentHandler(iso639)
parser.parse('/usr/share/xml/iso-codes/iso_639.xml')
iso3166 = Iso3166()
parser.setContentHandler(iso3166)
parser.parse('/usr/share/xml/iso-codes/iso_3166.xml')
recommends = {}
with open('debian/l10n/recommends') as f:
for line in f.readlines():
lang, value = line.split(':')
recommends[lang.strip()] = value.strip()
RE = re.compile(r'^([^,\(]+)(?:, *([^\(]+) *)?(?: *\(.*\))?$')
for code in sys.argv[1:]:
if '-' in code:
lang, country = code.split('-')
else:
lang = code
country = None
if lang in iso639_3:
str = iso639_3[lang.lower()]
else:
str = iso639[lang.lower()]
m = RE.match(str)
if m.group(2):
str = ' '.join([m.group(2).strip(), m.group(1).strip()])
else:
str = m.group(1).strip()
if country:
country_ = iso3166.get(country.lower())
if country_:
country = country_
else:
country = {
'valencia': 'Valencia',
}[country.lower()]
if ',' in country:
country = country[:country.index(',')]
str += ' (' + country + ')'
print()
print('%define L10N_LANG', code.lower())
print('%define L10N_LANGUAGE', str)
if code.lower() in recommends:
print('%define L10N_RECOMMENDS', recommends[code.lower()])
else:
print('%undef L10N_RECOMMENDS')
print('%include @PRODUCT@-l10n.control.in')

66
debian/l10n/recommends vendored Normal file
View file

@ -0,0 +1,66 @@
af: hunspell-af
an: hunspell-an
ar: hunspell-ar
be: hunspell-be
bg: hunspell-bg | myspell-bg
bn-bd: hunspell-bn
bn-in: hunspell-bn
br: hunspell-br
bs: hunspell-bs
ca: hunspell-ca
cs: hunspell-cs
da: hunspell-da | myspell-da
de: hunspell-de-de | hunspell-de-at | hunspell-de-ch
el: hunspell-el | myspell-el-gr
en-ca: hunspell-en-gb | hunspell-en-us
en-gb: hunspell-en-gb | hunspell-en-us
en-za: hunspell-en-gb | hunspell-en-us
eo: myspell-eo
es-ar: hunspell-es | myspell-es
es-cl: hunspell-es | myspell-es
es-es: hunspell-es | myspell-es
es-mx: hunspell-es | myspell-es
et: myspell-et
eu: hunspell-eu
fa: myspell-fa
fi: xul-ext-mozvoikko
fr: hunspell-fr | myspell-fr | myspell-fr-gut
ga-ie: myspell-ga
gd: hunspell-gd | myspell-gd
gl: hunspell-gl-es | hunspell-gl
gu-in: hunspell-gu
he: hunspell-he | myspell-he
hi-in: hunspell-hi
hr: hunspell-hr
hu: hunspell-hu | myspell-hu
hy-am: myspell-hy
id: hunspell-id
is: hunspell-is
it: hunspell-it
kk: hunspell-kk
ko: hunspell-ko
ku: myspell-ku
lt: hunspell-lt
lv: hunspell-lv | myspell-lv
ml: hunspell-ml
nb-no: myspell-nb
ne-np: hunspell-ne
nl: hunspell-nl
nn-no: myspell-nn
oc: hunspell-oc
pl: hunspell-pl | myspell-pl
pt-br: hunspell-pt-br | myspell-pt-br
pt-pt: hunspell-pt-pt | myspell-pt-pt
ro: hunspell-ro
ru: hunspell-ru | myspell-ru
si: hunspell-si
sk: hunspell-sk | myspell-sk
sl: hunspell-sl
sq: myspell-sq
sr: hunspell-sr
sv-se: hunspell-sv-se
te: hunspell-te
th: hunspell-th
uk: hunspell-uk | myspell-uk
uz: hunspell-uz
vi: hunspell-vi

8
debian/l10n_revs.py vendored Normal file
View file

@ -0,0 +1,8 @@
import json
import sys
data = json.load(sys.stdin)
for k, v in sorted(data.items()):
if 'linux64' in v['platforms']:
print('{}:{}'.format(k, v['revision']))

50
debian/latest_nightly.py vendored Normal file
View file

@ -0,0 +1,50 @@
#!/usr/bin/env python3
import os
import re
import sys
import http.client
import urllib.request, urllib.error, urllib.parse
import urllib.parse
def main():
product = sys.argv[1]
conn = http.client.HTTPSConnection('download.mozilla.org')
conn.request('HEAD', '/?product=%s-latest&os=linux&lang=en-US' % product)
res = conn.getresponse()
assert res.status == 302
location = res.getheader('Location')
if '-' in product:
product, variant = product.split('-', 1)
else:
variant = ''
u = urllib.parse.urlparse(location)
p = u.path.split('/')
assert p[0] == ''
assert p[1] == 'pub'
assert p[2] == product
assert p[3] in ('releases', 'nightly')
if p[3] == 'nightly':
filename = os.path.basename(location)
assert filename.startswith(product + '-')
version = filename[len(product) + 1:]
m = re.match(r'([0-9]+(?:\.[0-9]+)*(?:[ab][0-9]+)?)\.', version)
assert m
version = m.group(1)
url = location.replace('.tar.bz2', '.txt')
assert url != location
f = urllib.request.urlopen(url.replace('-l10n', ''))
print(version, ' '.join(l.decode().rstrip() for l in f.readlines()))
f.close()
elif p[3] == 'releases':
version = p[4]
print(version)
if __name__ == '__main__':
main()

14
debian/make.mk vendored Normal file
View file

@ -0,0 +1,14 @@
lazy = $(eval $(1) = $$(if $$(___$(1)),,$$(eval ___$(1) := $(2)))$$(___$(1)))
letters = a b c d e f g h i j k l m n o p q r s t u v w x y z
lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1))))))))))))))))))))))))))
uc = $(subst a,A,$(subst b,B,$(subst c,C,$(subst d,D,$(subst e,E,$(subst f,F,$(subst g,G,$(subst h,H,$(subst i,I,$(subst j,J,$(subst k,K,$(subst l,L,$(subst m,M,$(subst n,N,$(subst o,O,$(subst p,P,$(subst q,Q,$(subst r,R,$(subst s,S,$(subst t,T,$(subst u,U,$(subst v,V,$(subst w,W,$(subst x,X,$(subst y,Y,$(subst z,Z,$1))))))))))))))))))))))))))
__VARS := $(.VARIABLES)
dump:
@$(foreach var,$(sort $(filter-out $(__VARS) __VARS CR define_package download_package preprocess system_lib ___%,$(.VARIABLES))),echo '$(var) = $(subst ','\'',$(subst \,\\,$($(var))))';)
dump-%:
@echo '$(subst ','\'',$(subst \,\\,$($*)))'
.PHONY: dump

1
debian/mls.key vendored Normal file
View file

@ -0,0 +1 @@
91e66841-a83b-487f-9b5d-e460f5225ebf

4
debian/noinstall.in vendored Normal file
View file

@ -0,0 +1,4 @@
usr/bin/@browser@
usr/lib/@browser@/removed-files
usr/lib/@browser@/@browser@-bin
usr/lib/@browser@/browser/defaults/preferences/firefox-l10n.js

View file

@ -0,0 +1,47 @@
From: Mike Hommey <mh@glandium.org>
Date: Mon, 27 Dec 2010 10:44:28 +0100
Subject: Add a 2 minutes timeout on xpcshell tests
---
testing/xpcshell/runxpcshelltests.py | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/testing/xpcshell/runxpcshelltests.py b/testing/xpcshell/runxpcshelltests.py
index ed0885e..03d9d04 100755
--- a/testing/xpcshell/runxpcshelltests.py
+++ b/testing/xpcshell/runxpcshelltests.py
@@ -10,6 +10,7 @@ import os
import platform
import random
import re
+import select
import shlex
import shutil
import signal
@@ -922,9 +923,23 @@ class XPCShellTestThread(Thread):
if self.interactive:
self.log.info("%s | Process ID: %d" % (name, self.proc_ident))
- # Communicate returns a tuple of (stdout, stderr), however we always
- # redirect stderr to stdout, so the second element is ignored.
- process_output, _ = self.communicate(proc)
+ if self.pStdout == PIPE:
+ process_stdout = ""
+ while True:
+ (r, w, e) = select.select([proc.stdout], [], [], 120)
+ if len(r) == 0:
+ process_stdout += "TEST-UNEXPECTED-FAIL | %s | application timed out after 120 seconds with no output" % (test)
+ proc.kill()
+ break
+ line = proc.stdout.read(1)
+ if line == "":
+ break
+ process_stdout += line
+ proc.wait()
+ else:
+ # Communicate returns a tuple of (stdout, stderr), however we always
+ # redirect stderr to stdout, so the second element is ignored.
+ process_output, _ = self.communicate(proc)
if self.interactive:
# Not sure what else to do here...

View file

@ -0,0 +1,34 @@
From: Mike Hommey <glandium@debian.org>
Date: Sat, 21 Jun 2008 03:09:21 +0200
Subject: Add another preferences directory for applications:
preferences/syspref
It was existing in previous versions of iceweasel as a symlink to
/etc/iceweasel/pref.
This has the side effect to make these preferences there work again, and
to disable the "set as default browser" dialog.
---
toolkit/xre/nsXREDirProvider.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
index 9c94cb8..1be170f4 100644
--- a/toolkit/xre/nsXREDirProvider.cpp
+++ b/toolkit/xre/nsXREDirProvider.cpp
@@ -500,6 +500,7 @@ static const char* const kAppendPrefDir[] = {"defaults", "preferences",
static const char* const kAppendBackgroundTasksPrefDir[] = {
"defaults", "backgroundtasks", nullptr};
#endif
+static const char *const kAppendSysPrefDir[] = { "defaults", "syspref", nullptr };
NS_IMETHODIMP
nsXREDirProvider::GetFiles(const char* aProperty,
@@ -517,6 +518,7 @@ nsXREDirProvider::GetFiles(const char* aProperty,
LoadDirIntoArray(mXULAppDir, kAppendBackgroundTasksPrefDir, directories);
}
#endif
+ LoadDirIntoArray(mXULAppDir, kAppendSysPrefDir, directories);
rv = NS_NewArrayEnumerator(aResult, directories, NS_GET_IID(nsIFile));
} else if (!strcmp(aProperty, NS_APP_CHROME_DIR_LIST)) {

View file

@ -0,0 +1,20 @@
From: Mike Hommey <mh@glandium.org>
Date: Mon, 16 Dec 2013 10:53:58 +0900
Subject: Add debian/extra-stuff to upstream build system directory traversal
---
moz.build | 3 +++
1 file changed, 3 insertions(+)
diff --git a/moz.build b/moz.build
index a931749..adcaaf0 100644
--- a/moz.build
+++ b/moz.build
@@ -231,4 +231,7 @@ SPHINX_TREES["content-security"] = "docs/content-security"
SPHINX_TREES["jsloader"] = "docs/jsloader"
+if not CONFIG["LIBXUL_SDK"]:
+ DIRS += ["debian/extra-stuff"]
+
include("build/templates.mozbuild")

View file

@ -0,0 +1,21 @@
From: Mike Hommey <mh@glandium.org>
Date: Wed, 24 Jan 2024 08:48:37 +0900
Subject: Adjust our gfx/skia/moz.build patch to upstream changes
---
gfx/skia/moz.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build
index 2a5f7f1..4178db8 100644
--- a/gfx/skia/moz.build
+++ b/gfx/skia/moz.build
@@ -382,7 +382,7 @@ UNIFIED_SOURCES += [
]
# Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110606
-if CONFIG['CC_TYPE'] == 'gcc' and CONFIG['CPU_ARCH'] == 'ppc64':
+if CONFIG['CC_TYPE'] == 'gcc' and CONFIG['TARGET_CPU'] == 'ppc64':
SOURCES += ['skia/src/sksl/SkSLInliner.cpp']
else:
UNIFIED_SOURCES += ['skia/src/sksl/SkSLInliner.cpp']

View file

@ -0,0 +1,81 @@
From: Mike Hommey <glandium@debian.org>
Date: Sat, 21 Jun 2008 02:48:46 +0200
Subject: Allow .js preference files to set locked prefs with lockPref()
Upstream now supports locked prefs, but with a different syntax from
the syntax we had supported for a while.
---
modules/libpref/parser/src/lib.rs | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/modules/libpref/parser/src/lib.rs b/modules/libpref/parser/src/lib.rs
index 3a0ad2c..c6e34be 100644
--- a/modules/libpref/parser/src/lib.rs
+++ b/modules/libpref/parser/src/lib.rs
@@ -11,8 +11,9 @@
//! ```text
//! <pref-file> = <pref>*
//! <pref> = <pref-spec> "(" <pref-name> "," <pref-value> <pref-attrs> ")" ";"
-//! <pref-spec> = "user_pref" | "pref" | "sticky_pref" // in default pref files
+//! <pref-spec> = "user_pref" | "pref" | "sticky_pref" | "lockPref" // in default pref files
//! <pref-spec> = "user_pref" // in user pref files
+//! <pref-spec> = "user_pref" | "pref" | "sticky_pref | lockPref"
//! <pref-name> = <string-literal>
//! <pref-value> = <string-literal> | "true" | "false" | <int-value>
//! <int-value> = <sign>? <int-literal>
@@ -169,6 +170,7 @@ enum Token {
// Keywords
Pref, // pref
StickyPref, // sticky_pref
+ LockPref, // lockPref
UserPref, // user_pref
True, // true
False, // false
@@ -291,7 +293,7 @@ struct KeywordInfo {
token: Token,
}
-const KEYWORD_INFOS: [KeywordInfo; 7] = [
+const KEYWORD_INFOS: [KeywordInfo; 8] = [
// These are ordered by frequency.
KeywordInfo {
string: b"pref",
@@ -321,6 +323,10 @@ const KEYWORD_INFOS: [KeywordInfo; 7] = [
string: b"sticky_pref",
token: Token::StickyPref,
},
+ KeywordInfo {
+ string: b"lockPref",
+ token: Token::LockPref,
+ },
];
struct Parser<'t> {
@@ -373,14 +379,15 @@ impl<'t> Parser<'t> {
// this will be either the first token of a new pref, or EOF.
loop {
// <pref-spec>
- let (pref_value_kind, mut is_sticky) = match token {
+ let (pref_value_kind, mut is_sticky, mut is_locked) = match token {
Token::Pref if self.kind == PrefValueKind::Default => {
- (PrefValueKind::Default, false)
+ (PrefValueKind::Default, false, false)
}
Token::StickyPref if self.kind == PrefValueKind::Default => {
- (PrefValueKind::Default, true)
+ (PrefValueKind::Default, true, false)
}
- Token::UserPref => (PrefValueKind::User, false),
+ Token::LockPref => (PrefValueKind::Default, false, true),
+ Token::UserPref => (PrefValueKind::User, false, false),
Token::SingleChar(EOF) => return !self.has_errors,
_ => {
token = self.error_and_recover(
@@ -490,7 +497,6 @@ impl<'t> Parser<'t> {
};
// ("," <pref-attr>)* // default pref files only
- let mut is_locked = false;
let mut has_attrs = false;
if self.kind == PrefValueKind::Default {
let ok = loop {

View file

@ -0,0 +1,31 @@
From: Mike Hommey <mh@glandium.org>
Date: Sun, 14 Aug 2022 15:05:23 +0900
Subject: Allow to override rust LTO flag
---
config/makefiles/rust.mk | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/config/makefiles/rust.mk b/config/makefiles/rust.mk
index ba024e87..4621b2d 100644
--- a/config/makefiles/rust.mk
+++ b/config/makefiles/rust.mk
@@ -101,8 +101,9 @@ ifndef rustflags_sancov
# Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045.
ifndef MOZ_CODE_COVERAGE
ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
-cargo_rustc_flags += -Clto$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat)
+cargo_rustc_flags += $(or $(DEBIAN_RUST_LTO),-Clto$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat))
endif
+ifneq (-Clto=off,$(DEBIAN_RUST_LTO))
# We need -Cembed-bitcode=yes for all crates when using -Clto.
RUSTFLAGS += -Cembed-bitcode=yes
endif
@@ -110,6 +111,7 @@ endif
endif
endif
endif
+endif
ifdef CARGO_INCREMENTAL
export CARGO_INCREMENTAL

View file

@ -0,0 +1,21 @@
From: Mike Hommey <mh@glandium.org>
Date: Tue, 22 May 2018 07:51:56 +0900
Subject: Avoid using vmrs/vmsr on armel
---
dom/media/webaudio/blink/DenormalDisabler.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dom/media/webaudio/blink/DenormalDisabler.h b/dom/media/webaudio/blink/DenormalDisabler.h
index 646482b..8803a7d 100644
--- a/dom/media/webaudio/blink/DenormalDisabler.h
+++ b/dom/media/webaudio/blink/DenormalDisabler.h
@@ -45,7 +45,7 @@ namespace WebCore {
# define HAVE_DENORMAL 1
#endif
-#if defined(__arm__) || defined(__aarch64__)
+#if (defined(__arm__) && !defined(__SOFTFP__)) || defined(__aarch64__)
# define HAVE_DENORMAL 1
#endif

View file

@ -0,0 +1,37 @@
From: Mike Hommey <mh@glandium.org>
Date: Thu, 12 Nov 2009 17:18:31 +0100
Subject: Avoid wrong sessionstore data to keep windows out of user sight
It happens that sessionstore can keep wrong information for the window
position or minimized state. Workaround this until the real bug is found
and fixed (probably in xulrunner).
Closes: #552426, #553453
---
browser/components/sessionstore/SessionStore.sys.mjs | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
index be02937..9cd6ff0 100644
--- a/browser/components/sessionstore/SessionStore.sys.mjs
+++ b/browser/components/sessionstore/SessionStore.sys.mjs
@@ -6589,7 +6589,7 @@ var SessionStoreInternal = {
// _getWindowDimension.
let desktopToCssScale =
aWindow.desktopToDeviceScale / aWindow.devicePixelRatio;
- aWindow.moveTo(aLeft * desktopToCssScale, aTop * desktopToCssScale);
+ aWindow.moveTo((aLeft < -aWidth) ? 0 : aLeft * desktopToCssScale, (aTop < -aHeight) ? 0 : aTop * desktopToCssScale);
}
if (
aWidth &&
@@ -6617,9 +6617,8 @@ var SessionStoreInternal = {
case "minimized":
if (aSizeModeBeforeMinimized == "maximized") {
aWindow.maximize();
+ break;
}
- aWindow.minimize();
- break;
case "normal":
aWindow.restore();
break;

View file

@ -0,0 +1,18 @@
From: Mike Hommey <mh@glandium.org>
Date: Wed, 5 Mar 2025 07:16:17 +0900
Subject: Disable format-security warning when disabling format warning
---
js/src/xsum/moz.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/js/src/xsum/moz.build b/js/src/xsum/moz.build
index dc7a4f2..30f64cd 100644
--- a/js/src/xsum/moz.build
+++ b/js/src/xsum/moz.build
@@ -17,4 +17,4 @@ SOURCES += [
]
# Suppress warnings in third-party code.
-SOURCES['xsum.cpp'].flags += ['-Wno-implicit-fallthrough', '-Wno-format', '-Wno-unused-value']
+SOURCES['xsum.cpp'].flags += ['-Wno-implicit-fallthrough', '-Wno-format', '-Wno-format-security', '-Wno-unused-value']

View file

@ -0,0 +1,21 @@
From: Mike Hommey <mh@glandium.org>
Date: Fri, 17 Feb 2012 17:47:15 +0100
Subject: Don't auto-disable extensions in system directories
---
browser/app/profile/firefox.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
index 412e087..734caec 100644
--- a/browser/app/profile/firefox.js
+++ b/browser/app/profile/firefox.js
@@ -58,7 +58,7 @@ pref("extensions.systemAddon.update.enabled", true);
// Disable add-ons that are not installed by the user in all scopes by default.
// See the SCOPE constants in AddonManager.sys.mjs for values to use here.
-pref("extensions.autoDisableScopes", 15);
+pref("extensions.autoDisableScopes", 3);
// Scopes to scan for changes at startup.
pref("extensions.startupScanScopes", 0);

View file

@ -0,0 +1,23 @@
From: Mike Hommey <mh@glandium.org>
Date: Thu, 9 Jun 2016 14:45:44 +0900
Subject: Don't build image/ gtests
Building them causes an ICE with GCC 4.7. As they are not part of what
is shipped, and not currently run either, just skip building them.
---
image/moz.build | 2 --
1 file changed, 2 deletions(-)
diff --git a/image/moz.build b/image/moz.build
index 7fbd88d..689bf57 100644
--- a/image/moz.build
+++ b/image/moz.build
@@ -5,8 +5,6 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DIRS += ["build", "decoders", "encoders"]
-if CONFIG["ENABLE_TESTS"]:
- DIRS += ["test/gtest"]
if CONFIG["FUZZING_INTERFACES"]:
DIRS += ["test/fuzzing"]

View file

@ -0,0 +1,24 @@
From: Mike Hommey <mh@glandium.org>
Date: Sat, 27 Nov 2021 06:49:44 +0900
Subject: Fix math_private.h for i386 FTBFS
---
modules/fdlibm/src/math_private.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h
index 45f7401..29ca8a8 100644
--- a/modules/fdlibm/src/math_private.h
+++ b/modules/fdlibm/src/math_private.h
@@ -30,7 +30,11 @@
* Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t
*/
+#if defined __FLT_EVAL_METHOD__ && (__FLT_EVAL_METHOD__ == 2)
+typedef long double __double_t;
+#else
typedef double __double_t;
+#endif
typedef __double_t double_t;
typedef float __float_t;

View file

@ -0,0 +1,21 @@
From: Mike Hommey <mh@glandium.org>
Date: Wed, 21 Sep 2022 08:48:27 +0900
Subject: Relax nodejs minimum version
---
python/mozbuild/mozbuild/nodeutil.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python/mozbuild/mozbuild/nodeutil.py b/python/mozbuild/mozbuild/nodeutil.py
index 3721929..3b5d37b 100644
--- a/python/mozbuild/mozbuild/nodeutil.py
+++ b/python/mozbuild/mozbuild/nodeutil.py
@@ -10,7 +10,7 @@ from mozboot.util import get_tools_dir
from mozfile import which
from packaging.version import Version
-NODE_MIN_VERSION = Version("12.22.12")
+NODE_MIN_VERSION = Version("12.22")
NPM_MIN_VERSION = Version("6.14.16")

View file

@ -0,0 +1,56 @@
From: Mike Hommey <mh@glandium.org>
Date: Mon, 15 Aug 2022 14:49:40 +0900
Subject: Remove workaround for old libstdc++ problem, which now causes
problems with GCC 12 on arm
---
intl/icu/source/common/unicode/std_string.h | 5 -----
intl/icu/source/common/utypeinfo.h | 3 ---
intl/icu/source/io/unicode/ustream.h | 4 ----
3 files changed, 12 deletions(-)
diff --git a/intl/icu/source/common/unicode/std_string.h b/intl/icu/source/common/unicode/std_string.h
index bf872301..c8388ef 100644
--- a/intl/icu/source/common/unicode/std_string.h
+++ b/intl/icu/source/common/unicode/std_string.h
@@ -29,11 +29,6 @@
#if U_SHOW_CPLUSPLUS_API
-// Workaround for a libstdc++ bug before libstdc++4.6 (2011).
-// https://bugs.llvm.org/show_bug.cgi?id=13364
-#if defined(__GLIBCXX__)
-namespace std { class type_info; }
-#endif
#include <string>
#endif /* U_SHOW_CPLUSPLUS_API */
diff --git a/intl/icu/source/common/utypeinfo.h b/intl/icu/source/common/utypeinfo.h
index c666373..5d97240 100644
--- a/intl/icu/source/common/utypeinfo.h
+++ b/intl/icu/source/common/utypeinfo.h
@@ -24,9 +24,6 @@
#include <exception>
using std::exception;
#endif
-#if defined(__GLIBCXX__)
-namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
-#endif
#include <typeinfo> // for 'typeid' to work
#endif
diff --git a/intl/icu/source/io/unicode/ustream.h b/intl/icu/source/io/unicode/ustream.h
index 927342c..93ef51c 100644
--- a/intl/icu/source/io/unicode/ustream.h
+++ b/intl/icu/source/io/unicode/ustream.h
@@ -34,10 +34,6 @@
* C++ I/O stream API.
*/
-#if defined(__GLIBCXX__)
-namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
-#endif
-
#include <iostream>
U_NAMESPACE_BEGIN

View file

@ -0,0 +1,21 @@
From: Mike Hommey <glandium@debian.org>
Date: Thu, 13 Mar 2008 20:30:19 +0100
Subject: Set DPI to system settings
---
modules/libpref/init/StaticPrefList.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
index acadd3a..27e0648 100644
--- a/modules/libpref/init/StaticPrefList.yaml
+++ b/modules/libpref/init/StaticPrefList.yaml
@@ -9563,7 +9563,7 @@
# interpretation of physical units such as "pt".
- name: layout.css.dpi
type: int32_t
- value: -1
+ value: 0
mirror: always
# Whether to always underline links.

View file

@ -0,0 +1,26 @@
From: Mike Hommey <mh@glandium.org>
Date: Sun, 2 Apr 2017 06:33:19 +0900
Subject: Use the Mozilla Location Service key when the Google Key is not there
---
modules/libpref/init/all.js | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
index 95bcd71..f3a6dcc 100644
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -3077,7 +3077,12 @@ pref("network.tcp.keepalive.idle_time", 600); // seconds; 10 mins
// All the Geolocation preferences are here.
//
-pref("geo.provider.network.url", "https://www.googleapis.com/geolocation/v1/geolocate?key=%GOOGLE_LOCATION_SERVICE_API_KEY%");
+#if defined(GOOGLE_LOCATION_SERVICE_API_KEY)
+ pref("geo.provider.network.url", "https://www.googleapis.com/geolocation/v1/geolocate?key=%GOOGLE_LOCATION_SERVICE_API_KEY%");
+#else
+ // Use MLS on Nightly and early Beta.
+ pref("geo.provider.network.url", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
+#endif
// Timeout to wait before sending the location request.
pref("geo.provider.network.timeToWaitBeforeSending", 5000);

View file

@ -0,0 +1,29 @@
From: Mike Hommey <mh@glandium.org>
Date: Tue, 11 Jul 2023 06:34:59 +0900
Subject: Work around GCC ICE on ppc64el
---
gfx/skia/moz.build | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/gfx/skia/moz.build b/gfx/skia/moz.build
index b096171..2a5f7f1 100644
--- a/gfx/skia/moz.build
+++ b/gfx/skia/moz.build
@@ -379,7 +379,15 @@ UNIFIED_SOURCES += [
'skia/src/sksl/SkSLConstantFolder.cpp',
'skia/src/sksl/SkSLContext.cpp',
'skia/src/sksl/SkSLErrorReporter.cpp',
- 'skia/src/sksl/SkSLInliner.cpp',
+]
+
+# Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110606
+if CONFIG['CC_TYPE'] == 'gcc' and CONFIG['CPU_ARCH'] == 'ppc64':
+ SOURCES += ['skia/src/sksl/SkSLInliner.cpp']
+else:
+ UNIFIED_SOURCES += ['skia/src/sksl/SkSLInliner.cpp']
+
+UNIFIED_SOURCES += [
'skia/src/sksl/SkSLIntrinsicList.cpp',
'skia/src/sksl/SkSLMangler.cpp',
'skia/src/sksl/SkSLModule.cpp',

View file

@ -0,0 +1,24 @@
From: Mike Hommey <mh@glandium.org>
Date: Wed, 5 Jul 2023 05:25:35 +0900
Subject: Work around https://sourceware.org/bugzilla/show_bug.cgi?id=30578
---
media/ffvpx/config_unix64.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/media/ffvpx/config_unix64.h b/media/ffvpx/config_unix64.h
index 7d63f47..086eaa3 100644
--- a/media/ffvpx/config_unix64.h
+++ b/media/ffvpx/config_unix64.h
@@ -204,7 +204,11 @@
#define HAVE_SYNC_VAL_COMPARE_AND_SWAP 1
#define HAVE_CABS 0
#define HAVE_CEXP 0
+#ifdef FFMPEG_DISABLE_INLINE_ASM
+#define HAVE_INLINE_ASM 0
+#else
#define HAVE_INLINE_ASM 1
+#endif
#define HAVE_SYMVER 1
#define HAVE_X86ASM 1
#define HAVE_BIGENDIAN 0

18
debian/patches/series vendored Normal file
View file

@ -0,0 +1,18 @@
debian-hacks/Avoid-wrong-sessionstore-data-to-keep-windows-out-of.patch
debian-hacks/Add-another-preferences-directory-for-applications-p.patch
debian-hacks/Add-a-2-minutes-timeout-on-xpcshell-tests.patch
debian-hacks/Add-debian-extra-stuff-to-upstream-build-system-dire.patch
debian-hacks/Don-t-build-image-gtests.patch
debian-hacks/Use-the-Mozilla-Location-Service-key-when-the-Google.patch
debian-hacks/Avoid-using-vmrs-vmsr-on-armel.patch
debian-hacks/Fix-math_private.h-for-i386-FTBFS.patch
debian-hacks/Allow-to-override-rust-LTO-flag.patch
debian-hacks/Remove-workaround-for-old-libstdc-problem-which-now-.patch
debian-hacks/Relax-nodejs-minimum-version.patch
debian-hacks/Work-around-https-sourceware.org-bugzilla-show_bug.c.patch
debian-hacks/Allow-.js-preference-files-to-set-locked-prefs-with-.patch
debian-hacks/Set-DPI-to-system-settings.patch
debian-hacks/Don-t-auto-disable-extensions-in-system-directories.patch
debian-hacks/Work-around-GCC-ICE-on-ppc64el.patch
debian-hacks/Adjust-our-gfx-skia-moz.build-patch-to-upstream-chan.patch
debian-hacks/Disable-format-security-warning-when-disabling-forma.patch

673
debian/removed_conffiles vendored Normal file
View file

@ -0,0 +1,673 @@
iceweaselrc
pref/iceweasel.js
profile/bookmarks.html
profile/localstore.rdf
profile/chrome/userChrome-example.css
profile/chrome/userContent-example.css
profile/mimeTypes.rdf
profile/prefs.js
searchplugins/common/debsearch.xml
searchplugins/common/duckduckgo.xml
searchplugins/locale/en-US/amazondotcom.xml
searchplugins/locale/en-US/bing.xml
searchplugins/locale/en-US/ddg.xml
searchplugins/locale/en-US/eBay.xml
searchplugins/locale/en-US/google.xml
searchplugins/locale/en-US/twitter.xml
searchplugins/locale/en-US/wikipedia.xml
searchplugins/locale/en-US/yahoo.xml
searchplugins/locale/ach/amazondotcom.xml
searchplugins/locale/ach/bing.xml
searchplugins/locale/ach/ddg.xml
searchplugins/locale/ach/eBay.xml
searchplugins/locale/ach/google.xml
searchplugins/locale/ach/twitter.xml
searchplugins/locale/ach/wikipedia.xml
searchplugins/locale/ach/yahoo.xml
searchplugins/locale/af/amazondotcom.xml
searchplugins/locale/af/bing.xml
searchplugins/locale/af/ddg.xml
searchplugins/locale/af/eBay.xml
searchplugins/locale/af/google.xml
searchplugins/locale/af/wikipedia-af.xml
searchplugins/locale/af/yahoo.xml
searchplugins/locale/an/bing.xml
searchplugins/locale/an/ddg.xml
searchplugins/locale/an/eBay-es.xml
searchplugins/locale/an/google.xml
searchplugins/locale/an/twitter.xml
searchplugins/locale/an/wikipedia-an.xml
searchplugins/locale/an/yahoo-es.xml
searchplugins/locale/ar/amazondotcom.xml
searchplugins/locale/ar/bing.xml
searchplugins/locale/ar/ddg.xml
searchplugins/locale/ar/eBay.xml
searchplugins/locale/ar/google.xml
searchplugins/locale/ar/wikipedia-ar.xml
searchplugins/locale/ar/yahoo.xml
searchplugins/locale/as/amazondotcom.xml
searchplugins/locale/as/creativecommons.xml
searchplugins/locale/as/ddg.xml
searchplugins/locale/as/eBay-in.xml
searchplugins/locale/as/google.xml
searchplugins/locale/as/wikipedia-as.xml
searchplugins/locale/as/yahoo-in.xml
searchplugins/locale/ast/bing.xml
searchplugins/locale/ast/ddg.xml
searchplugins/locale/ast/diccionariu-alla.xml
searchplugins/locale/ast/eBay-es.xml
searchplugins/locale/ast/google.xml
searchplugins/locale/ast/wikipedia-ast.xml
searchplugins/locale/ast/yahoo-es.xml
searchplugins/locale/az/amazondotcom.xml
searchplugins/locale/az/azerdict.xml
searchplugins/locale/az/bing.xml
searchplugins/locale/az/ddg.xml
searchplugins/locale/az/eBay.xml
searchplugins/locale/az/google.xml
searchplugins/locale/az/wikipedia-az.xml
searchplugins/locale/az/yandex-az.xml
searchplugins/locale/be/be-x-old.wikipedia.org.xml
searchplugins/locale/be/be.wikipedia.org.xml
searchplugins/locale/be/ddg.xml
searchplugins/locale/be/google.xml
searchplugins/locale/be/ru.wikipedia.org-be.xml
searchplugins/locale/be/tut.by.xml
searchplugins/locale/be/yahoo.xml
searchplugins/locale/be/yandex.by.xml
searchplugins/locale/bg/911bg.xml
searchplugins/locale/bg/amazondotcom.xml
searchplugins/locale/bg/ddg.xml
searchplugins/locale/bg/diribg.xml
searchplugins/locale/bg/google.xml
searchplugins/locale/bg/pe-bg.xml
searchplugins/locale/bg/portalbgdict.xml
searchplugins/locale/bg/wikipedia-bg.xml
searchplugins/locale/bn-BD/bing.xml
searchplugins/locale/bn-BD/ddg.xml
searchplugins/locale/bn-BD/google.xml
searchplugins/locale/bn-BD/wikipedia-bn.xml
searchplugins/locale/bn-BD/yahoo.xml
searchplugins/locale/bn-IN/amazondotcom.xml
searchplugins/locale/bn-IN/bing.xml
searchplugins/locale/bn-IN/ddg.xml
searchplugins/locale/bn-IN/eBay-in.xml
searchplugins/locale/bn-IN/google.xml
searchplugins/locale/bn-IN/rediff.xml
searchplugins/locale/bn-IN/technorati.xml
searchplugins/locale/bn-IN/wikipedia-bn.xml
searchplugins/locale/bn-IN/yahoo-in.xml
searchplugins/locale/br/amazon-france.xml
searchplugins/locale/br/ddg.xml
searchplugins/locale/br/freelang.xml
searchplugins/locale/br/google.xml
searchplugins/locale/br/klask.xml
searchplugins/locale/br/wikipedia-br.xml
searchplugins/locale/br/yahoo-france.xml
searchplugins/locale/bs/ddg.xml
searchplugins/locale/bs/eBay.xml
searchplugins/locale/bs/google.xml
searchplugins/locale/bs/pik.xml
searchplugins/locale/bs/tajpi.xml
searchplugins/locale/bs/twitter.xml
searchplugins/locale/bs/wikipedia-bs.xml
searchplugins/locale/bs/yahoo.xml
searchplugins/locale/ca/bing.xml
searchplugins/locale/ca/ddg.xml
searchplugins/locale/ca/diec2.xml
searchplugins/locale/ca/google.xml
searchplugins/locale/ca/twitter.xml
searchplugins/locale/ca/wikipedia-ca.xml
searchplugins/locale/cs/ddg.xml
searchplugins/locale/cs/google.xml
searchplugins/locale/cs/heureka-cz.xml
searchplugins/locale/cs/mapy-cz.xml
searchplugins/locale/cs/seznam-cz.xml
searchplugins/locale/cs/slunecnice-cz.xml
searchplugins/locale/cs/wikipedia-cz.xml
searchplugins/locale/cy/amazon-en-GB.xml
searchplugins/locale/cy/creativecommons.xml
searchplugins/locale/cy/ddg.xml
searchplugins/locale/cy/eBay-en-GB.xml
searchplugins/locale/cy/google.xml
searchplugins/locale/cy/palasprint.xml
searchplugins/locale/cy/termau.xml
searchplugins/locale/cy/wikipedia-cy.xml
searchplugins/locale/cy/yahoo-en-GB.xml
searchplugins/locale/da/amazon-co-uk.xml
searchplugins/locale/da/bing.xml
searchplugins/locale/da/ddg.xml
searchplugins/locale/da/eBay.xml
searchplugins/locale/da/google.xml
searchplugins/locale/da/wikipedia-da.xml
searchplugins/locale/de/amazondotcom-de.xml
searchplugins/locale/de/bing.xml
searchplugins/locale/de/ddg.xml
searchplugins/locale/de/eBay-de.xml
searchplugins/locale/de/google.xml
searchplugins/locale/de/leo_ende_de.xml
searchplugins/locale/de/wikipedia-de.xml
searchplugins/locale/de/yahoo-de.xml
searchplugins/locale/dsb/amazondotcom-de.xml
searchplugins/locale/dsb/bing.xml
searchplugins/locale/dsb/ddg.xml
searchplugins/locale/dsb/eBay-de.xml
searchplugins/locale/dsb/google.xml
searchplugins/locale/dsb/leo_ende_de.xml
searchplugins/locale/dsb/wikipedia-dsb.xml
searchplugins/locale/dsb/yahoo-de.xml
searchplugins/locale/el/amazon-en-GB.xml
searchplugins/locale/el/bing.xml
searchplugins/locale/el/ddg.xml
searchplugins/locale/el/eBay-en-GB.xml
searchplugins/locale/el/google.xml
searchplugins/locale/el/wikipedia-el.xml
searchplugins/locale/el/yahoo.xml
searchplugins/locale/en-GB/amazon-en-GB.xml
searchplugins/locale/en-GB/bing.xml
searchplugins/locale/en-GB/chambers-en-GB.xml
searchplugins/locale/en-GB/ddg.xml
searchplugins/locale/en-GB/eBay-en-GB.xml
searchplugins/locale/en-GB/google.xml
searchplugins/locale/en-GB/twitter.xml
searchplugins/locale/en-GB/wikipedia.xml
searchplugins/locale/en-GB/yahoo-en-GB.xml
searchplugins/locale/en-ZA/amazondotcom.xml
searchplugins/locale/en-ZA/bing.xml
searchplugins/locale/en-ZA/ddg.xml
searchplugins/locale/en-ZA/google.xml
searchplugins/locale/en-ZA/twitter.xml
searchplugins/locale/en-ZA/wikipedia.xml
searchplugins/locale/eo/amazondotcom.xml
searchplugins/locale/eo/bing.xml
searchplugins/locale/eo/creativecommons.xml
searchplugins/locale/eo/ddg.xml
searchplugins/locale/eo/eBay.xml
searchplugins/locale/eo/google.xml
searchplugins/locale/eo/reta-vortaro.xml
searchplugins/locale/eo/wikipedia-eo.xml
searchplugins/locale/eo/yahoo.xml
searchplugins/locale/es-AR/amazondotcom.xml
searchplugins/locale/es-AR/creativecommons.xml
searchplugins/locale/es-AR/ddg.xml
searchplugins/locale/es-AR/drae.xml
searchplugins/locale/es-AR/google.xml
searchplugins/locale/es-AR/mercadolibre-ar.xml
searchplugins/locale/es-AR/wikipedia-es.xml
searchplugins/locale/es-AR/yahoo-ar.xml
searchplugins/locale/es-CL/bing.xml
searchplugins/locale/es-CL/ddg.xml
searchplugins/locale/es-CL/drae.xml
searchplugins/locale/es-CL/google.xml
searchplugins/locale/es-CL/mercadolibre-cl.xml
searchplugins/locale/es-CL/wikipedia-es.xml
searchplugins/locale/es-CL/yahoo-cl.xml
searchplugins/locale/es-ES/bing.xml
searchplugins/locale/es-ES/ddg.xml
searchplugins/locale/es-ES/drae.xml
searchplugins/locale/es-ES/eBay-es.xml
searchplugins/locale/es-ES/google.xml
searchplugins/locale/es-ES/twitter.xml
searchplugins/locale/es-ES/wikipedia-es.xml
searchplugins/locale/es-ES/yahoo-es.xml
searchplugins/locale/es-MX/bing.xml
searchplugins/locale/es-MX/ddg.xml
searchplugins/locale/es-MX/google.xml
searchplugins/locale/es-MX/mercadolibre-mx.xml
searchplugins/locale/es-MX/wikipedia-es.xml
searchplugins/locale/es-MX/yahoo-mx.xml
searchplugins/locale/et/ddg.xml
searchplugins/locale/et/eBay.xml
searchplugins/locale/et/eki-ee.xml
searchplugins/locale/et/google.xml
searchplugins/locale/et/neti-ee.xml
searchplugins/locale/et/osta-ee.xml
searchplugins/locale/et/wikipedia-et.xml
searchplugins/locale/eu/amazon-en-GB.xml
searchplugins/locale/eu/bing.xml
searchplugins/locale/eu/creativecommons.xml
searchplugins/locale/eu/ddg.xml
searchplugins/locale/eu/eBay-es.xml
searchplugins/locale/eu/elebila.xml
searchplugins/locale/eu/google.xml
searchplugins/locale/eu/wikipedia-eu.xml
searchplugins/locale/eu/yahoo.xml
searchplugins/locale/fa/amazondotcom.xml
searchplugins/locale/fa/answers.xml
searchplugins/locale/fa/bing.xml
searchplugins/locale/fa/ddg.xml
searchplugins/locale/fa/google.xml
searchplugins/locale/fa/wikipedia-fa.xml
searchplugins/locale/fa/yahoo.xml
searchplugins/locale/ff/amazon-france.xml
searchplugins/locale/ff/bing.xml
searchplugins/locale/ff/cnrtl-tlfi-fr.xml
searchplugins/locale/ff/ddg.xml
searchplugins/locale/ff/eBay-france.xml
searchplugins/locale/ff/google.xml
searchplugins/locale/ff/wikipedia-fr.xml
searchplugins/locale/ff/yahoo-france.xml
searchplugins/locale/fi/bing.xml
searchplugins/locale/fi/bookplus-fi.xml
searchplugins/locale/fi/ddg.xml
searchplugins/locale/fi/eBay-fi.xml
searchplugins/locale/fi/google.xml
searchplugins/locale/fi/wikipedia-fi.xml
searchplugins/locale/fi/yahoo-fi.xml
searchplugins/locale/fr/amazon-france.xml
searchplugins/locale/fr/bing.xml
searchplugins/locale/fr/cnrtl-tlfi-fr.xml
searchplugins/locale/fr/ddg.xml
searchplugins/locale/fr/eBay-france.xml
searchplugins/locale/fr/google.xml
searchplugins/locale/fr/wikipedia-fr.xml
searchplugins/locale/fr/yahoo-france.xml
searchplugins/locale/fy-NL/bing.xml
searchplugins/locale/fy-NL/bolcom-fy-NL.xml
searchplugins/locale/fy-NL/ddg.xml
searchplugins/locale/fy-NL/google.xml
searchplugins/locale/fy-NL/marktplaats-fy-NL.xml
searchplugins/locale/fy-NL/wikipedia-fy-NL.xml
searchplugins/locale/fy-NL/yahoo-fy-NL.xml
searchplugins/locale/ga-IE/amazon-en-GB.xml
searchplugins/locale/ga-IE/answers.xml
searchplugins/locale/ga-IE/creativecommons.xml
searchplugins/locale/ga-IE/ddg.xml
searchplugins/locale/ga-IE/eBay-en-GB.xml
searchplugins/locale/ga-IE/focal.xml
searchplugins/locale/ga-IE/google.xml
searchplugins/locale/ga-IE/twitter.xml
searchplugins/locale/ga-IE/wikipedia-ga-IE.xml
searchplugins/locale/ga-IE/yahoo-en-GB.xml
searchplugins/locale/gd/amazon-en-GB.xml
searchplugins/locale/gd/bbc-alba.xml
searchplugins/locale/gd/ddg.xml
searchplugins/locale/gd/duckduckgo.xml
searchplugins/locale/gd/faclair-beag.xml
searchplugins/locale/gd/google.xml
searchplugins/locale/gd/wikipedia-gd.xml
searchplugins/locale/gd/yahoo-en-GB.xml
searchplugins/locale/gl/amazon-en-GB.xml
searchplugins/locale/gl/creativecommons.xml
searchplugins/locale/gl/ddg.xml
searchplugins/locale/gl/eBay-es.xml
searchplugins/locale/gl/google.xml
searchplugins/locale/gl/wikipedia-gl.xml
searchplugins/locale/gl/yahoo-es.xml
searchplugins/locale/gu-IN/bing.xml
searchplugins/locale/gu-IN/ddg.xml
searchplugins/locale/gu-IN/eBay-in.xml
searchplugins/locale/gu-IN/google.xml
searchplugins/locale/gu-IN/gujaratilexicon.xml
searchplugins/locale/gu-IN/wikipedia-gu.xml
searchplugins/locale/gu-IN/yahoo-in.xml
searchplugins/locale/he/ddg.xml
searchplugins/locale/he/google.xml
searchplugins/locale/he/morfix-dic.xml
searchplugins/locale/he/wikipedia-he.xml
searchplugins/locale/he/yahoo.xml
searchplugins/locale/hi-IN/bing.xml
searchplugins/locale/hi-IN/ddg.xml
searchplugins/locale/hi-IN/eBay-in.xml
searchplugins/locale/hi-IN/google.xml
searchplugins/locale/hi-IN/wikipedia-hi.xml
searchplugins/locale/hi-IN/yahoo-in.xml
searchplugins/locale/hr/amazon-en-GB.xml
searchplugins/locale/hr/bing.xml
searchplugins/locale/hr/ddg.xml
searchplugins/locale/hr/eBay-en-GB.xml
searchplugins/locale/hr/eudict.xml
searchplugins/locale/hr/google.xml
searchplugins/locale/hr/twitter.xml
searchplugins/locale/hr/wikipedia-hr.xml
searchplugins/locale/hr/yahoo.xml
searchplugins/locale/hsb/amazondotcom-de.xml
searchplugins/locale/hsb/bing.xml
searchplugins/locale/hsb/ddg.xml
searchplugins/locale/hsb/eBay-de.xml
searchplugins/locale/hsb/google.xml
searchplugins/locale/hsb/leo_ende_de.xml
searchplugins/locale/hsb/wikipedia-hsb.xml
searchplugins/locale/hsb/yahoo-de.xml
searchplugins/locale/hu/ddg.xml
searchplugins/locale/hu/eBay-hu.xml
searchplugins/locale/hu/google.xml
searchplugins/locale/hu/sztaki-en-hu.xml
searchplugins/locale/hu/vatera.xml
searchplugins/locale/hu/wikipedia-hu.xml
searchplugins/locale/hy-AM/amazondotcom.xml
searchplugins/locale/hy-AM/ddg.xml
searchplugins/locale/hy-AM/eBay.xml
searchplugins/locale/hy-AM/google.xml
searchplugins/locale/hy-AM/list-am.xml
searchplugins/locale/hy-AM/wikipedia-hy.xml
searchplugins/locale/hy-AM/yahoo.xml
searchplugins/locale/id/ddg.xml
searchplugins/locale/id/google.xml
searchplugins/locale/id/wikipedia-id.xml
searchplugins/locale/id/yahoo-id.xml
searchplugins/locale/is/amazondotcom.xml
searchplugins/locale/is/bing.xml
searchplugins/locale/is/ddg.xml
searchplugins/locale/is/eBay.xml
searchplugins/locale/is/google.xml
searchplugins/locale/is/leit-is.xml
searchplugins/locale/is/wikipedia-is.xml
searchplugins/locale/is/yahoo.xml
searchplugins/locale/it/amazon-it.xml
searchplugins/locale/it/bing.xml
searchplugins/locale/it/ddg.xml
searchplugins/locale/it/eBay-it.xml
searchplugins/locale/it/google.xml
searchplugins/locale/it/hoepli.xml
searchplugins/locale/it/wikipedia-it.xml
searchplugins/locale/it/yahoo-it.xml
searchplugins/locale/ja/amazon-jp.xml
searchplugins/locale/ja/bing.xml
searchplugins/locale/ja/ddg.xml
searchplugins/locale/ja/google-jp.xml
searchplugins/locale/ja/oshiete-goo.xml
searchplugins/locale/ja/rakuten.xml
searchplugins/locale/ja/twitter-ja.xml
searchplugins/locale/ja/wikipedia-ja.xml
searchplugins/locale/ja/yahoo-jp-auctions.xml
searchplugins/locale/ja/yahoo-jp.xml
searchplugins/locale/kk/ddg.xml
searchplugins/locale/kk/flip.xml
searchplugins/locale/kk/google.xml
searchplugins/locale/kk/kaz-kk.xml
searchplugins/locale/kk/twitter.xml
searchplugins/locale/kk/wikipedia-kk.xml
searchplugins/locale/kk/yandex.xml
searchplugins/locale/km/amazondotcom.xml
searchplugins/locale/km/bing.xml
searchplugins/locale/km/ddg.xml
searchplugins/locale/km/eBay.xml
searchplugins/locale/km/google.xml
searchplugins/locale/km/twitter.xml
searchplugins/locale/km/wikipedia-km.xml
searchplugins/locale/km/yahoo.xml
searchplugins/locale/kn/amazondotcom.xml
searchplugins/locale/kn/bing.xml
searchplugins/locale/kn/ddg.xml
searchplugins/locale/kn/google.xml
searchplugins/locale/kn/kannadastore.xml
searchplugins/locale/kn/wikipedia-kn.xml
searchplugins/locale/kn/yahoo-in.xml
searchplugins/locale/ko/danawa-kr.xml
searchplugins/locale/ko/daum-kr.xml
searchplugins/locale/ko/ddg.xml
searchplugins/locale/ko/google.xml
searchplugins/locale/ko/naver-kr.xml
searchplugins/locale/ko/wikipedia-kr.xml
searchplugins/locale/lij/amazon-it.xml
searchplugins/locale/lij/bing.xml
searchplugins/locale/lij/ddg.xml
searchplugins/locale/lij/eBay-it.xml
searchplugins/locale/lij/google.xml
searchplugins/locale/lij/paroledigenova-lij.xml
searchplugins/locale/lij/wikipedia-lij.xml
searchplugins/locale/lij/yahoo-it.xml
searchplugins/locale/lt/amazondotcom.xml
searchplugins/locale/lt/bing.xml
searchplugins/locale/lt/ddg.xml
searchplugins/locale/lt/eBay.xml
searchplugins/locale/lt/google.xml
searchplugins/locale/lt/twitter.xml
searchplugins/locale/lt/wikipedia-lt.xml
searchplugins/locale/lv/ddg.xml
searchplugins/locale/lv/dict-enlv.xml
searchplugins/locale/lv/google.xml
searchplugins/locale/lv/salidzinilv.xml
searchplugins/locale/lv/sslv.xml
searchplugins/locale/lv/wikipedia-lv.xml
searchplugins/locale/lv/yahoo.xml
searchplugins/locale/mai/bing.xml
searchplugins/locale/mai/ddg.xml
searchplugins/locale/mai/eBay-in.xml
searchplugins/locale/mai/google.xml
searchplugins/locale/mai/twitter.xml
searchplugins/locale/mai/wikipedia-hi.xml
searchplugins/locale/mai/yahoo-in.xml
searchplugins/locale/mk/amazondotcom.xml
searchplugins/locale/mk/answers.xml
searchplugins/locale/mk/bing.xml
searchplugins/locale/mk/creativecommons.xml
searchplugins/locale/mk/ddg.xml
searchplugins/locale/mk/eBay.xml
searchplugins/locale/mk/google.xml
searchplugins/locale/mk/wikipedia-mk.xml
searchplugins/locale/mk/yahoo.xml
searchplugins/locale/ml/bing.xml
searchplugins/locale/ml/ddg.xml
searchplugins/locale/ml/eBay-in.xml
searchplugins/locale/ml/google.xml
searchplugins/locale/ml/rediff.xml
searchplugins/locale/ml/webdunia.xml
searchplugins/locale/ml/wikipedia-ml.xml
searchplugins/locale/ml/wikipedia.xml
searchplugins/locale/mr/amazondotcom.xml
searchplugins/locale/mr/creativecommons.xml
searchplugins/locale/mr/ddg.xml
searchplugins/locale/mr/eBay-in.xml
searchplugins/locale/mr/google.xml
searchplugins/locale/mr/rediff.xml
searchplugins/locale/mr/wikipedia-mr.xml
searchplugins/locale/mr/yahoo-in.xml
searchplugins/locale/ms/amazondotcom.xml
searchplugins/locale/ms/bing.xml
searchplugins/locale/ms/ddg.xml
searchplugins/locale/ms/eBay.xml
searchplugins/locale/ms/google.xml
searchplugins/locale/ms/twitter.xml
searchplugins/locale/ms/wikipedia-ms.xml
searchplugins/locale/ms/yahoo.xml
searchplugins/locale/nb-NO/amazon-en-GB.xml
searchplugins/locale/nb-NO/bing.xml
searchplugins/locale/nb-NO/bok-NO.xml
searchplugins/locale/nb-NO/ddg.xml
searchplugins/locale/nb-NO/google.xml
searchplugins/locale/nb-NO/gulesider-NO.xml
searchplugins/locale/nb-NO/qxl-NO.xml
searchplugins/locale/nb-NO/wikipedia-NO.xml
searchplugins/locale/nb-NO/yahoo-NO.xml
searchplugins/locale/nl/bing.xml
searchplugins/locale/nl/bolcom-nl.xml
searchplugins/locale/nl/ddg.xml
searchplugins/locale/nl/google.xml
searchplugins/locale/nl/marktplaats-nl.xml
searchplugins/locale/nl/wikipedia-nl.xml
searchplugins/locale/nn-NO/amazon-en-GB.xml
searchplugins/locale/nn-NO/bing.xml
searchplugins/locale/nn-NO/bok-NO.xml
searchplugins/locale/nn-NO/ddg.xml
searchplugins/locale/nn-NO/google.xml
searchplugins/locale/nn-NO/gulesider-NO.xml
searchplugins/locale/nn-NO/qxl-NO.xml
searchplugins/locale/nn-NO/wikipedia-NN.xml
searchplugins/locale/or/amazondotcom.xml
searchplugins/locale/or/bing.xml
searchplugins/locale/or/ddg.xml
searchplugins/locale/or/eBay-in.xml
searchplugins/locale/or/google.xml
searchplugins/locale/or/wikipedia-or.xml
searchplugins/locale/or/yahoo-in.xml
searchplugins/locale/pa-IN/bing.xml
searchplugins/locale/pa-IN/ddg.xml
searchplugins/locale/pa-IN/eBay-in.xml
searchplugins/locale/pa-IN/google.xml
searchplugins/locale/pa-IN/wikipedia-pa.xml
searchplugins/locale/pa-IN/yahoo-in.xml
searchplugins/locale/pl/allegro-pl.xml
searchplugins/locale/pl/ddg.xml
searchplugins/locale/pl/google.xml
searchplugins/locale/pl/merlin-pl.xml
searchplugins/locale/pl/pwn-pl.xml
searchplugins/locale/pl/wikipedia-pl.xml
searchplugins/locale/pl/wolnelektury-pl.xml
searchplugins/locale/pl/wp-pl.xml
searchplugins/locale/pt-BR/bing.xml
searchplugins/locale/pt-BR/buscape.xml
searchplugins/locale/pt-BR/ddg.xml
searchplugins/locale/pt-BR/google.xml
searchplugins/locale/pt-BR/mercadolivre.xml
searchplugins/locale/pt-BR/twitter.xml
searchplugins/locale/pt-BR/wikipedia-br.xml
searchplugins/locale/pt-BR/yahoo-br.xml
searchplugins/locale/pt-PT/amazon-en-GB.xml
searchplugins/locale/pt-PT/ddg.xml
searchplugins/locale/pt-PT/google.xml
searchplugins/locale/pt-PT/priberam.xml
searchplugins/locale/pt-PT/sapo.xml
searchplugins/locale/pt-PT/wikipedia-ptpt.xml
searchplugins/locale/rm/bing.xml
searchplugins/locale/rm/ddg.xml
searchplugins/locale/rm/google.xml
searchplugins/locale/rm/leo_ende_de.xml
searchplugins/locale/rm/pledarigrond.xml
searchplugins/locale/rm/wikipedia-rm.xml
searchplugins/locale/rm/yahoo-ch.xml
searchplugins/locale/ro/amazondotcom.xml
searchplugins/locale/ro/bing.xml
searchplugins/locale/ro/ddg.xml
searchplugins/locale/ro/eBay.xml
searchplugins/locale/ro/google.xml
searchplugins/locale/ro/wikipediaro.xml
searchplugins/locale/ro/yahoo.xml
searchplugins/locale/ru/ddg.xml
searchplugins/locale/ru/google.xml
searchplugins/locale/ru/mailru.xml
searchplugins/locale/ru/ozonru.xml
searchplugins/locale/ru/priceru.xml
searchplugins/locale/ru/wikipedia-ru.xml
searchplugins/locale/ru/yandex-slovari.xml
searchplugins/locale/ru/yandex.xml
searchplugins/locale/si/amazondotcom.xml
searchplugins/locale/si/answers.xml
searchplugins/locale/si/creativecommons.xml
searchplugins/locale/si/ddg.xml
searchplugins/locale/si/eBay.xml
searchplugins/locale/si/google.xml
searchplugins/locale/si/wikipedia-si.xml
searchplugins/locale/si/yahoo.xml
searchplugins/locale/sk/atlas-sk.xml
searchplugins/locale/sk/azet-sk.xml
searchplugins/locale/sk/ddg.xml
searchplugins/locale/sk/dunaj-sk.xml
searchplugins/locale/sk/eBay.xml
searchplugins/locale/sk/google.xml
searchplugins/locale/sk/slovnik-sk.xml
searchplugins/locale/sk/wikipedia-sk.xml
searchplugins/locale/sk/zoznam-sk.xml
searchplugins/locale/sl/ceneji.xml
searchplugins/locale/sl/ddg.xml
searchplugins/locale/sl/google.xml
searchplugins/locale/sl/najdi-si.xml
searchplugins/locale/sl/odpiralni.xml
searchplugins/locale/sl/twitter.xml
searchplugins/locale/sl/wikipedia-sl.xml
searchplugins/locale/son/amazon-france.xml
searchplugins/locale/son/bing.xml
searchplugins/locale/son/cnrtl-tlfi-fr.xml
searchplugins/locale/son/ddg.xml
searchplugins/locale/son/eBay-france.xml
searchplugins/locale/son/google.xml
searchplugins/locale/son/wikipedia-fr.xml
searchplugins/locale/son/yahoo-france.xml
searchplugins/locale/sq/amazon-en-GB.xml
searchplugins/locale/sq/bing.xml
searchplugins/locale/sq/ddg.xml
searchplugins/locale/sq/eBay.xml
searchplugins/locale/sq/google.xml
searchplugins/locale/sq/wikipedia-sq.xml
searchplugins/locale/sq/yahoo.xml
searchplugins/locale/sr/amazon-en-GB.xml
searchplugins/locale/sr/bing.xml
searchplugins/locale/sr/ddg.xml
searchplugins/locale/sr/eBay-en-GB.xml
searchplugins/locale/sr/google.xml
searchplugins/locale/sr/pogodakyu.xml
searchplugins/locale/sr/vokabular.xml
searchplugins/locale/sr/wikipedia-sr.xml
searchplugins/locale/sv-SE/allaannonser-sv-SE.xml
searchplugins/locale/sv-SE/bing.xml
searchplugins/locale/sv-SE/ddg.xml
searchplugins/locale/sv-SE/google.xml
searchplugins/locale/sv-SE/prisjakt-sv-SE.xml
searchplugins/locale/sv-SE/tyda-sv-SE.xml
searchplugins/locale/sv-SE/wikipedia-sv-SE.xml
searchplugins/locale/sv-SE/yahoo-sv-SE.xml
searchplugins/locale/ta/creativecommons.xml
searchplugins/locale/ta/ddg.xml
searchplugins/locale/ta/eBay-in.xml
searchplugins/locale/ta/google.xml
searchplugins/locale/ta/wikipedia-ta.xml
searchplugins/locale/ta/yahoo-in.xml
searchplugins/locale/te/amazondotcom.xml
searchplugins/locale/te/creativecommons.xml
searchplugins/locale/te/ddg.xml
searchplugins/locale/te/eBay-in.xml
searchplugins/locale/te/google.xml
searchplugins/locale/te/wikipedia-te.xml
searchplugins/locale/te/wiktionary-te.xml
searchplugins/locale/te/yahoo-in.xml
searchplugins/locale/th/amazondotcom.xml
searchplugins/locale/th/bing.xml
searchplugins/locale/th/creativecommons.xml
searchplugins/locale/th/ddg.xml
searchplugins/locale/th/eBay.xml
searchplugins/locale/th/google.xml
searchplugins/locale/th/longdo.xml
searchplugins/locale/th/wikipedia-th.xml
searchplugins/locale/th/yahoo.xml
searchplugins/locale/tr/amazondotcom.xml
searchplugins/locale/tr/ddg.xml
searchplugins/locale/tr/eBay.xml
searchplugins/locale/tr/google.xml
searchplugins/locale/tr/twitter.xml
searchplugins/locale/tr/wikipedia-tr.xml
searchplugins/locale/tr/yandex-tr.xml
searchplugins/locale/uk/ddg.xml
searchplugins/locale/uk/google.xml
searchplugins/locale/uk/meta-ua.xml
searchplugins/locale/uk/metamarket.xml
searchplugins/locale/uk/wikipedia-uk.xml
searchplugins/locale/uk/yandex.xml
searchplugins/locale/uz/amazondotcom.xml
searchplugins/locale/uz/bing.xml
searchplugins/locale/uz/ddg.xml
searchplugins/locale/uz/eBay.xml
searchplugins/locale/uz/google.xml
searchplugins/locale/uz/twitter.xml
searchplugins/locale/uz/wikipedia-uz.xml
searchplugins/locale/uz/yahoo.xml
searchplugins/locale/vi/5giay.xml
searchplugins/locale/vi/baambootratuav.xml
searchplugins/locale/vi/creativecommons.xml
searchplugins/locale/vi/ddg.xml
searchplugins/locale/vi/google.xml
searchplugins/locale/vi/muare.xml
searchplugins/locale/vi/wikipedia-vi.xml
searchplugins/locale/vi/zing-mp3.xml
searchplugins/locale/xh/bing.xml
searchplugins/locale/xh/ddg.xml
searchplugins/locale/xh/google.xml
searchplugins/locale/xh/wikipedia.xml
searchplugins/locale/zh-CN/amazondotcn.xml
searchplugins/locale/zh-CN/baidu.xml
searchplugins/locale/zh-CN/baiduzhidao.xml
searchplugins/locale/zh-CN/bing.xml
searchplugins/locale/zh-CN/creativecommons.xml
searchplugins/locale/zh-CN/ddg.xml
searchplugins/locale/zh-CN/eachnet.xml
searchplugins/locale/zh-CN/google.xml
searchplugins/locale/zh-CN/paipai.xml
searchplugins/locale/zh-CN/wikipedia-zh-CN.xml
searchplugins/locale/zh-TW/creativecommons.xml
searchplugins/locale/zh-TW/ddg.xml
searchplugins/locale/zh-TW/findbook-zh-TW.xml
searchplugins/locale/zh-TW/google.xml
searchplugins/locale/zh-TW/wikipedia-zh-TW.xml
searchplugins/locale/zh-TW/yahoo-answer-zh-TW.xml
searchplugins/locale/zh-TW/yahoo-bid-zh-TW.xml
searchplugins/locale/zh-TW/yahoo-zh-TW.xml

326
debian/repack.py vendored Executable file
View file

@ -0,0 +1,326 @@
#!/usr/bin/env python3
from optparse import OptionParser
import fnmatch
import struct
import tarfile
import zipfile
from datetime import datetime, timezone
from io import BytesIO
import re
import os
import sys
import email.message
import urllib.request
from urllib.parse import urlparse
class URLFile(object):
'''Simple proxy to urllib.request.urlopen, that responds to seek only if
it's called before read. This is enough for tarfile to be happy'''
def __init__(self, url):
self.file = urllib.request.urlopen(url)
def seekable(self):
return True
def seek(self, offset, whence = os.SEEK_SET):
if whence != os.SEEK_SET or offset != 0 or self.read == self._read:
raise Exception("unsupported")
def _read(self, size = -1):
return self.file.read(size)
def read(self, size = -1):
self.read = self._read
return self._read(size)
def close(self):
self.file.close()
def dirname(filespec):
'''Returns os.path.dirname if a file, and '' if an url'''
if urlparse(filespec).scheme:
return ''
return os.path.dirname(filespec)
class TarFilterList(object):
def __init__(self, filename):
self.patterns = {}
for filt in open(filename).readlines():
f = filt.strip().split(None, 1)
if len(f) == 1:
[pat] = f
cmd = None
else:
[pat, cmd] = f
pat = pat.split(os.sep)
self.add_pattern(pat, self.patterns, cmd)
def add_pattern(self, pat, patterns, cmd):
if re.search(r'[\[\?\*]', pat[0]):
if not '*' in patterns:
patterns['*'] = []
patterns['*'].append([os.sep.join(pat), cmd, False])
else:
if len(pat) >= 2:
if not pat[0] in patterns:
patterns[pat[0]] = {}
self.add_pattern(pat[1:], patterns[pat[0]], cmd)
else:
if not '*' in patterns:
patterns['*'] = []
patterns['*'].append([pat[0], cmd, False])
def match(self, name):
name = name.split(os.sep)[1:]
if len(name) == 0:
return False
return self._match(name, self.patterns)
def _match(self, name, patterns):
if len(name) > 1 and name[0] in patterns:
cmd = self._match(name[1:], patterns[name[0]])
if cmd != False:
return cmd
if '*' in patterns:
for pat in patterns['*']:
if fnmatch.fnmatch(name[0], pat[0]) or fnmatch.fnmatch(os.sep.join(name), pat[0]):
pat[2] = True
return pat[1]
return False
def unused(self, patterns=None, root=''):
result = []
if root:
root += '/'
if not patterns:
patterns = self.patterns
for pat in patterns:
if pat != '*':
result += self.unused(patterns[pat], root + pat)
else:
for p in patterns[pat]:
if not p[2]:
result.append(root + p[0])
return result
def file_extension(name):
return os.path.splitext(name)[1][1:]
class ZipAsTar(object):
def __init__(self, zip):
self.zip = zip
self.infos = {}
def close(self):
self.zip.close()
def extractfile(self, info):
return self.zip.open(self.infos[info], mode="r")
def __iter__(self):
for info in self.zip.infolist():
tar_info = tarfile.TarInfo(info.filename)
self.infos[tar_info] = info.filename
tar_info.size = info.file_size
mtime = datetime(*info.date_time, tzinfo=timezone.utc)
tar_info.mtime = mtime.timestamp()
extra = info.extra
while len(extra) >= 4:
signature, length = struct.unpack("<HH", extra[:4])
assert len(extra) >= length + 4
if signature == 0x5455: # extended timestamps
(flags,) = struct.unpack("B", extra[4:5])
if flags & 0x1: # mtime
assert length >= 5
(mtime,) = struct.unpack("<L", extra[5:9])
tar_info.mtime = float(mtime)
extra = extra[length + 4:]
tar_info.mode = (info.external_attr >> 16) & 0o777
if len(info.filename) > tarfile.LENGTH_NAME:
tar_info.pax_headers["path"] = info.filename
yield tar_info
def filter_archive(orig, new, filt, topdir=None, strip=0, split_off=None):
filt = TarFilterList(filt)
is_url = urlparse(orig).scheme
if orig.endswith(".zip"):
if is_url:
# zipfile needs to seek so doesn't work with the simple URLFile. Only
# the l10n packages are zipfiles and they are small so buffering the
# whole archive in memory is fine
orig_bytes = urllib.request.urlopen(orig).read()
zip = zipfile.ZipFile(BytesIO(orig_bytes))
else:
zip = zipfile.ZipFile(orig)
tar = ZipAsTar(zip)
format = tarfile.PAX_FORMAT
else:
fileobj = URLFile(orig) if is_url else None
tar = tarfile.open(orig, "r:" + file_extension(orig), fileobj)
format = tar.format
new_tars = {}
def apply_filter(info, namefilt):
info.name = namefilt(info.name)
if "path" in info.pax_headers:
info.pax_headers["path"] = namefilt(info.pax_headers["path"])
this_new = new
this_topdir = topdir
for info in tar:
if strip:
apply_filter(info, lambda n: "/".join(n.split("/")[strip:]))
if split_off:
first = info.name.partition("/")[0]
if first not in split_off:
continue
this_new = new.replace("%", first)
if topdir:
this_topdir = topdir.replace("%", first)
new_tar = new_tars.get(this_new)
if not new_tar:
if split_off:
print(this_new)
new_tar = new_tars[this_new] = tarfile.open(
this_new + ".new", "w:" + file_extension(this_new), format=format
)
if this_topdir:
apply_filter(info, lambda n: "/".join([this_topdir] + n.split("/")[1:]))
do_filt = filt.match(info.name)
if do_filt == None:
print("Removing", info.name, file=sys.stderr)
continue
if info.isfile():
file = tar.extractfile(info)
if do_filt:
print("Filtering", info.name, file=sys.stderr)
orig = file
file = BytesIO()
the_filt = lambda l: l
if do_filt[0].isalpha():
f = do_filt.split(do_filt[1])
if f[0] == 's':
the_filt = lambda l: re.sub(f[1], f[2],
l.decode()).encode('utf-8')
else:
f = do_filt.split(do_filt[0])
if f[2] == 'd':
the_filt = lambda l: b'' if re.search(f[1],
l.decode()) else l
for l in orig.readlines():
file.write(the_filt(l))
info.size = file.tell()
file.seek(0);
new_tar.addfile(info, file)
else:
new_tar.addfile(info)
tar.close()
if split_off:
expected_new = set(new.replace("%", s) for s in split_off)
got_new = set(new_tars)
missing = expected_new - got_new
for m in sorted(missing):
print(f"Missing {m}")
if missing:
sys.exit(1)
for new, new_tar in new_tars.items():
new_tar.close()
os.rename(new_tar.name, new)
unused = filt.unused()
if unused:
print('Unused filters:')
print('', '\n '.join(unused))
def get_package_name():
control = os.path.join(os.path.dirname(__file__), "control")
return email.message.Message(open(control))["Source"]
def main():
parser = OptionParser()
parser.add_option("-u", "--upstream-version", dest="upstream_version",
help="define upstream version number to use when creating the file",
metavar="VERSION")
parser.add_option("-f", "--filter", dest="filter",
help="use the given filter list", metavar="FILE")
parser.add_option("-p", "--package", dest="package",
help="use the given package name", metavar="NAME")
parser.add_option("--strip", dest="strip", type=int, default=0,
help="Strip n first elements of the path")
parser.add_option("--split-off", dest="split_off",
help="Comma-separated list of top-level directories to split in different output tarballs")
parser.add_option("-o", "--output", dest="new_file",
help="save the filtered tarball as the given file name", metavar="FILE")
parser.add_option("-t", "--topdir", dest="topdir",
help="replace the top directory with the given name", metavar="NAME")
(options, args) = parser.parse_args()
if not options.upstream_version and not options.new_file:
parser.error("Need an upstream version")
return
if len(args) < 1:
parser.error("Too few arguments")
return
if len(args) > 1:
parser.error("Too many arguments")
return
if not options.filter:
options.filter = os.path.join(os.path.dirname(__file__), "source.filter")
if not options.package:
options.package = get_package_name()
if options.new_file:
new_file = options.new_file
elif options.split_off:
parser.error("When using --split-off, --output must be given")
if options.split_off:
split_off = options.split_off.split(",")
if options.topdir and "%" not in options.topdir:
parser.error("When using --split-off, --topdir must contain a % character")
if "%" not in options.new_file:
parser.error("When using --split-off, --output must contain a % character")
else:
split_off = None
if os.path.islink(args[0]):
orig = os.path.realpath(args[0])
if not new_file:
new_file = args[0]
else:
orig = args[0]
compression = file_extension(orig)
if not new_file:
new_file = options.package + "_" + options.upstream_version + ".orig.tar." + compression
new_file = os.path.realpath(os.path.join(dirname(orig), new_file))
print(orig, new_file)
filter_archive(
orig,
new_file,
options.filter,
topdir=options.topdir,
strip=options.strip,
split_off=split_off,
)
if __name__ == '__main__':
main()

338
debian/rules vendored Executable file
View file

@ -0,0 +1,338 @@
#!/usr/bin/make -f
TESTDIR = $(shell dh_testdir || echo no)
ifeq (,$(TESTDIR))
include debian/make.mk
# Use dpkg-buildflags to get build flags, but exclude -g, that is dealt with
# via configure options.
dpkg_buildflags = $(and $(1),$(shell DEB_CFLAGS_MAINT_STRIP="-g" DEB_CXXFLAGS_MAINT_STRIP="-g" dpkg-buildflags --get $(1)))
$(call lazy,CFLAGS,$$(call dpkg_buildflags,CFLAGS))
$(call lazy,CXXFLAGS,$$(call dpkg_buildflags,CXXFLAGS))
$(call lazy,CPPFLAGS,$$(call dpkg_buildflags,CPPFLAGS))
$(call lazy,LDFLAGS,$$(call dpkg_buildflags,LDFLAGS))
$(call lazy,DEB_HOST_GNU_TYPE,$$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE))
$(call lazy,DEB_BUILD_GNU_TYPE,$$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE))
$(call lazy,DEB_BUILD_ARCH_BITS,$$(shell dpkg-architecture -qDEB_BUILD_ARCH_BITS))
$(call lazy,DEB_BUILD_ARCH,$$(shell dpkg-architecture -qDEB_BUILD_ARCH))
$(call lazy,DEB_HOST_ARCH,$$(shell dpkg-architecture -qDEB_HOST_ARCH))
$(call lazy,DEB_HOST_ARCH_ENDIAN,$$(shell dpkg-architecture -qDEB_HOST_ARCH_ENDIAN))
PYTHON := PYTHONDONTWRITEBYTECODE=y python3
PRODUCT := browser
include debian/upstream.mk
include /usr/share/dpkg/buildopts.mk
SYSTEM_LIBS = zlib ffi libevent
ifeq (,$(filter bullseye,$(DIST)))
SYSTEM_LIBS += nspr vpx
endif
ifeq (,$(filter bullseye bookworm,$(DIST)))
SYSTEM_LIBS += nss
endif
define system_lib
USE_SYSTEM_$(1) ?= 1
SYSTEM_LIBS_VARS += $$(if $$(USE_SYSTEM_$(1)),USE_SYSTEM_$(1))
endef
$(foreach lib,$(sort $(call uc,$(SYSTEM_LIBS))),$(eval $(call system_lib,$(lib))))
OFFICIAL_BRANDING := browser/branding/official
MOZILLA_OFFICIAL := 1
# ESR, Beta and Releases use the official branding
ifneq (,$(filter release beta esr%,$(SHORT_SOURCE_CHANNEL)))
BRANDING ?= $(OFFICIAL_BRANDING)
else
ifneq (,$(filter aurora,$(SHORT_SOURCE_CHANNEL)))
BRANDING ?= browser/branding/aurora
else
ifneq (,$(filter central,$(SHORT_SOURCE_CHANNEL)))
BRANDING ?= browser/branding/nightly
else
$(error $(PRODUCT_NAME) branding for $(SOURCE_CHANNEL) is unsupported)
endif
endif
endif
COMMON_CONFIGURE_FLAGS += --target=$(DEB_HOST_GNU_TYPE)
COMMON_CONFIGURE_FLAGS += --host=$(DEB_BUILD_GNU_TYPE)
COMMON_CONFIGURE_FLAGS += --prefix=/usr
COMMON_CONFIGURE_FLAGS += --enable-project=$(PRODUCT)
COMMON_CONFIGURE_FLAGS += $(if $(filter $(BRANDING),$(OFFICIAL_BRANDING)),--enable-official-branding,--with-branding=$(BRANDING))
# Define PRODUCT, product and Product variables (replacing product with the
# actual value of $(PRODUCT))
$(PRODUCT) := $(call lc,$(PRODUCT_NAME))
uc_first = $(strip $(eval __tmp := $(1))$(foreach l,$(letters),$(eval __tmp := $(subst $(l),$(l) ,$(__tmp))))$(call uc,$(firstword $(__tmp)))$(1:$(firstword $(__tmp))%=%))
DISPLAY_NAME := $(call uc_first,$(PRODUCT_DOWNLOAD_NAME))$(if $(filter %-esr,$(PRODUCT_NAME)), ESR)
$(call uc,$(PRODUCT)) := $(call uc,$($(PRODUCT)))
Product := $(call uc_first,$(PRODUCT))
$(Product) := $(DISPLAY_NAME)
export MOZ_APP_REMOTINGNAME := $($(PRODUCT))
LIB_DIR := /usr/lib/$($(PRODUCT))
SHARE_DIR := /usr/share/$($(PRODUCT))
# Work around https://github.com/rust-lang/cargo/issues/7147
export CARGO_HOME=$(CURDIR)/debian/.cargo
export MOZBUILD_STATE_PATH = $(CURDIR)/debian/.mozbuild
LDFLAGS += -Wl,--as-needed
# Disable debug symbols when building on 32-bits machines, because
# a) the rust compiler can't deal with it in the available address
# space, and b) the linker can't deal with it in the available address space
# either.
ifneq (64,$(DEB_BUILD_ARCH_BITS))
CONFIGURE_FLAGS += --disable-debug-symbols
endif
# Also disable them on riscv64, because linking takes so long that buildds
# kill the build after 420 minutes of "inactivity".
ifeq (riscv64,$(DEB_BUILD_ARCH))
CONFIGURE_FLAGS += --disable-debug-symbols
endif
CONFIGURE_FLAGS += --enable-update-channel=$(CHANNEL)
ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
CONFIGURE_FLAGS += --disable-optimize
endif
ifneq (,$(filter debug,$(DEB_BUILD_OPTIONS)))
CONFIGURE_FLAGS += --enable-debug
endif
ifneq (,$(filter armel armhf arm64 riscv64,$(DEB_HOST_ARCH)))
MOZ_ENABLE_V4L2 = 1
endif
ifneq (,$(filter i386 amd64 armel armhf arm64,$(DEB_HOST_ARCH)))
CRASH_REPORTER = 1
endif
ifneq (,$(filter mips%,$(DEB_HOST_ARCH)))
CONFIGURE_FLAGS += --disable-webrtc
endif
ifneq (,$(filter ppc64,$(DEB_HOST_ARCH)))
CONFIGURE_FLAGS += --enable-linker=bfd
endif
ifeq (default,$(origin CC))
ifneq (,$(filter-out bullseye bookworm,$(DIST)))
CC := clang
else
ifeq ($(DIST),bookworm)
CC := gcc-11
else
CC := gcc
endif
endif
endif
ifeq (default,$(origin CXX))
ifneq (,$(filter-out bullseye bookworm,$(DIST)))
CXX := clang++
else
ifeq ($(DIST),bookworm)
CXX := g++-11
else
CXX := g++
endif
endif
endif
# When using clang, the build system uses ld.lld instead of BFD ld.
ifeq (,$(findstring clang,$(CC)))
# Reduce memory usage of the linker at the expense of processing time
# This should help on lower-end architectures like arm and mips, which
# spend an immense amount of time swapping.
LDFLAGS += -Wl,--reduce-memory-overheads
# Work around https://sourceware.org/bugzilla/show_bug.cgi?id=30566
ifeq (,$(filter i386 amd64 ppc64%,$(DEB_HOST_ARCH)))
LDFLAGS += -Wl,--no-keep-memory
endif
endif
# Also add execution time and memory usage stats in the logs
LDFLAGS += -Wl,--stats
ifneq (,$(filter mips mipsel,$(DEB_HOST_ARCH)))
CONFIGURE_FLAGS += --disable-jit
endif
RUSTFLAGS = --remap-path-prefix=$(CURDIR)=.
EXPORTS := CC CXX CFLAGS CXXFLAGS CPPFLAGS LDFLAGS MOZILLA_OFFICIAL RUSTFLAGS
$(call lazy,CONFIGURE_ENV,$$(foreach export,$(EXPORTS),$$(export)="$$($$(export))"))
IN_FILES := $(wildcard debian/*.in)
ifeq ($(PRODUCT_NAME),firefox)
IN_FILES := $(filter-out debian/browser.preinst.in debian/browser.postrm.in debian/$($(PRODUCT)).in,$(IN_FILES))
endif
preprocessed_filename = $(subst $(PRODUCT),$($(PRODUCT)),$(subst GRE_VERSION,$(GRE_VERSION),$(1:.in=)))
define preprocess
$(call preprocessed_filename,$(1)): $(1)
PREPROCESSED_FILES += $(call preprocessed_filename,$(1))
endef
$(foreach f,$(IN_FILES),$(eval $(call preprocess, $(f))))
GENERATED_FILES += $(PREPROCESSED_FILES) debian/l10n/$(PRODUCT)-l10n.control
debian/control: debian/rules debian/changelog debian/l10n/$(PRODUCT)-l10n.control
$(call lazy,L10N_PACKAGES,$$(foreach lang,$$(L10N_LANGS),$($(PRODUCT))-l10n-$$(call lc,$$(lang))))
$(call lazy,L10N_PACKAGES_DEPS,$$(shell echo $$(L10N_PACKAGES) | sed 's/ /, /g'))
debian/l10n/$(PRODUCT)-l10n.control: %: %.in
PYTHONIOENCODING=utf-8 LC_ALL=C.UTF-8 $(PYTHON) debian/l10n/gen $(L10N_LANGS) > $@
$(call lazy,LIBAVCODEC,$$(shell awk -F\" '/libavcodec\.so\./ { sub(/libavcodec\.so\./,"", $$$$2); p = "libavcodec" $$$$2 " | libavcodec-extra" $$$$2; if (d) { d = d " | " p } else { d = p } } END { print d }' dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp))
$(PREPROCESSED_FILES): stamps/mozbuild-state
stamps/mozbuild-state::
MOZ_OBJDIR=debian/objdir MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none $(PYTHON) ./mach python --virtualenv build -c ""
$(PREPROCESSED_FILES): VARS = GRE_VERSION PRODUCT_DOWNLOAD_NAME $(PRODUCT) $(call uc,$(PRODUCT)) $(Product) MOZ_APP_REMOTINGNAME $(SYSTEM_LIBS_VARS) SHORT_SOURCE_CHANNEL DIST MOZ_ENABLE_V4L2 CRASH_REPORTER DEB_HOST_ARCH DEB_HOST_ARCH_ENDIAN
debian/control: VARS += L10N_PACKAGES_DEPS PRODUCT LIBAVCODEC
$(PREPROCESSED_FILES):
MOZ_OBJDIR=debian/objdir MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none $(PYTHON) ./mach python --virtualenv build python/mozbuild/mozbuild/preprocessor.py --marker % -Fsubstitution $(foreach var,$(VARS),-D$(var)="$($(var))" )$< -o $@
override_dh_auto_configure:
stamps/configure-check-$(PRODUCT):: stamps/configure-$(PRODUCT)
# Ensure --{with,enable}-system options properly set expected variables
# according to the definitions in the mozconfig file.
@awk -F' *# *| *$$' ' \
BEGIN { confs="$(foreach f,autoconf.mk emptyvars.mk,$(CURDIR)/build-$(PRODUCT)/config/$(f))" } \
$$1 ~ /system-/ { \
if (! $$2) { \
print FILENAME ": Missing variable for",$$1; \
error=1; \
} else { \
split($$2,var,"="); \
cmd = "grep -l " var[1] " " confs; \
cmd | getline dir; \
sub(/\/[^\/]*$$/, "", dir); \
cmd = "$(MAKE) -C " dir " --no-print-directory echo-variable-" var[1]; \
cmd | getline value; \
if (value != var[2]) { print $$1, "triggered", var[1] "=" value,"instead of",$$2; error=1 } \
} \
} \
END { if (error) { exit 1 }}' debian/$($(PRODUCT)).mozconfig
stamps/configure-$(PRODUCT):: debian/$($(PRODUCT)).mozconfig stamps/mozbuild-state
ifeq (armhf,$(DEB_BUILD_ARCH))
ifeq (,$(shell grep -l cpu:type:aarch64 /sys/devices/system/cpu/modalias))
# There is not enough memory in armhf userspace with a 32-bits kernel.
$(error Unfortunately cannot build on armhf. Try a 64-bits kernel)
endif
endif
ifeq (mipsel,$(DEB_BUILD_ARCH))
# There is not enough memory in mipsel userspace with neither a 32-bits nor 64-bits kernel.
$(error Unfortunately cannot build on mipsel. Try cross-compilation)
endif
$(if $(wildcard build-$(PRODUCT)),,mkdir build-$(PRODUCT))
cd build-$(PRODUCT) && \
MOZCONFIG=$(CURDIR)/debian/$($(PRODUCT)).mozconfig \
ASFLAGS="-g" \
$(CONFIGURE_ENV) \
$(CURDIR)/configure \
$(COMMON_CONFIGURE_FLAGS) \
$(CONFIGURE_FLAGS)
# Use thinLTO on armhf, to stay in the memory budget with an armhf toolchain.
ifeq (armhf,$(DEB_BUILD_ARCH))
export DEBIAN_RUST_LTO=-Clto=thin
endif
stamps/build-$(PRODUCT):: stamps/configure-check-$(PRODUCT)
+dh_auto_build --parallel --builddirectory=build-$(PRODUCT) -- \
_LEAKTEST_FILES=leaktest.py
L10N_BUILD_STAMPS = $(foreach lang,$(L10N_LANGS),stamps/build-l10n-$(lang))
stamps/build-l10n::
debian/rules $(addprefix -j,$(DEB_BUILD_OPTION_PARALLEL)) $(L10N_BUILD_STAMPS)
$(L10N_BUILD_STAMPS):: stamps/build-l10n-%: stamps/mozbuild-state
$(if $(wildcard build-l10n/$*),,mkdir -p build-l10n/$*)
$(if $(wildcard l10n),,mkdir -p l10n)
cd build-l10n/$* && \
$(CONFIGURE_ENV) \
$(CURDIR)/configure \
$(COMMON_CONFIGURE_FLAGS) \
--disable-compile-environment \
--with-l10n-base=$(CURDIR)/l10n
$(if $(wildcard l10n/$*),,ln -sf ../l10n-$* l10n/$*)
MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none $(MAKE) -C build-l10n/$*/$(PRODUCT)/locales langpack-$* MOZ_CHROME_FILE_FORMAT=flat MOZ_LANGPACK_EID=langpack-$*@$($(PRODUCT)).mozilla.org PKG_LANGPACK_BASENAME='$$(MOZ_LANGPACK_EID)' PKG_LANGPACK_PATH=xpi/
override_dh_auto_build-arch: stamps/build-$(PRODUCT)
override_dh_auto_build-indep: stamps/build-l10n
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
# Disable tests on stable-security
ifeq (,$(findstring ~deb,$(DEBIAN_RELEASE)))
# Disable tests until they're fixed
#include debian/test.mk
endif
endif
override_dh_auto_clean::
rm -f $(filter-out debian/control debian/watch,$(GENERATED_FILES))
rm -rf stamps l10n $(CARGO_HOME)
debian/rules debian/control TESTDIR=
dh_auto_clean --builddirectory=build-$(PRODUCT)
dh_auto_clean --builddirectory=build-l10n
find . -name "*.pyc" -o -name "*.pyo" | xargs --no-run-if-empty rm -f
rm -rf debian/objdir $(MOZBUILD_STATE_PATH)
override_dh_auto_install-arch: stamps/install-$(PRODUCT)
override_dh_auto_install-indep:
stamps/install-$(PRODUCT)::
dh_auto_install --builddirectory=build-$(PRODUCT) -- installdir=$(LIB_DIR) \
MOZ_APP_BASE_VERSION=$(GRE_VERSION) \
TAR_CREATE_FLAGS="--exclude=.mkdir.done --hard-dereference -chf" \
SIGN_NSS=
-TZ=UTC unzip -d debian/tmp$(LIB_DIR)/browser debian/tmp$(LIB_DIR)/browser/omni.ja 'defaults/preferences/*'
L10N_DH_INSTALL_STAMPS = $(foreach lang,$(L10N_LANGS),stamps/dh_install-l10n-$(lang))
stamps/dh_install-l10n::
debian/rules $(addprefix -j,$(DEB_BUILD_OPTION_PARALLEL)) $(L10N_DH_INSTALL_STAMPS)
$(L10N_DH_INSTALL_STAMPS):: stamps/dh_install-l10n-%: stamps/build-l10n-%
dh_install -p$($(PRODUCT))-l10n-$(call lc,$*) build-l10n/$*/dist/xpi/langpack-$*@$($(PRODUCT)).mozilla.org.xpi $(LIB_DIR)/browser/extensions/
stamps/dh_install:: debian/noinstall debian/$($(PRODUCT))-symbolic.svg
awk '{print "debian/tmp/" $$1 }' < debian/noinstall | xargs rm -r
$(foreach size,16 32 48 64 128,mv debian/tmp/usr/lib/$($(PRODUCT))/browser/chrome/icons/default/default$(size).png debian/$($(PRODUCT))/usr/share/icons/hicolor/$(size)x$(size)/apps/$($(PRODUCT)).png;)
dh_install
dh_missing --fail-missing
override_dh_install-arch: stamps/dh_install
override_dh_install-indep: stamps/dh_install-l10n
# dwz trips on libxul, after using a lot of memory.
override_dh_dwz:
dh_dwz -X libxul -X libgkcodecs
override_dh_strip:
dh_strip --dbgsym-migration='$($(PRODUCT))-dbg (<< 49.0-4~)'
override_dh_strip_nondeterminism:
override_dh_shlibdeps:
dh_shlibdeps -a -l$(CURDIR)/debian/tmp$(LIB_DIR)
install binary binary-arch binary-indep: $(filter-out %.pc,$(GENERATED_FILES))
binary binary-arch binary-indep build build-arch build-indep clean install:
debian/dh $@
.PHONY: build clean binary-indep binary-arch binary install
$(eval ALL_STAMPS := $(shell awk -F:: '$$1 ~ /^stamps\// && !/%/ { print $$1 }' debian/rules) $(L10N_BUILD_STAMPS) $(L10N_DH_INSTALL_STAMPS))
$(ALL_STAMPS)::
@mkdir -p stamps
$(if $(wildcard $@),,touch $@)
endif

17
debian/source.filter vendored Normal file
View file

@ -0,0 +1,17 @@
other-licenses/7zstub/firefox/7zSD.sfx
toolkit/mozapps/update/updater/macbuild/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib
toolkit/mozapps/update/updater/macbuild/Contents/PkgInfo
config/makedep.exe
intl/unicharutil/tools/data/case.dat
intl/unicharutil/tools/data/cmbcl.dat
intl/unicharutil/tools/data/ctype.dat
intl/unicharutil/tools/data/decomp.dat
intl/unicharutil/tools/data/num.dat
netwerk/protocol/ftp/doc/rfc959.txt
layout/doc
content/xml/tests
image/test/reftest/pngsuite-transparency
image/test/reftest/reftest.list /pngsuite-transparency/d
build/pgo/blueprint/valid.png
addon-sdk/source/examples/annotator/data/jquery-1.4.2.min.js
addon-sdk/source/examples/reddit-panel/data/jquery-1.4.4.min.js

1
debian/source/format vendored Normal file
View file

@ -0,0 +1 @@
3.0 (quilt)

58
debian/source/lintian-overrides vendored Normal file
View file

@ -0,0 +1,58 @@
# BSD* licenses have slight variations, and giving each one of them a
# different name is not very useful.
source: dep5-copyright-license-name-not-unique *
# Ignore JSON "do no evil" license in a test file for a subsystem that
# is not part of the browser.
source: license-problem-json-evil [dom/system/gonk/tests/marionette/ril_jshint/jshint.js]
# Ignore missing sources errors for test files (some of which are bogus,
# even).
source: source-is-missing [*/tests/*]
source: source-is-missing [*/test/*]
source: source-is-missing [js/src/jit-test/*]
source: source-is-missing [js/src/octane/*]
source: source-is-missing [testing/*]
source: source-is-missing [*/crashtests/*]
source: source-is-missing [*/reftests/*]
source: source-is-missing [third_party/webkit/PerformanceTests/*]
# Real source files with really long lines
source: source-is-missing [browser/app/profile/firefox.js]
source: source-is-missing [modules/libpref/init/all.js]
source: source-is-missing [toolkit/content/aboutLogging.js]
# Ignore missing sources errors for documentation
source: source-is-missing [modules/freetype2/docs/*]
source: source-is-missing [parser/*.html]
source: source-is-missing [security/nss/doc/*]
# The source for these is in toolkit/components/translation/cld2 with
# an accompanying Makefile. It requires emscripten to build, which is
# not available on all architectures, so this would require packaging
# circumvolutions.
source: source-is-missing [toolkit/components/translation/cld2/cld-worker.js]
# Vendored Windows import libraries.
source: unpack-message-for-orig * ar failed for */third_party/rust/winapi-*-pc-windows-gnu/lib/*.a
# Vendored python modules.
source: source-contains-prebuilt-windows-binary [third_party/python/setuptools/setuptools/*.exe]
source: source-contains-prebuilt-windows-binary [third_party/python/pip/pip/_vendor/distlib/*.exe]
# Files for the Windows installer.
source: source-contains-prebuilt-windows-binary [other-licenses/nsis/*]
source: source-contains-prebuilt-windows-binary [other-licenses/7zstub/*]
# Test files
source: source-contains-prebuilt-windows-binary [netwerk/test/unit/data/signed_win.exe]
source: source-contains-prebuilt-windows-binary [toolkit/*/test/unit/*]
source: source-contains-prebuilt-windows-binary [toolkit/*/tests/*]
source: source-contains-prebuilt-windows-binary [third_party/rust/libloading/tests/*]
source: elf-error * [testing/web-platform/tests/tools/third_party/packaging/tests/manylinux/*]
# Vendored but unused pre-built build-time tools.
source: source-contains-prebuilt-windows-binary [toolkit/crashreporter/google-breakpad/src/tools/windows/binaries/*]
# Vendored but unused.
source: source-contains-prebuilt-windows-binary [third_party/libwebrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe]

45
debian/test.mk vendored Normal file
View file

@ -0,0 +1,45 @@
LOCALE := fr_FR.UTF-8
HAS_LOCALE := $(shell locale -a | grep $(LOCALE:UTF-8=utf8))
debian/locales/%:
mkdir -p debian/locales
localedef -f $(word 2,$(subst ., ,$(notdir $@))) -i $(word 1,$(subst ., ,$(notdir $@))) $@
APP_TESTS := reftest crashtest jstestbrowser
TESTS := check xpcshell-tests $(APP_TESTS)
override_dh_auto_test: $(TESTS)
ifndef HAS_LOCALE
xpcshell-tests: export LOCPATH = $(CURDIR)/debian/locales
endif
xpcshell-tests: export LC_ALL=$(LOCALE)
$(APP_TESTS) xpcshell-tests: XVFB_RUN = xvfb-run -s "-screen 0 1024x768x24"
ifeq ($(DEB_HOST_ARCH),armel)
# Force armel JIT to compile ARMv4T instructions at runtime even when the buildd
# is > ARMv4T
$(TESTS): export ARM_FORCE_PLATFORM=4
endif
$(TESTS):
GNOME22_USER_DIR="$(CURDIR)/build-browser/dist/.gnome2" \
HOME="$(CURDIR)/build-browser/dist" \
$(XVFB_RUN) $(MAKE) -C build-browser $@ 2>&1 | sed -u 's/^/$@> /'
xpcshell-tests: $(if $(HAS_LOCALE),,debian/locales/$(LOCALE))
xpcshell-tests-skip:
# This one fails because it supposes some kind of preexisting gnome/mailcap configuration
rm -f build-browser/_tests/xpcshell/uriloader/exthandler/tests/unit/test_handlerService.js
check-skip:
# This one fails because it only works in an american time zone. bz#515254
rm -f js/src/jit-test/tests/sunspider/check-date-format-tofte.js
override_dh_auto_clean::
rm -rf debian/locales
$(TESTS): %: %-skip
.PHONY: test $(TESTS) $(TESTS:%=%-skip)

175
debian/upstream.mk vendored Normal file
View file

@ -0,0 +1,175 @@
# Generic rules to help download sources from archive.mozilla.org.
# Define the following variables before including this file:
# PRODUCT - product codename (e.g. browser)
include /usr/share/dpkg/pkg-info.mk
# The VERSION_FILTER transforms upstream version patterns to versions
# used in debian/changelog. Versions are to be transformed as follows:
# 4.0 -> 4.0
# 4.0a1 -> 4.0~a1
# 4.0b5 -> 4.0~b5
# That should ensure the proper ordering
VERSION_FILTER := sed 's/\([0-9]\)\([ab]\)/\1~\2/g'
$(call lazy,UPSTREAM_VERSION,$$(shell cat $(PRODUCT)/config/version.txt))
GRE_SRCDIR := $(strip $(foreach dir,. mozilla,$(if $(wildcard $(dir)/python/mozbuild/mozbuild/__init__.py),$(dir))))
ifndef GRE_SRCDIR
$(error Could not determine the top directory for GRE codebase)
endif
GRE_MILESTONE := $(shell tail -1 $(GRE_SRCDIR)/config/milestone.txt | $(VERSION_FILTER))
# Construct GRE_VERSION from the first digit in GRE_MILESTONE
GRE_VERSION := $(subst ~, ,$(subst ., ,$(GRE_MILESTONE)))
export JS_SO_VERSION := $(firstword $(GRE_VERSION))d
export GRE_VERSION := $(firstword $(GRE_VERSION))
# Last version in debian/changelog
DEBIAN_SOURCE := $(DEB_SOURCE)
DEBIAN_VERSION := $(DEB_VERSION)
# Debian part of the above version (anything after the last dash)
DEBIAN_RELEASE := $(lastword $(subst -, ,$(DEBIAN_VERSION)))
# Upstream part of the debian/changelog version (anything before the last dash)
UPSTREAM_RELEASE := $(DEB_VERSION_UPSTREAM)
# Aurora builds have the build id in the upstream part of the debian/changelog version
export MOZ_BUILD_DATE := $(word 2,$(subst +, ,$(UPSTREAM_RELEASE)))
ifndef MOZ_BUILD_DATE
export MOZ_BUILD_DATE := $(shell head -1 sourcestamp.txt)
endif
UPSTREAM_RELEASE := $(firstword $(subst +, ,$(UPSTREAM_RELEASE)))
# If the debian part of the version contains ~bpo or ~deb, it's a backport
DEBIAN_RELEASE_EXTRA := $(word 2,$(subst ~, ,$(DEBIAN_RELEASE)))
DIST = unknown
ifneq (,$(filter experimental,$(DEB_DISTRIBUTION)))
DIST = experimental
endif
ifneq (,$(filter testing% unstable sid,$(DEB_DISTRIBUTION)))
DIST = trixie
endif
ifneq (,$(filter bpo% deb%,$(DEBIAN_RELEASE_EXTRA)))
DEBIAN_TARGET := $(subst bpo,,$(subst deb,,$(DEBIAN_RELEASE_EXTRA)))
ifneq (,$(filter 11%,$(DEBIAN_TARGET)))
DIST = bullseye
endif
ifneq (,$(filter 12%,$(DEBIAN_TARGET)))
DIST = bookworm
endif
ifneq (,$(filter 13%,$(DEBIAN_TARGET)))
DIST = trixie
endif
endif
PRODUCT_NAME := $(DEBIAN_SOURCE)
# Check if the version in debian/changelog matches actual upstream version
# as VERSION_FILTER transforms it.
FILTERED_UPSTREAM_VERSION := $(shell echo $(UPSTREAM_VERSION) | $(VERSION_FILTER))
ifneq ($(FILTERED_UPSTREAM_VERSION),$(subst esr,,$(firstword $(subst ~b, ,$(UPSTREAM_RELEASE)))))
$(warning Upstream version in debian/changelog ($(UPSTREAM_RELEASE)) does not match actual upstream version ($(FILTERED_UPSTREAM_VERSION)))
endif
VERSION = $(UPSTREAM_RELEASE)
$(call lazy,SOURCE_TARBALL_EXT,$$(shell sed -n '/^SOURCE_TAR/s/.*\.tar\.//p' toolkit/mozapps/installer/upload-files.mk))
SOURCE_TARBALL = $(DEBIAN_SOURCE)_$(VERSION)$(SOURCE_BUILD_DATE:%=+%).orig.tar.$(SOURCE_TARBALL_EXT)
SOURCE_TARBALL_LOCATION = ..
SOURCE_VERSION = $(subst ~,,$(VERSION))
# Find the right channel corresponding to the version number
ifneq (,$(filter suite mail calendar,$(PRODUCT)))
REPO_PREFIX = comm
else
REPO_PREFIX = mozilla
endif
ifneq (,$(findstring esr, $(VERSION)))
SOURCE_TYPE := releases
SHORT_SOURCE_CHANNEL := esr$(firstword $(subst ., ,$(VERSION)))
SHORT_L10N_CHANNEL := release
CHANNEL := esr
else
ifneq (,$(findstring ~b, $(VERSION)))
# Betas are under releases/
SOURCE_TYPE := releases
SHORT_SOURCE_CHANNEL := beta
CHANNEL := beta
else
ifneq (,$(filter %~a1, $(VERSION)))
# Nightly
SOURCE_TYPE := nightly
SHORT_SOURCE_CHANNEL := central
DOWNLOAD_SOURCE := nightly
CHANNEL := nightly
else
# Release
SOURCE_TYPE := releases
SHORT_SOURCE_CHANNEL := release
CHANNEL := release
endif
endif
endif
SOURCE_CHANNEL = $(REPO_PREFIX)-$(SHORT_SOURCE_CHANNEL)
ifndef SHORT_L10N_CHANNEL
SHORT_L10N_CHANNEL := $(SHORT_SOURCE_CHANNEL)
endif
PRODUCT_DOWNLOAD_NAME := $(firstword $(subst -, ,$(PRODUCT_NAME)))
BASE_URL = https://archive.mozilla.org/pub/$(PRODUCT_DOWNLOAD_NAME)/$(SOURCE_TYPE)
ifeq ($(SOURCE_TYPE),releases)
SOURCE_URL = $(BASE_URL)/$(SOURCE_VERSION)/source/$(PRODUCT_DOWNLOAD_NAME)-$(SOURCE_VERSION).source.tar.$(SOURCE_TARBALL_EXT)
CANDIDATE_BASE_URL = http://archive.mozilla.org/pub/$(PRODUCT_DOWNLOAD_NAME)/candidates/$(SOURCE_VERSION)-candidates
CANDIDATE = $(shell curl -s $(CANDIDATE_BASE_URL)/ | sed -n '/href.*build/s/.*>\(build[0-9]*\)\/<.*/\1/p' | tail -1)
$(call lazy,SOURCE_REPO_REV,$$(shell curl -s $(CANDIDATE_BASE_URL)/$$(CANDIDATE)/linux-x86_64/en-US/$(PRODUCT_DOWNLOAD_NAME)-$(SOURCE_VERSION).json | python3 -c 'import json, sys; d = json.load(sys.stdin); print(d["moz_source_repo"], d["moz_source_stamp"])'))
SOURCE_REV = $(word 2,$(SOURCE_REPO_REV))
SOURCE_REPO = $(firstword $(SOURCE_REPO_REV))
else
ifeq ($(SOURCE_TYPE),nightly)
SOURCE_TARBALL_EXT = bz2
$(call lazy,LATEST_NIGHTLY,$$(shell $$(PYTHON) debian/latest_nightly.py $(PRODUCT_DOWNLOAD_NAME)-$(DOWNLOAD_SOURCE)))
$(call lazy,SOURCE_BUILD_VERSION,$$(shell echo $$(firstword $$(LATEST_NIGHTLY)) | $$(VERSION_FILTER)))
SOURCE_BUILD_DATE = $(word 2, $(LATEST_NIGHTLY))
SOURCE_URL = $(subst /rev/,/archive/,$(word 3, $(LATEST_NIGHTLY))).tar.bz2
endif
endif
L10N_REPO := https://hg.mozilla.org/l10n-central
ifeq (file,$(origin VERSION))
$(call lazy,L10N_CHANGESETS,$$(shell $$(PYTHON) debian/l10n_revs.py < $(PRODUCT)/locales/l10n-changesets.json))
else
SOURCE_REV ?= $(patsubst %.tar.$(SOURCE_TARBALL_EXT),%,$(notdir $(SOURCE_URL)))
SOURCE_REPO ?= $(patsubst %/,%,$(dir $(patsubst %/,%,$(dir $(SOURCE_URL)))))
$(call lazy,L10N_CHANGESETS,$$(shell curl -sL $(SOURCE_REPO)/raw-file/$(SOURCE_REV)/$(PRODUCT)/locales/l10n-changesets.json | $$(PYTHON) debian/l10n_revs.py))
endif
L10N_REV = $(subst $1:,,$(filter $1:%,$(L10N_CHANGESETS)))
L10N_LANGS = $(foreach lang,$(L10N_CHANGESETS),$(firstword $(subst :, ,$(lang))))
L10N_REVS = $(sort $(foreach lang,$(L10N_LANGS),$(call L10N_REV,$(lang))))
THE_L10N_REV = $(if $(filter 1,$(words $(L10N_REVS))),$(L10N_REVS),$(error multiple l10n revisions))
ifneq (,$(filter dump dump-% import download,$(MAKECMDGOALS)))
L10N_TARBALL = $(SOURCE_TARBALL_LOCATION)/$(SOURCE_TARBALL:%.orig.tar.$(SOURCE_TARBALL_EXT)=%.orig-l10n-$1.tar.bz2)
L10N_TARBALLS = $(foreach lang,$(L10N_LANGS),$(call L10N_TARBALL,$(lang)))
ALL_TARBALLS = $(SOURCE_TARBALL_LOCATION)/$(SOURCE_TARBALL) $(L10N_TARBALLS)
download: $(ALL_TARBALLS)
import: $(ALL_TARBALLS)
debian/import-tar.py $(addprefix -H ,$(BRANCH)) $< | git fast-import
$(SOURCE_TARBALL_LOCATION)/$(SOURCE_TARBALL): debian/source.filter
$(if $(filter-out $(VERSION),$(SOURCE_BUILD_VERSION)),$(error Downloaded version ($(SOURCE_BUILD_VERSION)) does not match requested version ($(VERSION))))
debian/repack.py -o $@ $(SOURCE_URL)
ifneq (1,$(words $(L10N_REVS)))
$(L10N_TARBALLS): $(SOURCE_TARBALL_LOCATION)/$(SOURCE_TARBALL:%.orig.tar.$(SOURCE_TARBALL_EXT)=%.orig-l10n-%.tar.bz2): debian/l10n.filter
debian/repack.py -o $@ -t $* -f debian/l10n.filter $(L10N_REPO)/$*/archive/$(call L10N_REV,$*).zip
else
COMMA=,
$(subst -l10n-,%,$(L10N_TARBALLS)): debian/l10n.filter
debian/repack.py -o $(call L10N_TARBALL,%) --strip 1 --split-off $(subst $(NULL) $(NULL),$(COMMA),$(L10N_LANGS)) -t l10n-% -f debian/l10n.filter https://github.com/mozilla-l10n/firefox-l10n/archive/$(THE_L10N_REV).tar.gz
endif
endif
.PHONY: download

10
debian/vendor.js vendored Normal file
View file

@ -0,0 +1,10 @@
pref("distribution.searchplugins.defaultLocale", "en-US");
// Forbid application updates
pref("app.update.enabled", false, locked);
pref("devtools.webide.autoinstallADBHelper", false);
pref("devtools.webide.autoinstallFxdtAdapters", false);
pref("extensions.unsignedScopes", 12);
pref("spellchecker.dictionary_path", "/usr/share/hunspell");

3
debian/watch vendored Normal file
View file

@ -0,0 +1,3 @@
version=3
opts=dversionmangle=s/^(\d\.[\d\.]+)\+dfsg$/$1/ \
https://archive.mozilla.org/pub/firefox/releases/([\d\.]+)/source/firefox-([\d\.]+)[\.-]source\.tar\.xz debian python3 debian/repack.py

9
debian/watch.in vendored Normal file
View file

@ -0,0 +1,9 @@
%define firefox_esr firefox-esr
%if browser == firefox_esr
%define suffix esr
%else
%define suffix
%endif
version=3
opts=dversionmangle=s/^(\d\.[\d\.]+)\+dfsg$/$1/ \
https://archive.mozilla.org/pub/@PRODUCT_DOWNLOAD_NAME@/releases/([\d\.]+@suffix@)/source/@PRODUCT_DOWNLOAD_NAME@-([\d\.]+@suffix@)[\.-]source\.tar\.xz debian python3 debian/repack.py