- Firefox Extended Support Release 140.1.0 ESR
* Fixed: Various security fixes. - Mozilla Firefox ESR 140.1.0 https://www.mozilla.org/security/advisories/mfsa2025-59 MFSA 2025-59 (boo#1246664) * CVE-2025-8027 (bmo#1968423) JavaScript engine only wrote partial return value to stack * CVE-2025-8028 (bmo#1971581) Large branch table could lead to truncated instruction * CVE-2025-8029 (bmo#1928021) javascript: URLs executed on object and embed tags * CVE-2025-8036 (bmo#1960834) DNS rebinding circumvents CORS * CVE-2025-8037 (bmo#1964767) Nameless cookies shadow secure cookies * CVE-2025-8030 (bmo#1968414) Potential user-assisted code execution in “Copy as cURL” command * CVE-2025-8031 (bmo#1971719) Incorrect URL stripping in CSP reports * CVE-2025-8032 (bmo#1974407) XSLT documents could bypass CSP * CVE-2025-8038 (bmo#1808979) CSP frame-src was not correctly enforced for paths * CVE-2025-8039 (bmo#1970997) Search terms persisted in URL bar * CVE-2025-8033 (bmo#1973990) Incorrect JavaScript state machine for generators * CVE-2025-8034 (bmo#1970422, bmo#1970422, bmo#1970422, bmo#1970422) Memory safety bugs fixed in Firefox ESR 115.26, Firefox ESR 128.13, Thunderbird ESR 128.13, Firefox ESR 140.1, Thunderbird ESR 140.1, Firefox 141 and Thunderbird 141 * CVE-2025-8040 (bmo#1975058, bmo#1975058, bmo#1975998, bmo#1975998) Memory safety bugs fixed in Firefox ESR 140.1, Thunderbird ESR 140.1, Firefox 141 and Thunderbird 141 * CVE-2025-8035 (bmo#1975961, bmo#1975961, bmo#1975961) Memory safety bugs fixed in Firefox ESR 128.13, Thunderbird ESR 128.13, Firefox ESR 140.1, Thunderbird ESR 140.1, Firefox 141 and Thunderbird 141 OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/firefox-esr?expand=0&rev=63
This commit is contained in:
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")
|
12078
MozillaFirefox.changes.txt
Normal file
12078
MozillaFirefox.changes.txt
Normal file
File diff suppressed because it is too large
Load Diff
293
MozillaFirefox.desktop
Normal file
293
MozillaFirefox.desktop
Normal file
@@ -0,0 +1,293 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Name=Firefox ESR
|
||||
GenericName=Web Browser
|
||||
GenericName[ar]=متصفّح وِب
|
||||
GenericName[be]=Вэб-браўзер
|
||||
GenericName[ca]=Navegador web
|
||||
GenericName[cs]=Webový prohlížeč
|
||||
GenericName[da]=Webbrowser
|
||||
GenericName[de]=Web-Browser
|
||||
GenericName[el]=Περιηγητής ιστοσελίδων
|
||||
GenericName[es]=Navegador web
|
||||
GenericName[et]=Veebisirvik
|
||||
GenericName[fa]=مرورگر اینترنتی
|
||||
GenericName[fi]=Verkkoselain
|
||||
GenericName[fr]=Navigateur Web
|
||||
GenericName[gl]=Navegador Web
|
||||
GenericName[hu]=Webböngésző
|
||||
GenericName[id]=Peramban Web
|
||||
GenericName[it]=Navigatore web
|
||||
GenericName[ja]=Web ブラウザ
|
||||
GenericName[ka]=ბრაუზერი
|
||||
GenericName[kab]=Sekker iminig n web
|
||||
GenericName[km]=កម្មវិធីរុករកបណ្ដាញ
|
||||
GenericName[ko]=웹 브라우저
|
||||
GenericName[lt]=Žiniatinklio naršyklė
|
||||
GenericName[nb]=Nettleser
|
||||
GenericName[nl]=Webbrowser
|
||||
GenericName[nn]=Nettlesar
|
||||
GenericName[no]=Nettleser
|
||||
GenericName[pl]=Przeglądarka internetowa
|
||||
GenericName[pt]=Navegador de internet
|
||||
GenericName[pt_BR]=Navegador Web
|
||||
GenericName[ro]=Navigator de web
|
||||
GenericName[ru]=Веб-браузер
|
||||
GenericName[sk]=Webový prehliadač
|
||||
GenericName[sv]=Webbläsare
|
||||
GenericName[tr]=Web Tarayıcı
|
||||
GenericName[uk]=Навігатор Тенет
|
||||
GenericName[wa]=Betchteu waibe
|
||||
GenericName[zh_CN]=网页浏览器
|
||||
GenericName[zh_TW]=網頁瀏覽器
|
||||
Comment=Browse the Web
|
||||
Comment[ca]=Navegueu per la xarxa
|
||||
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[gl]=Navegue pola web
|
||||
Comment[hu]=A világháló böngészése
|
||||
Comment[it]=Esplora il web
|
||||
Comment[ja]=Web を閲覧します
|
||||
Comment[ka]=იმუშავეთ ინტერნეტში
|
||||
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]=Prehľadávanie webu
|
||||
Comment[sv]=Surfa på webben
|
||||
Comment[tr]=Web'de gezinin
|
||||
Comment[uk]=Перегляд веб-сторінок
|
||||
TryExec=firefox-esr
|
||||
Exec=firefox-esr %u
|
||||
Icon=firefox-esr
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
Categories=Network;WebBrowser;GTK;
|
||||
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]=নতুন উইন্ডো (N)
|
||||
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[eo]=Nova fenestro
|
||||
Name[es]=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]=Nij finster
|
||||
Name[ga]=Fuinneog Nua
|
||||
Name[gd]=Uinneag ùr
|
||||
Name[gl]=Nova xanela
|
||||
Name[gn]=Ovetã pyahu
|
||||
Name[gu]=નવી વિન્ડો
|
||||
Name[he]=חלון חדש
|
||||
Name[hi]=नया विंडो
|
||||
Name[hr]=Novi prozor
|
||||
Name[hsb]=Nowe wokno
|
||||
Name[hu]=Új ablak
|
||||
Name[hy]=Նոր Պատուհան
|
||||
Name[id]=Jendela Baru
|
||||
Name[is]=Nýr gluggi
|
||||
Name[it]=Nuova finestra
|
||||
Name[ja]=新しいウィンドウ
|
||||
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]=Nytt Vindu
|
||||
Name[ne]=नयाँ सञ्झ्याल
|
||||
Name[nl]=Nieuw venster
|
||||
Name[nn]=Nytt vindauge
|
||||
Name[or]=ନୂତନ ୱିଣ୍ଡୋ
|
||||
Name[pl]=Nowe okno
|
||||
Name[pt]=Nova janela
|
||||
Name[pt_BR]=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]=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=firefox-esr --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]=নতুন ব্যক্তিগত উইন্ডো
|
||||
Name[br]=Prenestr merdeiñ prevez nevez
|
||||
Name[brx]=गोदान प्राइभेट उइन्ड'
|
||||
Name[bs]=Novi privatni prozor
|
||||
Name[ca]=Finestra de navegació 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[eo]=Nova privata fenestro
|
||||
Name[es]=Nueva Ventana de Navegación 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]=Nij priveefinster
|
||||
Name[ga]=Fuinneog Nua Phríobháideach
|
||||
Name[gd]=Uinneag phrìobhaideach ùr
|
||||
Name[gl]=Nova xanela de navegación privada
|
||||
Name[gn]=Ovetã ñemi pyahu
|
||||
Name[gu]=નવી ખાનગી વિન્ડો
|
||||
Name[he]=חלון פרטי חדש
|
||||
Name[hi]=नयी निजी विंडो
|
||||
Name[hr]=Novi privatni prozor
|
||||
Name[hsb]=Nowe priwatne wokno
|
||||
Name[hu]=Új privát ablak
|
||||
Name[hy]=Սկսել Գաղտնի դիտարկում
|
||||
Name[id]=Jendela Mode Pribadi Baru
|
||||
Name[is]=Nýr huliðsgluggi
|
||||
Name[it]=Nuova finestra anonima
|
||||
Name[ja]=新しいプライベートウィンドウ
|
||||
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[nb]=Nytt privat nettlesingsvindu
|
||||
Name[ne]=नयाँ निजी सञ्झ्याल
|
||||
Name[nl]=Nieuw privévenster
|
||||
Name[nn]=Nytt privat vindauge
|
||||
Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
|
||||
Name[pl]=Nowe okno prywatne
|
||||
Name[pt]=Nova janela privada
|
||||
Name[pt_BR]=Nova janela privativa
|
||||
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]=Nytt privat surfningsfö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=firefox-esr --private-window %u
|
||||
|
||||
[Desktop Action ProfileManager]
|
||||
Name=Profile Manager
|
||||
Name[ca]=Gestor de perfils
|
||||
Name[cs]=Správa profilů
|
||||
Name[de]=Profilmanager
|
||||
Name[es]=Gestor de Perfiles
|
||||
Name[fr]=Gestionnaire de profil
|
||||
Name[gl]=Xestor de perfís
|
||||
Name[ja]=プロファイルマネージャ
|
||||
Name[ka]=პროფილების მმართველი
|
||||
Name[nb]=Profilbehandler
|
||||
Name[ru]=Менеджер профилей
|
||||
Name[sk]=Správca profilov
|
||||
Name[sv]=Profilhanterare
|
||||
Name[tr]=Profil Yöneticisi
|
||||
Name[uk]=Менеджер профілів
|
||||
Exec=firefox-esr --ProfileManager
|
27
MozillaFirefox.desktop.in.in
Normal file
27
MozillaFirefox.desktop.in.in
Normal file
@@ -0,0 +1,27 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
_Name=%NAME
|
||||
_GenericName=Web Browser
|
||||
_Comment=Browse the Web
|
||||
TryExec=%EXEC
|
||||
Exec=%EXEC %u
|
||||
Icon=%ICON
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
Categories=Network;WebBrowser;GTK;
|
||||
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
|
||||
Exec=%EXEC --new-window %u
|
||||
|
||||
[Desktop Action PrivateBrowsing]
|
||||
_Name=New Private Browsing Window
|
||||
Exec=%EXEC --private-window %u
|
||||
|
||||
[Desktop Action ProfileManager]
|
||||
_Name=Profile Manager
|
||||
Exec=%EXEC --ProfileManager
|
61
_constraints
Normal file
61
_constraints
Normal file
@@ -0,0 +1,61 @@
|
||||
<?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>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<physicalmemory>
|
||||
<size unit="G">12</size>
|
||||
</physicalmemory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>s390x</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<physicalmemory>
|
||||
<size unit="G">15</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.10.0esr.source.tar.xz
Normal file
3
firefox-128.10.0esr.source.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2ed83e26e41a8b3e2c7c0d13448a84dbb9b7ed65ed46bc162d629b0c6b071caf
|
||||
size 556644356
|
16
firefox-128.10.0esr.source.tar.xz.asc
Normal file
16
firefox-128.10.0esr.source.tar.xz.asc
Normal file
@@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmgGmOcACgkQ4207E/PZ
|
||||
MnS31xAArb9xta0NzRHPYBv5Vsibc4w2ESwkOsrVf4atwTEeHpozX517+Dkcb77v
|
||||
AvuDg5RqT1WReZsecEisifA5Mj4qiNcUtGBKk4LBhbSIXNgrN7r4UXpBcerBWupj
|
||||
ZMpkDcf6o6Iqrz5sRELvd+mJB17NnWBMEtpxEk4ECyfwX7q3+z+bBjcBtP8uTe74
|
||||
Nlv2o4s51QOv5Z3u79ggkn1R9cmTnjZCf+cMXiuFfJRuHf+EFotbS4YGmvKi0Zv7
|
||||
BobEuT7M1sxkdTP06prBFm9iFiNL4xqU5wU2DwztkPK6oEKQ69fNsEQ0vqRqupDN
|
||||
+dUFlZEnp5yJKyl4QnKTbTmH8oIeKIwT1WX1JGTPMa6lonVy2lM/Wv2WvnTv8Nrr
|
||||
AZoqxZYtzaT4bkRaFsZhFIZaHUNBx5m6hAtWcQN3qHiQt375nVolN68dfsquthe0
|
||||
c9zu1VmYW4KpS9duasETGPl7XB4f8SKCdyQOz4MBF0tlxVUPdfznOp0g2BndVl6e
|
||||
hJoUFg8J7mJxhlficD0H/BZ2nuuRD09u8aLCkvqAmJ0HgL2pPrpgk0OzL+LGkrh1
|
||||
73ikxX+Xx/4EpKqYjJGvSDN3QczS0bT8deVxjuKkTgEKesJZagAkkYHyEJANagWC
|
||||
GNqg/J9/24oWZtS5ruNc5FMfm+aA4v6XLl+KqBqB8iylDSJ4xqM=
|
||||
=bEc8
|
||||
-----END PGP SIGNATURE-----
|
BIN
firefox-128.10.1esr.source.tar.xz
(Stored with Git LFS)
Normal file
BIN
firefox-128.10.1esr.source.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
16
firefox-128.10.1esr.source.tar.xz.asc
Normal file
16
firefox-128.10.1esr.source.tar.xz.asc
Normal file
@@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEECb7tY/NGKi3/qzuHXstkl8GiAlYFAmgo0KsACgkQXstkl8Gi
|
||||
AlZV8A/+Pi6s83W+oDe57BBHcacZgG4Hhd+dlnLdQQ03fex/WYoFXdxFZP60pGyO
|
||||
16NpGhT3tk0O2nEc8F53jLj7n++z1LLQnIv5jBR5CEFY1+yqEadpV1Ny8ZCPf+FQ
|
||||
VDbimt76Qkl0spaDcfzn3979oQK4CdB4D7gC7GNGNDGNWN+EkN+eVBKE2lsWLIss
|
||||
34Wax3TpI8KOeYlwU3n+sVgTbUsdWWlfVM28YqGADb5AdNcEKy1WXJGPcsqH+c2v
|
||||
g5Ge8Mx8qLlz8x9rVXeQmP6FpOAK128MVaqAcyPvif/F/gD5fM4DzxXXByGhRGlc
|
||||
CBTTFuO6LEvvDNzIB5aDelC17imOHxuLEY/OzxzNaWO7SqrWkIwsFRPOW2F1Vj3R
|
||||
6PEm6IWXEO1Cg6fqUCS/7iPTvU2pzE4k6pFTF/S4gmIw13q8alRbqZUTobWgHveJ
|
||||
eBaH6C3jJVy0pV3vDOfHhJ6AhYFA0J53NjMF0uJGnfCXrYRYGkHN8CE+ljHLY9Sm
|
||||
NlDo77nbkAoAnxqRbr1xdURn9eq0nvJHGnF7BnxbQ13rjQLNlFTwQVyT4mrXPokQ
|
||||
O0v1KntmxCop6NTEgHKFOZeIhwNXcBhAfNaeERgJaxg00BYVeuCmZgu+wbqaIbwE
|
||||
az+ddvQy6mLRoUFPomSumEBadl2jW+iFAiD/culcEbxFlUc7yq0=
|
||||
=UXQh
|
||||
-----END PGP SIGNATURE-----
|
3
firefox-128.11.0esr.source.tar.xz
Normal file
3
firefox-128.11.0esr.source.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f2ed90374a670fe5eccfd5bf36d2e311affd955d1f3507861c738b9aa7a1ffec
|
||||
size 558920388
|
16
firefox-128.11.0esr.source.tar.xz.asc
Normal file
16
firefox-128.11.0esr.source.tar.xz.asc
Normal file
@@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEECb7tY/NGKi3/qzuHXstkl8GiAlYFAmgrST0ACgkQXstkl8Gi
|
||||
AlZgKg//UzBkJZ4/X5siAu/Xq0DXJmSUH7ucXTOsaDlMs1rKTV8Nnulo+AP0KaHZ
|
||||
B6WyR5s3BCPDda6QfmolRFh4MXk92whL9mnA5Afn6b164P1wmrIx5dagWgHHjzNf
|
||||
VXidPM9SH/JfazkyTMxTpPPEHLwYEPSyD0LHTDp66TGSHtaoCO4cQxdfie42UAD3
|
||||
pDxeLXnhNBm2S6XF1QFiFzbDclL2hk7BcwwJyfdEjGuuwG1D99QlUKm6PWC944m/
|
||||
JZxE89EMPD6LeIp6F63vfz04BrQAvo8LHWLKWejxXpODyNH7PAUtxOOtuIT+c3Tn
|
||||
OcYaDNa6HoHF+LCUmM4dPLv9RdzqY1wUDlbQWyMfzuowAqDxktKozUYjvkbxqXoi
|
||||
gsz2t9OadkRyqTnalf94EK+t00y1oIJKZGZ1mz6yKsN8WwidnKYfOcT8XKHvYnCw
|
||||
iWi+FoUCmvTPu+GDFe2b/XVSM2YK7QBKWJ6dlQOnV48ndnzHncFZKXuiDd5oY/gd
|
||||
Sq4SiCDZ+dJeztNWy7vBsytHwDSJT+GRucI6SUp3Q122ShRx79x9WumzqKL3Hi4o
|
||||
Xg7lFseeEMMW1UayHGQcHYtrKAI5ZNoJ0wkWfShWKbukz6myqoAEPHU/rsqpX7pu
|
||||
o2zmUBPB5YSo4eTmNpX8et7zCyyZVkDsMU/7KWpa2b8x6crndig=
|
||||
=9pG0
|
||||
-----END PGP SIGNATURE-----
|
3
firefox-128.12.0esr.source.tar.xz
Normal file
3
firefox-128.12.0esr.source.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2bedeb86c6cb16cd3fce88d42ae4e245bafe2c6e9221ba8e445b8e02e89d973f
|
||||
size 560934320
|
16
firefox-128.12.0esr.source.tar.xz.asc
Normal file
16
firefox-128.12.0esr.source.tar.xz.asc
Normal file
@@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEECb7tY/NGKi3/qzuHXstkl8GiAlYFAmhQx9oACgkQXstkl8Gi
|
||||
AlaUTg//efx7RAxPvHscWBNQ1j26OdRejdyYfvlQgFueSGjIzetOTaxCerKi9TV6
|
||||
d5sVRQ4TSDI0swWvR3I6r6idu2tsH56VvQIpNCimeFHNi7qWBK1gRT2vaiBnPGPZ
|
||||
ywVon6wTLACBy+PGNuWnR1OxXhLF6dk2kdtOdFmCjkxMoJNJn0XBej3TBLgzOoGx
|
||||
eph16f5Rl5Vk6i5zSslSX05VeQoQtQ14R1RhTsFCKQO2vCZl490r9Ai+zUiabU40
|
||||
f6+bD8a/k3B8tTtGjU3189oeyTq2I3i8dshVMUDa4nAxIM43XPALDO0JVLrDV79q
|
||||
lqlSCX8LSM/xdbXNX37RkmURthb7G24CUgpvpGSy+pN5lRVRdojXrMs9I4PeH15R
|
||||
i1MdP9WZITPH2JGf20p/piw/NarButLLLFm9qDywEDQJxxBwvnrV0X3DzrPezS02
|
||||
3c+gBnM8iMR9woR2Blj4D3yeylQNCLh3CNNBrR8vCJVJiJFaoKaSaitAOPzcevrM
|
||||
/s+jKTSX/rJX1LMeCmow91+HcaXt/q87fUV9GrYlzwtEt7K/Kf9hsqQb5s7xV6iE
|
||||
HnXhnPyjtQ8ScanyiLDcjfE5TC9oGcngMwFqwQJ1UKFbPUAhqfSAXQLRt9qFKO+D
|
||||
BA93EURAbJF7gDSPpzuzRJPE6D/CP40T4VUbDB+b2AOrPfBoBCc=
|
||||
=00lx
|
||||
-----END PGP SIGNATURE-----
|
BIN
firefox-128.5.1esr.source.tar.xz
(Stored with Git LFS)
Normal file
BIN
firefox-128.5.1esr.source.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
16
firefox-128.5.1esr.source.tar.xz.asc
Normal file
16
firefox-128.5.1esr.source.tar.xz.asc
Normal file
@@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmdIvLkACgkQ4207E/PZ
|
||||
MnTntg//WWqNvoivQlg1oQTnYMfYp670oB3DkJvC0LnsGGLrPCqvlgQQxUBgFP2R
|
||||
fP7PIoZWUZR5yFBuX/81uYrIL2svM5BVIqEec5swXe32gmuK14R3jG0IIeh5d3hu
|
||||
oSVRL9/j+jQXe/sFIwqutCcr3WABhOPjEmCfjcDOO6SqKChe3XfTo7y0IEBq+pHI
|
||||
acuhw6RwfBZr8smMMWSPvolKJaGs/Nl2ZEAvgjPwfgTVwZt8+2lVg831kzxd/iXf
|
||||
1tsikXtslJsUVj7Yx1L8opnG51QBwIUxGGcoJUGFkY8ce9zM+z5OgEIwWqqFMjtA
|
||||
gfrvH0iy659q960Y/wF00EzH6vno3LFH4/CMQG04IURViyFqEGOgQi7lD2+Q4EMp
|
||||
CN08V5GOQ1n6CukSHx3CF8ujQavhdUrFlfB+pNsc6zJSsr/FTV2CD6HEgclh0bBc
|
||||
tMDCICV4A/eVQ8vG3fZIzV/vNv0qZsY+dvJ7RHE6qbTaL3VmrmF4iyrm+avPcZQG
|
||||
Aee3dKmD6uhzEKNNxvPkbvHVkwuffS9RX6Dc75vp3Sw2cgba8lW5URRk+NtpiWHQ
|
||||
pq7rRSPgCAtt+k0FtryGVeckGjvz/K11azGxOU0EoD/SM6hX0keoDrqalrxgDDtk
|
||||
FJmkIu6Po3W0EyexaFBYbFxxTg1MVCT+TbJdY0woxcBc2WttapQ=
|
||||
=MRPV
|
||||
-----END PGP SIGNATURE-----
|
BIN
firefox-128.6.0esr.source.tar.xz
(Stored with Git LFS)
Normal file
BIN
firefox-128.6.0esr.source.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
16
firefox-128.6.0esr.source.tar.xz.asc
Normal file
16
firefox-128.6.0esr.source.tar.xz.asc
Normal file
@@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmdi9D8ACgkQ4207E/PZ
|
||||
MnRZcw/+J/br+8V7X7gqH/BxM+MZjcJRmD4+9ZMjEza5zSnT+9XR8G2W7HcwQwqA
|
||||
9EPOXjhyGx0ff/KoUNMbvWtnqr6aFcIVBTCXD359CnywzBG3QmVSwAEDqsw2T+qS
|
||||
NfO1qBhOiUw/jdb37B3XHJ6pPMXDYeRkLuVvHaFRARJx/bP1ZK+FIOhx9Ou0Py3J
|
||||
7dijVR8oYSlz9jNRbwSu3qh7CZm1KiZ0FLVl3R95WokVHsZHBTY+i3eHaKrPPO0r
|
||||
xjgK0CIHs/7wWR9iF9rG8+Lpaj9lJBE5IlYUNbB+hu1OIGp43pt+7+1puapOTfJh
|
||||
W2n4oZ401cFrlM5PNY3GO2k5o9iPWsBCPd264cj4G3543iYbIVksYavN6TmxUVZz
|
||||
eVBkORYhAKpMGXhOQSSq7UEP3jv7ZdJfI09dKZf1iLemghCrqvslAIjOmrkzdrWr
|
||||
x/0oYIk+jY5mD9iPiojsOp/23uKNlfN5bY/CMRYNdfVcLt+AkMfbC7qE9H9GN6xe
|
||||
Vu6krMMfLDhl6MkYVhLVJOOyxzhGqMF7j6wxDRJIi+hiOyxm0oBu2iwQsB8457PI
|
||||
0VdiUSJwumOT4RPs1v4w0uxc8WaE0QkShfRnVXVFNbkVXQnxI3oUZy5HuoEp/3yK
|
||||
SKaEvdM2OFoTOU5rgOsZc6CCe2EZJmYCMoZf509r7179FbD11uk=
|
||||
=GBwt
|
||||
-----END PGP SIGNATURE-----
|
BIN
firefox-128.7.0esr.source.tar.xz
(Stored with Git LFS)
Normal file
BIN
firefox-128.7.0esr.source.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
16
firefox-128.7.0esr.source.tar.xz.asc
Normal file
16
firefox-128.7.0esr.source.tar.xz.asc
Normal file
@@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmeX4MoACgkQ4207E/PZ
|
||||
MnS/rhAAuazif0dLh/9TzPRjn/4MDTl0dl/i2d4RL5DUycr23GiBbvroTuUD2O1d
|
||||
SIPykEroSiPC6bEvpNDbF9hpPj/OQo/o82/3DIcXCWcmIjS7Yr8nDEg7keMyMCuO
|
||||
TsuHwmiq5zGf9btv7a7qzakDZsxEw553gCaQWZXDKxWGd6P1Z5jMeu9uXZM5DOtm
|
||||
fLlevdGfNuqi4TncOlDU4OGOex5uBAN3e4XoDonUXl6dGpb4OGnkdbjLqmpuYin7
|
||||
b9ZAI58o5hU7kzeOfk53BEPT9zkDOzdaNQcVJP3TkTrhZsRz81i0TKBH44CDTfJY
|
||||
aTdUzCBs37WEkK8lhQcSROqunYYYFgNCkfbdUAGmzxbGPdALOZC+i1B5qhAZAmBZ
|
||||
NesJDQY3jO8Y+XGJTwr1D1csyBVtSn7gS9rtsBcbiRwAEVZuhicWw52Crk456Hj1
|
||||
NJEo7Re+rpHS0ZhYbMhUwkPJU6E3OE+Mh/Pxlt8nB4KE/FWOTc5J+y97cH3n9zIF
|
||||
1qWkl7er5ATf/Qs15o+E0mVIcMn/LPelCHwA6cPJDwfR62DYi9QuZqiw6bsMZzQI
|
||||
UMwykdEJ4Nn5NxGwdJqlKQXDJ3XWqTec7jB0aULp6RkG8qv5CX2KVElzjPcAYZzG
|
||||
d3AI3crWlW9p5LZJIs93ZPjIbyGzw1HfzkZ0wUNB6t017j8CgQ8=
|
||||
=RqRi
|
||||
-----END PGP SIGNATURE-----
|
3
firefox-128.8.0esr.source.tar.xz
Normal file
3
firefox-128.8.0esr.source.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:201fcb12c285470f2b3cdf050f0fe7d96d5e0c5d352e86ef8957b595329a32bf
|
||||
size 563554116
|
16
firefox-128.8.0esr.source.tar.xz.asc
Normal file
16
firefox-128.8.0esr.source.tar.xz.asc
Normal file
@@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAme8pcoACgkQ4207E/PZ
|
||||
MnTtMQ//beMGIvdcRUy56JrxNiS3KArAL7jLF5e5I7JBIS069bjay+9ycw8438Hs
|
||||
iY4+XP9KX+Y8UeB+rfN0Kr+aG/DN0Aa5H8+NAauQ0KR7tbIvPMdevnPg2LeWGRlY
|
||||
LeuOUWSsWAsDkh392GLv5Qikna9MajjgUe52Qhc2fEQTEqdfjkMdfR7lR0Pb6ZXK
|
||||
e3777yon64wzcIQQ97u31dg7JnEQMUwHQjoRN+nrXCL/Bog2DHg4Yw9UklFIgQ5O
|
||||
FtK1UBEcY7pHDsdIccFOj00I4KPMzIEvy49nfL3zGUUkNuglvesJdIadfQQJPbYt
|
||||
JRC0efISOQPA3R8scfrlmUoCvu9pHLHWe9iu3r3UBrEx/xD2mgMqXYxB4eerQl/2
|
||||
PuySrxDMGZQc+IAc2abkKseJauOKZGkXBbqv3C8Sqy4szkz5lx5hX2sHpUw29omE
|
||||
r/Q1/gHzLlP5XbakwrQnyIxECwIkfinn5SLD4BKnTjU+Q7gBlPQ9/JVxBYK4Ss1N
|
||||
Mt76efcUSApWm/VBaKsBuVouSLv/wtruIOFbyOb0pJHNuw62eBMcirBWw/KGfvK9
|
||||
3nq4+is92XhOpcdoqScTgIPdIIr0NsCeFKvRRHG7GyeCbumIZzgpotNBUtMVypDH
|
||||
Dgbtp+k7UakjXYSVR8nBW3qPySWSw4MhuPVNBkpu/BfyxwGH2zs=
|
||||
=cqHI
|
||||
-----END PGP SIGNATURE-----
|
3
firefox-128.8.1esr.source.tar.xz
Normal file
3
firefox-128.8.1esr.source.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7f8ef5bff3d690bb1c1ea1fdeb9525b3bfad75066705b59469349493c9179b0a
|
||||
size 562110116
|
16
firefox-128.8.1esr.source.tar.xz.asc
Normal file
16
firefox-128.8.1esr.source.tar.xz.asc
Normal file
@@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmfkxpEACgkQ4207E/PZ
|
||||
MnTpoRAAnYZYIpl+JMlYQHbSZNOPHdpo/DHwKTT3N5V9oOkJTvKx8GiL47sm2MVq
|
||||
LRYxY4nvqRjfGNMgJrTW2JOtTG/9Xvvp0XWYXiyw9vwsdxG0k2R0LOue8W7gp5x9
|
||||
S4Fy5Xn1y8n6VWr2EKV9WmtA6Rd2Fd9+8nzR9d0KFiqSelxr1t8mvtm80ZkKyQb0
|
||||
+Iir8skquDUeAKMbqlpCtHgREUHJ2HuX3AdGPwoolFt913VBXJ40Ivg1E+kAUmBM
|
||||
pv2X7BbRTm09YaU7WSo1bgu1gNIHldUVriCPxDnpOf0qT9xoQrIJM/je0Utpt+c7
|
||||
1/ydTXHaNKq9Kqj8QYwXmpPfmC5gzrup2+l137toFkXo3QmTp45zie1hXlsotlf0
|
||||
yXWMjWndPKQahd5g60cDvn7GHwk2eMTU5r4wChANY09etHaUi1LTchrj2rcdmH2e
|
||||
9xorshO7yG8FALCN/ZqR4PoFsUvUbkAy/hEzIugK2GMLr4F00gAaAbpuixdu8I6u
|
||||
NuVlhNnWBFAUXZBohk/gISOrcQYDUE+DeOF41s7NjvAYkrAW7cuRDRV0mc2Jw7lU
|
||||
UDiFyyUEEOkk5sQIuWhN1PZZaTPMWJ1ZyBC/PW5MOr7owpWyjBTx3vGvbH8tZ4gz
|
||||
OCiZM+0Znu1iIOXHtnU+3tYScseT54rQA+NhSartVe5UuP67yp0=
|
||||
=6zcg
|
||||
-----END PGP SIGNATURE-----
|
BIN
firefox-128.9.0esr.source.tar.xz
(Stored with Git LFS)
Normal file
BIN
firefox-128.9.0esr.source.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
16
firefox-128.9.0esr.source.tar.xz.asc
Normal file
16
firefox-128.9.0esr.source.tar.xz.asc
Normal file
@@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmflY6AACgkQ4207E/PZ
|
||||
MnSQwQ//RflYutwyVX/nU+yf2q2GBhVxgHAnuDOZwOIG/WN/PMIcnuRcqlDVIBtV
|
||||
4YDpWtCVqrHsulCjMsDNfS2ONSjqm22Rnh1N2PAYND2X+w7/EfShSxlASGt73z3L
|
||||
ewhkQANFTc7xjGb62je2IWGyXhszcGU+Mf12uKzRhE/8kP440QOtF7J0fdAEP5eX
|
||||
lmU+7RaPQSCAEZRERDz/9hy1hgm50uGn2w7PtJMwlREXkrXo9RQGJULksVDG7U7h
|
||||
4bU3ms95kfC/W3DnVmtQ902WTWQWmr3U/fEu3Z8SJJNMsH0W7yhGS9lGTyEythcI
|
||||
Dox9XpRA/leZNhcACdqLrgiujhw00MraM3ziaWxLxUCzKDfjvepjdaLbiLuvNAJa
|
||||
Cqv3A/tTbgmD8hLRJ6AyBN6w8J+EQwWYxvRbD0OvodK+tcfzVe6loewYODwXXpxm
|
||||
nLg6mQ/TpYkxXyQMbsQJlPIY06nftZ5fpdRpHOvV+NW/j62z254Yk8/TDyiLcYtO
|
||||
yVyd/BMVgKwY7mSI64tMq8q0sWDxyqdtdDO824EANjLUMRJ5vZL9ObIc84xNz699
|
||||
ZMqwqNhMY4k+zvEvpidO7vY3autoQ6/Wq8qEpQ8P4NZB97H7KEpvoitFMsmVRYRv
|
||||
qfgXr9zA55kS0GnV39iVe0Q65XJo2THtjMNbvUf20tU3hWQ81Lc=
|
||||
=16lb
|
||||
-----END PGP SIGNATURE-----
|
BIN
firefox-140.1.0esr.source.tar.xz
(Stored with Git LFS)
Normal file
BIN
firefox-140.1.0esr.source.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
16
firefox-140.1.0esr.source.tar.xz.asc
Normal file
16
firefox-140.1.0esr.source.tar.xz.asc
Normal file
@@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEECb7tY/NGKi3/qzuHXstkl8GiAlYFAmh1PNEACgkQXstkl8Gi
|
||||
AlZpnQ//UsQXZjG4TnhAQlRtHgByr7yYLpc/iQ+3QvwZsPBChKhgEqKPhX9J+Uan
|
||||
my6Th+tMUTfwFchfV+rKsiFXpEMQJvhmDLLPFJEQsLTunsO/73ci63GKM1pFAmUe
|
||||
Y1cp9ekuMi2a2+zQr6iZ1/hxEqphAx4YLv35rCik1yrA323GWVkzrHbhuyopf4XH
|
||||
UQ6Aj356vPXPW5HEl3w6GNP1nRfsKuEOfIfCLcsHD26DyYVcAowHnt9+PHkqFHxW
|
||||
w1rUkh/GmgFzPFSBBXNWIWzCUFe8MSEr2GMcwIga5HV+MvkPQk4deO4fbWOx0rpn
|
||||
WWb5rNW3wkqJ4HTxoMrFoW972d0E23qjYVnSwS1lQq8/TJnOtG2QqZKWgmYIapjy
|
||||
fLqjhKoOgq2gUUUKCFa+2WhLQckk8nhaFyYmos5ndqXOPIoeWH/6GGWtbbV1WBHo
|
||||
6XU8eS59y6XFcbYi00I7tTAeVB5d5xEfPMYvm/UifE0DX89sSD1XPTc0R46nHwHo
|
||||
zZlA4VIcrm9h6FRhRhw+qCf9O8D+1jKcDozutSDqSMXyOjGJFgT/qCQcQQ1/X4ai
|
||||
ZK/8yG5pKfkneiebhWLT12qy5FK40cXDVByW94CTQqd558GX3BG+kIKTWr9sgAkr
|
||||
a/Xa8gpGGCS6zMeI4gJMTrA7UN7SEtF4dqppeB4YeRCRG4rw41w=
|
||||
=H9wW
|
||||
-----END PGP SIGNATURE-----
|
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 9309f1ac14b7173985576932c01874184be1dcf9
|
||||
|
||||
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
|
||||
@@ -221,20 +221,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
|
||||
|
||||
; [DevTools Startup Files]
|
||||
@RESPATH@/browser/chrome/devtools-startup@JAREXT@
|
||||
@RESPATH@/browser/chrome/devtools-startup.manifest
|
||||
|
||||
; DevTools
|
||||
@RESPATH@/browser/chrome/devtools@JAREXT@
|
12078
firefox-esr.changes
Normal file
12078
firefox-esr.changes
Normal file
File diff suppressed because it is too large
Load Diff
12078
firefox-esr.changes.txt
Normal file
12078
firefox-esr.changes.txt
Normal file
File diff suppressed because it is too large
Load Diff
816
firefox-esr.spec
Normal file
816
firefox-esr.spec
Normal file
@@ -0,0 +1,816 @@
|
||||
#
|
||||
# spec file for package firefox-esr
|
||||
#
|
||||
# Copyright (c) 2025 SUSE LLC
|
||||
# Copyright (c) 2006-2025 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/
|
||||
#
|
||||
|
||||
# either firefox-esr or MozillaFirefox
|
||||
%if 0%{?suse_version} > 1549
|
||||
# On Tumbleweed this package is always called firefox-esr
|
||||
%define pkgname firefox-esr
|
||||
%else
|
||||
# On SLE/Leap this package is called MozillaFirefox unless ff_esr_name overrules it
|
||||
%if "0%{?ff_esr_name}" != "0"
|
||||
%define pkgname %{ff_esr_name}
|
||||
%else
|
||||
%define pkgname MozillaFirefox
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%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 140
|
||||
%define mainver %major.1.0
|
||||
%define orig_version 140.1.0
|
||||
%define orig_suffix esr
|
||||
%define update_channel esr
|
||||
%define branding 1
|
||||
%define devpkg 0
|
||||
|
||||
# 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 0
|
||||
|
||||
# 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
|
||||
%if "%{pkgname}" == "firefox-esr"
|
||||
%define progname firefox-esr
|
||||
%define appname Firefox ESR
|
||||
%else
|
||||
%define progname firefox
|
||||
%define appname Firefox
|
||||
%endif
|
||||
%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.86
|
||||
BuildRequires: rust1.86
|
||||
%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.36
|
||||
BuildRequires: mozilla-nss-devel >= 3.110
|
||||
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.28
|
||||
%if 0%{?suse_version} > 1560
|
||||
BuildRequires: translate-suse-desktop
|
||||
%endif
|
||||
BuildRequires: unzip
|
||||
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
|
||||
%if 0%{?suse_version} < 1599
|
||||
BuildRequires: clang15-devel
|
||||
%else
|
||||
BuildRequires: clang-devel
|
||||
%endif
|
||||
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)
|
||||
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.in.in
|
||||
Source2: MozillaFirefox-rpmlintrc
|
||||
Source3: mozilla.sh.in
|
||||
Source4: tar_stamps
|
||||
# Ready made desktop file for products that don't support %%translate_suse_desktop.
|
||||
# You can be prompted for the update during the Factory build.
|
||||
Source5: MozillaFirefox.desktop
|
||||
%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
|
||||
Source22: firefox-esr.changes.txt
|
||||
Source23: MozillaFirefox.changes.txt
|
||||
# Gecko/Toolkit
|
||||
Patch1: mozilla-nongnome-proxies.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
|
||||
Patch24: mozilla-bmo1746799.patch
|
||||
# Firefox/browser
|
||||
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: xdg-desktop-portal
|
||||
%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
|
||||
%if 0%{?suse_version} > 1560
|
||||
cp %{SOURCE1} %{desktop_file_name}.desktop.in.in
|
||||
%else
|
||||
cp %{SOURCE5} %{desktop_file_name}.desktop
|
||||
%endif
|
||||
cd $RPM_BUILD_DIR/%{srcname}-%{orig_version}
|
||||
%autopatch -p1
|
||||
%endif
|
||||
|
||||
%build
|
||||
# desktop file
|
||||
%if 0%{?suse_version} > 1560
|
||||
sed "s:%%NAME:%{appname}:g
|
||||
s:%%EXEC:%{progname}:g
|
||||
s:%%ICON:%{progname}:g
|
||||
s:%%WMCLASS:%{progname}%{major}:g" \
|
||||
%{desktop_file_name}.desktop.in.in > %{desktop_file_name}.desktop.in
|
||||
%translate_suse_desktop %{desktop_file_name}.desktop
|
||||
if ! diff %{desktop_file_name}.desktop %{SOURCE5} ; then
|
||||
cat <<EOF
|
||||
A new version of desktop file exists. Please update MozillaFirefox.desktop
|
||||
rpm source from $PWD/%{desktop_file_name}.desktop
|
||||
to get translations to older products.
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
%endif
|
||||
%if !%{with only_print_mozconfig}
|
||||
# Ensure both .changes files do exist:
|
||||
ln -f "%{_sourcedir}/firefox-esr.changes.txt" "%{_sourcedir}/%{pkgname}.changes"
|
||||
ln -f "%{_sourcedir}/MozillaFirefox.changes.txt" "%{_sourcedir}/MozillaFirefox.changes"
|
||||
# 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|/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
|
||||
|
||||
# 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=%{?_smp_mflags}
|
||||
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
|
||||
|
||||
%if 0%{?suse_version} >= 1600
|
||||
%define njobs ${RPM_BUILD_NCPUS:-0}
|
||||
%else
|
||||
%define njobs 0%{?jobs:%jobs}
|
||||
%endif
|
||||
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
|
||||
install -D -m 0644 %{desktop_file_name}.desktop %{buildroot}%{_datadir}/applications/%{desktop_file_name}.desktop
|
||||
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}
|
||||
# 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/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}/crashhelper
|
||||
%{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
|
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.10.0esr.tar.xz
Normal file
3
l10n-128.10.0esr.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dca612a520170f22afba25108afebed2a1ea9c918b78d8473581dabe39623308
|
||||
size 35199156
|
3
l10n-128.10.1esr.tar.xz
Normal file
3
l10n-128.10.1esr.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dca612a520170f22afba25108afebed2a1ea9c918b78d8473581dabe39623308
|
||||
size 35199156
|
3
l10n-128.11.0esr.tar.xz
Normal file
3
l10n-128.11.0esr.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dca612a520170f22afba25108afebed2a1ea9c918b78d8473581dabe39623308
|
||||
size 35199156
|
3
l10n-128.12.0esr.tar.xz
Normal file
3
l10n-128.12.0esr.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dca612a520170f22afba25108afebed2a1ea9c918b78d8473581dabe39623308
|
||||
size 35199156
|
3
l10n-128.5.1esr.tar.xz
Normal file
3
l10n-128.5.1esr.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:adc97fe34ba0d08b62ecd0e45bff671dde7d310ff09e7243582bfb3c4ed22310
|
||||
size 33147652
|
3
l10n-128.6.0esr.tar.xz
Normal file
3
l10n-128.6.0esr.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:adc97fe34ba0d08b62ecd0e45bff671dde7d310ff09e7243582bfb3c4ed22310
|
||||
size 33147652
|
3
l10n-128.7.0esr.tar.xz
Normal file
3
l10n-128.7.0esr.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:adc97fe34ba0d08b62ecd0e45bff671dde7d310ff09e7243582bfb3c4ed22310
|
||||
size 33147652
|
3
l10n-128.8.0esr.tar.xz
Normal file
3
l10n-128.8.0esr.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dca612a520170f22afba25108afebed2a1ea9c918b78d8473581dabe39623308
|
||||
size 35199156
|
3
l10n-128.8.1esr.tar.xz
Normal file
3
l10n-128.8.1esr.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dca612a520170f22afba25108afebed2a1ea9c918b78d8473581dabe39623308
|
||||
size 35199156
|
3
l10n-128.9.0esr.tar.xz
Normal file
3
l10n-128.9.0esr.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dca612a520170f22afba25108afebed2a1ea9c918b78d8473581dabe39623308
|
||||
size 35199156
|
3
l10n-140.1.0esr.tar.xz
Normal file
3
l10n-140.1.0esr.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f4e637d7eee0d1866e81c795cdf7f2102fc06228d2a9964d7e222c88bdc47a29
|
||||
size 37725284
|
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 e31f5228a09ed69d7ac3c84e54f0faa6a5910ae0
|
||||
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
|
||||
@@ -155,17 +155,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
|
||||
@@ -94,28 +94,21 @@ enum class SurfaceFormat : int8_t {
|
||||
// this format.
|
||||
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) {
|
72
mozilla-bmo1746799.patch
Normal file
72
mozilla-bmo1746799.patch
Normal file
@@ -0,0 +1,72 @@
|
||||
From 535dc3c97fd19a30a329a188786998ae00cdf017 Mon Sep 17 00:00:00 2001
|
||||
From: andrew <andrew@arobeia.co.uk>
|
||||
Date: Thu, 23 Dec 2021 16:18:30 +0000
|
||||
Subject: [PATCH] Map linearly from cubeb volume to pa volume
|
||||
|
||||
Fixes incorrect volume mapping.
|
||||
|
||||
Rebased to current SUSE sources and updated checksums Wed Sep 04 00:00:00 2024
|
||||
|
||||
diff --git a/third_party/rust/cubeb-pulse/.cargo-checksum.json b/third_party/rust/cubeb-pulse/.cargo-checksum.json
|
||||
--- a/third_party/rust/cubeb-pulse/.cargo-checksum.json
|
||||
+++ b/third_party/rust/cubeb-pulse/.cargo-checksum.json
|
||||
@@ -1,1 +1,1 @@
|
||||
-{"files":{".editorconfig":"bf047bd1da10cabb99eea666d1e57c321eba4716dccb3e4ed0e2c5fe3ca53858",".github/workflows/build.yml":"477366d58c9dc059dbe4a158a6e910f23a3e9ecac7411f73616e06375583b764","AUTHORS":"0e0ac930a68ce2f6b876126b195add177f0d3886facb9260f4d9b69f1988f0cc","Cargo.toml":"37491c1b911bcedf99e624fbfb100aa6ecaa357d0d048dc9ff0da341d35f687c","LICENSE":"44c6b5ae5ec3fe2fbc608b00e6f4896f4d2d5c7e525fcbaa3eaa3cf2f3d5a983","README.md":"0079450bb4b013bac065ed1750851e461a3710ebad1f323817da1cb82db0bc4f","src/backend/context.rs":"c0db5f2447de1d6df5aa2812fa342a085e73156a072c221c7379b9a6a9b86786","src/backend/cork_state.rs":"4a0f1afc7d9f333dac89218cc56d7d32fbffb487cd48c1c9a4e03d79cb3b5e28","src/backend/intern.rs":"11ca424e4eb77f8eb9fd5a6717d1e791facf9743156a8534f0016fcf64d57b0f","src/backend/mod.rs":"dfb30ec497d6215e4535e936fea8fe3a407ef24dc1cec43b52c0ffa923d9229c","src/backend/stream.rs":"dfe5b747e100cae4aeae36cf2ebb9dc4715b411b4116721a40eec2944eb0ec23","src/capi.rs":"fa0fa020f0d0efe55aa0fc3596405e8407bbe2cbe6c7a558345304e6da87994e","src/lib.rs":"b41bbdc562cbfb130ed7c1e53fe69944774f515705341d8ce48a2f82c8c0c2c5"},"package":null}
|
||||
\ No newline at end of file
|
||||
+{"files":{".editorconfig":"bf047bd1da10cabb99eea666d1e57c321eba4716dccb3e4ed0e2c5fe3ca53858",".github/workflows/build.yml":"477366d58c9dc059dbe4a158a6e910f23a3e9ecac7411f73616e06375583b764","AUTHORS":"0e0ac930a68ce2f6b876126b195add177f0d3886facb9260f4d9b69f1988f0cc","Cargo.toml":"37491c1b911bcedf99e624fbfb100aa6ecaa357d0d048dc9ff0da341d35f687c","LICENSE":"44c6b5ae5ec3fe2fbc608b00e6f4896f4d2d5c7e525fcbaa3eaa3cf2f3d5a983","README.md":"0079450bb4b013bac065ed1750851e461a3710ebad1f323817da1cb82db0bc4f","src/backend/context.rs":"c0db5f2447de1d6df5aa2812fa342a085e73156a072c221c7379b9a6a9b86786","src/backend/cork_state.rs":"4a0f1afc7d9f333dac89218cc56d7d32fbffb487cd48c1c9a4e03d79cb3b5e28","src/backend/intern.rs":"11ca424e4eb77f8eb9fd5a6717d1e791facf9743156a8534f0016fcf64d57b0f","src/backend/mod.rs":"dfb30ec497d6215e4535e936fea8fe3a407ef24dc1cec43b52c0ffa923d9229c","src/backend/stream.rs":"2dfc61c4eac69624558756d87283496d01f56f44bf311119eff0f1d124cd88f3","src/capi.rs":"fa0fa020f0d0efe55aa0fc3596405e8407bbe2cbe6c7a558345304e6da87994e","src/lib.rs":"b41bbdc562cbfb130ed7c1e53fe69944774f515705341d8ce48a2f82c8c0c2c5"},"package":null}
|
||||
diff --git a/third_party/rust/cubeb-pulse/src/backend/stream.rs b/third_party/rust/cubeb-pulse/src/backend/stream.rs
|
||||
--- a/third_party/rust/cubeb-pulse/src/backend/stream.rs
|
||||
+++ b/third_party/rust/cubeb-pulse/src/backend/stream.rs
|
||||
@@ -760,18 +760,18 @@ impl<'ctx> StreamOps for PulseStream<'ct
|
||||
_ => pulse::SinkFlags::empty(),
|
||||
}
|
||||
};
|
||||
|
||||
if flags.contains(pulse::SinkFlags::FLAT_VOLUME) {
|
||||
self.volume = volume;
|
||||
} else {
|
||||
let channels = stm.get_sample_spec().channels;
|
||||
- let vol = pulse::sw_volume_from_linear(f64::from(volume));
|
||||
- cvol.set(u32::from(channels), vol);
|
||||
+ let vol = volume * (PA_VOLUME_NORM as f32);
|
||||
+ cvol.set(u32::from(channels), vol as pa_volume_t);
|
||||
|
||||
let index = stm.get_index();
|
||||
|
||||
let context_ptr = self.context as *const _ as *mut _;
|
||||
if let Ok(o) = context.set_sink_input_volume(
|
||||
index,
|
||||
&cvol,
|
||||
context_success,
|
||||
diff --git a/third_party/rust/pulse-ffi/.cargo-checksum.json b/third_party/rust/pulse-ffi/.cargo-checksum.json
|
||||
--- a/third_party/rust/pulse-ffi/.cargo-checksum.json
|
||||
+++ b/third_party/rust/pulse-ffi/.cargo-checksum.json
|
||||
@@ -1,1 +1,1 @@
|
||||
-{"files":{"Cargo.toml":"f8cc9775a76c5fa246bb44a6a603bd0e7b2f0f068b4d9f40b68bac9ba777dd83","src/ffi_funcs.rs":"a16646c5e7c49e94b907a7a404cfcadf3007688005c689cca936f0c2ee2e28e6","src/ffi_types.rs":"2ca56bc3638a40d331e53117a5dd175d0a6e102b1e0eccb9c2adc565c6861a33","src/lib.rs":"6aff308de11954a067d0f6ef95bf3126aabb6d928a5191e91d9a38ebadba91c2"},"package":null}
|
||||
\ No newline at end of file
|
||||
+{"files":{"Cargo.toml":"f8cc9775a76c5fa246bb44a6a603bd0e7b2f0f068b4d9f40b68bac9ba777dd83","src/ffi_funcs.rs":"a16646c5e7c49e94b907a7a404cfcadf3007688005c689cca936f0c2ee2e28e6","src/ffi_types.rs":"f39a27712b17256583331f7ce5722413d0c7b51d73d8def8f50e839e23dfb411","src/lib.rs":"6aff308de11954a067d0f6ef95bf3126aabb6d928a5191e91d9a38ebadba91c2"},"package":null}
|
||||
diff --git a/third_party/rust/pulse-ffi/src/ffi_types.rs b/third_party/rust/pulse-ffi/src/ffi_types.rs
|
||||
--- a/third_party/rust/pulse-ffi/src/ffi_types.rs
|
||||
+++ b/third_party/rust/pulse-ffi/src/ffi_types.rs
|
||||
@@ -17,16 +17,21 @@ pub const PA_SAMPLE_S32BE: c_int = 8;
|
||||
pub const PA_SAMPLE_S24LE: c_int = 9;
|
||||
pub const PA_SAMPLE_S24BE: c_int = 10;
|
||||
pub const PA_SAMPLE_S24_32LE: c_int = 11;
|
||||
pub const PA_SAMPLE_S24_32BE: c_int = 12;
|
||||
pub const PA_SAMPLE_MAX: c_int = 13;
|
||||
pub const PA_SAMPLE_INVALID: c_int = -1;
|
||||
pub type pa_sample_format_t = c_int;
|
||||
|
||||
+pub const PA_VOLUME_MUTED: c_uint = 0;
|
||||
+pub const PA_VOLUME_NORM: c_uint = 0x10000;
|
||||
+pub const PA_VOLUME_MAX: c_uint = 0x7fffffff;
|
||||
+
|
||||
+
|
||||
#[repr(C)]
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
pub struct Struct_pa_sample_spec {
|
||||
pub format: pa_sample_format_t,
|
||||
pub rate: u32,
|
||||
pub channels: u8,
|
||||
}
|
||||
|
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:
|
23
mozilla-fix-cmath-issues.patch
Normal file
23
mozilla-fix-cmath-issues.patch
Normal file
@@ -0,0 +1,23 @@
|
||||
diff -rup a/modules/fdlibm/src/math_private.h b/modules/fdlibm/src/math_private.h
|
||||
--- a/modules/fdlibm/src/math_private.h 2024-10-22 01:59:57.000000000 +0200
|
||||
+++ b/modules/fdlibm/src/math_private.h 2024-11-19 09:16:00.223397014 +0100
|
||||
@@ -17,6 +17,9 @@
|
||||
#ifndef _MATH_PRIVATE_H_
|
||||
#define _MATH_PRIVATE_H_
|
||||
|
||||
+#include <float.h>
|
||||
+#include <math.h>
|
||||
+#include <cmath>
|
||||
#include <cfloat>
|
||||
#include <stdint.h>
|
||||
#include <sys/types.h>
|
||||
@@ -31,7 +34,9 @@
|
||||
*/
|
||||
|
||||
typedef double __double_t;
|
||||
+#if ! (defined (__GLIBC_FLT_EVAL_METHOD) || defined (_GLIBCXX_HAVE_C99_FLT_EVAL_TYPES))
|
||||
typedef __double_t double_t;
|
||||
+#endif
|
||||
typedef float __float_t;
|
||||
|
||||
/*
|
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;
|
||||
}
|
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));
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
28
mozilla-ntlm-full-path.patch
Normal file
28
mozilla-ntlm-full-path.patch
Normal file
@@ -0,0 +1,28 @@
|
||||
# HG changeset patch
|
||||
# User Petr Cerny <pcerny@novell.com>
|
||||
# Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
|
||||
# Parent 3399aced682c232525633755ff79b37a0be75548
|
||||
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
|
||||
@@ -148,17 +148,17 @@ nsresult nsAuthSambaNTLM::SpawnNTLMAuthH
|
||||
}
|
||||
|
||||
base::LaunchOptions options;
|
||||
options.fds_to_remap.push_back(
|
||||
std::pair{toChildPipeRead.get(), STDIN_FILENO});
|
||||
options.fds_to_remap.push_back(
|
||||
std::pair{fromChildPipeWrite.get(), STDOUT_FILENO});
|
||||
|
||||
- std::vector<std::string> argvVec{"ntlm_auth", "--helper-protocol",
|
||||
+ std::vector<std::string> argvVec{"/usr/bin/ntlm_auth", "--helper-protocol",
|
||||
"ntlmssp-client-1", "--use-cached-creds",
|
||||
"--username", username};
|
||||
|
||||
auto result = base::LaunchApp(argvVec, std::move(options), &mChildPID);
|
||||
if (result.isErr()) {
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
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 = []
|
||||
|
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)
|
1107
mozilla-silence-no-return-type.patch
Normal file
1107
mozilla-silence-no-return-type.patch
Normal file
File diff suppressed because it is too large
Load Diff
441
mozilla.keyring
Normal file
441
mozilla.keyring
Normal file
@@ -0,0 +1,441 @@
|
||||
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.
|
||||
|
||||
gpg --show-keys < KEY
|
||||
|
||||
pub rsa4096 2015-07-17 [SC]
|
||||
14F26682D0916CDD81E37B6D61B7B526D98F0353
|
||||
uid Mozilla Software Releases <release@mozilla.com>
|
||||
sub rsa4096 2021-05-17 [S] [expired: 2023-05-17]
|
||||
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 2023-05-05 [S] [expires: 2025-05-04]
|
||||
sub rsa4096 2025-03-13 [S] [expires: 2027-03-13]
|
||||
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mQINBFWpQAQBEAC+9wVlwGLy8ILCybLesuB3KkHHK+Yt1F1PJaI30X448ttGzxCz
|
||||
PQpH6BoA73uzcTReVjfCFGvM4ij6qVV2SNaTxmNBrL1uVeEUsCuGduDUQMQYRGxR
|
||||
tWq5rCH48LnltKPamPiEBzrgFL3i5bYEUHO7M0lATEknG7Iaz697K/ssHREZfuuc
|
||||
B4GNxXMgswZ7GTZO3VBDVEw5GwU3sUvww93TwMC29lIPCux445AxZPKr5sOVEsEn
|
||||
dUB2oDMsSAoS/dZcl8F4otqfR1pXg618cU06omvq5yguWLDRV327BLmezYK0prD3
|
||||
P+7qwEp8MTVmxlbkrClS5j5pR47FrJGdyupNKqLzK+7hok5kBxhsdMsdTZLd4tVR
|
||||
jXf04isVO3iFFf/GKuwscOi1+ZYeB3l3sAqgFUWnjbpbHxfslTmo7BgvmjZvAH5Z
|
||||
asaewF3wA06biCDJdcSkC9GmFPmN5DS5/Dkjwfj8+dZAttuSKfmQQnypUPaJ2sBu
|
||||
blnJ6INpvYgsEZjV6CFG1EiDJDPu2Zxap8ep0iRMbBBZnpfZTn7SKAcurDJptxin
|
||||
CRclTcdOdi1iSZ35LZW0R2FKNnGL33u1IhxU9HRLw3XuljXCOZ84RLn6M+PBc1eZ
|
||||
suv1TA+Mn111yD3uDv/u/edZ/xeJccF6bYcMvUgRRZh0sgZ0ZT4b0Q6YcQARAQAB
|
||||
tC9Nb3ppbGxhIFNvZnR3YXJlIFJlbGVhc2VzIDxyZWxlYXNlQG1vemlsbGEuY29t
|
||||
PokCOAQTAQIAIgUCValABAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQ
|
||||
Ybe1JtmPA1NQqg//Rr6/V7uLqrIwx0UFknyNJasRJZhUkYxdGsLD18zO0Na8Ve3Q
|
||||
sYpOC3ojpqaFUzpqm6KNv8eXfd/Ku7j3WGr9kPkbjZNghvy6V5Lva4JkxO6LMxKk
|
||||
JYqiqF2o1Gfda8NfcK08GFy4C0L8zNwlADvmdMo4382tmHNGbTTft7BeVaRrE9xW
|
||||
9eGmGQ2jYOsjxb5MsadAdZUuK8IC95ZHlUDR3gH9KqhfbQWp5Bo924Kiv+f2JUzN
|
||||
rrG98eOm1Qb8F9rePzZ2DOYRJyOe4p8Gpl+kojCXNntkJgcwJ1a1yRE6wy9RzpeB
|
||||
lCeoQuLS92MNne+deQZUskTZFoYXUadf6vbdfqL0nuPCKdl9lhef1QNwE30IRymt
|
||||
6fhJCFffFQjGdeMfSiCHgcI8ichQbrzhBCGGR3bAHan9c2EbQ+puqG3Aa0YjX6Db
|
||||
GJjWOI6A61bqSPepLCMVaXqV2mZEIaZWdZkOHjnRrU6CJdXG/+D4m1YBZwYM60eJ
|
||||
kNu4eMMwMFnRsHiWf7bhqKptwuk8HyIGp2o4j8iqrFRVJEbK/ctdhA3H1AlKug9f
|
||||
NrfwCfqhNCSBju97V03U26j04JMn9nrZ2UEGbpty+8ONTb38WX5/oC61BgwV8Ki4
|
||||
6Lwyb7fImUzz8jE83pjh7s3+NCKvvbH+VfT12f+V/fsphN3EwGwJPTC3fX2IRgQQ
|
||||
EQIABgUCVaz/SwAKCRB2JUA9fw0VsVNkAKDjhUW5GyFNcyj9ot48v+lSh5GBIACf
|
||||
Ten/Rpo5tf77Uq7445cVs80EK5CIRgQQEQIABgUCVa064wAKCRDDTldH4j3WdwW5
|
||||
AKCVDRxKjb/XYqGhjBCKYhbQ4xJuOACfVIpzE3wGLC/cm9eUnSVnv+elQnKIXgQQ
|
||||
EQgABgUCVgZXYwAKCRACWrAQaxfqHqzWAP9dzEHoZNwH5JYxotudv3FOotVThaQr
|
||||
jnk+5StnObpxnAD9FmYyAyYGh4o7axeDCgmW1J89+1cZtDnFPKnBpGFMB4uIXgQQ
|
||||
EQoABgUCVa0s/gAKCRDwqefc055FLpQGAP99Z2ISKW+7FYoKJ3vDrxTtfcbZEff7
|
||||
8ufoinmAlZb2bQD/a2fOcprjWDal9Orfq7g6htkX3VISemg+SDQ/ig+b3uyJARwE
|
||||
EAECAAYFAlWs/X4ACgkQs8WpWFCKQ/JrjAf7B+fGzEs8xfc010a6KZXcO1W4/Va0
|
||||
Q+zcqF+DpQwK7b3S6oD5tCVKD9oFyDXkrlT6Tnwuu+slZwRDIyH6hI6tPb3G8Gsk
|
||||
vjXMeL0IdgZsw1DSxN0pZ0Z9mxFq/UkC/6TmFA1IJmOWtFCH/1irQWqbDxPmWp+d
|
||||
Xs2EhH8QzX1KQOE9v/YlsCdmTstMiHy3R8r7prsonpCa36zGheC/UNDpycKdT8JL
|
||||
zeCFcIWXmA7SCTeJ0XCSuS68FOwfe7nn9oagQZZe/6gh5ecuCoW9HLBWpyIPqUCz
|
||||
1CXSImLc6BbZYMpAetacarVPa6hiltNicxFE/A3T1F8ZjAcugPKBngUR/4kBHAQQ
|
||||
AQIABgUCVa0XXAAKCRBlc4Lb/yURCkCYB/95w/9/0rpi+5xtoO2NR0KlqYVG5+NF
|
||||
1r42XB6t7gVJ9UGF3meV+ekgDSzNrfroqxpzWmV1t3MRJeSMmVS25nC1hAZVQHKd
|
||||
gX9xVxW3SSufX/jPstvo2U/X3k8q8PhLS6Ihk8YJC3ScjMiNMRpkITMeVdXsdQsY
|
||||
WStiT48wlWK4gSNMCG5iovdGDTEKErHTIWJl/Wx5el1kvUwg1rKo9uRS2CS/lnlV
|
||||
6YztDY0cBBOqXP6pXXiWBuVW39LJxsSHq13vpeQ/GHeDxAJ6Y+fPuaV3qBmGZ91o
|
||||
1/HkxTABFPkISylkPo/2PCoo4Hu31MZ0jQWdihJ7gzf+B7/w6whS79eAiQEcBBAB
|
||||
AgAGBQJVrWVaAAoJEOQyfGw+ApnAc7AH/0TKg3VR4IEB3NP2C7dX/72PWO0EOh8J
|
||||
w67XDccRK0lXDILg/CujsYq9EzEofv2LmQFvCuCkoBFEcGas+J2vP3jsY/G5bjZp
|
||||
XALHkAx7MKlOgsgfeVqMtwaHIoR+y9Hg12TjM7Gt970UBwTIqC8SG6Z1bVWxUdc+
|
||||
7Zsn43Dq8z99saOUKD6HMyl9upbjAYwL28NRQtIrNiDZ5lEmDOLh+4hWblxjxWMX
|
||||
AKjg6sucrNzKD2uKGe9XdB6IkYpdfrNGPtgcnXWdfaRNk16eGVzWDVI/9mkY/G+L
|
||||
E40eK6oRyMf736CvlQjcv7JBVGTsj3W28phNLLU0UidYK/QmS3AVmBeJARwEEAEC
|
||||
AAYFAlXBWXAACgkQiRc/lXxV+V6gKQf/d/KfgiYg0Z4dqO3g1p40sgLuxVplhpDk
|
||||
J4yP5K2isdb6I7GJykVw+po6tUCfB7KeLWiZy0I3KJDU1Ikk+Jv3uGSRMT1riSpM
|
||||
Ja2pVhh+jaamHIFj2o0mG9HmEAuGKktJH8s6Jax3SiPGODRhFO8suc7B8FpB7f5q
|
||||
TUDK2J18MlnSK3NN1/zl6OdXScrISQ0cNyJ0RMgW5RSXC7wKzR89tfcDK1wInD8r
|
||||
cOMHz6Va5g8ehq2XCPKvBAlgo8El17+4UaRLhS0suVz4THPsGASYzZVKIhQQBf+8
|
||||
xDXd6zJ/UgkC4iBWHtLm5jvm6Xhsu04s28TmgiH4FKLsstAUFzbiQYkBHAQQAQIA
|
||||
BgUCVdIa6gAKCRCtfLmfgki6D8xCB/9Q+rCTDQCbWQkRoSV77+kmIb+KVFTcgxfR
|
||||
Z1L0bKL5YqI6HuCJLgU1ioTxq8W4g+SDv4s69/LIajYYZvSRNv0kGRzm2D4vpcnw
|
||||
ymyYCJkzcZkuBeyR50S69+1cStbFb7jZMpyZ6rwnKdYOccDSMdaynJGt4rqiY+ra
|
||||
DPF0H4LExx9a1JFh21Fd0MDc15vsoRZtrOkM8QaKD85hZ/AGOwlw+Kb3DEfjNGcv
|
||||
nuNp54HfJc0Z5kwVYoOKUatBgjLpRRvl43lUGRaaCCMaNpNZXM20ZhrbTjXRlko8
|
||||
QVMUXqE20sDNwv+dDa6G8nBkIGNIHeixrVrVPP7hH5JRMtjZbsWFiQEcBBABCAAG
|
||||
BQJVrQFGAAoJEFbucY3ODhVLNDgH/izNHcsr1BRnV3yQ6T9sTJJ187BwF1hRLR+Y
|
||||
3op+fJr+nQ9301XAqLqNbzEB91hRUi2Gb8LTZxxq0gahWzSqmdAE0ObXGGlrEmfj
|
||||
FSSTFyQ1xRvzooYNZzTjN91XX1dERjyj9SOHBETsZrN01BZB1t3EgoDM7PCNTsX0
|
||||
qC65unWvBDftnLdiJ6s3UC9sorMk8q3Zl6DacFw8QKSmJL1R0OPvXiSOZtGQK9Jg
|
||||
YyHiXQE3MOP5SFSk61e1IawocYn32CXM+EkgtXK5q/thc8OdwsgLAJmGpVB3qd2K
|
||||
9OaEOKCUV/V91a2P8hCx8MMV2sQgHcMB221wDIWbD5PTHNtCegaJARwEEAEIAAYF
|
||||
AlWtIrEACgkQo9ZSFzt2Po+mXgf/dUPf6q+aDFoDjLIsfJH5QS8Nn/7frUUdElg8
|
||||
PdGxtZ6SQep6uR5fgc+PwOElhUxa665WYtRJ459RWAYmbh2kkP/paGBf9nW0A2wS
|
||||
koXyJNydJcanyjwHyqKUbBLsXJAvGFtbYRsbeXkEPM5CaKgRUwc8Ilzo9/53CZF/
|
||||
avZK4FJX00lZq0/Z8dIY8jUEF64IbJgbaUe1gkuxu7zURgjVKK4bb4lLy/s3tRe0
|
||||
00hrKVbFcaNoIZs+Vk/3A/TFdYHFY6I2JpLIeSSJd/Ywh6/YZfGkSHfzn87Dfkyr
|
||||
gXKQMQ5JvQQgKbO6GPBZSygxWU7R2tNNAJKHSh0/PJ8J7yrqj4kBHAQQAQgABgUC
|
||||
Va05AwAKCRD20Pdh3MzspCvWB/9DAEaNx5WF3ktmw6jP5cCv60HDwgsmJHusGyAo
|
||||
53Gwjo4Fx6hv5QYQpTbO4af+4KpFGkex+bZniOJWpT+NJkhx55xbzA903MoZ9+dI
|
||||
oCtG4K41kA2mMYSpR097yF3fwtuP70UgMZqiCmz/iKFzsrdhjE0KvBjptnYGEWk5
|
||||
MMh5xlpzGom3LV/A+KAmEdPw+GCaj5H6qG3/PtWXz+RmjG0sRPycHaNJCWuLz4xM
|
||||
xV28oAG53Gqc3cDes4Hpds4fPOa8+we7yKTK/2O3lfOUOvKncsoS3vHC/GNfGD86
|
||||
RX/vz2TW4GMaLmn75xcAYT0MINIFBf/tXjN1BNrmvrGkkxnbiQEcBBABCgAGBQJV
|
||||
rQlbAAoJEDNC4bZno4hjKL8H/An2CRzW8IsEjFKD+J+xa5hJYQbcb5W5wjGSs9PL
|
||||
/pRbH0t8FNS1DevRqoq3xdL5EEUpUgae54gix0An0qKhzC4MRdD9sYFy42mDP7f6
|
||||
8Vw2sCZltfBtOHaha7Qj2U28DE9j7Dx04lkHWjdHudJV5PVaPpelW8EDIOMx+4nG
|
||||
WnXiYEKKMRWpR2BVV1FXnsfbfP2HWpxVaxxWt7WqOmswU0lJCb2bSLteEn8YoA1i
|
||||
CMLMdMaVXyX92v8Quh2N0NWtzXgc94ug8GiucGKoo2SpdFlXVCysqlPfKBestJlL
|
||||
93dqP6dOwqoHqOscTJB6rvNzi2tmtAu7WDy4C+BBXNhbYpGJAhwEEAECAAYFAlWs
|
||||
+ygACgkQljt4MQo3sXysaw/+J6Ztawe/qT5aLW6it+zLq+3oD21UgM1TVP81CjwL
|
||||
hlHj9wuuGDe+xE8dZA7kvpngKjAxxXPQX/B4rz27Y+kHCvelOSrLW5kodTsPWIkL
|
||||
cSYMRo4Pws0RIGQBXI8tDIaJJcj7BYb9O7OjCziTEjP5KxDeZ6o4n0NFnZk5NNhS
|
||||
6B1VnC3Y34DIj4koxm1N5O5br4z8kTc5PN9bMxOZn2u+KxGIeEwZJbHvtrgeAxUP
|
||||
96B2dUo+jgSuro5jSkIyD+wpfo5o6+/kCtDiXEWo//AHJAwOal02QAodUtrMggwz
|
||||
J19FfnU8RgiKFjivrbfZi6ITM6RHg+DSF+KnaW2wkc3mGTB0qJsgSLGwOgfv37Qx
|
||||
O1tTdPxbSfWnZJAspylC74dgh+XOYYDji9tjPtrKZ8sEaHiUVFlO4QTOTlB9yYwO
|
||||
E7uI/3MKe3Q+0M2a85gvX+S0CdznpXo71aMFj0Hd/7ZMuKNausJZhagHAILbve1M
|
||||
IATkkfbCTxg5bdYgvdVGAIgUEAAO8mvLl1EvOJgkME5a/I/mK6MLxByuCMaT0RMr
|
||||
U9S881f+AJuJ3Qxbbo8vN0Iy9KmiCIptcSMKBKLHeMonYaXM8O392/XUKbgSBXkL
|
||||
oTOybMT+LZhO0upOhpRJqmtyDT1Wjxp7FBku/sUjJXCVy7YpjwkkLxZmvWIhleb7
|
||||
S8uJAhwEEAECAAYFAlWs/LgACgkQEstOl+B+Z9HYNA//UKMSIfS0bdY6K+zhxuMS
|
||||
lIyol8Z/ynkDZSZ8SOeXZViLyRCRoXhY2g6JsygWLsZpthI8fnleQhwy1GLCxWMF
|
||||
n/PiRjj++VHoJYK/ANP23bC+tyl+jT9gwoPF0eGdWnnot1jGO6f6jFqam0KAL/XN
|
||||
6ePUrNo0jbrYVrEUer20PYsM3tqGlGgOOFikMoYWwsAVOEh2I5Sgi6iAYfx12RYW
|
||||
eKw37loDwSr2FNZ5zjxdIyUQnKN1YMd0/Rfi2d86OVD7dV2qa94TFUvYmicpdcOM
|
||||
9pogKVGmbhz7lirjuAidRhdZkuU+rxvIAd07Oc3bQRdsUCJAs/kjO71v9ov/NqKu
|
||||
j/BLixxIa0D0eKE41yL13RCfZIG46nI/F5PvLXhDp7sIeohIWsvYv239A9yXfq6B
|
||||
TeXZ1j8YTlY86yN38JStf8pbGWKlGARM7e1o9DHYY3irLCOWCAnKmF14wbbTMOAe
|
||||
w2VzxV8895Bweeo2fyCOGFI6SzvOSaOQPUlfmiKmtJrwreg71Vsv64X8X6FHajZY
|
||||
V9dYJFS2gO8cYJ/zajzn/oeYVTtpsFpJmq7fWByjGd7pAnZHuuSEy/57GEptmYRu
|
||||
zmI2gn7vYz1rZAbLThFsk/auCU3VYke8Dd3jHnxBuq2+Pa8TmLxibvnE1ZKd0gqZ
|
||||
dMNY/rT4+LZI+xDczzF3Z7mJAhwEEAECAAYFAlWtLOIACgkQirEyljoGU3rjMhAA
|
||||
ijskigHf8Q3D3B4Oz673cLNOGfAyEdHWNqlJW0Vcdo05iF8q8utwqmziRWw4PbpO
|
||||
cdPpUqLb61rWfjSkq4PVTOr8leHHNj/a4aiAYt8DtnpcwJqTmktiijo0Ptn0v8ao
|
||||
fdRJSVLtPcV0FydLzK6oLovszdWAQ4iVdFjppvdDJtjT4ooXFmZgZg6KzqjEGm8G
|
||||
4wS4tMlFR4AJZIpWN5gAeLZhCg3jfuKWEgAIVwJZfVPp8qFTIMDCbHGcmszqeDKj
|
||||
G5hY8q+KeQBs7/jjibY7QjSk+qFvWPlES2NGCnjrD5NL+T5W0AlQZS3kgbDWbnSm
|
||||
r/xr6OzL8+bi03J3gRW/oWmCIlzvxUJuLgR5M3TRS4GqYfNVs4etgIW7QZXwTo/5
|
||||
W8zd5P8UcKOuEFPtmfRjoRZYY30TqrmO9BQkHLKcDbqgnWcm55HaRdkK6+j4tKik
|
||||
f12/VXez1tP4CkHcMJWE4g3poANtZmHia2MPO9/+1P/pCxUb5jwBF+CDiDhDel1Y
|
||||
8b7u/ERIugpl8TqGJx+GkUlw0cotZ7BoweNwLXwDDDQlIoA4BT+LFLGQBtUQKMQY
|
||||
TrDv4PUucMfB96yiEwlw40IdkmHgcBxXFNNxDHMsxEIW2TYoITfmkShiIm7XkcSE
|
||||
oilPpHFmh6JXpnqOsBhfO0FxKSWkNjsCKCMUGLww5kKJAhwEEAEIAAYFAlWs//EA
|
||||
CgkQP/MbrxBL+eLdOg//Z9Tcp9kElDdZl3e6aJqGpGviNqIA20KbvYrham5Kn3B9
|
||||
1LhvMkypT6fZWAwbNCBHxvOSbOolcSSLpbaHK3A5jsg5MhLJ2G3Xpf7Z91+Mqg/H
|
||||
iOiJkaAhPoJ0Ny6BCB7jg3yaKLDP4wBwDbOH7JWuP7uQmQ12mqu6WFxok7e53bH5
|
||||
i4gmu3QIO21RXyWoLJy/1Y5X3ljPZ1tNawy/Sz8UjeLau2Sl1mQ6JxWWCeLp7Cvw
|
||||
p+j6nKOFm/hVDlgnFrfIp9aYHjR2fVpwIFxvfff94gm20EywerlcGOAMeT+1QKZy
|
||||
1V1ekBVX+2zdQ8RPJGZPqXyxnLg9SyUhdLJBPNDNe5ALfolfn2pvBGM3hnRunGOs
|
||||
PrK53WjGqvXXYhyIkJEd+UoyQBp6zUY/KKFK/7yjgZxX7sCSwNjDlFT2fB1gfll1
|
||||
vKoYocPQl2t/B3beKOZJzBkSMk1hBdE0A7URkOoYrFQTdzsSUVwY+/0IAhvxqGKc
|
||||
HhinLDFON6ee082511VVMrSbCxcnsThjc61CMYA1TxL01Jzb3QIoTWT3W1t2HRZD
|
||||
/aXcDsg6UMHm1xC1MdZKeKpdJWrnnseC9b/tGuqw2EHitYDquVBmPkx0UoAdsbB5
|
||||
ec3q8n4J45VJFJcSrrps/vRSNn0bUqcZlpZSZERdqBTBkbizxgFnvJx734JLhlaJ
|
||||
AhwEEAEIAAYFAlWtG6MACgkQlWNH9vvzpBVikRAAmfUzps72Opq31lRHZXXGD4/H
|
||||
FP9SyYRnWzaOWGDMfgO9p3IcRl3qRwOuThCvn+qxTHmRT8KUD8uko9zIU+ttx/zx
|
||||
An3hvO1nCzsiW33N4vU+Y78Uvs7Rumm2CNif+dKDL41FnVpA191b3T3NGWfigvqB
|
||||
78fWv/WJIuPJuAhCoJYFbK0Vv2/QF2UAo9O2wdBo0ELZKmP5tWfJuLbc8XzuzgaP
|
||||
4xzRdgJ+P+IFA4q1zQ49FHQeRWBSWkxFAp3iI9sdH5Na+Lup2vLSDYYmdDOyII5w
|
||||
5QQ+Y8M78Bvt5GBOk52KfTH3oNjDwtd7ae46yWrSy7razs75klSxi125IfcPr/r8
|
||||
e6jt08WVDZRak5mLPryNlf/Y+ymFe07aIp3eiKO1/SJp2K73fCTslXDt/OuzKZSp
|
||||
656hybxUrRPiXBxHMOWkcPllZqBXf6GxnN+Fdyutk/e+0EBjpK02AxHY3igA3411
|
||||
2ZGTGXNCL8ywTidVweOfjyqiWAnCSUvF6+efjRgg2mlD1g6ZDRiKpl9p/ZGETjCh
|
||||
urlpGSKhtCZWZIGt0x0iSLy4surqDrwwuBqEPSZ08KRr+q9R8HIPuAwjq2CjqDyj
|
||||
DFNuLx8dhbUUVIAl7a9nJotsph5VK7c/BF0uLW5YnPJYsXG7z1KixL2ydoH1kL41
|
||||
zXdcIWBP8H7yPVgUxCKJAhwEEAEIAAYFAlWtG98ACgkQvBcwG0kbPyEIVxAA4imw
|
||||
p7Df/j5ZZcZ+kkBwAhFO+WnJMfkNNl4g/7vsFKbWFBpiYuGmlvX+poM3nTsWCuEv
|
||||
v3QohbZHGJS/hY2kdAuxurTI6w4FvvJ0Akz1DUANIF9gfJ9Omu2Znb9xG1fzyCSc
|
||||
EzUgaf3aim7zyp0arjjqR/msmd2sCjqvy5VgRK21tYAfhWmzdJQntIlCEExfTh9x
|
||||
guELDLSK3j7ngZla1T3BwE1dlcPVD6l9bl/7ZV5uXmotOqFU+1dBcFG4NKNXmnG5
|
||||
TV7x3Ih6Xt982SCpBgVsEow1XFPf0jflPBn6DGJsgpmuIjdymgpJacwZCYkGbTSj
|
||||
wAeSibYvCw1MRYtrCXd7KlmmQxhYTvvzyoQSqaiIQM8daaXddcy4IdHoOoEJVzfA
|
||||
/BCyEkb0KhhjTWXQoRBXcxhJYOUjH5nhHd+zml+MHHiy1dL+xANHaBzFaNHpxYUs
|
||||
FN2MLcMW4rpCnOx/8pRu/o757Y2Ps+ypLUbGPxZJJa26zYXXTAUDDEgEFFM9Rifu
|
||||
jVCps146sRbrodzgIajc4ScgAWVkHDTKYfq6IBLJZHp8KB1fYFkVrUtwjMmyZCpG
|
||||
7FqWITGTWOoRbYAsInWuzT7PN+vb/sk0xOk1PzSJV1CmCH9izKrTqRAU42jd4yqV
|
||||
IuQ3hN8wXoeolSlK3wl27fDtK2EDzVhklvjGdreJAhwEEAEIAAYFAlbwOBsACgkQ
|
||||
RPRuFG0COV30vQ//Vzyu44NJZrDWdrAyMngMOZ+qIUkeRdtKHEzAFXl6je1ZLyXT
|
||||
aSKhyWtdxD+NPA4E8vQbEqbcpvzkBhOgfNgVOxWUxC+njB5xhg4PuZLcffm+98S3
|
||||
ncyu+bYuhA/kLgOJA2HL1vIQEobdM0XJhVM8G7bhKKSdS5NUd6BS8AgKL5YXbguO
|
||||
ZwDVq0yuVPg9VNqG5eTwL8fvZhH4L6I5Rh/wv1g++FvnEGRR+7ePprkc2pnJC8j3
|
||||
7Z08YzRf5aWCJu89EDsL8wWI/jydPcGLnitNEROfovRX/A647VUl7M4kL0oyblJb
|
||||
9JFbzPK97YeMwQTUYQOHIp8KsYYKjuBvq9q/Rr9DNpyijp1pshfjEiEZ4YDjTkGX
|
||||
uWu5EMSlVpC4nEtiBlKT3kMk1mqmc2F7A/g5ug1w+e72E1EbVJMDtAgzjc0+V4kt
|
||||
RxtTGa8PlfyWouBwL6ReVpEyVz3NS7++QcSY98DgMODMxFggna/zf3bef/lC6RGk
|
||||
kHyIOC+IhI+q72m0MjdCmzsSA8fqT0PNYs349+sCKw6ocgjSHZlR/8gEZbZC+Fwx
|
||||
Jf6be2N7eo6hYctOe5XpLaMApVnD3qtw6C9CxWJ4zT6WLyI0SAF3YWmIgLtlYhfF
|
||||
nRs0ObRXiO7tz0FBuTXD3vljjzq7t8DDK1IS4Cx5AnTZI4rz+/aiD0k5AhmJAhwE
|
||||
EAEIAAYFAlbwOPIACgkQt4bvJaijiaC0TBAAppcnj7MhOQh+yQCzljw403/hEW5/
|
||||
iVEyhfkEtF8lnJQPwSCvKphln4B9/E/Z6HBZ5MNew9xj/JrL/JZfk+E81vSs/fhg
|
||||
lCXB83bFo/fZ6cnqhubcPlXyXLSAY7J195n+DdInbza5ABuaJW6UeVHbGGM+th7L
|
||||
S6sYmzoOM1oU8mLzugo57M2a0SZNE2GTjeHFzdeFmKtjk6zGhJcdDMvKNalQZyuf
|
||||
KSEc7+9j5r0KlJOWY4VMqfYMY6qgiQ89IVSutWbhj+oiivCgi030sXmrdOSwG8/G
|
||||
gufKpYOQ1ZLXrxzowYJ02vAewYCe20PTyzGt5ReB9XkokffvHnKcxHxhyC6HiAyG
|
||||
B+8+yf0tJk4Fd7uW6zjGDvphPQhH6bPObVVaMiayEfJhhHbRNmJnUKXRc2CGL0X6
|
||||
vbZ12Y1bAALAttEpsNC544WMwLfUCcGfaRTF1E4OpQucU/uizaxGPiUd8Ateqt+m
|
||||
3GwjY9HAb9QN8ejiOTkH6XsYSzw4KA4iPqqMySHY/DMyfFuilNWd8m93agApO+8r
|
||||
9+6xjurnbkh50rYtunP3FCMul2QW1wXaGxPTt7a/IcL00NRVwZmJwa3Ys1OrYMRA
|
||||
OXM0QvRzpHZOsuqHG45jjaRejMZKSQL0zJOyKgtv4YrG1fceLrZWvu7ZjWVNd+0B
|
||||
nGitgBkGm5VQMuGJAhwEEAEIAAYFAlbwjIoACgkQpIWg7VG4t8QFOw//YFD2UifK
|
||||
W2VfUy2ig+ewXOwe/BzVfweN/Im+HSN94ooTEwR5wgdYIjxPV+eEKFfAEsazv8b3
|
||||
ktZJI+/IxEalHBA+mR4TC2/UlrOgsVCnTHYKL5yJRVHPrdOQ+Zm+kk4vszYocDtC
|
||||
SPp+/aoRE8u91i6Qu0UdGjMe82HG6qdzVj6bXH9ZFRiWRsfkGxB31cnvfE+aZB+V
|
||||
qfuy0pbqegJXUE/6In8XRsS12xAk58KM0b8jKQGqYaBB6xE9WDpip5sPycougy6U
|
||||
29170n+U57c6+x5JQhHC/Rb2AqB8Yl1msC4bj4UsqxWHmLRdcqZs04GiVsrk2fLD
|
||||
fSfsu023IZPyOhaV/t2KE4DwnAu4b9Sq7PNNzf9yrsgRL4c4OzWEYpMzt38V5QRt
|
||||
ETJvuuthOypREVNuIs21oRomMJd+PjGsayDuKA7xe/SxDe8tPkoy+FdAfevPXfhy
|
||||
NWX0vTtcZDpVustEMmoDs7EzlBddrNplsnRZoqW2JyMLErLujc5N8juDPqmAASVy
|
||||
d7SBUD03e8apjzZSfJhbZsxw4W9z7+rETRSy7o2DPXCabjTGwB1naIc9W4wU/aWU
|
||||
N81qZZecKLVLxpiXeoUwF3VIJme5Ye1KumsQpTJoi3tVmJ7XDaW9OD8shJtvhlOc
|
||||
ddt1E4kl9iximuLfhzUjPJyS/ASYhpPNMVSJAhwEEAEKAAYFAlWtDgMACgkQw701
|
||||
5G3UXaVUfg/+P9+3vFqijhzT7XkLuNrI9GTn3KslTAPU0Oe/BdLPTMKELqn1YVxk
|
||||
lnrznLbjL9qkwYwXxY5HT6ykeS+CzQIDLLtXqR1NAz3EWVAm4dT+xqaJZmfCoJ40
|
||||
+VqZdQHLjgmj9PFTK7f3vyZ3Ux6em7Z+h7C1ba8jYZS+6GnmGw6+v6LxzRh1SFUm
|
||||
YBj/X+GPBYg6cnymr+9b2CwTMbczO5XN3hU9UtdF4UlupPvEuV5XWFpCw64kVwxP
|
||||
OQvvUJ3aTqEGiCAqd8ntyVZ1MWtaob7GI/bj7dTOoSogUqF3aZawfoUHPp6izTd4
|
||||
8aRnZhpsK47Y6jIaHDCILhKoAESTnpN1yjqaRIbviHJyYFOHnQESTS7AWrolQVmP
|
||||
+pmThZWauh+PLVcs4ktp/6CKYvmgnP30HhrPczE7RVKIT32LU3MvT3nFzDmKUruK
|
||||
eLUNO6LnJ8XwZEVIE3TOVcF+2ME3EcKfV4RwAlBBgYa8DB/CM/rCtoyxdxYSRpHn
|
||||
9bxbNL6kn+CPAwRZGAChfOPGMhHBh3iDUJaIt79Cq9j6QcZUYfhj1sIvvkDyl0Bc
|
||||
5U4slbTM6KP5aZgFlCcI9HWwGx/5qIbb1rQNVjxwtiUWediS04YaQ6yt7f/yXbdl
|
||||
hxPdXDMe/9gdDyuDvP4+1FZbDiV6VT7Bl+UhQnkwf4kuCbSMFjdu+cyJAjMEEAEI
|
||||
AB0WIQRZyp4tKjMd4lGqJCdfA8dnwkek1QUCWQ72QgAKCRBfA8dnwkek1aBpEACI
|
||||
6mkO7aXYQyejkTbSyLdE7FoNI4Nq6aKvvQLt+vlGATLgSdz8v7QLGd3KkJYoO5SY
|
||||
kKjrkGZG4Nb3GOCnWnewBmvCqt7C5/Idl1JTVPdF9CgMHQkwP2F8Tg5X1Ag9oZeL
|
||||
yRKB/xWbX1LGizRy5s9G6yhq1rwoatNI+Wz36fdCmCqmphm92uPyxuAxy+JZhAbT
|
||||
/vmANGKlEN5Wjryrp3tmMEhnuJykWq2ZxYiJ9jpx/cNLyjf8fSDBhLXOTG0FYBrZ
|
||||
k+ZJtw1LlzA36K7IbnunO2qOJzDgvemo5FmGYcm6hyYCzqxBj1VJDmhHu7NZMeMn
|
||||
vT4d8Py1xBPGPFRYmaK5AP/D07cdDPYawlZA6dMPGE8xSfQxbrayJrj0+vpjSJPt
|
||||
DUHrg7L+PdpvyVxi8Py0Zfe05h6SjBPrw3eTQS6ODkoZQyh8D7M2HKUiUxvfufvn
|
||||
LEfeWpd7Vp7hl/VdP3TtbOzL9H/89O5ywf7S/oRKaqgOWkYhs3cfyjqz2boQk8nw
|
||||
N29sLzm5cH+APxNcju7sz07klp8dRNeImbmgj8mT1xId10mAixJ0NOY8udLhlwg1
|
||||
UfsYhP+Yvy9yMcoSZOs5+RjluW/E2qubP3RUt81ohUupdM0NVUJiR/I3Ri6ARb3V
|
||||
S2aAGtW4oS6PpyVT0dkWrlp8VqFpNTUKE95dNi5Og7kCDQRgos3VARAAtSRABroy
|
||||
kqOO+3Zq3pehRGM2aft2djiigKhhVg+eJr+YffIU2Q73l9zniYSzVMkFVuJPd7Wk
|
||||
BnlEMIn8BUGh04op6MV+kzX0guu3v/9i/0agNS31xAdXzmf1i5sbQU1eRylyZRSi
|
||||
sM2iuF7BYrfSsOBHv71cf+iM94KxrzXiB1bDNL4DN0T5+vCoDjgHaXbten4Qdm6O
|
||||
djBCUv9Ix8dhT4OzHwHOUK7gomTrQM6Hyb0vgQsDXKV2Ps/pWOSk/J2cCrQUrafF
|
||||
qkVAAC3m6kaGU8te6YlAU7GFcf4MOPw15WTM2iaKWwPkwK9b/Ro/5RfZbqnde8EB
|
||||
AoFkg0X8mshGVDBtYCaW+1qUA3ZBcQzUvosYUsNQC9Nx8Y9/tkqCwIBUzsxuIrSY
|
||||
HxeqPThxSMvCmg2qHXmmbAxsbOz3DTOwKpWSRGOCTGFpsLBqWigjG+L+9iIx+7kr
|
||||
2gH8tYck1RPyQm04k9udD8wwXCvylTUzNVd876sN3o1xySaO5nz8JtM//xPPctFF
|
||||
MZmC01bBn+jRuapDqY+qTFL+eKherOUZgs3nHt7cEBz3m8neGg0/JhyBwS6sQF7h
|
||||
0ETBapVDlKCRuvAgJHIrjejL5v+kVRrH9L6ey5CAdRG9SbffsNwZoo5o8SrdGcX6
|
||||
hpFiqg1jZWvZv5x7/PPSW7fPuNNHsoxVRn8AEQEAAYkEcgQYAQoAJhYhBBTyZoLQ
|
||||
kWzdgeN7bWG3tSbZjwNTBQJgos3VAhsCBQkDwmcAAkAJEGG3tSbZjwNTwXQgBBkB
|
||||
CgAdFiEEQ2D+IQnEl2MYb44h6+QekPbxL20FAmCizdUACgkQ6+QekPbxL22N6w/+
|
||||
ObmFWpCr0dmV1tm+1tuCL05sJ031KFl3EkH389FmrMMoVk49e7H5Urn77ezQXO9M
|
||||
e8R0nZgVUavJdKcJzgf1IZtLq5Vq5q563I8gglr8rJaaefGYuv9jitx/Ca2s+uvJ
|
||||
MUHgMeBPmFFOKoIF8QgOJdkSht2lIkd6bd89ayLLoIXlGi8d6K4tEWeMigtds9FY
|
||||
cyX7o8xXmt9XqCIaMbkJtiUzjz63dN0O81UCj0TvK17KXAvclhzrriZuo2rOeDTB
|
||||
cQmKKy2UKZaJjUqiezuOg1t513ZIzhy1oXzg5CJb5jgsmZmjtJjr161fv5d8Yock
|
||||
j73z2/z47wry6ThESfYSkIxJIiIP5SwZyNMeeHSZUnaMTqzd5kDL5qnNrhJHCBBy
|
||||
xcIBcGppv3VjZ1QNU1k0Tx+MzpfZtbE//idw+Q7Iz9T/3zjN79JhYi1tzzaaQR6J
|
||||
oEiNMpHHkdkOGRwfdipM7oKl7HKl+zJCzaLTE4mbInCxSgn+1RhI+rGzTXVxqIKo
|
||||
nYrWra4EVBAgguMrxNMjuEtbsF54Q27x2+H/Mew+et6K/suqyh63Szfd14LWEj4N
|
||||
aR89tEz76nJyJFuFtDeGSmu68/Pi5S8Ls9MxKJJiIJmc3lQqDUTHEiLc7RtZAsgA
|
||||
WlLc6UnFsaCqXKJxuaMs7qFD7pqSGfHxYboBxax7Sqrttw//eC7rghiFzfcnEZQn
|
||||
6+GPW3FJc5P1diSLto99six3uaWKjvSnZScvPOe8ogJt1JQpQAABoHfd7HzzlGzJ
|
||||
tU/yDL931WD6nETp6b/dk7t3aUpk8WFMG19L+L9QbEpjxDi2wozO7CGg6FhC7mu+
|
||||
KsSsorLqd3QYKoBLG0Pb2K3Zz3PN7y17kf1Aixa2//prFNfpEGwP9flz2TUvSdtd
|
||||
9JvcnDz+/3yB63tmuCsUPZaR3lhTkNiXZG7WTALA1AqIUKFpxI+cOQxaO2+H6XXi
|
||||
ON3x8A2Pzd1mZyuUMPk2c6I/c1ZfzJXxF/WJVfuztZXNCGocYF4kB3X07uOuiKrI
|
||||
DMXDT3Op3wJ0RInpjyyPlwwov3zIVQcG3mfWPclXNcIRSAdadLq6yhTBUVbhMd2j
|
||||
2qga1vtaVlH/m0zFhib88RLf1/FiVX76D1q+anG+gT+SsMPd7hSGQQ2+6ngBAvx4
|
||||
T1IHtFgPqfNaA49m8b3aAorGo6Bbzmwh4Xr+7DM2fSskBskGdIPZgA4Vyu4/PC5a
|
||||
CTyd0NqlBgj/g7XRQMGvFRkdnEIcVZbvxdzn4j16dS+43dUzFMLKThRbkUaunaYo
|
||||
ZPIYuiqbwCoFX7vJdgBMaTxYfkClc5LJSVr+X+9RYNwlOn4kiQzKstVtl/qfpDow
|
||||
6QsGmA9J7v8Vt9JEg052REcZZmC5Ag0EValA9AEQAK/z677fpoVUj4zQz0g60wVW
|
||||
f+1y2lGb8iFYICmvrJyaEra5SRkyihYA1WmEzhN4T//tHw3UIfe646+GkY3eIQW2
|
||||
jY9DM2XaElmMN8k/v54nbn5oD7rNEyCTFTvCOq5d74HH1vw96Lzay1vy45E7jPWv
|
||||
qfg9Se8KAnzElohTJjizyhU+0QbmPHnQlY8gOkT/SvRo9bFEUnqjWh0fRq+K1tdL
|
||||
PhcFB1scc25iFqh9IAKUGDur8jQ+SDHCjgQlkFOg3rbqtaUOnVHPohfrBM90ZNwu
|
||||
neFgQY7ZFSUidCimp/EN4CXnzgjDYXUUA42S8G86+G4KAJC22gRQo4mcVmehwHTH
|
||||
0glfLmUK7TEu29A1KWNL3R/R7ZdyajjpCvUaK2A0Abj3ZE2BSDbJrVlbBVfy5kfP
|
||||
dZjhd3wUWqFaDHiVcImcjZRWPncllhcy6fhqEy3ELZrkezpJjnARsVkij3GXz6oX
|
||||
+HVULne2w0dkTXydR6muZI/GeNtrLHmA8B3/0/TllmLy8ChmYZVIKZ8zt1ghq3f+
|
||||
hFTXgtZil7eBewZgA6L+EXXK6dZj14lbe6CMS2kungTX9stU1s42I+WRbiqiLpAx
|
||||
CX6qcLBOWrJwsOep2nvu5bhrPHptSfRhF4Vs1xteVFckCWhcLgdYi/Je1XBEM+AA
|
||||
Va0k1FiywCg7MqlG6toLABEBAAGJBEQEGAECAA8FAlWpQPQCGwIFCQPCZwACKQkQ
|
||||
Ybe1JtmPA1PBXSAEGQECAAYFAlWpQPQACgkQHGnE5V6ZBdsvxQ/6A62ZteN0b/TV
|
||||
fSJ51SdG66amwe2rpRX4UdSw7ifxo3qhgEICQmXR5c09qXwl17MFJWM3FhGrbxnA
|
||||
5KGgeWGtqrPup4QZPKU+l2Ea2QLSJSiBq5QqqEgZvR14Lhr/hCGhBAq9s/xbp8fb
|
||||
KNJj/uWiZ+uTPbt5T5rgKJ4+g3B6DNO1rH7F70OLrd32mxZs4pSxngHRAyiMPB59
|
||||
yQVDsVMha0JTqC+P96itUzvnInc/9mwE0EMiBtpDTkoBwbJVPnuv+7FjkOLn5s5u
|
||||
3RLH9fe8z1xnV0fPC0/ndrlNiuBpAn3zVCsWasvW18Vz8K+CQY8Sw0Jw75edBgFo
|
||||
z2QMFxHfDpMJefvMadB7mdte1lKk/Im9KFFH8Idh9b6zD0a/+Ooujukx6QpFfAVh
|
||||
e2sT2CIm2nmMAuAZI2cCt7SC+REn9n9MSuIWxN8YTE3qgAUB6F3ea0O0hGlLl+z5
|
||||
UOfX0bNAs+ebx/P6PczJtDzeqpmRb0QXqo55JWXLvmXT/fgjF7fNTTLsyCtV+xH6
|
||||
ZFKGpvGJGJMHApEbz2a0hy12RZH58eI1ueN3Tzn8nI57+oYSsqFw/QgcdGXDonLG
|
||||
JsPVzIpQRg92/GXSukWF+MsCjVOilHRSY1wfPPmJ7+kMQ4rdXpjAhwNYJc1ff5N+
|
||||
omCxCKoFgYsCXlFCHFKs4JwRbTdd3MkuqBAAlBlIjym8NyJIBltfWckuhQTX4BiB
|
||||
ltGPNga9CpQsml519EePuLtoe5H0fTUp4UYbL0ZzyJImQE2uw/hMNZ36bA057YtH
|
||||
OoP4FcPUwv6wsl5JC87UR1XFhAXb5xSU0qdi3hWh0hm772X6CBlM8lM6GtT/fDZk
|
||||
SGNXMQaIs1X/O9vf8wGg+HwLJcaCvybI4w7w1K0R7WjWZlJXutCZf8hRc0d88W/q
|
||||
SZYooKD9q2S7foqaJhySIaF11sH5ETvVP3oCfGVIVhKWb0Tp2jXPXlXLeRAQA8S+
|
||||
4B1o5XHiM+J3SNXhPQHRGQ3VGcDn45itg3F4xQX2Qvo4SV42NMYd6TykM/dIfQyJ
|
||||
DOVg3CT3+nqfjCknf94SNvyZprHEPmpcDeseoPMw8kjKNwDwPXFLxBRntPgnqVXD
|
||||
cNN41OH2kqx4jF7FLlRmwNpB2mFVH8xeVuRm7h2WZRsaEoqvivhzRtESVA2um5Eg
|
||||
763CVTcNYlK6MD/iy8JzbMuZBrlOHr58HKDdcOy1W0z2quESGoqrwA995IgPav/1
|
||||
DSpyuJPNc/oUTWlhpYshqYKoflezAyKj30+UzC3R/mY03ri6zUvCgXHNgZlKUsM3
|
||||
VEXk6h5oDuaXniHLLzuxjTBVrILnGYgHSFRP80L/knz+o4Uvq4wj7NHnruc5fP1f
|
||||
oFxRNsMt40yRJfW5Ag0EWUvZtQEQAL4dTYeBoI6UxWcu7kERc+Tz13WUwSPmOIU6
|
||||
RdoXqBc2QyOki8s+uDqIJbpt2YJUPWnPgoU0rDt+msOG9tpAjPVg5pHJe8H9tXxv
|
||||
aPICQ1YxYw1m8E1kRGio4EurP2G/H/YI3vwRskqI8cp04t88k1DfeKvXYVY34kO/
|
||||
VM12XTfRcsiMdmDubTqNPYU1kmYNeqMT+OzI9QE2kulCK0DHDJzqdJLnOkrn1z0l
|
||||
rFAPoNpVtHZh4D7yB8FH3I1qk9npRdNXvSjhXu4ptvRuszktjEcfHK+ikYP3jVqR
|
||||
4eWiOKrkVIWJOCsOKIUE27PXndGLbUuDzCvrKusR6W9vF+mYK1p3pT2PYX8HEeJu
|
||||
zrd1UFBvCWPf2k5RQqHk4JIaKfjAlCPnSXmPHXqSGtD083RJhFkbz4U07/glHWer
|
||||
+M+Sw+hYT/v+XOhQm3CG/PUaeX2ud6GFefymX/tA1FYJqVxVOye2axoA3lO7yM5s
|
||||
K/JHMdL7bFZtXVcGCwAqU2mkD2yEkFAzPLBHKigKg+4VimsTbG9jPOS+qtv65x6u
|
||||
IOOsic3Ud2/BB/lfbvplIvQyJYw8HKb8O0XkUPcD3Q1i8p54JSHhiJm42H699uMm
|
||||
iJeLzTkQJG7KApEv6nOb+jLyr2DZXuX82/UvZAmzWZg/XOf2xz44/RDXkL865dqR
|
||||
YenXNaOXABEBAAGJBHIEGAEIACYWIQQU8maC0JFs3YHje21ht7Um2Y8DUwUCWUvZ
|
||||
tQIbAgUJA8JnAAJACRBht7Um2Y8DU8F0IAQZAQgAHRYhBNzqxdlhNbkcTqZyq7u+
|
||||
vbskxvNVBQJZS9m1AAoJELu+vbskxvNVBVMP/21uU+8NpPLpBn6SHJtIAffFYMSn
|
||||
p0gplOjfiItA8HDbc1vqZlVpdk2xyFw6b7g+vTg1gQzF7uoAZK1czRLCt7ocxntL
|
||||
VgPuSO1ZHt4hJG5Ze1UUJSDq8Pp+TTL43rg6irDLdYDBBHYESnXWAKRAIuPb1e15
|
||||
6pAdpSynwJ3+qPyqj5vDLkPrtMWGp7qWQpXcHaXMea8m4+/RLNIjvRof/t6jrUer
|
||||
mzs91Z+/C3N8ugD/aZrXTiNkF/H6BiuITZoB0j+rjy4fxEQvTYq9C3NoaBIRxJEP
|
||||
ApxGnHKe9K9N1ZBELjCUCT1MkbBmf4CJtEgJvSScVh1yZNv+TVDfN6RwF9CwOM8b
|
||||
VrOH1VuX/L/XiIRRT02eGrvv3EvQ+BhceJpWN+GsHKQM658trZ7RhHo2PR0ib+D7
|
||||
hWQprcktqutTfRFPMrgcFTPXKeR57cxvjk+B2LoLSOom3oTNEtUaMuBE8E/jbONX
|
||||
34QsHWDKfLc3XpLEN+bO65AfTiR4/qtnZBmldBUG9xbrW0qcWz+M5P3S6ssbor3V
|
||||
DxxrX+Fv6pJccwlgYNFQxQOz8GrZhF0cU48e+0XpU2NFeyueHQ8lb9yYdvhc7mkG
|
||||
c87iIb+ILah57Wqi52Jd4f0DS2zkxN6ab5/UVEkffNwXfjN0IW28Ga4BtZvoXVGV
|
||||
Jo4vsGytMFdMRzRB/uAQAI21c3TTrO4TL42NcFQ0RY7yAlaKzXTXVNxC8v/QQKIs
|
||||
DrNvs4w15rF/t2LXc8Cr3aUNuDtE7x+FaNwZLypCe+RFOy66AG2ENuNt5tTGN3mg
|
||||
bJZl+01Cd1xPpOzmRfAJnH7YD+J4QuCEEgraAXPfp3MhjeHWtQaWDu29fbTtPx0k
|
||||
/Bh0qxHFPWxhnYpktnjZEoMmwPMBeitCvcr66UzUmezgVZc0HxJ/LO9Bss7P3egv
|
||||
60wPnXn579wDGnIriDUhHRcn2KuMI7eT4pL4HHjAAJB/8+vcUzYPuqtxULf5ciu8
|
||||
V+ajzHtqBcgwNR/gm/7i+4qKPo14fYBftH5PDj9iD88WIQX7paVbYHJZjrmnpM2i
|
||||
niL/DRVuxqAPToIc4hMXj8YPeTqS/1ckOzyYgFI9aRaLxZOR0uno1WTRBifwOcy3
|
||||
NTwSHK/6YbtJbqoVwISJrGUuvOfBlkJZVlCzVsPG1+QZaPAL3HxVXavYgCu2hze4
|
||||
OOWUe2Xuqihw8hb+F1rhP64/QtpjPxgLLb1NIBpm6OgdZjRjCbl9xnd3RvH6hYxO
|
||||
+zgdn3icn2fFHhdZ7xtYcZZrg9QOXuv6LDvVe5I4VyszNs0jtdcx0P+T5VIrKFAY
|
||||
yf0CCuL/UQTRrW0SrKOV/RZHuvdpVYK3YIAyd49kKjLk6O9awFQy7cXq3PhjatBi
|
||||
uQINBFzwOeoBEACt8eaLW7jX3n5tQQ+ICeGOBIVbzAnXlH9bjdTqollM+iiwkdlB
|
||||
NNEGku7+uQ9dTofem6cbSUXuh5kJNLy5tUIG4oGZLvpAjLdHP8zslgTglQymoWSb
|
||||
v2ss4pq8xoDbp6E51dkowkyFSuELZKMFHgPiJbfYXxQmbwEiFhGs4+21lwtI4tVO
|
||||
9zs1XbzJD9XtomxkcYaePeBxpI9JnrWIUKt70JPZi/QcxPMG2si/YitnCVamcVw8
|
||||
Wri+W7MAJW3SyNjJUqx/cIOib8vdZVxvdWRIZmdkWkFO6vv4IotEBCflt6cD0EIy
|
||||
3Ijn3nDDf59v7wpdWXidjzVjKF0F8jUiX6S/ZuEz4lvdotpCgJGhDmdi4pVCYbmS
|
||||
hKbffgcSJ/BWn4wCOHKPA+XB75zzPj17dcWR8D9GM/sgusJy2fbHDcOdADPynKW3
|
||||
Ok1CENJDx7DTDwm2fPRMut4utSL1FMSl7zBDRabcPr1nw+zERjmSjm3R91ayrQ9U
|
||||
KlP/4P8Xkhjc3FFWrRQ1Q7/SlkUmrTqSouQcOolGMa2ENNgqNeOY7oE5xnPs64TL
|
||||
AzQ9z66u0dHTMODAS1A6C0l66LrPVYGoQLDkM7WQn7zznFdnKR2nsPOUi0mMdyrG
|
||||
/62iARtNvuF4xdsUAoCKti3wOsXRuUhiXei4N4qdr8IaIEIFgYEKKtaqzwARAQAB
|
||||
iQRyBBgBCgAmFiEEFPJmgtCRbN2B43ttYbe1JtmPA1MFAlzwOeoCGwIFCQPCZwAC
|
||||
QAkQYbe1JtmPA1PBdCAEGQEKAB0WIQQJezEwd65ioC+E2k3xpmaPu31XLgUCXPA5
|
||||
6gAKCRDxpmaPu31XLopQEACKv8mYt4aMc0oA25UJXMRig2lXJDqOZBUSvFFm8t6X
|
||||
gdG0zFdzFo4gqpje68kNyt9duhvOMsVwkzUr+5Di7FccvgwceU3X5ngWpnV/GcXg
|
||||
79m5viipWUdBRoyZ90oi4D5K6fhlmszmWyiD7KDrjdtIdGnjAuprztkc/JBlIwlm
|
||||
u/40JyDR5Dfxp256DlzsJ/HH8LbdjJG/F0XvtZUwcHefa7mDXtIWszsMoJnEoLzO
|
||||
kZvJ13rhJcTHVQImClyS3o9+Pk6DTfy4Ad0w+9nF0rZp+8/GXZGilfn/NXMj0elY
|
||||
u5WiyCBqargRkrHpebNKW9jxRca02aDS2Yrf8dlseO1d9FXZPOBWIxDRG++TqRhB
|
||||
K8FUW00DikRDrrV5RsIiXtgtRqH+hwknE33i8m8/KKC5/pUl3Af5f+vMKsT3s1mM
|
||||
X2zA+NmLUxJCXLz70WqLoShI8QEj+RLk9yuk97bo7KoNSv6xNwXotJKzp08VAnVN
|
||||
X/QddmV6Z7SnocEs+S6Z0L69sEffMgUaCkH09mIt1yu0DaeOl7fM2iD3VcO6jJ94
|
||||
Dg8olkhBgrZERe3sXR2fciFtsqHxYc9zP7YyL7vPbUQ8BogxEfIQZPGdpnG5pTM0
|
||||
NSX/mgkOWI2VJFDe/rOFTdTk+8mKVnFdaUfHA48qIeS0V0zMLd4OZkrYlW3iKvZp
|
||||
s6IAEACauiivWdvKvJgKMyi3fvicXn4qL8nV1X6lmOBqDn4bb0N0mtpiqXfvG950
|
||||
+29rcCJSj6qSMVj8ZHuwVktrEoWX6lpJbWwEdUh+35DnjfGOYN8gW8bx0CfyqEx5
|
||||
0W++DK5Wj+L+DL7jgJ/l7dMKxLdjijkg+v4yI516nzRbrx3x77U8n+H1V9bHrDfS
|
||||
cESnr3PtWS4ze4yDrr9Xp+YK8A7RkIctH2ToyEixin8utvfa56dGpUai7gIRZ+0b
|
||||
tWY0FX6g/VRHwwhLIzTsaFveQGuzFbXaGkOhRASitKtbQo2fD39qAMixkKOctN9A
|
||||
/nA3dZU8BlJj7258+P36jQDOilr2Y7RlTSTZS5aXeAPbwILwKCNcDjV0keerGSqi
|
||||
V2zkiH0vAJcxVokn+iMj6VOaM1RyxskgFara0Vt3IuAjnirES/OVuIkhgpebmGXB
|
||||
PcHqLWpFDtEdLv6YtOwScE0eYb5/SA3XsmK3qgzEAzBfchwl4PqAhiQAf/tbx5Eg
|
||||
AUbFmwhEcgd9xMY5w6+8/5FjoXwHYmdfjKT9iD7QxF3LnymskoKQQGWBHiwJjaA8
|
||||
LYPpopUg9we00zNdSGNXv1Lau9AM//ATiusH8iLJj33ofQh6FviQG6W3TlLPqx/o
|
||||
IxxNj5bPAQy6dRKB1TxlWr4X0pUWxuqBeObPoHS9j0ysxKPru7kCDQRkVUBzARAA
|
||||
1cD3n5ue0sCcZmqX2FbtIFRsk39rlGkvuxYABsWBTzr0RbRW7h46VzWbOcU5ZmbJ
|
||||
rp/bhgkSYRR3drmzT63yUZ62dnww6e5LJjGSt19zzcber9BHELjqKqfAfLNsuZ7Z
|
||||
Q5p78c6uiJhe8WpbWogbspxJ20duraLGmK4Kl23fa3tF0Gng1RLhoFcSVK/WtDZy
|
||||
C+elPKpch1Sru6sw/r8ktfuhNIRGxdbj/lFHNVOzCXb3MTAqpIynNGMocFFnqWLZ
|
||||
LtItphHxPUqVr6LKvc3i3aMlC6IvLNg0Nu8O088Hg3Ah9tRmXKOshLjYjPeXqM9e
|
||||
dqoWWqpzxDTNl6JlFMwP+OacMKsyX7Wq+ZXC/o3ygC/oclYUKtiuoGg47fSCN2GS
|
||||
3V2GX2zFlT6SEvEQQb2g5yISLX9Q/g9AyJdqtfaLe4Fv6vM4P1xhOUDnjmdoulm3
|
||||
FGkC701ZF7eFhMSRUM9QhkGH6Yz2TvS4ht6Whg7aVt4ErIoJfj9jzJOp6k9vna5L
|
||||
mgkj8l19NTiUQ7gk98H3wW4mRrINxZ2yQD47V/LJ+tUamJc5ac+I0VP7c15xmKEJ
|
||||
2rfGCGhiSWQwZZw7Y2/qoADSBlI28RlBTuRP2i6AdwyJU+75CzxGzMpr/wBLhZT+
|
||||
fNRV4HHd5dgR3YxajpkzZ6wXL2aaJhznFEmLBLokOwMAEQEAAYkEcgQYAQoAJhYh
|
||||
BBTyZoLQkWzdgeN7bWG3tSbZjwNTBQJkVUBzAhsCBQkDwmcAAkAJEGG3tSbZjwNT
|
||||
wXQgBBkBCgAdFiEErdcHlHlwDcrf3VM34207E/PZMnQFAmRVQHMACgkQ4207E/PZ
|
||||
MnRgdg/+LAha8Vh1SIVpXzUHVdx81kPyxBSaXtOtbBw6u9EiPW+xCUiF/pyn7H1l
|
||||
u+hAodeNFADsXmmONKcBjURVfwO81s60gLKYBXxpcLLQXrfNOLrYMnokr5FfuI3z
|
||||
Z0AoSnEoS9ufnf/7spjba8RldV1q2krdw1KtbiLq3D8v4E3qRfx5SqCA+eJSavaA
|
||||
h3aBi6lvRlUSZmz8RWwq6gP9Z4BiTTyFp5jQv1ZKJb5OJ+44A0pS+RvGDRq/bAAU
|
||||
QULLIJVOhiTM74sb/BPmeRYUS++ee10IFW4bsrKJonCoSQTXQexOpH6AAFXeZDak
|
||||
JfyjTxnl3+AtA4VEp1UJIm0Ywe0h6lT0isSJPVp3RFZRPjq0g+/VniBsvYhLE/70
|
||||
ph9ImU4HXdNumZVqXqawmIDRwv7NbYjpQ8QnzcP3vJ5XQ4/bNU/xWd1eM2gdpbXI
|
||||
9B46ER7fQcIJRNrawbEbfzuHy5nINAzrznsg+fAC76w2Omrn547QiY2ey7jy7k79
|
||||
tlCXGXWAt9ikkJ95BCLsOu5OTxPi4/UUS2en1yDbx5ej7Hh79oEZxzubW1+v5O1+
|
||||
tXgMOWd6ZgXwquq50vs+X4mi7BKE2b1Mi6Zq2Y+Kw7dAEbYYzhsSA+SRPu5vrJgL
|
||||
TNQmGxxbrSA+lCUvQ8dPywXz00vKiQwI9uRqtK0LX1BLuHKIhg4OgxAAnmFSZgu7
|
||||
wIsE2kBYwabCSIFJZzHu0lgtRyYrY8Xh7Pg+V9slIiMGG4SIyq5eUfmU8bXjc4vQ
|
||||
kE6KHxsbbzN6gFVLX1KDjxRKh+/nG/RDtfw/ic7iiXZfgkEqzIVgIrtlDb/DK6ZD
|
||||
MeABnJcZZTJMAC4lWpJGgmnZxfAIGmtcUOA0CKGT43suyYET7L7HXd0TM+cJRnbE
|
||||
b7m8OexT9Xqqwezfqoi1MGH2g8lRKQE4Z2eEFvCiuJnCw547wtpJWEQrGw1eqL3A
|
||||
S8Y051YqblbXLbgf5Oa49yo630ehq9OxoLd7+GdWwYBlr/0EzPUWezhdIKKvh1RO
|
||||
+FQGAlzYJ6Pq7BPwvu3dC3YYdN3Ax/8dj5036Y+mHgDsnmlUk8dlziJ0O3h1fke/
|
||||
W81ABx4ASBktXAf1IweRbbxqW8OgMhG6xHTeiEjjav7SmlD0XVOxjhI+qBoNPovW
|
||||
lChqONxablBkuh0Jd6kdNiaSEM9cd60kK3GT/dBMyv0yVhhLci6HQZ+Mf4cbn0Kt
|
||||
ayzuQLOcdRCN3FF/JNQH3v6LA1MdRfmJlgC4UdiepBb1uCgtVIPizRuXWDjyjzeP
|
||||
ZRN/AqaUbEoNBHhIz0nKhQGDbst4ugIzJWIX+6UokwPC3jvJqQQttccjAy6kXBmx
|
||||
fxyRMB5BEeLY0+qVPyvOxpXEGnlSHYmdIS65Ag0EZ9KQfQEQAOVIyh0sZPPFLWxo
|
||||
FT0WhPzHw8BhgnCBNdZAh9+SM0Apq2VcQKSjBjKiterOTtc6EVh0K2ikbGKHQ1Sv
|
||||
wNdsYL01cSkJSJORig/1Du1eh+2nlo8nut7xT//V+2FQyWFCLDeQvLlAs3QHMrMY
|
||||
xTcwNk3qi/z1Z5Q4e6Re2aKRU00LtSomD6CKWy9nAaqTRNzzdndJwIyCyshX4bbU
|
||||
zAzE7Wbgh/E0/FgBGw87LYITqyU6US4lvoUXB+89XxwMxO9I74L118gXEyybz+JN
|
||||
0/w87hXAKnaKjasSvobKE4mau8SXqmOO66MxiMaF4Xsmr3oIwo8q9W5d+hA+t225
|
||||
ipq2rZZErmPL44deMCeKmepjLTa9CoxX2oVpDWGOYFRyJRkLDyyH4O3gCo/5qv4r
|
||||
OTJqPFfKPtrjWFJKGf4P4UD0GSBX2Q+mOf2XHWsMJE4t8T7jxQCSAQUMwt6M18h1
|
||||
auIqcfkuNvdJhcl2GvJyCMIbkA3AoiuKaSPgoVCmJdbc6Ao9ydmMUB5Q1rYpMNKC
|
||||
MsuVP9OcX8FoHEVMXOvr0f6Wfj+iHytfO2VTqrw/cqoCyuPoSrgxjs1/cRSz5g9f
|
||||
Z0zrOtQyNB5yJ3YPTG3va1/XLflrjPcT4ZUkej9nkFpCNWdEZVWD/z3vXBGSV11N
|
||||
9Cdy60QbD4yZvDjV2GQ+dwAF1o1BABEBAAGJBHIEGAEKACYWIQQU8maC0JFs3YHj
|
||||
e21ht7Um2Y8DUwUCZ9KQfQIbAgUJA8JnAAJACRBht7Um2Y8DU8F0IAQZAQoAHRYh
|
||||
BAm+7WPzRiot/6s7h17LZJfBogJWBQJn0pB9AAoJEF7LZJfBogJW9I4QAJbv4Rhb
|
||||
4x6Jl75x2Lfp46/e3fZVDhzUdLjK8A/acRF7JRBuJVJRaijJ5tngdknmlmbzfqly
|
||||
zsMWUciAwVJRvijNFDeicet5zJpBRsXEUAug3iVCD1KlVvLzjCi9Eb9s6xCQjSJ8
|
||||
DZE020s41wdqtb1nziDASAkg+YH2DzpTEaZVNM39uNDKbaJLYIjKA9MV1YHArqUl
|
||||
dFsoofBe4zIZRFyvMD7Gmr7Xm0IWYLrfmnenm1JJYIkvGUeVoP8dEonAVhLVwvww
|
||||
ufobV0qdtMfhZsgFwf1XSHI9MtD4yAVtBqBTkfFeRLnBjJK/ywYxGqbadt1b57I4
|
||||
ywTQ16oXNrlTF1Su0I8i/fo0i/9ohNl3opN3LbaEbhT37M4xpy4MgL2Fthddc2gW
|
||||
vF/8TFRaXw7LaLSR7HwO+Y0CpOtV/Ct4RzKEulY5DpV9b1JQJhpLcjMz+pBDAM3K
|
||||
JuiV6Bcfoz5PZowFy74UmE02Vzk/oyuI/o4KMihy0UzWQVkOZTTu4eONktgGiZOn
|
||||
RFdiLKVgeLEDXTLdhbuwGS2+wX3I7lLP9AWpK8Ahc81eUwU6MwdbfwfJ1ELtKaa/
|
||||
JmMjaWkr5aGrp88d8ePR9jYA47Z2q0esB67pRJVe0McVJlu9GQGq05S7lZKs6mi9
|
||||
dHTzeHwua//IXHMK0s3WhMU7vGwJ3E2+pTstf8AQALSwkezD3QchPV+5CAUYY7Cm
|
||||
MXB6zzIU18wCS61Y8QdDvqmtWHdMVTp4xT14fS6cvB4uFzacGQJ7CVIWeZgwEFzZ
|
||||
iev3dKpnUOGg0WQSwmQQA0JCg6/qS0AeUPINjhWtNcR7voCqAYeRcjo47UJclD/K
|
||||
KNTCn27btHRaEmpTdTtC6sxiVElFObb3a9tHXqwLWp8gJ+NZ+6mlrvvH2hm1CAyQ
|
||||
TDRYC7nN69QJrKHR8HA3AeR5figQHLwvmfQlV2erZE17GT+L5t0HxX/HKZCim91P
|
||||
Apqa+7iY0eKPAG5iacABrBi9zzh/ex0ovvuxsBDKUFCSu7HIivnAVrdS/kbO1qJ5
|
||||
I3MBMp0dlQ6PS6LeZIRhxts0aPPZedsXytoL7kFLISfJ55AuhJpskz+55uviJhp/
|
||||
H3zNBYtQ+dmFmp4RRk/Nvu0zv6OGtaZy6M5X24Pbzb/OApBML84cEmb3iZie9J2Z
|
||||
YW68/D96sP09x6GItCJlCIdQZkRcwmkQwgtq9sJDw92/vSGeYdRn+oCAxJ14eObC
|
||||
sVwcfJARLt45btEnx+zRCAHAHQHpV6qTGT6nqg57XuM9iNNdyTGKRU+Iklgb9LRx
|
||||
VAQfbn5uXYb5j2ox5pjxtbXTf9Lbo7RkygcWSKZPWmYgGsKS6jmXkDa/TyOlPxkb
|
||||
aknpPbYMBztRT4Ju0VU4
|
||||
=4Dnl
|
||||
-----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="esr140"
|
||||
VERSION="140.1.0"
|
||||
VERSION_SUFFIX="esr"
|
||||
PREV_VERSION="140.0"
|
||||
PREV_VERSION_SUFFIX="esr"
|
||||
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
|
||||
RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-esr140"
|
||||
RELEASE_TAG="0c53463d0e61c036c08be46403e896e174f2182e"
|
||||
RELEASE_TIMESTAMP="20250714132824"
|
Reference in New Issue
Block a user