forked from pool/MozillaFirefox
- _constraints: increase RAM on s390x to fix the build
OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=1172
This commit is contained in:
commit
9978f0bae4
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
1
MozillaFirefox-rpmlintrc
Normal file
1
MozillaFirefox-rpmlintrc
Normal file
@ -0,0 +1 @@
|
||||
addFilter("no-jar-manifest")
|
11208
MozillaFirefox.changes
Normal file
11208
MozillaFirefox.changes
Normal file
File diff suppressed because it is too large
Load Diff
282
MozillaFirefox.desktop
Normal file
282
MozillaFirefox.desktop
Normal file
@ -0,0 +1,282 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Name=%NAME
|
||||
GenericName=Web Browser
|
||||
GenericName[ca]=Navegador web
|
||||
GenericName[cs]=Webový prohlížeč
|
||||
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
|
||||
GenericName[uk]=Веб-браузер
|
||||
Comment=Browse the Web
|
||||
Comment[ca]=Navegueu per el web
|
||||
Comment[cs]=Prohlížení stránek World Wide Webu
|
||||
Comment[de]=Im Internet surfen
|
||||
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
|
||||
Comment[uk]=Перегляд веб-сторінок
|
||||
TryExec=%EXEC
|
||||
Exec=%EXEC %u
|
||||
Icon=%ICON
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;application/x-xpinstall;x-scheme-handler/http;x-scheme-handler/https;
|
||||
Type=Application
|
||||
|
||||
Actions=new-window;PrivateBrowsing;ProfileManager
|
||||
|
||||
[Desktop Action new-window]
|
||||
Name=New Window
|
||||
Name[ach]=Dirica manyen
|
||||
Name[af]=Nuwe venster
|
||||
Name[an]=Nueva finestra
|
||||
Name[ar]=نافذة جديدة
|
||||
Name[as]=নতুন উইন্ডো
|
||||
Name[ast]=Ventana nueva
|
||||
Name[az]=Yeni Pəncərə
|
||||
Name[be]=Новае акно
|
||||
Name[bg]=Нов прозорец
|
||||
Name[bn_BD]=নতুন উইন্ডো (N)
|
||||
Name[bn_IN]=নতুন উইন্ডো
|
||||
Name[br]=Prenestr nevez
|
||||
Name[brx]=गोदान उइन्ड'(N)
|
||||
Name[bs]=Novi prozor
|
||||
Name[ca]=Finestra nova
|
||||
Name[cak]=K'ak'a' tzuwäch
|
||||
Name[cs]=Nové okno
|
||||
Name[cy]=Ffenestr Newydd
|
||||
Name[da]=Nyt vindue
|
||||
Name[de]=Neues Fenster
|
||||
Name[dsb]=Nowe wokno
|
||||
Name[el]=Νέο παράθυρο
|
||||
Name[en_GB]=New Window
|
||||
Name[en_US]=New Window
|
||||
Name[en_ZA]=New Window
|
||||
Name[eo]=Nova fenestro
|
||||
Name[es_AR]=Nueva ventana
|
||||
Name[es_CL]=Nueva ventana
|
||||
Name[es_ES]=Nueva ventana
|
||||
Name[es_MX]=Nueva ventana
|
||||
Name[et]=Uus aken
|
||||
Name[eu]=Leiho berria
|
||||
Name[fa]=پنجره جدید
|
||||
Name[ff]=Henorde Hesere
|
||||
Name[fi]=Uusi ikkuna
|
||||
Name[fr]=Nouvelle fenêtre
|
||||
Name[fy_NL]=Nij finster
|
||||
Name[ga_IE]=Fuinneog Nua
|
||||
Name[gd]=Uinneag ùr
|
||||
Name[gl]=Nova xanela
|
||||
Name[gn]=Ovetã pyahu
|
||||
Name[gu_IN]=નવી વિન્ડો
|
||||
Name[he]=חלון חדש
|
||||
Name[hi_IN]=नया विंडो
|
||||
Name[hr]=Novi prozor
|
||||
Name[hsb]=Nowe wokno
|
||||
Name[hu]=Új ablak
|
||||
Name[hy_AM]=Նոր Պատուհան
|
||||
Name[id]=Jendela Baru
|
||||
Name[is]=Nýr gluggi
|
||||
Name[it]=Nuova finestra
|
||||
Name[ja]=新しいウィンドウ
|
||||
Name[ja_JP-mac]=新規ウインドウ
|
||||
Name[ka]=ახალი ფანჯარა
|
||||
Name[kk]=Жаңа терезе
|
||||
Name[km]=បង្អួចថ្មី
|
||||
Name[kn]=ಹೊಸ ಕಿಟಕಿ
|
||||
Name[ko]=새 창
|
||||
Name[kok]=नवें जनेल
|
||||
Name[ks]=نئئ وِنڈو
|
||||
Name[lij]=Neuvo barcon
|
||||
Name[lo]=ຫນ້າຕ່າງໃຫມ່
|
||||
Name[lt]=Naujas langas
|
||||
Name[ltg]=Jauns lūgs
|
||||
Name[lv]=Jauns logs
|
||||
Name[mai]=नव विंडो
|
||||
Name[mk]=Нов прозорец
|
||||
Name[ml]=പുതിയ ജാലകം
|
||||
Name[mr]=नवीन पटल
|
||||
Name[ms]=Tetingkap Baru
|
||||
Name[my]=ဝင်းဒိုးအသစ်
|
||||
Name[nb_NO]=Nytt vindu
|
||||
Name[ne_NP]=नयाँ सञ्झ्याल
|
||||
Name[nl]=Nieuw venster
|
||||
Name[nn_NO]=Nytt vindauge
|
||||
Name[or]=ନୂତନ ୱିଣ୍ଡୋ
|
||||
Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
|
||||
Name[pl]=Nowe okno
|
||||
Name[pt_BR]=Nova janela
|
||||
Name[pt_PT]=Nova janela
|
||||
Name[rm]=Nova fanestra
|
||||
Name[ro]=Fereastră nouă
|
||||
Name[ru]=Новое окно
|
||||
Name[sat]=नावा विंडो (N)
|
||||
Name[si]=නව කවුළුවක්
|
||||
Name[sk]=Nové okno
|
||||
Name[sl]=Novo okno
|
||||
Name[son]=Zanfun taaga
|
||||
Name[sq]=Dritare e Re
|
||||
Name[sr]=Нови прозор
|
||||
Name[sv_SE]=Nytt fönster
|
||||
Name[ta]=புதிய சாளரம்
|
||||
Name[te]=కొత్త విండో
|
||||
Name[th]=หน้าต่างใหม่
|
||||
Name[tr]=Yeni pencere
|
||||
Name[tsz]=Eraatarakua jimpani
|
||||
Name[uk]=Нове вікно
|
||||
Name[ur]=نیا دریچہ
|
||||
Name[uz]=Yangi oyna
|
||||
Name[vi]=Cửa sổ mới
|
||||
Name[wo]=Palanteer bu bees
|
||||
Name[xh]=Ifestile entsha
|
||||
Name[zh_CN]=新建窗口
|
||||
Name[zh_TW]=開新視窗
|
||||
Exec=%EXEC --new-window %u
|
||||
|
||||
[Desktop Action PrivateBrowsing]
|
||||
Name=New Private Browsing Window
|
||||
Name[ach]=Dirica manyen me mung
|
||||
Name[af]=Nuwe privaatvenster
|
||||
Name[an]=Nueva finestra privada
|
||||
Name[ar]=نافذة خاصة جديدة
|
||||
Name[as]=নতুন ব্যক্তিগত উইন্ডো
|
||||
Name[ast]=Ventana privada nueva
|
||||
Name[az]=Yeni Məxfi Pəncərə
|
||||
Name[be]=Новае акно адасаблення
|
||||
Name[bg]=Нов прозорец за поверително сърфиране
|
||||
Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো
|
||||
Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো
|
||||
Name[br]=Prenestr merdeiñ prevez nevez
|
||||
Name[brx]=गोदान प्राइभेट उइन्ड'
|
||||
Name[bs]=Novi privatni prozor
|
||||
Name[ca]=Finestra privada nova
|
||||
Name[cak]=K'ak'a' ichinan tzuwäch
|
||||
Name[cs]=Nové anonymní okno
|
||||
Name[cy]=Ffenestr Breifat Newydd
|
||||
Name[da]=Nyt privat vindue
|
||||
Name[de]=Neues privates Fenster
|
||||
Name[dsb]=Nowe priwatne wokno
|
||||
Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
|
||||
Name[en_GB]=New Private Window
|
||||
Name[en_US]=New Private Window
|
||||
Name[en_ZA]=New Private Window
|
||||
Name[eo]=Nova privata fenestro
|
||||
Name[es_AR]=Nueva ventana privada
|
||||
Name[es_CL]=Nueva ventana privada
|
||||
Name[es_ES]=Nueva ventana privada
|
||||
Name[es_MX]=Nueva ventana privada
|
||||
Name[et]=Uus privaatne aken
|
||||
Name[eu]=Leiho pribatu berria
|
||||
Name[fa]=پنجره ناشناس جدید
|
||||
Name[ff]=Henorde Suturo Hesere
|
||||
Name[fi]=Uusi yksityinen ikkuna
|
||||
Name[fr]=Nouvelle fenêtre de navigation privée
|
||||
Name[fy_NL]=Nij priveefinster
|
||||
Name[ga_IE]=Fuinneog Nua Phríobháideach
|
||||
Name[gd]=Uinneag phrìobhaideach ùr
|
||||
Name[gl]=Nova xanela privada
|
||||
Name[gn]=Ovetã ñemi pyahu
|
||||
Name[gu_IN]=નવી ખાનગી વિન્ડો
|
||||
Name[he]=חלון פרטי חדש
|
||||
Name[hi_IN]=नयी निजी विंडो
|
||||
Name[hr]=Novi privatni prozor
|
||||
Name[hsb]=Nowe priwatne wokno
|
||||
Name[hu]=Új privát ablak
|
||||
Name[hy_AM]=Սկսել Գաղտնի դիտարկում
|
||||
Name[id]=Jendela Mode Pribadi Baru
|
||||
Name[is]=Nýr huliðsgluggi
|
||||
Name[it]=Nuova finestra anonima
|
||||
Name[ja]=新しいプライベートウィンドウ
|
||||
Name[ja_JP-mac]=新規プライベートウインドウ
|
||||
Name[ka]=ახალი პირადი ფანჯარა
|
||||
Name[kk]=Жаңа жекелік терезе
|
||||
Name[km]=បង្អួចឯកជនថ្មី
|
||||
Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
|
||||
Name[ko]=새 사생활 보호 모드
|
||||
Name[kok]=नवो खाजगी विंडो
|
||||
Name[ks]=نْو پرایوٹ وینڈو&
|
||||
Name[lij]=Neuvo barcon privou
|
||||
Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
|
||||
Name[lt]=Naujas privataus naršymo langas
|
||||
Name[ltg]=Jauns privatais lūgs
|
||||
Name[lv]=Jauns privātais logs
|
||||
Name[mai]=नया निज विंडो (W)
|
||||
Name[mk]=Нов приватен прозорец
|
||||
Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
|
||||
Name[mr]=नवीन वैयक्तिक पटल
|
||||
Name[ms]=Tetingkap Persendirian Baharu
|
||||
Name[my]=New Private Window
|
||||
Name[nb_NO]=Nytt privat vindu
|
||||
Name[ne_NP]=नयाँ निजी सञ्झ्याल
|
||||
Name[nl]=Nieuw privévenster
|
||||
Name[nn_NO]=Nytt privat vindauge
|
||||
Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
|
||||
Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
|
||||
Name[pl]=Nowe okno prywatne
|
||||
Name[pt_BR]=Nova janela privativa
|
||||
Name[pt_PT]=Nova janela privada
|
||||
Name[rm]=Nova fanestra privata
|
||||
Name[ro]=Fereastră privată nouă
|
||||
Name[ru]=Новое приватное окно
|
||||
Name[sat]=नावा निजेराक् विंडो (W )
|
||||
Name[si]=නව පුද්ගලික කවුළුව (W)
|
||||
Name[sk]=Nové okno v režime Súkromné prehliadanie
|
||||
Name[sl]=Novo zasebno okno
|
||||
Name[son]=Sutura zanfun taaga
|
||||
Name[sq]=Dritare e Re Private
|
||||
Name[sr]=Нови приватан прозор
|
||||
Name[sv_SE]=Nytt privat fönster
|
||||
Name[ta]=புதிய தனிப்பட்ட சாளரம்
|
||||
Name[te]=కొత్త ఆంతరంగిక విండో
|
||||
Name[th]=หน้าต่างส่วนตัวใหม่
|
||||
Name[tr]=Yeni gizli pencere
|
||||
Name[tsz]=Juchiiti eraatarakua jimpani
|
||||
Name[uk]=Приватне вікно
|
||||
Name[ur]=نیا نجی دریچہ
|
||||
Name[uz]=Yangi maxfiy oyna
|
||||
Name[vi]=Cửa sổ riêng tư mới
|
||||
Name[wo]=Panlanteeru biir bu bees
|
||||
Name[xh]=Ifestile yangasese entsha
|
||||
Name[zh_CN]=新建隐私浏览窗口
|
||||
Name[zh_TW]=新增隱私視窗
|
||||
Exec=%EXEC --private-window %u
|
||||
|
||||
[Desktop Action ProfileManager]
|
||||
Name=Profile Manager
|
||||
Name[cs]=Správa profilů
|
||||
Name[de]=Profilmanager
|
||||
Name[fr]=Gestionnaire de profil
|
||||
Name[ru]=Менеджер профилей
|
||||
Name[uk]=Менеджер профілів
|
||||
Exec=%EXEC --ProfileManager
|
781
MozillaFirefox.spec
Normal file
781
MozillaFirefox.spec
Normal file
@ -0,0 +1,781 @@
|
||||
#
|
||||
# spec file for package MozillaFirefox
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# Copyright (c) 2006-2024 Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define _dwz_low_mem_die_limit 40000000
|
||||
%define _dwz_max_die_limit 200000000
|
||||
|
||||
# changed with every update
|
||||
# orig_version vs. mainver: To have beta-builds
|
||||
# FF70beta3 would be released as FF69.99
|
||||
# orig_version would be the upstream tar ball
|
||||
# orig_version 70.0
|
||||
# orig_suffix b3
|
||||
# major 69
|
||||
# mainver %%major.99
|
||||
%define major 129
|
||||
%define mainver %major.0.1
|
||||
%define orig_version 129.0.1
|
||||
%define orig_suffix %{nil}
|
||||
%define update_channel release
|
||||
%define branding 1
|
||||
%define devpkg 1
|
||||
|
||||
# PGO builds do not work in TW currently (bmo#1680306)
|
||||
%define do_profiling 0
|
||||
|
||||
# upstream default is clang (to use gcc for large parts set to 0)
|
||||
%define clang_build 0
|
||||
|
||||
%bcond_with only_print_mozconfig
|
||||
|
||||
# define if ccache should be used or not
|
||||
%define useccache 1
|
||||
|
||||
# SLE-12 doesn't have this macro
|
||||
%{!?_rpmmacrodir: %global _rpmmacrodir %{_rpmconfigdir}/macros.d}
|
||||
|
||||
# No i586 on SLE-12, as the rpmlints are broken and can't handle the big rpms resulting from this build.
|
||||
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
|
||||
ExclusiveArch: aarch64 ppc64le x86_64 s390x
|
||||
%else
|
||||
# Firefox only supports i686
|
||||
%ifarch %ix86
|
||||
ExclusiveArch: i586 i686
|
||||
BuildArch: i686
|
||||
%{expand:%%global optflags %(echo "%optflags"|sed -e s/i586/i686/) -march=i686 -mtune=generic -msse2}
|
||||
%endif
|
||||
%endif
|
||||
%{expand:%%global optflags %(echo "%optflags"|sed -e s/-flto=auto//) }
|
||||
|
||||
# general build definitions
|
||||
%define progname firefox
|
||||
%define appname Firefox
|
||||
%define pkgname MozillaFirefox
|
||||
%define srcname firefox
|
||||
%define progdir %{_prefix}/%_lib/%{progname}
|
||||
%define gnome_dir %{_prefix}
|
||||
%define desktop_file_name %{progname}
|
||||
%define firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
|
||||
%define __provides_exclude ^lib.*\\.so.*$
|
||||
%define __requires_exclude ^(libmoz.*|liblgpllibs.*|libxul.*|libgk.*)$
|
||||
%define localize 1
|
||||
%ifarch %ix86 x86_64
|
||||
%define crashreporter 1
|
||||
%else
|
||||
%define crashreporter 0
|
||||
%endif
|
||||
%define with_pipewire0_3 1
|
||||
%define wayland_supported 1
|
||||
%if 0%{?sle_version} > 0 && 0%{?sle_version} < 150200
|
||||
# pipewire is too old on Leap <=15.1
|
||||
%define with_pipewire0_3 0
|
||||
# Wayland is too old on Leap <=15.1 as well
|
||||
%define wayland_supported 0
|
||||
%endif
|
||||
|
||||
Name: %{pkgname}
|
||||
BuildRequires: Mesa-devel
|
||||
BuildRequires: alsa-devel
|
||||
BuildRequires: autoconf213
|
||||
BuildRequires: dbus-1-glib-devel
|
||||
BuildRequires: dejavu-fonts
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: memory-constraints
|
||||
%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150600
|
||||
BuildRequires: gcc13
|
||||
BuildRequires: gcc13-c++
|
||||
%else
|
||||
BuildRequires: gcc-c++
|
||||
%endif
|
||||
BuildRequires: cargo1.78
|
||||
BuildRequires: rust1.78
|
||||
%if 0%{useccache} != 0
|
||||
BuildRequires: ccache
|
||||
%endif
|
||||
BuildRequires: libXcomposite-devel
|
||||
BuildRequires: libcurl-devel
|
||||
BuildRequires: libiw-devel
|
||||
BuildRequires: libproxy-devel
|
||||
BuildRequires: makeinfo
|
||||
BuildRequires: mozilla-nspr-devel >= 4.35
|
||||
BuildRequires: mozilla-nss-devel >= 3.102.1
|
||||
BuildRequires: nasm >= 2.14
|
||||
BuildRequires: nodejs >= 12.22.12
|
||||
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
|
||||
BuildRequires: libXtst-devel
|
||||
BuildRequires: python-libxml2
|
||||
BuildRequires: python39
|
||||
BuildRequires: python39-curses
|
||||
BuildRequires: python39-devel
|
||||
%else
|
||||
%if 0%{?sle_version} > 150000 && 0%{?sle_version} <= 150600
|
||||
BuildRequires: nodejs12 >= 12.22.12
|
||||
BuildRequires: python39
|
||||
BuildRequires: python39-curses
|
||||
BuildRequires: python39-devel
|
||||
%else
|
||||
# ALP
|
||||
BuildRequires: nodejs >= 12.22.12
|
||||
BuildRequires: python3 >= 3.7
|
||||
BuildRequires: python3-curses
|
||||
BuildRequires: python3-devel
|
||||
%endif
|
||||
%endif
|
||||
BuildRequires: rust-cbindgen >= 0.26
|
||||
BuildRequires: unzip
|
||||
BuildRequires: update-desktop-files
|
||||
BuildRequires: xorg-x11-libXt-devel
|
||||
%if 0%{?do_profiling}
|
||||
BuildRequires: xvfb-run
|
||||
%endif
|
||||
BuildRequires: yasm
|
||||
BuildRequires: zip
|
||||
%if 0%{?suse_version} < 1550
|
||||
BuildRequires: pkgconfig(gconf-2.0) >= 1.2.1
|
||||
%endif
|
||||
BuildRequires: clang15-devel
|
||||
BuildRequires: pkgconfig(glib-2.0) >= 2.22
|
||||
BuildRequires: pkgconfig(gobject-2.0)
|
||||
BuildRequires: pkgconfig(gtk+-3.0) >= 3.14.0
|
||||
BuildRequires: pkgconfig(gtk+-unix-print-3.0)
|
||||
BuildRequires: pkgconfig(libffi)
|
||||
BuildRequires: pkgconfig(libpulse)
|
||||
%if %{with_pipewire0_3}
|
||||
BuildRequires: pkgconfig(libpipewire-0.3)
|
||||
%endif
|
||||
# libavcodec is required for H.264 support but the
|
||||
# openSUSE version is currently not able to play H.264
|
||||
# therefore the Packman version is required
|
||||
# minimum version of libavcodec is 53
|
||||
Recommends: libavcodec-full >= 0.10.16
|
||||
Version: %{mainver}
|
||||
Release: 0
|
||||
%if "%{name}" == "MozillaFirefox"
|
||||
Provides: firefox = %{mainver}
|
||||
Provides: firefox = %{version}-%{release}
|
||||
%endif
|
||||
Provides: web_browser
|
||||
Provides: appdata()
|
||||
Provides: appdata(firefox.appdata.xml)
|
||||
# this is needed to match this package with the kde4 helper package without the main package
|
||||
# having a hard requirement on the kde4 package
|
||||
%define kde_helper_version 6
|
||||
Provides: mozilla-kde4-version = %{kde_helper_version}
|
||||
Summary: Mozilla %{appname} Web Browser
|
||||
License: MPL-2.0
|
||||
Group: Productivity/Networking/Web/Browsers
|
||||
URL: http://www.mozilla.org/
|
||||
%if !%{with only_print_mozconfig}
|
||||
Source: http://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/source/%{srcname}-%{orig_version}%{orig_suffix}.source.tar.xz
|
||||
Source1: MozillaFirefox.desktop
|
||||
Source2: MozillaFirefox-rpmlintrc
|
||||
Source3: mozilla.sh.in
|
||||
Source4: tar_stamps
|
||||
%if %{localize}
|
||||
Source7: l10n-%{orig_version}%{orig_suffix}.tar.xz
|
||||
%endif
|
||||
Source8: firefox-mimeinfo.xml
|
||||
Source9: firefox.js
|
||||
Source11: firefox.1
|
||||
Source12: mozilla-get-app-id
|
||||
Source13: spellcheck.js
|
||||
Source14: https://github.com/openSUSE/firefox-scripts/raw/913fab1/create-tar.sh
|
||||
Source15: firefox-appdata.xml
|
||||
Source16: %{name}.changes
|
||||
Source17: firefox-search-provider.ini
|
||||
# Set up API keys, see http://www.chromium.org/developers/how-tos/api-keys
|
||||
# Note: these are for the openSUSE Firefox builds ONLY. For your own distribution,
|
||||
# please get your own set of keys.
|
||||
Source18: mozilla-api-key
|
||||
Source19: google-api-key
|
||||
Source20: https://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/source/%{srcname}-%{orig_version}%{orig_suffix}.source.tar.xz.asc
|
||||
Source21: https://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/KEY#/mozilla.keyring
|
||||
# Gecko/Toolkit
|
||||
Patch1: mozilla-nongnome-proxies.patch
|
||||
Patch2: mozilla-kde.patch
|
||||
Patch3: mozilla-ntlm-full-path.patch
|
||||
Patch4: mozilla-aarch64-startup-crash.patch
|
||||
Patch6: mozilla-s390-context.patch
|
||||
Patch7: mozilla-pgo.patch
|
||||
Patch8: mozilla-reduce-rust-debuginfo.patch
|
||||
Patch10: mozilla-bmo1504834-part1.patch
|
||||
Patch14: mozilla-bmo849632.patch
|
||||
Patch15: mozilla-bmo998749.patch
|
||||
Patch17: mozilla-libavcodec58_91.patch
|
||||
Patch18: mozilla-silence-no-return-type.patch
|
||||
Patch19: mozilla-bmo531915.patch
|
||||
Patch20: one_swizzle_to_rule_them_all.patch
|
||||
Patch21: svg-rendering.patch
|
||||
Patch23: mozilla-rust-disable-future-incompat.patch
|
||||
Patch25: mozilla-bmo1898476.patch
|
||||
Patch26: mozilla-bmo1907511.patch
|
||||
# Firefox/browser
|
||||
Patch101: firefox-kde.patch
|
||||
Patch102: firefox-branded-icons.patch
|
||||
%endif
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Requires(post): coreutils shared-mime-info desktop-file-utils
|
||||
Requires(postun): shared-mime-info desktop-file-utils
|
||||
Requires: %{name}-branding >= 68
|
||||
%requires_ge mozilla-nspr
|
||||
%requires_ge mozilla-nss
|
||||
%requires_ge libfreetype6
|
||||
Recommends: libcanberra0
|
||||
Recommends: libpulse0
|
||||
# To make security-keys (e.g. Yubikey) work with FF, it needs the udev-rules installed.
|
||||
# A clean package with the most common rules exists only in SP3 onwards. `u2f-hosts` could be used on older
|
||||
# code streams, but it contains more than just the rules, so we're not recommending it here.
|
||||
%if 0%{?suse_version} >= 1600 || 0%{?sle_version} >= 150300
|
||||
Recommends: libfido2-udev
|
||||
%endif
|
||||
# addon leads to startup crash (bnc#908892)
|
||||
Obsoletes: tracker-miner-firefox < 0.15
|
||||
%if 0%{?devpkg} == 0
|
||||
Obsoletes: %{name}-devel < %{version}
|
||||
%endif
|
||||
ExcludeArch: armv6l armv6hl ppc ppc64
|
||||
|
||||
%description
|
||||
Mozilla Firefox is a standalone web browser, designed for standards
|
||||
compliance and performance. Its functionality can be enhanced via a
|
||||
plethora of extensions.
|
||||
|
||||
%if 0%{?devpkg}
|
||||
%package devel
|
||||
Summary: Devel package for %{appname}
|
||||
Group: Development/Tools/Other
|
||||
Provides: firefox-devel = %{version}-%{release}
|
||||
Requires: %{name} = %{version}
|
||||
Requires: perl(Archive::Zip)
|
||||
Requires: perl(XML::Simple)
|
||||
BuildArch: noarch
|
||||
|
||||
%description devel
|
||||
Development files for %{appname} to make packaging of addons easier.
|
||||
%endif
|
||||
|
||||
%if %localize
|
||||
%package translations-common
|
||||
Summary: Common translations for %{appname}
|
||||
Group: System/Localization
|
||||
Provides: locale(%{name}:ar;ca;cs;da;de;el;en_GB;es_AR;es_CL;es_ES;fi;fr;hu;it;ja;ko;nb_NO;nl;pl;pt_BR;pt_PT;ru;sv_SE;zh_CN;zh_TW)
|
||||
# This is there for updates from Firefox before the translations-package was split up into 2 packages
|
||||
Provides: %{name}-translations
|
||||
Requires: %{name} = %{version}
|
||||
Obsoletes: %{name}-translations < %{version}-%{release}
|
||||
|
||||
%description translations-common
|
||||
This package contains several common languages for the user interface
|
||||
of %{appname}.
|
||||
|
||||
%package translations-other
|
||||
Summary: Extra translations for %{appname}
|
||||
Group: System/Localization
|
||||
Provides: locale(%{name}:ach;af;an;ast;az;be;bg;bn;br;bs;cak;cy;dsb;en_CA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gn;gu_IN;he;hi_IN;hr;hsb;hy_AM;ia;id;is;ka;kab;kk;km;kn;lij;lt;lv;mk;mr;ms;my;ne_NP;nn_NO;oc;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;te;th;tr;uk;ur;uz;vi;xh)
|
||||
Requires: %{name} = %{version}
|
||||
Obsoletes: %{name}-translations < %{version}-%{release}
|
||||
|
||||
%description translations-other
|
||||
This package contains rarely used languages for the user interface
|
||||
of %{appname}.
|
||||
%endif
|
||||
|
||||
%package branding-upstream
|
||||
Summary: Upstream branding for %{appname}
|
||||
Group: Productivity/Networking/Web/Browsers
|
||||
Provides: %{name}-branding = %{version}
|
||||
Conflicts: otherproviders(%{name}-branding)
|
||||
Supplements: packageand(%{name}:branding-upstream)
|
||||
#BRAND: Provide three files -
|
||||
#BRAND: /usr/lib/firefox/browserconfig.properties that contains the
|
||||
#BRAND: default homepage and some other default configuration options
|
||||
#BRAND: /usr/lib/firefox/defaults/profile/bookmarks.html that contains
|
||||
#BRAND: the list of default bookmarks
|
||||
#BRAND: It's also possible to create a file
|
||||
#BRAND: /usr/lib/firefox/defaults/preferences/firefox-$vendor.js to set
|
||||
#BRAND: custom preference overrides.
|
||||
#BRAND: It's also possible to drop files in /usr/lib/firefox/distribution/searchplugins/common/
|
||||
|
||||
%description branding-upstream
|
||||
This package provides upstream look and feel for %{appname}.
|
||||
|
||||
%if !%{with only_print_mozconfig}
|
||||
%prep
|
||||
%if %localize
|
||||
|
||||
# If generated incorrectly, the tarball will be ~270B in
|
||||
# size, so 1MB seems like good enough limit to check.
|
||||
MINSIZE=1048576
|
||||
if (( $(stat -Lc%s "%{SOURCE7}") < MINSIZE)); then
|
||||
echo "Translations tarball %{SOURCE7} not generated properly."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
%setup -q -n %{srcname}-%{orig_version} -b 7
|
||||
%else
|
||||
%setup -q -n %{srcname}-%{orig_version}
|
||||
%endif
|
||||
cd $RPM_BUILD_DIR/%{srcname}-%{orig_version}
|
||||
%autopatch -p1
|
||||
%endif
|
||||
|
||||
%build
|
||||
%if !%{with only_print_mozconfig}
|
||||
# no need to add build time to binaries
|
||||
modified="$(sed -n '/^----/n;s/ - .*$//;p;q' "%{_sourcedir}/%{pkgname}.changes")"
|
||||
DATE="\"$(date -d "${modified}" "+%%b %%e %%Y")\""
|
||||
TIME="\"$(date -d "${modified}" "+%%R")\""
|
||||
find . -regex ".*\.c\|.*\.cpp\|.*\.h" -exec sed -i "s/__DATE__/${DATE}/g;s/__TIME__/${TIME}/g" {} +
|
||||
|
||||
# SLE-12 provides python39, but that package does not provide a python3 binary
|
||||
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000
|
||||
#sed -i "s/python3/python3.9/g" configure.in
|
||||
sed -i "s|/usr/bin/env python3|/usr/bin/env python3.9|" mach
|
||||
sed -i "s|potential_python_binary = f\"python3.{i}\"|potential_python_binary = f\"python3.9.{i}\"|" mach
|
||||
export PYTHON3=/usr/bin/python3.9
|
||||
%endif
|
||||
|
||||
kdehelperversion=$(cat toolkit/xre/nsKDEUtils.cpp | grep '#define KMOZILLAHELPER_VERSION' | cut -d ' ' -f 3)
|
||||
if test "$kdehelperversion" != %{kde_helper_version}; then
|
||||
echo fix kde helper version in the .spec file
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# When doing only_print_mozconfig, this file isn't necessarily available, so skip it
|
||||
cp %{SOURCE4} .obsenv.sh
|
||||
%else
|
||||
# We need to make sure its empty
|
||||
echo "" > .obsenv.sh
|
||||
%endif
|
||||
|
||||
cat >> .obsenv.sh <<EOF
|
||||
export CARGO_HOME=${RPM_BUILD_DIR}/%{srcname}-%{orig_version}/.cargo
|
||||
export MOZ_SOURCE_CHANGESET=\$RELEASE_TAG
|
||||
export SOURCE_REPO=\$RELEASE_REPO
|
||||
export source_repo=\$RELEASE_REPO
|
||||
export MOZ_SOURCE_REPO=\$RELEASE_REPO
|
||||
export MOZ_BUILD_DATE=\$RELEASE_TIMESTAMP
|
||||
export MOZILLA_OFFICIAL=1
|
||||
export BUILD_OFFICIAL=1
|
||||
export MOZ_TELEMETRY_REPORTING=1
|
||||
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
|
||||
export CFLAGS="%{optflags}"
|
||||
%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150600
|
||||
export CC=gcc-13
|
||||
export CXX=g++-13
|
||||
%else
|
||||
%if 0%{?clang_build} == 0
|
||||
export CC=gcc
|
||||
export CXX=g++
|
||||
%endif
|
||||
%endif
|
||||
%ifarch %arm %ix86
|
||||
### NOTE: these sections are not required anymore. Alson --no-keep-memory + -Wl,-z,pack-relative-relocs causes
|
||||
### ld to go OOM (https://sourceware.org/bugzilla/show_bug.cgi?id=30756)
|
||||
# Limit RAM usage during link
|
||||
# export LDFLAGS="\$LDFLAGS -Wl,--no-keep-memory -Wl,--reduce-memory-overheads -Wl,--no-map-whole-files -Wl,--hash-size=31"
|
||||
#
|
||||
# A lie to prevent -Wl,--gc-sections being set which requires more memory than 32bit can offer
|
||||
#export GC_SECTIONS_BREAKS_DEBUG_RANGES=yes
|
||||
%endif
|
||||
export LDFLAGS="\$LDFLAGS -fPIC -Wl,-z,relro,-z,now"
|
||||
%ifarch ppc64 ppc64le
|
||||
%endif
|
||||
%ifarch %ix86
|
||||
# Not enough memory on 32-bit systems, reduce debug info.
|
||||
export CFLAGS="\$CFLAGS -g1"
|
||||
%endif
|
||||
export CXXFLAGS="\$CFLAGS"
|
||||
export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
|
||||
EOF
|
||||
# Done with env-variables.
|
||||
source ./.obsenv.sh
|
||||
|
||||
%ifarch aarch64 %arm ppc64 ppc64le riscv64
|
||||
%limit_build -m 2500
|
||||
%endif
|
||||
|
||||
# Generating mozconfig
|
||||
cat << EOF > $MOZCONFIG
|
||||
mk_add_options MOZILLA_OFFICIAL=1
|
||||
mk_add_options BUILD_OFFICIAL=1
|
||||
mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs}
|
||||
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
|
||||
. \$topsrcdir/browser/config/mozconfig
|
||||
ac_add_options --disable-bootstrap
|
||||
ac_add_options --prefix=%{_prefix}
|
||||
ac_add_options --libdir=%{_libdir}
|
||||
ac_add_options --includedir=%{_includedir}
|
||||
ac_add_options --enable-release
|
||||
%if 0%{wayland_supported}
|
||||
ac_add_options --enable-default-toolkit=cairo-gtk3-wayland
|
||||
%else
|
||||
ac_add_options --enable-default-toolkit=cairo-gtk3
|
||||
%endif
|
||||
# bmo#1441155 - Disable the generation of Rust debug symbols on Linux32
|
||||
%ifarch %ix86 %arm
|
||||
ac_add_options --disable-debug-symbols
|
||||
%else
|
||||
ac_add_options --enable-debug-symbols=-g0
|
||||
%endif
|
||||
ac_add_options --disable-install-strip
|
||||
%ifarch %ix86 %arm
|
||||
# OOM on 32-bit when ld passed -Wl,-z,pack-relative-relocs
|
||||
# ac_add_options --enable-elf-hack
|
||||
%endif
|
||||
ac_add_options --with-system-nspr
|
||||
ac_add_options --with-system-nss
|
||||
%if 0%{useccache} != 0
|
||||
ac_add_options --with-ccache
|
||||
%endif
|
||||
%if %{localize}
|
||||
ac_add_options --with-l10n-base=$RPM_BUILD_DIR/l10n
|
||||
%endif
|
||||
#ac_add_options --with-system-jpeg # libjpeg-turbo is used internally
|
||||
#ac_add_options --with-system-png # doesn't work because of missing APNG support
|
||||
ac_add_options --with-system-zlib
|
||||
ac_add_options --disable-updater
|
||||
ac_add_options --disable-tests
|
||||
ac_add_options --enable-alsa
|
||||
ac_add_options --disable-debug
|
||||
ac_add_options --enable-update-channel=%{update_channel}
|
||||
ac_add_options --with-mozilla-api-keyfile=%{SOURCE18}
|
||||
# Google-service currently not available for free anymore
|
||||
#ac_add_options --with-google-location-service-api-keyfile=%%{SOURCE19}
|
||||
ac_add_options --with-google-safebrowsing-api-keyfile=%{SOURCE19}
|
||||
ac_add_options --with-unsigned-addon-scopes=app
|
||||
ac_add_options --allow-addon-sideload
|
||||
# at least temporary until the "wasi-sysroot" issue is solved
|
||||
ac_add_options --without-wasm-sandboxed-libraries
|
||||
%ifarch x86_64 aarch64
|
||||
ac_add_options --enable-rust-simd
|
||||
%endif
|
||||
%if %branding
|
||||
ac_add_options --enable-official-branding
|
||||
%endif
|
||||
ac_add_options --enable-libproxy
|
||||
%if ! %crashreporter
|
||||
ac_add_options --disable-crashreporter
|
||||
%endif
|
||||
%ifarch %arm
|
||||
ac_add_options --with-fpu=vfpv3-d16
|
||||
ac_add_options --with-float-abi=hard
|
||||
%ifarch armv6l armv6hl
|
||||
ac_add_options --with-arch=armv6
|
||||
%else
|
||||
ac_add_options --with-arch=armv7-a
|
||||
%endif
|
||||
%endif
|
||||
# mitigation/workaround for bmo#1512162
|
||||
%ifarch s390x
|
||||
ac_add_options --enable-optimize="-O1"
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
# LTO needs newer toolchain stack only (at least GCC 8.2.1 (r268506)
|
||||
%if 0%{?suse_version} > 1500
|
||||
ac_add_options --enable-lto
|
||||
%if 0%{?do_profiling}
|
||||
ac_add_options MOZ_PGO=1
|
||||
%endif
|
||||
%endif
|
||||
%endif
|
||||
EOF
|
||||
|
||||
%if %{with only_print_mozconfig}
|
||||
cat ./.obsenv.sh
|
||||
cat $MOZCONFIG
|
||||
%else
|
||||
|
||||
%if 0%{useccache} != 0
|
||||
ccache -s
|
||||
%endif
|
||||
%if 0%{?do_profiling}
|
||||
xvfb-run --server-args="-screen 0 1920x1080x24" \
|
||||
%endif
|
||||
./mach build -v
|
||||
|
||||
# build additional locales
|
||||
%if %localize
|
||||
truncate -s 0 %{_tmppath}/translations.{common,other}
|
||||
# langpack-build can not be done in parallel easily (see https://bugzilla.mozilla.org/show_bug.cgi?id=1660943)
|
||||
# Therefore, we have to have a separate obj-dir for each language
|
||||
# We do this, by creating a mozconfig-template with the necessary switches
|
||||
# and a placeholder obj-dir, which gets copied and modified for each language
|
||||
|
||||
# Create mozconfig-template for langbuild
|
||||
cat << EOF > ${MOZCONFIG}_LANG
|
||||
mk_add_options MOZILLA_OFFICIAL=1
|
||||
mk_add_options BUILD_OFFICIAL=1
|
||||
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj_LANG
|
||||
. \$topsrcdir/browser/config/mozconfig
|
||||
ac_add_options --prefix=%{_prefix}
|
||||
ac_add_options --with-l10n-base=$RPM_BUILD_DIR/l10n
|
||||
ac_add_options --disable-updater
|
||||
ac_add_options --without-wasm-sandboxed-libraries
|
||||
%if %branding
|
||||
ac_add_options --enable-official-branding
|
||||
%endif
|
||||
EOF
|
||||
|
||||
%define njobs 0%{?jobs:%jobs}
|
||||
mkdir -p $RPM_BUILD_DIR/langpacks_artifacts/
|
||||
sed -r '/^(ja-JP-mac|ga-IE|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{srcname}-%{orig_version}/browser/locales/shipped-locales \
|
||||
| xargs -n 1 %{?njobs:-P %njobs} -I {} /bin/sh -c '
|
||||
locale=$1
|
||||
cp ${MOZCONFIG}_LANG ${MOZCONFIG}_$locale
|
||||
sed -i "s|obj_LANG|obj_$locale|" ${MOZCONFIG}_$locale
|
||||
export MOZCONFIG=${MOZCONFIG}_$locale
|
||||
# nsinstall is needed for langpack-build. It is already built by `./mach build`, but building it again is very fast
|
||||
./mach build config/nsinstall langpack-$locale
|
||||
cp -L ../obj_$locale/dist/linux-*/xpi/firefox-%{orig_version}.$locale.langpack.xpi \
|
||||
$RPM_BUILD_DIR/langpacks_artifacts/langpack-$locale@firefox.mozilla.org.xpi
|
||||
# check against the fixed common list and sort into the right filelist
|
||||
_matched=0
|
||||
for _match in ar ca cs da de el en-GB es-AR es-CL es-ES fi fr hu it ja ko nb-NO nl pl pt-BR pt-PT ru sv-SE zh-CN zh-TW; do
|
||||
[ "$_match" = "$locale" ] && _matched=1
|
||||
done
|
||||
[ $_matched -eq 1 ] && _l10ntarget=common || _l10ntarget=other
|
||||
echo %{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org.xpi \
|
||||
>> %{_tmppath}/translations.$_l10ntarget
|
||||
' -- {}
|
||||
%endif
|
||||
|
||||
%if 0%{useccache} != 0
|
||||
ccache -s
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%install
|
||||
cd $RPM_BUILD_DIR/obj
|
||||
source %{SOURCE4}
|
||||
export MOZ_SOURCE_STAMP=$RELEASE_TAG
|
||||
export MOZ_SOURCE_REPO=$RELEASE_REPO
|
||||
# need to remove default en-US firefox-l10n.js before it gets
|
||||
# populated into browser's omni.ja; it only contains general.useragent.locale
|
||||
# which should be loaded from each language pack (set in firefox.js)
|
||||
rm dist/bin/browser/defaults/preferences/firefox-l10n.js
|
||||
make -C browser/installer STRIP=/bin/true MOZ_PKG_FATAL_WARNINGS=0
|
||||
#DEBUG (break the build if searchplugins are missing / temporary)
|
||||
grep amazondotcom dist/firefox/browser/omni.ja
|
||||
# copy tree into RPM_BUILD_ROOT
|
||||
mkdir -p %{buildroot}%{progdir}
|
||||
cp -rf $RPM_BUILD_DIR/obj/dist/%{srcname}/* %{buildroot}%{progdir}
|
||||
%if %localize
|
||||
mkdir -p %{buildroot}%{progdir}/browser/extensions
|
||||
cp -rf $RPM_BUILD_DIR/langpacks_artifacts/* %{buildroot}%{progdir}/browser/extensions/
|
||||
%endif
|
||||
mkdir -p %{buildroot}%{progdir}/distribution/extensions
|
||||
mkdir -p %{buildroot}%{progdir}/browser/defaults/preferences/
|
||||
# renaming executables (for regular vs. ESR)
|
||||
%if "%{srcname}" != "%{progname}"
|
||||
mv %{buildroot}%{progdir}/%{srcname} %{buildroot}%{progdir}/%{progname}
|
||||
mv %{buildroot}%{progdir}/%{srcname}-bin %{buildroot}%{progdir}/%{progname}-bin
|
||||
%endif
|
||||
# install gre prefs
|
||||
install -m 644 %{SOURCE13} %{buildroot}%{progdir}/defaults/pref/
|
||||
# install browser prefs
|
||||
install -m 644 %{SOURCE9} %{buildroot}%{progdir}/browser/defaults/preferences/firefox.js
|
||||
|
||||
# remove some executable permissions
|
||||
find %{buildroot}%{progdir} \
|
||||
-name "*.js" -o \
|
||||
-name "*.jsm" -o \
|
||||
-name "*.rdf" -o \
|
||||
-name "*.properties" -o \
|
||||
-name "*.dtd" -o \
|
||||
-name "*.txt" -o \
|
||||
-name "*.xml" -o \
|
||||
-name "*.css" \
|
||||
-exec chmod a-x {} +
|
||||
# remove mkdir.done files from installed base
|
||||
find %{buildroot}%{progdir} -type f -name ".mkdir.done" -delete
|
||||
# overwrite the mozilla start-script and link it to /usr/bin
|
||||
mkdir --parents %{buildroot}/usr/bin
|
||||
sed "s:%%PREFIX:%{_prefix}:g
|
||||
s:%%PROGDIR:%{progdir}:g
|
||||
s:%%APPNAME:%{progname}:g
|
||||
s:%%WAYLAND_SUPPORTED:%{wayland_supported}:g
|
||||
s:%%PROFILE:.mozilla/firefox:g" \
|
||||
%{SOURCE3} > %{buildroot}%{progdir}/%{progname}.sh
|
||||
chmod 755 %{buildroot}%{progdir}/%{progname}.sh
|
||||
ln -sf ../..%{progdir}/%{progname}.sh %{buildroot}%{_bindir}/%{progname}
|
||||
# desktop file
|
||||
mkdir -p %{buildroot}%{_datadir}/applications
|
||||
sed "s:%%NAME:%{appname}:g
|
||||
s:%%EXEC:%{progname}:g
|
||||
s:%%ICON:%{progname}:g
|
||||
s:%%WMCLASS:%{progname}%{major}:g" \
|
||||
%{SOURCE1} > %{buildroot}%{_datadir}/applications/%{desktop_file_name}.desktop
|
||||
%suse_update_desktop_file %{desktop_file_name} Network WebBrowser GTK
|
||||
# additional mime-types
|
||||
mkdir -p %{buildroot}%{_datadir}/mime/packages
|
||||
cp %{SOURCE8} %{buildroot}%{_datadir}/mime/packages/%{progname}.xml
|
||||
# appdata
|
||||
mkdir -p %{buildroot}%{_datadir}/metainfo
|
||||
sed "s:firefox.desktop:%{desktop_file_name}:g" \
|
||||
%{SOURCE15} > %{buildroot}%{_datadir}/metainfo/%{desktop_file_name}.appdata.xml
|
||||
# install man-page
|
||||
mkdir -p %{buildroot}%{_mandir}/man1/
|
||||
cp %{SOURCE11} %{buildroot}%{_mandir}/man1/%{progname}.1
|
||||
# install GNOME Shell search provider
|
||||
mkdir -p %{buildroot}%{_datadir}/gnome-shell/search-providers
|
||||
cp %{SOURCE17} %{buildroot}%{_datadir}/gnome-shell/search-providers
|
||||
##########
|
||||
# ADDONS
|
||||
#
|
||||
mkdir -p %{buildroot}%{_datadir}/mozilla/extensions/%{firefox_appid}
|
||||
mkdir -p %{buildroot}%{_libdir}/mozilla/extensions/%{firefox_appid}
|
||||
# Install symbolic icon for GNOME
|
||||
%if %branding
|
||||
for size in 16 22 24 32 48 64 128 256; do
|
||||
%else
|
||||
for size in 16 32 48; do
|
||||
%endif
|
||||
mkdir -p %{buildroot}%{gnome_dir}/share/icons/hicolor/${size}x${size}/apps/
|
||||
cp %{buildroot}%{progdir}/browser/chrome/icons/default/default$size.png \
|
||||
%{buildroot}%{gnome_dir}/share/icons/hicolor/${size}x${size}/apps/%{progname}.png
|
||||
done
|
||||
# excludes
|
||||
rm -f %{buildroot}%{progdir}/updater.ini
|
||||
rm -f %{buildroot}%{progdir}/removed-files
|
||||
rm -f %{buildroot}%{progdir}/README.txt
|
||||
rm -f %{buildroot}%{progdir}/old-homepage-default.properties
|
||||
rm -f %{buildroot}%{progdir}/run-mozilla.sh
|
||||
rm -f %{buildroot}%{progdir}/LICENSE
|
||||
rm -f %{buildroot}%{progdir}/precomplete
|
||||
rm -f %{buildroot}%{progdir}/update-settings.ini
|
||||
%if 0%{?devpkg}
|
||||
# devel
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
install -m 755 %SOURCE12 %{buildroot}%{_bindir}
|
||||
# inspired by mandriva
|
||||
mkdir -p %{buildroot}%{_rpmmacrodir}
|
||||
cat <<'FIN' >%{buildroot}%{_rpmmacrodir}/macros.%{progname}
|
||||
# Macros from %%{name} package
|
||||
%%firefox_major %{major}
|
||||
%%firefox_version %{version}
|
||||
%%firefox_mainver %{mainver}
|
||||
%%firefox_mozillapath %%{_libdir}/%{progname}
|
||||
%%firefox_pluginsdir %%{_libdir}/mozilla/plugins
|
||||
%%firefox_appid \{ec8030f7-c20a-464f-9b0e-13a3a9e97384\}
|
||||
%%firefox_extdir %%(if [ "%%_target_cpu" = "noarch" ]; then echo %%{_datadir}/mozilla/extensions/%%{firefox_appid}; else echo %%{_libdir}/mozilla/extensions/%%{firefox_appid}; fi)
|
||||
|
||||
%%firefox_ext_install() \
|
||||
extdir="%%{buildroot}%%{firefox_extdir}/`mozilla-get-app-id '%%1'`" \
|
||||
mkdir -p "$extdir" \
|
||||
%%{__unzip} -q -d "$extdir" "%%1" \
|
||||
%%{nil}
|
||||
FIN
|
||||
%endif
|
||||
# fdupes
|
||||
%fdupes %{buildroot}%{progdir}
|
||||
%fdupes %{buildroot}%{_datadir}
|
||||
|
||||
%post
|
||||
# update mime and desktop database
|
||||
%mime_database_post
|
||||
%desktop_database_post
|
||||
%icon_theme_cache_post
|
||||
exit 0
|
||||
|
||||
%postun
|
||||
%icon_theme_cache_postun
|
||||
%desktop_database_postun
|
||||
%mime_database_postun
|
||||
exit 0
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%dir %{progdir}
|
||||
%dir %{progdir}/browser/
|
||||
%dir %{progdir}/browser/chrome/
|
||||
%{progdir}/browser/defaults
|
||||
%{progdir}/browser/features/
|
||||
%{progdir}/browser/chrome/icons
|
||||
%{progdir}/browser/omni.ja
|
||||
%dir %{progdir}/distribution/
|
||||
%{progdir}/distribution/extensions/
|
||||
%{progdir}/defaults/
|
||||
%{progdir}/gmp-clearkey/
|
||||
%attr(755,root,root) %{progdir}/%{progname}.sh
|
||||
%{progdir}/%{progname}
|
||||
%{progdir}/%{progname}-bin
|
||||
%{progdir}/application.ini
|
||||
%{progdir}/dependentlibs.list
|
||||
%{progdir}/*.so
|
||||
%{progdir}/glxtest
|
||||
%if 0%{wayland_supported}
|
||||
%{progdir}/vaapitest
|
||||
%endif
|
||||
%ifarch aarch64 riscv64 %arm
|
||||
%{progdir}/v4l2test
|
||||
%endif
|
||||
%{progdir}/omni.ja
|
||||
%{progdir}/fonts/
|
||||
%{progdir}/pingsender
|
||||
%{progdir}/platform.ini
|
||||
%if %crashreporter
|
||||
%{progdir}/crashreporter
|
||||
#%{progdir}/crashreporter.ini
|
||||
#%{progdir}/Throbber-small.gif
|
||||
%{progdir}/minidump-analyzer
|
||||
#%{progdir}/browser/crashreporter-override.ini
|
||||
%endif
|
||||
%{_datadir}/applications/%{desktop_file_name}.desktop
|
||||
%{_datadir}/mime/packages/%{progname}.xml
|
||||
%dir %{_datadir}/gnome-shell
|
||||
%dir %{_datadir}/gnome-shell/search-providers
|
||||
%{_datadir}/gnome-shell/search-providers/*.ini
|
||||
%dir %{_datadir}/mozilla
|
||||
%dir %{_datadir}/mozilla/extensions
|
||||
%dir %{_datadir}/mozilla/extensions/%{firefox_appid}
|
||||
%dir %{_libdir}/mozilla
|
||||
%dir %{_libdir}/mozilla/extensions
|
||||
%dir %{_libdir}/mozilla/extensions/%{firefox_appid}
|
||||
%{gnome_dir}/share/icons/hicolor/
|
||||
%{_bindir}/%{progname}
|
||||
%doc %{_mandir}/man1/%{progname}.1.gz
|
||||
%{_datadir}/metainfo/
|
||||
|
||||
%if 0%{?devpkg}
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/mozilla-get-app-id
|
||||
%{_rpmmacrodir}/macros.%{progname}
|
||||
%endif
|
||||
|
||||
%if %localize
|
||||
%files translations-common -f %{_tmppath}/translations.common
|
||||
%defattr(-,root,root)
|
||||
%dir %{progdir}
|
||||
%dir %{progdir}/browser/extensions/
|
||||
|
||||
%files translations-other -f %{_tmppath}/translations.other
|
||||
%defattr(-,root,root)
|
||||
%dir %{progdir}
|
||||
%dir %{progdir}/browser/extensions/
|
||||
%endif
|
||||
|
||||
# this package does not need to provide files but is needed to fulfill
|
||||
# requirements if no other branding package is to be installed
|
||||
%files branding-upstream
|
||||
%defattr(-,root,root)
|
||||
%dir %{progdir}
|
||||
|
||||
%changelog
|
52
_constraints
Normal file
52
_constraints
Normal file
@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<constraints>
|
||||
<hardware>
|
||||
<jobs>4</jobs>
|
||||
<disk>
|
||||
<size unit="G">26</size>
|
||||
</disk>
|
||||
<physicalmemory>
|
||||
<size unit="G">15</size>
|
||||
</physicalmemory>
|
||||
</hardware>
|
||||
<hostlabel exclude="true">SLOW_CPU</hostlabel>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>armv6l</arch>
|
||||
<arch>armv7l</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<disk>
|
||||
<size unit="G">12</size>
|
||||
</disk>
|
||||
<physicalmemory>
|
||||
<size unit="G">5</size>
|
||||
</physicalmemory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<!-- LTO disabled - less RAM -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>aarch64</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<cpu>
|
||||
<flag>asimdrdm</flag>
|
||||
</cpu>
|
||||
<physicalmemory>
|
||||
<size unit="G">14</size>
|
||||
</physicalmemory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>ppc64le</arch>
|
||||
<arch>s390x</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<physicalmemory>
|
||||
<size unit="G">12</size>
|
||||
</physicalmemory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
</constraints>
|
575
create-tar.sh
Normal file
575
create-tar.sh
Normal file
@ -0,0 +1,575 @@
|
||||
#!/bin/bash
|
||||
|
||||
function main() {
|
||||
# Exit script on CTRL+C
|
||||
trap "exit" INT
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
print_usage_and_exit
|
||||
fi
|
||||
|
||||
check_required_tools
|
||||
|
||||
# Sourcing the given tar_stamps-file to have the variables available
|
||||
TAR_STAMP="$1"
|
||||
source "$TAR_STAMP" || print_usage_and_exit
|
||||
|
||||
set_internal_variables
|
||||
|
||||
check_what_to_do_with_source_tarballs
|
||||
download_upstream_source_tarballs
|
||||
|
||||
if [ -z ${SKIP_LOCALES+x} ]; then
|
||||
check_what_to_do_with_locales_tarballs
|
||||
create_locales_tarballs
|
||||
else
|
||||
printf "%-40s: User forced skip (SKIP_LOCALES set)\n" "locales"
|
||||
fi
|
||||
|
||||
clean_up_old_tarballs
|
||||
}
|
||||
|
||||
function print_usage_and_exit() {
|
||||
echo "Usage: create-tar.sh tar_stamps"
|
||||
echo ""
|
||||
echo "Where tar_stamps should look like this:"
|
||||
echo ""
|
||||
cat << EOF
|
||||
# Node ID: 64ee63facd4ff96b3e8590cff559d7e97ac6b061
|
||||
PRODUCT="firefox" # "firefox" or "thunderbird"
|
||||
CHANNEL="esr60"
|
||||
VERSION="60.7.0"
|
||||
VERSION_SUFFIX="esr"
|
||||
RELEASE_TAG="" # Needs only to be set if no tar-ball can be downloaded
|
||||
PREV_VERSION="60.6.3" # Prev. version only needed for locales (leave empty to force l10n-generation)
|
||||
PREV_VERSION_SUFFIX="esr"
|
||||
#SKIP_LOCALES="" # Uncomment to skip l10n-generation
|
||||
EOF
|
||||
|
||||
exit 1
|
||||
}
|
||||
|
||||
function check_required_tools() {
|
||||
# check required tools
|
||||
check_for_binary /usr/bin/hg "mercurial"
|
||||
check_for_binary /usr/bin/jq "jq"
|
||||
which python3 > /dev/null || exit 1
|
||||
|
||||
# use parallel compression, if available
|
||||
compression='-J'
|
||||
pixz -h > /dev/null 2>&1
|
||||
if (($? != 127)); then
|
||||
compression='-Ipixz'
|
||||
fi
|
||||
}
|
||||
|
||||
function set_internal_variables() {
|
||||
# Internal variables
|
||||
BRANCH="releases/mozilla-$CHANNEL"
|
||||
if [ "$PRODUCT" = "firefox" ]; then
|
||||
FF_LOCALE_FILE="firefox-$VERSION/browser/locales/l10n-changesets.json"
|
||||
else
|
||||
FF_LOCALE_FILE="thunderbird-$VERSION/browser/locales/l10n-changesets.json"
|
||||
TB_LOCALE_FILE="thunderbird-$VERSION/comm/mail/locales/l10n-changesets.json"
|
||||
FF_PREV_LOCALE_FILE="thunderbird-$PREV_VERSION/browser/locales/l10n-changesets.json"
|
||||
TB_PREV_LOCALE_FILE="thunderbird-$PREV_VERSION/comm/mail/locales/l10n-changesets.json"
|
||||
L10N_STRING_PATTERNS="thunderbird-$VERSION/comm/python/l10n/tbxchannel/l10n_merge.py"
|
||||
fi
|
||||
|
||||
SOURCE_TARBALL="$PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz"
|
||||
PREV_SOURCE_TARBALL="$PRODUCT-$PREV_VERSION$PREV_VERSION_SUFFIX.source.tar.xz"
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
TB_LOCALE_TARBALL="$PRODUCT-$VERSION$VERSION_SUFFIX.strings_all.tar.zst"
|
||||
fi
|
||||
FTP_URL="https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source"
|
||||
FTP_CANDIDATES_BASE_URL="https://ftp.mozilla.org/pub/%s/candidates"
|
||||
LOCALES_URL="https://product-details.mozilla.org/1.0/l10n"
|
||||
FF_L10N_MONOREPO="https://github.com/mozilla-l10n/firefox-l10n"
|
||||
PRODUCT_URL="https://product-details.mozilla.org/1.0"
|
||||
ALREADY_EXTRACTED_LOCALES_FILE=0
|
||||
}
|
||||
|
||||
function get_ftp_candidates_url() {
|
||||
local CURR_PRODUCT="$1"
|
||||
local VERSION_WITH_SUFFIX="$2"
|
||||
printf "$FTP_CANDIDATES_BASE_URL/$VERSION_WITH_SUFFIX-candidates" "$CURR_PRODUCT"
|
||||
}
|
||||
|
||||
function check_tarball_source () {
|
||||
TARBALL=$1
|
||||
# Print out what is going to be done:
|
||||
if [ -e "$TARBALL" ]; then
|
||||
echo "Reuse existing file"
|
||||
elif wget --spider "$FTP_URL/$TARBALL" 2> /dev/null; then
|
||||
echo "Download file"
|
||||
else
|
||||
local CANDIDATE_TARBALL_LOCATION=""
|
||||
CANDIDATE_TARBALL_LOCATION="$(printf "%s/%s/source/%s" "$(get_ftp_candidates_url "$PRODUCT" "$VERSION$VERSION_SUFFIX")" "$BUILD_ID" "$TARBALL" )"
|
||||
if wget --spider "$CANDIDATE_TARBALL_LOCATION" 2> /dev/null; then
|
||||
echo "Download UNRELEASED candidate ($BUILD_ID)"
|
||||
else
|
||||
echo "Mercurial checkout"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function ask_cont_abort_question() {
|
||||
while true; do
|
||||
read -r -p "$1 [(c)ontinue/(a)bort] " ca
|
||||
case $ca in
|
||||
[Cc]* ) return 0 ;;
|
||||
[Aa]* ) return 1 ;;
|
||||
* ) echo "Please answer c or a.";;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
function check_for_binary() {
|
||||
if ! test -x "$1"; then
|
||||
echo "$1 is missing: execute zypper in $2"
|
||||
exit 5
|
||||
fi
|
||||
}
|
||||
|
||||
function get_source_stamp() {
|
||||
local CURR_BUILD_ID="$1"
|
||||
local FTP_CANDIDATES_BASE_URL=$(get_ftp_candidates_url "$PRODUCT" "$VERSION$VERSION_SUFFIX")
|
||||
local FTP_CANDIDATES_JSON_SUFFIX="${CURR_BUILD_ID}/linux-x86_64/en-US/$PRODUCT-$VERSION$VERSION_SUFFIX.json"
|
||||
local BUILD_JSON=$(curl --silent --fail "$FTP_CANDIDATES_BASE_URL/$FTP_CANDIDATES_JSON_SUFFIX") || return 1;
|
||||
local REV=$(echo "$BUILD_JSON" | jq .moz_source_stamp)
|
||||
local SOURCE_REPO=$(echo "$BUILD_JSON" | jq .moz_source_repo)
|
||||
TIMESTAMP=$(echo "$BUILD_JSON" | jq .buildid)
|
||||
echo "Extending $TAR_STAMP with:"
|
||||
echo "RELEASE_REPO=${SOURCE_REPO}"
|
||||
echo "RELEASE_TAG=${REV}"
|
||||
echo "RELEASE_TIMESTAMP=${TIMESTAMP}"
|
||||
# We "remove and add" instead of "replace" in case the entries are not there yet
|
||||
# Removing the old RELEASE_-tags
|
||||
sed -i "/RELEASE_\(TAG\|REPO\|TIMESTAMP\)=.*/d" "$TAR_STAMP"
|
||||
# Appending the new
|
||||
echo "RELEASE_REPO=$SOURCE_REPO" >> "$TAR_STAMP"
|
||||
echo "RELEASE_TAG=$REV" >> "$TAR_STAMP"
|
||||
echo "RELEASE_TIMESTAMP=$TIMESTAMP" >> "$TAR_STAMP"
|
||||
}
|
||||
|
||||
function get_build_number() {
|
||||
local LAST_FOUND=""
|
||||
local CURR_PRODUCT="$1"
|
||||
local VERSION_WITH_SUFFIX="$2"
|
||||
local CURR_BUILD_ID=""
|
||||
local CURR_FTP_BASE_URL=""
|
||||
CURR_BUILD_ID=$(curl --silent "$PRODUCT_URL/$CURR_PRODUCT.json" | jq -e '.["releases"] | .["'$CURR_PRODUCT-$VERSION_WITH_SUFFIX'"] | .["build_number"]')
|
||||
|
||||
# Slow fall-back
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Build number not found in product URL, falling back to slow FTP-parsing." 1>&2
|
||||
CURR_FTP_BASE_URL=$(get_ftp_candidates_url "$CURR_PRODUCT" "$VERSION_WITH_SUFFIX")
|
||||
# Unfortunately, locales-files are not associated to releases, but to builds.
|
||||
# And since we don't know which build was the final build, we grep them all from
|
||||
# the candidates-page, sort them and take the last one which should be the oldest
|
||||
# Error only if not even the first one exists
|
||||
LAST_FOUND=$(curl --silent --fail "$CURR_FTP_BASE_URL/" | grep -o "build[0-9]*/" | sort | uniq | tail -n 1 | cut -d "/" -f 1)
|
||||
else
|
||||
LAST_FOUND="build$CURR_BUILD_ID"
|
||||
fi
|
||||
|
||||
if [ "$LAST_FOUND" != "" ]; then
|
||||
echo "$LAST_FOUND"
|
||||
return 0
|
||||
else
|
||||
echo "Error: Could not find build-number for $CURR_PRODUCT $VERSION_WITH_SUFFIX !" 1>&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function locales_get() {
|
||||
local CURR_PRODUCT="$1"
|
||||
local TMP_VERSION="$2"
|
||||
local CURR_BUILD_ID="$3"
|
||||
# Make first letter of CURR_PRODUCT upper case
|
||||
CURR_PRODUCT_CAP="${CURR_PRODUCT^}"
|
||||
URL_TO_CHECK="${LOCALES_URL}/${CURR_PRODUCT_CAP}-${TMP_VERSION}"
|
||||
FINAL_URL="${URL_TO_CHECK}-${CURR_BUILD_ID}.json"
|
||||
if wget --quiet --spider "$FINAL_URL"; then
|
||||
echo "$FINAL_URL"
|
||||
return 0
|
||||
else
|
||||
echo "Error: Could not find locales-file (json) for Firefox $TMP_VERSION !" 1>&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function locales_parse_file() {
|
||||
FILE="$1"
|
||||
python3 -c "import json; import sys; \
|
||||
print('\n'.join(['{} {}'.format(key, value['revision']) \
|
||||
for key, value in sorted(json.load(sys.stdin).items())]));" < "$FILE"
|
||||
}
|
||||
|
||||
function locales_parse_url() {
|
||||
URL="$1"
|
||||
curl -s "$URL" | python3 -c "import json; import sys; \
|
||||
print('\n'.join(['{} {}'.format(key, value['changeset']) \
|
||||
for key, value in sorted(json.load(sys.stdin)['locales'].items())]));"
|
||||
}
|
||||
|
||||
function extract_locales_file() {
|
||||
if [ $ALREADY_EXTRACTED_LOCALES_FILE -ne 1 ]; then
|
||||
# still need to extract the locale information from the archive
|
||||
echo "extract locale changesets"
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
tar -xf "$SOURCE_TARBALL" "$FF_LOCALE_FILE" "$TB_LOCALE_FILE" "$L10N_STRING_PATTERNS"
|
||||
else
|
||||
tar -xf "$SOURCE_TARBALL" "$FF_LOCALE_FILE"
|
||||
fi
|
||||
ALREADY_EXTRACTED_LOCALES_FILE=1
|
||||
else
|
||||
echo "Skipping locale changeset extraction, as it was already done."
|
||||
fi
|
||||
}
|
||||
|
||||
function locales_unchanged() {
|
||||
local CURR_PRODUCT="$1"
|
||||
local CURR_BUILD_ID="$2"
|
||||
local PREV_BUILD_ID=$(get_build_number "$CURR_PRODUCT" "$PREV_VERSION$PREV_VERSION_SUFFIX")
|
||||
# If no json-file for one of the versions can be found, we say "they changed"
|
||||
prev_url=$(locales_get "$CURR_PRODUCT" "$PREV_VERSION$PREV_VERSION_SUFFIX" "$PREV_BUILD_ID") || return 1
|
||||
prev_content=$(locales_parse_url "$prev_url") || exit 1
|
||||
|
||||
curr_url=$(locales_get "$CURR_PRODUCT" "$VERSION$VERSION_SUFFIX" "$CURR_BUILD_ID")
|
||||
if [ $? -ne 0 ]; then
|
||||
# We did not find a locales file upstream on the servers
|
||||
if [ -e "$SOURCE_TARBALL" ]; then
|
||||
# We can find out what the locales are, by extracting the json-file from the tar-ball
|
||||
# instead of getting it from the server
|
||||
extract_locales_file || return 1
|
||||
curr_content=$(locales_parse_file "$FF_LOCALE_FILE") || exit 1
|
||||
else
|
||||
# We can't know what the locales are in the current version
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
curr_content=$(locales_parse_url "$curr_url") || exit 1
|
||||
fi
|
||||
|
||||
diff -y --suppress-common-lines -d <(echo "$prev_content") <(echo "$curr_content")
|
||||
}
|
||||
|
||||
function get_locales_directories() {
|
||||
pattern="$1"
|
||||
|
||||
# This file contains a list of directories, upstream uses to build locales
|
||||
# If it is there, use it. If not, default to all FF + 3 TB-dirs.
|
||||
if [ -e "$L10N_STRING_PATTERNS" ]; then
|
||||
python3 -c "import os; import sys; \
|
||||
sys.path.append(os.path.dirname(\"$L10N_STRING_PATTERNS\")); \
|
||||
from l10n_merge import $pattern; \
|
||||
print(\" \".join([p.strip('*') for p in $pattern]));"
|
||||
else
|
||||
if [ "$pattern" = "GECKO_STRINGS_PATTERNS" ]; then
|
||||
# Default of Firefox: Take all
|
||||
echo "{lang}/"
|
||||
else
|
||||
# Default of Thunderbird: Take those 3 dirs
|
||||
echo "{lang}/calendar/" "{lang}/chat/" "{lang}/mail/"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function create_and_copy_locales() {
|
||||
locale="$1"
|
||||
source_base="$2"
|
||||
source_template="$3"
|
||||
final_dest="$4"
|
||||
|
||||
# Replace {lang} with the actual language-basedir
|
||||
for template in $source_template; do
|
||||
locale_source=$(echo "$template" | sed "s|{lang}|./$source_base/$locale|g")
|
||||
locale_dest=$(echo "$template" | sed "s|{lang}|./$final_dest/$locale|g")
|
||||
|
||||
# Create intermediary folders
|
||||
for destdir in $locale_dest; do
|
||||
mkdir -p "$destdir"
|
||||
done
|
||||
|
||||
# Copy over FF-files
|
||||
cp -r "$locale_source"/* "$locale_dest"
|
||||
done
|
||||
}
|
||||
|
||||
function check_what_to_do_with_source_tarballs() {
|
||||
# Get ID
|
||||
BUILD_ID=$(get_build_number "$PRODUCT" "$VERSION$VERSION_SUFFIX")
|
||||
|
||||
# Check what is going to be done and ask for consent
|
||||
for ff in $SOURCE_TARBALL $SOURCE_TARBALL.asc; do
|
||||
printf "%-40s: %s\n" "$ff" "$(check_tarball_source $ff)"
|
||||
done
|
||||
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
printf "%-40s: %s\n" "$TB_LOCALE_TARBALL" "$(check_tarball_source $TB_LOCALE_TARBALL)"
|
||||
fi
|
||||
|
||||
ask_cont_abort_question "Is this ok?" || exit 0
|
||||
}
|
||||
|
||||
function check_what_to_do_with_locales_tarballs() {
|
||||
if [ -e "$TB_LOCALE_TARBALL" ]; then
|
||||
return;
|
||||
fi
|
||||
|
||||
LOCALES_CHANGED=1
|
||||
|
||||
extract_locales_file
|
||||
|
||||
if [ "$PREV_VERSION" != "" ]; then
|
||||
# If we have a previous version, check either FF or (TB and FF)
|
||||
if [ "$PRODUCT" = "firefox" ]; then
|
||||
locales_unchanged "$PRODUCT" "$BUILD_ID"
|
||||
else
|
||||
# Currently, upstream 'forgets' which Firefox-locales get used for which Thunderbird-release upon release
|
||||
# so, instead of parsing upstream JSON-files, we rely on the previous tarball being there and comparing
|
||||
# the lang-files directly
|
||||
# FF_BUILD_ID=$(get_build_number "firefox" "$VERSION$VERSION_SUFFIX")
|
||||
# locales_unchanged "$PRODUCT" "$BUILD_ID" && locales_unchanged "firefox" "$FF_BUILD_ID"
|
||||
if [ -e "$PREV_SOURCE_TARBALL" ]; then
|
||||
echo "extract previous locale changesets"
|
||||
tar -xf "$PREV_SOURCE_TARBALL" "$FF_PREV_LOCALE_FILE" "$TB_PREV_LOCALE_FILE"
|
||||
|
||||
curr_ff_content=$(locales_parse_file "$FF_LOCALE_FILE") || exit 1
|
||||
prev_ff_content=$(locales_parse_file "$FF_PREV_LOCALE_FILE") || exit 1
|
||||
curr_tb_content=$(locales_parse_file "$TB_LOCALE_FILE") || exit 1
|
||||
prev_tb_content=$(locales_parse_file "$TB_PREV_LOCALE_FILE") || exit 1
|
||||
|
||||
diff -y --suppress-common-lines -d <(echo "$prev_ff_content") <(echo "$curr_ff_content") ||
|
||||
diff -y --suppress-common-lines -d <(echo "$prev_tb_content") <(echo "$curr_tb_content")
|
||||
fi
|
||||
fi
|
||||
LOCALES_CHANGED=$?
|
||||
fi
|
||||
|
||||
# New line for better visibility
|
||||
echo ""
|
||||
if [ $LOCALES_CHANGED -eq 1 ]; then
|
||||
printf "%-40s: Need to download.\n" "locales"
|
||||
ask_cont_abort_question "Is this ok?" || exit 0
|
||||
else
|
||||
printf "%-40s: Did not change. Skipping.\n" "locales"
|
||||
fi
|
||||
}
|
||||
|
||||
function download_release_or_candidate_file() {
|
||||
local upstream_file="$1"
|
||||
if [ -e "$upstream_file" ]; then
|
||||
return;
|
||||
fi
|
||||
|
||||
if ! wget --quiet --show-progress --progress=bar "$FTP_URL/$upstream_file"; then
|
||||
local CANDIDATE_TARBALL_LOCATION=""
|
||||
CANDIDATE_TARBALL_LOCATION="$(printf "%s/%s/source/%s" "$(get_ftp_candidates_url "$PRODUCT" "$VERSION$VERSION_SUFFIX")" "$BUILD_ID" "$upstream_file" )"
|
||||
wget --quiet --show-progress --progress=bar "$CANDIDATE_TARBALL_LOCATION"
|
||||
fi
|
||||
}
|
||||
|
||||
function download_upstream_source_tarballs() {
|
||||
# Try to download tar-ball from officiall mozilla-mirror
|
||||
download_release_or_candidate_file "$SOURCE_TARBALL"
|
||||
download_release_or_candidate_file "$SOURCE_TARBALL.asc"
|
||||
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
download_release_or_candidate_file "$TB_LOCALE_TARBALL"
|
||||
fi
|
||||
|
||||
# we might have an upstream archive already and can skip the checkout
|
||||
if [ -e "$SOURCE_TARBALL" ]; then
|
||||
get_source_stamp "$BUILD_ID"
|
||||
else
|
||||
# We are working on a version that is not yet published on the mozilla mirror
|
||||
# so we have to actually check out the repo
|
||||
clone_and_repackage_sources
|
||||
fi
|
||||
}
|
||||
|
||||
function clone_and_repackage_sources() {
|
||||
if [ -d "$PRODUCT-$VERSION" ]; then
|
||||
pushd "$PRODUCT-$VERSION" || exit 1
|
||||
_repourl=$(hg paths)
|
||||
case "$_repourl" in
|
||||
*$BRANCH*)
|
||||
echo "updating previous tree"
|
||||
hg pull
|
||||
popd || exit 1
|
||||
;;
|
||||
* )
|
||||
echo "removing obsolete tree"
|
||||
popd || exit 1
|
||||
rm -rf "$PRODUCT-$VERSION"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -d "$PRODUCT-$VERSION" ]; then
|
||||
echo "cloning new $BRANCH..."
|
||||
hg clone "https://hg.mozilla.org/$BRANCH $PRODUCT-$VERSION"
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
hg clone "https://hg.mozilla.org/releases/comm-$CHANNEL" "$PRODUCT-$VERSION/comm"
|
||||
fi
|
||||
fi
|
||||
pushd "$PRODUCT-$VERSION" || exit 1
|
||||
|
||||
# parse out the Firefox-release tag for this Thunderbird-checkout
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
FF_RELEASE_TAG=$(grep ^GECKO_HEAD_REV ./comm/.gecko_rev.yml | awk -F ' ' '{print $2}') || exit 1
|
||||
echo "Parsed Firefox base ID from .gecko_rev.yml: $FF_RELEASE_TAG"
|
||||
else
|
||||
FF_RELEASE_TAG="$RELEASE_TAG"
|
||||
fi
|
||||
|
||||
hg update --check "$FF_RELEASE_TAG"
|
||||
[ "$FF_RELEASE_TAG" == "default" ] || hg update -r "$FF_RELEASE_TAG"
|
||||
# get repo and source stamp
|
||||
local REV=$(hg -R . parent --template="{node|short}\n")
|
||||
local SOURCE_REPO=$(hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/https:/")
|
||||
TIMESTAMP=$(date +%Y%m%d%H%M%S)
|
||||
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
pushd comm || exit 1
|
||||
hg update --check "$RELEASE_TAG"
|
||||
popd || exit 1
|
||||
rm -rf thunderbird-"${VERSION}"/{,comm/}other-licenses/7zstub
|
||||
fi
|
||||
popd || exit 1
|
||||
|
||||
echo "Extending $TAR_STAMP with:"
|
||||
echo "RELEASE_REPO=${SOURCE_REPO}"
|
||||
echo "RELEASE_TAG=${REV}"
|
||||
echo "RELEASE_TIMESTAMP=${TIMESTAMP}"
|
||||
|
||||
# We "remove and add" instead of "replace" in case the entries are not there yet
|
||||
# Removing the old RELEASE_-tags
|
||||
sed -i "/RELEASE_\(TAG\|REPO\|TIMESTAMP\)=.*/d" "$TAR_STAMP"
|
||||
# Appending the new
|
||||
echo "RELEASE_REPO=$SOURCE_REPO" >> "$TAR_STAMP"
|
||||
echo "RELEASE_TAG=$REV" >> "$TAR_STAMP"
|
||||
echo "RELEASE_TIMESTAMP=$TIMESTAMP" >> "$TAR_STAMP"
|
||||
|
||||
echo "creating archive..."
|
||||
tar "$compression" -cf "$PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz" --exclude-vcs "$PRODUCT-$VERSION"
|
||||
ALREADY_EXTRACTED_LOCALES_FILE=1
|
||||
}
|
||||
|
||||
function create_locales_tarballs() {
|
||||
if [ ! -z ${SKIP_LOCALES+x} ]; then
|
||||
echo "Skipping locales-creation."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -e "$TB_LOCALE_TARBALL" ]; then
|
||||
echo "Repackaging upstream lang-tarball."
|
||||
zstd -dcf "$TB_LOCALE_TARBALL" | xz > "l10n-$VERSION$VERSION_SUFFIX.tar.xz"
|
||||
else
|
||||
if [ "$LOCALES_CHANGED" -ne 0 ]; then
|
||||
clone_and_repackage_locales
|
||||
elif [ -f "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" ]; then
|
||||
# Locales did not change, but the old tar-ball is in this directory
|
||||
# Simply rename it:
|
||||
echo "Moving l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz to l10n-$VERSION$VERSION_SUFFIX.tar.xz"
|
||||
mv "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" "l10n-$VERSION$VERSION_SUFFIX.tar.xz"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function clone_and_repackage_locales() {
|
||||
# l10n
|
||||
FINAL_L10N_BASE="l10n"
|
||||
FF_L10N_BASE="l10n" # Only change this in TB-builds to a separate dir
|
||||
TB_L10N_BASE="l10n_tb"
|
||||
|
||||
# If we are doing Thunderbird, we'll have to checkout both TB and FF l10n-repos
|
||||
# Thunderbird has one single mono-repo, FF has one for each language
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
echo "Fetching Thunderbird locales..."
|
||||
if [ -d "$TB_L10N_BASE/.hg" ]; then
|
||||
pushd "$TB_L10N_BASE/" || exit 1
|
||||
hg pull || exit 1
|
||||
popd || exit 1
|
||||
else
|
||||
hg clone "https://hg.mozilla.org/projects/comm-l10n/" "$TB_L10N_BASE/" || exit 1
|
||||
fi
|
||||
# Just using the first entry here, as all languages have the same changeset
|
||||
tb_changeset=$(jq -r 'to_entries[0]| "\(.key) \(.value|.revision)"' "$TB_LOCALE_FILE" | cut -d " " -f 2)
|
||||
[ "$RELEASE_TAG" == "default" ] || hg -R "$TB_L10N_BASE/" up -C -r "$tb_changeset" || exit 1
|
||||
FF_L10N_BASE="l10n_ff"
|
||||
fi
|
||||
|
||||
# This is only relevant for Thunderbird-builds
|
||||
# Here, the relevant directories we need to copy from FF and from TB
|
||||
# are specified in a python-file in the tarball
|
||||
# Is of form '{lang}/Foo/bar/ {lang}/Baz/bar/ ..'
|
||||
ff_locale_template=$(get_locales_directories "GECKO_STRINGS_PATTERNS")
|
||||
tb_locale_template=$(get_locales_directories "COMM_STRINGS_PATTERNS")
|
||||
|
||||
echo "Fetching Browser locales..."
|
||||
if [ -d "$FF_L10N_BASE/.git" ]; then
|
||||
pushd "$FF_L10N_BASE/" || exit 1
|
||||
git fetch -a || exit 1
|
||||
popd || exit 1
|
||||
else
|
||||
git clone "$FF_L10N_MONOREPO" "$FF_L10N_BASE" || exit 1
|
||||
fi
|
||||
# Currently all locales show the same changeset-hash, as they moved to a monorepo. We just take the first one.
|
||||
changeset=$(jq -r 'to_entries[0]| "\(.key) \(.value|.revision)"' "$FF_LOCALE_FILE" | cut -d " " -f 2)
|
||||
[ "$RELEASE_TAG" == "default" ] || git -C "$FF_L10N_BASE/" switch --detach "$changeset" || exit 1
|
||||
|
||||
# No-op, if we are building FF:
|
||||
test ! -d $FINAL_L10N_BASE && mkdir $FINAL_L10N_BASE
|
||||
|
||||
# If we are doing TB, we have to merge both l10n-repos
|
||||
if [ "$PRODUCT" = "thunderbird" ] && test -d "$TB_L10N_BASE/$locale/" ; then
|
||||
jq -r 'to_entries[]| "\(.key) \(.value|.revision)"' "$FF_LOCALE_FILE" | \
|
||||
while read -r locale changeset ; do
|
||||
case $locale in
|
||||
ja-JP-mac|en-US)
|
||||
;;
|
||||
*)
|
||||
create_and_copy_locales "$locale" "$FF_L10N_BASE" "$ff_locale_template" "$FINAL_L10N_BASE"
|
||||
create_and_copy_locales "$locale" "$TB_L10N_BASE" "$tb_locale_template" "$FINAL_L10N_BASE"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
echo "creating l10n archive..."
|
||||
local TAR_FLAGS="--exclude-vcs"
|
||||
# For reproducable tarballs
|
||||
# Convert TIMESTAMP to ISO-format, so tar can understand it, then set mtime to it
|
||||
local MTIME=$(python3 -c "from datetime import datetime; print(datetime.strptime(${TIMESTAMP}, '%Y%m%d%H%M%S').isoformat())")
|
||||
TAR_FLAGS="$TAR_FLAGS --sort=name --format=posix --pax-option=delete=atime,delete=ctime,exthdr.name=%d/PaxHeaders/%f --numeric-owner --owner=0 --group=0 --mode=go+u,go-w --clamp-mtime --mtime=$MTIME"
|
||||
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
TAR_FLAGS="$TAR_FLAGS --exclude=suite"
|
||||
fi
|
||||
tar "$compression" -cf "l10n-$VERSION$VERSION_SUFFIX.tar.xz" $TAR_FLAGS "$FINAL_L10N_BASE"
|
||||
}
|
||||
|
||||
function clean_up_old_tarballs() {
|
||||
if [ -e "$PREV_SOURCE_TARBALL" ]; then
|
||||
echo ""
|
||||
echo "Deleting old sources tarball $PREV_SOURCE_TARBALL"
|
||||
ask_cont_abort_question "Is this ok?" || exit 0
|
||||
rm "$PREV_SOURCE_TARBALL"
|
||||
rm "$PREV_SOURCE_TARBALL.asc"
|
||||
# if old and new lang-tarball are there, delete the old one
|
||||
if [ -f "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz" ] && [ -f "l10n-$VERSION$VERSION_SUFFIX.tar.xz" ]; then
|
||||
rm "l10n-$PREV_VERSION$PREV_VERSION_SUFFIX.tar.xz"
|
||||
fi
|
||||
fi
|
||||
# If we downloaded the upstream zstd-tarball and repackaged it, remove it now
|
||||
if [ -f "$TB_LOCALE_TARBALL" ] && [ -f "l10n-$VERSION$VERSION_SUFFIX.tar.xz" ]; then
|
||||
echo ""
|
||||
echo "Deleting old sources tarball $TB_LOCALE_TARBALL"
|
||||
ask_cont_abort_question "Is this ok?" || exit 0
|
||||
rm "$TB_LOCALE_TARBALL"
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
3
firefox-128.0.3.source.tar.xz
Normal file
3
firefox-128.0.3.source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:326454cd5c93ce974d5d27d414e9d59206bc248cca303a2069ae0f713faededc
|
||||
size 563698520
|
16
firefox-128.0.3.source.tar.xz.asc
Normal file
16
firefox-128.0.3.source.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmaiuIMACgkQ4207E/PZ
|
||||
MnRxNg/+KtjlFDuHpbInmkxgBgSo2fUSWsY83wcqZmcWAmBYwFzKz1V4NeDl0dmQ
|
||||
6663KvZCx1hjhmGPsTACDLyiLTr+9HTgxE3pCcAp0iN0Pqxlppv4mTHsBHUBIVRd
|
||||
6SJoQxAvNQWIfcLrb+UJ/lpT/X/Ez7LMh5M8QWKKszxbMD6O/kvKrmsAfPRmowxl
|
||||
juGgOS3WRu7nuL+8CxjtlWzSNrfrcaoNe2j+O/JxcNI6/fyNOLHiLmkDf3j4+XfU
|
||||
QiK0pMUAbJzY5o8ea5ScId+wjT9ONF81lJLTaVVx126EO15LAlUS0RyOwClW+Zc7
|
||||
eWGu+b8YYhvIGQBLmcV6mXqZ6kk9yrjCjpevIY3IGkKcdf54IH/t6/7GTTT0I69v
|
||||
R1p+uW2x+VlXNcBvLOtwS/I155T0mgoYQ7BNJCu74H+BdeqLNEN/OG2+d+duqovR
|
||||
BlSrcdXKs6GILpAfEv1gtAZzzvBaCybP6uaHP2lheKjIx4h8+5Y1gh1zRHnq87vt
|
||||
7U5Ze2HUbR1wiwx6oQq6BI2/7b1z+CLBI0kUuH8E3jpSkPyvz4/dhYYG7+6mRhOT
|
||||
ZlM3o0fNCGChrdTrRQAI96+yU+MCsRfAd8AmgqCjA/BeF5cSLYmVf1e5q/7cQPv7
|
||||
3KvDfBkuS68HAbj6Me0s4hm2iNKTKB/CvI8k2xq1uhJfanIKbmU=
|
||||
=RI8S
|
||||
-----END PGP SIGNATURE-----
|
3
firefox-128.0.source.tar.xz
Normal file
3
firefox-128.0.source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:65271ffefb235ea1e162a081f2074a0f06fce27b2f613f573c126ba8eef95172
|
||||
size 560761840
|
16
firefox-128.0.source.tar.xz.asc
Normal file
16
firefox-128.0.source.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmaG12gACgkQ4207E/PZ
|
||||
MnQ/1xAAzvCP0A4oOfbmmtnOA1QQ5NvUCETU6BGo4oAy3LhYM66ZThKG9KF5A9g2
|
||||
GVQx+19W0Z5BNtgGLxzujWLxPTsxUdgCF65RekrN6AQlTtvXvLBn5WaExK4pHCIT
|
||||
R14RaPumLPCZwL0HaEo4NvZr48AXXOFm9pvgQ4ZhWf2tfRpm1qNp1UIAY2jtGna7
|
||||
o4tVBEHcydqF6BLrmHf5gbKrifW1nL75SBFVoBNESRocdTFENt9RMQgifwqX/f0d
|
||||
vJ+Osu2gd/J4thwailXNIy9TGdW1lEi5TgS3UdNmNpZVYb73JnhcfwyIjI9g93NZ
|
||||
wKbcu/9PEJjNe8XnADA6ULr8Nth6zxfsJhdz60AVoaP6mGApPGx6M1ezW8b7YxcI
|
||||
FxJ2/qv5ExKiXENlISYI+cih/VWuN8nKPtWyCb2whFeAEnNmIlCs+j6hN/c8haZS
|
||||
iQdThG5EqmjCQJyz3AufhULfTmINJk/ABYdpitHfj5EDfe9ggxANRkLvJEZ1ZZTP
|
||||
85bGWlCMg8Tq6/CWHTWvJvytQCHrQci+M/y/4pneaBLXzv3p8Q5e1OOuxzuGA7rB
|
||||
yAW5DnCTK+4wdfgHzmJL4Rjom0PeJZBVHJEljqV1THbTrs4MWuNFJLu2lXNDmAbx
|
||||
Ty1ZAqK4HliEDRh6r70sZY/ecg+UzSyIGqlDzu7RBOjtg4A15vo=
|
||||
=wybs
|
||||
-----END PGP SIGNATURE-----
|
3
firefox-129.0.1.source.tar.xz
Normal file
3
firefox-129.0.1.source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9ddfe823e4c22167a77e47f56a8afde0d9621784a9e4e5dba4906e758175c073
|
||||
size 561709736
|
16
firefox-129.0.1.source.tar.xz.asc
Normal file
16
firefox-129.0.1.source.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAma6BisACgkQ4207E/PZ
|
||||
MnQlDxAAzavl3Tkgdnpvx7YADuS7u/JIGhI1e6OyeNVzvXtSY4cyIYrFNVpH3qXx
|
||||
0vKdk2fyL2c3YYLkMP7BfNKgAhYQhALnvxoAVqocSRmVHRjGyewUM6iC3k/SpgIf
|
||||
r700/XNrq/Y++5zpvWO6P2fgipzaYVARyy2i5YUtsdYrNkAgEYYP1Qm4SM8gHg6e
|
||||
tyt99uEEyhiAHrW4m9cFm+BzsIg23JhreY0AA/4czTORIcd37Oj0r4CcH5Wkpa15
|
||||
N1yU33A+xhIreeNaZHCf9NJjQuP+TLjqZV13940tqe7BJl1Loaj9P68+g51/SEfq
|
||||
6ZuRQXQCMKPk/FJ7ZDZPMJpsI7ydvVHkBoWNBf6SeJqJblcguQucgL3q6KWkOauh
|
||||
Msy7opz2p1kp8SYGpDoKA+KOHq+kl3/GQe6ACfkjqlqOzrJeAx3E2Cm4puYuqMQe
|
||||
duCluu992WvzwDhEEkTaikWXw3MAeWe7wYCL+ya4rxRmjHptbde01XRM6LEXgb7f
|
||||
d3HBkxJczEuwYsnYmgWf7leBSf30VLRyegi4k5oJK0qiUeJ5uFj+vV3/6kzcu6KE
|
||||
gW6Z6Kr+IkrTGViQrj4z1qg5td6tO+rsfE983Sw2jjRMha9bRM+dGUHvFWXxt9Bo
|
||||
vCwDJr5Y4k+MkgQ4L6Fi8hurst3eONIVJrGMgRQJAAeeMUVXjG8=
|
||||
=mBRM
|
||||
-----END PGP SIGNATURE-----
|
3
firefox-129.0.source.tar.xz
Normal file
3
firefox-129.0.source.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4b9ff955de7099f09aa1f00985e34695fa1a911e56c2d46cb4d60c3bff3d9174
|
||||
size 568302640
|
16
firefox-129.0.source.tar.xz.asc
Normal file
16
firefox-129.0.source.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmarx8kACgkQ4207E/PZ
|
||||
MnT1pA/+K26+19PBGPWnbeHx5c1ORX5s7SY/MqhZfdLIY8+Cd61fVA8W14SC1B80
|
||||
b1BJ4/HWYGEH7X072e5P9i9Va7XfOI///hkCgy/cYFB7OOPwFCNCWEnU5lj6BV8r
|
||||
9URI02jeAT/LvS/ciRYML6/3qQ5PvCHeubAWg7o4+g4Snxpy3sosNnGvEo6/c9eS
|
||||
c/0Sa9bJC8TSO9B9DIcRyczkq3bPwj3zeEiuXXBhJvAvU7axmpLc6J6LCQ/jjDkU
|
||||
PodWc9CPAlMJQW3kcmZaaAL1k/z0dowgu8dPRrGY23nRk3uhBP4Bhc9lTVl3picZ
|
||||
XbzoT/3WFEus7bA/7/uXKgTq3ITxbyl6wHcFChu4ZcW7o+W4cKn/pe4eoqa8KxT3
|
||||
eP7iNszdFG2lZxdqLDmB8J0H5DF6yhhp6bKe1U2Poit83p8J+yAw67/ogilxj3ug
|
||||
tgvXr/GQheiUnp7Seh5tW+iTpeeesODtD0U0x7QWrGbjWRqJspNP8GynlkBd9p03
|
||||
6SzsuXdrc2quN2l9AIxxWbMzPWnClmZkCaUdXzymrnfj+Bu1KPHXE9pt0qGuHtep
|
||||
233SuXfD6kXnX+vVL8T5S8k96mLctIz2IcmPDvzOujZLXft/pI0ZiGwsikjMqRrS
|
||||
nQxSsWYN/r+5DrXuUSTOmcS4SXGTW3ijWtpr873jIhFmeACLSUg=
|
||||
=Y8VP
|
||||
-----END PGP SIGNATURE-----
|
33
firefox-3781e3117706.patch
Normal file
33
firefox-3781e3117706.patch
Normal file
@ -0,0 +1,33 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Paul Adenot <paul@paul.cx>
|
||||
# Date 1721290421 0
|
||||
# Node ID 3781e311770684d79c1c8112d18abce258e29e7f
|
||||
# Parent fd4c60ac71c20d0cac519b517f32fc4956e0cfe3
|
||||
Bug 1905018 - Fix logctx type in dovi_rpu stub. r=media-playback-reviewers,alwu
|
||||
|
||||
Differential Revision: https://phabricator.services.mozilla.com/D216832
|
||||
|
||||
diff --git a/media/ffvpx/libavcodec/dovi_rpu.h b/media/ffvpx/libavcodec/dovi_rpu.h
|
||||
--- a/media/ffvpx/libavcodec/dovi_rpu.h
|
||||
+++ b/media/ffvpx/libavcodec/dovi_rpu.h
|
||||
@@ -5,17 +5,17 @@
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
/* Stubs for dovi_rpu.{c,h} */
|
||||
|
||||
typedef struct AVCtx AVContext;
|
||||
|
||||
typedef struct DOVICtx {
|
||||
int dv_profile;
|
||||
- AVContext* logctx;
|
||||
+ void* logctx;
|
||||
int operating_point;
|
||||
} DOVIContext;
|
||||
|
||||
typedef struct AVDOVICConfRecord {
|
||||
} AVDOVIDecoderConfigurationRecord;
|
||||
|
||||
static void ff_dovi_ctx_unref(DOVIContext* ctx) {}
|
||||
static void ff_dovi_update_cfg(DOVIContext* ctx,
|
||||
|
48
firefox-appdata.xml
Normal file
48
firefox-appdata.xml
Normal file
@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Upstream does not want to ship it https://bugzilla.mozilla.org/show_bug.cgi?id=1071061
|
||||
so maintain a stub in here.
|
||||
-->
|
||||
|
||||
<component>
|
||||
<id type="desktop">firefox.desktop</id>
|
||||
<metadata_license>CC0-1.0</metadata_license>
|
||||
<name>Firefox Web Browser</name>
|
||||
<project_license>MPL-2.0</project_license>
|
||||
<summary>Mozilla Firefox Web Browser</summary>
|
||||
<url type="homepage">https://www.mozilla.org/</url>
|
||||
<description>
|
||||
<p>Mozilla Firefox is a standalone web browser, designed for privacy, security, standards
|
||||
compliance and performance. Its functionality can be enhanced via a plethora of extensions.</p>
|
||||
<p>Firefox makes your daily web browsing fun and easy with a number of features, including:</p>
|
||||
<ul>
|
||||
<li>Tabbed browsing</li>
|
||||
<li>Private browsing including do-not-track enabled by default</li>
|
||||
<li>Advanced phishing and malware protection</li>
|
||||
<li>Spell checking</li>
|
||||
<li>Incremental find within pages</li>
|
||||
<li>Live bookmarking and Smart Bookmarks</li>
|
||||
<li>Download manager</li>
|
||||
<li>Location-aware browsing</li>
|
||||
<li>Compliant with modern web standards</li>
|
||||
<li>Modern web development tools</li>
|
||||
<li>Available in a wide number of locales</li>
|
||||
<li>A thriving ecosystem of themes and extensions at https://addons.mozilla.org</li>
|
||||
</ul>
|
||||
</description>
|
||||
<screenshots>
|
||||
<screenshot type="default">
|
||||
<image height="800" width="1280">https://support.cdn.mozilla.net/media/uploads/gallery/images/2015-05-20-16-04-21-88bff4.png</image>
|
||||
<caption>New tab page with speed dials</caption>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<image height="439" width="620">https://support.cdn.mozilla.net/media/uploads/gallery/images/2015-12-22-15-15-05-3c0a80.png</image>
|
||||
<caption>Search suggestions from home page</caption>
|
||||
</screenshot>
|
||||
<screenshot>
|
||||
<image height="394" width="700">https://addons.cdn.mozilla.net/user-media/previews/full/159/159648.png</image>
|
||||
<caption>Firefox with Adwaita theme</caption>
|
||||
</screenshot>
|
||||
</screenshots>
|
||||
<update_contact>mdn@lists.mozilla.org</update_contact>
|
||||
</component>
|
50
firefox-branded-icons.patch
Normal file
50
firefox-branded-icons.patch
Normal file
@ -0,0 +1,50 @@
|
||||
# HG changeset patch
|
||||
# Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de
|
||||
# Parent ad547c5985d362e88a47ccbba0cc5fa07bd24e8b
|
||||
|
||||
diff --git a/browser/branding/branding-common.mozbuild b/browser/branding/branding-common.mozbuild
|
||||
--- a/browser/branding/branding-common.mozbuild
|
||||
+++ b/browser/branding/branding-common.mozbuild
|
||||
@@ -26,12 +26,15 @@ def FirefoxBranding():
|
||||
"PrivateBrowsing_70.png",
|
||||
"VisualElements_150.png",
|
||||
"VisualElements_70.png",
|
||||
]
|
||||
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
|
||||
FINAL_TARGET_FILES.chrome.icons.default += [
|
||||
"default128.png",
|
||||
"default16.png",
|
||||
+ "default22.png",
|
||||
+ "default24.png",
|
||||
+ "default256.png",
|
||||
"default32.png",
|
||||
"default48.png",
|
||||
"default64.png",
|
||||
]
|
||||
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
||||
--- a/browser/installer/package-manifest.in
|
||||
+++ b/browser/installer/package-manifest.in
|
||||
@@ -208,20 +208,23 @@
|
||||
; [Browser Chrome Files]
|
||||
@RESPATH@/browser/chrome.manifest
|
||||
@RESPATH@/browser/chrome/browser@JAREXT@
|
||||
@RESPATH@/browser/chrome/browser.manifest
|
||||
@RESPATH@/chrome/toolkit@JAREXT@
|
||||
@RESPATH@/chrome/toolkit.manifest
|
||||
#ifdef MOZ_GTK
|
||||
@RESPATH@/browser/chrome/icons/default/default16.png
|
||||
+@RESPATH@/browser/chrome/icons/default/default22.png
|
||||
+@RESPATH@/browser/chrome/icons/default/default24.png
|
||||
@RESPATH@/browser/chrome/icons/default/default32.png
|
||||
@RESPATH@/browser/chrome/icons/default/default48.png
|
||||
@RESPATH@/browser/chrome/icons/default/default64.png
|
||||
@RESPATH@/browser/chrome/icons/default/default128.png
|
||||
+@RESPATH@/browser/chrome/icons/default/default256.png
|
||||
#endif
|
||||
@RESPATH@/browser/features/*
|
||||
|
||||
; [DevTools Startup Files]
|
||||
@RESPATH@/browser/chrome/devtools-startup@JAREXT@
|
||||
@RESPATH@/browser/chrome/devtools-startup.manifest
|
||||
|
||||
; DevTools
|
302
firefox-kde.patch
Normal file
302
firefox-kde.patch
Normal file
@ -0,0 +1,302 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Sirringhaus <msirringhaus@suse.de>
|
||||
Date: Tue, 8 Aug 2023 16:18:24 +0300
|
||||
Subject: [PATCH] Add KDE integration to Firefox
|
||||
|
||||
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=140751
|
||||
Bug: https://bugzilla.suse.com/show_bug.cgi?id=170055
|
||||
|
||||
How to apply this patch:
|
||||
|
||||
1. Import and apply it
|
||||
2. cp browser/base/content/browser.xul browser/base/content/browser-kde.xul
|
||||
3. Find editBookmarkPanelDoneButton
|
||||
4. Replace #ifndef with #ifdef in the line above (this hanges the button order from Gnome-style to KDE-style)
|
||||
5. hg qrefresh
|
||||
---
|
||||
browser/components/preferences/main.js | 18 +++
|
||||
browser/components/shell/moz.build | 2 +
|
||||
.../components/shell/nsKDEShellService.cpp | 109 ++++++++++++++++++
|
||||
browser/components/shell/nsKDEShellService.h | 32 +++++
|
||||
.../components/shell/nsUnixShellService.cpp | 22 ++++
|
||||
browser/components/shell/nsUnixShellService.h | 15 +++
|
||||
6 files changed, 198 insertions(+)
|
||||
create mode 100644 browser/components/shell/nsKDEShellService.cpp
|
||||
create mode 100644 browser/components/shell/nsKDEShellService.h
|
||||
create mode 100644 browser/components/shell/nsUnixShellService.cpp
|
||||
create mode 100644 browser/components/shell/nsUnixShellService.h
|
||||
|
||||
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
|
||||
--- a/browser/components/preferences/main.js
|
||||
+++ b/browser/components/preferences/main.js
|
||||
@@ -292,16 +292,23 @@ var gMainPane = {
|
||||
}, backoffTimes[this._backoffIndex + 1 < backoffTimes.length ? this._backoffIndex++ : backoffTimes.length - 1]);
|
||||
};
|
||||
|
||||
window.setTimeout(() => {
|
||||
window.requestIdleCallback(pollForDefaultBrowser);
|
||||
}, backoffTimes[this._backoffIndex]);
|
||||
}
|
||||
|
||||
+ var env = Components.classes["@mozilla.org/process/environment;1"]
|
||||
+ .getService(Components.interfaces.nsIEnvironment);
|
||||
+ var kde_session = 0;
|
||||
+ if (env.get('KDE_FULL_SESSION') == "true") {
|
||||
+ kde_session = 1;
|
||||
+ }
|
||||
+
|
||||
this.initBrowserContainers();
|
||||
this.buildContentProcessCountMenuList();
|
||||
|
||||
this.updateDefaultPerformanceSettingsPref();
|
||||
|
||||
let defaultPerformancePref = Preferences.get(
|
||||
"browser.preferences.defaultPerformanceSettings.enabled"
|
||||
);
|
||||
@@ -1753,16 +1760,27 @@ var gMainPane = {
|
||||
|
||||
// Disable the set default button, so that the user doesn't try to hit it again
|
||||
// while awaiting on setDefaultBrowser
|
||||
let setDefaultButton = document.getElementById("setDefaultButton");
|
||||
setDefaultButton.disabled = true;
|
||||
|
||||
try {
|
||||
await shellSvc.setDefaultBrowser(false);
|
||||
+ if (kde_session == 1) {
|
||||
+ var shellObj = Components.classes["@mozilla.org/file/local;1"]
|
||||
+ .createInstance(Components.interfaces.nsILocalFile);
|
||||
+ shellObj.initWithPath("/usr/bin/kwriteconfig");
|
||||
+ var process = Components.classes["@mozilla.org/process/util;1"]
|
||||
+ .createInstance(Components.interfaces.nsIProcess);
|
||||
+ process.init(shellObj);
|
||||
+ var args = ["--file", "kdeglobals", "--group", "General", "--key",
|
||||
+ "BrowserApplication", "firefox"];
|
||||
+ process.run(false, args, args.length);
|
||||
+ }
|
||||
} catch (ex) {
|
||||
console.error(ex);
|
||||
return;
|
||||
} finally {
|
||||
// Make sure to re-enable the default button when we're finished, regardless of the outcome
|
||||
setDefaultButton.disabled = false;
|
||||
}
|
||||
|
||||
diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build
|
||||
--- a/browser/components/shell/moz.build
|
||||
+++ b/browser/components/shell/moz.build
|
||||
@@ -31,16 +31,18 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "coco
|
||||
]
|
||||
elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
|
||||
XPIDL_SOURCES += [
|
||||
"nsIGNOMEShellService.idl",
|
||||
]
|
||||
|
||||
SOURCES += [
|
||||
"nsGNOMEShellService.cpp",
|
||||
+ "nsKDEShellService.cpp",
|
||||
+ "nsUnixShellService.cpp",
|
||||
]
|
||||
if CONFIG["MOZ_ENABLE_DBUS"]:
|
||||
SOURCES += [
|
||||
"nsGNOMEShellDBusHelper.cpp",
|
||||
"nsGNOMEShellSearchProvider.cpp",
|
||||
]
|
||||
include("/ipc/chromium/chromium-config.mozbuild")
|
||||
|
||||
diff --git a/browser/components/shell/nsKDEShellService.cpp b/browser/components/shell/nsKDEShellService.cpp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/browser/components/shell/nsKDEShellService.cpp
|
||||
@@ -0,0 +1,108 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#include "mozilla/ArrayUtils.h"
|
||||
+
|
||||
+#include "nsCOMPtr.h"
|
||||
+#include "nsKDEShellService.h"
|
||||
+#include "nsShellService.h"
|
||||
+#include "nsKDEUtils.h"
|
||||
+#include "nsIPrefService.h"
|
||||
+#include "nsIProcess.h"
|
||||
+#include "nsIFile.h"
|
||||
+#include "nsServiceManagerUtils.h"
|
||||
+#include "nsComponentManagerUtils.h"
|
||||
+#include "nsIMutableArray.h"
|
||||
+#include "nsISupportsPrimitives.h"
|
||||
+#include "nsArrayUtils.h"
|
||||
+
|
||||
+using namespace mozilla;
|
||||
+
|
||||
+nsresult
|
||||
+nsKDEShellService::Init()
|
||||
+{
|
||||
+ if( !nsKDEUtils::kdeSupport())
|
||||
+ return NS_ERROR_NOT_AVAILABLE;
|
||||
+ return NS_OK;
|
||||
+}
|
||||
+
|
||||
+NS_IMPL_ISUPPORTS(nsKDEShellService, nsIGNOMEShellService, nsIShellService)
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::IsDefaultBrowser(bool aForAllTypes,
|
||||
+ bool* aIsDefaultBrowser)
|
||||
+{
|
||||
+ *aIsDefaultBrowser = false;
|
||||
+
|
||||
+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID );
|
||||
+ if (!command)
|
||||
+ return NS_ERROR_FAILURE;
|
||||
+
|
||||
+ nsCOMPtr<nsISupportsCString> str = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
||||
+ if (!str)
|
||||
+ return NS_ERROR_FAILURE;
|
||||
+
|
||||
+ str->SetData("ISDEFAULTBROWSER"_ns);
|
||||
+ command->AppendElement( str );
|
||||
+
|
||||
+ if( nsKDEUtils::command( command ))
|
||||
+ *aIsDefaultBrowser = true;
|
||||
+ return NS_OK;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::SetDefaultBrowser(bool aForAllUsers)
|
||||
+{
|
||||
+ nsCOMPtr<nsIMutableArray> command = do_CreateInstance( NS_ARRAY_CONTRACTID );
|
||||
+ if (!command)
|
||||
+ return NS_ERROR_FAILURE;
|
||||
+
|
||||
+ nsCOMPtr<nsISupportsCString> cmdstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
||||
+ nsCOMPtr<nsISupportsCString> paramstr = do_CreateInstance( NS_SUPPORTS_CSTRING_CONTRACTID );
|
||||
+ if (!cmdstr || !paramstr)
|
||||
+ return NS_ERROR_FAILURE;
|
||||
+
|
||||
+ cmdstr->SetData("SETDEFAULTBROWSER"_ns);
|
||||
+ command->AppendElement( cmdstr );
|
||||
+
|
||||
+ paramstr->SetData("ALLTYPES"_ns);
|
||||
+ command->AppendElement( paramstr );
|
||||
+
|
||||
+ return nsKDEUtils::command( command ) ? NS_OK : NS_ERROR_FAILURE;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::GetCanSetDesktopBackground(bool* aResult)
|
||||
+{
|
||||
+ *aResult = true;
|
||||
+ return NS_OK;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::SetDesktopBackground(dom::Element* aElement,
|
||||
+ int32_t aPosition,
|
||||
+ const nsACString& aImageName)
|
||||
+{
|
||||
+ return NS_ERROR_NOT_IMPLEMENTED;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::GetDesktopBackgroundColor(PRUint32 *aColor)
|
||||
+{
|
||||
+ return NS_ERROR_NOT_IMPLEMENTED;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::SetDesktopBackgroundColor(PRUint32 aColor)
|
||||
+{
|
||||
+ return NS_ERROR_NOT_IMPLEMENTED;
|
||||
+}
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsKDEShellService::IsDefaultForScheme(nsTSubstring<char> const& aScheme, bool* aIsDefaultBrowser)
|
||||
+{
|
||||
+ return NS_ERROR_NOT_IMPLEMENTED;
|
||||
+}
|
||||
+
|
||||
diff --git a/browser/components/shell/nsKDEShellService.h b/browser/components/shell/nsKDEShellService.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/browser/components/shell/nsKDEShellService.h
|
||||
@@ -0,0 +1,32 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#ifndef nskdeshellservice_h____
|
||||
+#define nskdeshellservice_h____
|
||||
+
|
||||
+#include "nsIGNOMEShellService.h"
|
||||
+#include "nsToolkitShellService.h"
|
||||
+#include "nsString.h"
|
||||
+#include "mozilla/Attributes.h"
|
||||
+
|
||||
+class nsKDEShellService final : public nsIGNOMEShellService,
|
||||
+ public nsToolkitShellService
|
||||
+{
|
||||
+public:
|
||||
+ nsKDEShellService() : mCheckedThisSession(false) { }
|
||||
+
|
||||
+ NS_DECL_ISUPPORTS
|
||||
+ NS_DECL_NSISHELLSERVICE
|
||||
+ NS_DECL_NSIGNOMESHELLSERVICE
|
||||
+
|
||||
+ nsresult Init();
|
||||
+
|
||||
+private:
|
||||
+ ~nsKDEShellService() {}
|
||||
+
|
||||
+ bool mCheckedThisSession;
|
||||
+};
|
||||
+
|
||||
+#endif // nskdeshellservice_h____
|
||||
diff --git a/browser/components/shell/nsUnixShellService.cpp b/browser/components/shell/nsUnixShellService.cpp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/browser/components/shell/nsUnixShellService.cpp
|
||||
@@ -0,0 +1,22 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+
|
||||
+#include "nsUnixShellService.h"
|
||||
+#include "nsGNOMEShellService.h"
|
||||
+#include "nsKDEShellService.h"
|
||||
+#include "nsKDEUtils.h"
|
||||
+#include "mozilla/ModuleUtils.h"
|
||||
+
|
||||
+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsGNOMEShellService, Init)
|
||||
+NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsKDEShellService, Init)
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsUnixShellServiceConstructor(REFNSIID aIID, void **aResult)
|
||||
+{
|
||||
+ if( nsKDEUtils::kdeSupport())
|
||||
+ return nsKDEShellServiceConstructor( aIID, aResult );
|
||||
+ return nsGNOMEShellServiceConstructor( aIID, aResult );
|
||||
+}
|
||||
diff --git a/browser/components/shell/nsUnixShellService.h b/browser/components/shell/nsUnixShellService.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/browser/components/shell/nsUnixShellService.h
|
||||
@@ -0,0 +1,15 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+
|
||||
+#ifndef nsunixshellservice_h____
|
||||
+#define nsunixshellservice_h____
|
||||
+
|
||||
+#include "nsIGNOMEShellService.h"
|
||||
+
|
||||
+NS_IMETHODIMP
|
||||
+nsUnixShellServiceConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult);
|
||||
+
|
||||
+#endif // nsunixshellservice_h____
|
7
firefox-mimeinfo.xml
Normal file
7
firefox-mimeinfo.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
|
||||
<mime-type type="application/x-xpinstall">
|
||||
<comment xml:lang="en">Mozilla Cross-Platform Installer Module</comment>
|
||||
<glob pattern="*.xpi" />
|
||||
</mime-type>
|
||||
</mime-info>
|
5
firefox-search-provider.ini
Normal file
5
firefox-search-provider.ini
Normal file
@ -0,0 +1,5 @@
|
||||
[Shell Search Provider]
|
||||
DesktopId=firefox.desktop
|
||||
BusName=org.mozilla.firefox.SearchProvider
|
||||
ObjectPath=/org/mozilla/firefox/SearchProvider
|
||||
Version=2
|
141
firefox.1
Normal file
141
firefox.1
Normal file
@ -0,0 +1,141 @@
|
||||
.TH FIREFOX 1 "November 30, 2017" firefox "Linux User's Manual"
|
||||
.SH NAME
|
||||
firefox \- a Web browser for X11 derived from the Mozilla browser
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B firefox
|
||||
[\fIOPTIONS\fR ...] [\fIURL\fR]
|
||||
|
||||
.B firefox-bin
|
||||
[\fIOPTIONS\fR] [\fIURL\fR]
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBMozilla Firefox\fR is an open-source web browser, designed for
|
||||
standards compliance, performance and portability.
|
||||
|
||||
.SH USAGE
|
||||
\fBfirefox\fR is a simple shell script that will set up the
|
||||
environment for the actual executable, \fBfirefox-bin\fR.
|
||||
|
||||
.SH OPTIONS
|
||||
A summary of the options supported by \fBfirefox\fR is included below.
|
||||
|
||||
.SS "X11 options"
|
||||
.TP
|
||||
.BI \-\-display= DISPLAY
|
||||
X display to use
|
||||
.TP
|
||||
.B \--sync
|
||||
Make X calls synchronous
|
||||
.TP
|
||||
.B \-\-g-fatal-warnings
|
||||
Make all warnings fatal
|
||||
|
||||
.SS "Firefox options"
|
||||
.TP
|
||||
.B \-h, \-help
|
||||
Show summary of options.
|
||||
.TP
|
||||
.B \-v, \-version
|
||||
Print Firefox version.
|
||||
.TP
|
||||
\fB\-P\fR \fIprofile\fR
|
||||
Start with \fIprofile\fR.
|
||||
.TP
|
||||
\fB\-\-profile\fR \fIpath\fR
|
||||
Start with profile at \fIpath\fR.
|
||||
.TP
|
||||
\fB\-\-migration\fR
|
||||
Start with migration wizard.
|
||||
.TP
|
||||
.B \-\-ProfileManager
|
||||
Start with ProfileManager.
|
||||
.TP
|
||||
\fB\-\-no\-remote\fR
|
||||
Do not accept or send remote commands; implies \fB--new-instance\fR.
|
||||
.TP
|
||||
\fB\-\-new\-instance\fR
|
||||
Open new instance, not a new window in running instance.
|
||||
.TP
|
||||
\fB\-\-UILocale\fR \fIlocale\fR
|
||||
Start with \fIlocale\fR resources as UI Locale.
|
||||
.TP
|
||||
\fB\-\-safe\-mode\fR
|
||||
Disables extensions and themes for this session.
|
||||
.TP
|
||||
\fB\-\-headless\fR
|
||||
Run without a GUI.
|
||||
.TP
|
||||
\fB\-\-marionette\fR
|
||||
Enable remote control server.
|
||||
.TP
|
||||
\fB\-\-browser\fR
|
||||
Open a browser window.
|
||||
.TP
|
||||
\fB\-\-new-window\fR \fIurl\fR
|
||||
Open \fIurl\fR in a new window.
|
||||
.TP
|
||||
\fB\-\-new-tab\fR \fIurl\fR
|
||||
Open \fIurl\fR in a new tab.
|
||||
.TP
|
||||
\fB\-\-private-window\fR \fIurl\fR
|
||||
Open \fIurl\fR in a new private window.
|
||||
.TP
|
||||
\fB\-\-preferences\fR
|
||||
Open Preferences dialog.
|
||||
.TP
|
||||
\fB\-\-screenshot\fR [\fIpath\fR]
|
||||
Save screenshot to \fIpath\fR or in working directory.
|
||||
.TP
|
||||
\fB\-\-window-size\fR \fIwidth\fR[,\fIheight\fR]
|
||||
Width and optionally height of screenshot.
|
||||
.TP
|
||||
\fB\-\-search\fR \fIterm\fR
|
||||
Search \fIterm\fR with your default search engine.
|
||||
.TP
|
||||
|
||||
|
||||
\fB\-\-jsconsole\fR
|
||||
Open the Browser Console.
|
||||
.TP
|
||||
\fB\-\-jsdebugger\fR
|
||||
Open the Browser Toolbox.
|
||||
.TP
|
||||
\fB\-\-wait-for-jsdebugger\fR
|
||||
Spin event loop until JS debugger connects. Enables debugging (some) application startup code paths. Only has an effect when \fI--jsdebugger\fR is also supplied.
|
||||
.TP
|
||||
\fB\-\-devtools\fR
|
||||
Open DevTools on initial load.
|
||||
.TP
|
||||
\fB\-\-start-debugger-server\fR [ws:][\fIport\fR|\fIpath\fR]
|
||||
Start the debugger server on a TCP port or Unix domain socket path. Defaults to TCP port 6000. Use WebSocket protocol if ws: prefix is specified.
|
||||
.TP
|
||||
\fB\-\-recording\fR \fIfile\fR
|
||||
Record drawing for a given URL.
|
||||
.TP
|
||||
\fB\-\-recording-output\fR \fIfile\fR
|
||||
Specify destination file for a drawing recording.
|
||||
.TP
|
||||
\fB\-\-setDefaultBrowser\fR
|
||||
Set this app as the default browser.
|
||||
|
||||
.SH FILES
|
||||
\fI/usr/bin/firefox\fR - shell script wrapping
|
||||
\fBfirefox\fR
|
||||
.br
|
||||
\fI/usr/lib64/firefox/firefox-bin\fR - \fBfirefox\fR
|
||||
executable
|
||||
|
||||
.SH VERSION
|
||||
57.0
|
||||
|
||||
.SH BUGS
|
||||
To report a bug, please visit \fIhttp://bugzilla.mozilla.org/\fR
|
||||
|
||||
.SH AUTHORS
|
||||
.TP
|
||||
.B The Mozilla Organization
|
||||
.I http://www.mozilla.org/about.html
|
||||
.TP
|
||||
.B Tobias Girstmair
|
||||
.I https://gir.st/
|
10
firefox.js
Normal file
10
firefox.js
Normal file
@ -0,0 +1,10 @@
|
||||
pref("intl.locale.requested", "");
|
||||
pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
|
||||
/* Disable DoH by default */
|
||||
pref("network.trr.mode", 5);
|
||||
// do not disable any scope
|
||||
pref("extensions.autoDisableScopes", 0);
|
||||
pref("extensions.shownSelectionUI", true);
|
||||
pref("extensions.langpacks.signatures.required", false);
|
||||
// enable D-Bus inteface for Gnome Shell search
|
||||
pref("browser.gnome-search-provider.enabled", true);
|
1
google-api-key
Normal file
1
google-api-key
Normal file
@ -0,0 +1 @@
|
||||
AIzaSyD1hTe85_a14kr1Ks8T3Ce75rvbR1_Dx7Q
|
3
l10n-128.0.3.tar.xz
Normal file
3
l10n-128.0.3.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:15433a1a7fa0d8890878423ac75f101225b0ee291c4e424671afc8ff91f634b5
|
||||
size 32692840
|
3
l10n-128.0.tar.xz
Normal file
3
l10n-128.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dbeeef6964b694c3c9d905856eb02e0ce3a13ce2047d09b5541b5e45f2ed8c1b
|
||||
size 34286352
|
3
l10n-129.0.1.tar.xz
Normal file
3
l10n-129.0.1.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:eeaffb7ee1447376e76ea12095541e6ec4e8d6148207c260da4da947b56d3ef6
|
||||
size 34484384
|
3
l10n-129.0.tar.xz
Normal file
3
l10n-129.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:eeaffb7ee1447376e76ea12095541e6ec4e8d6148207c260da4da947b56d3ef6
|
||||
size 34484384
|
26
mozilla-aarch64-startup-crash.patch
Normal file
26
mozilla-aarch64-startup-crash.patch
Normal file
@ -0,0 +1,26 @@
|
||||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1558442998 -7200
|
||||
# Tue May 21 14:49:58 2019 +0200
|
||||
# Node ID 386083b58d8558141901d796ec6919a4aba7ad3a
|
||||
# Parent 76b747f7d113bddbb8593184d81e1bfe5fd51af0
|
||||
bsc#991344 - Rpi3: Firefox crashes after a few seconds of usage
|
||||
bmo#1302554 - ARM/AARCH64: Firefox crashes on NULL nsIChannel** result pointer in nsIOService::NewChannelFromURIWithProxyFlagsInternal()
|
||||
|
||||
diff --git a/netwerk/base/nsIOService.cpp b/netwerk/base/nsIOService.cpp
|
||||
--- a/netwerk/base/nsIOService.cpp
|
||||
+++ b/netwerk/base/nsIOService.cpp
|
||||
@@ -1159,7 +1159,13 @@ nsresult nsIOService::NewChannelFromURIW
|
||||
}
|
||||
}
|
||||
|
||||
+#if defined(__aarch64__)
|
||||
+ if (result) {
|
||||
+ channel.forget(result);
|
||||
+ }
|
||||
+#else
|
||||
channel.forget(result);
|
||||
+#endif
|
||||
return NS_OK;
|
||||
}
|
||||
|
1
mozilla-api-key
Normal file
1
mozilla-api-key
Normal file
@ -0,0 +1 @@
|
||||
4605624048be48fda932495844d16fbb
|
129
mozilla-bmo1504834-part1.patch
Normal file
129
mozilla-bmo1504834-part1.patch
Normal file
@ -0,0 +1,129 @@
|
||||
# HG changeset patch
|
||||
# Parent 125a78208d2cef58191a0328ffe894dd14c6b146
|
||||
Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834
|
||||
|
||||
diff --git a/gfx/2d/DrawTargetSkia.cpp b/gfx/2d/DrawTargetSkia.cpp
|
||||
--- a/gfx/2d/DrawTargetSkia.cpp
|
||||
+++ b/gfx/2d/DrawTargetSkia.cpp
|
||||
@@ -151,17 +151,18 @@ static IntRect CalculateSurfaceBounds(co
|
||||
if (!sampledBounds.ToIntRect(&bounds)) {
|
||||
return surfaceBounds;
|
||||
}
|
||||
|
||||
return surfaceBounds.Intersect(bounds);
|
||||
}
|
||||
|
||||
static const int kARGBAlphaOffset =
|
||||
- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
|
||||
+ 0; // Skia is always BGRA SurfaceFormat::A8R8G8B8_UINT32 ==
|
||||
+ // SurfaceFormat::B8G8R8A8 ? 3 : 0;
|
||||
|
||||
static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize,
|
||||
const int32_t aStride, SurfaceFormat aFormat) {
|
||||
if (aFormat != SurfaceFormat::B8G8R8X8 || aSize.IsEmpty()) {
|
||||
return true;
|
||||
}
|
||||
// We should've initialized the data to be opaque already
|
||||
// On debug builds, verify that this is actually true.
|
||||
diff --git a/gfx/2d/Types.h b/gfx/2d/Types.h
|
||||
--- a/gfx/2d/Types.h
|
||||
+++ b/gfx/2d/Types.h
|
||||
@@ -84,28 +84,21 @@ enum class SurfaceFormat : int8_t {
|
||||
YUV422, // Single plane YUV 4:2:2 interleaved as Y`0 Cb Y`1 Cr.
|
||||
HSV,
|
||||
Lab,
|
||||
Depth,
|
||||
|
||||
// This represents the unknown format.
|
||||
UNKNOWN, // TODO: Replace uses with Maybe<SurfaceFormat>.
|
||||
|
||||
-// The following values are endian-independent synonyms. The _UINT32 suffix
|
||||
-// indicates that the name reflects the layout when viewed as a uint32_t
|
||||
-// value.
|
||||
-#if MOZ_LITTLE_ENDIAN()
|
||||
+ // The following values are endian-independent synonyms. The _UINT32 suffix
|
||||
+ // indicates that the name reflects the layout when viewed as a uint32_t
|
||||
+ // value.
|
||||
A8R8G8B8_UINT32 = B8G8R8A8, // 0xAARRGGBB
|
||||
X8R8G8B8_UINT32 = B8G8R8X8, // 0x00RRGGBB
|
||||
-#elif MOZ_BIG_ENDIAN()
|
||||
- A8R8G8B8_UINT32 = A8R8G8B8, // 0xAARRGGBB
|
||||
- X8R8G8B8_UINT32 = X8R8G8B8, // 0x00RRGGBB
|
||||
-#else
|
||||
-# error "bad endianness"
|
||||
-#endif
|
||||
|
||||
// The following values are OS and endian-independent synonyms.
|
||||
//
|
||||
// TODO(aosmond): When everything blocking bug 1581828 has been resolved, we
|
||||
// can make this use R8B8G8A8 and R8B8G8X8 for non-Windows platforms.
|
||||
OS_RGBA = A8R8G8B8_UINT32,
|
||||
OS_RGBX = X8R8G8B8_UINT32
|
||||
};
|
||||
diff --git a/gfx/skia/skia/modules/skcms/skcms.cc b/gfx/skia/skia/modules/skcms/skcms.cc
|
||||
--- a/gfx/skia/skia/modules/skcms/skcms.cc
|
||||
+++ b/gfx/skia/skia/modules/skcms/skcms.cc
|
||||
@@ -26,16 +26,18 @@
|
||||
// it'd be a lot slower. But we want all those headers included so we
|
||||
// can use their features after runtime checks later.
|
||||
#include <smmintrin.h>
|
||||
#include <avxintrin.h>
|
||||
#include <avx2intrin.h>
|
||||
#include <avx512fintrin.h>
|
||||
#include <avx512dqintrin.h>
|
||||
#endif
|
||||
+#else
|
||||
+ #define SKCMS_PORTABLE
|
||||
#endif
|
||||
|
||||
using namespace skcms_private;
|
||||
|
||||
static bool sAllowRuntimeCPUDetection = true;
|
||||
|
||||
void skcms_DisableRuntimeCPUDetection() {
|
||||
sAllowRuntimeCPUDetection = false;
|
||||
@@ -319,30 +321,38 @@ enum {
|
||||
skcms_Signature_sf32 = 0x73663332,
|
||||
// XYZ is also a PCS signature, so it's defined in skcms.h
|
||||
// skcms_Signature_XYZ = 0x58595A20,
|
||||
};
|
||||
|
||||
static uint16_t read_big_u16(const uint8_t* ptr) {
|
||||
uint16_t be;
|
||||
memcpy(&be, ptr, sizeof(be));
|
||||
-#if defined(_MSC_VER)
|
||||
- return _byteswap_ushort(be);
|
||||
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||
+ return be;
|
||||
#else
|
||||
- return __builtin_bswap16(be);
|
||||
+ #if defined(_MSC_VER)
|
||||
+ return _byteswap_ushort(be);
|
||||
+ #else
|
||||
+ return __builtin_bswap16(be);
|
||||
+ #endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static uint32_t read_big_u32(const uint8_t* ptr) {
|
||||
uint32_t be;
|
||||
memcpy(&be, ptr, sizeof(be));
|
||||
-#if defined(_MSC_VER)
|
||||
- return _byteswap_ulong(be);
|
||||
+#if __BYTE_ORDER == __ORDER_BIG_ENDIAN__
|
||||
+ return be;
|
||||
#else
|
||||
- return __builtin_bswap32(be);
|
||||
+ #if defined(_MSC_VER)
|
||||
+ return _byteswap_ulong(be);
|
||||
+ #else
|
||||
+ return __builtin_bswap32(be);
|
||||
+ #endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static int32_t read_big_i32(const uint8_t* ptr) {
|
||||
return (int32_t)read_big_u32(ptr);
|
||||
}
|
||||
|
||||
static float read_big_fixed(const uint8_t* ptr) {
|
17
mozilla-bmo1504834-part3.patch
Normal file
17
mozilla-bmo1504834-part3.patch
Normal file
@ -0,0 +1,17 @@
|
||||
# HG changeset patch
|
||||
# Parent 09cd4ac2cc607e85aa572425b824fbab386af607
|
||||
For FF68, AntiAliasing of XULTexts seem to be broken on big endian (s390x). Text and icons of the sandwich-menu to the
|
||||
right of the address bar, as well as plugin-windows appears transparant, which usually means unreadable (white on white).
|
||||
|
||||
diff --git a/gfx/skia/skia/src/opts/SkBlitMask_opts.h b/gfx/skia/skia/src/opts/SkBlitMask_opts.h
|
||||
--- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h
|
||||
+++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h
|
||||
@@ -210,6 +210,8 @@ namespace SK_OPTS_NS {
|
||||
// ~~~>
|
||||
// a = 1*aa + d(1-1*aa) = aa + d(1-aa)
|
||||
// c = 0*aa + d(1-1*aa) = d(1-aa)
|
||||
+ // TODO: Check this for endian-issues!
|
||||
+ // Do we need to switch 255 to the front for all of those tuples?
|
||||
return (aa & Sk4px(skvx::byte16{0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255}))
|
||||
+ d.approxMulDiv255(aa.inv());
|
||||
};
|
35
mozilla-bmo1512162.patch
Normal file
35
mozilla-bmo1512162.patch
Normal file
@ -0,0 +1,35 @@
|
||||
# HG changeset patch
|
||||
# Parent f9f5af4c88f2f3172a4f30d7e42bd2131bf24146
|
||||
This fixes a broken build for gcc < 9 on ppc64le.
|
||||
This patch can be removed for newer gcc-versions.
|
||||
|
||||
Index: firefox-115.0/js/xpconnect/src/XPCWrappedNative.cpp
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/js/xpconnect/src/XPCWrappedNative.cpp
|
||||
+++ firefox-115.0/js/xpconnect/src/XPCWrappedNative.cpp
|
||||
@@ -1061,7 +1061,11 @@ class MOZ_STACK_CLASS CallMethodHelper f
|
||||
MOZ_ALWAYS_INLINE bool GetOutParamSource(uint8_t paramIndex,
|
||||
MutableHandleValue srcp) const;
|
||||
|
||||
- MOZ_ALWAYS_INLINE bool GatherAndConvertResults();
|
||||
+#if !(__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
|
||||
+// Work around a compiler bug on ppc64le (bug 1512162).
|
||||
+ MOZ_ALWAYS_INLINE
|
||||
+#endif
|
||||
+ bool GatherAndConvertResults();
|
||||
|
||||
MOZ_ALWAYS_INLINE bool QueryInterfaceFastPath();
|
||||
|
||||
@@ -1108,7 +1112,11 @@ class MOZ_STACK_CLASS CallMethodHelper f
|
||||
|
||||
~CallMethodHelper();
|
||||
|
||||
- MOZ_ALWAYS_INLINE bool Call();
|
||||
+#if !(__GNUC__ && __linux__ && __PPC64__ && _LITTLE_ENDIAN)
|
||||
+// Work around a compiler bug on ppc64le (bug 1512162).
|
||||
+ MOZ_ALWAYS_INLINE
|
||||
+#endif
|
||||
+ bool Call();
|
||||
|
||||
// Trace implementation so we can put our CallMethodHelper in a Rooted<T>.
|
||||
void trace(JSTracer* aTrc);
|
63
mozilla-bmo1822730.patch
Normal file
63
mozilla-bmo1822730.patch
Normal file
@ -0,0 +1,63 @@
|
||||
# HG changeset patch
|
||||
# User Rob Krum <biggestsonicfan@gmail.com>
|
||||
# Date 1695432215 25200
|
||||
# Fri Sep 22 18:23:35 2023 -0700
|
||||
# Node ID e6a8a9f0956d124e8de34eb4bcf09d8e17077d9d
|
||||
# Parent 5dbbabbfaca21d2c5994f95ed095313284611c44
|
||||
Bug 1822730 - Add basic blob protocol handling for blob URIs that contain parsable http/s protocols
|
||||
|
||||
diff --git a/toolkit/mozapps/downloads/DownloadLastDir.sys.mjs b/toolkit/mozapps/downloads/DownloadLastDir.sys.mjs
|
||||
--- a/toolkit/mozapps/downloads/DownloadLastDir.sys.mjs
|
||||
+++ b/toolkit/mozapps/downloads/DownloadLastDir.sys.mjs
|
||||
@@ -216,38 +216,49 @@ export class DownloadLastDir {
|
||||
Services.prefs.setComplexValue(LAST_DIR_PREF, nsIFile, aFile);
|
||||
} else if (Services.prefs.prefHasUserValue(LAST_DIR_PREF)) {
|
||||
Services.prefs.clearUserPref(LAST_DIR_PREF);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Pre-processor to extract a domain name to be used with the content-prefs
|
||||
- * service. This specially handles data and file URIs so that the download
|
||||
- * dirs are recalled in a more consistent way:
|
||||
+ * service. This specially handles data, file and blob URIs so that the
|
||||
+ * download dirs are recalled in a more consistent way:
|
||||
* - all file:/// URIs share the same folder
|
||||
* - data: URIs share a folder per mime-type. If a mime-type is not
|
||||
* specified text/plain is assumed.
|
||||
* - blob: URIs share the same folder as their origin. This is done by
|
||||
* ContentPrefs already, so we just let the url fall-through.
|
||||
* In any other case the original URL is returned as a string and ContentPrefs
|
||||
* will do its usual parsing.
|
||||
*
|
||||
* @param {string|nsIURI|URL} url The URL to parse
|
||||
* @returns {string} the domain name to use, or the original url.
|
||||
*/
|
||||
#cpsGroupFromURL(url) {
|
||||
if (typeof url == "string") {
|
||||
+ if (url.startsWith("blob:http://") || url.startsWith("blob:https://")) {
|
||||
+ url = url.replace("blob:", "");
|
||||
+ }
|
||||
url = new URL(url);
|
||||
} else if (url instanceof Ci.nsIURI) {
|
||||
url = URL.fromURI(url);
|
||||
}
|
||||
if (!URL.isInstance(url)) {
|
||||
return url;
|
||||
}
|
||||
+ if (url.protocol == "blob:") {
|
||||
+ if (
|
||||
+ url.href.startsWith("blob:http://") ||
|
||||
+ url.href.startsWith("blob:https://")
|
||||
+ ) {
|
||||
+ return url.href.replace("blob:", "");
|
||||
+ }
|
||||
+ }
|
||||
if (url.protocol == "data:") {
|
||||
return url.href.match(/^data:[^;,]*/i)[0].replace(/:$/, ":text/plain");
|
||||
}
|
||||
if (url.protocol == "file:") {
|
||||
return "file:///";
|
||||
}
|
||||
return url.href;
|
||||
}
|
401
mozilla-bmo1898476.patch
Normal file
401
mozilla-bmo1898476.patch
Normal file
@ -0,0 +1,401 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User stransky <stransky@redhat.com>
|
||||
# Date 1720609192 0
|
||||
# Node ID f9323daf7abeb19f69ac5762a0a442c0dc15636e
|
||||
# Parent 5afadee4e18fc5779d789d9371a3d2d67a29d1da
|
||||
Bug 1898476 [Wayland] Move MozContainerSurfaceLock from MozContainerWayland to MozContainerSurfaceLock module r=emilio
|
||||
|
||||
Differential Revision: https://phabricator.services.mozilla.com/D214883
|
||||
|
||||
diff --git a/widget/gtk/MozContainerSurfaceLock.cpp b/widget/gtk/MozContainerSurfaceLock.cpp
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/widget/gtk/MozContainerSurfaceLock.cpp
|
||||
@@ -0,0 +1,31 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#include "MozContainerSurfaceLock.h"
|
||||
+#include "MozContainer.h"
|
||||
+#include "WidgetUtilsGtk.h"
|
||||
+
|
||||
+using namespace mozilla::widget;
|
||||
+
|
||||
+MozContainerSurfaceLock::MozContainerSurfaceLock(MozContainer* aContainer) {
|
||||
+#ifdef MOZ_WAYLAND
|
||||
+ mContainer = aContainer;
|
||||
+ if (GdkIsWaylandDisplay()) {
|
||||
+ // mSurface can be nullptr if we lock hidden MozContainer and
|
||||
+ // that's correct, MozContainer is still locked.
|
||||
+ mSurface = moz_container_wayland_surface_lock(aContainer);
|
||||
+ }
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+MozContainerSurfaceLock::~MozContainerSurfaceLock() {
|
||||
+#ifdef MOZ_WAYLAND
|
||||
+ if (GdkIsWaylandDisplay()) {
|
||||
+ moz_container_wayland_surface_unlock(mContainer, &mSurface);
|
||||
+ }
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+struct wl_surface* MozContainerSurfaceLock::GetSurface() { return mSurface; }
|
||||
diff --git a/widget/gtk/MozContainerSurfaceLock.h b/widget/gtk/MozContainerSurfaceLock.h
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/widget/gtk/MozContainerSurfaceLock.h
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
+/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
+
|
||||
+#ifndef widget_gtk_MozContainerSurfaceLock_h
|
||||
+#define widget_gtk_MozContainerSurfaceLock_h
|
||||
+
|
||||
+struct wl_surface;
|
||||
+struct _MozContainer;
|
||||
+typedef struct _MozContainer MozContainer;
|
||||
+
|
||||
+class MozContainerSurfaceLock {
|
||||
+ public:
|
||||
+ explicit MozContainerSurfaceLock(MozContainer* aContainer);
|
||||
+ ~MozContainerSurfaceLock();
|
||||
+
|
||||
+ // wl_surface can be nullptr if we lock hidden MozContainer.
|
||||
+ struct wl_surface* GetSurface();
|
||||
+
|
||||
+ private:
|
||||
+#ifdef MOZ_WAYLAND
|
||||
+ MozContainer* mContainer = nullptr;
|
||||
+#endif
|
||||
+ struct wl_surface* mSurface = nullptr;
|
||||
+};
|
||||
+
|
||||
+#endif // widget_gtk_MozContainerSurfaceLock_h
|
||||
diff --git a/widget/gtk/MozContainerWayland.cpp b/widget/gtk/MozContainerWayland.cpp
|
||||
--- a/widget/gtk/MozContainerWayland.cpp
|
||||
+++ b/widget/gtk/MozContainerWayland.cpp
|
||||
@@ -82,33 +82,16 @@ using namespace mozilla;
|
||||
using namespace mozilla::widget;
|
||||
|
||||
static bool moz_container_wayland_surface_create_locked(
|
||||
const MutexAutoLock& aProofOfLock, MozContainer* container);
|
||||
static void moz_container_wayland_set_opaque_region_locked(
|
||||
const MutexAutoLock& aProofOfLock, MozContainer* container,
|
||||
const LayoutDeviceIntRegion&);
|
||||
|
||||
-// Lock mozcontainer and get wayland surface of it. You need to pair with
|
||||
-// moz_container_wayland_surface_unlock() even
|
||||
-// if moz_container_wayland_surface_lock() fails and returns nullptr.
|
||||
-static struct wl_surface* moz_container_wayland_surface_lock(
|
||||
- MozContainer* container);
|
||||
-static void moz_container_wayland_surface_unlock(MozContainer* container,
|
||||
- struct wl_surface** surface);
|
||||
-
|
||||
-MozContainerSurfaceLock::MozContainerSurfaceLock(MozContainer* aContainer) {
|
||||
- mContainer = aContainer;
|
||||
- mSurface = moz_container_wayland_surface_lock(aContainer);
|
||||
-}
|
||||
-MozContainerSurfaceLock::~MozContainerSurfaceLock() {
|
||||
- moz_container_wayland_surface_unlock(mContainer, &mSurface);
|
||||
-}
|
||||
-struct wl_surface* MozContainerSurfaceLock::GetSurface() { return mSurface; }
|
||||
-
|
||||
// Invalidate gtk wl_surface to commit changes to wl_subsurface.
|
||||
// wl_subsurface changes are effective when parent surface is commited.
|
||||
static void moz_container_wayland_invalidate(MozContainer* container) {
|
||||
LOGWAYLAND("moz_container_wayland_invalidate [%p]\n",
|
||||
(void*)moz_container_get_nsWindow(container));
|
||||
|
||||
GdkWindow* window = gtk_widget_get_window(GTK_WIDGET(container));
|
||||
if (!window) {
|
||||
diff --git a/widget/gtk/MozContainerWayland.h b/widget/gtk/MozContainerWayland.h
|
||||
--- a/widget/gtk/MozContainerWayland.h
|
||||
+++ b/widget/gtk/MozContainerWayland.h
|
||||
@@ -8,16 +8,17 @@
|
||||
#ifndef __MOZ_CONTAINER_WAYLAND_H__
|
||||
#define __MOZ_CONTAINER_WAYLAND_H__
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#include <functional>
|
||||
#include <vector>
|
||||
#include "mozilla/Mutex.h"
|
||||
#include "WindowSurface.h"
|
||||
+#include "MozContainerSurfaceLock.h"
|
||||
|
||||
/*
|
||||
* MozContainer
|
||||
*
|
||||
* This class serves three purposes in the nsIWidget implementation.
|
||||
*
|
||||
* - It provides objects to receive signals from GTK for events on native
|
||||
* windows.
|
||||
@@ -56,25 +57,22 @@ struct MozContainerWayland {
|
||||
mozilla::Mutex container_lock{"MozContainerWayland::container_lock"};
|
||||
};
|
||||
|
||||
struct _MozContainer;
|
||||
struct _MozContainerClass;
|
||||
typedef struct _MozContainer MozContainer;
|
||||
typedef struct _MozContainerClass MozContainerClass;
|
||||
|
||||
-class MozContainerSurfaceLock {
|
||||
- MozContainer* mContainer;
|
||||
- struct wl_surface* mSurface;
|
||||
-
|
||||
- public:
|
||||
- explicit MozContainerSurfaceLock(MozContainer* aContainer);
|
||||
- ~MozContainerSurfaceLock();
|
||||
- struct wl_surface* GetSurface();
|
||||
-};
|
||||
+// Lock mozcontainer and get wayland surface of it. You need to pair with
|
||||
+// moz_container_wayland_surface_unlock() even
|
||||
+// if moz_container_wayland_surface_lock() fails and returns nullptr.
|
||||
+struct wl_surface* moz_container_wayland_surface_lock(MozContainer* container);
|
||||
+void moz_container_wayland_surface_unlock(MozContainer* container,
|
||||
+ struct wl_surface** surface);
|
||||
|
||||
void moz_container_wayland_map(GtkWidget*);
|
||||
gboolean moz_container_wayland_map_event(GtkWidget*, GdkEventAny*);
|
||||
void moz_container_wayland_size_allocate(GtkWidget*, GtkAllocation*);
|
||||
void moz_container_wayland_unmap(GtkWidget*);
|
||||
|
||||
struct wl_egl_window* moz_container_wayland_get_egl_window(
|
||||
MozContainer* container, double scale);
|
||||
diff --git a/widget/gtk/moz.build b/widget/gtk/moz.build
|
||||
--- a/widget/gtk/moz.build
|
||||
+++ b/widget/gtk/moz.build
|
||||
@@ -28,16 +28,17 @@ if CONFIG["MOZ_WAYLAND"]:
|
||||
if CONFIG["MOZ_ENABLE_VAAPI"]:
|
||||
DIRS += ["vaapitest"]
|
||||
|
||||
if CONFIG["MOZ_ENABLE_V4L2"]:
|
||||
DIRS += ["v4l2test"]
|
||||
|
||||
EXPORTS += [
|
||||
"MozContainer.h",
|
||||
+ "MozContainerSurfaceLock.h",
|
||||
"nsGTKToolkit.h",
|
||||
"nsGtkUtils.h",
|
||||
"nsImageToPixbuf.h",
|
||||
]
|
||||
|
||||
EXPORTS.mozilla += [
|
||||
"GfxInfo.h",
|
||||
"GfxInfoUtils.h",
|
||||
@@ -66,16 +67,17 @@ UNIFIED_SOURCES += [
|
||||
"DMABufLibWrapper.cpp",
|
||||
"DMABufSurface.cpp",
|
||||
"GfxInfo.cpp",
|
||||
"gtk3drawing.cpp",
|
||||
"GtkCompositorWidget.cpp",
|
||||
"IMContextWrapper.cpp",
|
||||
"InProcessGtkCompositorWidget.cpp",
|
||||
"MozContainer.cpp",
|
||||
+ "MozContainerSurfaceLock.cpp",
|
||||
"MPRISServiceHandler.cpp",
|
||||
"NativeKeyBindings.cpp",
|
||||
"NativeMenuGtk.cpp",
|
||||
"NativeMenuSupport.cpp",
|
||||
"nsApplicationChooser.cpp",
|
||||
"nsAppShell.cpp",
|
||||
"nsBidiKeyboard.cpp",
|
||||
"nsClipboard.cpp",
|
||||
@@ -109,16 +111,17 @@ if CONFIG["MOZ_WAYLAND"]:
|
||||
UNIFIED_SOURCES += [
|
||||
"MozContainerWayland.cpp",
|
||||
"nsClipboardWayland.cpp",
|
||||
"nsWaylandDisplay.cpp",
|
||||
"WaylandBuffer.cpp",
|
||||
"WindowSurfaceWaylandMultiBuffer.cpp",
|
||||
]
|
||||
EXPORTS.mozilla.widget += [
|
||||
+ "MozContainerSurfaceLock.h",
|
||||
"MozContainerWayland.h",
|
||||
"nsWaylandDisplay.h",
|
||||
"WaylandBuffer.h",
|
||||
]
|
||||
|
||||
if CONFIG["MOZ_X11"]:
|
||||
UNIFIED_SOURCES += [
|
||||
"nsClipboardX11.cpp",
|
||||
|
||||
|
||||
# HG changeset patch
|
||||
# User stransky <stransky@redhat.com>
|
||||
# Date 1720609193 0
|
||||
# Node ID a264ff9e9f6f87ca0520a884b29c4be90001533e
|
||||
# Parent f9323daf7abeb19f69ac5762a0a442c0dc15636e
|
||||
Bug 1898476 [Wayland] Provide surface lock by GtkCompositorWidget r=emilio
|
||||
|
||||
Depends on D214883
|
||||
|
||||
Differential Revision: https://phabricator.services.mozilla.com/D214884
|
||||
|
||||
diff --git a/widget/gtk/GtkCompositorWidget.cpp b/widget/gtk/GtkCompositorWidget.cpp
|
||||
--- a/widget/gtk/GtkCompositorWidget.cpp
|
||||
+++ b/widget/gtk/GtkCompositorWidget.cpp
|
||||
@@ -206,10 +206,14 @@ void GtkCompositorWidget::SetRenderingSu
|
||||
}
|
||||
|
||||
#ifdef MOZ_LOGGING
|
||||
bool GtkCompositorWidget::IsPopup() {
|
||||
return mWidget ? mWidget->IsPopup() : false;
|
||||
}
|
||||
#endif
|
||||
|
||||
+UniquePtr<MozContainerSurfaceLock> GtkCompositorWidget::LockSurface() {
|
||||
+ return mWidget->LockSurface();
|
||||
+}
|
||||
+
|
||||
} // namespace widget
|
||||
} // namespace mozilla
|
||||
diff --git a/widget/gtk/GtkCompositorWidget.h b/widget/gtk/GtkCompositorWidget.h
|
||||
--- a/widget/gtk/GtkCompositorWidget.h
|
||||
+++ b/widget/gtk/GtkCompositorWidget.h
|
||||
@@ -5,16 +5,18 @@
|
||||
|
||||
#ifndef widget_gtk_GtkCompositorWidget_h
|
||||
#define widget_gtk_GtkCompositorWidget_h
|
||||
|
||||
#include "GLDefs.h"
|
||||
#include "mozilla/DataMutex.h"
|
||||
#include "mozilla/widget/CompositorWidget.h"
|
||||
#include "WindowSurfaceProvider.h"
|
||||
+#include "mozilla/UniquePtr.h"
|
||||
+#include "MozContainerSurfaceLock.h"
|
||||
|
||||
class nsIWidget;
|
||||
class nsWindow;
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
namespace layers {
|
||||
class NativeLayerRootWayland;
|
||||
@@ -91,16 +93,18 @@ class GtkCompositorWidget : public Compo
|
||||
RefPtr<mozilla::layers::NativeLayerRoot> GetNativeLayerRoot() override;
|
||||
#endif
|
||||
|
||||
// PlatformCompositorWidgetDelegate Overrides
|
||||
|
||||
void NotifyClientSizeChanged(const LayoutDeviceIntSize& aClientSize) override;
|
||||
GtkCompositorWidget* AsGtkCompositorWidget() override { return this; }
|
||||
|
||||
+ UniquePtr<MozContainerSurfaceLock> LockSurface();
|
||||
+
|
||||
private:
|
||||
#if defined(MOZ_WAYLAND)
|
||||
void ConfigureWaylandBackend();
|
||||
#endif
|
||||
#if defined(MOZ_X11)
|
||||
void ConfigureX11Backend(Window aXWindow, bool aShaped);
|
||||
#endif
|
||||
#ifdef MOZ_LOGGING
|
||||
diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp
|
||||
--- a/widget/gtk/nsWindow.cpp
|
||||
+++ b/widget/gtk/nsWindow.cpp
|
||||
@@ -10271,8 +10271,15 @@ void nsWindow::SetDragSource(GdkDragCont
|
||||
mSourceDragContext = aSourceDragContext;
|
||||
if (IsPopup() &&
|
||||
(widget::GdkIsWaylandDisplay() || widget::IsXWaylandProtocol())) {
|
||||
if (auto* menuPopupFrame = GetMenuPopupFrame(GetFrame())) {
|
||||
menuPopupFrame->SetIsDragSource(!!aSourceDragContext);
|
||||
}
|
||||
}
|
||||
}
|
||||
+
|
||||
+UniquePtr<MozContainerSurfaceLock> nsWindow::LockSurface() {
|
||||
+ if (mIsDestroyed) {
|
||||
+ return nullptr;
|
||||
+ }
|
||||
+ return MakeUnique<MozContainerSurfaceLock>(mContainer);
|
||||
+}
|
||||
diff --git a/widget/gtk/nsWindow.h b/widget/gtk/nsWindow.h
|
||||
--- a/widget/gtk/nsWindow.h
|
||||
+++ b/widget/gtk/nsWindow.h
|
||||
@@ -8,16 +8,17 @@
|
||||
#ifndef __nsWindow_h__
|
||||
#define __nsWindow_h__
|
||||
|
||||
#include <gdk/gdk.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "CompositorWidget.h"
|
||||
#include "MozContainer.h"
|
||||
+#include "MozContainerSurfaceLock.h"
|
||||
#include "VsyncSource.h"
|
||||
#include "mozilla/EventForwards.h"
|
||||
#include "mozilla/Maybe.h"
|
||||
#include "mozilla/RefPtr.h"
|
||||
#include "mozilla/TouchEvents.h"
|
||||
#include "mozilla/UniquePtr.h"
|
||||
#include "mozilla/RWLock.h"
|
||||
#include "mozilla/widget/WindowSurface.h"
|
||||
@@ -416,16 +417,18 @@ class nsWindow final : public nsBaseWidg
|
||||
static bool TitlebarUseShapeMask();
|
||||
bool IsRemoteContent() { return HasRemoteContent(); }
|
||||
void NativeMoveResizeWaylandPopupCallback(const GdkRectangle* aFinalSize,
|
||||
bool aFlippedX, bool aFlippedY);
|
||||
static bool IsToplevelWindowTransparent();
|
||||
|
||||
static nsWindow* GetFocusedWindow();
|
||||
|
||||
+ mozilla::UniquePtr<MozContainerSurfaceLock> LockSurface();
|
||||
+
|
||||
#ifdef MOZ_WAYLAND
|
||||
// Use xdg-activation protocol to transfer focus from gFocusWindow to aWindow.
|
||||
static void TransferFocusToWaylandWindow(nsWindow* aWindow);
|
||||
void FocusWaylandWindow(const char* aTokenID);
|
||||
|
||||
bool GetCSDDecorationOffset(int* aDx, int* aDy);
|
||||
bool SetEGLNativeWindowSize(const LayoutDeviceIntSize& aEGLWindowSize);
|
||||
void WaylandDragWorkaround(GdkEventButton* aEvent);
|
||||
|
||||
|
||||
# HG changeset patch
|
||||
# User stransky <stransky@redhat.com>
|
||||
# Date 1720609193 0
|
||||
# Node ID eb230ecdf8eb26a9ed340873b58fe7b71f94f8e8
|
||||
# Parent a264ff9e9f6f87ca0520a884b29c4be90001533e
|
||||
Bug 1898476 [Wayland] Lock Wayland surface before Swap buffers in RenderCompositorEGL r=emilio
|
||||
|
||||
Depends on D214884
|
||||
|
||||
Differential Revision: https://phabricator.services.mozilla.com/D214885
|
||||
|
||||
diff --git a/gfx/webrender_bindings/RenderCompositorEGL.cpp b/gfx/webrender_bindings/RenderCompositorEGL.cpp
|
||||
--- a/gfx/webrender_bindings/RenderCompositorEGL.cpp
|
||||
+++ b/gfx/webrender_bindings/RenderCompositorEGL.cpp
|
||||
@@ -149,16 +149,26 @@ RenderedFrameId RenderCompositorEGL::End
|
||||
const auto width = right - left;
|
||||
const auto height = bottom - top;
|
||||
|
||||
bufferInvalid.OrWith(
|
||||
gfx::IntRect(left, (GetBufferSize().height - bottom), width, height));
|
||||
}
|
||||
gl()->SetDamage(bufferInvalid);
|
||||
}
|
||||
+
|
||||
+#ifdef MOZ_WIDGET_GTK
|
||||
+ // Rendering on Wayland has to be atomic (buffer attach + commit) and
|
||||
+ // wayland surface is also used by main thread so lock it before
|
||||
+ // we paint at SwapBuffers().
|
||||
+ UniquePtr<MozContainerSurfaceLock> lock;
|
||||
+ if (auto* gtkWidget = mWidget->AsGTK()) {
|
||||
+ lock = gtkWidget->LockSurface();
|
||||
+ }
|
||||
+#endif
|
||||
gl()->SwapBuffers();
|
||||
return frameId;
|
||||
}
|
||||
|
||||
void RenderCompositorEGL::Pause() { DestroyEGLSurface(); }
|
||||
|
||||
bool RenderCompositorEGL::Resume() {
|
||||
if (kIsAndroid) {
|
||||
|
33
mozilla-bmo1905018.patch
Normal file
33
mozilla-bmo1905018.patch
Normal file
@ -0,0 +1,33 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Paul Adenot <paul@paul.cx>
|
||||
# Date 1721290421 0
|
||||
# Node ID 3781e311770684d79c1c8112d18abce258e29e7f
|
||||
# Parent fd4c60ac71c20d0cac519b517f32fc4956e0cfe3
|
||||
Bug 1905018 - Fix logctx type in dovi_rpu stub. r=media-playback-reviewers,alwu
|
||||
|
||||
Differential Revision: https://phabricator.services.mozilla.com/D216832
|
||||
|
||||
diff --git a/media/ffvpx/libavcodec/dovi_rpu.h b/media/ffvpx/libavcodec/dovi_rpu.h
|
||||
--- a/media/ffvpx/libavcodec/dovi_rpu.h
|
||||
+++ b/media/ffvpx/libavcodec/dovi_rpu.h
|
||||
@@ -5,17 +5,17 @@
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
/* Stubs for dovi_rpu.{c,h} */
|
||||
|
||||
typedef struct AVCtx AVContext;
|
||||
|
||||
typedef struct DOVICtx {
|
||||
int dv_profile;
|
||||
- AVContext* logctx;
|
||||
+ void* logctx;
|
||||
int operating_point;
|
||||
} DOVIContext;
|
||||
|
||||
typedef struct AVDOVICConfRecord {
|
||||
} AVDOVIDecoderConfigurationRecord;
|
||||
|
||||
static void ff_dovi_ctx_unref(DOVIContext* ctx) {}
|
||||
static void ff_dovi_update_cfg(DOVIContext* ctx,
|
||||
|
29
mozilla-bmo1907511.patch
Normal file
29
mozilla-bmo1907511.patch
Normal file
@ -0,0 +1,29 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User stransky <stransky@redhat.com>
|
||||
# Date 1720807971 0
|
||||
# Node ID d8a0164db5db7090fd7549b03dd0391f7151649c
|
||||
# Parent e243955016ffa880296b8d82cf531887dfb3ac22
|
||||
Bug 1907511 [Linux/X11] Check mWindow at GtkCompositorWidget::LockSurface() r=emilio
|
||||
|
||||
Differential Revision: https://phabricator.services.mozilla.com/D216380
|
||||
|
||||
diff --git a/widget/gtk/GtkCompositorWidget.cpp b/widget/gtk/GtkCompositorWidget.cpp
|
||||
--- a/widget/gtk/GtkCompositorWidget.cpp
|
||||
+++ b/widget/gtk/GtkCompositorWidget.cpp
|
||||
@@ -207,13 +207,13 @@ void GtkCompositorWidget::SetRenderingSu
|
||||
|
||||
#ifdef MOZ_LOGGING
|
||||
bool GtkCompositorWidget::IsPopup() {
|
||||
return mWidget ? mWidget->IsPopup() : false;
|
||||
}
|
||||
#endif
|
||||
|
||||
UniquePtr<MozContainerSurfaceLock> GtkCompositorWidget::LockSurface() {
|
||||
- return mWidget->LockSurface();
|
||||
+ return mWidget ? mWidget->LockSurface() : nullptr;
|
||||
}
|
||||
|
||||
} // namespace widget
|
||||
} // namespace mozilla
|
||||
|
33
mozilla-bmo531915.patch
Normal file
33
mozilla-bmo531915.patch
Normal file
@ -0,0 +1,33 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent fa8a5832a374ccd7af5db927b992b5d9f15273ef
|
||||
|
||||
diff --git a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h
|
||||
--- a/modules/fdlibm/src/math_private.h
|
||||
+++ b/modules/fdlibm/src/math_private.h
|
||||
@@ -25,19 +25,24 @@
|
||||
|
||||
#include "fdlibm.h"
|
||||
|
||||
/*
|
||||
* Emulate FreeBSD internal double types.
|
||||
* Adapted from https://github.com/freebsd/freebsd-src/search?q=__double_t
|
||||
*/
|
||||
|
||||
+#ifdef __i386__
|
||||
+typedef long double __double_t;
|
||||
+typedef long double __float_t;
|
||||
+#else
|
||||
typedef double __double_t;
|
||||
+typedef float __float_t;
|
||||
+#endif
|
||||
typedef __double_t double_t;
|
||||
-typedef float __float_t;
|
||||
|
||||
/*
|
||||
* The original fdlibm code used statements like:
|
||||
* n0 = ((*(int*)&one)>>29)^1; * index of high word *
|
||||
* ix0 = *(n0+(int*)&x); * high word of x *
|
||||
* ix1 = *((1-n0)+(int*)&x); * low word of x *
|
||||
* to dig two 32 bit words out of the 64 bit IEEE floating point
|
||||
* value. That is non-ANSI, and, moreover, the gcc instruction
|
26
mozilla-bmo849632.patch
Normal file
26
mozilla-bmo849632.patch
Normal file
@ -0,0 +1,26 @@
|
||||
# HG changeset patch
|
||||
# Parent 3de59fe1b8708c01e134ce698c4232b8a854f617
|
||||
Problem: webGL sites are displayed in the wrong color (usually blue-ish)
|
||||
Solution: Problem is with skia once again. Output of webgl seems endian-correct, but skia only
|
||||
knows how to deal with little endian.
|
||||
So we swizzle the output of webgl after reading it from readpixels()
|
||||
Note: This does not fix all webGL sites, but is a step in the right direction
|
||||
|
||||
Index: firefox-115.0/gfx/gl/GLContext.h
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/gl/GLContext.h
|
||||
+++ firefox-115.0/gfx/gl/GLContext.h
|
||||
@@ -1560,6 +1560,13 @@ class GLContext : public GenericAtomicRe
|
||||
BEFORE_GL_CALL;
|
||||
mSymbols.fReadPixels(x, y, width, height, format, type, pixels);
|
||||
OnSyncCall();
|
||||
+#if MOZ_BIG_ENDIAN()
|
||||
+ uint8_t* itr = (uint8_t*)pixels;
|
||||
+ for (GLsizei i = 0; i < width * height; i++) {
|
||||
+ NativeEndian::swapToLittleEndianInPlace((uint32_t*)itr, 1);
|
||||
+ itr += 4;
|
||||
+ }
|
||||
+#endif
|
||||
AFTER_GL_CALL;
|
||||
mHeavyGLCallsSinceLastFlush = true;
|
||||
}
|
29
mozilla-bmo998749.patch
Normal file
29
mozilla-bmo998749.patch
Normal file
@ -0,0 +1,29 @@
|
||||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1583738770 -3600
|
||||
# Mon Mar 09 08:26:10 2020 +0100
|
||||
# Node ID 34676feac1a542e409e22acf5b98735f8313b1ce
|
||||
# Parent 506857dace0a08d1c9685e3ac264646590b3e27f
|
||||
[mq]: mozilla-bmo998749.patch
|
||||
|
||||
diff -r 506857dace0a -r 34676feac1a5 gfx/2d/FilterProcessing.h
|
||||
--- a/gfx/2d/FilterProcessing.h Fri Feb 28 12:31:51 2020 +0100
|
||||
+++ b/gfx/2d/FilterProcessing.h Mon Mar 09 08:26:10 2020 +0100
|
||||
@@ -13,10 +13,17 @@
|
||||
namespace mozilla {
|
||||
namespace gfx {
|
||||
|
||||
+#if MOZ_BIG_ENDIAN()
|
||||
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_B = 3;
|
||||
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_G = 2;
|
||||
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_R = 1;
|
||||
+const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_A = 0;
|
||||
+#else
|
||||
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_B = 0;
|
||||
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_G = 1;
|
||||
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_R = 2;
|
||||
const ptrdiff_t B8G8R8A8_COMPONENT_BYTEOFFSET_A = 3;
|
||||
+#endif
|
||||
|
||||
class FilterProcessing {
|
||||
public:
|
15
mozilla-fix-aarch64-libopus.patch
Normal file
15
mozilla-fix-aarch64-libopus.patch
Normal file
@ -0,0 +1,15 @@
|
||||
# HG changeset patch
|
||||
# Parent af2c24874d79cbebb444727ae96f2fefa3f22b47
|
||||
|
||||
diff --git a/media/libopus/silk/arm/arm_silk_map.c b/media/libopus/silk/arm/arm_silk_map.c
|
||||
--- a/media/libopus/silk/arm/arm_silk_map.c
|
||||
+++ b/media/libopus/silk/arm/arm_silk_map.c
|
||||
@@ -28,7 +28,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
-#include "main_FIX.h"
|
||||
+#include "../fixed/main_FIX.h"
|
||||
#include "NSQ.h"
|
||||
#include "SigProc_FIX.h"
|
||||
|
51
mozilla-get-app-id
Normal file
51
mozilla-get-app-id
Normal file
@ -0,0 +1,51 @@
|
||||
#!/usr/bin/perl -w
|
||||
use XML::Simple;
|
||||
|
||||
my $file = shift || die "Usage: $0 [install.rdf|somefile.xpi]\n";
|
||||
my $xml;
|
||||
|
||||
if ($file =~ /\.xpi$/) {
|
||||
use Archive::Zip qw/:ERROR_CODES :CONSTANTS/;
|
||||
my $zip = Archive::Zip->new();
|
||||
if ( $zip->read($file) != AZ_OK ) {
|
||||
die "zip file read error\n";
|
||||
}
|
||||
my $data = $zip->contents("install.rdf");
|
||||
die "missing install.rdf in $file\n" unless $data;
|
||||
$xml = XMLin($data) || die "$!\n";
|
||||
} elsif ($file =~ /install.rdf/) {
|
||||
$xml = XMLin($file) || die "$!\n";
|
||||
} else {
|
||||
die "unsupported file format\n";
|
||||
}
|
||||
|
||||
my $desc;
|
||||
for my $tag (qw/RDF:Description Description/) {
|
||||
if (exists $xml->{$tag}) {
|
||||
if (ref $xml->{$tag} eq 'ARRAY') {
|
||||
$desc = $xml->{$tag};
|
||||
} else {
|
||||
$desc = [ $xml->{$tag} ];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
my $uuid;
|
||||
my $id;
|
||||
for my $x (@$desc) {
|
||||
if ($x->{"em:id"} =~ /{[[:xdigit:]]+-/) {
|
||||
print STDERR "Warning: multiple uuids!\n" if defined $uuid;
|
||||
$uuid = $x->{"em:id"};
|
||||
} elsif ($x->{"em:id"} =~ /@/) {
|
||||
print STDERR "Warning: multiple ids!\n" if defined $id;
|
||||
$id = $x->{"em:id"};
|
||||
}
|
||||
}
|
||||
|
||||
if (defined $id) {
|
||||
print "$id\n";
|
||||
} elsif (defined $uuid) {
|
||||
print "$uuid\n";
|
||||
} else {
|
||||
exit 1;
|
||||
}
|
1774
mozilla-kde.patch
Normal file
1774
mozilla-kde.patch
Normal file
File diff suppressed because it is too large
Load Diff
25
mozilla-libavcodec58_91.patch
Normal file
25
mozilla-libavcodec58_91.patch
Normal file
@ -0,0 +1,25 @@
|
||||
# HG changeset patch
|
||||
# Parent fdc16b43f28c2e974929ca702563aaac52799654
|
||||
|
||||
diff --git a/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp b/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp
|
||||
--- a/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp
|
||||
+++ b/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp
|
||||
@@ -44,16 +44,18 @@ static const char* sLibs[] = {
|
||||
"libavcodec.53.dylib",
|
||||
#elif defined(XP_OPENBSD)
|
||||
"libavcodec.so", // OpenBSD hardly controls the major/minor library version
|
||||
// of ffmpeg and update it regulary on ABI/API changes
|
||||
#else
|
||||
"libavcodec.so.61",
|
||||
"libavcodec.so.60",
|
||||
"libavcodec.so.59",
|
||||
+ "libavcodec.so.58.134",
|
||||
+ "libavcodec.so.58.91",
|
||||
"libavcodec.so.58",
|
||||
"libavcodec-ffmpeg.so.58",
|
||||
"libavcodec-ffmpeg.so.57",
|
||||
"libavcodec-ffmpeg.so.56",
|
||||
"libavcodec.so.57",
|
||||
"libavcodec.so.56",
|
||||
"libavcodec.so.55",
|
||||
"libavcodec.so.54",
|
33
mozilla-nongnome-proxies.patch
Normal file
33
mozilla-nongnome-proxies.patch
Normal file
@ -0,0 +1,33 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer
|
||||
# Date 1558442915 -7200
|
||||
# Tue May 21 14:48:35 2019 +0200
|
||||
# Node ID 6bcf2dfebc1ea2aa34e5cc61152709fc8e409dc5
|
||||
# Parent 715f01d61df8627117e6aefca540f0c1bba45011
|
||||
Do not use gconf for proxy settings if not running within Gnome
|
||||
Index: toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
===================================================================
|
||||
RCS file: /cvsroot/mozilla/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp,v
|
||||
retrieving revision 1.1
|
||||
|
||||
diff --git a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
@@ -52,10 +52,13 @@ nsUnixSystemProxySettings::GetMainThread
|
||||
}
|
||||
|
||||
void nsUnixSystemProxySettings::Init() {
|
||||
- mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
|
||||
- if (mGSettings) {
|
||||
- mGSettings->GetCollectionForSchema("org.gnome.system.proxy"_ns,
|
||||
- getter_AddRefs(mProxySettings));
|
||||
+ const char* sessionType = PR_GetEnv("DESKTOP_SESSION");
|
||||
+ if (sessionType && !strcmp(sessionType, "gnome")) {
|
||||
+ mGSettings = do_GetService(NS_GSETTINGSSERVICE_CONTRACTID);
|
||||
+ if (mGSettings) {
|
||||
+ mGSettings->GetCollectionForSchema("org.gnome.system.proxy"_ns,
|
||||
+ getter_AddRefs(mProxySettings));
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
18
mozilla-ntlm-full-path.patch
Normal file
18
mozilla-ntlm-full-path.patch
Normal file
@ -0,0 +1,18 @@
|
||||
# HG changeset patch
|
||||
# User Petr Cerny <pcerny@novell.com>
|
||||
# Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
|
||||
# Parent 1c6a565013e4c5f3494f964269783939cd5ed0b8
|
||||
Bug 634334 - call to the ntlm_auth helper fails
|
||||
|
||||
diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp
|
||||
--- a/extensions/auth/nsAuthSambaNTLM.cpp
|
||||
+++ b/extensions/auth/nsAuthSambaNTLM.cpp
|
||||
@@ -160,7 +160,7 @@ nsresult nsAuthSambaNTLM::SpawnNTLMAuthH
|
||||
const char* username = PR_GetEnv("USER");
|
||||
if (!username) return NS_ERROR_FAILURE;
|
||||
|
||||
- const char* const args[] = {"ntlm_auth",
|
||||
+ const char* const args[] = {"/usr/bin/ntlm_auth",
|
||||
"--helper-protocol",
|
||||
"ntlmssp-client-1",
|
||||
"--use-cached-creds",
|
13
mozilla-partial-revert-1768632.patch
Normal file
13
mozilla-partial-revert-1768632.patch
Normal file
@ -0,0 +1,13 @@
|
||||
Index: firefox-102.4.0/mfbt/EnumSet.h
|
||||
===================================================================
|
||||
--- firefox-102.4.0.orig/mfbt/EnumSet.h
|
||||
+++ firefox-102.4.0/mfbt/EnumSet.h
|
||||
@@ -326,7 +326,7 @@ class EnumSet {
|
||||
}
|
||||
}
|
||||
|
||||
- static constexpr size_t kMaxBits = MaxBits();
|
||||
+ static constexpr size_t kMaxBits = EnumSet().MaxBits();
|
||||
|
||||
Serialized mBitField;
|
||||
|
124
mozilla-pgo.patch
Normal file
124
mozilla-pgo.patch
Normal file
@ -0,0 +1,124 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent 9959fe2a13a39cbeb98ca1bef2e21caba16717bd
|
||||
|
||||
Index: firefox-115.0/build/moz.configure/lto-pgo.configure
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/build/moz.configure/lto-pgo.configure
|
||||
+++ firefox-115.0/build/moz.configure/lto-pgo.configure
|
||||
@@ -251,8 +251,8 @@ def lto(
|
||||
cflags.append("-flto")
|
||||
ldflags.append("-flto")
|
||||
else:
|
||||
- cflags.append("-flto=thin")
|
||||
- ldflags.append("-flto=thin")
|
||||
+ cflags.append("-flto")
|
||||
+ ldflags.append("-flto")
|
||||
|
||||
if target.os == "Android" and "cross" in values:
|
||||
# Work around https://github.com/rust-lang/rust/issues/90088
|
||||
@@ -268,7 +268,7 @@ def lto(
|
||||
if "full" in values:
|
||||
cflags.append("-flto")
|
||||
else:
|
||||
- cflags.append("-flto=thin")
|
||||
+ cflags.append("-flto")
|
||||
# With clang-cl, -flto can only be used with -c or -fuse-ld=lld.
|
||||
# AC_TRY_LINKs during configure don't have -c, so pass -fuse-ld=lld.
|
||||
cflags.append("-fuse-ld=lld")
|
||||
Index: firefox-115.0/build/pgo/profileserver.py
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/build/pgo/profileserver.py
|
||||
+++ firefox-115.0/build/pgo/profileserver.py
|
||||
@@ -11,7 +11,7 @@ import subprocess
|
||||
import sys
|
||||
|
||||
import mozcrash
|
||||
-from mozbuild.base import BinaryNotFoundException, MozbuildObject
|
||||
+from mozbuild.base import BinaryNotFoundException, MozbuildObject, BuildEnvironmentNotFoundException
|
||||
from mozfile import TemporaryDirectory
|
||||
from mozhttpd import MozHttpd
|
||||
from mozprofile import FirefoxProfile, Preferences
|
||||
@@ -87,9 +87,22 @@ if __name__ == "__main__":
|
||||
locations = ServerLocations()
|
||||
locations.add_host(host="127.0.0.1", port=PORT, options="primary,privileged")
|
||||
|
||||
- old_profraw_files = glob.glob("*.profraw")
|
||||
- for f in old_profraw_files:
|
||||
- os.remove(f)
|
||||
+ using_gcc = False
|
||||
+ try:
|
||||
+ if build.config_environment.substs.get('CC_TYPE') == 'gcc':
|
||||
+ using_gcc = True
|
||||
+ except BuildEnvironmentNotFoundException:
|
||||
+ pass
|
||||
+
|
||||
+ if using_gcc:
|
||||
+ for dirpath, _, filenames in os.walk('.'):
|
||||
+ for f in filenames:
|
||||
+ if f.endswith('.gcda'):
|
||||
+ os.remove(os.path.join(dirpath, f))
|
||||
+ else:
|
||||
+ old_profraw_files = glob.glob('*.profraw')
|
||||
+ for f in old_profraw_files:
|
||||
+ os.remove(f)
|
||||
|
||||
with TemporaryDirectory() as profilePath:
|
||||
# TODO: refactor this into mozprofile
|
||||
@@ -213,6 +226,10 @@ if __name__ == "__main__":
|
||||
print("Firefox exited successfully, but produced a crashreport")
|
||||
sys.exit(1)
|
||||
|
||||
+ print('Copying profile data....')
|
||||
+ os.system('pwd');
|
||||
+ os.system('tar cf profdata.tar.gz `find . -name "*.gcda"`; cd ..; tar xf instrumented/profdata.tar.gz;');
|
||||
+
|
||||
llvm_profdata = env.get("LLVM_PROFDATA")
|
||||
if llvm_profdata:
|
||||
profraw_files = glob.glob("*.profraw")
|
||||
Index: firefox-115.0/build/unix/mozconfig.unix
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/build/unix/mozconfig.unix
|
||||
+++ firefox-115.0/build/unix/mozconfig.unix
|
||||
@@ -4,6 +4,15 @@ if [ -n "$FORCE_GCC" ]; then
|
||||
CC="$MOZ_FETCHES_DIR/gcc/bin/gcc"
|
||||
CXX="$MOZ_FETCHES_DIR/gcc/bin/g++"
|
||||
|
||||
+ if [ -n "$MOZ_PGO" ]; then
|
||||
+ if [ -z "$USE_ARTIFACT" ]; then
|
||||
+ ac_add_options --enable-lto
|
||||
+ fi
|
||||
+ export AR="$topsrcdir/gcc/bin/gcc-ar"
|
||||
+ export NM="$topsrcdir/gcc/bin/gcc-nm"
|
||||
+ export RANLIB="$topsrcdir/gcc/bin/gcc-ranlib"
|
||||
+ fi
|
||||
+
|
||||
# We want to make sure we use binutils and other binaries in the tooltool
|
||||
# package.
|
||||
mk_add_options "export PATH=$MOZ_FETCHES_DIR/gcc/bin:$MOZ_FETCHES_DIR/binutils/bin:$PATH"
|
||||
Index: firefox-115.0/extensions/spellcheck/src/moz.build
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/extensions/spellcheck/src/moz.build
|
||||
+++ firefox-115.0/extensions/spellcheck/src/moz.build
|
||||
@@ -28,3 +28,5 @@ EXPORTS.mozilla += [
|
||||
"mozInlineSpellChecker.h",
|
||||
"mozSpellChecker.h",
|
||||
]
|
||||
+
|
||||
+CXXFLAGS += ['-fno-devirtualize']
|
||||
Index: firefox-115.0/toolkit/components/terminator/nsTerminator.cpp
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/toolkit/components/terminator/nsTerminator.cpp
|
||||
+++ firefox-115.0/toolkit/components/terminator/nsTerminator.cpp
|
||||
@@ -460,6 +460,11 @@ void nsTerminator::StartWatchdog() {
|
||||
}
|
||||
#endif
|
||||
|
||||
+ // Disable watchdog for PGO train builds - writting profile information at
|
||||
+ // exit may take time and it is better to make build hang rather than
|
||||
+ // silently produce poorly performing binary.
|
||||
+ crashAfterMS = INT32_MAX;
|
||||
+
|
||||
UniquePtr<Options> options(new Options());
|
||||
// crashAfterTicks is guaranteed to be > 0 as
|
||||
// crashAfterMS >= ADDITIONAL_WAIT_BEFORE_CRASH_MS >> HEARTBEAT_INTERVAL_MS
|
15
mozilla-reduce-rust-debuginfo.patch
Normal file
15
mozilla-reduce-rust-debuginfo.patch
Normal file
@ -0,0 +1,15 @@
|
||||
# HG changeset patch
|
||||
# Parent 135d931b3e674a670473f69f8c079e741ac63643
|
||||
|
||||
diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure
|
||||
--- a/build/moz.configure/rust.configure
|
||||
+++ b/build/moz.configure/rust.configure
|
||||
@@ -668,7 +668,7 @@ def rust_compile_flags(
|
||||
debug_assertions = False
|
||||
|
||||
if debug_symbols:
|
||||
- debug_info = "2"
|
||||
+ debug_info = '1'
|
||||
|
||||
opts = []
|
||||
|
16
mozilla-rust-disable-future-incompat.patch
Normal file
16
mozilla-rust-disable-future-incompat.patch
Normal file
@ -0,0 +1,16 @@
|
||||
# HG changeset patch
|
||||
# Parent 83a5e219b271976ee9dfa46b74ecc1c1c6d49f94
|
||||
|
||||
Index: firefox-128.0/Cargo.toml
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/Cargo.toml
|
||||
+++ firefox-128.0/Cargo.toml
|
||||
@@ -236,3 +236,8 @@ mio_0_8 = { package = "mio", git = "http
|
||||
# Patch `gpu-descriptor` 0.3.0 to remove unnecessary `allocator-api2` dep.:
|
||||
# Still waiting for the now-merged <https://github.com/zakarumych/gpu-descriptor/pull/40> to be released.
|
||||
gpu-descriptor = { git = "https://github.com/zakarumych/gpu-descriptor", rev = "7b71a4e47c81903ad75e2c53deb5ab1310f6ff4d" }
|
||||
+
|
||||
+# Package code v0.1.4 uses code "that will be rejected by a future version of Rust"
|
||||
+# Shut up such messages for now to make the build succeed
|
||||
+[future-incompat-report]
|
||||
+frequency = "never"
|
33
mozilla-s390-context.patch
Normal file
33
mozilla-s390-context.patch
Normal file
@ -0,0 +1,33 @@
|
||||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1558452408 -7200
|
||||
# Tue May 21 17:26:48 2019 +0200
|
||||
# Node ID 602e92722e765a3c238d3b96b26c0c8063b5eeb4
|
||||
# Parent 783ceb006fcdabe5ad23bd561362e721c7ed5f8c
|
||||
[mq]: mozilla-s390-context.patch
|
||||
|
||||
diff --git a/js/src/wasm/WasmSignalHandlers.cpp b/js/src/wasm/WasmSignalHandlers.cpp
|
||||
--- a/js/src/wasm/WasmSignalHandlers.cpp
|
||||
+++ b/js/src/wasm/WasmSignalHandlers.cpp
|
||||
@@ -174,6 +174,10 @@ using mozilla::DebugOnly;
|
||||
# define FP_sig(p) ((p)->uc_mcontext.gregs[REG_FPRS])
|
||||
# define SP_sig(p) ((p)->uc_mcontext.gregs[REG_SP])
|
||||
# endif
|
||||
+# if defined(__linux__) && defined(__s390x__)
|
||||
+# define GR_sig(p, x) ((p)->uc_mcontext.gregs[x])
|
||||
+# define PSWa_sig(p) ((p)->uc_mcontext.psw.addr)
|
||||
+# endif
|
||||
# elif defined(__NetBSD__)
|
||||
# define EIP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EIP])
|
||||
# define EBP_sig(p) ((p)->uc_mcontext.__gregs[_REG_EBP])
|
||||
@@ -416,6 +420,10 @@ struct macos_aarch64_context {
|
||||
# define FP_sig(p) RFP_sig(p)
|
||||
# define SP_sig(p) R03_sig(p)
|
||||
# define LR_sig(p) RRA_sig(p)
|
||||
+# elif defined(__s390x__)
|
||||
+# define PC_sig(p) PSWa_sig(p)
|
||||
+# define SP_sig(p) GR_sig(p, 15)
|
||||
+# define FP_sig(p) GR_sig(p, 11)
|
||||
# elif defined(__riscv)
|
||||
# define PC_sig(p) RPC_sig(p)
|
||||
# define FP_sig(p) RFP_sig(p)
|
1005
mozilla-silence-no-return-type.patch
Normal file
1005
mozilla-silence-no-return-type.patch
Normal file
File diff suppressed because it is too large
Load Diff
405
mozilla.keyring
Normal file
405
mozilla.keyring
Normal file
@ -0,0 +1,405 @@
|
||||
This file contains the public PGP key that is used to sign builds and
|
||||
artifacts of Mozilla projects (such as Firefox and Thunderbird).
|
||||
|
||||
Please realize that this file itself or the public key servers may be
|
||||
compromised. You are encouraged to validate the authenticity of these keys in
|
||||
an out-of-band manner.
|
||||
|
||||
Mozilla users: pgp < KEY
|
||||
|
||||
pub rsa4096 2015-07-17 [SC]
|
||||
14F26682D0916CDD81E37B6D61B7B526D98F0353
|
||||
uid [ full ] Mozilla Software Releases <release@mozilla.com>
|
||||
sub rsa4096 2015-07-17 [S] [expired: 2017-07-16]
|
||||
sub rsa4096 2017-06-22 [S] [expired: 2019-06-22]
|
||||
sub rsa4096 2019-05-30 [S] [expired: 2021-05-29]
|
||||
sub rsa4096 2021-05-17 [S] [expired: 2023-05-17]
|
||||
sub rsa4096 2023-05-05 [S] [expires: 2025-05-04]
|
||||
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
fxyRMB5BEeLY0+qVPyvOxpXEGnlSHYmdIS4=
|
||||
=ZEQW
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
210
mozilla.sh.in
Normal file
210
mozilla.sh.in
Normal file
@ -0,0 +1,210 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org Code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 1998
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Wolfgang Rosenauer <wolfgang.rosenauer@suse.de>
|
||||
# <wr@rosenauer.org>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
##
|
||||
## Usage:
|
||||
##
|
||||
## $ mozilla [args]
|
||||
##
|
||||
## This script is meant to run a mozilla program from the mozilla
|
||||
## rpm installation.
|
||||
##
|
||||
## The script will setup all the environment voodoo needed to make
|
||||
## mozilla work.
|
||||
|
||||
cmdname=`basename $0`
|
||||
|
||||
##
|
||||
## Variables
|
||||
##
|
||||
MOZ_DIST_BIN="%PREFIX"
|
||||
MOZ_DIST_LIB="%PROGDIR"
|
||||
MOZ_APPNAME="%APPNAME"
|
||||
MOZ_PROGRAM="$MOZ_DIST_LIB/$MOZ_APPNAME"
|
||||
MOZ_LANGPACKS_DIR="$MOZ_DIST_LIB/langpacks"
|
||||
MOZ_EXTENSIONS_PROFILE_DIR="$HOME/.mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}"
|
||||
|
||||
MOZ_APP_LAUNCHER="$MOZ_DIST_LIB/$MOZ_APPNAME.sh"
|
||||
if [ "$0" = "$MOZ_APP_LAUNCHER" ]; then
|
||||
[ -h "/usr/bin/$MOZ_APPNAME" ] && \
|
||||
_link=$(readlink -f "/usr/bin/$MOZ_APPNAME")
|
||||
if [ "$_link" = "$MOZ_APP_LAUNCHER" ]; then
|
||||
export MOZ_APP_LAUNCHER="/usr/bin/$MOZ_APPNAME"
|
||||
fi
|
||||
else
|
||||
export MOZ_APP_LAUNCHER="/usr/bin/$MOZ_APPNAME"
|
||||
fi
|
||||
|
||||
MOZILLA_FIVE_HOME="$MOZ_DIST_LIB"
|
||||
export MOZILLA_FIVE_HOME
|
||||
LD_LIBRARY_PATH=$MOZ_DIST_LIB${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||
export LD_LIBRARY_PATH
|
||||
|
||||
# needed for SUN Java under Xorg >= 7.2
|
||||
export LIBXCB_ALLOW_SLOPPY_LOCK=1
|
||||
|
||||
# disable Gnome crash dialog (doesn't make sense anyway)
|
||||
export GNOME_DISABLE_CRASH_DIALOG=1
|
||||
|
||||
# Wayland
|
||||
# Only supported on newer systems
|
||||
WAYLAND_SUPPORTED=%WAYLAND_SUPPORTED
|
||||
|
||||
# $XDG_SESSION_TYPE should contain either x11 or wayland
|
||||
if [ $WAYLAND_SUPPORTED -eq 1 ] && [ "$XDG_SESSION_TYPE" = "wayland" ] && [ -z "$MOZ_ENABLE_WAYLAND" ]; then
|
||||
export MOZ_ENABLE_WAYLAND=1
|
||||
fi
|
||||
|
||||
##
|
||||
## Use D-Bus remote exclusively when there's Wayland display.
|
||||
##
|
||||
if [ "$WAYLAND_DISPLAY" ]; then
|
||||
export MOZ_DBUS_REMOTE=1
|
||||
fi
|
||||
|
||||
# xinput2 (boo#1173320)
|
||||
. /etc/os-release
|
||||
if [ "$ID" = "opensuse-tumbleweed" ]; then
|
||||
export MOZ_USE_XINPUT2=1
|
||||
fi
|
||||
|
||||
##
|
||||
## To disable the use of Firefox localization handling for
|
||||
## the home profile, set MOZ_DISABLE_LANGPACKS=1
|
||||
## in your environment before launching Firefox.
|
||||
## currently disabled by default since langpacks
|
||||
## are shipped as app sideloading addons
|
||||
##
|
||||
#
|
||||
MOZ_DISABLE_LANGPACKS=1
|
||||
export MOZ_DISABLE_LANGPACKS
|
||||
#
|
||||
|
||||
##
|
||||
## Automatically installed langpacks are tracked by .suse-langpack-install
|
||||
## config file.
|
||||
##
|
||||
SUSE_LANGPACK_CONFIG="$MOZ_EXTENSIONS_PROFILE_DIR/.suse-langpack-install"
|
||||
|
||||
# MOZ_DISABLE_LANGPACKS disables language packs completely
|
||||
MOZILLA_DOWN=0
|
||||
if ! [ $MOZ_DISABLE_LANGPACKS ] || [ $MOZ_DISABLE_LANGPACKS -eq 0 ]; then
|
||||
if [ -x $MOZ_PROGRAM ]; then
|
||||
# Is firefox running?
|
||||
/bin/pidof %APPNAME% > /dev/null 2>&1
|
||||
MOZILLA_DOWN=$?
|
||||
fi
|
||||
fi
|
||||
|
||||
# Modify language pack configuration only when firefox is not running
|
||||
# and language packs are not disabled
|
||||
if [ $MOZILLA_DOWN -ne 0 ]; then
|
||||
# Clear already installed langpacks
|
||||
mkdir -p $MOZ_EXTENSIONS_PROFILE_DIR
|
||||
if [ -f $SUSE_LANGPACK_CONFIG ]; then
|
||||
rm `cat $SUSE_LANGPACK_CONFIG` > /dev/null 2>&1
|
||||
rm $SUSE_LANGPACK_CONFIG > /dev/null 2>&1
|
||||
# remove all empty langpacks dirs while they block installation of langpacks
|
||||
rmdir $MOZ_EXTENSIONS_PROFILE_DIR/langpack* > /dev/null 2>&1
|
||||
fi
|
||||
# Get locale from system
|
||||
CURRENT_LOCALE=$LC_ALL
|
||||
CURRENT_LOCALE=${CURRENT_LOCALE:-$LC_MESSAGES}
|
||||
CURRENT_LOCALE=${CURRENT_LOCALE:-$LANG}
|
||||
# Try with a local variant first, then without a local variant
|
||||
SHORTMOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*||g" | sed "s|\..*||g"`
|
||||
MOZLOCALE=`echo $CURRENT_LOCALE | sed "s|_\([^.]*\).*|-\1|g" | sed "s|\..*||g"`
|
||||
create_langpack_link() {
|
||||
local language=$*
|
||||
local langpack=langpack-${language}@firefox.mozilla.org.xpi
|
||||
if [ -f $MOZ_LANGPACKS_DIR/$langpack ]; then
|
||||
rm -rf $MOZ_EXTENSIONS_PROFILE_DIR/$langpack
|
||||
# If the target file is a symlink (the fallback langpack),
|
||||
# install the original file instead of the fallback one
|
||||
if [ -h $MOZ_LANGPACKS_DIR/$langpack ]; then
|
||||
langpack=`readlink $MOZ_LANGPACKS_DIR/$langpack`
|
||||
fi
|
||||
ln -s $MOZ_LANGPACKS_DIR/$langpack \
|
||||
$MOZ_EXTENSIONS_PROFILE_DIR/$langpack
|
||||
echo $MOZ_EXTENSIONS_PROFILE_DIR/$langpack > $SUSE_LANGPACK_CONFIG
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
create_langpack_link $MOZLOCALE || create_langpack_link $SHORTMOZLOCALE || true
|
||||
fi
|
||||
|
||||
|
||||
moz_debug=0
|
||||
script_args=""
|
||||
pass_arg_count=0
|
||||
while [ $# -gt $pass_arg_count ]
|
||||
do
|
||||
case "$1" in
|
||||
-d | --debugger)
|
||||
moz_debugger=$2;
|
||||
if [ "${moz_debugger}" != "" ]; then
|
||||
shift 2
|
||||
moz_debug=1
|
||||
else
|
||||
echo "-d requires an argument"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# Move the unrecognized argument to the end of the list.
|
||||
arg="$1"
|
||||
shift
|
||||
set -- "$@" "$arg"
|
||||
pass_arg_count=`expr $pass_arg_count + 1`
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ $moz_debug -eq 1 ]; then
|
||||
tmpfile=`mktemp /tmp/mozargs.XXXXXX` || { echo "Cannot create temporary file" >&2; exit 1; }
|
||||
trap " [ -f \"$tmpfile\" ] && /bin/rm -f -- \"$tmpfile\"" 0 1 2 3 13 15
|
||||
echo "set args ${1+"$@"}" > $tmpfile
|
||||
echo "run" >> $tmpfile
|
||||
echo "$moz_debugger $MOZ_PROGRAM -x $tmpfile"
|
||||
exec $moz_debugger "$MOZ_PROGRAM" -x $tmpfile
|
||||
else
|
||||
exec $MOZ_PROGRAM "$@"
|
||||
fi
|
34
one_swizzle_to_rule_them_all.patch
Normal file
34
one_swizzle_to_rule_them_all.patch
Normal file
@ -0,0 +1,34 @@
|
||||
# HG changeset patch
|
||||
# User M. Sirringhaus <msirringhaus@suse.de>
|
||||
# Date 1645518286 -3600
|
||||
# Tue Feb 22 09:24:46 2022 +0100
|
||||
# Node ID 494640792b4677f6462e95b90a54a4e22aeb738b
|
||||
# Parent 81832d035e101471dcf52dd91de287268add7a91
|
||||
imported patch one_swizzle_to_rule_them_all.patch
|
||||
|
||||
Index: firefox-115.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp
|
||||
===================================================================
|
||||
--- firefox-115.0.orig/gfx/webrender_bindings/RenderCompositorSWGL.cpp
|
||||
+++ firefox-115.0/gfx/webrender_bindings/RenderCompositorSWGL.cpp
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "RenderCompositorSWGL.h"
|
||||
|
||||
#include "mozilla/gfx/Logging.h"
|
||||
+#include "mozilla/gfx/Swizzle.h"
|
||||
#include "mozilla/widget/CompositorWidget.h"
|
||||
|
||||
#ifdef MOZ_WIDGET_GTK
|
||||
@@ -242,6 +243,13 @@ void RenderCompositorSWGL::CommitMappedB
|
||||
}
|
||||
mDT->Flush();
|
||||
|
||||
+#if MOZ_BIG_ENDIAN()
|
||||
+ // One swizzle to rule them all.
|
||||
+ gfx::SwizzleData(mMappedData, mMappedStride, gfx::SurfaceFormat::B8G8R8A8,
|
||||
+ mMappedData, mMappedStride, gfx::SurfaceFormat::A8R8G8B8,
|
||||
+ mDT->GetSize());
|
||||
+#endif
|
||||
+
|
||||
// Done with the DT. Hand it back to the widget and clear out any trace of it.
|
||||
mWidget->EndRemoteDrawingInRegion(mDT, mDirtyRegion);
|
||||
mDirtyRegion.SetEmpty();
|
1
spellcheck.js
Normal file
1
spellcheck.js
Normal file
@ -0,0 +1 @@
|
||||
pref("spellchecker.dictionary_path", "/usr/share/myspell");
|
29
svg-rendering.patch
Normal file
29
svg-rendering.patch
Normal file
@ -0,0 +1,29 @@
|
||||
# HG changeset patch
|
||||
# User M. Sirringhaus <msirringhaus@suse.de>
|
||||
# Date 1645518286 -3600
|
||||
# Tue Feb 22 09:24:46 2022 +0100
|
||||
# Node ID 81832d035e101471dcf52dd91de287268add7a91
|
||||
# Parent 66f7ce16eb4965108687280e5443edd610631efb
|
||||
imported patch svg-rendering.patch
|
||||
|
||||
diff --git a/image/imgFrame.cpp b/image/imgFrame.cpp
|
||||
--- a/image/imgFrame.cpp
|
||||
+++ b/image/imgFrame.cpp
|
||||
@@ -372,6 +372,17 @@ nsresult imgFrame::InitWithDrawable(gfxD
|
||||
return NS_ERROR_OUT_OF_MEMORY;
|
||||
}
|
||||
|
||||
+#if MOZ_BIG_ENDIAN()
|
||||
+ if (aBackend == gfx::BackendType::SKIA && canUseDataSurface) {
|
||||
+ // SKIA is lying about what format it returns on big endian
|
||||
+ for (int ii=0; ii < mRawSurface->GetSize().Height()*mRawSurface->Stride() / 4; ++ii) {
|
||||
+ uint32_t *vals = (uint32_t*)(mRawSurface->GetData());
|
||||
+ uint32_t val = ((vals[ii] << 8) & 0xFF00FF00 ) | ((vals[ii] >> 8) & 0xFF00FF );
|
||||
+ vals[ii] = (val << 16) | (val >> 16);
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
if (!canUseDataSurface) {
|
||||
// We used an offscreen surface, which is an "optimized" surface from
|
||||
// imgFrame's perspective.
|
10
tar_stamps
Normal file
10
tar_stamps
Normal file
@ -0,0 +1,10 @@
|
||||
PRODUCT="firefox"
|
||||
CHANNEL="release"
|
||||
VERSION="129.0.1"
|
||||
VERSION_SUFFIX=""
|
||||
PREV_VERSION="129.0"
|
||||
PREV_VERSION_SUFFIX=""
|
||||
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
|
||||
RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-release"
|
||||
RELEASE_TAG="9a56b747aa5f53cb8784337f8c5d6a056d11c5e7"
|
||||
RELEASE_TIMESTAMP="20240812083845"
|
Loading…
Reference in New Issue
Block a user