New development package for openSUSE:Factory
OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/firefox-esr?expand=0&rev=21
This commit is contained in:
parent
d8a78670a6
commit
a226d95b0d
@ -2,17 +2,281 @@
|
||||
Encoding=UTF-8
|
||||
Name=%NAME
|
||||
GenericName=Web Browser
|
||||
Comment=Web Browser
|
||||
GenericName[ca]=Navegador web
|
||||
GenericName[cs]=Webový prohlížeč
|
||||
GenericName[es]=Navegador web
|
||||
GenericName[fa]=مرورگر اینترنتی
|
||||
GenericName[fi]=WWW-selain
|
||||
GenericName[fr]=Navigateur Web
|
||||
GenericName[hu]=Webböngésző
|
||||
GenericName[it]=Browser Web
|
||||
GenericName[ja]=ウェブ・ブラウザ
|
||||
GenericName[ko]=웹 브라우저
|
||||
GenericName[nb]=Nettleser
|
||||
GenericName[nl]=Webbrowser
|
||||
GenericName[nn]=Nettlesar
|
||||
GenericName[no]=Nettleser
|
||||
GenericName[pl]=Przeglądarka WWW
|
||||
GenericName[pt]=Navegador Web
|
||||
GenericName[pt_BR]=Navegador Web
|
||||
GenericName[ru]=Веб-браузер
|
||||
GenericName[sk]=Internetový prehliadač
|
||||
GenericName[sv]=Webbläsare
|
||||
GenericName[uk]=Веб-браузер
|
||||
Comment=Browse the Web
|
||||
Comment[ca]=Navegueu per el web
|
||||
Comment[cs]=Prohlížení stránek World Wide Webu
|
||||
Comment[de]=Im Internet surfen
|
||||
Comment[es]=Navegue por la web
|
||||
Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
|
||||
Comment[fi]=Selaa Internetin WWW-sivuja
|
||||
Comment[fr]=Navigue sur Internet
|
||||
Comment[hu]=A világháló böngészése
|
||||
Comment[it]=Esplora il web
|
||||
Comment[ja]=ウェブを閲覧します
|
||||
Comment[ko]=웹을 돌아 다닙니다
|
||||
Comment[nb]=Surf på nettet
|
||||
Comment[nl]=Verken het internet
|
||||
Comment[nn]=Surf på nettet
|
||||
Comment[no]=Surf på nettet
|
||||
Comment[pl]=Przeglądanie stron WWW
|
||||
Comment[pt]=Navegue na Internet
|
||||
Comment[pt_BR]=Navegue na Internet
|
||||
Comment[ru]=Просмотр веб-страниц
|
||||
Comment[sk]=Prehliadanie internetu
|
||||
Comment[sv]=Surfa på webben
|
||||
Comment[uk]=Перегляд веб-сторінок
|
||||
TryExec=%EXEC
|
||||
Exec=%EXEC %u
|
||||
Icon=%ICON
|
||||
Terminal=false
|
||||
StartupNotify=true
|
||||
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;application/x-xpinstall;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;
|
||||
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=PrivateBrowsing;
|
||||
Actions=new-window;PrivateBrowsing;ProfileManager
|
||||
|
||||
[Desktop Action new-window]
|
||||
Name=New Window
|
||||
Name[ach]=Dirica manyen
|
||||
Name[af]=Nuwe venster
|
||||
Name[an]=Nueva finestra
|
||||
Name[ar]=نافذة جديدة
|
||||
Name[as]=নতুন উইন্ডো
|
||||
Name[ast]=Ventana nueva
|
||||
Name[az]=Yeni Pəncərə
|
||||
Name[be]=Новае акно
|
||||
Name[bg]=Нов прозорец
|
||||
Name[bn_BD]=নতুন উইন্ডো (N)
|
||||
Name[bn_IN]=নতুন উইন্ডো
|
||||
Name[br]=Prenestr nevez
|
||||
Name[brx]=गोदान उइन्ड'(N)
|
||||
Name[bs]=Novi prozor
|
||||
Name[ca]=Finestra nova
|
||||
Name[cak]=K'ak'a' tzuwäch
|
||||
Name[cs]=Nové okno
|
||||
Name[cy]=Ffenestr Newydd
|
||||
Name[da]=Nyt vindue
|
||||
Name[de]=Neues Fenster
|
||||
Name[dsb]=Nowe wokno
|
||||
Name[el]=Νέο παράθυρο
|
||||
Name[en_GB]=New Window
|
||||
Name[en_US]=New Window
|
||||
Name[en_ZA]=New Window
|
||||
Name[eo]=Nova fenestro
|
||||
Name[es_AR]=Nueva ventana
|
||||
Name[es_CL]=Nueva ventana
|
||||
Name[es_ES]=Nueva ventana
|
||||
Name[es_MX]=Nueva ventana
|
||||
Name[et]=Uus aken
|
||||
Name[eu]=Leiho berria
|
||||
Name[fa]=پنجره جدید
|
||||
Name[ff]=Henorde Hesere
|
||||
Name[fi]=Uusi ikkuna
|
||||
Name[fr]=Nouvelle fenêtre
|
||||
Name[fy_NL]=Nij finster
|
||||
Name[ga_IE]=Fuinneog Nua
|
||||
Name[gd]=Uinneag ùr
|
||||
Name[gl]=Nova xanela
|
||||
Name[gn]=Ovetã pyahu
|
||||
Name[gu_IN]=નવી વિન્ડો
|
||||
Name[he]=חלון חדש
|
||||
Name[hi_IN]=नया विंडो
|
||||
Name[hr]=Novi prozor
|
||||
Name[hsb]=Nowe wokno
|
||||
Name[hu]=Új ablak
|
||||
Name[hy_AM]=Նոր Պատուհան
|
||||
Name[id]=Jendela Baru
|
||||
Name[is]=Nýr gluggi
|
||||
Name[it]=Nuova finestra
|
||||
Name[ja]=新しいウィンドウ
|
||||
Name[ja_JP-mac]=新規ウインドウ
|
||||
Name[ka]=ახალი ფანჯარა
|
||||
Name[kk]=Жаңа терезе
|
||||
Name[km]=បង្អួចថ្មី
|
||||
Name[kn]=ಹೊಸ ಕಿಟಕಿ
|
||||
Name[ko]=새 창
|
||||
Name[kok]=नवें जनेल
|
||||
Name[ks]=نئئ وِنڈو
|
||||
Name[lij]=Neuvo barcon
|
||||
Name[lo]=ຫນ້າຕ່າງໃຫມ່
|
||||
Name[lt]=Naujas langas
|
||||
Name[ltg]=Jauns lūgs
|
||||
Name[lv]=Jauns logs
|
||||
Name[mai]=नव विंडो
|
||||
Name[mk]=Нов прозорец
|
||||
Name[ml]=പുതിയ ജാലകം
|
||||
Name[mr]=नवीन पटल
|
||||
Name[ms]=Tetingkap Baru
|
||||
Name[my]=ဝင်းဒိုးအသစ်
|
||||
Name[nb_NO]=Nytt vindu
|
||||
Name[ne_NP]=नयाँ सञ्झ्याल
|
||||
Name[nl]=Nieuw venster
|
||||
Name[nn_NO]=Nytt vindauge
|
||||
Name[or]=ନୂତନ ୱିଣ୍ଡୋ
|
||||
Name[pa_IN]=ਨਵੀਂ ਵਿੰਡੋ
|
||||
Name[pl]=Nowe okno
|
||||
Name[pt_BR]=Nova janela
|
||||
Name[pt_PT]=Nova janela
|
||||
Name[rm]=Nova fanestra
|
||||
Name[ro]=Fereastră nouă
|
||||
Name[ru]=Новое окно
|
||||
Name[sat]=नावा विंडो (N)
|
||||
Name[si]=නව කවුළුවක්
|
||||
Name[sk]=Nové okno
|
||||
Name[sl]=Novo okno
|
||||
Name[son]=Zanfun taaga
|
||||
Name[sq]=Dritare e Re
|
||||
Name[sr]=Нови прозор
|
||||
Name[sv_SE]=Nytt fönster
|
||||
Name[ta]=புதிய சாளரம்
|
||||
Name[te]=కొత్త విండో
|
||||
Name[th]=หน้าต่างใหม่
|
||||
Name[tr]=Yeni pencere
|
||||
Name[tsz]=Eraatarakua jimpani
|
||||
Name[uk]=Нове вікно
|
||||
Name[ur]=نیا دریچہ
|
||||
Name[uz]=Yangi oyna
|
||||
Name[vi]=Cửa sổ mới
|
||||
Name[wo]=Palanteer bu bees
|
||||
Name[xh]=Ifestile entsha
|
||||
Name[zh_CN]=新建窗口
|
||||
Name[zh_TW]=開新視窗
|
||||
Exec=%EXEC --new-window %u
|
||||
|
||||
[Desktop Action PrivateBrowsing]
|
||||
Name=New Private Browsing Window
|
||||
Name[ach]=Dirica manyen me mung
|
||||
Name[af]=Nuwe privaatvenster
|
||||
Name[an]=Nueva finestra privada
|
||||
Name[ar]=نافذة خاصة جديدة
|
||||
Name[as]=নতুন ব্যক্তিগত উইন্ডো
|
||||
Name[ast]=Ventana privada nueva
|
||||
Name[az]=Yeni Məxfi Pəncərə
|
||||
Name[be]=Новае акно адасаблення
|
||||
Name[bg]=Нов прозорец за поверително сърфиране
|
||||
Name[bn_BD]=নতুন ব্যক্তিগত উইন্ডো
|
||||
Name[bn_IN]=নতুন ব্যক্তিগত উইন্ডো
|
||||
Name[br]=Prenestr merdeiñ prevez nevez
|
||||
Name[brx]=गोदान प्राइभेट उइन्ड'
|
||||
Name[bs]=Novi privatni prozor
|
||||
Name[ca]=Finestra privada nova
|
||||
Name[cak]=K'ak'a' ichinan tzuwäch
|
||||
Name[cs]=Nové anonymní okno
|
||||
Name[cy]=Ffenestr Breifat Newydd
|
||||
Name[da]=Nyt privat vindue
|
||||
Name[de]=Neues privates Fenster
|
||||
Name[dsb]=Nowe priwatne wokno
|
||||
Name[el]=Νέο παράθυρο ιδιωτικής περιήγησης
|
||||
Name[en_GB]=New Private Window
|
||||
Name[en_US]=New Private Window
|
||||
Name[en_ZA]=New Private Window
|
||||
Name[eo]=Nova privata fenestro
|
||||
Name[es_AR]=Nueva ventana privada
|
||||
Name[es_CL]=Nueva ventana privada
|
||||
Name[es_ES]=Nueva ventana privada
|
||||
Name[es_MX]=Nueva ventana privada
|
||||
Name[et]=Uus privaatne aken
|
||||
Name[eu]=Leiho pribatu berria
|
||||
Name[fa]=پنجره ناشناس جدید
|
||||
Name[ff]=Henorde Suturo Hesere
|
||||
Name[fi]=Uusi yksityinen ikkuna
|
||||
Name[fr]=Nouvelle fenêtre de navigation privée
|
||||
Name[fy_NL]=Nij priveefinster
|
||||
Name[ga_IE]=Fuinneog Nua Phríobháideach
|
||||
Name[gd]=Uinneag phrìobhaideach ùr
|
||||
Name[gl]=Nova xanela privada
|
||||
Name[gn]=Ovetã ñemi pyahu
|
||||
Name[gu_IN]=નવી ખાનગી વિન્ડો
|
||||
Name[he]=חלון פרטי חדש
|
||||
Name[hi_IN]=नयी निजी विंडो
|
||||
Name[hr]=Novi privatni prozor
|
||||
Name[hsb]=Nowe priwatne wokno
|
||||
Name[hu]=Új privát ablak
|
||||
Name[hy_AM]=Սկսել Գաղտնի դիտարկում
|
||||
Name[id]=Jendela Mode Pribadi Baru
|
||||
Name[is]=Nýr huliðsgluggi
|
||||
Name[it]=Nuova finestra anonima
|
||||
Name[ja]=新しいプライベートウィンドウ
|
||||
Name[ja_JP-mac]=新規プライベートウインドウ
|
||||
Name[ka]=ახალი პირადი ფანჯარა
|
||||
Name[kk]=Жаңа жекелік терезе
|
||||
Name[km]=បង្អួចឯកជនថ្មី
|
||||
Name[kn]=ಹೊಸ ಖಾಸಗಿ ಕಿಟಕಿ
|
||||
Name[ko]=새 사생활 보호 모드
|
||||
Name[kok]=नवो खाजगी विंडो
|
||||
Name[ks]=نْو پرایوٹ وینڈو&
|
||||
Name[lij]=Neuvo barcon privou
|
||||
Name[lo]=ເປີດຫນ້າຕ່າງສວນຕົວຂື້ນມາໃຫມ່
|
||||
Name[lt]=Naujas privataus naršymo langas
|
||||
Name[ltg]=Jauns privatais lūgs
|
||||
Name[lv]=Jauns privātais logs
|
||||
Name[mai]=नया निज विंडो (W)
|
||||
Name[mk]=Нов приватен прозорец
|
||||
Name[ml]=പുതിയ സ്വകാര്യ ജാലകം
|
||||
Name[mr]=नवीन वैयक्तिक पटल
|
||||
Name[ms]=Tetingkap Persendirian Baharu
|
||||
Name[my]=New Private Window
|
||||
Name[nb_NO]=Nytt privat vindu
|
||||
Name[ne_NP]=नयाँ निजी सञ्झ्याल
|
||||
Name[nl]=Nieuw privévenster
|
||||
Name[nn_NO]=Nytt privat vindauge
|
||||
Name[or]=ନୂତନ ବ୍ୟକ୍ତିଗତ ୱିଣ୍ଡୋ
|
||||
Name[pa_IN]=ਨਵੀਂ ਪ੍ਰਾਈਵੇਟ ਵਿੰਡੋ
|
||||
Name[pl]=Nowe okno prywatne
|
||||
Name[pt_BR]=Nova janela privativa
|
||||
Name[pt_PT]=Nova janela privada
|
||||
Name[rm]=Nova fanestra privata
|
||||
Name[ro]=Fereastră privată nouă
|
||||
Name[ru]=Новое приватное окно
|
||||
Name[sat]=नावा निजेराक् विंडो (W )
|
||||
Name[si]=නව පුද්ගලික කවුළුව (W)
|
||||
Name[sk]=Nové okno v režime Súkromné prehliadanie
|
||||
Name[sl]=Novo zasebno okno
|
||||
Name[son]=Sutura zanfun taaga
|
||||
Name[sq]=Dritare e Re Private
|
||||
Name[sr]=Нови приватан прозор
|
||||
Name[sv_SE]=Nytt privat fönster
|
||||
Name[ta]=புதிய தனிப்பட்ட சாளரம்
|
||||
Name[te]=కొత్త ఆంతరంగిక విండో
|
||||
Name[th]=หน้าต่างส่วนตัวใหม่
|
||||
Name[tr]=Yeni gizli pencere
|
||||
Name[tsz]=Juchiiti eraatarakua jimpani
|
||||
Name[uk]=Приватне вікно
|
||||
Name[ur]=نیا نجی دریچہ
|
||||
Name[uz]=Yangi maxfiy oyna
|
||||
Name[vi]=Cửa sổ riêng tư mới
|
||||
Name[wo]=Panlanteeru biir bu bees
|
||||
Name[xh]=Ifestile yangasese entsha
|
||||
Name[zh_CN]=新建隐私浏览窗口
|
||||
Name[zh_TW]=新增隱私視窗
|
||||
Exec=%EXEC --private-window %u
|
||||
|
||||
[Desktop Action ProfileManager]
|
||||
Name=Profile Manager
|
||||
Name[cs]=Správa profilů
|
||||
Name[de]=Profilmanager
|
||||
Name[fr]=Gestionnaire de profil
|
||||
Name[ru]=Менеджер профилей
|
||||
Name[uk]=Менеджер профілів
|
||||
Exec=%EXEC --ProfileManager
|
||||
|
33
_constraints
33
_constraints
@ -1,13 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<constraints>
|
||||
<hardware>
|
||||
<jobs>4</jobs>
|
||||
<disk>
|
||||
<size unit="G">25</size>
|
||||
<size unit="G">26</size>
|
||||
</disk>
|
||||
<memory>
|
||||
<size unit="G">8</size>
|
||||
</memory>
|
||||
<physicalmemory>
|
||||
<size unit="G">15</size>
|
||||
</physicalmemory>
|
||||
</hardware>
|
||||
<hostlabel exclude="true">SLOW_CPU</hostlabel>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>armv6l</arch>
|
||||
@ -17,29 +19,34 @@
|
||||
<disk>
|
||||
<size unit="G">12</size>
|
||||
</disk>
|
||||
<memory>
|
||||
<physicalmemory>
|
||||
<size unit="G">5</size>
|
||||
</memory>
|
||||
</physicalmemory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<!-- LTO disabled - less RAM -->
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>aarch64</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="G">12</size>
|
||||
</memory>
|
||||
<cpu>
|
||||
<flag>asimdrdm</flag>
|
||||
</cpu>
|
||||
<physicalmemory>
|
||||
<size unit="G">14</size>
|
||||
</physicalmemory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>x86_64</arch>
|
||||
<arch>ppc64le</arch>
|
||||
<arch>s390x</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<memory>
|
||||
<size unit="G">16</size>
|
||||
</memory>
|
||||
<physicalmemory>
|
||||
<size unit="G">8</size>
|
||||
</physicalmemory>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
</constraints>
|
||||
|
578
create-tar.sh
578
create-tar.sh
@ -1,5 +1,34 @@
|
||||
#!/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 ""
|
||||
@ -17,55 +46,76 @@ PREV_VERSION_SUFFIX="esr"
|
||||
#SKIP_LOCALES="" # Uncomment to skip l10n-generation
|
||||
EOF
|
||||
|
||||
exit 1
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
print_usage_and_exit
|
||||
fi
|
||||
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
|
||||
|
||||
# Sourcing the given tar_stamps-file to have the variables available
|
||||
TAR_STAMP="$1"
|
||||
source "$TAR_STAMP" || print_usage_and_exit
|
||||
# use parallel compression, if available
|
||||
compression='-J'
|
||||
pixz -h > /dev/null 2>&1
|
||||
if (($? != 127)); then
|
||||
compression='-Ipixz'
|
||||
fi
|
||||
}
|
||||
|
||||
# Internal variables
|
||||
BRANCH="releases/mozilla-$CHANNEL"
|
||||
if [ "$PRODUCT" = "firefox" ]; then
|
||||
LOCALE_FILE="firefox-$VERSION/browser/locales/l10n-changesets.json"
|
||||
else
|
||||
LOCALE_FILE="thunderbird-$VERSION/comm/mail/locales/l10n-changesets.json"
|
||||
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"
|
||||
FTP_URL="https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source"
|
||||
FTP_CANDIDATES_BASE_URL="https://ftp.mozilla.org/pub/$PRODUCT/candidates"
|
||||
# Make first letter of PRODCUT upper case
|
||||
PRODUCT_CAP="${PRODUCT^}"
|
||||
LOCALES_URL="https://product-details.mozilla.org/1.0/l10n/$PRODUCT_CAP"
|
||||
PRODUCT_URL="https://product-details.mozilla.org/1.0/$PRODUCT.json"
|
||||
# Exit script on CTRL+C
|
||||
trap "exit" INT
|
||||
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() {
|
||||
VERSION_WITH_SUFFIX="$1"
|
||||
echo "$FTP_CANDIDATES_BASE_URL/$VERSION_WITH_SUFFIX-candidates"
|
||||
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
|
||||
if [ -e "$TARBALL" ]; then
|
||||
echo "Reuse existing file"
|
||||
elif wget --spider $FTP_URL/$TARBALL 2> /dev/null; then
|
||||
elif wget --spider "$FTP_URL/$TARBALL" 2> /dev/null; then
|
||||
echo "Download file"
|
||||
else
|
||||
echo "Mercurial checkout"
|
||||
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 -p "$1 [(c)ontinue/(a)bort] " ca
|
||||
read -r -p "$1 [(c)ontinue/(a)bort] " ca
|
||||
case $ca in
|
||||
[Cc]* ) return 0 ;;
|
||||
[Aa]* ) return 1 ;;
|
||||
@ -75,19 +125,19 @@ function ask_cont_abort_question() {
|
||||
}
|
||||
|
||||
function check_for_binary() {
|
||||
if ! test -x $1; then
|
||||
if ! test -x "$1"; then
|
||||
echo "$1 is missing: execute zypper in $2"
|
||||
exit 5
|
||||
fi
|
||||
}
|
||||
|
||||
function get_source_stamp() {
|
||||
BUILD_ID="$1"
|
||||
FTP_CANDIDATES_BASE_URL=$(get_ftp_candidates_url $VERSION$VERSION_SUFFIX)
|
||||
FTP_CANDIDATES_JSON_SUFFIX="${BUILD_ID}/linux-x86_64/en-US/$PRODUCT-$VERSION$VERSION_SUFFIX.json"
|
||||
BUILD_JSON=$(curl --silent --fail "$FTP_CANDIDATES_BASE_URL/$FTP_CANDIDATES_JSON_SUFFIX") || return 1;
|
||||
REV=$(echo "$BUILD_JSON" | jq .moz_source_stamp)
|
||||
SOURCE_REPO=$(echo "$BUILD_JSON" | jq .moz_source_repo)
|
||||
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}"
|
||||
@ -103,39 +153,43 @@ function get_source_stamp() {
|
||||
}
|
||||
|
||||
function get_build_number() {
|
||||
LAST_FOUND=""
|
||||
VERSION_WITH_SUFFIX="$1"
|
||||
|
||||
BUILD_ID=$(curl --silent "$PRODUCT_URL" | jq -e '.["releases"] | .["'$PRODUCT-$VERSION_WITH_SUFFIX'"] | .["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
|
||||
FTP_CANDIDATES_BASE_URL=$(get_ftp_candidates_url $VERSION_WITH_SUFFIX)
|
||||
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 "$FTP_CANDIDATES_BASE_URL/" | grep -o "build[0-9]*/" | sort | uniq | tail -n 1 | cut -d "/" -f 1)
|
||||
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$BUILD_ID"
|
||||
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 Firefox $VERSION_WITH_SUFFIX !" 1>&2
|
||||
echo "Error: Could not find build-number for $CURR_PRODUCT $VERSION_WITH_SUFFIX !" 1>&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function locales_get() {
|
||||
TMP_VERSION="$1"
|
||||
BUILD_ID="$2"
|
||||
URL_TO_CHECK="${LOCALES_URL}-${TMP_VERSION}"
|
||||
FINAL_URL="${URL_TO_CHECK}-${BUILD_ID}.json"
|
||||
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
|
||||
@ -145,87 +199,200 @@ function locales_get() {
|
||||
fi
|
||||
}
|
||||
|
||||
function locales_parse() {
|
||||
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" | python -c "import json; import sys; \
|
||||
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 locales_unchanged() {
|
||||
BUILD_ID="$1"
|
||||
PREV_BUILD_ID=$(get_build_number "$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 "$PREV_VERSION$PREV_VERSION_SUFFIX" "$PREV_BUILD_ID") || return 1
|
||||
curr_url=$(locales_get "$VERSION$VERSION_SUFFIX" "$BUILD_ID") || return 1
|
||||
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
|
||||
}
|
||||
|
||||
prev_content=$(locales_parse "$prev_url") || exit 1
|
||||
curr_content=$(locales_parse "$curr_url") || exit 1
|
||||
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")
|
||||
}
|
||||
|
||||
# check required tools
|
||||
check_for_binary /usr/bin/hg "mercurial"
|
||||
check_for_binary /usr/bin/jq "jq"
|
||||
which python > /dev/null || exit 1
|
||||
function get_locales_directories() {
|
||||
pattern="$1"
|
||||
|
||||
# use parallel compression, if available
|
||||
compression='-J'
|
||||
pixz -h > /dev/null 2>&1
|
||||
if (($? != 127)); then
|
||||
compression='-Ipixz'
|
||||
fi
|
||||
|
||||
# Get ID
|
||||
BUILD_ID=$(get_build_number "$VERSION$VERSION_SUFFIX")
|
||||
|
||||
if [ -z ${SKIP_LOCALES+x} ]; then
|
||||
# TODO: Thunderbird has usually "default" as locale entry.
|
||||
# There we probably need to double-check Firefox-locals
|
||||
# For now, just download every time for Thunderbird
|
||||
if [ "$PRODUCT" = "firefox" ] && [ "$PREV_VERSION" != "" ] && locales_unchanged "$BUILD_ID"; then
|
||||
printf "%-40s: Did not change. Skipping.\n" "locales"
|
||||
LOCALES_CHANGED=0
|
||||
# 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"
|
||||
LOCALES_CHANGED=1
|
||||
ask_cont_abort_question "Is this ok?" || exit 0
|
||||
else
|
||||
printf "%-40s: Did not change. Skipping.\n" "locales"
|
||||
fi
|
||||
else
|
||||
printf "%-40s: User forced skip (SKIP_LOCALES set)\n" "locales"
|
||||
fi
|
||||
}
|
||||
|
||||
# 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
|
||||
|
||||
$(ask_cont_abort_question "Is this ok?") || exit 0
|
||||
|
||||
# Try to download tar-ball from officiall mozilla-mirror
|
||||
if [ ! -e $SOURCE_TARBALL ]; then
|
||||
wget https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source/$SOURCE_TARBALL
|
||||
fi
|
||||
# including signature
|
||||
if [ ! -e $SOURCE_TARBALL.asc ]; then
|
||||
wget https://ftp.mozilla.org/pub/$PRODUCT/releases/$VERSION$VERSION_SUFFIX/source/$SOURCE_TARBALL.asc
|
||||
fi
|
||||
|
||||
# we might have an upstream archive already and can skip the checkout
|
||||
if [ -e $SOURCE_TARBALL ]; then
|
||||
if [ -z ${SKIP_LOCALES+x} ] && [ $LOCALES_CHANGED -ne 0 ]; then
|
||||
# still need to extract the locale information from the archive
|
||||
echo "extract locale changesets"
|
||||
tar -xf $SOURCE_TARBALL $LOCALE_FILE
|
||||
function download_release_or_candidate_file() {
|
||||
local upstream_file="$1"
|
||||
if [ -e "$upstream_file" ]; then
|
||||
return;
|
||||
fi
|
||||
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
|
||||
|
||||
# mozilla
|
||||
if [ -d $PRODUCT-$VERSION ]; then
|
||||
pushd $PRODUCT-$VERSION || exit 1
|
||||
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*)
|
||||
@ -236,18 +403,18 @@ else
|
||||
* )
|
||||
echo "removing obsolete tree"
|
||||
popd || exit 1
|
||||
rm -rf $PRODUCT-$VERSION
|
||||
rm -rf "$PRODUCT-$VERSION"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if [ ! -d $PRODUCT-$VERSION ]; then
|
||||
if [ ! -d "$PRODUCT-$VERSION" ]; then
|
||||
echo "cloning new $BRANCH..."
|
||||
hg clone http://hg.mozilla.org/$BRANCH $PRODUCT-$VERSION
|
||||
hg clone "https://hg.mozilla.org/$BRANCH $PRODUCT-$VERSION"
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
hg clone http://hg.mozilla.org/releases/comm-$CHANNEL $PRODUCT-$VERSION/comm
|
||||
hg clone "https://hg.mozilla.org/releases/comm-$CHANNEL" "$PRODUCT-$VERSION/comm"
|
||||
fi
|
||||
fi
|
||||
pushd $PRODUCT-$VERSION || exit 1
|
||||
pushd "$PRODUCT-$VERSION" || exit 1
|
||||
|
||||
# parse out the Firefox-release tag for this Thunderbird-checkout
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
@ -257,18 +424,18 @@ else
|
||||
FF_RELEASE_TAG="$RELEASE_TAG"
|
||||
fi
|
||||
|
||||
hg update --check $FF_RELEASE_TAG
|
||||
[ "$FF_RELEASE_TAG" == "default" ] || hg update -r $FF_RELEASE_TAG
|
||||
hg update --check "$FF_RELEASE_TAG"
|
||||
[ "$FF_RELEASE_TAG" == "default" ] || hg update -r "$FF_RELEASE_TAG"
|
||||
# get repo and source stamp
|
||||
REV=$(hg -R . parent --template="{node|short}\n")
|
||||
SOURCE_REPO=$(hg showconfig paths.default 2>/dev/null | head -n1 | sed -e "s/^ssh:/http:/")
|
||||
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
|
||||
hg update --check "$RELEASE_TAG"
|
||||
popd || exit 1
|
||||
rm -rf thunderbird-${VERSION}/{,comm/}other-licenses/7zstub
|
||||
rm -rf thunderbird-"${VERSION}"/{,comm/}other-licenses/7zstub
|
||||
fi
|
||||
popd || exit 1
|
||||
|
||||
@ -286,48 +453,123 @@ else
|
||||
echo "RELEASE_TIMESTAMP=$TIMESTAMP" >> "$TAR_STAMP"
|
||||
|
||||
echo "creating archive..."
|
||||
tar $compression -cf $PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz --exclude=.hgtags --exclude=.hgignore --exclude=.hg --exclude=CVS $PRODUCT-$VERSION
|
||||
fi
|
||||
tar "$compression" -cf "$PRODUCT-$VERSION$VERSION_SUFFIX.source.tar.xz" --exclude-vcs "$PRODUCT-$VERSION"
|
||||
ALREADY_EXTRACTED_LOCALES_FILE=1
|
||||
}
|
||||
|
||||
if [ ! -z ${SKIP_LOCALES+x} ]; then
|
||||
echo "Skipping locales-creation."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ $LOCALES_CHANGED -ne 0 ]; then
|
||||
# l10n
|
||||
echo "fetching locales..."
|
||||
test ! -d l10n && mkdir l10n
|
||||
jq -r 'to_entries[]| "\(.key) \(.value|.revision)"' $LOCALE_FILE | \
|
||||
while read locale changeset ; do
|
||||
case $locale in
|
||||
ja-JP-mac|en-US)
|
||||
;;
|
||||
*)
|
||||
echo "reading changeset information for $locale"
|
||||
echo "fetching $locale changeset $changeset ..."
|
||||
if [ -d "l10n/$locale/.hg" ]; then
|
||||
pushd "l10n/$locale" || exit 1
|
||||
hg pull
|
||||
popd || exit 1
|
||||
else
|
||||
hg clone "http://hg.mozilla.org/l10n-central/$locale" "l10n/$locale"
|
||||
fi
|
||||
[ "$RELEASE_TAG" == "default" ] || hg -R "l10n/$locale" up -C -r "$changeset"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
echo "creating l10n archive..."
|
||||
if [ "$PRODUCT" = "thunderbird" ]; then
|
||||
TB_TAR_FLAGS="--exclude=browser --exclude=suite"
|
||||
function create_locales_tarballs() {
|
||||
if [ ! -z ${SKIP_LOCALES+x} ]; then
|
||||
echo "Skipping locales-creation."
|
||||
exit 0
|
||||
fi
|
||||
tar $compression -cf l10n-$VERSION$VERSION_SUFFIX.tar.xz \
|
||||
--exclude=.hgtags --exclude=.hgignore --exclude=.hg \
|
||||
$TB_TAR_FLAGS \
|
||||
l10n
|
||||
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
|
||||
|
||||
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 "$@"
|
||||
|
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-----
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a00a7712d0f919162ce8181a9a3fc3e9ef37adf1caff0945a863b4c0c1d9f360
|
||||
size 318559576
|
@ -1,16 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIzBAABCgAdFiEECXsxMHeuYqAvhNpN8aZmj7t9Vy4FAl4VMc4ACgkQ8aZmj7t9
|
||||
Vy7UAA/9EBN51JdLRfJGOhXRTZtlwVzHkWz5NU2TqY4mwyOh7hp4t8Ip3NqMuGNS
|
||||
vP8ApZz3gTIzisi/pnR89eCGrT3HvoWo9wOrlbaQNZJaN705/NOkN+2uzBV1TreL
|
||||
yZVNaj9h6qP6Qgbk5nhhxygIFoDBv4BioJS6Z7bYxST9l/wKs5bfMSZ3IldTDN40
|
||||
/qdkr1z5Z3uvuENNDxVgUlWhUfPj8wLVtNXY8XQfKMFntouX6CJP6uramB3bUCq/
|
||||
W2O0Si9JDlrqNo6o13O3tjHhgLoplqD7jIdnJjLM7WocjtJT53b9wEFIHN8bc7qM
|
||||
eBHOlaZ+7mITGQm4W7XRx2lkSPRy+Hw8Gv5D+9HTTzWcZViGKayz2r8FbwumU7+N
|
||||
FGunBYDd9ip0ku2E9oZjOpJiWjbS9kt+HKh1Zy7PijjuDY7EEy/C58HbwYzZwru4
|
||||
hlVXSffgfSmCODDS44miiYV+/BFABjPj5XbwLniG6WrwE5pMsb3Z13kHDCdEBSsp
|
||||
hG0fTZbJujb/iB2XpygV68pJXCucr67FLPZsrwaMMZbbVhpDpdkLl0XvqpEkOn/B
|
||||
10LKx8QrS7B1kBX+Yozj8YqOIK/YnrnqrSq9rPekplvE4eLk/23RDewtmVqhU1uR
|
||||
yCpdi+IZ3cHYRPTDdsrciEzcT2BfkVAAlPDnSRhinFBUsK1vTJ0=
|
||||
=o4gD
|
||||
-----END PGP SIGNATURE-----
|
@ -10,7 +10,7 @@ so maintain a stub in here.
|
||||
<name>Firefox Web Browser</name>
|
||||
<project_license>MPL-2.0</project_license>
|
||||
<summary>Mozilla Firefox Web Browser</summary>
|
||||
<url type="homepage">http://www.mozilla.org/</url>
|
||||
<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>
|
||||
|
@ -1,36 +1,36 @@
|
||||
# HG changeset patch
|
||||
# Parent e0751ad74e835e80041a61ea00c2a63bf6fbe2de
|
||||
# Parent 8a401a01454e9f5e8a357262d774e0ff348d9bc1
|
||||
# Parent ebf6598a9309200fcea0cedb08e39161b82a73f9
|
||||
|
||||
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
|
||||
@@ -22,12 +22,15 @@ def FirefoxBranding():
|
||||
FINAL_TARGET_FILES.VisualElements += [
|
||||
'VisualElements_150.png',
|
||||
'VisualElements_70.png',
|
||||
@@ -26,12 +26,15 @@ def FirefoxBranding():
|
||||
"PrivateBrowsing_70.png",
|
||||
"VisualElements_150.png",
|
||||
"VisualElements_70.png",
|
||||
]
|
||||
elif 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
|
||||
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',
|
||||
"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
|
||||
@@ -404,20 +404,23 @@
|
||||
@RESPATH@/browser/chrome/pdfjs.manifest
|
||||
@RESPATH@/browser/chrome/pdfjs/*
|
||||
@@ -216,20 +216,23 @@
|
||||
@RESPATH@/browser/chrome/browser@JAREXT@
|
||||
@RESPATH@/browser/chrome/browser.manifest
|
||||
@RESPATH@/chrome/pdfjs.manifest
|
||||
@RESPATH@/chrome/pdfjs/*
|
||||
@RESPATH@/chrome/toolkit@JAREXT@
|
||||
@RESPATH@/chrome/toolkit.manifest
|
||||
@RESPATH@/chrome/recording.manifest
|
||||
@RESPATH@/chrome/recording/*
|
||||
#ifdef MOZ_GTK
|
||||
@RESPATH@/browser/chrome/icons/default/default16.png
|
||||
+@RESPATH@/browser/chrome/icons/default/default22.png
|
||||
@ -43,8 +43,8 @@ diff --git a/browser/installer/package-manifest.in b/browser/installer/package-m
|
||||
#endif
|
||||
@RESPATH@/browser/features/*
|
||||
|
||||
; [Webide Files]
|
||||
@RESPATH@/browser/chrome/webide@JAREXT@
|
||||
@RESPATH@/browser/chrome/webide.manifest
|
||||
@RESPATH@/browser/@PREF_DIR@/webide.js
|
||||
; [DevTools Startup Files]
|
||||
@RESPATH@/browser/chrome/devtools-startup@JAREXT@
|
||||
@RESPATH@/browser/chrome/devtools-startup.manifest
|
||||
|
||||
; DevTools
|
||||
|
4495
firefox-esr.changes
4495
firefox-esr.changes
File diff suppressed because it is too large
Load Diff
507
firefox-esr.spec
507
firefox-esr.spec
@ -1,8 +1,8 @@
|
||||
#
|
||||
# spec file for package firefox-esr
|
||||
#
|
||||
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
# 2006-2019 Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# Copyright (c) 2006-2024 Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -16,17 +16,22 @@
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
# either MozillaFirefox or firefox-esr
|
||||
# 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
|
||||
%if 0%{?suse_version} > 1549
|
||||
%define pkgname firefox-esr
|
||||
%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
|
||||
@ -34,29 +39,41 @@
|
||||
# orig_version 70.0
|
||||
# orig_suffix b3
|
||||
# major 69
|
||||
# mainver %major.99
|
||||
%define major 68
|
||||
%define mainver %major.4.1
|
||||
%define orig_version 68.4.1
|
||||
# mainver %%major.99
|
||||
%define major 128
|
||||
%define mainver %major.5.1
|
||||
%define orig_version 128.5.1
|
||||
%define orig_suffix esr
|
||||
%define update_channel esr68
|
||||
%define update_channel esr
|
||||
%define branding 1
|
||||
%define devpkg 0
|
||||
|
||||
# always build with GCC as SUSE Security Team requires that
|
||||
%define clang_build 0
|
||||
# PGO builds do not work in TW currently (bmo#1680306)
|
||||
%define do_profiling 0
|
||||
|
||||
# PIE, full relro
|
||||
%define build_hardened 1
|
||||
# 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}
|
||||
%{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"
|
||||
@ -66,20 +83,27 @@ BuildArch: i686
|
||||
%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.*)$
|
||||
%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
|
||||
@ -89,37 +113,47 @@ BuildRequires: dbus-1-glib-devel
|
||||
BuildRequires: dejavu-fonts
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: memory-constraints
|
||||
%if 0%{?suse_version} <= 1320
|
||||
BuildRequires: gcc7-c++
|
||||
%if 0%{?suse_version} < 1550 && 0%{?sle_version} <= 150600
|
||||
BuildRequires: gcc13
|
||||
BuildRequires: gcc13-c++
|
||||
%else
|
||||
BuildRequires: gcc-c++
|
||||
%endif
|
||||
BuildRequires: cargo >= 1.34
|
||||
BuildRequires: cargo1.78
|
||||
BuildRequires: rust1.78
|
||||
%if 0%{useccache} != 0
|
||||
BuildRequires: ccache
|
||||
%endif
|
||||
BuildRequires: libXcomposite-devel
|
||||
BuildRequires: libcurl-devel
|
||||
BuildRequires: libidl-devel
|
||||
BuildRequires: libiw-devel
|
||||
BuildRequires: libnotify-devel
|
||||
BuildRequires: libproxy-devel
|
||||
BuildRequires: makeinfo
|
||||
BuildRequires: mozilla-nspr-devel >= 4.21
|
||||
BuildRequires: mozilla-nss-devel >= 3.44.1
|
||||
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000 && !0%{?is_opensuse}
|
||||
BuildRequires: firefox-nasm >= 2.13
|
||||
BuildRequires: nodejs10
|
||||
#BuildRequires: python2-xml
|
||||
BuildRequires: mozilla-nspr-devel >= 4.35
|
||||
BuildRequires: mozilla-nss-devel >= 3.100
|
||||
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
|
||||
BuildRequires: nasm >= 2.13
|
||||
BuildRequires: nodejs8 >= 8.11
|
||||
BuildRequires: python2-xml
|
||||
%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
|
||||
# Official requirement is 3.5, but for SLE-12 we lower (patch) the
|
||||
# requirement to 3.4, as thats the python-version we have there
|
||||
BuildRequires: python3 >= 3.4
|
||||
BuildRequires: python-devel
|
||||
BuildRequires: rust >= 1.34
|
||||
BuildRequires: rust-cbindgen >= 0.8.7
|
||||
BuildRequires: startup-notification-devel
|
||||
%endif
|
||||
BuildRequires: rust-cbindgen >= 0.26
|
||||
BuildRequires: unzip
|
||||
BuildRequires: update-desktop-files
|
||||
BuildRequires: xorg-x11-libXt-devel
|
||||
@ -131,20 +165,19 @@ BuildRequires: zip
|
||||
%if 0%{?suse_version} < 1550
|
||||
BuildRequires: pkgconfig(gconf-2.0) >= 1.2.1
|
||||
%endif
|
||||
BuildRequires: pkgconfig(gdk-x11-2.0)
|
||||
%if 0%{?suse_version} < 1599
|
||||
BuildRequires: clang15-devel
|
||||
%else
|
||||
BuildRequires: clang18-devel
|
||||
%endif
|
||||
BuildRequires: pkgconfig(glib-2.0) >= 2.22
|
||||
BuildRequires: pkgconfig(gobject-2.0)
|
||||
BuildRequires: pkgconfig(gtk+-2.0) >= 2.18.0
|
||||
BuildRequires: pkgconfig(gtk+-3.0) >= 3.4.0
|
||||
BuildRequires: pkgconfig(gtk+-unix-print-2.0)
|
||||
BuildRequires: pkgconfig(gtk+-3.0) >= 3.14.0
|
||||
BuildRequires: pkgconfig(gtk+-unix-print-3.0)
|
||||
BuildRequires: pkgconfig(libffi)
|
||||
BuildRequires: pkgconfig(libpulse)
|
||||
%if 0%{?suse_version} > 1320
|
||||
BuildRequires: llvm-clang-devel >= 3.9.0
|
||||
%else
|
||||
# this covers the workaround to compile on Leap 42 in OBS
|
||||
BuildRequires: clang4-devel
|
||||
%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
|
||||
@ -160,29 +193,28 @@ Provides: firefox = %{version}-%{release}
|
||||
Provides: web_browser
|
||||
Provides: appdata()
|
||||
Provides: appdata(firefox.appdata.xml)
|
||||
# this is needed to match this package with the kde4 helper package without the main package
|
||||
# having a hard requirement on the kde4 package
|
||||
%define kde_helper_version 6
|
||||
Provides: mozilla-kde4-version = %{kde_helper_version}
|
||||
Summary: Mozilla %{appname} Web Browser
|
||||
License: MPL-2.0
|
||||
Group: Productivity/Networking/Web/Browsers
|
||||
Url: http://www.mozilla.org/
|
||||
URL: http://www.mozilla.org/
|
||||
%if !%{with only_print_mozconfig}
|
||||
Source: http://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/source/%{srcname}-%{orig_version}%{orig_suffix}.source.tar.xz
|
||||
Source1: MozillaFirefox.desktop
|
||||
Source2: MozillaFirefox-rpmlintrc
|
||||
Source3: mozilla.sh.in
|
||||
Source4: tar_stamps
|
||||
%if %{localize}
|
||||
Source7: l10n-%{orig_version}%{orig_suffix}.tar.xz
|
||||
%endif
|
||||
Source8: firefox-mimeinfo.xml
|
||||
Source9: firefox.js
|
||||
Source11: firefox.1
|
||||
Source12: mozilla-get-app-id
|
||||
Source13: spellcheck.js
|
||||
Source14: https://github.com/openSUSE/firefox-scripts/raw/35ade35/create-tar.sh
|
||||
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.
|
||||
@ -192,52 +224,44 @@ Source20: https://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig
|
||||
Source21: https://ftp.mozilla.org/pub/%{srcname}/releases/%{version}%{orig_suffix}/KEY#/mozilla.keyring
|
||||
# Gecko/Toolkit
|
||||
Patch1: mozilla-nongnome-proxies.patch
|
||||
Patch2: mozilla-kde.patch
|
||||
Patch3: mozilla-ntlm-full-path.patch
|
||||
Patch4: mozilla-openaes-decl.patch
|
||||
Patch5: mozilla-aarch64-startup-crash.patch
|
||||
Patch6: mozilla-bmo1463035.patch
|
||||
Patch7: mozilla-cubeb-noreturn.patch
|
||||
Patch8: mozilla-fix-aarch64-libopus.patch
|
||||
Patch9: mozilla-disable-wasm-emulate-arm-unaligned-fp-access.patch
|
||||
Patch10: mozilla-s390-context.patch
|
||||
Patch11: mozilla-s390-bigendian.patch
|
||||
Patch12: mozilla-reduce-rust-debuginfo.patch
|
||||
Patch13: mozilla-ppc-altivec_static_inline.patch
|
||||
Patch14: mozilla-bmo1005535.patch
|
||||
Patch15: mozilla-bmo1568145.patch
|
||||
Patch16: mozilla-bmo849632.patch
|
||||
Patch17: mozilla-bmo1504834-part1.patch
|
||||
Patch18: mozilla-bmo1504834-part2.patch
|
||||
Patch19: mozilla-bmo1504834-part3.patch
|
||||
Patch20: mozilla-bmo1602730.patch
|
||||
Patch21: mozilla-bmo1554971.patch
|
||||
Patch22: mozilla-nestegg-big-endian.patch
|
||||
Patch24: mozilla-fix-top-level-asm.patch
|
||||
Patch25: mozilla-sle12-lower-python-requirement.patch
|
||||
Patch26: mozilla-bmo1504834-part4.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
|
||||
Patch20: one_swizzle_to_rule_them_all.patch
|
||||
Patch21: svg-rendering.patch
|
||||
Patch22: mozilla-fix-cmath-issues.patch
|
||||
# Firefox/browser
|
||||
Patch101: firefox-kde.patch
|
||||
Patch102: firefox-branded-icons.patch
|
||||
%endif # only_print_mozconfig
|
||||
%endif
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
Requires(post): coreutils shared-mime-info desktop-file-utils
|
||||
Requires(post): coreutils shared-mime-info desktop-file-utils
|
||||
Requires(postun): shared-mime-info desktop-file-utils
|
||||
Requires: %{name}-branding >= 68
|
||||
Requires: mozilla-nspr >= %(rpm -q --queryformat '%%{VERSION}' mozilla-nspr)
|
||||
Requires: mozilla-nss >= %(rpm -q --queryformat '%%{VERSION}' mozilla-nss)
|
||||
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
|
||||
# libproxy's mozjs pacrunner crashes FF (bnc#759123)
|
||||
%if 0%{?suse_version} < 1220
|
||||
Obsoletes: libproxy1-pacrunner-mozjs <= 0.4.7
|
||||
%endif
|
||||
##BuildArch: i686 x86_64 aarch64 ppc64le
|
||||
ExcludeArch: armv6l armv6hl ppc ppc64
|
||||
|
||||
%description
|
||||
Mozilla Firefox is a standalone web browser, designed for standards
|
||||
@ -252,6 +276,7 @@ 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.
|
||||
@ -274,7 +299,7 @@ of %{appname}.
|
||||
%package translations-other
|
||||
Summary: Extra translations for %{appname}
|
||||
Group: System/Localization
|
||||
Provides: locale(%{name}:ach;af;an;as;ast;az;bg;bn_BD;bn_IN;br;bs;cak;cy;dsb;en_ZA;eo;es_MX;et;eu;fa;ff;fy_NL;ga_IE;gd;gl;gn;gu_IN;he;hi_IN;hr;hsb;hy_AM;id;is;ka;kab;kk;km;kn;lij;lt;lv;mai;mk;ml;mr;ms;ne-NP;nn_NO;oc;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;te;th;tr;uk;uz;vi;xh)
|
||||
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}
|
||||
|
||||
@ -302,16 +327,6 @@ Supplements: packageand(%{name}:branding-upstream)
|
||||
%description branding-upstream
|
||||
This package provides upstream look and feel for %{appname}.
|
||||
|
||||
%if %crashreporter
|
||||
%package buildsymbols
|
||||
Summary: Breakpad buildsymbols for %{appname}
|
||||
Group: Development/Debug
|
||||
|
||||
%description buildsymbols
|
||||
This subpackage contains the Breakpad created and compatible debugging
|
||||
symbols meant for upload to Mozilla's crash collector database.
|
||||
%endif
|
||||
|
||||
%if !%{with only_print_mozconfig}
|
||||
%prep
|
||||
%if %localize
|
||||
@ -329,65 +344,51 @@ fi
|
||||
%setup -q -n %{srcname}-%{orig_version}
|
||||
%endif
|
||||
cd $RPM_BUILD_DIR/%{srcname}-%{orig_version}
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%ifarch s390x ppc64
|
||||
%patch11 -p1
|
||||
%autopatch -p1
|
||||
%endif
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
%patch24 -p1
|
||||
%patch25 -p1
|
||||
%patch26 -p1
|
||||
# Firefox
|
||||
%patch101 -p1
|
||||
%patch102 -p1
|
||||
%endif # only_print_mozconfig
|
||||
|
||||
%build
|
||||
%if !%{with only_print_mozconfig}
|
||||
# no need to add build time to binaries
|
||||
# May have to use "firefox-esr.changes" here explicitly,
|
||||
# because pkgname could be "MozillaFirefox"
|
||||
if [ ! -s "%{_sourcedir}/%{pkgname}.changes" ]; then
|
||||
ln -f "%{_sourcedir}/firefox-esr.changes" "%{_sourcedir}/%{pkgname}.changes"
|
||||
fi
|
||||
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" {} +
|
||||
#
|
||||
kdehelperversion=$(cat toolkit/xre/nsKDEUtils.cpp | grep '#define KMOZILLAHELPER_VERSION' | cut -d ' ' -f 3)
|
||||
if test "$kdehelperversion" != %{kde_helper_version}; then
|
||||
echo fix kde helper version in the .spec file
|
||||
exit 1
|
||||
fi
|
||||
source %{SOURCE4}
|
||||
%endif # only_print_mozconfig
|
||||
|
||||
# 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 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
|
||||
%if 0%{?suse_version} <= 1320
|
||||
export CC=gcc-7
|
||||
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
|
||||
@ -395,57 +396,64 @@ 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"
|
||||
%endif
|
||||
%if 0%{?build_hardened}
|
||||
export LDFLAGS="${LDFLAGS} -fPIC -Wl,-z,relro,-z,now"
|
||||
# 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
|
||||
%if 0%{?clang_build} == 0
|
||||
export CFLAGS="$CFLAGS -mminimal-toc"
|
||||
%endif
|
||||
%ifarch %ix86
|
||||
# Not enough memory on 32-bit systems, reduce debug info.
|
||||
export CFLAGS="\$CFLAGS -g1"
|
||||
%endif
|
||||
export CXXFLAGS="$CFLAGS"
|
||||
export CXXFLAGS="\$CFLAGS"
|
||||
export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
|
||||
%if %{with only_print_mozconfig}
|
||||
echo "export CC=$CC"
|
||||
echo "export CXX=$CXX"
|
||||
echo "export CFLAGS=\"$CFLAGS\""
|
||||
echo "export LDFLAGS=\"$LDFLAGS\""
|
||||
echo "export RUSTFLAGS=\"$RUSTFLAGS\""
|
||||
echo ""
|
||||
cat << EOF
|
||||
%else
|
||||
%limit_build -m 2000
|
||||
cat << EOF > $MOZCONFIG
|
||||
EOF
|
||||
# Done with env-variables.
|
||||
source ./.obsenv.sh
|
||||
|
||||
%ifarch aarch64 %arm ppc64 ppc64le riscv64
|
||||
%limit_build -m 2500
|
||||
%endif
|
||||
|
||||
# Generating mozconfig
|
||||
cat << EOF > $MOZCONFIG
|
||||
mk_add_options MOZILLA_OFFICIAL=1
|
||||
mk_add_options BUILD_OFFICIAL=1
|
||||
mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs}
|
||||
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj
|
||||
. \$topsrcdir/browser/config/mozconfig
|
||||
ac_add_options --disable-bootstrap
|
||||
ac_add_options --prefix=%{_prefix}
|
||||
ac_add_options --libdir=%{_libdir}
|
||||
ac_add_options --includedir=%{_includedir}
|
||||
ac_add_options --enable-release
|
||||
%if 0%{wayland_supported}
|
||||
ac_add_options --enable-default-toolkit=cairo-gtk3-wayland
|
||||
%else
|
||||
ac_add_options --enable-default-toolkit=cairo-gtk3
|
||||
%if 0%{?suse_version} >= 1550
|
||||
ac_add_options --disable-gconf
|
||||
%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
|
||||
%endif
|
||||
%if 0%{?suse_version} > 1549
|
||||
%ifnarch aarch64 ppc64 ppc64le s390x
|
||||
ac_add_options --disable-elf-hack
|
||||
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
|
||||
@ -456,13 +464,18 @@ ac_add_options --disable-updater
|
||||
ac_add_options --disable-tests
|
||||
ac_add_options --enable-alsa
|
||||
ac_add_options --disable-debug
|
||||
ac_add_options --enable-startup-notification
|
||||
#ac_add_options --enable-chrome-format=jar
|
||||
ac_add_options --enable-update-channel=%{update_channel}
|
||||
ac_add_options --with-mozilla-api-keyfile=%{SOURCE18}
|
||||
ac_add_options --with-google-location-service-api-keyfile=%{SOURCE19}
|
||||
# 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
|
||||
@ -493,51 +506,70 @@ ac_add_options MOZ_PGO=1
|
||||
%endif
|
||||
%endif
|
||||
EOF
|
||||
%if !%{with only_print_mozconfig}
|
||||
%ifarch ppc64 s390x s390
|
||||
# NOTE: Currently, system-icu is too old, so we can't build with that,
|
||||
# but have to generate the .dat-file freshly. This seems to be a
|
||||
# less fragile approach anyways.
|
||||
# ac_add_options --with-system-icu
|
||||
echo "Generate big endian version of config/external/icu/data/icud58l.dat"
|
||||
./mach python intl/icu_sources_data.py .
|
||||
ls -l config/external/icu/data
|
||||
rm -f config/external/icu/data/icudt*l.dat
|
||||
%endif
|
||||
%if 0%{?sle_version} >= 120000 && 0%{?sle_version} < 150000 && !0%{?is_opensuse}
|
||||
export PATH=/usr/%_lib/firefox/bin:$PATH
|
||||
export LD_LIBRARY_PATH=/usr/%_lib/firefox/%_lib:$LD_LIBRARY_PATH
|
||||
export PKG_CONFIG_PATH=/usr/%_lib/firefox/%_lib/pkgconfig/
|
||||
|
||||
%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
|
||||
./mach build -v
|
||||
|
||||
# build additional locales
|
||||
%if %localize
|
||||
mkdir -p %{buildroot}%{progdir}/browser/extensions
|
||||
truncate -s 0 %{_tmppath}/translations.{common,other}
|
||||
sed -r '/^(ja-JP-mac|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{srcname}-%{orig_version}/browser/locales/shipped-locales \
|
||||
| xargs -n 1 -I {} /bin/sh -c '
|
||||
# langpack-build can not be done in parallel easily (see https://bugzilla.mozilla.org/show_bug.cgi?id=1660943)
|
||||
# Therefore, we have to have a separate obj-dir for each language
|
||||
# We do this, by creating a mozconfig-template with the necessary switches
|
||||
# and a placeholder obj-dir, which gets copied and modified for each language
|
||||
|
||||
# Create mozconfig-template for langbuild
|
||||
cat << EOF > ${MOZCONFIG}_LANG
|
||||
mk_add_options MOZILLA_OFFICIAL=1
|
||||
mk_add_options BUILD_OFFICIAL=1
|
||||
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj_LANG
|
||||
. \$topsrcdir/browser/config/mozconfig
|
||||
ac_add_options --prefix=%{_prefix}
|
||||
ac_add_options --with-l10n-base=$RPM_BUILD_DIR/l10n
|
||||
ac_add_options --disable-updater
|
||||
ac_add_options --without-wasm-sandboxed-libraries
|
||||
%if %branding
|
||||
ac_add_options --enable-official-branding
|
||||
%endif
|
||||
EOF
|
||||
|
||||
%define njobs 0%{?jobs:%jobs}
|
||||
mkdir -p $RPM_BUILD_DIR/langpacks_artifacts/
|
||||
sed -r '/^(ja-JP-mac|ga-IE|en-US|)$/d;s/ .*$//' $RPM_BUILD_DIR/%{srcname}-%{orig_version}/browser/locales/shipped-locales \
|
||||
| xargs -n 1 %{?njobs:-P %njobs} -I {} /bin/sh -c '
|
||||
locale=$1
|
||||
./mach build langpack-$locale
|
||||
cp -rL ../obj/dist/xpi-stage/locale-$locale \
|
||||
%{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org
|
||||
# remove prefs, profile defaults, and hyphenation from langpack
|
||||
rm -rf %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/defaults
|
||||
rm -rf %{buildroot}%{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org/hyphenation
|
||||
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 \
|
||||
echo %{progdir}/browser/extensions/langpack-$locale@firefox.mozilla.org.xpi \
|
||||
>> %{_tmppath}/translations.$_l10ntarget
|
||||
' -- {}
|
||||
%endif
|
||||
|
||||
%endif # only_print_mozconfig
|
||||
%if 0%{useccache} != 0
|
||||
ccache -s
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%install
|
||||
cd $RPM_BUILD_DIR/obj
|
||||
@ -554,6 +586,10 @@ 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)
|
||||
@ -565,6 +601,7 @@ mv %{buildroot}%{progdir}/%{srcname}-bin %{buildroot}%{progdir}/%{progname}-bin
|
||||
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 \
|
||||
@ -583,6 +620,7 @@ 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
|
||||
@ -591,27 +629,29 @@ ln -sf ../..%{progdir}/%{progname}.sh %{buildroot}%{_bindir}/%{progname}
|
||||
mkdir -p %{buildroot}%{_datadir}/applications
|
||||
sed "s:%%NAME:%{appname}:g
|
||||
s:%%EXEC:%{progname}:g
|
||||
s:%%ICON:%{progname}:g" \
|
||||
s:%%ICON:%{progname}:g
|
||||
s:%%WMCLASS:%{progname}%{major}:g" \
|
||||
%{SOURCE1} > %{buildroot}%{_datadir}/applications/%{desktop_file_name}.desktop
|
||||
%suse_update_desktop_file %{desktop_file_name} Network WebBrowser GTK
|
||||
# additional mime-types
|
||||
mkdir -p %{buildroot}%{_datadir}/mime/packages
|
||||
cp %{SOURCE8} %{buildroot}%{_datadir}/mime/packages/%{progname}.xml
|
||||
# appdata
|
||||
mkdir -p %{buildroot}%{_datadir}/appdata
|
||||
mkdir -p %{buildroot}%{_datadir}/metainfo
|
||||
sed "s:firefox.desktop:%{desktop_file_name}:g" \
|
||||
%{SOURCE15} > %{buildroot}%{_datadir}/appdata/%{desktop_file_name}.appdata.xml
|
||||
%{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}
|
||||
mkdir -p %{buildroot}/usr/share/pixmaps/
|
||||
ln -sf %{progdir}/browser/chrome/icons/default/default128.png %{buildroot}/usr/share/pixmaps/%{progname}.png
|
||||
ln -sf %{progdir}/browser/chrome/icons/default/default128.png %{buildroot}/usr/share/pixmaps/%{progname}-gnome.png
|
||||
# Install symbolic icon for GNOME
|
||||
%if %branding
|
||||
for size in 16 22 24 32 48 64 128 256; do
|
||||
%else
|
||||
@ -635,14 +675,14 @@ rm -f %{buildroot}%{progdir}/update-settings.ini
|
||||
mkdir -p %{buildroot}%{_bindir}
|
||||
install -m 755 %SOURCE12 %{buildroot}%{_bindir}
|
||||
# inspired by mandriva
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/rpm
|
||||
cat <<'FIN' >%{buildroot}%{_sysconfdir}/rpm/macros.%{progname}
|
||||
# Macros from %{name} package
|
||||
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}/browser-plugins
|
||||
%%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)
|
||||
|
||||
@ -656,24 +696,6 @@ FIN
|
||||
# fdupes
|
||||
%fdupes %{buildroot}%{progdir}
|
||||
%fdupes %{buildroot}%{_datadir}
|
||||
# create breakpad debugsymbols
|
||||
%if %crashreporter
|
||||
SYMBOLS_NAME="firefox-%{version}-` echo '%{release}' | sed 's@\.[^\.]\+$@@' `.%{_arch}-%{suse_version}-symbols"
|
||||
make buildsymbols \
|
||||
SYMBOL_INDEX_NAME="$SYMBOLS_NAME.txt" \
|
||||
SYMBOL_FULL_ARCHIVE_BASENAME="$SYMBOLS_NAME-full" \
|
||||
SYMBOL_ARCHIVE_BASENAME="$SYMBOLS_NAME"
|
||||
if [ -e dist/*symbols.zip ]; then
|
||||
mkdir -p %{buildroot}%{_datadir}/mozilla/
|
||||
cp dist/*symbols.zip %{buildroot}%{_datadir}/mozilla/
|
||||
fi
|
||||
%endif
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
%if %localize
|
||||
rm -rf %{_tmppath}/translations.*
|
||||
%endif
|
||||
|
||||
%post
|
||||
# update mime and desktop database
|
||||
@ -696,37 +718,40 @@ exit 0
|
||||
%{progdir}/browser/defaults
|
||||
%{progdir}/browser/features/
|
||||
%{progdir}/browser/chrome/icons
|
||||
%{progdir}/browser/blocklist.xml
|
||||
%{progdir}/browser/chrome.manifest
|
||||
%{progdir}/browser/omni.ja
|
||||
%dir %{progdir}/distribution/
|
||||
%{progdir}/distribution/extensions/
|
||||
%{progdir}/defaults/
|
||||
%dir %{progdir}/gtk2
|
||||
%{progdir}/gtk2/libmozgtk.so
|
||||
%{progdir}/gmp-clearkey/
|
||||
%attr(755,root,root) %{progdir}/%{progname}.sh
|
||||
%{progdir}/%{progname}
|
||||
%{progdir}/%{progname}-bin
|
||||
%{progdir}/application.ini
|
||||
%{progdir}/chrome.manifest
|
||||
%{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
|
||||
%{progdir}/plugin-container
|
||||
%if %crashreporter
|
||||
%{progdir}/crashreporter
|
||||
%{progdir}/crashreporter.ini
|
||||
%{progdir}/Throbber-small.gif
|
||||
#%{progdir}/crashreporter.ini
|
||||
#%{progdir}/Throbber-small.gif
|
||||
%{progdir}/minidump-analyzer
|
||||
%{progdir}/browser/crashreporter-override.ini
|
||||
#%{progdir}/browser/crashreporter-override.ini
|
||||
%endif
|
||||
%{_datadir}/applications/%{desktop_file_name}.desktop
|
||||
%{_datadir}/mime/packages/%{progname}.xml
|
||||
%{_datadir}/pixmaps/firefox*
|
||||
%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}
|
||||
@ -736,13 +761,13 @@ exit 0
|
||||
%{gnome_dir}/share/icons/hicolor/
|
||||
%{_bindir}/%{progname}
|
||||
%doc %{_mandir}/man1/%{progname}.1.gz
|
||||
%{_datadir}/appdata/
|
||||
%{_datadir}/metainfo/
|
||||
|
||||
%if 0%{?devpkg}
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
%{_bindir}/mozilla-get-app-id
|
||||
%config %{_sysconfdir}/rpm/macros.%{progname}
|
||||
%{_rpmmacrodir}/macros.%{progname}
|
||||
%endif
|
||||
|
||||
%if %localize
|
||||
@ -763,10 +788,4 @@ exit 0
|
||||
%defattr(-,root,root)
|
||||
%dir %{progdir}
|
||||
|
||||
%if %crashreporter
|
||||
%files buildsymbols
|
||||
%defattr(-,root,root)
|
||||
%{_datadir}/mozilla/*.zip
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
|
1731
firefox-kde.patch
1731
firefox-kde.patch
File diff suppressed because it is too large
Load Diff
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
|
@ -60,7 +60,7 @@ Open new instance, not a new window in running instance.
|
||||
\fB\-\-UILocale\fR \fIlocale\fR
|
||||
Start with \fIlocale\fR resources as UI Locale.
|
||||
.TP
|
||||
\fB\-\-save\-mode\fR
|
||||
\fB\-\-safe\-mode\fR
|
||||
Disables extensions and themes for this session.
|
||||
.TP
|
||||
\fB\-\-headless\fR
|
||||
|
@ -2,6 +2,9 @@ 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 system-global or app-global extensions
|
||||
pref("extensions.autoDisableScopes", 3);
|
||||
// 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);
|
||||
|
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
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2f198419e7a2a1a58db8a73088f0c63eac29fcea4ff3f90c8597ba6768b1c792
|
||||
size 49175812
|
@ -3,14 +3,14 @@
|
||||
# Date 1558442998 -7200
|
||||
# Tue May 21 14:49:58 2019 +0200
|
||||
# Node ID 386083b58d8558141901d796ec6919a4aba7ad3a
|
||||
# Parent 835641be7eb9408aa1eff0d38b37f6c523d2ef98
|
||||
# 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 -r 835641be7eb9 -r 386083b58d85 netwerk/base/nsIOService.cpp
|
||||
--- a/netwerk/base/nsIOService.cpp Fri Feb 26 16:20:09 2016 +0000
|
||||
+++ b/netwerk/base/nsIOService.cpp Tue May 21 14:49:58 2019 +0200
|
||||
@@ -1000,7 +1000,13 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,20 +0,0 @@
|
||||
# HG changeset patch
|
||||
# User Steve Singer <steve@ssinger.info>
|
||||
# Date 1558451540 -7200
|
||||
# Tue May 21 17:12:20 2019 +0200
|
||||
# Node ID 433beec63e6b5f409683af20a0c1ab137cc7bfad
|
||||
# Parent 42c99b59a87b904063bad3193f10c51d068d2eac
|
||||
Bug 1005535 - Get skia GPU building on big endian.
|
||||
|
||||
diff -r 42c99b59a87b -r 433beec63e6b gfx/skia/skia/include/private/GrColor.h
|
||||
--- a/gfx/skia/skia/include/private/GrColor.h Wed Jun 05 08:48:08 2019 +0200
|
||||
+++ b/gfx/skia/skia/include/private/GrColor.h Tue May 21 17:12:20 2019 +0200
|
||||
@@ -63,7 +63,7 @@
|
||||
* Since premultiplied means that alpha >= color, we construct a color with
|
||||
* each component==255 and alpha == 0 to be "illegal"
|
||||
*/
|
||||
-#define GrColor_ILLEGAL (~(0xFF << GrColor_SHIFT_A))
|
||||
+#define GrColor_ILLEGAL ((uint32_t)(~(0xFF << GrColor_SHIFT_A)))
|
||||
|
||||
/** Normalizes and coverts an uint8_t to a float. [0, 255] -> [0.0, 1.0] */
|
||||
static inline float GrNormalizeByteToFloat(uint8_t value) {
|
@ -1,78 +0,0 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Mike Hommey <mh+mozilla@glandium.org>
|
||||
# Date 1526871862 -32400
|
||||
# Node ID 94f21505ff13cd089f7129cd24927cf8b31a0f43
|
||||
# Parent fc741a5ea37dbe145e0ca5f85e5dfb100f3c9091
|
||||
Bug 1463035 - Remove MOZ_SIGNAL_TRAMPOLINE. r?darchons
|
||||
|
||||
For some reason, GNU as is not happy with the assembly generated after
|
||||
bug 1238661 anymore on Debian armel.
|
||||
|
||||
OTOH, as mentioned in bug 1238661 comment 4, we actually don't need this
|
||||
workaround anymore, so let's just kill it.
|
||||
|
||||
diff --git a/mfbt/moz.build b/mfbt/moz.build
|
||||
--- a/mfbt/moz.build
|
||||
+++ b/mfbt/moz.build
|
||||
@@ -122,20 +122,16 @@ EXPORTS["double-conversion"] = [
|
||||
LOCAL_INCLUDES += [
|
||||
'/mfbt/double-conversion',
|
||||
]
|
||||
|
||||
if CONFIG['OS_ARCH'] == 'WINNT':
|
||||
EXPORTS.mozilla += [
|
||||
'WindowsVersion.h',
|
||||
]
|
||||
-elif CONFIG['OS_ARCH'] == 'Linux':
|
||||
- EXPORTS.mozilla += [
|
||||
- 'LinuxSignal.h',
|
||||
- ]
|
||||
|
||||
UNIFIED_SOURCES += [
|
||||
'Assertions.cpp',
|
||||
'ChaosMode.cpp',
|
||||
'double-conversion/double-conversion/bignum-dtoa.cc',
|
||||
'double-conversion/double-conversion/bignum.cc',
|
||||
'double-conversion/double-conversion/cached-powers.cc',
|
||||
'double-conversion/double-conversion/diy-fp.cc',
|
||||
diff --git a/tools/profiler/core/platform-linux-android.cpp b/tools/profiler/core/platform-linux-android.cpp
|
||||
--- a/tools/profiler/core/platform-linux-android.cpp
|
||||
+++ b/tools/profiler/core/platform-linux-android.cpp
|
||||
@@ -55,17 +55,16 @@
|
||||
#ifdef __GLIBC__
|
||||
# include <execinfo.h> // backtrace, backtrace_symbols
|
||||
#endif // def __GLIBC__
|
||||
#include <strings.h> // index
|
||||
#include <errno.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "prenv.h"
|
||||
-#include "mozilla/LinuxSignal.h"
|
||||
#include "mozilla/PodOperations.h"
|
||||
#include "mozilla/DebugOnly.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <list>
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
@@ -248,17 +247,17 @@ Sampler::Sampler(PSLockRef aLock)
|
||||
|
||||
// NOTE: We don't initialize LUL here, instead initializing it in
|
||||
// SamplerThread's constructor. This is because with the
|
||||
// profiler_suspend_and_sample_thread entry point, we want to be able to
|
||||
// sample without waiting for LUL to be initialized.
|
||||
|
||||
// Request profiling signals.
|
||||
struct sigaction sa;
|
||||
- sa.sa_sigaction = MOZ_SIGNAL_TRAMPOLINE(SigprofHandler);
|
||||
+ sa.sa_sigaction = SigprofHandler;
|
||||
sigemptyset(&sa.sa_mask);
|
||||
sa.sa_flags = SA_RESTART | SA_SIGINFO;
|
||||
if (sigaction(SIGPROF, &sa, &mOldSigprofHandler) != 0) {
|
||||
MOZ_CRASH("Error installing SIGPROF handler in the profiler");
|
||||
}
|
||||
}
|
||||
|
||||
void Sampler::Disable(PSLockRef aLock) {
|
@ -1,64 +1,74 @@
|
||||
# HG changeset patch
|
||||
# Parent 051b75a600dfbf7503c3485cebfd34d4eb29be96
|
||||
# Parent 9fcbd287056a40084b1e679f787bf683b291f323
|
||||
Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834
|
||||
|
||||
diff -r 051b75a600df gfx/2d/DrawTargetSkia.cpp
|
||||
--- a/gfx/2d/DrawTargetSkia.cpp Fri Jul 05 12:42:44 2019 +0200
|
||||
+++ b/gfx/2d/DrawTargetSkia.cpp Mon Jul 08 10:59:30 2019 +0200
|
||||
@@ -138,8 +138,7 @@
|
||||
return surfaceBounds.Intersect(bounds);
|
||||
Index: firefox-128.0/gfx/2d/DrawTargetSkia.cpp
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/gfx/2d/DrawTargetSkia.cpp
|
||||
+++ firefox-128.0/gfx/2d/DrawTargetSkia.cpp
|
||||
@@ -156,7 +156,8 @@ static IntRect CalculateSurfaceBounds(co
|
||||
}
|
||||
|
||||
-static const int kARGBAlphaOffset =
|
||||
static const int kARGBAlphaOffset =
|
||||
- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0;
|
||||
+static const int kARGBAlphaOffset = 0; // Skia is always BGRA 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) {
|
||||
diff -r 051b75a600df gfx/2d/Types.h
|
||||
--- a/gfx/2d/Types.h Fri Jul 05 12:42:44 2019 +0200
|
||||
+++ b/gfx/2d/Types.h Mon Jul 08 10:59:30 2019 +0200
|
||||
@@ -85,15 +85,8 @@
|
||||
// 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
|
||||
Index: firefox-128.0/gfx/2d/Types.h
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/gfx/2d/Types.h
|
||||
+++ firefox-128.0/gfx/2d/Types.h
|
||||
@@ -89,18 +89,11 @@ enum class SurfaceFormat : int8_t {
|
||||
// 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
|
||||
X8R8G8B8_UINT32 = B8G8R8X8, // 0x00RRGGBB
|
||||
-#elif MOZ_BIG_ENDIAN()
|
||||
- A8R8G8B8_UINT32 = A8R8G8B8, // 0xAARRGGBB
|
||||
- X8R8G8B8_UINT32 = X8R8G8B8 // 0x00RRGGBB
|
||||
- X8R8G8B8_UINT32 = X8R8G8B8, // 0x00RRGGBB
|
||||
-#else
|
||||
-# error "bad endianness"
|
||||
-#endif
|
||||
};
|
||||
|
||||
static inline int BytesPerPixel(SurfaceFormat aFormat) {
|
||||
diff -r 051b75a600df gfx/skia/skia/third_party/skcms/skcms.cc
|
||||
--- a/gfx/skia/skia/third_party/skcms/skcms.cc Fri Jul 05 12:42:44 2019 +0200
|
||||
+++ b/gfx/skia/skia/third_party/skcms/skcms.cc Mon Jul 08 10:59:30 2019 +0200
|
||||
@@ -17,6 +17,8 @@
|
||||
#include <arm_neon.h>
|
||||
#elif defined(__SSE__)
|
||||
#include <immintrin.h>
|
||||
// The following values are OS and endian-independent synonyms.
|
||||
//
|
||||
Index: firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/gfx/skia/skia/modules/skcms/skcms.cc
|
||||
+++ firefox-128.0/gfx/skia/skia/modules/skcms/skcms.cc
|
||||
@@ -31,6 +31,8 @@
|
||||
#include <avx512fintrin.h>
|
||||
#include <avx512dqintrin.h>
|
||||
#endif
|
||||
+#else
|
||||
+ #define SKCMS_PORTABLE
|
||||
#endif
|
||||
|
||||
// sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others.
|
||||
@@ -124,20 +126,28 @@
|
||||
using namespace skcms_private;
|
||||
@@ -324,20 +326,28 @@ enum {
|
||||
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
|
||||
#else
|
||||
- return __builtin_bswap16(be);
|
||||
+ #if defined(_MSC_VER)
|
||||
return _byteswap_ushort(be);
|
||||
-#else
|
||||
+ return _byteswap_ushort(be);
|
||||
+ #else
|
||||
return __builtin_bswap16(be);
|
||||
+ return __builtin_bswap16(be);
|
||||
+ #endif
|
||||
#endif
|
||||
}
|
||||
@ -67,14 +77,15 @@ diff -r 051b75a600df gfx/skia/skia/third_party/skcms/skcms.cc
|
||||
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
|
||||
#else
|
||||
- return __builtin_bswap32(be);
|
||||
+ #if defined(_MSC_VER)
|
||||
return _byteswap_ulong(be);
|
||||
-#else
|
||||
+ return _byteswap_ulong(be);
|
||||
+ #else
|
||||
return __builtin_bswap32(be);
|
||||
+ return __builtin_bswap32(be);
|
||||
+ #endif
|
||||
#endif
|
||||
}
|
||||
|
@ -1,88 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent 36563351309ddbc6c29559ba50a41d005f925abb
|
||||
Skia does not support big endian. The places to fix are too numerous and upstream (skia, not Mozilla)
|
||||
has no interest in maintaining big endian.
|
||||
So here we try to swizzle the input for skia, so that skia always works on LE, and when it comes
|
||||
out again, we transform back to BE.
|
||||
|
||||
diff -r 36563351309d gfx/2d/ConvolutionFilter.cpp
|
||||
--- a/gfx/2d/ConvolutionFilter.cpp Mon Sep 09 17:59:28 2019 +0200
|
||||
+++ b/gfx/2d/ConvolutionFilter.cpp Tue Sep 10 08:25:13 2019 +0200
|
||||
@@ -35,9 +35,38 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
+static void ByteSwapArray(uint8_t *u8Array, int32_t size) {
|
||||
+ uint32_t *array = reinterpret_cast<uint32_t*>(u8Array);
|
||||
+ for (int pxl = 0; pxl < size; ++pxl) {
|
||||
+ // Use an endian swap to move the bytes, i.e. BGRA -> ARGB.
|
||||
+ uint32_t rgba = array[pxl];
|
||||
+ array[pxl] = NativeEndian::swapToLittleEndian(rgba);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
void ConvolutionFilter::ConvolveHorizontally(const uint8_t* aSrc, uint8_t* aDst,
|
||||
bool aHasAlpha) {
|
||||
+#if MOZ_BIG_ENDIAN
|
||||
+ int outputSize = mFilter->numValues();
|
||||
+
|
||||
+ // Input size isn't handed in, so we have to calculate it quickly
|
||||
+ int inputSize = 0;
|
||||
+ for (int xx = 0; xx < outputSize; ++xx) {
|
||||
+ // Get the filter that determines the current output pixel.
|
||||
+ int filterOffset, filterLength;
|
||||
+ mFilter->FilterForValue(xx, &filterOffset, &filterLength);
|
||||
+ inputSize = std::max(inputSize, filterOffset + filterLength);
|
||||
+ }
|
||||
+
|
||||
+ ByteSwapArray((uint8_t*)aSrc, inputSize);
|
||||
+#endif
|
||||
+
|
||||
SkOpts::convolve_horizontally(aSrc, *mFilter, aDst, aHasAlpha);
|
||||
+
|
||||
+#if MOZ_BIG_ENDIAN
|
||||
+ ByteSwapArray((uint8_t*)aSrc, inputSize);
|
||||
+ ByteSwapArray(aDst, outputSize);
|
||||
+#endif
|
||||
}
|
||||
|
||||
void ConvolutionFilter::ConvolveVertically(uint8_t* const* aSrc, uint8_t* aDst,
|
||||
@@ -49,8 +78,26 @@
|
||||
int32_t filterLength;
|
||||
auto filterValues =
|
||||
mFilter->FilterForValue(aRowIndex, &filterOffset, &filterLength);
|
||||
+
|
||||
+#if MOZ_BIG_ENDIAN
|
||||
+ for (int filterY = 0; filterY < filterLength; filterY++) {
|
||||
+ // Skia only knows LE, so we have to swizzle the input
|
||||
+ ByteSwapArray(aSrc[filterY], aRowSize);
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
SkOpts::convolve_vertically(filterValues, filterLength, aSrc, aRowSize, aDst,
|
||||
aHasAlpha);
|
||||
+
|
||||
+#if MOZ_BIG_ENDIAN
|
||||
+ // After skia is finished, we swizzle back to BE, in case
|
||||
+ // the input is used again somewhere else
|
||||
+ for (int filterY = 0; filterY < filterLength; filterY++) {
|
||||
+ ByteSwapArray(aSrc[filterY], aRowSize);
|
||||
+ }
|
||||
+ // The destination array as well
|
||||
+ ByteSwapArray(aDst, aRowSize);
|
||||
+#endif
|
||||
}
|
||||
|
||||
/* ConvolutionFilter::ComputeResizeFactor is derived from Skia's
|
||||
diff -r 36563351309d gfx/skia/skia/include/core/SkPreConfig.h
|
||||
--- a/gfx/skia/skia/include/core/SkPreConfig.h Mon Sep 09 17:59:28 2019 +0200
|
||||
+++ b/gfx/skia/skia/include/core/SkPreConfig.h Tue Sep 10 08:25:13 2019 +0200
|
||||
@@ -73,7 +73,7 @@
|
||||
defined(__ppc__) || defined(__hppa) || \
|
||||
defined(__PPC__) || defined(__PPC64__) || \
|
||||
defined(_MIPSEB) || defined(__ARMEB__) || \
|
||||
- defined(__s390__) || \
|
||||
+ defined(__s390__) || defined(__s390x__) || \
|
||||
(defined(__sh__) && defined(__BIG_ENDIAN__)) || \
|
||||
(defined(__ia64) && defined(__BIG_ENDIAN__))
|
||||
#define SK_CPU_BENDIAN
|
@ -1,44 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent aecb4600e5da17443b224c79eee178c1d8e155e3
|
||||
For FF68, AntiAliasing of XULTexts seem to be broken on big endian (s390x). Text and icons of the sandwich-menu to the
|
||||
right of the address bar, as well as plugin-windows appears transparant, which usually means unreadable (white on white).
|
||||
|
||||
diff -r aecb4600e5da gfx/skia/skia/include/private/SkNx.h
|
||||
--- a/gfx/skia/skia/include/private/SkNx.h Tue Aug 20 09:46:55 2019 +0200
|
||||
+++ b/gfx/skia/skia/include/private/SkNx.h Mon Sep 09 10:04:06 2019 +0200
|
||||
@@ -238,7 +238,18 @@
|
||||
AI SkNx operator*(const SkNx& y) const { return fVal * y.fVal; }
|
||||
AI SkNx operator/(const SkNx& y) const { return fVal / y.fVal; }
|
||||
|
||||
+ // On Big endian the commented out variant doesn't work,
|
||||
+ // and honestly, I have no idea why it exists in the first place.
|
||||
+ // The reason its broken is, I think, that it defaults to the double-variant of ToBits()
|
||||
+ // which gets a 64-bit integer, and FromBits returns 32-bit,
|
||||
+ // cutting off the wrong half again.
|
||||
+ // Overall, I see no reason to have ToBits and FromBits at all (even for floats/doubles).
|
||||
+ // Still we are only "fixing" this for big endian and leave little endian alone (never touch a running system)
|
||||
+#ifdef SK_CPU_BENDIAN
|
||||
+ AI SkNx operator&(const SkNx& y) const { return fVal & y.fVal; }
|
||||
+#else
|
||||
AI SkNx operator&(const SkNx& y) const { return FromBits(ToBits(fVal) & ToBits(y.fVal)); }
|
||||
+#endif
|
||||
AI SkNx operator|(const SkNx& y) const { return FromBits(ToBits(fVal) | ToBits(y.fVal)); }
|
||||
AI SkNx operator^(const SkNx& y) const { return FromBits(ToBits(fVal) ^ ToBits(y.fVal)); }
|
||||
|
||||
diff -r aecb4600e5da gfx/skia/skia/src/opts/SkBlitMask_opts.h
|
||||
--- a/gfx/skia/skia/src/opts/SkBlitMask_opts.h Tue Aug 20 09:46:55 2019 +0200
|
||||
+++ b/gfx/skia/skia/src/opts/SkBlitMask_opts.h Mon Sep 09 10:04:06 2019 +0200
|
||||
@@ -203,7 +203,13 @@
|
||||
// ~~~>
|
||||
// a = 1*aa + d(1-1*aa) = aa + d(1-aa)
|
||||
// c = 0*aa + d(1-1*aa) = d(1-aa)
|
||||
+
|
||||
+ // For big endian we have to swap the alpha-mask from 0,0,0,255 to 255,0,0,0
|
||||
+#ifdef SK_CPU_BENDIAN
|
||||
+ return Sk4px(Sk16b(aa) & Sk16b(255,0,0,0, 255,0,0,0, 255,0,0,0, 255,0,0,0))
|
||||
+#else
|
||||
return Sk4px(Sk16b(aa) & Sk16b(0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255))
|
||||
+#endif
|
||||
+ d.approxMulDiv255(aa.inv());
|
||||
};
|
||||
while (h --> 0) {
|
@ -1,30 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent 46ea866ca3acb8bb5e1709ceb799b9c94f591dec
|
||||
Problem description: Tab-titles that are too long to fit into a tab get faded out.
|
||||
On big endian this is broken and instead of fading out, the
|
||||
tab gets white and the font transparent, leading to an unreadable
|
||||
tab-title
|
||||
Solution: This is not a real solution, but a hack. The real solution would have been
|
||||
to byte-swap the correct buffer, but I could not find it.
|
||||
So the next best thing is to deactivate the fading-effect. Now all tab-titles
|
||||
are readable, albeit not as pretty to look at as they could be.
|
||||
Side-effects: I have not yet found an unwanted side-effect.
|
||||
|
||||
diff -r 46ea866ca3ac -r 6ef20eee3f8f gfx/2d/DrawTargetSkia.cpp
|
||||
--- a/gfx/2d/DrawTargetSkia.cpp Tue Oct 22 12:27:22 2019 +0200
|
||||
+++ b/gfx/2d/DrawTargetSkia.cpp Thu Oct 31 09:11:56 2019 +0100
|
||||
@@ -1861,6 +1861,14 @@
|
||||
SkCanvas::kPreserveLCDText_SaveLayerFlag |
|
||||
(aCopyBackground ? SkCanvas::kInitWithPrevious_SaveLayerFlag : 0));
|
||||
|
||||
+#if MOZ_BIG_ENDIAN
|
||||
+ // Pushing a layer where an aMask is defined produces wrong output.
|
||||
+ // We _should_ endian swap the data, but I couldn't find a workable way to do so
|
||||
+ // Therefore I deactivate those layers in the meantime.
|
||||
+ // The result is: Tab-titles that are longer than the available space should be faded out.
|
||||
+ // The fading doesn't work, so we deactivate the fading-effect here.
|
||||
+ if (!aMask)
|
||||
+#endif
|
||||
mCanvas->saveLayer(saveRec);
|
||||
|
||||
SetPermitSubpixelAA(aOpaque);
|
@ -1,22 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent a25cebecb02d5460b8ad757fe9cb4a9c8d1d7658
|
||||
Eliminate startup error message:
|
||||
JavaScript error: , line 0: Error: Type error for platformInfo value (Error processing arch: Invalid enumeration value "s390x") for runtime.getPlatformInfo.
|
||||
|
||||
Reported here: https://bugzilla.mozilla.org/show_bug.cgi?id=1554971
|
||||
|
||||
Uncertain if this is causing real problems or not. Also uncertain if the fix actually fixes anything.
|
||||
No response from upstream yet.
|
||||
|
||||
diff -r a25cebecb02d -r 378b81b00e73 toolkit/components/extensions/schemas/runtime.json
|
||||
--- a/toolkit/components/extensions/schemas/runtime.json Fri Jul 05 12:42:44 2019 +0200
|
||||
+++ b/toolkit/components/extensions/schemas/runtime.json Fri Jul 19 13:19:30 2019 +0200
|
||||
@@ -64,7 +64,7 @@
|
||||
{
|
||||
"id": "PlatformArch",
|
||||
"type": "string",
|
||||
- "enum": ["arm", "x86-32", "x86-64"],
|
||||
+ "enum": ["arm", "x86-32", "x86-64", "s390x", "aarch64", "ppc64le"],
|
||||
"allowedContexts": ["content", "devtools"],
|
||||
"description": "The machine's processor architecture."
|
||||
},
|
@ -1,30 +0,0 @@
|
||||
Author: Bernhard M. Wiedemann <bwiedemann suse de>
|
||||
Date: 2019-07-22
|
||||
|
||||
Allow to override build date with SOURCE_DATE_EPOCH
|
||||
in order to make builds reproducible.
|
||||
See https://reproducible-builds.org/ for why this is good
|
||||
and https://reproducible-builds.org/specs/source-date-epoch/
|
||||
for the definition of this variable.
|
||||
|
||||
diff --git a/python/mozbuild/mozbuild/action/langpack_manifest.py b/python/mozbuild/mozbuild/action/langpack_manifest.py
|
||||
index 6f72697..d4cca96 100644
|
||||
--- a/python/mozbuild/mozbuild/action/langpack_manifest.py
|
||||
+++ b/python/mozbuild/mozbuild/action/langpack_manifest.py
|
||||
@@ -16,6 +16,7 @@ import os
|
||||
import json
|
||||
import io
|
||||
import datetime
|
||||
+import time
|
||||
import requests
|
||||
import mozversioncontrol
|
||||
import mozpack.path as mozpath
|
||||
@@ -100,7 +101,7 @@ def get_timestamp_for_locale(path):
|
||||
dt = get_dt_from_hg(path)
|
||||
|
||||
if dt is None:
|
||||
- dt = datetime.datetime.utcnow()
|
||||
+ dt = datetime.datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time())))
|
||||
|
||||
dt = dt.replace(microsecond=0)
|
||||
return dt.strftime("%Y%m%d%H%M%S")
|
@ -1,28 +0,0 @@
|
||||
diff -r 6ef20eee3f8f gfx/layers/basic/BasicCompositor.cpp
|
||||
--- a/gfx/layers/basic/BasicCompositor.cpp Thu Oct 31 09:11:56 2019 +0100
|
||||
+++ b/gfx/layers/basic/BasicCompositor.cpp Wed Dec 11 16:16:09 2019 +0100
|
||||
@@ -693,9 +693,13 @@
|
||||
|
||||
RefPtr<SourceSurface> sourceMask;
|
||||
Matrix maskTransform;
|
||||
+ // Setting an alpha-mask here breaks the URL-bar on big endian (s390x)
|
||||
+ // if the typed URL is too long for the textbox (automatic scrolling needed)
|
||||
+#if MOZ_LITTLE_ENDIAN
|
||||
if (aTransform.Is2D()) {
|
||||
SetupMask(aEffectChain, dest, offset, sourceMask, maskTransform);
|
||||
}
|
||||
+#endif
|
||||
|
||||
CompositionOp blendMode = CompositionOp::OP_OVER;
|
||||
if (Effect* effect =
|
||||
diff -r 6ef20eee3f8f gfx/layers/composite/CompositableHost.cpp
|
||||
--- a/gfx/layers/composite/CompositableHost.cpp Thu Oct 31 09:11:56 2019 +0100
|
||||
+++ b/gfx/layers/composite/CompositableHost.cpp Wed Dec 11 16:16:09 2019 +0100
|
||||
@@ -91,6 +91,7 @@
|
||||
}
|
||||
MOZ_ASSERT(source);
|
||||
|
||||
+ // Alternatively: Comment out these lines where the alpha-mask is set
|
||||
RefPtr<EffectMask> effect =
|
||||
new EffectMask(source, source->GetSize(), aTransform);
|
||||
aEffects.mSecondaryEffects[EffectTypes::MASK] = effect;
|
@ -1,16 +1,20 @@
|
||||
# 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
|
||||
diff -r 6b017d3e9733 gfx/gl/GLContext.h
|
||||
--- a/gfx/gl/GLContext.h Mon Sep 09 10:04:05 2019 +0200
|
||||
+++ b/gfx/gl/GLContext.h Wed Nov 13 17:13:04 2019 +0100
|
||||
@@ -1551,6 +1551,13 @@
|
||||
|
||||
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
|
||||
+#if MOZ_BIG_ENDIAN()
|
||||
+ uint8_t* itr = (uint8_t*)pixels;
|
||||
+ for (GLsizei i = 0; i < width * height; i++) {
|
||||
+ NativeEndian::swapToLittleEndianInPlace((uint32_t*)itr, 1);
|
||||
@ -20,4 +24,3 @@ diff -r 6b017d3e9733 gfx/gl/GLContext.h
|
||||
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:
|
@ -1,18 +0,0 @@
|
||||
# HG changeset patch
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent a9d61a2614b01b1e0ca37d00a6b11b2571868f86
|
||||
|
||||
diff --git a/media/libcubeb/src/cubeb_utils.cpp b/media/libcubeb/src/cubeb_utils.cpp
|
||||
--- a/media/libcubeb/src/cubeb_utils.cpp
|
||||
+++ b/media/libcubeb/src/cubeb_utils.cpp
|
||||
@@ -15,9 +15,10 @@ size_t cubeb_sample_size(cubeb_sample_fo
|
||||
return sizeof(int16_t);
|
||||
case CUBEB_SAMPLE_FLOAT32LE:
|
||||
case CUBEB_SAMPLE_FLOAT32BE:
|
||||
return sizeof(float);
|
||||
default:
|
||||
// should never happen as all cases are handled above.
|
||||
assert(false);
|
||||
}
|
||||
+ return 0;
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
--- a/js/src/wasm/WasmSignalHandlers.cpp 2019-05-16 11:25:13.260881532 +0200
|
||||
+++ b/js/src/wasm/WasmSignalHandlers.cpp 2019-05-16 11:24:35.164589301 +0200
|
||||
@@ -243,7 +243,7 @@ using mozilla::DebugOnly;
|
||||
// emulation here.
|
||||
|
||||
#if defined(__linux__) && defined(__arm__)
|
||||
-# define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
|
||||
+// # define WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
|
||||
#endif
|
||||
|
||||
#ifdef WASM_EMULATE_ARM_UNALIGNED_FP_ACCESS
|
@ -1,25 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent 1317782cd47f1d1f2410712a1dd283b305393eae
|
||||
|
||||
diff --git a/media/libopus/silk/arm/arm_silk_map.c b/media/libopus/silk/arm/arm_silk_map.c
|
||||
--- a/media/libopus/silk/arm/arm_silk_map.c
|
||||
+++ b/media/libopus/silk/arm/arm_silk_map.c
|
||||
@@ -23,17 +23,17 @@ INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
***********************************************************************/
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
-#include "main_FIX.h"
|
||||
+#include "../fixed/main_FIX.h"
|
||||
#include "NSQ.h"
|
||||
#include "SigProc_FIX.h"
|
||||
|
||||
#if defined(OPUS_HAVE_RTCD)
|
||||
|
||||
# if (defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && \
|
||||
!defined(OPUS_ARM_PRESUME_NEON_INTR))
|
||||
|
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;
|
||||
|
||||
/*
|
@ -1,42 +0,0 @@
|
||||
From 91bb79836ee274855393bdf6ab10e24899b1b349 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Liska <mliska@suse.cz>
|
||||
Date: Fri, 17 May 2019 14:41:35 +0200
|
||||
Subject: [PATCH] Fix top-level asm issue.
|
||||
|
||||
---
|
||||
security/sandbox/linux/moz.build | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/security/sandbox/linux/moz.build b/security/sandbox/linux/moz.build
|
||||
index aae85843e9f6..208368dfd189 100644
|
||||
--- a/security/sandbox/linux/moz.build
|
||||
+++ b/security/sandbox/linux/moz.build
|
||||
@@ -61,7 +61,6 @@ UNIFIED_SOURCES += [
|
||||
'../chromium/sandbox/linux/bpf_dsl/policy_compiler.cc',
|
||||
'../chromium/sandbox/linux/bpf_dsl/syscall_set.cc',
|
||||
'../chromium/sandbox/linux/seccomp-bpf/die.cc',
|
||||
- '../chromium/sandbox/linux/seccomp-bpf/syscall.cc',
|
||||
'broker/SandboxBrokerCommon.cpp',
|
||||
'Sandbox.cpp',
|
||||
'SandboxBrokerClient.cpp',
|
||||
@@ -77,6 +76,7 @@ UNIFIED_SOURCES += [
|
||||
SOURCES += [
|
||||
'../chromium/base/strings/safe_sprintf.cc',
|
||||
'../chromium/base/third_party/icu/icu_utf.cc',
|
||||
+ '../chromium/sandbox/linux/seccomp-bpf/syscall.cc',
|
||||
'../chromium/sandbox/linux/seccomp-bpf/trap.cc',
|
||||
'../chromium/sandbox/linux/services/syscall_wrappers.cc',
|
||||
]
|
||||
@@ -96,6 +96,9 @@ if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
|
||||
SOURCES['../chromium/sandbox/linux/services/syscall_wrappers.cc'].flags += [
|
||||
'-Wno-empty-body',
|
||||
]
|
||||
+ SOURCES['../chromium/sandbox/linux/seccomp-bpf/syscall.cc'].flags += [
|
||||
+ '-fno-lto'
|
||||
+ ]
|
||||
|
||||
# gcc lto likes to put the top level asm in syscall.cc in a different partition
|
||||
# from the function using it which breaks the build. Work around that by
|
||||
--
|
||||
2.23.0
|
||||
|
2464
mozilla-kde.patch
2464
mozilla-kde.patch
File diff suppressed because it is too large
Load Diff
25
mozilla-libavcodec58_91.patch
Normal file
25
mozilla-libavcodec58_91.patch
Normal file
@ -0,0 +1,25 @@
|
||||
# HG changeset patch
|
||||
# Parent fdc16b43f28c2e974929ca702563aaac52799654
|
||||
|
||||
diff --git a/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp b/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp
|
||||
--- a/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp
|
||||
+++ b/dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp
|
||||
@@ -44,16 +44,18 @@ static const char* sLibs[] = {
|
||||
"libavcodec.53.dylib",
|
||||
#elif defined(XP_OPENBSD)
|
||||
"libavcodec.so", // OpenBSD hardly controls the major/minor library version
|
||||
// of ffmpeg and update it regulary on ABI/API changes
|
||||
#else
|
||||
"libavcodec.so.61",
|
||||
"libavcodec.so.60",
|
||||
"libavcodec.so.59",
|
||||
+ "libavcodec.so.58.134",
|
||||
+ "libavcodec.so.58.91",
|
||||
"libavcodec.so.58",
|
||||
"libavcodec-ffmpeg.so.58",
|
||||
"libavcodec-ffmpeg.so.57",
|
||||
"libavcodec-ffmpeg.so.56",
|
||||
"libavcodec.so.57",
|
||||
"libavcodec.so.56",
|
||||
"libavcodec.so.55",
|
||||
"libavcodec.so.54",
|
@ -1,38 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent 381102061fccdec40efda75c7423a766f68201ba
|
||||
Bug-behavior: Youtube-videos using VP9 and opus as audio-codec started loading but did not play
|
||||
Reason: While parsing the audio-stream, the sampling frequency (short rate) was wrongly parsed by
|
||||
nestegg, returning 0 all the time. This led to the audio-track reporting that it neither had
|
||||
valid video nor audio. Which led to an endless-loop in the video state machine.
|
||||
Solution: Correct parsing of rate in nestegg, which is a float and cuts of bytes.
|
||||
Link: https://github.com/kinetiknz/nestegg/issues/64
|
||||
|
||||
diff -r 381102061fcc -r 8da4be020b1e media/libnestegg/src/nestegg.c
|
||||
--- a/media/libnestegg/src/nestegg.c Tue Aug 13 07:51:27 2019 +0200
|
||||
+++ b/media/libnestegg/src/nestegg.c Tue Aug 20 07:59:54 2019 +0200
|
||||
@@ -768,7 +768,15 @@
|
||||
{
|
||||
union {
|
||||
uint64_t u;
|
||||
- float f;
|
||||
+ struct {
|
||||
+#if __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__
|
||||
+ uint32_t _pad;
|
||||
+ float f;
|
||||
+#else
|
||||
+ float f;
|
||||
+ uint32_t _pad;
|
||||
+#endif
|
||||
+ } f;
|
||||
double d;
|
||||
} value;
|
||||
int r;
|
||||
@@ -780,7 +788,7 @@
|
||||
if (r != 1)
|
||||
return r;
|
||||
if (length == 4)
|
||||
- *val = value.f;
|
||||
+ *val = value.f.f;
|
||||
else
|
||||
*val = value.d;
|
||||
return 1;
|
@ -3,32 +3,30 @@
|
||||
# Date 1558442915 -7200
|
||||
# Tue May 21 14:48:35 2019 +0200
|
||||
# Node ID 6bcf2dfebc1ea2aa34e5cc61152709fc8e409dc5
|
||||
# Parent 4c434d19d03d5461e54fa22dfb82eaed4cd6631b
|
||||
# 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 -r 4c434d19d03d -r 6bcf2dfebc1e toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp
|
||||
--- a/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp Wed Jun 12 17:43:18 2019 +0000
|
||||
+++ b/toolkit/system/unixproxy/nsUnixSystemProxySettings.cpp Tue May 21 14:48:35 2019 +0200
|
||||
@@ -55,11 +55,14 @@
|
||||
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(
|
||||
- NS_LITERAL_CSTRING("org.gnome.system.proxy"),
|
||||
- getter_AddRefs(mProxySettings));
|
||||
- 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(
|
||||
+ NS_LITERAL_CSTRING("org.gnome.system.proxy"),
|
||||
+ getter_AddRefs(mProxySettings));
|
||||
+ mGSettings->GetCollectionForSchema("org.gnome.system.proxy"_ns,
|
||||
+ getter_AddRefs(mProxySettings));
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
@ -1,18 +1,13 @@
|
||||
# HG changeset patch
|
||||
# User Petr Cerny <pcerny@novell.com>
|
||||
# Parent 7308e4a7c1f769f4bbbc90870b849cadd99495a6
|
||||
# Parent 6ab277cf616dc2748e9855101100a97a6cec10a6
|
||||
# Parent 1c6a565013e4c5f3494f964269783939cd5ed0b8
|
||||
Bug 634334 - call to the ntlm_auth helper fails
|
||||
|
||||
diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNTLM.cpp
|
||||
--- a/extensions/auth/nsAuthSambaNTLM.cpp
|
||||
+++ b/extensions/auth/nsAuthSambaNTLM.cpp
|
||||
@@ -156,17 +156,17 @@ static uint8_t* ExtractMessage(const nsA
|
||||
*aLen = (length / 4) * 3 - numEquals;
|
||||
return reinterpret_cast<uint8_t*>(PL_Base64Decode(s, length, nullptr));
|
||||
}
|
||||
|
||||
nsresult nsAuthSambaNTLM::SpawnNTLMAuthHelper() {
|
||||
@@ -160,7 +160,7 @@ nsresult nsAuthSambaNTLM::SpawnNTLMAuthH
|
||||
const char* username = PR_GetEnv("USER");
|
||||
if (!username) return NS_ERROR_FAILURE;
|
||||
|
||||
@ -21,8 +16,3 @@ diff --git a/extensions/auth/nsAuthSambaNTLM.cpp b/extensions/auth/nsAuthSambaNT
|
||||
"--helper-protocol",
|
||||
"ntlmssp-client-1",
|
||||
"--use-cached-creds",
|
||||
"--username",
|
||||
username,
|
||||
nullptr};
|
||||
|
||||
bool isOK = SpawnIOChild(const_cast<char* const*>(args), &mChildPID,
|
||||
|
@ -1,26 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent 33024abb3c58dab7239e32388df58e14f99defd5
|
||||
# User Wolfgang Rosenauer <wr@rosenauer.org>
|
||||
# Parent 0cfd693fdbbb0635787f1aeacee2dda43b01c495
|
||||
|
||||
diff --git a/media/gmp-clearkey/0.1/openaes/oaes_lib.c b/media/gmp-clearkey/0.1/openaes/oaes_lib.c
|
||||
--- a/media/gmp-clearkey/0.1/openaes/oaes_lib.c
|
||||
+++ b/media/gmp-clearkey/0.1/openaes/oaes_lib.c
|
||||
@@ -24,16 +24,17 @@
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
* ---------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
+#include <stdio.h>
|
||||
#include <stddef.h>
|
||||
#include <time.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "mozilla/Sprintf.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#include <process.h>
|
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
|
@ -1,20 +0,0 @@
|
||||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1558452418 -7200
|
||||
# Tue May 21 17:26:58 2019 +0200
|
||||
# Node ID 6cd963b6c82ea6629aaf4050851789b78f310338
|
||||
# Parent 602e92722e765a3c238d3b96b26c0c8063b5eeb4
|
||||
imported patch mozilla-ppc-altivec_static_inline.patch
|
||||
|
||||
diff -r 602e92722e76 -r 6cd963b6c82e gfx/qcms/transform-altivec.c
|
||||
--- a/gfx/qcms/transform-altivec.c Tue May 21 17:26:48 2019 +0200
|
||||
+++ b/gfx/qcms/transform-altivec.c Tue May 21 17:26:58 2019 +0200
|
||||
@@ -30,7 +30,7 @@
|
||||
static const ALIGN float floatScaleX4 = FLOATSCALE;
|
||||
static const ALIGN float clampMaxValueX4 = CLAMPMAXVAL;
|
||||
|
||||
-inline vector float load_aligned_float(float *dataPtr)
|
||||
+static inline vector float load_aligned_float(float *dataPtr)
|
||||
{
|
||||
vector float data = vec_lde(0, dataPtr);
|
||||
vector unsigned char moveToStart = vec_lvsl(0, dataPtr);
|
@ -1,34 +1,15 @@
|
||||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1560754926 -7200
|
||||
# Mon Jun 17 09:02:06 2019 +0200
|
||||
# Node ID 428161c3b9599083e1b8710eda1760f1f707ab11
|
||||
# Parent 6cd963b6c82ea6629aaf4050851789b78f310338
|
||||
#Description: reduce the rust debuginfo level on selected architectures where
|
||||
# compiling with debuginfo=2 causes the OOM killer to interrupt the build on
|
||||
# launchpad builders. Initially this was only on 32 bit architectures, but with
|
||||
# firefox 63 it started happening frequently on arm64 and ppc64el too.
|
||||
# Parent 135d931b3e674a670473f69f8c079e741ac63643
|
||||
|
||||
diff -r 6cd963b6c82e -r 428161c3b959 build/moz.configure/toolchain.configure
|
||||
--- a/build/moz.configure/toolchain.configure Tue May 21 17:26:58 2019 +0200
|
||||
+++ b/build/moz.configure/toolchain.configure Mon Jun 17 09:02:06 2019 +0200
|
||||
@@ -1865,8 +1865,8 @@
|
||||
return '1' if moz_optimize.optimize else '0'
|
||||
|
||||
|
||||
-@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols')
|
||||
-def rust_compile_flags(opt_level, debug_rust, debug_symbols):
|
||||
+@depends(rustc_opt_level, debug_rust, '--enable-debug-symbols', host)
|
||||
+def rust_compile_flags(opt_level, debug_rust, debug_symbols, host):
|
||||
# Cargo currently supports only two interesting profiles for building:
|
||||
# development and release. Those map (roughly) to --enable-debug and
|
||||
# --disable-debug in Gecko, respectively.
|
||||
@@ -1889,6 +1889,8 @@
|
||||
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'
|
||||
+ if host.bitness == 32 or host.cpu == 'aarch64' or host.cpu == 'ppc64':
|
||||
+ debug_info = '1'
|
||||
- debug_info = "2"
|
||||
+ debug_info = '1'
|
||||
|
||||
opts = []
|
||||
|
||||
|
@ -1,20 +0,0 @@
|
||||
# HG changeset patch
|
||||
# User msirringhaus@suse.de
|
||||
# Date 1558452126 -7200
|
||||
# Tue May 21 17:22:06 2019 +0200
|
||||
# Node ID a3cc550d25e3a04d906f516928cbcbe50efd585e
|
||||
# Parent 433beec63e6b5f409683af20a0c1ab137cc7bfad
|
||||
[mq]: mozilla-s390-bigendian.patch
|
||||
|
||||
diff -r 433beec63e6b -r a3cc550d25e3 build/autoconf/icu.m4
|
||||
--- a/build/autoconf/icu.m4 Tue May 21 17:12:20 2019 +0200
|
||||
+++ b/build/autoconf/icu.m4 Tue May 21 17:22:06 2019 +0200
|
||||
@@ -78,7 +78,7 @@
|
||||
# TODO: the l is actually endian-dependent
|
||||
# We could make this set as 'l' or 'b' for little or big, respectively,
|
||||
# but we'd need to check in a big-endian version of the file.
|
||||
- ICU_DATA_FILE="icudt${version}l.dat"
|
||||
+ ICU_DATA_FILE="icudt${version}b.dat"
|
||||
fi
|
||||
|
||||
AC_SUBST(MOZ_ICU_VERSION)
|
@ -3,34 +3,31 @@
|
||||
# Date 1558452408 -7200
|
||||
# Tue May 21 17:26:48 2019 +0200
|
||||
# Node ID 602e92722e765a3c238d3b96b26c0c8063b5eeb4
|
||||
# Parent a3cc550d25e3a04d906f516928cbcbe50efd585e
|
||||
# Parent 783ceb006fcdabe5ad23bd561362e721c7ed5f8c
|
||||
[mq]: mozilla-s390-context.patch
|
||||
|
||||
diff -r a3cc550d25e3 -r 602e92722e76 js/src/wasm/WasmSignalHandlers.cpp
|
||||
--- a/js/src/wasm/WasmSignalHandlers.cpp Tue May 21 17:22:06 2019 +0200
|
||||
+++ b/js/src/wasm/WasmSignalHandlers.cpp Tue May 21 17:26:48 2019 +0200
|
||||
@@ -154,6 +154,10 @@
|
||||
# define R01_sig(p) ((p)->uc_mcontext.gp_regs[1])
|
||||
# define R32_sig(p) ((p)->uc_mcontext.gp_regs[32])
|
||||
# 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])
|
||||
@@ -385,8 +389,13 @@
|
||||
# define PC_sig(p) R32_sig(p)
|
||||
# define SP_sig(p) R01_sig(p)
|
||||
# define FP_sig(p) R01_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)
|
||||
#endif
|
||||
|
||||
+
|
||||
static void SetContextPC(CONTEXT* context, uint8_t* pc) {
|
||||
#ifdef PC_sig
|
||||
*reinterpret_cast<uint8_t**>(&PC_sig(context)) = pc;
|
||||
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)
|
||||
|
590
mozilla-silence-no-return-type.patch
Normal file
590
mozilla-silence-no-return-type.patch
Normal file
@ -0,0 +1,590 @@
|
||||
# HG changeset patch
|
||||
# Parent af0655f894a27ef60aa8438af7939a5ebc498df0
|
||||
|
||||
Index: firefox-128.0/gfx/skia/skia/include/codec/SkEncodedOrigin.h
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/gfx/skia/skia/include/codec/SkEncodedOrigin.h
|
||||
+++ firefox-128.0/gfx/skia/skia/include/codec/SkEncodedOrigin.h
|
||||
@@ -41,6 +41,7 @@ static inline SkMatrix SkEncodedOriginTo
|
||||
case kLeftBottom_SkEncodedOrigin: return SkMatrix::MakeAll( 0, 1, 0, -1, 0, h, 0, 0, 1);
|
||||
}
|
||||
SK_ABORT("Unexpected origin");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
/**
|
||||
Index: firefox-128.0/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h
|
||||
+++ firefox-128.0/gfx/skia/skia/include/private/gpu/ganesh/GrTypesPriv.h
|
||||
@@ -301,6 +301,7 @@ static inline bool GrTextureTypeHasRestr
|
||||
default:
|
||||
SK_ABORT("Unexpected texture type");
|
||||
}
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
Index: firefox-128.0/gfx/skia/skia/src/core/SkDescriptor.cpp
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/gfx/skia/skia/src/core/SkDescriptor.cpp
|
||||
+++ firefox-128.0/gfx/skia/skia/src/core/SkDescriptor.cpp
|
||||
@@ -26,6 +26,7 @@ std::unique_ptr<SkDescriptor> SkDescript
|
||||
void SkDescriptor::operator delete(void* p) { ::operator delete(p); }
|
||||
void* SkDescriptor::operator new(size_t) {
|
||||
SK_ABORT("Descriptors are created with placement new.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
void SkDescriptor::flatten(SkWriteBuffer& buffer) const {
|
||||
Index: firefox-128.0/gfx/skia/skia/src/core/SkGeometry.h
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/gfx/skia/skia/src/core/SkGeometry.h
|
||||
+++ firefox-128.0/gfx/skia/skia/src/core/SkGeometry.h
|
||||
@@ -281,6 +281,7 @@ static inline bool SkCubicIsDegenerate(S
|
||||
return true;
|
||||
}
|
||||
SK_ABORT("Invalid SkCubicType");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
static inline const char* SkCubicTypeName(SkCubicType type) {
|
||||
@@ -293,6 +294,7 @@ static inline const char* SkCubicTypeNam
|
||||
case SkCubicType::kLineOrPoint: return "kLineOrPoint";
|
||||
}
|
||||
SK_ABORT("Invalid SkCubicType");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
/** Returns the cubic classification.
|
||||
Index: firefox-128.0/gfx/skia/skia/src/core/SkTextBlob.cpp
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/gfx/skia/skia/src/core/SkTextBlob.cpp
|
||||
+++ firefox-128.0/gfx/skia/skia/src/core/SkTextBlob.cpp
|
||||
@@ -213,6 +213,7 @@ void SkTextBlob::operator delete(void* p
|
||||
|
||||
void* SkTextBlob::operator new(size_t) {
|
||||
SK_ABORT("All blobs are created by placement new.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
void* SkTextBlob::operator new(size_t, void* p) {
|
||||
Index: firefox-128.0/gfx/skia/skia/src/core/SkTypeface_remote.h
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/gfx/skia/skia/src/core/SkTypeface_remote.h
|
||||
+++ firefox-128.0/gfx/skia/skia/src/core/SkTypeface_remote.h
|
||||
@@ -108,12 +108,14 @@ public:
|
||||
bool isLogging() const {return fIsLogging;}
|
||||
|
||||
protected:
|
||||
- int onGetUPEM() const override { SK_ABORT("Should never be called."); }
|
||||
+ int onGetUPEM() const override { SK_ABORT("Should never be called."); SkUNREACHABLE; }
|
||||
std::unique_ptr<SkStreamAsset> onOpenStream(int* ttcIndex) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
sk_sp<SkTypeface> onMakeClone(const SkFontArguments& args) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
bool onGlyphMaskNeedsCurrentColor() const override {
|
||||
return fGlyphMaskNeedsCurrentColor;
|
||||
@@ -121,10 +123,12 @@ protected:
|
||||
int onGetVariationDesignPosition(SkFontArguments::VariationPosition::Coordinate coordinates[],
|
||||
int coordinateCount) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
int onGetVariationDesignParameters(SkFontParameters::Variation::Axis parameters[],
|
||||
int parameterCount) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
void onGetFamilyName(SkString* familyName) const override {
|
||||
// Used by SkStrikeCache::DumpMemoryStatistics.
|
||||
@@ -132,15 +136,19 @@ protected:
|
||||
}
|
||||
bool onGetPostScriptName(SkString*) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
SkTypeface::LocalizedStrings* onCreateFamilyNameIterator() const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
int onGetTableTags(SkFontTableTag tags[]) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
size_t onGetTableData(SkFontTableTag, size_t offset, size_t length, void* data) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
std::unique_ptr<SkScalerContext> onCreateScalerContext(
|
||||
const SkScalerContextEffects& effects, const SkDescriptor* desc) const override
|
||||
@@ -154,20 +162,25 @@ protected:
|
||||
}
|
||||
void onGetFontDescriptor(SkFontDescriptor*, bool*) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
void getGlyphToUnicodeMap(SkUnichar*) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
void getPostScriptGlyphNames(SkString*) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
std::unique_ptr<SkAdvancedTypefaceMetrics> onGetAdvancedMetrics() const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
void onCharsToGlyphs(const SkUnichar* chars, int count, SkGlyphID glyphs[]) const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
int onCountGlyphs() const override {
|
||||
return this->glyphCount();
|
||||
@@ -175,6 +188,7 @@ protected:
|
||||
|
||||
void* onGetCTFontRef() const override {
|
||||
SK_ABORT("Should never be called.");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
private:
|
||||
Index: firefox-128.0/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
|
||||
+++ firefox-128.0/gfx/skia/skia/src/effects/imagefilters/SkBlurImageFilter.cpp
|
||||
@@ -799,6 +799,7 @@ sk_sp<SkSpecialImage> cpu_blur(const ski
|
||||
return maker;
|
||||
}
|
||||
SK_ABORT("Sigma is out of range.");
|
||||
+ SkUNREACHABLE;
|
||||
};
|
||||
|
||||
PassMaker* makerX = makeMaker(sigma.width());
|
||||
Index: firefox-128.0/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
|
||||
+++ firefox-128.0/gfx/skia/skia/src/fonts/SkFontMgr_indirect.cpp
|
||||
@@ -69,6 +69,7 @@ void SkFontMgr_Indirect::onGetFamilyName
|
||||
|
||||
sk_sp<SkFontStyleSet> SkFontMgr_Indirect::onCreateStyleSet(int index) const {
|
||||
SK_ABORT("Not implemented");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
sk_sp<SkFontStyleSet> SkFontMgr_Indirect::onMatchFamily(const char familyName[]) const {
|
||||
Index: firefox-128.0/gfx/skia/skia/src/sksl/SkSLOperator.cpp
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/gfx/skia/skia/src/sksl/SkSLOperator.cpp
|
||||
+++ firefox-128.0/gfx/skia/skia/src/sksl/SkSLOperator.cpp
|
||||
@@ -51,7 +51,7 @@ OperatorPrecedence Operator::getBinaryPr
|
||||
case Kind::BITWISEXOREQ: // fall through
|
||||
case Kind::BITWISEOREQ: return OperatorPrecedence::kAssignment;
|
||||
case Kind::COMMA: return OperatorPrecedence::kSequence;
|
||||
- default: SK_ABORT("unsupported binary operator");
|
||||
+ default: SkUNREACHABLE;
|
||||
}
|
||||
}
|
||||
|
||||
Index: firefox-128.0/gfx/skia/skia/src/sksl/ir/SkSLType.h
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/gfx/skia/skia/src/sksl/ir/SkSLType.h
|
||||
+++ firefox-128.0/gfx/skia/skia/src/sksl/ir/SkSLType.h
|
||||
@@ -468,6 +468,7 @@ public:
|
||||
|
||||
virtual SkSpan<const Field> fields() const {
|
||||
SK_ABORT("Internal error: not a struct");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
/**
|
||||
Index: firefox-128.0/gfx/skia/skia/src/utils/SkShadowUtils.cpp
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/gfx/skia/skia/src/utils/SkShadowUtils.cpp
|
||||
+++ firefox-128.0/gfx/skia/skia/src/utils/SkShadowUtils.cpp
|
||||
@@ -140,6 +140,7 @@ struct SpotVerticesFactory {
|
||||
return true;
|
||||
}
|
||||
SK_ABORT("Uninitialized occluder type?");
|
||||
+ SkUNREACHABLE;
|
||||
}
|
||||
|
||||
sk_sp<SkVertices> makeVertices(const SkPath& path, const SkMatrix& ctm,
|
||||
Index: firefox-128.0/intl/icu/source/i18n/number_rounding.cpp
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/intl/icu/source/i18n/number_rounding.cpp
|
||||
+++ firefox-128.0/intl/icu/source/i18n/number_rounding.cpp
|
||||
@@ -287,6 +287,7 @@ FractionPrecision Precision::constructFr
|
||||
settings.fMaxFrac = static_cast<digits_t>(maxFrac);
|
||||
settings.fMinSig = -1;
|
||||
settings.fMaxSig = -1;
|
||||
+ settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
|
||||
PrecisionUnion union_;
|
||||
union_.fracSig = settings;
|
||||
return {RND_FRACTION, union_};
|
||||
@@ -298,6 +299,7 @@ Precision Precision::constructSignifican
|
||||
settings.fMaxFrac = -1;
|
||||
settings.fMinSig = static_cast<digits_t>(minSig);
|
||||
settings.fMaxSig = static_cast<digits_t>(maxSig);
|
||||
+ settings.fPriority = UNUM_ROUNDING_PRIORITY_RELAXED;
|
||||
PrecisionUnion union_;
|
||||
union_.fracSig = settings;
|
||||
return {RND_SIGNIFICANT, union_};
|
||||
Index: firefox-128.0/js/src/irregexp/imported/regexp-parser.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/js/src/irregexp/imported/regexp-parser.cc
|
||||
+++ firefox-128.0/js/src/irregexp/imported/regexp-parser.cc
|
||||
@@ -2781,6 +2781,7 @@ bool MayContainStrings(ClassSetOperandTy
|
||||
if (operand->IsClassRanges()) return false;
|
||||
return operand->AsClassSetExpression()->may_contain_strings();
|
||||
}
|
||||
+ UNREACHABLE();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Index: firefox-128.0/third_party/libwebrtc/api/adaptation/resource.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/api/adaptation/resource.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/api/adaptation/resource.cc
|
||||
@@ -22,6 +22,7 @@ const char* ResourceUsageStateToString(R
|
||||
return "kUnderuse";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
ResourceListener::~ResourceListener() {}
|
||||
Index: firefox-128.0/third_party/libwebrtc/api/rtp_parameters.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/api/rtp_parameters.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/api/rtp_parameters.cc
|
||||
@@ -33,6 +33,7 @@ const char* DegradationPreferenceToStrin
|
||||
return "balanced";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
const double kDefaultBitratePriority = 1.0;
|
||||
Index: firefox-128.0/third_party/libwebrtc/api/video/video_frame_buffer.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/api/video/video_frame_buffer.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/api/video/video_frame_buffer.cc
|
||||
@@ -106,6 +106,8 @@ const char* VideoFrameBufferTypeToString
|
||||
default:
|
||||
RTC_DCHECK_NOTREACHED();
|
||||
}
|
||||
+ RTC_DCHECK_NOTREACHED();
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
int I420BufferInterface::ChromaWidth() const {
|
||||
Index: firefox-128.0/third_party/libwebrtc/api/video_codecs/video_codec.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/api/video_codecs/video_codec.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/api/video_codecs/video_codec.cc
|
||||
@@ -162,6 +162,7 @@ const char* CodecTypeToPayloadString(Vid
|
||||
return kPayloadNameH265;
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
VideoCodecType PayloadStringToCodecType(const std::string& name) {
|
||||
Index: firefox-128.0/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/api/video_codecs/video_encoder_software_fallback_wrapper.cc
|
||||
@@ -189,6 +189,7 @@ class VideoEncoderSoftwareFallbackWrappe
|
||||
return fallback_encoder_.get();
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
// Updates encoder with last observed parameters, such as callbacks, rates,
|
||||
@@ -382,6 +383,7 @@ int32_t VideoEncoderSoftwareFallbackWrap
|
||||
return fallback_encoder_->Encode(frame, frame_types);
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return WEBRTC_VIDEO_CODEC_ERROR;
|
||||
}
|
||||
|
||||
int32_t VideoEncoderSoftwareFallbackWrapper::EncodeWithMainEncoder(
|
||||
Index: firefox-128.0/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/call/adaptation/video_stream_adapter.cc
|
||||
@@ -169,6 +169,7 @@ const char* Adaptation::StatusToString(A
|
||||
return "kRejectedByConstraint";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
Adaptation::Adaptation(int validation_id,
|
||||
@@ -391,6 +392,7 @@ VideoStreamAdapter::RestrictionsOrState
|
||||
return Adaptation::Status::kAdaptationDisabled;
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return Adaptation::Status::kAdaptationDisabled;
|
||||
}
|
||||
|
||||
Adaptation VideoStreamAdapter::GetAdaptationDown() {
|
||||
@@ -473,6 +475,7 @@ VideoStreamAdapter::GetAdaptationDownSte
|
||||
return Adaptation::Status::kAdaptationDisabled;
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return Adaptation::Status::kAdaptationDisabled;
|
||||
}
|
||||
|
||||
VideoStreamAdapter::RestrictionsOrState VideoStreamAdapter::DecreaseResolution(
|
||||
@@ -626,6 +629,8 @@ Adaptation VideoStreamAdapter::GetAdaptD
|
||||
}
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return RestrictionsOrStateToAdaptation(
|
||||
+ Adaptation::Status::kAdaptationDisabled, input_state);
|
||||
}
|
||||
|
||||
VideoStreamAdapter::RestrictionsOrState
|
||||
Index: firefox-128.0/third_party/libwebrtc/call/rtp_payload_params.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/call/rtp_payload_params.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/call/rtp_payload_params.cc
|
||||
@@ -406,7 +406,7 @@ absl::optional<FrameDependencyStructure>
|
||||
case VideoCodecType::kVideoCodecH265:
|
||||
return absl::nullopt;
|
||||
}
|
||||
- RTC_DCHECK_NOTREACHED() << "Unsupported codec.";
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
void RtpPayloadParams::GenericToGeneric(int64_t shared_frame_id,
|
||||
Index: firefox-128.0/third_party/libwebrtc/call/video_send_stream.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/call/video_send_stream.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/call/video_send_stream.cc
|
||||
@@ -30,6 +30,7 @@ const char* StreamTypeToString(VideoSend
|
||||
return "flexfec";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Index: firefox-128.0/third_party/libwebrtc/media/base/codec.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/media/base/codec.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/media/base/codec.cc
|
||||
@@ -262,6 +262,7 @@ bool Codec::Matches(const Codec& codec)
|
||||
case Type::kVideo:
|
||||
return IsSameCodecSpecific(name, params, codec.name, codec.params);
|
||||
}
|
||||
+ return false; // unreached
|
||||
};
|
||||
|
||||
return matches_id && matches_type_specific();
|
||||
Index: firefox-128.0/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/modules/audio_processing/agc2/clipping_predictor.cc
|
||||
@@ -378,7 +378,7 @@ std::unique_ptr<ClippingPredictor> Creat
|
||||
config.reference_window_delay, config.clipping_threshold,
|
||||
/*adaptive_step_estimation=*/false);
|
||||
}
|
||||
- RTC_DCHECK_NOTREACHED();
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
Index: firefox-128.0/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/modules/audio_processing/agc2/input_volume_stats_reporter.cc
|
||||
@@ -48,6 +48,7 @@ constexpr absl::string_view MetricNamePr
|
||||
case InputVolumeType::kRecommended:
|
||||
return "WebRTC.Audio.Apm.RecommendedInputVolume.";
|
||||
}
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
metrics::Histogram* CreateVolumeHistogram(InputVolumeType input_volume_type) {
|
||||
Index: firefox-128.0/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/modules/audio_processing/agc2/rnn_vad/rnn_fc.cc
|
||||
@@ -60,6 +60,8 @@ rtc::FunctionView<float(float)> GetActiv
|
||||
case ActivationFunction::kSigmoidApproximated:
|
||||
return ::rnnoise::SigmoidApproximated;
|
||||
}
|
||||
+ // supposed to be never reached apparently therefore returning bogus
|
||||
+ return ::rnnoise::TansigApproximated;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Index: firefox-128.0/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/modules/audio_processing/audio_processing_impl.cc
|
||||
@@ -101,6 +101,7 @@ GainControl::Mode Agc1ConfigModeToInterf
|
||||
return GainControl::kFixedDigital;
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return GainControl::kAdaptiveAnalog;
|
||||
}
|
||||
|
||||
bool MinimizeProcessingForUnusedOutput() {
|
||||
@@ -168,7 +169,7 @@ int AudioFormatValidityToErrorCode(Audio
|
||||
case AudioFormatValidity::kInvalidChannelCount:
|
||||
return AudioProcessing::kBadNumberChannelsError;
|
||||
}
|
||||
- RTC_DCHECK(false);
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
// Returns an AudioProcessing::Error together with the best possible option for
|
||||
@@ -2425,6 +2426,7 @@ void AudioProcessingImpl::InitializeNois
|
||||
return NsConfig::SuppressionLevel::k21dB;
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return NsConfig::SuppressionLevel::k6dB;
|
||||
};
|
||||
|
||||
NsConfig cfg;
|
||||
Index: firefox-128.0/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/modules/audio_processing/include/audio_processing.cc
|
||||
@@ -32,6 +32,7 @@ std::string NoiseSuppressionLevelToStrin
|
||||
return "VeryHigh";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
std::string GainController1ModeToString(const Agc1Config::Mode& mode) {
|
||||
@@ -44,6 +45,7 @@ std::string GainController1ModeToString(
|
||||
return "FixedDigital";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Index: firefox-128.0/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/modules/audio_processing/transient/transient_suppressor_impl.cc
|
||||
@@ -53,6 +53,7 @@ std::string GetVadModeLabel(TransientSup
|
||||
case TransientSuppressor::VadMode::kNoVad:
|
||||
return "no VAD";
|
||||
}
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Index: firefox-128.0/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/modules/congestion_controller/goog_cc/goog_cc_network_control.cc
|
||||
@@ -95,6 +95,8 @@ BandwidthLimitedCause GetBandwidthLimite
|
||||
case LossBasedState::kDelayBasedEstimate:
|
||||
return BandwidthLimitedCause::kDelayBasedLimited;
|
||||
}
|
||||
+ // just return something by default
|
||||
+ return BandwidthLimitedCause::kLossLimitedBwe;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Index: firefox-128.0/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/modules/desktop_capture/linux/wayland/screencast_portal.cc
|
||||
@@ -44,6 +44,7 @@ ScreenCastPortal::CaptureSourceType Scre
|
||||
case CaptureType::kAnyScreenContent:
|
||||
return ScreenCastPortal::CaptureSourceType::kAnyScreenContent;
|
||||
}
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
ScreenCastPortal::ScreenCastPortal(CaptureType type, PortalNotifier* notifier)
|
||||
Index: firefox-128.0/third_party/libwebrtc/modules/pacing/bitrate_prober.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/modules/pacing/bitrate_prober.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/modules/pacing/bitrate_prober.cc
|
||||
@@ -84,6 +84,7 @@ bool BitrateProber::ReadyToSetActiveStat
|
||||
return packet_size >=
|
||||
std::min(RecommendedMinProbeSize(), config_.min_packet_size.Get());
|
||||
}
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
void BitrateProber::OnIncomingPacket(DataSize packet_size) {
|
||||
Index: firefox-128.0/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc
|
||||
@@ -46,6 +46,7 @@ std::unique_ptr<VideoRtpDepacketizer> Cr
|
||||
return std::make_unique<VideoRtpDepacketizerGeneric>();
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
Index: firefox-128.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender.cc
|
||||
@@ -138,6 +138,7 @@ bool IsNonVolatile(RTPExtensionType type
|
||||
#endif
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return false;
|
||||
}
|
||||
|
||||
bool HasBweExtension(const RtpHeaderExtensionMap& extensions_map) {
|
||||
Index: firefox-128.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
|
||||
@@ -110,6 +110,7 @@ size_t BufferToIndex(Vp8BufferReference
|
||||
case Vp8FrameConfig::Vp8BufferReference::kNone:
|
||||
RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
+ RTC_CHECK_NOTREACHED();
|
||||
}
|
||||
|
||||
} // namespace
|
||||
Index: firefox-128.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/modules/video_coding/codecs/vp8/temporal_layers_checker.cc
|
||||
@@ -30,6 +30,7 @@ TemporalLayersChecker::CreateTemporalLay
|
||||
return std::make_unique<TemporalLayersChecker>(num_temporal_layers);
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return nullptr;
|
||||
}
|
||||
|
||||
TemporalLayersChecker::TemporalLayersChecker(int num_temporal_layers)
|
||||
Index: firefox-128.0/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
|
||||
===================================================================
|
||||
--- firefox-128.0.orig/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
|
||||
+++ firefox-128.0/third_party/libwebrtc/video/adaptation/video_stream_encoder_resource_manager.cc
|
||||
@@ -64,6 +64,7 @@ std::string ToString(VideoAdaptationReas
|
||||
return "cpu";
|
||||
}
|
||||
RTC_CHECK_NOTREACHED();
|
||||
+ return "";
|
||||
}
|
||||
|
||||
std::vector<bool> GetActiveLayersFlags(const VideoCodec& codec) {
|
@ -1,41 +0,0 @@
|
||||
# HG changeset patch
|
||||
# Parent 9edebbc21d9835abacb6110b1591d2ae1b6a0727
|
||||
On SLE-12 we have only python 3.4 available at the moment. But
|
||||
as it seems, no python 3.5 features are being used to build, so
|
||||
lowering the requirements work.
|
||||
|
||||
diff -r 9edebbc21d98 build/moz.configure/init.configure
|
||||
--- a/build/moz.configure/init.configure Fri Sep 20 08:00:18 2019 +0200
|
||||
+++ b/build/moz.configure/init.configure Fri Oct 11 12:44:23 2019 +0200
|
||||
@@ -412,7 +412,7 @@
|
||||
'MozillaBuild python: %s' % e)
|
||||
else:
|
||||
# Fall back to the search routine.
|
||||
- python, version = find_python3_executable(min_version='3.5.0')
|
||||
+ python, version = find_python3_executable(min_version='3.4.5')
|
||||
|
||||
# The API returns a bytes whereas everything in configure is unicode.
|
||||
if python:
|
||||
@@ -424,7 +424,7 @@
|
||||
'PATH or define PYTHON3 to point to a Python '
|
||||
'3.5 executable.')
|
||||
|
||||
- if version < (3, 5, 0):
|
||||
+ if version < (3, 4, 5):
|
||||
raise FatalCheckError('Python 3.5 or newer is required to build; '
|
||||
'%s is Python %d.%d' % (python, version[0],
|
||||
version[1]))
|
||||
diff -r 9edebbc21d98 taskcluster/scripts/run-task
|
||||
--- a/taskcluster/scripts/run-task Fri Sep 20 08:00:18 2019 +0200
|
||||
+++ b/taskcluster/scripts/run-task Fri Oct 11 12:44:23 2019 +0200
|
||||
@@ -16,8 +16,8 @@
|
||||
import sys
|
||||
|
||||
|
||||
-if sys.version_info[0:2] < (3, 5):
|
||||
- print('run-task requires Python 3.5+')
|
||||
+if sys.version_info[0:2] < (3, 4):
|
||||
+ print('run-task requires Python 3.4+')
|
||||
sys.exit(1)
|
||||
|
||||
|
686
mozilla.keyring
686
mozilla.keyring
@ -1,5 +1,5 @@
|
||||
This file contains the PGP keys of various developers that work on
|
||||
Mozilla and its subprojects (such as Firefox and Thunderbird).
|
||||
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
|
||||
@ -10,9 +10,11 @@ Mozilla users: pgp < KEY
|
||||
pub rsa4096 2015-07-17 [SC]
|
||||
14F26682D0916CDD81E37B6D61B7B526D98F0353
|
||||
uid [ full ] Mozilla Software Releases <release@mozilla.com>
|
||||
sub rsa4096 2015-07-17 [S] [expires: 2017-07-16]
|
||||
sub rsa4096 2017-06-22 [S] [expires: 2019-06-22]
|
||||
sub rsa4096 2019-05-30 [S] [expires: 2021-05-29]
|
||||
sub rsa4096 2015-07-17 [S] [expired: 2017-07-16]
|
||||
sub rsa4096 2017-06-22 [S] [expired: 2019-06-22]
|
||||
sub rsa4096 2019-05-30 [S] [expired: 2021-05-29]
|
||||
sub rsa4096 2021-05-17 [S] [expired: 2023-05-17]
|
||||
sub rsa4096 2023-05-05 [S] [expires: 2025-05-04]
|
||||
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
@ -28,306 +30,376 @@ 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
|
||||
=xFcH
|
||||
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
|
||||
fxyRMB5BEeLY0+qVPyvOxpXEGnlSHYmdIS4=
|
||||
=ZEQW
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
114
mozilla.sh.in
114
mozilla.sh.in
@ -58,6 +58,8 @@ 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
|
||||
@ -70,15 +72,6 @@ else
|
||||
export MOZ_APP_LAUNCHER="/usr/bin/$MOZ_APPNAME"
|
||||
fi
|
||||
|
||||
mozilla_lib=`file $MOZ_PROGRAM`
|
||||
LIB=lib
|
||||
echo $mozilla_lib | grep -q -E 'ELF.64-bit.*(x86-64|S/390|PowerPC|ARM aarch64)' && LIB=lib64
|
||||
|
||||
BROWSER_PLUGIN_DIR=/usr/$LIB/browser-plugins
|
||||
if [ ! -d $BROWSER_PLUGIN_DIR ]; then
|
||||
BROWSER_PLUGIN_DIR=/opt/netscape/plugins
|
||||
fi
|
||||
|
||||
MOZILLA_FIVE_HOME="$MOZ_DIST_LIB"
|
||||
export MOZILLA_FIVE_HOME
|
||||
LD_LIBRARY_PATH=$MOZ_DIST_LIB${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||
@ -87,24 +80,97 @@ export LD_LIBRARY_PATH
|
||||
# needed for SUN Java under Xorg >= 7.2
|
||||
export LIBXCB_ALLOW_SLOPPY_LOCK=1
|
||||
|
||||
##
|
||||
if [ -z "$MOZ_PLUGIN_PATH" ]; then
|
||||
export MOZ_PLUGIN_PATH=$BROWSER_PLUGIN_DIR
|
||||
else
|
||||
# make sure that BROWSER_PLUGIN_DIR is in MOZ_PLUGIN_PATH
|
||||
echo "$MOZ_PLUGIN_PATH" | grep "$BROWSER_PLUGIN_DIR" 2>&1 >/dev/null
|
||||
_retval=$?
|
||||
if [ ${_retval} -ne 0 ]; then
|
||||
export MOZ_PLUGIN_PATH=$MOZ_PLUGIN_PATH:$BROWSER_PLUGIN_DIR
|
||||
fi
|
||||
fi
|
||||
|
||||
# disable Gnome crash dialog (doesn't make sense anyway)
|
||||
export GNOME_DISABLE_CRASH_DIALOG=1
|
||||
|
||||
# enable xinput2 (boo#1032003)
|
||||
# breaks too many things right now (boo#1053959)
|
||||
#export MOZ_USE_XINPUT2=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=""
|
||||
|
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();
|
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.
|
12
tar_stamps
12
tar_stamps
@ -1,10 +1,10 @@
|
||||
PRODUCT="firefox"
|
||||
CHANNEL="esr68"
|
||||
VERSION="68.4.1"
|
||||
CHANNEL="esr128"
|
||||
VERSION="128.5.1"
|
||||
VERSION_SUFFIX="esr"
|
||||
PREV_VERSION="68.4.0"
|
||||
PREV_VERSION="128.5.0"
|
||||
PREV_VERSION_SUFFIX="esr"
|
||||
#SKIP_LOCALES="" # Uncomment to skip l10n and compare-locales-generation
|
||||
RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-esr68"
|
||||
RELEASE_TAG="8b51bf38ddbb00131188d833c1441bb37128634b"
|
||||
RELEASE_TIMESTAMP="20200107212959"
|
||||
RELEASE_REPO="https://hg.mozilla.org/releases/mozilla-esr128"
|
||||
RELEASE_TAG="a6cdcd2ed9ec3e256f358010672bafd1674b0b8b"
|
||||
RELEASE_TIMESTAMP="20241128151741"
|
||||
|
Loading…
Reference in New Issue
Block a user