Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
Luca Bilke | a63172e653 | |
Luca Bilke | 0be4c0f88e |
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/sh
|
||||||
|
exec env MOZ_ENABLE_WAYLAND=1 /usr/lib/floorp/floorp "$@"
|
|
@ -0,0 +1,273 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Name=Floorp
|
||||||
|
GenericName=Web Browser
|
||||||
|
GenericName[ca]=Navegador web
|
||||||
|
GenericName[cs]=Webový prohlížeč
|
||||||
|
GenericName[es]=Navegador web
|
||||||
|
GenericName[fa]=مرورگر اینترنتی
|
||||||
|
GenericName[fi]=WWW-selain
|
||||||
|
GenericName[fr]=Navigateur Web
|
||||||
|
GenericName[hu]=Webböngésző
|
||||||
|
GenericName[it]=Browser Web
|
||||||
|
GenericName[ja]=ウェブ・ブラウザ
|
||||||
|
GenericName[ko]=웹 브라우저
|
||||||
|
GenericName[nb]=Nettleser
|
||||||
|
GenericName[nl]=Webbrowser
|
||||||
|
GenericName[nn]=Nettlesar
|
||||||
|
GenericName[no]=Nettleser
|
||||||
|
GenericName[pl]=Przeglądarka WWW
|
||||||
|
GenericName[pt]=Navegador Web
|
||||||
|
GenericName[pt_BR]=Navegador Web
|
||||||
|
GenericName[sk]=Internetový prehliadač
|
||||||
|
GenericName[sv]=Webbläsare
|
||||||
|
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[sk]=Prehliadanie internetu
|
||||||
|
Comment[sv]=Surfa på webben
|
||||||
|
Exec=floorp --class="floorp" %u
|
||||||
|
Icon=floorp
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
|
||||||
|
Categories=Network;WebBrowser;
|
||||||
|
Keywords=web;browser;internet;
|
||||||
|
Actions=new-window;new-private-window;profile-manager-window;
|
||||||
|
|
||||||
|
[Desktop Action new-window]
|
||||||
|
Name=Open a 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=floorp --class="floorp" --new-window %u
|
||||||
|
|
||||||
|
[Desktop Action new-private-window]
|
||||||
|
Name=Open a New Private 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=floorp --class="floorp" --private-window %u
|
||||||
|
|
||||||
|
[Desktop Action profile-manager-window]
|
||||||
|
Name=Open the Profile Manager
|
||||||
|
Name[cs]=Správa profilů
|
||||||
|
Exec=floorp --class="floorp" --ProfileManager %u
|
|
@ -0,0 +1,71 @@
|
||||||
|
/* $OpenBSD: stab.h,v 1.3 2003/06/02 19:34:12 millert Exp $ */
|
||||||
|
/* $NetBSD: stab.h,v 1.4 1994/10/26 00:56:25 cgd Exp $ */
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* Copyright (c) 1991 The Regents of the University of California.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in the
|
||||||
|
* documentation and/or other materials provided with the distribution.
|
||||||
|
* 3. Neither the name of the University nor the names of its contributors
|
||||||
|
* may be used to endorse or promote products derived from this software
|
||||||
|
* without specific prior written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||||
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 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.
|
||||||
|
*
|
||||||
|
* @(#)stab.h 5.2 (Berkeley) 4/4/91
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _STAB_H_
|
||||||
|
#define _STAB_H_
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The following are symbols used by various debuggers and by the Pascal
|
||||||
|
* compiler. Each of them must have one (or more) of the bits defined by
|
||||||
|
* the N_STAB mask set.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define N_GSYM 0x20 /* global symbol */
|
||||||
|
#define N_FNAME 0x22 /* F77 function name */
|
||||||
|
#define N_FUN 0x24 /* procedure name */
|
||||||
|
#define N_STSYM 0x26 /* data segment variable */
|
||||||
|
#define N_LCSYM 0x28 /* bss segment variable */
|
||||||
|
#define N_MAIN 0x2a /* main function name */
|
||||||
|
#define N_PC 0x30 /* global Pascal symbol */
|
||||||
|
#define N_RSYM 0x40 /* register variable */
|
||||||
|
#define N_SLINE 0x44 /* text segment line number */
|
||||||
|
#define N_DSLINE 0x46 /* data segment line number */
|
||||||
|
#define N_BSLINE 0x48 /* bss segment line number */
|
||||||
|
#define N_SSYM 0x60 /* structure/union element */
|
||||||
|
#define N_SO 0x64 /* main source file name */
|
||||||
|
#define N_LSYM 0x80 /* stack variable */
|
||||||
|
#define N_BINCL 0x82 /* include file beginning */
|
||||||
|
#define N_SOL 0x84 /* included source file name */
|
||||||
|
#define N_PSYM 0xa0 /* parameter variable */
|
||||||
|
#define N_EINCL 0xa2 /* include file end */
|
||||||
|
#define N_ENTRY 0xa4 /* alternate entry point */
|
||||||
|
#define N_LBRAC 0xc0 /* left bracket */
|
||||||
|
#define N_EXCL 0xc2 /* deleted include file */
|
||||||
|
#define N_RBRAC 0xe0 /* right bracket */
|
||||||
|
#define N_BCOMM 0xe2 /* begin common */
|
||||||
|
#define N_ECOMM 0xe4 /* end common */
|
||||||
|
#define N_ECOML 0xe8 /* end common (local name) */
|
||||||
|
#define N_LENG 0xfe /* length of preceding entry */
|
||||||
|
|
||||||
|
#endif /* !_STAB_H_ */
|
|
@ -0,0 +1,14 @@
|
||||||
|
// Use LANG environment variable to choose locale
|
||||||
|
pref("intl.locale.requested", "");
|
||||||
|
|
||||||
|
// Disable default browser checking.
|
||||||
|
pref("browser.shell.checkDefaultBrowser", false);
|
||||||
|
|
||||||
|
// Don't disable our bundled extensions in the application directory
|
||||||
|
pref("extensions.autoDisableScopes", 11);
|
||||||
|
|
||||||
|
// Enable JPEG XL images
|
||||||
|
pref("image.jxl.enabled", true);
|
||||||
|
|
||||||
|
// Prevent about:config warning
|
||||||
|
pref("browser.aboutConfig.showWarning", false);
|
|
@ -0,0 +1,88 @@
|
||||||
|
https://bugzilla.mozilla.org/show_bug.cgi?id=1626236
|
||||||
|
https://bug1626236.bmoattachments.org/attachment.cgi?id=9137096
|
||||||
|
|
||||||
|
# HG changeset patch
|
||||||
|
# User msirringhaus@suse.de
|
||||||
|
# Date 1582805876 -3600
|
||||||
|
# Thu Feb 27 13:17:56 2020 +0100
|
||||||
|
# Node ID cc3d09abea31068e57f1ab918782f9f86fc6a158
|
||||||
|
# Parent 9cd90914846f667f18babc491a74c164ae5d6e9f
|
||||||
|
imported patch decoder_workaround.patch
|
||||||
|
|
||||||
|
diff -r 9cd90914846f image/decoders/nsGIFDecoder2.cpp
|
||||||
|
--- a/image/decoders/nsGIFDecoder2.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||||
|
+++ b/image/decoders/nsGIFDecoder2.cpp Fri Mar 27 13:06:18 2020 +0100
|
||||||
|
@@ -422,6 +422,9 @@
|
||||||
|
MOZ_ASSERT(mSwizzleFn);
|
||||||
|
uint8_t* data = reinterpret_cast<uint8_t*>(aColormap);
|
||||||
|
mSwizzleFn(data, data, aColors);
|
||||||
|
+#if MOZ_BIG_ENDIAN()
|
||||||
|
+ SwizzleRow(SurfaceFormat::A8R8G8B8, SurfaceFormat::B8G8R8A8)(data, data, aColors);
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
LexerResult nsGIFDecoder2::DoDecode(SourceBufferIterator& aIterator,
|
||||||
|
diff -r 9cd90914846f image/decoders/nsJPEGDecoder.cpp
|
||||||
|
--- a/image/decoders/nsJPEGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||||
|
+++ b/image/decoders/nsJPEGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
|
||||||
|
@@ -263,6 +263,9 @@
|
||||||
|
case JCS_YCbCr:
|
||||||
|
// By default, we will output directly to BGRA. If we need to apply
|
||||||
|
// special color transforms, this may change.
|
||||||
|
+#if MOZ_BIG_ENDIAN()
|
||||||
|
+ mInfo.out_color_space = MOZ_JCS_EXT_NATIVE_ENDIAN_XRGB;
|
||||||
|
+#else
|
||||||
|
switch (SurfaceFormat::OS_RGBX) {
|
||||||
|
case SurfaceFormat::B8G8R8X8:
|
||||||
|
mInfo.out_color_space = JCS_EXT_BGRX;
|
||||||
|
@@ -277,6 +280,7 @@
|
||||||
|
mState = JPEG_ERROR;
|
||||||
|
return Transition::TerminateFailure();
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
break;
|
||||||
|
case JCS_CMYK:
|
||||||
|
case JCS_YCCK:
|
||||||
|
diff -r 9cd90914846f image/decoders/nsPNGDecoder.cpp
|
||||||
|
--- a/image/decoders/nsPNGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||||
|
+++ b/image/decoders/nsPNGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
|
||||||
|
@@ -361,7 +361,7 @@
|
||||||
|
IResumable* aOnResume) {
|
||||||
|
MOZ_ASSERT(!HasError(), "Shouldn't call DoDecode after error!");
|
||||||
|
|
||||||
|
- return mLexer.Lex(aIterator, aOnResume,
|
||||||
|
+ LexerResult res = mLexer.Lex(aIterator, aOnResume,
|
||||||
|
[=](State aState, const char* aData, size_t aLength) {
|
||||||
|
switch (aState) {
|
||||||
|
case State::PNG_DATA:
|
||||||
|
@@ -371,6 +371,14 @@
|
||||||
|
}
|
||||||
|
MOZ_CRASH("Unknown State");
|
||||||
|
});
|
||||||
|
+
|
||||||
|
+#if MOZ_BIG_ENDIAN()
|
||||||
|
+ if(res.is<TerminalState>() && res.as<TerminalState>() == TerminalState::SUCCESS) {
|
||||||
|
+ NativeEndian::swapToLittleEndianInPlace<uint32_t>((uint32_t*)(mImageData), mImageDataLength / 4);
|
||||||
|
+ }
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
LexerTransition<nsPNGDecoder::State> nsPNGDecoder::ReadPNGData(
|
||||||
|
diff -r 9cd90914846f image/decoders/nsWebPDecoder.cpp
|
||||||
|
--- a/image/decoders/nsWebPDecoder.cpp Thu Feb 27 12:57:14 2020 +0100
|
||||||
|
+++ b/image/decoders/nsWebPDecoder.cpp Fri Mar 27 13:06:18 2020 +0100
|
||||||
|
@@ -237,7 +237,12 @@
|
||||||
|
// WebP doesn't guarantee that the alpha generated matches the hint in the
|
||||||
|
// header, so we always need to claim the input is BGRA. If the output is
|
||||||
|
// BGRX, swizzling will mask off the alpha channel.
|
||||||
|
+#if MOZ_BIG_ENDIAN()
|
||||||
|
+ mBuffer.colorspace = MODE_ARGB;
|
||||||
|
+ SurfaceFormat inFormat = mFormat;
|
||||||
|
+#else
|
||||||
|
SurfaceFormat inFormat = SurfaceFormat::OS_RGBA;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
SurfacePipeFlags pipeFlags = SurfacePipeFlags();
|
||||||
|
if (mFormat == SurfaceFormat::OS_RGBA &&
|
|
@ -0,0 +1,14 @@
|
||||||
|
https://src.fedoraproject.org/rpms/firefox/blob/rawhide/f/firefox-i686-build.patch
|
||||||
|
|
||||||
|
diff -up firefox-105.0/mozglue/misc/SIMD_avx2.cpp.old firefox-105.0/mozglue/misc/SIMD_avx2.cpp
|
||||||
|
--- firefox-105.0/mozglue/misc/SIMD_avx2.cpp.old 2022-09-22 21:35:07.006221995 +0200
|
||||||
|
+++ firefox-105.0/mozglue/misc/SIMD_avx2.cpp 2022-09-22 21:36:12.972480517 +0200
|
||||||
|
@@ -55,7 +55,7 @@ __m256i CmpEq256(__m256i a, __m256i b) {
|
||||||
|
return _mm256_cmpeq_epi64(a, b);
|
||||||
|
}
|
||||||
|
|
||||||
|
-# if defined(__GNUC__) && !defined(__clang__)
|
||||||
|
+# if 0
|
||||||
|
|
||||||
|
// See the comment in SIMD.cpp over Load32BitsIntoXMM. This is just adapted
|
||||||
|
// from that workaround. Testing this, it also yields the correct instructions
|
|
@ -0,0 +1,11 @@
|
||||||
|
--- a/media/libopus/silk/arm/arm_silk_map.c 2019-03-19 20:55:01.249609964 +0100
|
||||||
|
+++ b/media/libopus/silk/arm/arm_silk_map.c 2019-03-19 20:55:25.769400255 +0100
|
||||||
|
@@ -28,7 +28,7 @@
|
||||||
|
# include "config.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#include "main_FIX.h"
|
||||||
|
+#include "../fixed/main_FIX.h"
|
||||||
|
#include "NSQ.h"
|
||||||
|
#include "SigProc_FIX.h"
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
--- a/js/src/jit/shared/AtomicOperations-shared-jit.cpp
|
||||||
|
+++ b/js/src/jit/shared/AtomicOperations-shared-jit.cpp
|
||||||
|
@@ -5,4 +5,9 @@
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
+// bug 1792159
|
||||||
|
+#if defined(__i386__) && defined(__GNUC__) && !defined(__clang__)
|
||||||
|
+# include "../../../mfbt/Attributes.h"
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#include "jit/AtomicOperations.h"
|
||||||
|
|
||||||
|
--- a/config/check_spidermonkey_style.py
|
||||||
|
+++ b/config/check_spidermonkey_style.py
|
||||||
|
@@ -68,2 +68,3 @@
|
||||||
|
"jit/AtomicOperationsGenerated.h", # generated in $OBJDIR
|
||||||
|
+ "../../../mfbt/Attributes.h", # unrecognized path
|
||||||
|
"jit/CacheIROpsGenerated.h", # generated in $OBJDIR
|
|
@ -0,0 +1,11 @@
|
||||||
|
--- a/mozglue/misc/StackWalk.cpp 2021-11-05 15:55:03.614609706 +0000
|
||||||
|
+++ b/mozglue/misc/StackWalk.cpp 2021-10-28 19:03:47.000000000 +0100
|
||||||
|
@@ -45,7 +45,7 @@
|
||||||
|
# define MOZ_STACKWALK_SUPPORTS_MACOSX 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if (defined(linux) && \
|
||||||
|
+#if defined(__GLIBC__) && (defined(linux) && \
|
||||||
|
((defined(__GNUC__) && (defined(__i386) || defined(PPC))) || \
|
||||||
|
defined(HAVE__UNWIND_BACKTRACE)))
|
||||||
|
# define MOZ_STACKWALK_SUPPORTS_LINUX 1
|
|
@ -0,0 +1,39 @@
|
||||||
|
# HG changeset patch
|
||||||
|
# User Lee Salzman <lsalzman@mozilla.com>
|
||||||
|
# Date 1462463631 14400
|
||||||
|
# Thu May 05 11:53:51 2016 -0400
|
||||||
|
# Node ID 8da374804a09977c8f89af5e6e0cb37cb074595d
|
||||||
|
# Parent 29662e28a9c93ac67ee0b8ddfb65a9f29bbf73f5
|
||||||
|
handle big-endian formats in Cairo format conversions
|
||||||
|
|
||||||
|
--- a/gfx/2d/HelpersCairo.h
|
||||||
|
+++ b/gfx/2d/HelpersCairo.h
|
||||||
|
@@ -147,7 +147,14 @@ static inline cairo_format_t GfxFormatToCairoFormat(Su
|
||||||
|
case SurfaceFormat::R5G6B5_UINT16:
|
||||||
|
return CAIRO_FORMAT_RGB16_565;
|
||||||
|
default:
|
||||||
|
- gfxCriticalError() << "Unknown image format " << (int)format;
|
||||||
|
+ // _UINT32 formats don't match B8G8R8[AX]8 on big-endian platforms,
|
||||||
|
+ // and Moz2d uses B8G8R8[AX]8 as if it was _UINT32.
|
||||||
|
+ // See bug 1269654
|
||||||
|
+ if (format == SurfaceFormat::B8G8R8X8) {
|
||||||
|
+ return CAIRO_FORMAT_RGB24;
|
||||||
|
+ } else if (format != SurfaceFormat::B8G8R8A8) {
|
||||||
|
+ gfxCriticalError() << "Unknown image format " << (int)format;
|
||||||
|
+ }
|
||||||
|
return CAIRO_FORMAT_ARGB32;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -177,7 +184,11 @@ static inline cairo_content_t GfxFormatToCairoContent(
|
||||||
|
case SurfaceFormat::A8:
|
||||||
|
return CAIRO_CONTENT_ALPHA;
|
||||||
|
default:
|
||||||
|
- gfxCriticalError() << "Unknown image content format " << (int)format;
|
||||||
|
+ if (format == SurfaceFormat::B8G8R8X8) {
|
||||||
|
+ return CAIRO_CONTENT_COLOR;
|
||||||
|
+ } else if (format != SurfaceFormat::B8G8R8A8) {
|
||||||
|
+ gfxCriticalError() << "Unknown image content format " << (int)format;
|
||||||
|
+ }
|
||||||
|
return CAIRO_CONTENT_COLOR_ALPHA;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
--- a/third_party/libwebrtc/system_wrappers/source/cpu_features_linux.cc
|
||||||
|
+++ b/third_party/libwebrtc/system_wrappers/source/cpu_features_linux.cc
|
||||||
|
@@ -18,7 +18,7 @@
|
||||||
|
#define WEBRTC_GLIBC_PREREQ(a, b) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-#if WEBRTC_GLIBC_PREREQ(2, 16)
|
||||||
|
+#if !__GLIBC__ || WEBRTC_GLIBC_PREREQ(2, 16)
|
||||||
|
#include <sys/auxv.h>
|
||||||
|
#else
|
||||||
|
#include <errno.h>
|
||||||
|
@@ -40,7 +40,7 @@
|
||||||
|
int architecture = 0;
|
||||||
|
uint64_t hwcap = 0;
|
||||||
|
const char* platform = NULL;
|
||||||
|
-#if WEBRTC_GLIBC_PREREQ(2, 16)
|
||||||
|
+#if !__GLIBC__ || WEBRTC_GLIBC_PREREQ(2, 16)
|
||||||
|
hwcap = getauxval(AT_HWCAP);
|
||||||
|
platform = (const char*)getauxval(AT_PLATFORM);
|
||||||
|
#else
|
|
@ -0,0 +1,34 @@
|
||||||
|
--- a/xpcom/base/nsMemoryReporterManager.cpp 2019-03-19 17:12:20.844810044 +0100
|
||||||
|
+++ b/xpcom/base/nsMemoryReporterManager.cpp 2019-03-19 17:13:32.505133615 +0100
|
||||||
|
@@ -123,6 +123,7 @@
|
||||||
|
return GetProcSelfSmapsPrivate(aN);
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef __GLIBC__
|
||||||
|
# ifdef HAVE_MALLINFO
|
||||||
|
# define HAVE_SYSTEM_HEAP_REPORTER 1
|
||||||
|
static MOZ_MUST_USE nsresult SystemHeapSize(int64_t* aSizeOut) {
|
||||||
|
@@ -142,6 +143,7 @@
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
# endif
|
||||||
|
+#endif // __GLIBC__
|
||||||
|
|
||||||
|
#elif defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || \
|
||||||
|
defined(__OpenBSD__) || defined(__FreeBSD_kernel__)
|
||||||
|
@@ -642,6 +644,7 @@
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
+#ifdef __GLIBC__
|
||||||
|
# define HAVE_SYSTEM_HEAP_REPORTER 1
|
||||||
|
// Windows can have multiple separate heaps. During testing there were multiple
|
||||||
|
// heaps present but the non-default ones had sizes no more than a few 10s of
|
||||||
|
@@ -698,6 +701,7 @@
|
||||||
|
*aSizeOut = heapsSize;
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
+#endif // __GLIBC__
|
||||||
|
|
||||||
|
struct SegmentKind {
|
||||||
|
DWORD mState;
|
|
@ -0,0 +1,85 @@
|
||||||
|
The Ply lexer, which doesn't seem too active a project, wraps regular
|
||||||
|
expressions from grammar definitions in its own regular expressions that name
|
||||||
|
groups. This breaks re.compile in Python >= 3.11 when the original expressions
|
||||||
|
contain global flags, because the compiler requires that global flags appear at
|
||||||
|
the start of the expression instead of inside the named group.
|
||||||
|
|
||||||
|
This patch wraps re.compile to scan the expression for any global flags and,
|
||||||
|
when found, moves them to the start of the expression.
|
||||||
|
|
||||||
|
--- a/third_party/python/ply/ply/lex.py
|
||||||
|
+++ b/third_party/python/ply/ply/lex.py
|
||||||
|
@@ -49,6 +49,37 @@
|
||||||
|
# Python 3.0
|
||||||
|
StringTypes = (str, bytes)
|
||||||
|
|
||||||
|
+
|
||||||
|
+def _re_compile(expression, *args, **kwargs):
|
||||||
|
+ '''
|
||||||
|
+ Rearrange global flags in the regular expression to appear at the
|
||||||
|
+ beginning, avoiding deprecation warnings on Python < 3.11 and hard
|
||||||
|
+ errors on Python >= 3.11.
|
||||||
|
+ '''
|
||||||
|
+ flags = set()
|
||||||
|
+ remainder = ''
|
||||||
|
+
|
||||||
|
+ pattern = re.compile(r'\(\?([aiLmsux]+)\)')
|
||||||
|
+ while m := pattern.search(expression):
|
||||||
|
+ # Location of the global flag spec
|
||||||
|
+ l, h = m.span(0)
|
||||||
|
+ # Accumulate global flags from this spec
|
||||||
|
+ flags.update(m.group(1))
|
||||||
|
+ # Capture all text leading up to the match
|
||||||
|
+ remainder += expression[:l]
|
||||||
|
+ # Trim to the end fo the flag spec
|
||||||
|
+ expression = expression[h:]
|
||||||
|
+
|
||||||
|
+ # Any remaining expression contains no flags
|
||||||
|
+ remainder += expression
|
||||||
|
+
|
||||||
|
+ # If there are flags, they belong at the beginning
|
||||||
|
+ if flags:
|
||||||
|
+ remainder = f'(?{"".join(sorted(flags))})' + remainder
|
||||||
|
+
|
||||||
|
+ return re.compile(remainder, *args, **kwargs)
|
||||||
|
+
|
||||||
|
+
|
||||||
|
# This regular expression is used to match valid token names
|
||||||
|
_is_identifier = re.compile(r'^[a-zA-Z0-9_]+$')
|
||||||
|
|
||||||
|
@@ -230,7 +261,7 @@
|
||||||
|
titem = []
|
||||||
|
txtitem = []
|
||||||
|
for pat, func_name in lre:
|
||||||
|
- titem.append((re.compile(pat, lextab._lexreflags), _names_to_funcs(func_name, fdict)))
|
||||||
|
+ titem.append((_re_compile(pat, lextab._lexreflags), _names_to_funcs(func_name, fdict)))
|
||||||
|
|
||||||
|
self.lexstatere[statename] = titem
|
||||||
|
self.lexstateretext[statename] = txtitem
|
||||||
|
@@ -495,7 +526,7 @@
|
||||||
|
return []
|
||||||
|
regex = '|'.join(relist)
|
||||||
|
try:
|
||||||
|
- lexre = re.compile(regex, reflags)
|
||||||
|
+ lexre = _re_compile(regex, reflags)
|
||||||
|
|
||||||
|
# Build the index to function map for the matching engine
|
||||||
|
lexindexfunc = [None] * (max(lexre.groupindex.values()) + 1)
|
||||||
|
@@ -758,7 +789,7 @@
|
||||||
|
continue
|
||||||
|
|
||||||
|
try:
|
||||||
|
- c = re.compile('(?P<%s>%s)' % (fname, _get_regex(f)), self.reflags)
|
||||||
|
+ c = _re_compile('(?P<%s>%s)' % (fname, _get_regex(f)), self.reflags)
|
||||||
|
if c.match(''):
|
||||||
|
self.log.error("%s:%d: Regular expression for rule '%s' matches empty string", file, line, f.__name__)
|
||||||
|
self.error = True
|
||||||
|
@@ -782,7 +813,7 @@
|
||||||
|
continue
|
||||||
|
|
||||||
|
try:
|
||||||
|
- c = re.compile('(?P<%s>%s)' % (name, r), self.reflags)
|
||||||
|
+ c = _re_compile('(?P<%s>%s)' % (name, r), self.reflags)
|
||||||
|
if (c.match('')):
|
||||||
|
self.log.error("Regular expression for rule '%s' matches empty string", name)
|
||||||
|
self.error = True
|
|
@ -0,0 +1,36 @@
|
||||||
|
This is not a complete/correct patch, but it makes firefox build. For now
|
||||||
|
mostly for tracking, so a real fix can be made, but right now it still
|
||||||
|
segfaults on start.
|
||||||
|
|
||||||
|
Ref: https://hg.mozilla.org/mozilla-central/rev/08339a56f3ae
|
||||||
|
Ref: https://hg.mozilla.org/mozilla-central/rev/d16fcad6aa60
|
||||||
|
Ref: https://hg.mozilla.org/mozilla-central/rev/ab87611d012e
|
||||||
|
Ref: https://hg.mozilla.org/mozilla-central/file/tip/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_linux.cpp
|
||||||
|
|
||||||
|
--- a/xpcom/reflect/xptcall/xptcall.h
|
||||||
|
+++ b/xpcom/reflect/xptcall/xptcall.h
|
||||||
|
@@ -71,6 +71,11 @@ struct nsXPTCVariant {
|
||||||
|
ExtendedVal ext;
|
||||||
|
};
|
||||||
|
|
||||||
|
+#if defined(__powerpc__) && !defined(__powerpc64__)
|
||||||
|
+ // this field is still necessary on ppc32, as an address
|
||||||
|
+ // to it is taken certain places in xptcall
|
||||||
|
+ void *ptr;
|
||||||
|
+#endif
|
||||||
|
nsXPTType type;
|
||||||
|
uint8_t flags;
|
||||||
|
|
||||||
|
@@ -91,7 +96,12 @@ struct nsXPTCVariant {
|
||||||
|
};
|
||||||
|
|
||||||
|
void ClearFlags() { flags = 0; }
|
||||||
|
+#if defined(__powerpc__) && !defined(__powerpc64__)
|
||||||
|
+ void SetIndirect() { ptr = &val; flags |= IS_INDIRECT; }
|
||||||
|
+ bool IsPtrData() const { return IsIndirect(); }
|
||||||
|
+#else
|
||||||
|
void SetIndirect() { flags |= IS_INDIRECT; }
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
bool IsIndirect() const { return 0 != (flags & IS_INDIRECT); }
|
||||||
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
Mozilla rustc check does not support crossbuild: let's remove it
|
||||||
|
Remove calls to unwrap_rustup, they fail if rustup isn't present
|
||||||
|
|
||||||
|
Do not try to figure out the rust target as it is broken on musl
|
||||||
|
instead use what is set in RUST_TARGET
|
||||||
|
|
||||||
|
Skip extra checks on cross builds (broken for arm*)
|
||||||
|
|
||||||
|
--- a/build/moz.configure/rust.configure 2020-12-12 01:35:33.000000000 +0100
|
||||||
|
+++ b/build/moz.configure/rust.configure 2020-12-15 19:45:16.467750787 +0100
|
||||||
|
@@ -91,9 +91,6 @@
|
||||||
|
return unwrap
|
||||||
|
|
||||||
|
|
||||||
|
-rustc = unwrap_rustup(rustc, "rustc")
|
||||||
|
-cargo = unwrap_rustup(cargo, "cargo")
|
||||||
|
-
|
||||||
|
|
||||||
|
set_config("CARGO", cargo)
|
||||||
|
set_config("RUSTC", rustc)
|
||||||
|
@@ -260,7 +257,9 @@
|
||||||
|
data.setdefault(key, []).append(namespace(rust_target=t, target=info))
|
||||||
|
return data
|
||||||
|
|
||||||
|
-
|
||||||
|
+@imports('os')
|
||||||
|
+@imports(_from='mozbuild.util', _import='ensure_unicode')
|
||||||
|
+@imports(_from='mozbuild.util', _import='system_encoding')
|
||||||
|
def detect_rustc_target(
|
||||||
|
host_or_target, compiler_info, arm_target, rust_supported_targets
|
||||||
|
):
|
||||||
|
@@ -382,12 +381,12 @@
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
- rustc_target = find_candidate(candidates)
|
||||||
|
+ rustc_target = os.environ['RUST_TARGET']
|
||||||
|
|
||||||
|
if rustc_target is None:
|
||||||
|
die("Don't know how to translate {} for rustc".format(host_or_target.alias))
|
||||||
|
|
||||||
|
- return rustc_target
|
||||||
|
+ return ensure_unicode(rustc_target, system_encoding)
|
||||||
|
|
||||||
|
|
||||||
|
@imports("os")
|
||||||
|
@@ -486,6 +485,7 @@
|
||||||
|
host, compiler_info, arm_target, rust_supported_targets
|
||||||
|
)
|
||||||
|
if rustc_target != rustc_host:
|
||||||
|
+ return rustc_host
|
||||||
|
if host.alias == rustc_target:
|
||||||
|
configure_host = host.alias
|
||||||
|
else:
|
||||||
|
@@ -507,7 +507,6 @@
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
- assert_rust_compile(host, rustc_target, rustc)
|
||||||
|
return rustc_target
|
||||||
|
|
||||||
|
|
||||||
|
@@ -521,7 +520,6 @@
|
||||||
|
rustc_target = detect_rustc_target(
|
||||||
|
target, compiler_info, arm_target, rust_supported_targets
|
||||||
|
)
|
||||||
|
- assert_rust_compile(target, rustc_target, rustc)
|
||||||
|
return rustc_target
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
set rust crate lto to thin to not use fatlto for gkrust which fails sometimes
|
||||||
|
--- a/config/makefiles/rust.mk
|
||||||
|
+++ b/config/makefiles/rust.mk
|
||||||
|
@@ -92,7 +92,7 @@
|
||||||
|
# Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045.
|
||||||
|
ifndef MOZ_CODE_COVERAGE
|
||||||
|
ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
|
||||||
|
-cargo_rustc_flags += -Clto$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat)
|
||||||
|
+cargo_rustc_flags += -Clto=thin
|
||||||
|
endif
|
||||||
|
# We need -Cembed-bitcode=yes for all crates when using -Clto.
|
||||||
|
RUSTFLAGS += -Cembed-bitcode=yes
|
|
@ -0,0 +1,15 @@
|
||||||
|
make SYS_fork non-fatal, musl uses it for fork(2)
|
||||||
|
|
||||||
|
--- a/security/sandbox/linux/SandboxFilter.cpp
|
||||||
|
+++ b/security/sandbox/linux/SandboxFilter.cpp
|
||||||
|
@@ -1420,6 +1420,10 @@
|
||||||
|
// usually do something reasonable on error.
|
||||||
|
case __NR_clone:
|
||||||
|
return ClonePolicy(Error(EPERM));
|
||||||
|
+# ifdef __NR_fork
|
||||||
|
+ case __NR_fork:
|
||||||
|
+ return Error(ENOSYS);
|
||||||
|
+# endif
|
||||||
|
|
||||||
|
# ifdef __NR_fadvise64
|
||||||
|
case __NR_fadvise64:
|
|
@ -0,0 +1,315 @@
|
||||||
|
# Template file for 'floorp'
|
||||||
|
pkgname=floorp
|
||||||
|
version=11.19.1
|
||||||
|
_core_commit=52cda8a1aa5256c8d8f27ec5a85df0a3ad0ca8b4
|
||||||
|
_l10n_commit=4b2ee48a02b4c08603970323e6d5e9e361e7d421
|
||||||
|
revision=1
|
||||||
|
archs="x86_64*"
|
||||||
|
build_helper="rust"
|
||||||
|
hostmakedepends="autoconf213 unzip zip pkg-config perl python3 yasm rust
|
||||||
|
cargo llvm18 clang18 lld18 nodejs cbindgen nasm which tar"
|
||||||
|
# $(vopt_if pgo_xvfb xorg-server-xvfb)
|
||||||
|
makedepends="nss-devel libjpeg-turbo-devel gtk+3-devel icu-devel
|
||||||
|
pixman-devel libevent-devel libnotify-devel libvpx-devel libwebp-devel
|
||||||
|
libXrender-devel libXcomposite-devel libSM-devel libXt-devel rust-std
|
||||||
|
libXdamage-devel freetype-devel
|
||||||
|
$(vopt_if alsa alsa-lib-devel) $(vopt_if dbus dbus-glib-devel)
|
||||||
|
$(vopt_if pulseaudio pulseaudio-devel) $(vopt_if xscreensaver libXScrnSaver-devel)
|
||||||
|
$(vopt_if sndio sndio-devel) $(vopt_if jack jack-devel)"
|
||||||
|
depends="nss>=3.72 nspr>=4.32 desktop-file-utils hicolor-icon-theme"
|
||||||
|
short_desc="Firefox based browser with excellent privacy & flexibility."
|
||||||
|
maintainer="Luca Bilke <luca@bil.ke>"
|
||||||
|
license="MPL-2.0, GPL-2.0-or-later, LGPL-2.1-or-later, MIT"
|
||||||
|
homepage="https://floorp.app/"
|
||||||
|
distfiles="https://github.com/floorp-Projects/${pkgname}/archive/v${version}.tar.gz
|
||||||
|
https://github.com/Floorp-Projects/Floorp-core/archive/${_core_commit}.tar.gz
|
||||||
|
https://github.com/Floorp-Projects/Unified-l10n-central/archive/${_l10n_commit}.tar.gz"
|
||||||
|
checksum="de6ab7535f359d084bdedd1f6ee9a6689b35166e0f0100ad1d0a2fcaf0522b84
|
||||||
|
6837ea84b0cafd89b664e49a5eb9e377013139b5edfc68f3a101c7e9dea5ef39
|
||||||
|
5fa247cf526045f26c8af80a362f55dcc4731da0ff03dd937a5b47064894b064"
|
||||||
|
|
||||||
|
lib32disabled=yes
|
||||||
|
|
||||||
|
build_options="alsa jack dbus pulseaudio xscreensaver sndio wayland clang lto" # pgo_xvfb
|
||||||
|
build_options_default="alsa jack dbus pulseaudio xscreensaver sndio clang lto" # pgo_xvfb
|
||||||
|
|
||||||
|
case $XBPS_TARGET_MACHINE in
|
||||||
|
armv[56]*) broken="required NEON extensions are not supported on armv6" ;;
|
||||||
|
ppc64*) ;;
|
||||||
|
ppc*) broken="xptcall bitrot" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# we need this because cargo verifies checksums of all files in vendor
|
||||||
|
# crates when it builds and gives us no way to override or update the
|
||||||
|
# file sanely... so just clear out the file list
|
||||||
|
_clear_vendor_checksums() {
|
||||||
|
sed -i 's/\("files":{\)[^}]*/\1/' third_party/rust/$1/.cargo-checksum.json
|
||||||
|
}
|
||||||
|
|
||||||
|
post_extract() {
|
||||||
|
case "$XBPS_TARGET_MACHINE" in
|
||||||
|
*-musl)
|
||||||
|
cp "${FILESDIR}/stab.h" toolkit/crashreporter/google-breakpad/src/
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
mv Floorp-${version}/{,.}* . && rmdir Floorp-${version}
|
||||||
|
mv Floorp-core-${_core_commit}/{,.}* floorp && rmdir Floorp-core-${_core_commit}
|
||||||
|
mv Unified-l10n-central-${_l10n_commit}/{,.}* floorp/browser/locales/l10n-central && rmdir Unified-l10n-central-${_l10n_commit}
|
||||||
|
}
|
||||||
|
|
||||||
|
post_patch() {
|
||||||
|
: # _clear_vendor_checksums num-traits
|
||||||
|
}
|
||||||
|
|
||||||
|
do_build() {
|
||||||
|
if [ "$build_option_clang" ]; then
|
||||||
|
export CC=clang
|
||||||
|
export CXX=clang++
|
||||||
|
|
||||||
|
# if [ "$CROSS_BUILD" ]; then
|
||||||
|
# mkdir -p wrapper
|
||||||
|
#
|
||||||
|
# local gcc_version=$(gcc -dumpversion)
|
||||||
|
# local clang_version=$(clang -dumpversion)
|
||||||
|
#
|
||||||
|
# cat <<-! >"wrapper/${XBPS_TARGET_MACHINE}-clang"
|
||||||
|
# #!/bin/sh
|
||||||
|
# exec clang \
|
||||||
|
# --target="${XBPS_CROSS_TRIPLET}" \
|
||||||
|
# --sysroot="${XBPS_CROSS_BASE}" \
|
||||||
|
# "\$@"
|
||||||
|
# !
|
||||||
|
#
|
||||||
|
# cat <<-! >"wrapper/${XBPS_TARGET_MACHINE}-clang++"
|
||||||
|
# #!/bin/sh
|
||||||
|
# exec clang++ \
|
||||||
|
# --target="${XBPS_CROSS_TRIPLET}" \
|
||||||
|
# --sysroot="${XBPS_CROSS_BASE}" \
|
||||||
|
# "\$@"
|
||||||
|
# !
|
||||||
|
#
|
||||||
|
# chmod +x wrapper/*
|
||||||
|
#
|
||||||
|
# export PATH="${wrksrc}/wrapper:$PATH"
|
||||||
|
# export CC=${XBPS_TARGET_MACHINE}-clang
|
||||||
|
# export CXX=${XBPS_TARGET_MACHINE}-clang++
|
||||||
|
# fi
|
||||||
|
|
||||||
|
export AR=llvm-ar
|
||||||
|
export NM=llvm-nm
|
||||||
|
export RANLIB=llvm-ranlib
|
||||||
|
export HOST_CC=clang
|
||||||
|
export HOST_CXX=clang++
|
||||||
|
fi
|
||||||
|
|
||||||
|
export AS="${CC}"
|
||||||
|
export CFLAGS="-O3"
|
||||||
|
export CXXFLAGS="-O3"
|
||||||
|
export HOST_CFLAGS=""
|
||||||
|
export HOST_CXXFLAGS=""
|
||||||
|
export LDFLAGS="-Wl,-rpath=/usr/lib/floorp"
|
||||||
|
# export LDFLAGS+="-Wl,--threads=${XBPS_MAKEJOBS}"
|
||||||
|
|
||||||
|
disable_jemalloc() {
|
||||||
|
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
|
||||||
|
echo "ac_add_options --disable-jemalloc"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
disable_elfhack() {
|
||||||
|
case "$XBPS_TARGET_MACHINE" in
|
||||||
|
x86_64* | i686* | arm* | aarch64*) echo "ac_add_options --disable-elf-hack" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
disable_webrtc() {
|
||||||
|
# it seems mozilla has started catching up with google's webrtc
|
||||||
|
# and this newly involves introducing several megabytes of generated
|
||||||
|
# json junk that we just cannot maintain in-tree, additionally they
|
||||||
|
# have indicated that they will be re-generating these frequently
|
||||||
|
#
|
||||||
|
# it is unacceptable to keep a 7MB patch downstream, so disable it
|
||||||
|
#
|
||||||
|
# https://phabricator.services.mozilla.com/D134738
|
||||||
|
#
|
||||||
|
case "$XBPS_TARGET_MACHINE" in
|
||||||
|
armv7l*) echo "ac_add_options --disable-webrtc" ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# third_party/libwebrtc/common_audio/wav_file.cc:93:2: error:
|
||||||
|
# #error "Need to convert samples to big-endian when reading from WAV file"
|
||||||
|
if [ "$XBPS_TARGET_ENDIAN" = "be" ]; then
|
||||||
|
echo "ac_add_options --disable-webrtc"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
cat <<-EOF >../mozconfig
|
||||||
|
ac_add_options --enable-application=browser
|
||||||
|
ac_add_options --disable-artifact-builds
|
||||||
|
|
||||||
|
ac_add_options --prefix=/usr
|
||||||
|
ac_add_options --libdir=/usr/lib
|
||||||
|
ac_add_options --host=${XBPS_TRIPLET}
|
||||||
|
ac_add_options --enable-release
|
||||||
|
ac_add_options --enable-hardening
|
||||||
|
ac_add_options --enable-rust-simd
|
||||||
|
ac_add_options --enable-wasm-simd
|
||||||
|
ac_add_options --enable-linker=$(vopt_if clang lld bfd)
|
||||||
|
$(disable_elfhack)
|
||||||
|
ac_add_options --disable-bootstrap
|
||||||
|
# XXX: wasi currently not ready
|
||||||
|
# ac_add_options --with-wasi-sysroot=/usr/share/wasi-sysroot
|
||||||
|
|
||||||
|
# Branding
|
||||||
|
ac_add_options --with-app-basename=$pkgname
|
||||||
|
ac_add_options --with-app-name=$pkgname
|
||||||
|
ac_add_options --with-branding=browser/branding/official
|
||||||
|
ac_add_options --enable-update-channel=release
|
||||||
|
ac_add_options --with-unsigned-addon-scopes=app,system
|
||||||
|
ac_add_options --allow-addon-sideload
|
||||||
|
export MOZILLA_OFFICIAL=1
|
||||||
|
export MOZ_APP_REMOTINGNAME=${pkgname}
|
||||||
|
|
||||||
|
# Floorp Upstream
|
||||||
|
ac_add_options --enable-proxy-bypass-protection
|
||||||
|
ac_add_options --enable-unverified-updates
|
||||||
|
ac_add_options --with-l10n-base="${wrksrc}/floorp/browser/locales/l10n-central"
|
||||||
|
MOZ_REQUIRE_SIGNING=
|
||||||
|
|
||||||
|
# Keys
|
||||||
|
ac_add_options --with-mozilla-api-keyfile="${wrksrc}/floorp/apis/api-mozilla-key"
|
||||||
|
ac_add_options --with-google-location-service-api-keyfile="${wrksrc}/floorp/apis/api-google-location-service-key"
|
||||||
|
ac_add_options --with-google-safebrowsing-api-keyfile="${wrksrc}/floorp/apis/api-google-safe-browsing-key"
|
||||||
|
|
||||||
|
# System libraries
|
||||||
|
ac_add_options --without-wasm-sandboxed-libraries
|
||||||
|
ac_add_options --enable-system-pixman
|
||||||
|
ac_add_options --with-system-ffi
|
||||||
|
ac_add_options --with-system-icu
|
||||||
|
ac_add_options --with-system-jpeg
|
||||||
|
ac_add_options --with-system-libevent
|
||||||
|
ac_add_options --with-system-libvpx
|
||||||
|
ac_add_options --with-system-nspr
|
||||||
|
ac_add_options --with-system-nss
|
||||||
|
ac_add_options --with-system-webp
|
||||||
|
ac_add_options --with-system-zlib
|
||||||
|
# XXX: the system's libpng doesn't have APNG support
|
||||||
|
ac_add_options --without-system-png
|
||||||
|
|
||||||
|
# Features
|
||||||
|
ac_add_options $(vopt_enable dbus)
|
||||||
|
ac_add_options $(vopt_enable dbus necko-wifi)
|
||||||
|
ac_add_options --disable-audio-backends
|
||||||
|
ac_add_options $(vopt_enable sndio)
|
||||||
|
ac_add_options $(vopt_enable alsa)
|
||||||
|
ac_add_options --enable-av1
|
||||||
|
ac_add_options --enable-eme=widevine
|
||||||
|
ac_add_options $(vopt_enable jack)
|
||||||
|
ac_add_options --enable-jxl
|
||||||
|
ac_add_options $(vopt_enable pulseaudio)
|
||||||
|
ac_add_options --enable-raw
|
||||||
|
ac_add_options --enable-sandbox
|
||||||
|
ac_add_options --enable-webrtc
|
||||||
|
ac_add_options --disable-crashreporter
|
||||||
|
ac_add_options --disable-default-browser-agent
|
||||||
|
ac_add_options --disable-parental-controls
|
||||||
|
ac_add_options --disable-tests
|
||||||
|
ac_add_options --disable-updater
|
||||||
|
$(disable_webrtc)
|
||||||
|
$(disable_jemalloc)
|
||||||
|
|
||||||
|
# Disable telemetry by default
|
||||||
|
mk_add_options MOZ_DATA_REPORTING=0
|
||||||
|
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
|
||||||
|
mk_add_options MOZ_TELEMETRY_REPORTING=0
|
||||||
|
|
||||||
|
# Debugging
|
||||||
|
ac_add_options --disable-debug
|
||||||
|
ac_add_options --disable-debug-symbols
|
||||||
|
ac_add_options --disable-debug-js-modules
|
||||||
|
ac_add_options --enable-strip
|
||||||
|
ac_add_options --enable-install-strip
|
||||||
|
export STRIP_FLAGS="--strip-debug --strip-unneeded"
|
||||||
|
|
||||||
|
# Optimization
|
||||||
|
ac_add_options --enable-optimize="\${CFLAGS}"
|
||||||
|
$(vopt_if lto 'ac_add_options --enable-lto=cross,full')
|
||||||
|
ac_add_options OPT_LEVEL="3"
|
||||||
|
ac_add_options RUSTC_OPT_LEVEL="3"
|
||||||
|
|
||||||
|
# Other
|
||||||
|
$(vopt_if clang 'ac_add_options --with-libclang-path=/usr/lib')
|
||||||
|
ac_add_options --enable-path-remapping=c,rust
|
||||||
|
ac_add_options --enable-default-toolkit=$(vopt_if wayland 'cairo-gtk3-wayland' 'cairo-gtk3')
|
||||||
|
|
||||||
|
if [ "$SOURCE_DATE_EPOCH" ]; then
|
||||||
|
export MOZ_BUILD_DATE=$(date --date "@$SOURCE_DATE_EPOCH" "+%Y%m%d%H%M%S")
|
||||||
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
|
export MOZ_MAKE_FLAGS="${makejobs}"
|
||||||
|
export MOZ_NOSPAM=1
|
||||||
|
export MOZBUILD_STATE_PATH="${wrksrc}/mozbuild"
|
||||||
|
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
|
||||||
|
|
||||||
|
# LTO/PGO needs more open files
|
||||||
|
ulimit -n 4096
|
||||||
|
|
||||||
|
# if [ "$build_option_pgo_xvfb" ]; then
|
||||||
|
# cat ../mozconfig - <<-EOF >.mozconfig
|
||||||
|
# ac_add_options --enable-profile-generate=cross
|
||||||
|
# export MOZ_ENABLE_FULL_SYMBOLS=1
|
||||||
|
# EOF
|
||||||
|
# ./mach build
|
||||||
|
#
|
||||||
|
# ./mach package
|
||||||
|
#
|
||||||
|
# LLVM_PROFDATA=llvm-profdata JARLOG_FILE=${wrksrc}/jarlog \
|
||||||
|
# xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" \
|
||||||
|
# -- ./mach python build/pgo/profileserver.py
|
||||||
|
#
|
||||||
|
# ./mach clobber
|
||||||
|
#
|
||||||
|
# cat ../mozconfig >.mozconfig
|
||||||
|
#
|
||||||
|
# if [ -s merged.profdata ]; then
|
||||||
|
# cat <<-EOF >>.mozconfig
|
||||||
|
# ac_add_options --enable-profile-use=cross
|
||||||
|
# ac_add_options --with-pgo-profile-path=${wrksrc}/merged.profdata
|
||||||
|
# EOF
|
||||||
|
# fi
|
||||||
|
#
|
||||||
|
# if [ -s jarlog ]; then
|
||||||
|
# cat <<-EOF >>.mozconfig
|
||||||
|
# ac_add_options --with-pgo-jarlog=${wrksrc}/jarlog
|
||||||
|
# EOF
|
||||||
|
# fi
|
||||||
|
#
|
||||||
|
# ./mach build
|
||||||
|
# else
|
||||||
|
cat > .mozconfig ../mozconfig
|
||||||
|
./mach build
|
||||||
|
# fi
|
||||||
|
}
|
||||||
|
|
||||||
|
do_install() {
|
||||||
|
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
|
||||||
|
export MOZBUILD_STATE_PATH="${wrksrc}/mozbuild"
|
||||||
|
DESTDIR="$DESTDIR" ./mach install
|
||||||
|
|
||||||
|
vinstall "${FILESDIR}/vendor.js" 644 usr/lib/${pkgname}/browser/defaults/preferences
|
||||||
|
vinstall "${FILESDIR}/${pkgname}.desktop" 644 usr/share/applications
|
||||||
|
|
||||||
|
for i in 16x16 22x22 24x24 32x32 48x48 128x128 256x256; do
|
||||||
|
vinstall ${wrksrc}/browser/branding/official/default${i%x*}.png 644 \
|
||||||
|
usr/share/icons/hicolor/${i}/apps ${pkgname}.png
|
||||||
|
done
|
||||||
|
|
||||||
|
# We don't want the development stuff
|
||||||
|
rm -rf ${DESTDIR}/usr/{include,lib/floorp-devel,share/idl}
|
||||||
|
|
||||||
|
# https://bugzilla.mozilla.org/show_bug.cgi?id=658850
|
||||||
|
ln -sf ${pkgname} ${DESTDIR}/usr/lib/${pkgname}/${pkgname}-bin
|
||||||
|
|
||||||
|
vbin ${FILESDIR}/${pkgname}-wayland
|
||||||
|
}
|
Loading…
Reference in New Issue