Compare commits

...

136 commits

Author SHA1 Message Date
Dominika 8cc38aced8 * less verbose dependency install 2021-12-05 14:22:27 +01:00
Dominika 03dd51e472 * change repo ;p 2021-12-05 13:23:00 +01:00
Dominika 2a7c8af65f * temporarily removed conflicting patch, bumping to 94 2021-12-05 13:18:56 +01:00
Dominika Liberda 0be3fe7abb useragent override 2021-10-21 00:44:10 +02:00
Dominika Liberda fbd1ebe106 switch to musl build 2021-10-14 22:34:58 +02:00
Dominika Liberda ddf182b041 * more patches! 2021-10-12 16:08:55 +02:00
Dominika Liberda d4f2fc5f6f new patches 2021-10-12 12:17:07 +02:00
Dominika Liberda 367999d9a9 switching CI, adding new patches 2021-10-12 00:52:06 +02:00
Dominika Liberda a3db9047d0 try w/o webrtc? 2021-10-11 20:50:12 +02:00
Dominika Liberda b589bdd92a verbose mach 2021-10-11 16:46:01 +02:00
Dominika Liberda 1bfe6ab98e ??? 2021-10-11 16:10:03 +02:00
Dominika Liberda 894ee2dd85 i'm blind #2 2021-10-11 16:02:30 +02:00
Dominika Liberda 12fe44f097 i'm blind 2021-10-11 16:00:59 +02:00
Dominika Liberda ce9f7d7639 asdf 2021-10-11 15:51:21 +02:00
Dominika Liberda 97a8e62e94 libssp not found fix 2021-10-11 15:46:42 +02:00
Dominika Liberda 99b0e85392 musl fixes 2021-10-11 15:30:13 +02:00
Dominika Liberda d92750f28f asdf 2021-10-11 15:21:28 +02:00
Dominika Liberda 10612c8cc3 cbindgen if 2021-10-11 15:17:54 +02:00
Dominika Liberda 83a6751e80 * try building for musl 2021-10-11 15:01:43 +02:00
Dominika Liberda e7d4305a04 disable tag checkout for common repo 2021-10-11 00:47:30 +02:00
Dominika Liberda 7c105c8ecb asdf 2021-10-11 00:42:15 +02:00
Dominika Liberda b508fc9d0a asdf 2021-10-10 22:54:09 +02:00
Dominika Liberda bb26234350 asdf 2021-10-10 22:24:39 +02:00
Dominika Liberda 93b98fdacd asdf 2021-10-10 20:13:22 +02:00
Dominika Liberda acb29bc4e6 gmake u fuck 2021-10-10 17:10:45 +02:00
Dominika Liberda 144a9f1793 gmake 2021-10-10 16:51:37 +02:00
Dominika Liberda 2323842987 make 2021-10-10 16:04:49 +02:00
Dominika Liberda a6fa2867ae asdfasdfasdf 2021-10-10 15:57:55 +02:00
Dominika Liberda 52b2c8e955 mozilla fuck you 2021-10-10 15:51:06 +02:00
Dominika Liberda 5d0e25f3ca asfd 2021-10-10 15:13:27 +02:00
Dominika Liberda a4d819e2dd asfd 2021-10-10 15:07:41 +02:00
Dominika Liberda 7b1fba588c +jack 2021-10-10 14:49:33 +02:00
Dominika Liberda 8bcd7a17f2 + alsa 2021-10-10 14:37:07 +02:00
Dominika Liberda b0a21ef9df pkg-config 2021-10-10 14:06:00 +02:00
Dominika Liberda a52f076e10 ... 2021-10-10 13:58:46 +02:00
Dominika Liberda e3e49a7da2 cc fixes 2021-10-10 13:53:45 +02:00
Dominika Liberda 6df64d7560 bb -> gnu patch 2021-10-10 13:46:22 +02:00
Dominika Liberda df3ba5ff49 temporarily disable conflicting patch 2021-10-10 13:26:06 +02:00
Dominika Liberda e057b7c338 asdf 2021-10-10 13:13:58 +02:00
Dominika Liberda bd5a61ad49 asdf 2021-10-10 12:52:00 +02:00
Dominika Liberda 61ef268cd7 fixes 2021-10-10 12:46:58 +02:00
Dominika Liberda e14993de88 jebać gnu coreutils 2021-10-10 12:41:31 +02:00
Dominika Liberda cc4f1b7473 simplier ci 2021-10-10 12:32:52 +02:00
Dominika Liberda ca6bad6d04 ???? 2021-10-10 12:30:05 +02:00
Dominika Liberda d537748ea7 I love CI 2021-10-10 12:25:59 +02:00
Dominika Liberda 33a9b396e0 ??? 2021-10-10 12:21:52 +02:00
Dominika Liberda 90f0e69652 I hate yaml 2021-10-10 12:19:49 +02:00
Dominika Liberda 59d553962e + add bash lmao 2021-10-10 12:19:18 +02:00
Dominika Liberda aeac987294 + changing CI to void? 2021-10-10 12:17:38 +02:00
Dominika Liberda e90b3739b2 ... 2021-10-10 11:31:22 +02:00
Dominika Liberda a03a53c794 * i love exuo 2021-10-09 23:18:11 +02:00
Dominika Liberda f0241fda8f + added ff3.6 branding 2021-10-09 23:06:41 +02:00
Dominika Liberda 0526013cdc * changing CI 2021-10-09 18:58:50 +02:00
ohfp d56b020e95 11 != 13. not-enough-coffee-error, I guess 2021-10-08 12:01:52 +02:00
ohfp 434858650e 12 != 13 2021-10-08 11:40:22 +02:00
ohfp 17e1d6daf7 v93.0-1 2021-10-08 01:41:18 +02:00
ohfp 26d33367db
v92.0.1-1 2021-09-26 13:44:09 +02:00
ohfp ad9c9ecad4 v92.0-1 2021-09-10 11:02:10 +02:00
ohfp f34e124596 Revert "tmp output to debug ci/env/gitlab issue"
This reverts commit bb4d2b8c3b.

=> was wrong / had a typo anyway
2021-08-30 13:44:56 +02:00
ohfp bb4d2b8c3b tmp output to debug ci/env/gitlab issue 2021-08-30 13:39:34 +02:00
ohfp abb2956b6d v91.0.2-1 – drop some deprecated patches; include mozilla dirs patch 2021-08-30 11:08:15 +02:00
ohfp f6ff95a833 v91.0.1-1 2021-08-19 22:22:59 +02:00
ohfp 238b9d0c9f
re-comment a comment.. 2021-08-11 12:02:48 +02:00
ohfp 56b66d16f3
use newer rust + cargo again 2021-08-11 11:52:46 +02:00
ohfp f78a1c2a36
v91.0-1 patches (grabbed from impish; might break) 2021-08-11 11:28:48 +02:00
ohfp 5af20be933
allow setting common tag via variable 2021-07-20 19:44:58 +02:00
ohfp 5474baabed
remove signing var 2021-07-18 13:58:10 +02:00
ohfp 156fce08a1
v90.0-1 2021-07-17 16:47:21 +02:00
ohfp 25f3891908
v89.0.2-1 and get settings/common tags from env 2021-06-24 12:54:48 +02:00
ohfp 743cb8ccf3 add note for librewolf.readthedocs.io where to find current documentation 2021-06-22 12:25:46 +02:00
ohfp 29bdf33a69
Revert (partially) "v89.0.1-1"
This partially reverts commit d47b222401.

The removed patch is still very much needed.
2021-06-17 23:11:07 +02:00
ohfp 5308f573df
clang12 for x86_64 2021-06-17 17:32:07 +02:00
ohfp d47b222401
v89.0.1-1 2021-06-17 13:36:27 +02:00
AsciiWolf de25ab61ed fix appdata file
"<strong>" element is not supported
2021-06-05 15:32:28 +00:00
ohfp 55617c3433
v89.0-1 2021-06-02 20:41:13 +02:00
ohfp 5d49ace775
smaller screenshot 2021-05-18 23:11:37 +02:00
ohfp ab559ab3f7
add a screenshot for the appdata files 2021-05-18 16:16:52 +02:00
ohfp bb4152027b
allow setting cores to build on via ENV / CI 2021-05-17 10:45:04 +02:00
ohfp 4db19b3317
remove a leftover sed 2021-05-13 15:17:56 +02:00
ohfp b8677c649c
Generic patches have been moved to the common repo 2021-05-13 14:49:52 +02:00
ohfp a2061e3ef1
v88.0.1-1 prep: settings commit 2021-05-06 12:19:27 +02:00
ohfp 95feca84f5
only pass nasm option to x86_64 2021-04-21 13:10:43 +02:00
ohfp 5af02721e8
order seems to matter 2021-04-21 11:15:20 +02:00
ohfp 9e90fb3a9b
v88.0-1; switch to bionic as base to build on, xenial is EOS/EOL 2021-04-21 10:52:21 +02:00
ohfp 062a454cf3
preliminary patch updates for 88.0 2021-04-19 11:25:30 +02:00
TheEvilSkeleton 53ed43ecfe
Add developers name in metainfo 2021-04-17 16:05:23 -04:00
ohfp 48ff5108bd
add app id changes for flatpak/appimage 2021-03-25 16:21:09 +01:00
ohfp 7a39d56351
v87.0-1 2021-03-24 11:01:26 +01:00
Shreyas Minocha 41ba7a5b6d
Add a patch that removes Mozilla VPN ads
Resolves linux#202
2021-03-14 19:52:57 -05:00
ohfp 456f23853d
v86.0.1-1 settings 2021-03-14 13:32:27 +01:00
ohfp c3375c312e
where did I get the idea from that dump_syms was a crate? oO 2021-02-27 00:13:56 +01:00
ohfp 9320f90606
v86.0-1 2021-02-27 00:02:29 +01:00
ohfp 7b40f2a460
we might need dump_syms 2021-02-24 14:06:54 +01:00
ohfp e123b80f7d
update megabar.patch 2021-02-24 11:42:38 +01:00
ohfp fae3610290
prepare v86.0: remove obsolete fixes 2021-02-23 23:42:24 +01:00
ohfp 4a3ece5b45
v85.0.2-2 Changelog 2021-02-15 18:06:11 +01:00
ohfp 05b7ca3128
Revert "let's try something for the aarch64 builds"
This reverts commit 2b9bab23df.

Doesn't work. Time to drop flatpak/appimage builds for aarch64, I'd say.
Probably not worth the hassle (assuming they're barely used anyway, if
at all).
2021-02-15 13:21:36 +01:00
ohfp 2b9bab23df
let's try something for the aarch64 builds 2021-02-15 12:45:49 +01:00
ohfp f43e70c98c
remove context menu entry for pocket: taken from arch!2 2021-02-15 10:15:26 +01:00
ohfp 714bacdabe
add rust build fix patch here as well 2021-02-14 00:45:09 +01:00
ohfp 56827b45af
fix script path 2021-02-14 00:27:02 +01:00
ohfp d1a6eadd12
v85.0.2-1 2021-02-13 23:11:45 +01:00
ohfp a4141e25ef
drop flatpak specific submodule 2021-02-13 20:16:17 +01:00
ohfp 462c963c29
split different builds up again; use this repo only for patches and the tarball build 2021-02-13 20:08:49 +01:00
ohfp 14bf1d12dd v85.0.1-1 2021-02-05 17:38:47 +01:00
ohfp 4555d764c3
Squashed commit, merges !12 into master:
commit 77543c38c5946afdbbd730b351fefd1e52b67134
Author: B Stack <bgstack15@gmail.com>
Date:   Mon Feb 1 09:38:02 2021 -0500

    fix where browser.install.in lists files

commit 9a0c533c0a343c4c35cab431f67b98f3a6e94e12
Merge: 17808dd 0b09648
Author: B Stack <bgstack15@gmail.com>
Date:   Mon Feb 1 09:35:54 2021 -0500

    Merge branch 'master' of https://gitlab.com/librewolf-community/browser/linux into debian

commit 17808dd8c6b92700a4b031e5b54e1c45cbd1f591
Author: B Stack <bgstack15@gmail.com>
Date:   Fri Jan 29 08:13:08 2021 -0500

    add notes from !12

       ohfp provided improvements at [!12#note_495484399](https://gitlab.com/librewolf-community/browser/linux/-/merge_requests/12#note_495484399)

commit 9b1a0c82355c56777d2fc79d49f836093ce29889
Author: B Stack <bgstack15@gmail.com>
Date:   Sun Jan 10 11:53:09 2021 -0500

    update prep-librewolf-dpkg for 84.0.2

commit 231e125b60cae4b5a4f3f7d98a054180aa2ef157
Author: B Stack <bgstack15@gmail.com>
Date:   Mon Dec 28 19:38:33 2020 -0500

    update prep-librewolf-dpkg for 84.0-3

commit a3babbbf04ac08c06d579efc868ca8223cbd43f2
Merge: 2c9c981 ec78db8
Author: B Stack <bgstack15@gmail.com>
Date:   Mon Dec 28 19:37:58 2020 -0500

    Merge branch 'master' of https://gitlab.com/librewolf-community/browser/linux into debian

commit 2c9c981a05bce293b2e7757333b8a756aa828a37
Author: B Stack <bgstack15@gmail.com>
Date:   Mon Nov 30 14:52:28 2020 -0500

    add prep-librewolf-dpkg
2021-02-02 18:48:42 +01:00
ohfp 4f3ea8ae1b
use cleaned up version of a patch 2021-02-02 17:20:26 +01:00
ohfp 5d88f397b1
source cargo env in build-script as well 2021-02-01 16:48:30 +01:00
ohfp 6cc0c98846
source cargo env file to cargo/rustc are available 2021-02-01 16:30:15 +01:00
ohfp ba2a977285
note to self: consider taking a bash scripting refresher course. 2021-02-01 16:04:20 +01:00
ohfp 11640262a6
use a more recent rust version for the tarball builds 2021-02-01 15:46:45 +01:00
ohfp 0b0964887c
fix a badly merged patch 2021-02-01 13:56:22 +01:00
ohfp b623874e96
test building tarball with some very preliminary patches 2021-02-01 13:29:58 +01:00
ohfp dc73a4142a
fix Changelog 2021-01-31 21:50:32 +01:00
ohfp 1b2e116139
85.0-1 – preliminary release: Arch only 2021-01-31 21:30:23 +01:00
ohfp e81be4dfbb
allow building without the global menubar; remove some leftover stuff from the arch build script; adjust ids in tarball scripts as well 2021-01-31 11:51:25 +01:00
ohfp e4852c5050
85.0-1 – get Arch build ready 2021-01-27 16:23:40 +01:00
ohfp c539dbbfd2
port MR arch!1 2021-01-27 11:03:40 +01:00
ohfp 11d4b95742
fix missing sed-line for undesired requests 2021-01-27 10:57:18 +01:00
ohfp 60cbb0acf5
fix flatpak/appimage releases using old settings 2021-01-20 15:28:10 +01:00
ohfp 8daeabffff
Update Changelog 2021-01-09 11:52:02 +01:00
ohfp 3ab8dc47b0
v84.0.2-1 2021-01-08 21:38:37 +01:00
ohfp ee7493428d
Merge branch 'TheEvilSkeleton/linux-bump_runtime' 2021-01-08 20:48:01 +01:00
ohfp b8c8f7ee12
add patch to binary_tarball script as well 2021-01-08 20:44:53 +01:00
TheEvilSkeleton 3bbef3f822 Bump runtime 2021-01-07 21:25:03 -05:00
ohfp f59ae4ac93
v84.0.1-1 2021-01-07 21:43:43 +01:00
ohfp c398340adf
Merge branch 'TheEvilSkeleton/linux-master' 2021-01-07 21:42:43 +01:00
ohfp 4020a6ed0e
updated changelog; added unity-menubar.patch 2021-01-07 21:40:39 +01:00
ohfp b16649c000
Block some more undesired requests
See https://gitlab.com/librewolf-community/browser/common/-/issues/10
2021-01-04 23:18:23 +01:00
ohfp 9c0fcc0de5
Improve the Flatpak build process
.desktop file, icon and appdata are now properly exported by flatpak.

"Wayland first" flatpak, falling back to X11 if not on Wayland.
Note: this is currently potentially broken on many systems (ie. font
rendering is broken).
See https://github.com/flatpak/flatpak/issues/2861.
Might work when using Wayland + Gnome, does not seem to work on Arch +
Sway (couldn't get it working with any workaround for now).

Several smaller issues addressed.

A few untested issues might remain (Screensharing, WebRTC/Camera access)

Addresses (at least partially): #128, #132, #131, #118
2021-01-01 01:48:34 +01:00
ohfp 561ff61674
Set default XDG_DATA_DIRS in AppRun if unset
This fixes #139 by providing default values for `XDG_DATA_DIRS` when
`XDG_DATA_DIRS` is not set on the host system the AppImage is run on.
2020-12-31 13:08:29 +01:00
ohfp ec78db8bcd
update Changelog and add a note to the Readme 2020-12-25 15:47:56 +01:00
ohfp 45ca9415f5 drop rust fixed version 2020-12-20 22:25:33 +01:00
ohfp fc47e34c8b v84.0-1 2020-12-20 20:49:13 +01:00
TheMainOne 0b6f9419ee Merge https://gitlab.com/librewolf-community/browser/linux into master 2020-11-22 11:51:38 -05:00
TheMainOne 59bbaed348 Enable native Wayland support 2020-09-14 04:29:44 +00:00
48 changed files with 5877 additions and 2304 deletions

View file

@ -1,145 +1,36 @@
stages:
- build
- paks
variables:
GIT_SUBMODULE_STRATEGY: recursive
# variables:
# TARBALL: $TARBALL
# ARCH: $ARCH
# FLATPAK: $FLATPAK
# APPIMAGE: $FLATPAK
# variables:
# pkgver: $PKGVER
# pkgrel: $PKGREL
# AARCH64: $AARCH64
# X86_64: $X86_64
# download tarball if none available as artifact,
# ie. not built in the same pipeline run
# TARBALL_URL: $TARBALL_URL
# $RELEASE, to trigger deploy, maybe?
.carch_aarch64: &carch_aarch64
variables:
CARCH: 'aarch64'
.carch_x86_64: &carch_x86_64
variables:
CARCH: 'x86_64'
.tarball_build_config: &tarball_build_config
stage: build
script:
- ./binary_tarball/build_tarball.sh "${CI_PROJECT_DIR}/LibreWolf-${pkgver}-${pkgrel}.${CARCH}.tar.bz2"
artifacts:
name: "Librewolf-Tarball-${pkgver}-${pkgrel}-${CARCH}"
paths:
- "LibreWolf-${pkgver}-${pkgrel}.${CARCH}.tar.bz2"
.arch_build_config: &arch_build_config
stage: build
script:
- ./arch/01_build.sh
artifacts:
name: "Librewolf-Arch-${pkgver}-${pkgrel}-${CARCH}"
paths:
- "librewolf-${pkgver}-${pkgrel}-${CARCH}.pkg.tar*"
.flatpak_config: &flatpak_config
stage: paks
artifacts:
name: "Librewolf-${pkgver}-${pkgrel}-Flatpak-${CARCH}"
paths:
- "LibreWolf-${pkgver}-${pkgrel}.${CARCH}.flatpak"
- "${CI_PROJECT_DIR}/librewolf-${pkgver}-${pkgrel}.${CARCH}.flatpak-repo"
script:
- ./flatpak/build_flatpak.sh "${CI_PROJECT_DIR}/LibreWolf-${pkgver}-${pkgrel}.${CARCH}.tar.bz2" "${CI_PROJECT_DIR}/librewolf-${pkgver}-${pkgrel}.${CARCH}.flatpak-repo" "LibreWolf-${pkgver}-${pkgrel}.${CARCH}.flatpak"
.appimage_config: &appimage_config
stage: paks
artifacts:
name: "Librewolf-${pkgver}-${pkgrel}-AppImage-${CARCH}"
paths:
- "LibreWolf-${pkgver}-${pkgrel}.${CARCH}.AppImage"
script:
- ./appimage/build_appimage.sh "${CI_PROJECT_DIR}/LibreWolf-${pkgver}-${pkgrel}.${CARCH}.tar.bz2" "${CI_PROJECT_DIR}/LibreWolf-${pkgver}-${pkgrel}.${CARCH}.AppImage"
arch_x86_64:
image: archlinux/base
tags: [x86_64b]
<<: *carch_x86_64
<<: *arch_build_config
only:
variables:
- $ARCH && $X86_64
arch_aarch64:
image: registry.gitlab.com/ohfp/manjaro-arm-docker
tags: [aarch64b]
<<: *carch_aarch64
<<: *arch_build_config
only:
variables:
- $ARCH && $AARCH64
tarball_x86_64:
image: ubuntu:16.04
tags: [x86_64b]
<<: *carch_x86_64
<<: *tarball_build_config
only:
variables:
- $TARBALL && $X86_64
tarball_aarch64:
image: arm64v8/ubuntu:16.04
tags: [aarch64b]
<<: *carch_aarch64
<<: *tarball_build_config
only:
variables:
- $TARBALL && $AARCH64
flatpak_x86_64:
image: ubuntu:16.04
tags: [flat_runner]
cache:
image: ghcr.io/void-linux/void-linux:latest-thin-bb-x86_64
stage: build
script:
- echo "repository=https://void.sakamoto.pl/current/" > /usr/share/xbps.d/00-repository-main.conf
- echo "repository=https://void.sakamoto.pl/current/nonfree" >> /usr/share/xbps.d/00-repository-main.conf
- xbps-install -Sy bash
- bash ./build_tarball.sh "${CI_PROJECT_DIR}/Foxgirl-${pkgver}-${pkgrel}.${CARCH}.tar.bz2"
artifacts:
name: "Foxgirl-${pkgver}-${pkgrel}-${CARCH}"
paths:
- .flatpak-builder
key: flatpak_x86_64
<<: *carch_x86_64
<<: *flatpak_config
only:
variables:
- $FLATPAK && $X86_64
- "Foxgirl-${pkgver}-${pkgrel}.${CARCH}.tar.bz2"
flatpak_aarch64:
image: arm64v8/ubuntu:16.04
tags: [flat_runner_aarch64]
cache:
tarball_x86_64_musl:
image: ghcr.io/void-linux/void-linux:latest-thin-bb-x86_64-musl
stage: build
script:
- echo "repository=https://void.sakamoto.pl/current/musl" > /usr/share/xbps.d/00-repository-main.conf
- echo "repository=https://void.sakamoto.pl/current/musl/nonfree" >> /usr/share/xbps.d/00-repository-main.conf
- xbps-install -Sy bash
- bash ./build_tarball.sh "${CI_PROJECT_DIR}/Foxgirl-${pkgver}-${pkgrel}.${CARCH}.tar.bz2"
artifacts:
name: "Foxgirl-${pkgver}-${pkgrel}-${CARCH}_musl"
paths:
- .flatpak-builder
key: flatpak_aarch64
<<: *carch_aarch64
<<: *flatpak_config
only:
variables:
- $FLATPAK && $AARCH64
appimage_x86_64:
image: ubuntu:16.04
tags: [x86_64b]
<<: *carch_x86_64
<<: *appimage_config
only:
variables:
- $APPIMAGE && $X86_64
appimage_aarch64:
image: arm64v8/ubuntu:16.04
tags:
- arm64
<<: *carch_aarch64
<<: *appimage_config
only:
variables:
- $APPIMAGE && $AARCH64
- "Foxgirl-${pkgver}-${pkgrel}.${CARCH}.tar.bz2"

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule "flatpak/content/shared-submodules"]
path = flatpak/content/shared-modules
url = https://github.com/flathub/shared-modules.git

View file

@ -7,6 +7,96 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
This project follows the official Firefox releases, but also uses
[Arch Linux Package Versioning](https://wiki.archlinux.org/index.php/Arch_package_guidelines#Package_versioning) to mark individual releases in between versions.
## [88.0-1] - TBD
### Changed
- New upstream release 88.0-1
- Several yet-to-be documented changes from previous updates that are not yet added to the changelog (tbd)
- Switched to building on Ubuntu Bionic (18.04) from Xenial (16.04) as the latter is now EOL/EOS
- Releases can from now on be found in the specific subprojects (debian, windows, flatpak, appimage, arch, macos) for consistency; this project will only hold the tarball used for the flatpak and appimage releases
## [85.0.2-2] 2021-02-15
### Changed
- New upstream release 85.0.2
### Fixed
- Fixed about box
- Removed pocket menu entry
## [85.0.2-1] Unreleased / Skipped
## [85.0.1-1] 2021-02-05
### Changed
- New upstream release 85.0.2
## [85.0.1-1] 2021-02-05
### Changed
- New upstream release 85.0.1
- New upstream release of included uBlock Origin (1.33.2)
## [85.0-1] 2021-01-31
### Changed
- New upstream release 85.0
- Global menubar patch removed from default releases. Separate releases will be made available.
- `dom.event.contextmenu.enabled` is now an unlocked preference
### Fixed
- Non-Arch releases should now also have some additional startup requests removed
## [84.0.2-2] - 2021-01-20
### Fixed
- AppImage and Flatpak releases were not using the most recent settings.
## [84.0.2-1] - 2021-01-08
### Changed
- New upstream release 84.0.1
- Flatpak runtime version updated (thanks @TheEvilSkeleton)
### Fixed
- Use patch for global menubar added to AppImage and Flatpak build script as well
## [84.0.1-1] - 2021-01-07
### Fixed
- Flatpak now properly provides a .desktop-file (and some other small improvements)
- Fixed AppImage crashes when `XDG_DATA_DIRS` is unset (fixes #139)
### Changed
- New upstream release 84.0.1
- New upstream release of included uBlock Origin (1.32.4)
- More options kept unlocked to remain easier to modify
- "Wayland first" Flatpak with (hopefully) clean X11-fallback
### Added
- Included Debian patch for global menubar
- HTTPS only mode enabled by default
## [84.0-1] - 2020-12-25
### Changed
- New upstream release 84.0
## [83.0-1] - 2020-11-21
### Changed

307
PKGBUILD
View file

@ -1,307 +0,0 @@
# Maintainer: ohfp
# Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Jakub Schmidtke <sjakub@gmail.com>
pkgname=librewolf
_pkgname=LibreWolf
# how to get ci vars instead?
pkgver=83.0
pkgrel=1
pkgdesc="Community-maintained fork of Firefox, focused on privacy, security and freedom."
arch=(x86_64 aarch64)
license=(MPL GPL LGPL)
url="https://librewolf-community.gitlab.io/"
depends=(gtk3 libxt mime-types dbus-glib ffmpeg nss ttf-font libpulse)
makedepends=(unzip zip diffutils yasm mesa imake inetutils xorg-server-xvfb
'rust<1:1.48.0' # rust 1.48.0 causes firefox / packed_simd building to fail
autoconf2.13 clang llvm jack gtk2 nodejs cbindgen nasm
python-setuptools python-psutil python-zstandard git binutils lld)
optdepends=('networkmanager: Location detection via available WiFi networks'
'libnotify: Notification integration'
'pulseaudio: Audio support'
'speech-dispatcher: Text-to-Speech'
'hunspell-en_US: Spell checking, American English')
options=(!emptydirs !makeflags !strip)
_arch_svn=https://git.archlinux.org/svntogit/packages.git/plain/trunk
_settings_commit=2f76ae07f7016034273f1887b7f1bedab997909c
source_x86_64=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz
$pkgname.desktop
"git+https://gitlab.com/${pkgname}-community/browser/common.git"
"git+https://gitlab.com/${pkgname}-community/settings.git"
"megabar.patch"
"remove_addons.patch")
source_aarch64=(https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz
$pkgname.desktop
"git+https://gitlab.com/${pkgname}-community/browser/common.git"
"git+https://gitlab.com/${pkgname}-community/settings.git"
"megabar.patch"
"remove_addons.patch"
arm.patch
https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/firefox/build-arm-libopus.patch)
sha256sums_x86_64=('d69e84e8b8449f828683d274c24e03095858362bfed21b08bdd7fe715eea5398'
'0b28ba4cc2538b7756cb38945230af52e8c4659b2006262da6f3352345a8bed2'
'SKIP'
'SKIP'
'682bf4bf5d79db0080aa132235a95b25745c8ef944d2a2e1fed985489d894df5'
'41719289b309912c4b6bc86b41594f671427979481a90c32a9d3d0bf1cdd6d44')
sha256sums_aarch64=('d69e84e8b8449f828683d274c24e03095858362bfed21b08bdd7fe715eea5398'
'0b28ba4cc2538b7756cb38945230af52e8c4659b2006262da6f3352345a8bed2'
'SKIP'
'SKIP'
'682bf4bf5d79db0080aa132235a95b25745c8ef944d2a2e1fed985489d894df5'
'41719289b309912c4b6bc86b41594f671427979481a90c32a9d3d0bf1cdd6d44'
'6ca87d2ac7dc48e6f595ca49ac8151936afced30d268a831c6a064b52037f6b7'
'2d4d91f7e35d0860225084e37ec320ca6cae669f6c9c8fe7735cdbd542e3a7c9')
prepare() {
mkdir mozbuild
cd firefox-$pkgver
cat >../mozconfig <<END
ac_add_options --enable-application=browser
mk_add_options MOZ_OBJDIR=${PWD@Q}/obj
# This supposedly speeds up compilation (We test through dogfooding anyway)
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --prefix=/usr
ac_add_options --enable-release
ac_add_options --enable-hardening
ac_add_options --enable-rust-simd
export CC='clang'
export CXX='clang++'
export AR=llvm-ar
export NM=llvm-nm
export RANLIB=llvm-ranlib
# Branding
ac_add_options --enable-update-channel=release
ac_add_options --with-app-name=${pkgname}
ac_add_options --with-app-basename=${_pkgname}
ac_add_options --with-branding=browser/branding/${pkgname}
ac_add_options --with-distribution-id=io.gitlab.${pkgname}
ac_add_options --with-unsigned-addon-scopes=app,system
ac_add_options --allow-addon-sideload
export MOZ_REQUIRE_SIGNING=0
# Features
ac_add_options --enable-alsa
ac_add_options --enable-jack
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests
# Disables crash reporting, telemetry and other data gathering tools
mk_add_options MOZ_CRASHREPORTER=0
mk_add_options MOZ_DATA_REPORTING=0
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
mk_add_options MOZ_TELEMETRY_REPORTING=0
# options for ci / weaker build systems
# mk_add_options MOZ_MAKE_FLAGS="-j4"
# ac_add_options --enable-linker=gold
END
if [[ $CARCH == 'aarch64' ]]; then
cat >>../mozconfig <<END
# taken from manjaro build:
ac_add_options --enable-optimize="-g0 -O2"
# from ALARM
# ac_add_options --disable-webrtc
END
export MOZ_DEBUG_FLAGS=" "
export CFLAGS+=" -g0"
export CXXFLAGS+=" -g0"
export RUSTFLAGS="-Cdebuginfo=0"
export LDFLAGS+=" -Wl,--no-keep-memory"
patch -p1 -i ../arm.patch
patch -p1 -i ../build-arm-libopus.patch
else
cat >>../mozconfig <<END
# probably not needed, enabled by default?
ac_add_options --enable-optimize
END
fi
# Remove some pre-installed addons that might be questionable
patch -p1 -i ../remove_addons.patch
# Disable (some) megabar functionality
# Adapted from https://github.com/WesleyBranton/userChrome.css-Customizations
patch -p1 -i ../megabar.patch
# Disabling Pocket
sed -i "s/'pocket'/#'pocket'/g" browser/components/moz.build
# this one only to remove an annoying error message:
sed -i 's#SaveToPocket.init();#// SaveToPocket.init();#g' browser/components/BrowserGlue.jsm
# Remove Internal Plugin Certificates
_cert_sed='s#if (aCert.organizationalUnit == "Mozilla [[:alpha:]]\+") {\n'
_cert_sed+='[[:blank:]]\+return AddonManager\.SIGNEDSTATE_[[:upper:]]\+;\n'
_cert_sed+='[[:blank:]]\+}#'
_cert_sed+='// NOTE: removed#g'
sed -z "$_cert_sed" -i toolkit/mozapps/extensions/internal/XPIInstall.jsm
# allow SearchEngines option in non-ESR builds
sed -i 's#"enterprise_only": true,#"enterprise_only": false,#g' browser/components/enterprisepolicies/schemas/policies-schema.json
rm -f ${srcdir}/common/source_files/mozconfig
cp -r ${srcdir}/common/source_files/* ./
}
build() {
cd firefox-$pkgver
export MOZ_NOSPAM=1
export MOZBUILD_STATE_PATH="$srcdir/mozbuild"
export MACH_USE_SYSTEM_PYTHON=1
# LTO needs more open files
ulimit -n 4096
# -fno-plt with cross-LTO causes obscure LLVM errors
# LLVM ERROR: Function Import: link error
# CFLAGS="${CFLAGS/-fno-plt/}"
# CXXFLAGS="${CXXFLAGS/-fno-plt/}"
# Do 3-tier PGO
echo "Building instrumented browser..."
if [[ $CARCH == 'aarch64' ]]; then
cat >.mozconfig ../mozconfig - <<END
ac_add_options --enable-profile-generate
END
else
cat >.mozconfig ../mozconfig - <<END
ac_add_options --enable-profile-generate=cross
END
fi
./mach build
echo "Profiling instrumented browser..."
./mach package
LLVM_PROFDATA=llvm-profdata \
JARLOG_FILE="$PWD/jarlog" \
xvfb-run -s "-screen 0 1920x1080x24 -nolisten local" \
./mach python build/pgo/profileserver.py
if [[ ! -s merged.profdata ]]; then
echo "No profile data produced."
return 1
fi
if [[ ! -s jarlog ]]; then
echo "No jar log produced."
return 1
fi
echo "Removing instrumented browser..."
./mach clobber
echo "Building optimized browser..."
if [[ $CARCH == 'aarch64' ]]; then
cat >.mozconfig ../mozconfig - <<END
ac_add_options --enable-lto
ac_add_options --enable-profile-use
ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata
ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog
ac_add_options --enable-linker=lld
END
else
cat >.mozconfig ../mozconfig - <<END
ac_add_options --enable-lto=cross
ac_add_options --enable-profile-use=cross
ac_add_options --with-pgo-profile-path=${PWD@Q}/merged.profdata
ac_add_options --with-pgo-jarlog=${PWD@Q}/jarlog
ac_add_options --enable-linker=lld
ac_add_options --disable-elf-hack
END
fi
./mach build
echo "Building symbol archive..."
./mach buildsymbols
}
package() {
cd firefox-$pkgver
DESTDIR="$pkgdir" ./mach install
local vendorjs="$pkgdir/usr/lib/$pkgname/browser/defaults/preferences/vendor.js"
install -Dvm644 /dev/stdin "$vendorjs" <<END
// Use system-provided dictionaries
pref("spellchecker.dictionary_path", "/usr/share/hunspell");
// Don't disable extensions in the application directory
// done in librewolf.cfg
// pref("extensions.autoDisableScopes", 11);
END
cd ${srcdir}/settings
git checkout ${_settings_commit}
cd ${srcdir}/firefox-$pkgver
cp -r ${srcdir}/settings/* ${pkgdir}/usr/lib/${pkgname}/
local distini="$pkgdir/usr/lib/$pkgname/distribution/distribution.ini"
install -Dvm644 /dev/stdin "$distini" <<END
[Global]
id=io.gitlab.${_pkgname}
version=1.0
about=LibreWolf
[Preferences]
app.distributor="LibreWolf Community"
app.distributor.channel=$pkgname
app.partner.librewolf=$pkgname
END
for i in 16 32 48 64 128; do
install -Dvm644 browser/branding/${pkgname}/default$i.png \
"$pkgdir/usr/share/icons/hicolor/${i}x${i}/apps/$pkgname.png"
done
install -Dvm644 browser/branding/librewolf/content/about-logo.png \
"$pkgdir/usr/share/icons/hicolor/192x192/apps/$pkgname.png"
# arch upstream provides a separate svg for this. we don't have that, so let's re-use 16.png
install -Dvm644 browser/branding/${pkgname}/default16.png \
"$pkgdir/usr/share/icons/hicolor/symbolic/apps/$pkgname-symbolic.png"
install -Dvm644 ../$pkgname.desktop \
"$pkgdir/usr/share/applications/$pkgname.desktop"
# Install a wrapper to avoid confusion about binary path
install -Dvm755 /dev/stdin "$pkgdir/usr/bin/$pkgname" <<END
#!/bin/sh
exec /usr/lib/$pkgname/librewolf "\$@"
END
# Replace duplicate binary with wrapper
# https://bugzilla.mozilla.org/show_bug.cgi?id=658850
ln -srfv "$pkgdir/usr/bin/$pkgname" "$pkgdir/usr/lib/$pkgname/librewolf-bin"
# Use system certificates
local nssckbi="$pkgdir/usr/lib/$pkgname/libnssckbi.so"
if [[ -e $nssckbi ]]; then
ln -srfv "$pkgdir/usr/lib/libnssckbi.so" "$nssckbi"
fi
}

View file

@ -1,24 +1,14 @@
This Repository contains all the required material to build the browser on Linux platforms.
### Important
The following instructions are currently outdated. The build scripts are currently meant to be
run in a CI environment with Docker containers and gitlab-runners. Updated instructions for
local builds or setting up your own appropriate runners will be provided again in the future.
The build scripts are currently meant to be run in a CI environment with Docker containers
and gitlab-runners. Updated instructions for local builds or setting up your own
appropriate runners will be provided again in the future.
### Requirements
* Ubuntu or Linux Mint (Bionic or later)
### Notes
* As this script installs files during the build, it is recommended to run this script in a VM or installation dedicated to building.
* You will occassionally need to enter your sudo password. Running this script as root has not been tested
* This script has been tested with Linux Mint 19.1
* The flatpak build is not ready yet.
### Instructions
* Run build.sh inside this folder.
* Packages will be saved in the repository root folder.
## Other builds
* [Gentoo](https://gitlab.com/librewolf-community/browser/gentoo)
* [macOS](https://gitlab.com/librewolf-community/browser/macos)
* [Debian](https://gitlab.com/librewolf-community/browser/debian)
* [Windows](https://gitlab.com/librewolf-community/browser/windows)
* [Flatpak](https://gitlab.com/librewolf-community/browser/flatpak)
* [AppImage](https://gitlab.com/librewolf-community/browser/appimage)

View file

@ -1,70 +0,0 @@
#!/bin/bash
printf "\n\n------------------------------------ APPIMAGE BUILD -----------------------------------------\n";
# Aborts the script upon any faliure
set -e;
# Sets up script variables
BINARY_TARBALL=$1
APPIMAGE_FILE=$2
_SCRIPT_FOLDER=$(realpath $(dirname $0));
_BINARY_TARBALL_EXTRACTED_FOLDER=$_SCRIPT_FOLDER/librewolf;
_BUILD_APPIMAGE_FILE=$_SCRIPT_FOLDER/LibreWolf.AppImage;
_APPIMAGETOOL_DOWNLOAD_URL=https://github.com/AppImage/AppImageKit/releases/latest/download/appimagetool-${CARCH}.AppImage;
_APPIMAGETOOL_EXTRACTED_FOLDER=$_SCRIPT_FOLDER/squashfs-root;
_APPIMAGETOOL_FILE=$_SCRIPT_FOLDER/appimagetool;
_APPIMAGE_CONTENT_FOLDER=$_SCRIPT_FOLDER/content
# Installs needed dependencies
apt-get update && apt-get -y install file wget bzip2 libdbus-glib-1-2
if [[ ! -z "${TARBALL_URL}" ]];then
wget "${TARBALL_URL}"
fi
if [[ ! -f "${BINARY_TARBALL}" ]];then
echo "Tarball not provided via pipeline or download."
exit 1
fi
if [[ $CARCH == 'aarch64' ]]; then
apt install -y zlib1g-dev
fi
# Extracts the binary tarball
printf "\nExtracting librewolf binary tarball\n";
mkdir $_BINARY_TARBALL_EXTRACTED_FOLDER;
tar -xvf $BINARY_TARBALL -C $_BINARY_TARBALL_EXTRACTED_FOLDER;
# Copy appimage resources to main tarball
printf "Copying AppImage resources to binary tarball folder\n";
cp -vrT $_APPIMAGE_CONTENT_FOLDER $_BINARY_TARBALL_EXTRACTED_FOLDER;
# Downloads appimage tool
printf "\nDownloading AppImage Tool\n";
apt -qq update && apt -qqy install wget;
wget $_APPIMAGETOOL_DOWNLOAD_URL -O $_APPIMAGETOOL_FILE;
chmod +x $_APPIMAGETOOL_FILE;
# add appstream metadata
install -Dvm644 "$_BINARY_TARBALL_EXTRACTED_FOLDER/io.gitlab.LibreWolf.appdata.xml" "$_BINARY_TARBALL_EXTRACTED_FOLDER/usr/share/metainfo/io.gitlab.LibreWolf.appdata.xml"
rm -f "$_BINARY_TARBALL_EXTRACTED_FOLDER/io.gitlab.LibreWolf.appdata.xml"
# add libdbus-glib-1.so.2, just in case
install -Dvm644 "/usr/lib/${CARCH}-linux-gnu/libdbus-glib-1.so.2" "$_BINARY_TARBALL_EXTRACTED_FOLDER/usr/lib/libdbus-glib-1.so."2
# Generate AppImage
printf "\nGenerating AppImage\n";
ARCH=${CARCH} $_APPIMAGETOOL_FILE --appimage-extract-and-run\
$_BINARY_TARBALL_EXTRACTED_FOLDER $_BUILD_APPIMAGE_FILE;
chmod +x $_BUILD_APPIMAGE_FILE;
# Move AppImage to specified location
printf "\nMoving AppImage to specified location\n";
mv $_BUILD_APPIMAGE_FILE $APPIMAGE_FILE;
# Cleanup files
printf "\nCleaning up AppImage files\n";
rm -rf $_BINARY_TARBALL_EXTRACTED_FOLDER;
rm -f $_APPIMAGETOOL_FILE;
rm -rf $_APPIMAGETOOL_EXTRACTED_FOLDER;

View file

@ -1 +0,0 @@
librewolf.png

View file

@ -1,13 +0,0 @@
#!/bin/sh
SELF=$(readlink -f "$0")
HERE=${SELF%/*}
export PATH="${HERE}:${HERE}/usr/bin/:${HERE}/usr/sbin/:${HERE}/usr/games/:${HERE}/bin/:${HERE}/sbin/${PATH:+:$PATH}"
export LD_LIBRARY_PATH="${HERE}/usr/lib/:${HERE}/usr/lib/i386-linux-gnu/:${HERE}/usr/lib/x86_64-linux-gnu/:${HERE}/usr/lib32/:${HERE}/usr/lib64/:${HERE}/lib/:${HERE}/lib/i386-linux-gnu/:${HERE}/lib/x86_64-linux-gnu/:${HERE}/lib32/:${HERE}/lib64/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
export PYTHONPATH="${HERE}/usr/share/pyshared/${PYTHONPATH:+:$PYTHONPATH}"
export MOZ_LEGACY_PROFILES=1 # Prevent per installation profiles
export XDG_DATA_DIRS="${HERE}/usr/share/${XDG_DATA_DIRS:+:$XDG_DATA_DIRS}"
export PERLLIB="${HERE}/usr/share/perl5/:${HERE}/usr/lib/perl5/${PERLLIB:+:$PERLLIB}"
export GSETTINGS_SCHEMA_DIR="${HERE}/usr/share/glib-2.0/schemas/${GSETTINGS_SCHEMA_DIR:+:$GSETTINGS_SCHEMA_DIR}"
export QT_PLUGIN_PATH="${HERE}/usr/lib/qt4/plugins/:${HERE}/usr/lib/i386-linux-gnu/qt4/plugins/:${HERE}/usr/lib/x86_64-linux-gnu/qt4/plugins/:${HERE}/usr/lib32/qt4/plugins/:${HERE}/usr/lib64/qt4/plugins/:${HERE}/usr/lib/qt5/plugins/:${HERE}/usr/lib/i386-linux-gnu/qt5/plugins/:${HERE}/usr/lib/x86_64-linux-gnu/qt5/plugins/:${HERE}/usr/lib32/qt5/plugins/:${HERE}/usr/lib64/qt5/plugins/${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH}"
EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2 | cut -d " " -f 1)
exec "${EXEC}" "$@"

View file

@ -1,12 +0,0 @@
[Desktop Entry]
Name=LibreWolf
Exec=librewolf %u
Icon=librewolf
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
StartupWMClass=LibreWolf
Categories=Network;WebBrowser;
StartupNotify=true
Terminal=false
X-MultipleArgs=false
Keywords=Internet;WWW;Browser;Web;Explorer;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View file

@ -1,15 +0,0 @@
#!/bin/bash
pacman --noconfirm -Syu --needed base-devel
# this is a very ugly fix for recent makepkg-5.1-chmod-shenanigans, which mess up the build process in docker
sed -E -i 's/^chmod a-s \"\$BUILDDIR\"$/# chmod a-s \"\$BUILDDIR\"/' `which makepkg`
echo 'nobody ALL=(ALL) NOPASSWD: /usr/bin/pacman' >> /etc/sudoers
mkdir -p /home/nobody && chown -R nobody /home/nobody
usermod -d /home/nobody nobody
# we need to un-expire the account, otherwise PAM will complain
usermod -e '' nobody
chown -R nobody .
# temporary workaround for rust / packed_simd build issue:
pacman --noconfirm -U https://archive.archlinux.org/packages/r/rust/rust-1%3A1.47.0-4-x86_64.pkg.tar.zst
# makepkg will not run as root
sudo -u nobody -E -H makepkg --noconfirm --nosign --syncdeps --cleanbuild

View file

@ -1,62 +0,0 @@
#!/bin/bash
printf "\n\n-------------------------------------- DEPENDENCY INSTALLATION ---------------------------------------------\n";
set -e
# Setup Script Variables
_DEPENDENCIES="wget git xvfb \
xz-utils \
gettext-base \
curl python3 libjack-dev \
python3-psutil python-psutil python3-dev python-dev \
autotools-dev \
autoconf2.13 \
zip \
libx11-dev \
libx11-xcb-dev \
libxt-dev \
libxext-dev \
libgtk2.0-dev \
libgtk-3-dev \
libglib2.0-dev \
libpango1.0-dev \
libfontconfig1-dev \
libfreetype6-dev \
libstartup-notification0-dev \
libasound2-dev \
libcurl4-openssl-dev \
libdbus-glib-1-dev \
hardening-wrapper \
lsb-release \
libiw-dev \
mesa-common-dev \
libnotify-dev \
libxrender-dev \
libpulse-dev \
yasm \
unzip \
dbus-x11 \
python \
cargo \
rustc \
nodejs-mozilla \
nasm-mozilla \
gcc-mozilla"
export DEBIAN_FRONTEND=noninteractive
# Installs Dependencies
printf "\nInstalling dependencies: $_DEPENDENCIES\n";
apt-get -qq update;
apt-get -y -qq install $_DEPENDENCIES;
if [[ $CARCH == 'x86_64' ]];then
# Installs (non-ancient) clang
apt install -y software-properties-common apt-transport-https ca-certificates
apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-11 main"
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add
apt-get update
apt-get -y install clang-11 libclang-11-dev
else
apt-get -y install clang-8 libclang-8-dev
fi

View file

@ -1,147 +0,0 @@
#!/bin/bash
printf "\n\n------------------------------ FINAL PREBUILD CONFIGURATION ---------------------------------\n";
set -e
# Setup Script Variables
srcdir=$1;
CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../../)}
_COMMON_REPO='https://gitlab.com/librewolf-community/browser/common.git';
_MOZBUILD=$srcdir/../mozbuild
mkdir -p ${_MOZBUILD}
# Copy Source Code Changes to Source Code
printf "\nCopying branding and source code changes to firefox source code\n";
git clone $_COMMON_REPO common;
cp -r common/source_files/* $srcdir/;
rm -rf common;
cd $srcdir
cat >${CI_PROJECT_DIR}/mozconfig <<END
ac_add_options --enable-application=browser
mk_add_options MOZ_OBJDIR=${srcdir}/firefox-${pkgver}/obj
# to build on ubuntu and pick up clang
ac_add_options NODEJS=/usr/lib/nodejs-mozilla/bin/node
ac_add_options NASM=/usr/lib/nasm-mozilla/bin/nasm
# This supposedly speeds up compilation (We test through dogfooding anyway)
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --prefix=/usr
ac_add_options --enable-release
ac_add_options --enable-hardening
ac_add_options --enable-rust-simd
# Branding
ac_add_options --enable-update-channel=release
ac_add_options --with-app-name=librewolf
ac_add_options --with-app-basename=LibreWolf
ac_add_options --with-branding=browser/branding/librewolf
ac_add_options --with-distribution-id=io.gitlab.librewolf
ac_add_options --with-unsigned-addon-scopes=app,system
ac_add_options --allow-addon-sideload
export MOZ_REQUIRE_SIGNING=0
# System libraries
# ac_add_options --with-system-nspr
# ac_add_options --with-system-nss
# Features
ac_add_options --enable-alsa
ac_add_options --enable-jack
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests
# Disables crash reporting, telemetry and other data gathering tools
mk_add_options MOZ_CRASHREPORTER=0
mk_add_options MOZ_DATA_REPORTING=0
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
mk_add_options MOZ_TELEMETRY_REPORTING=0
# options for ci / weaker build systems
# mk_add_options MOZ_MAKE_FLAGS="-j4"
# ac_add_options --enable-linker=gold
END
if [[ $CARCH == 'aarch64' ]]; then
cat >>${CI_PROJECT_DIR}/mozconfig <<END
# taken from manjaro build:
ac_add_options --enable-optimize="-g0 -O2"
# from ALARM
# should only fail on armv7x
# ac_add_options --disable-webrtc
export CC='clang-8'
export CXX='clang++-8'
export AR=llvm-ar-8
export NM=llvm-nm-8
export RANLIB=llvm-ranlib-8
END
export MOZ_DEBUG_FLAGS=" "
export CFLAGS+=" -g0"
export CXXFLAGS+=" -g0"
export RUSTFLAGS="-Cdebuginfo=0"
export LDFLAGS+=" -Wl,--no-keep-memory -Wl"
patch -p1 -i ${CI_PROJECT_DIR}/arm.patch
wget https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/firefox/build-arm-libopus.patch -O ${CI_PROJECT_DIR}/build-arm-libopus.patch
patch -p1 -i ${CI_PROJECT_DIR}/build-arm-libopus.patch
else
cat >>${CI_PROJECT_DIR}/mozconfig <<END
# ubuntu seems to recommend this
ac_add_options --disable-elf-hack
export CC='clang-11'
export CXX='clang++-11'
export AR=llvm-ar-11
export NM=llvm-nm-11
export RANLIB=llvm-ranlib-11
# probably not needed, enabled by default?
ac_add_options --enable-optimize
END
fi
# hopefully the magic sauce that makes things build on 16.04 and later on work "everywhere":
patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/lower-python3-requirement.patch"
patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/armhf-reduce-linker-memory-use.patch"
patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/build-with-libstdc++-7.patch"
patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/fix-armhf-webrtc-build.patch"
patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/webrtc-fix-compiler-flags-for-armhf.patch"
patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/python3-remove-variable-annotations.patch"
patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/python3-remove-fstrings.patch"
patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/python3-remove-pep487.patch"
patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/silence-gtk-style-assertions.patch"
patch -p1 -i "${CI_PROJECT_DIR}/deb_patches/sandbox-update-arm-syscall-numbers.patch"
# Remove some pre-installed addons that might be questionable
patch -p1 -i ${CI_PROJECT_DIR}/remove_addons.patch
# Disable (some) megabar functionality
# Adapted from https://github.com/WesleyBranton/userChrome.css-Customizations
patch -p1 -i ${CI_PROJECT_DIR}/megabar.patch
# Disabling Pocket
printf "\nDisabling Pocket\n";
sed -i "s/'pocket'/#'pocket'/g" browser/components/moz.build
# this one only to remove an annoying error message:
sed -i 's#SaveToPocket.init();#// SaveToPocket.init();#g' browser/components/BrowserGlue.jsm
# Remove Internal Plugin Certificates
_cert_sed='s#if (aCert.organizationalUnit == "Mozilla [[:alpha:]]\+") {\n'
_cert_sed+='[[:blank:]]\+return AddonManager\.SIGNEDSTATE_[[:upper:]]\+;\n'
_cert_sed+='[[:blank:]]\+}#'
_cert_sed+='// NOTE: removed#g'
sed -z "$_cert_sed" -i toolkit/mozapps/extensions/internal/XPIInstall.jsm
# allow SearchEngines option in non-ESR builds
sed -i 's#"enterprise_only": true,#"enterprise_only": false,#g' browser/components/enterprisepolicies/schemas/policies-schema.json

View file

@ -1,16 +0,0 @@
#!/bin/bash
printf "\n------------------------------------- SCRIPT SETUP ------------------------------------------\n";
# Aborts the script upon any faliure
set -e;
# Sets up script variables
SCRIPT_FOLDER=$(realpath $(dirname $0));
BINARY_TARBALL=$SCRIPT_FOLDER/LibreWolf.tar.bz2;
APPIMAGE_FILE=$SCRIPT_FOLDER/LibreWolf.AppImage;
FLATPAK_REPO=$SCRIPT_FOLDER/librewolf-flatpak-repo;
FLATPAK_BUNDLE=$SCRIPT_FOLDER/LibreWolf.flatpak;
$SCRIPT_FOLDER/binary_tarball/build_tarball.sh $BINARY_TARBALL;
$SCRIPT_FOLDER/appimage/build_appimage.sh $BINARY_TARBALL $APPIMAGE_FILE;
$SCRIPT_FOLDER/flatpak/build_flatpak.sh $BINARY_TARBALL $FLATPAK_REPO $FLATPAK_BUNDLE;

View file

@ -1,21 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>io.gitlab.LibreWolf</id>
<launchable type="desktop-id">io.gitlab.LibreWolf</launchable>
<id>io.gitlab.librewolf-community</id>
<launchable type="desktop-id">io.gitlab.librewolf-community.desktop</launchable>
<name>LibreWolf</name>
<developer_name>LibreWolf Community</developer_name>
<summary>LibreWolf Web Browser</summary>
<metadata_license>CC0-1.0</metadata_license>
<project_license>MPL-2.0</project_license>
<screenshots>
<screenshot type="default">
<image type="source" width="1512" height="900">https://librewolf-community.gitlab.io/images/screenshot.png</image>
</screenshot>
</screenshots>
<description>
<p><strong>LibreWolf</strong></p>
<p>LibreWolf</p>
<p>This project is an independent fork of Firefox, with the primary goals of privacy security and user freedom. It is the community run successor to LibreFox.</p>
<p>LibreWolf uses more than 500 privacy/security/performance settings, patches, LibreWolf-Addons (optional) and is designed to minimize data collection and telemetry as much as possible (updater, crashreporter and Firefoxs integrated addons that dont respect privacy are removed).</p>
<p><strong>LibreWolf is NOT associated with Mozilla or its products.</strong></p>
<p>LibreWolf is NOT associated with Mozilla or its products.</p>
<p>Features:</p>
<ul>
<li>Latest Version of Firefox: LibreWolf is compiled directly from the latest build of Firefox Stable. You will have the the latest features, and security updates.</li>
<li>Completely Independent Build: LibreWolf uses a completely independent build from Firefox and has its own settings, profile folder and installation path. As a result, it can be installed alongside Firefox or any other browser.</li>
<li>IJWY (I Just Want You To Shut Up): embedded server links and other calling home functions are removed. In other words, zero unauthorized or background connections by default.</li>
<li>Settings protection: important settings are enforced/locked within librewolf.cfg and policies.json, those settings cannot be changed by addons/updates/LibreWolf itself or unwanted/accidental manipulation; To change those settings you can easily do it by editing librewolf.cfg and policies.json.</li>
<li>LibreWolf-addons: set of optional LibreWolf extensions</li>
<li>Statistics disabled: telemetry and similar functions are disabled</li>
@ -36,7 +41,7 @@
<url type="homepage">https://librewolf-community.gitlab.io/</url>
<url type="bugtracker">https://gitlab.com/groups/librewolf-community/-/issues/</url>
<provides>
<id>io.gitlab.LibreWolf</id>
<id>io.gitlab.librewolf-community</id>
</provides>
<content_rating type="oars-1.1" />
</component>

View file

@ -4,7 +4,8 @@
# - any command fails (-e | --errexit)
# - any variable is unset (-u | --nounset)
# - a part of a piped sequence fails (-o pipefail)
set -euo pipefail
#set -euo pipefail
set -e
SCRIPT_FOLDER=$(realpath $(dirname $0));

View file

@ -5,23 +5,18 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
--- a/build/moz.configure/toolchain.configure
+++ b/build/moz.configure/toolchain.configure
@@ -2056,15 +2056,16 @@ def select_linker(linker, c_compiler, de
set_config('LINKER_KIND', select_linker.KIND)
@@ -2287,10 +2287,12 @@
set_config("LINKER_KIND", select_linker.KIND)
-@depends_if(select_linker, macos_sdk)
-def linker_ldflags(linker, macos_sdk):
+@depends_if(select_linker, macos_sdk, host)
+def linker_ldflags(linker, macos_sdk, host):
-@depends_if(select_linker, target, target_sysroot, target_multiarch_dir, c_compiler)
+@depends_if(select_linker, target, target_sysroot, target_multiarch_dir, c_compiler, host)
@imports("os")
-def linker_ldflags(linker, target, sysroot, multiarch_dir, c_compiler):
+def linker_ldflags(linker, target, sysroot, multiarch_dir, c_compiler, host):
flags = list((linker and linker.LINKER_FLAG) or [])
if macos_sdk:
if linker and linker.KIND == 'ld64':
flags.append('-Wl,-syslibroot,%s' % macos_sdk)
else:
flags.append('-Wl,--sysroot=%s' % macos_sdk)
-
+ elif host.cpu == 'arm':
+ flags.append('-Wl,--no-keep-memory')
return flags
+ if host.cpu == "arm":
+ flags.append("-Wl,--no-keep-memory")
# rpath-link is irrelevant to wasm, see for more info https://github.com/emscripten-core/emscripten/issues/11076.
if sysroot.path and multiarch_dir and target.os != "WASI":
for d in ("lib", "usr/lib"):

View file

@ -1,54 +0,0 @@
Description: point clang to the toolchain provided by the gcc-mozilla package (version 7 required for C++ 17), and statically link against libstdc++
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
Bug-Ubuntu: https://launchpad.net/bugs/1856861
--- a/build/moz.configure/toolchain.configure
+++ b/build/moz.configure/toolchain.configure
@@ -1252,6 +1252,7 @@ try_compile(includes=['cstddef'],
'# endif',
'#endif',
]),
+ flags=['--gcc-toolchain=/usr/lib/gcc-mozilla'],
check_msg='for new enough STL headers from libstdc++',
when=needs_libstdcxx_newness_check,
onerror=die_on_old_libstdcxx)
@@ -1433,6 +1434,10 @@ set_config('_DEPEND_CFLAGS', depend_cfla
set_config('_HOST_DEPEND_CFLAGS', depend_cflags(host_c_compiler))
+add_old_configure_assignment('CFLAGS', ['--gcc-toolchain=/usr/lib/gcc-mozilla'])
+add_old_configure_assignment('CXXFLAGS', ['--gcc-toolchain=/usr/lib/gcc-mozilla'])
+
+
@depends(c_compiler)
def preprocess_option(compiler):
# The uses of PREPROCESS_OPTION depend on the spacing for -o/-Fi.
@@ -2137,6 +2142,7 @@ def linker_ldflags(linker, macos_sdk, ho
flags.append('-Wl,--sysroot=%s' % macos_sdk)
elif host.cpu == 'arm':
flags.append('-Wl,--no-keep-memory')
+ flags.append('-static-libstdc++')
return flags
--- a/servo/components/style/build_gecko.rs
+++ b/servo/components/style/build_gecko.rs
@@ -149,6 +149,8 @@ impl BuilderExt for Builder {
builder = builder.with_rustfmt(path);
}
+ builder = builder.clang_arg("--gcc-toolchain=/usr/lib/gcc-mozilla");
+
for dir in SEARCH_PATHS.iter() {
builder = builder.clang_arg("-I").clang_arg(dir.to_str().unwrap());
}
--- a/layout/style/test/moz.build
+++ b/layout/style/test/moz.build
@@ -18,6 +18,7 @@ DIRS += ['gtest']
HostSimplePrograms([
'host_ListCSSProperties',
])
+HOST_CXXFLAGS += ['--gcc-toolchain=/usr/lib/gcc-mozilla']
MOCHITEST_MANIFESTS += [
'mochitest.ini',

View file

@ -1,7 +1,7 @@
--- a/third_party/libwebrtc/webrtc/system_wrappers/cpu_features_linux_gn/moz.build
+++ b/third_party/libwebrtc/webrtc/system_wrappers/cpu_features_linux_gn/moz.build
@@ -31,10 +31,6 @@ LOCAL_INCLUDES += [
"/third_party/libwebrtc/webrtc/"
"/tools/profiler/public"
]
-UNIFIED_SOURCES += [

View file

@ -1,68 +0,0 @@
# Revert 6700a8dfaeb1e303955acc05dabd245b9ae3c97e
Bug 1622963 - Require python 3.6 for the build system. r=firefox-build-system-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D77754
diff -r ede1c973aa85 build/moz.configure/init.configure
--- a/build/moz.configure/init.configure Sun Jun 14 02:41:45 2020 +0000
+++ b/build/moz.configure/init.configure Sun Jun 14 19:10:48 2020 +0200
@@ -237,7 +237,7 @@
# Python 3
# ========
-option(env='PYTHON3', nargs=1, help='Python 3 interpreter (3.6 or later)')
+option(env='PYTHON3', nargs=1, help='Python 3 interpreter (3.5 or later)')
option(env='VIRTUALENV_NAME', nargs=1, default='init_py3',
help='Name of the in-objdir virtualenv')
@@ -334,20 +334,20 @@
'(%s): %s' % (python, e))
else:
# Fall back to the search routine.
- python, version = find_python3_executable(min_version='3.6.0')
+ python, version = find_python3_executable(min_version='3.5.0')
# The API returns a bytes whereas everything in configure is unicode.
if python:
python = ensure_text(python)
if not python:
- raise FatalCheckError('Python 3.6 or newer is required to build. '
+ raise FatalCheckError('Python 3.5 or newer is required to build. '
'Ensure a `python3.x` executable is in your '
'PATH or define PYTHON3 to point to a Python '
- '3.6 executable.')
+ '3.5 executable.')
- if version < (3, 6, 0):
- raise FatalCheckError('Python 3.6 or newer is required to build; '
+ if version < (3, 5, 0):
+ raise FatalCheckError('Python 3.5 or newer is required to build; '
'%s is Python %d.%d' % (python, version[0],
version[1]))
diff -r ede1c973aa85 python/mozbuild/mozbuild/pythonutil.py
--- a/python/mozbuild/mozbuild/pythonutil.py Sun Jun 14 02:41:45 2020 +0000
+++ b/python/mozbuild/mozbuild/pythonutil.py Sun Jun 14 19:10:48 2020 +0200
@@ -45,7 +45,7 @@
def _find_python_executable(major):
if major not in (2, 3):
raise ValueError('Expected a Python major version of 2 or 3')
- min_versions = {2: '2.7.0', 3: '3.6.0'}
+ min_versions = {2: '2.7.0', 3: '3.5.0'}
def ret(min_version=min_versions[major]):
from mozfile import which
diff -r ede1c973aa85 python/mozbuild/mozbuild/virtualenv.py
--- a/python/mozbuild/mozbuild/virtualenv.py Sun Jun 14 02:41:45 2020 +0000
+++ b/python/mozbuild/mozbuild/virtualenv.py Sun Jun 14 19:10:48 2020 +0200
@@ -687,7 +687,7 @@
major, minor, micro = sys.version_info[:3]
minimum_python_versions = {
2: LooseVersion('2.7.3'),
- 3: LooseVersion('3.6.0'),
+ 3: LooseVersion('3.5.0'),
}
our = LooseVersion('%d.%d.%d' % (major, minor, micro))

View file

@ -1,410 +0,0 @@
Description: remove f-strings that require Python 3.6 (https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep498)
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
--- a/third_party/python/glean_parser/glean_parser/lint.py
+++ b/third_party/python/glean_parser/glean_parser/lint.py
@@ -42,10 +42,10 @@ def _english_list(items: List[str]) -> s
if len(items) == 0:
return ""
elif len(items) == 1:
- return f"'{items[0]}'"
+ return "'{}'".format(items[0])
else:
return "{}, or '{}'".format(
- ", ".join([f"'{x}'" for x in items[:-1]]), items[-1]
+ ", ".join(["'{}'".format(x) for x in items[:-1]]), items[-1]
)
@@ -88,10 +88,11 @@ def check_common_prefix(
if i > 0:
common_prefix = "_".join(first[:i])
yield (
- f"Within category '{category_name}', all metrics begin with "
- f"prefix '{common_prefix}'."
+ "Within category '{}', all metrics begin with "
+ "prefix '{}'."
"Remove the prefixes on the metric names and (possibly) "
"rename the category."
+ .format(category_name, common_prefix)
)
@@ -131,17 +132,19 @@ def check_unit_in_name(
or unit_in_name == time_unit.name
):
yield (
- f"Suffix '{unit_in_name}' is redundant with time_unit "
- f"'{time_unit.name}'. Only include time_unit."
+ "Suffix '{}' is redundant with time_unit "
+ "'{}'. Only include time_unit."
+ .format(unit_in_name, time_unit.name)
)
elif (
unit_in_name in TIME_UNIT_ABBREV.keys()
or unit_in_name in TIME_UNIT_ABBREV.values()
):
yield (
- f"Suffix '{unit_in_name}' doesn't match time_unit "
- f"'{time_unit.name}'. "
+ "Suffix '{}' doesn't match time_unit "
+ "'{}'. "
"Confirm the unit is correct and only include time_unit."
+ .format(unit_in_name, time_unit.name)
)
elif memory_unit is not None:
@@ -150,26 +153,29 @@ def check_unit_in_name(
or unit_in_name == memory_unit.name
):
yield (
- f"Suffix '{unit_in_name}' is redundant with memory_unit "
- f"'{memory_unit.name}'. "
+ "Suffix '{}' is redundant with memory_unit "
+ "'{}'. "
"Only include memory_unit."
+ .format(unit_in_name, memory_unit.name)
)
elif (
unit_in_name in MEMORY_UNIT_ABBREV.keys()
or unit_in_name in MEMORY_UNIT_ABBREV.values()
):
yield (
- f"Suffix '{unit_in_name}' doesn't match memory_unit "
- f"{memory_unit.name}'. "
+ "Suffix '{}' doesn't match memory_unit "
+ "{}'. "
"Confirm the unit is correct and only include memory_unit."
+ .format(unit_in_name, memory_unit.name)
)
elif unit is not None:
if unit_in_name == unit:
yield (
- f"Suffix '{unit_in_name}' is redundant with unit param "
- f"'{unit}'. "
+ "Suffix '{}' is redundant with unit param "
+ "'{}'. "
"Only include unit."
+ .format(unit_in_name, unit)
)
@@ -183,8 +189,9 @@ def check_category_generic(
if category_name in GENERIC_CATEGORIES:
yield (
- f"Category '{category_name}' is too generic. "
- f"Don't use {_english_list(GENERIC_CATEGORIES)} for category names"
+ "Category '{}' is too generic. "
+ "Don't use {} for category names"
+ .format(category_name, _english_list(GENERIC_CATEGORIES))
)
@@ -195,9 +202,10 @@ def check_bug_number(
if len(number_bugs):
yield (
- f"For bugs {', '.join(number_bugs)}: "
+ "For bugs {}: "
"Bug numbers are deprecated and should be changed to full URLs. "
"For example, use 'http://bugzilla.mozilla.org/12345' instead of '12345'."
+ .format(', '.join(number_bugs))
)
@@ -220,7 +228,7 @@ def check_misspelled_pings(
for builtin in pings.RESERVED_PING_NAMES:
distance = _hamming_distance(ping, builtin)
if distance == 1:
- yield f"Ping '{ping}' seems misspelled. Did you mean '{builtin}'?"
+ yield "Ping '{}' seems misspelled. Did you mean '{}'?".format(ping, builtin)
def check_user_lifetime_expiration(
@@ -281,8 +289,9 @@ class GlinterNit:
def format(self):
return (
- f"{self.check_type.name.upper()}: {self.check_name}: "
- f"{self.name}: {self.msg}"
+ "{}: {}: "
+ "{}: {}"
+ .format(self.check_type.name.upper(), self.check_name, self.name, self.msg)
)
@@ -374,7 +383,7 @@ def lint_yaml_files(input_filepaths: Ite
if len(nits):
print("Sorry, Glean found some glinter nits:", file=file)
for (path, p) in nits:
- print(f"{path} ({p.line}:{p.column}) - {p.message}")
+ print("{} ({}:{}) - {}".format(path, p.line, p.column, p.message))
print("", file=file)
print("Please fix the above nits to continue.", file=file)
--- a/third_party/python/glean_parser/glean_parser/markdown.py
+++ b/third_party/python/glean_parser/glean_parser/markdown.py
@@ -73,7 +73,7 @@ def metrics_docs(obj_name: str) -> str:
if obj_name.startswith("labeled_"):
fixedup_name += "s"
- return f"https://mozilla.github.io/glean/book/user/metrics/{fixedup_name}.html"
+ return "https://mozilla.github.io/glean/book/user/metrics/{}.html".format(fixedup_name)
def ping_docs(ping_name: str) -> str:
@@ -84,7 +84,7 @@ def ping_docs(ping_name: str) -> str:
if ping_name not in pings.RESERVED_PING_NAMES:
return ""
- return f"https://mozilla.github.io/glean/book/user/pings/{ping_name}.html"
+ return "https://mozilla.github.io/glean/book/user/pings/{}.html".format(ping_name)
def if_empty(ping_name: str, custom_pings_cache: Dict[str, pings.Ping] = {}) -> bool:
--- a/third_party/python/glean_parser/glean_parser/parser.py
+++ b/third_party/python/glean_parser/glean_parser/parser.py
@@ -46,7 +46,8 @@ def _update_validator(validator):
if len(missing_properties):
missing_properties = sorted(list(missing_properties))
yield ValidationError(
- f"Missing required properties: {', '.join(missing_properties)}"
+ "Missing required properties: {}"
+ .format(', '.join(missing_properties))
)
validator.VALIDATORS["required"] = required
@@ -65,7 +66,7 @@ def _load_file(
return {}, None
if content is None:
- yield util.format_error(filepath, "", f"'{filepath}' file can not be empty.")
+ yield util.format_error(filepath, "", "'{}' file can not be empty.".format(filepath))
return {}, None
if not isinstance(content, dict):
@@ -76,7 +77,7 @@ def _load_file(
schema_key = content.get("$schema")
if not isinstance(schema_key, str):
- raise TypeError(f"Invalid schema key {schema_key}")
+ raise TypeError("Invalid schema key {}".format(schema_key))
filetype = FILE_TYPES.get(schema_key)
@@ -117,7 +118,7 @@ def _get_schema(
util.format_error(
filepath,
"",
- f"$schema key must be one of {', '.join(schemas.keys())}",
+ "$schema key must be one of {}".format(', '.join(schemas.keys())),
)
)
return schemas[schema_id]
@@ -189,7 +190,7 @@ def _instantiate_metrics(
if not config.get("allow_reserved") and category_key.split(".")[0] == "glean":
yield util.format_error(
filepath,
- f"For category '{category_key}'",
+ "For category '{}'".format(category_key),
"Categories beginning with 'glean' are reserved for "
"Glean internal use.",
)
@@ -197,7 +198,7 @@ def _instantiate_metrics(
all_objects.setdefault(category_key, OrderedDict())
if not isinstance(category_val, dict):
- raise TypeError(f"Invalid content for {category_key}")
+ raise TypeError("Invalid content for {}".format(category_key))
for metric_key, metric_val in category_val.items():
try:
@@ -207,7 +208,7 @@ def _instantiate_metrics(
except Exception as e:
yield util.format_error(
filepath,
- f"On instance {category_key}.{metric_key}",
+ "On instance {}.{}".format(category_key, metric_key),
str(e),
)
metric_obj = None
@@ -218,7 +219,7 @@ def _instantiate_metrics(
):
yield util.format_error(
filepath,
- f"On instance {category_key}.{metric_key}",
+ "On instance {}.{}".format(category_key, metric_key),
'Only internal metrics may specify "all-pings" '
'in "send_in_pings"',
)
@@ -234,8 +235,9 @@ def _instantiate_metrics(
filepath,
"",
(
- f"Duplicate metric name '{category_key}.{metric_key}' "
- f"already defined in '{already_seen}'"
+ "Duplicate metric name '{}.{}' "
+ "already defined in '{}'"
+ .format(category_key, metric_key, already_seen)
),
)
else:
@@ -261,17 +263,17 @@ def _instantiate_pings(
if ping_key in RESERVED_PING_NAMES:
yield util.format_error(
filepath,
- f"For ping '{ping_key}'",
- f"Ping uses a reserved name ({RESERVED_PING_NAMES})",
+ "For ping '{}'".format(ping_key),
+ "Ping uses a reserved name ({})".format(RESERVED_PING_NAMES),
)
continue
if not isinstance(ping_val, dict):
- raise TypeError(f"Invalid content for ping {ping_key}")
+ raise TypeError("Invalid content for ping {}".format(ping_key))
ping_val["name"] = ping_key
try:
ping_obj = Ping(**ping_val)
except Exception as e:
- yield util.format_error(filepath, f"On instance '{ping_key}'", str(e))
+ yield util.format_error(filepath, "On instance '{}'".format(ping_key), str(e))
continue
already_seen = sources.get(ping_key)
@@ -280,8 +282,9 @@ def _instantiate_pings(
yield util.format_error(
filepath,
"",
- f"Duplicate ping name '{ping_key}' "
- f"already defined in '{already_seen}'",
+ "Duplicate ping name '{}' "
+ "already defined in '{}'"
+ .format(ping_key, already_seen),
)
else:
all_objects.setdefault("pings", {})[ping_key] = ping_obj
--- a/third_party/python/glean_parser/glean_parser/util.py
+++ b/third_party/python/glean_parser/glean_parser/util.py
@@ -132,7 +132,7 @@ def load_yaml_or_json(path: Path, ordere
else:
return yaml.load(fd, Loader=_NoDatesSafeLoader)
else:
- raise ValueError(f"Unknown file extension {path.suffix}")
+ raise ValueError("Unknown file extension {}".format(path.suffix))
def ensure_list(value: Any) -> Sequence[Any]:
@@ -331,9 +331,9 @@ def format_error(filepath: Union[str, Pa
else:
filepath = "<string>"
if header:
- return f"{filepath}: {header}\n{_utils.indent(content)}"
+ return "{}: {}\n{}".format(filepath, header, _utils.indent(content))
else:
- return f"{filepath}:\n{_utils.indent(content)}"
+ return "{}:\n{}".format(filepath, _utils.indent(content))
def parse_expires(expires: str) -> datetime.date:
@@ -351,8 +351,8 @@ def parse_expires(expires: str) -> datet
return datetime.date.fromisoformat(expires)
except ValueError:
raise ValueError(
- f"Invalid expiration date '{expires}'. "
- "Must be of the form yyyy-mm-dd in UTC."
+ "Invalid expiration date '{}'. "
+ "Must be of the form yyyy-mm-dd in UTC.".format(expires)
)
@@ -382,7 +382,7 @@ def validate_expires(expires: str) -> No
max_date = datetime.datetime.now() + datetime.timedelta(days=730)
if date > max_date.date():
raise ValueError(
- f"'{expires}' is more than 730 days (~2 years) in the future.",
+ "'{}' is more than 730 days (~2 years) in the future.".format(expires),
"Please make sure this is intentional.",
"You can supress this warning by adding EXPIRATION_DATE_TOO_FAR to no_lint",
"See: https://mozilla.github.io/glean_parser/metrics-yaml.html#no_lint",
--- a/third_party/python/glean_parser/tools/extract_data_categories.py
+++ b/third_party/python/glean_parser/tools/extract_data_categories.py
@@ -62,7 +62,7 @@ def fetch_url(url: str) -> str:
if content is not None:
return content
- print(f"Fetching {url}")
+ print("Fetching {}".format(url))
content = urlopen(url).read()
cache[url] = content
time.sleep(0.5)
@@ -97,7 +97,7 @@ def categories_as_strings(categories: Se
"""
if len(categories):
return [
- CATEGORY_MAP.get(x, f"!!!UNKNOWN CATEGORY {x}")
+ CATEGORY_MAP.get(x, "!!!UNKNOWN CATEGORY {}".format(x))
for x in sorted(list(categories))
]
else:
@@ -119,24 +119,24 @@ def update_lines(
for line in lines_iter:
output.append(line)
- if line.startswith(f"{category_name}:"):
+ if line.startswith("{}:".format(category_name)):
break
for line in lines_iter:
output.append(line)
- if line.startswith(f" {metric_name}:"):
+ if line.startswith(" {}:".format(metric_name)):
break
for line in lines_iter:
output.append(line)
- if line.startswith(f" data_reviews:"):
+ if line.startswith(" data_reviews:"):
break
for line in lines_iter:
if not line.strip().startswith("- "):
output.append(" data_sensitivity:\n")
for data_sensitivity in data_sensitivity_values:
- output.append(f" - {data_sensitivity}\n")
+ output.append(" - {}\n".format(data_sensitivity))
output.append(line)
break
else:
--- a/third_party/python/glean_parser/glean_parser/metrics.py
+++ b/third_party/python/glean_parser/glean_parser/metrics.py
@@ -138,7 +138,7 @@ class Metric:
"""
metric_type = metric_info["type"]
if not isinstance(metric_type, str):
- raise TypeError(f"Unknown metric type {metric_type}")
+ raise TypeError("Unknown metric type {}".format(metric_type))
return cls.metric_types[metric_type](
category=category,
name=name,
--- a/third_party/python/glean_parser/glean_parser/translate.py
+++ b/third_party/python/glean_parser/glean_parser/translate.py
@@ -112,7 +112,7 @@ def translate_metrics(
for filepath in output_dir.glob(clear_pattern):
filepath.unlink()
if len(list(output_dir.iterdir())):
- print(f"Extra contents found in '{output_dir}'.")
+ print("Extra contents found in '{}'.".format(output_dir))
# We can't use shutil.copytree alone if the directory already exists.
# However, if it doesn't exist, make sure to create one otherwise
@@ -146,7 +146,7 @@ def translate(
format_desc = OUTPUTTERS.get(output_format, None)
if format_desc is None:
- raise ValueError(f"Unknown output format '{output_format}'")
+ raise ValueError("Unknown output format '{}'".format(output_format))
return translate_metrics(
input_filepaths,

View file

@ -1,23 +0,0 @@
Description: revert a change that requires Python 3.6 (https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep487)
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
--- a/third_party/python/glean_parser/glean_parser/metrics.py
+++ b/third_party/python/glean_parser/glean_parser/metrics.py
@@ -15,6 +15,8 @@ from typing import Any, Dict, List, Opti
from . import pings
from . import util
+import pep487
+
# Important: if the values are ever changing here, make sure
# to also fix mozilla/glean. Otherwise language bindings may
@@ -32,7 +34,7 @@ class DataSensitivity(enum.Enum):
highly_sensitive = 4
-class Metric:
+class Metric(pep487.PEP487Object):
typename = "ERROR"
glean_internal_metric_cat = "glean.internal.metrics"
metric_types = {}

View file

@ -1,148 +0,0 @@
Description: remove variable annotations that require Python 3.6 (https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep526)
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
--- a/xpcom/ds/tools/incremental_dafsa.py
+++ b/xpcom/ds/tools/incremental_dafsa.py
@@ -14,12 +14,6 @@ from typing import List, Dict, Optional,
class Node:
- children: Dict[str, "Node"]
- parents: Dict[str, List["Node"]]
- character: str
- is_root_node: bool
- is_end_node: bool
-
def __init__(self, character, is_root_node=False, is_end_node=False):
self.children = {}
self.parents = {}
@@ -156,9 +150,6 @@ class Node:
class SuffixCursor:
- index: int # Current position of the cursor within the DAFSA.
- node: Node
-
def __init__(self, index, node):
self.index = index
self.node = node
@@ -227,15 +218,6 @@ class DafsaAppendStateMachine:
The next suffix node we'll attempt to find is at index "9".
"""
- root_node: Node
- prefix_index: int
- suffix_cursor: SuffixCursor
- stack: List[Node]
- word: str
- suffix_overlaps_prefix: bool
- first_fork_index: Optional[int]
- _state: Callable
-
def __init__(self, word, root_node, end_node):
self.root_node = root_node
self.prefix_index = 0
@@ -471,9 +453,6 @@ def _duplicate_fork_nodes(stack, fork_in
class Dafsa:
- root_node: Node
- end_node: Node
-
def __init__(self):
self.root_node = Node(None, is_root_node=True)
self.end_node = Node(None, is_end_node=True)
--- a/third_party/python/glean_parser/glean_parser/lint.py
+++ b/third_party/python/glean_parser/glean_parser/lint.py
@@ -237,9 +237,7 @@ def check_user_lifetime_expiration(
# The checks that operate on an entire category of metrics:
# {NAME: (function, is_error)}
-CATEGORY_CHECKS: Dict[
- str, Tuple[Callable[[str, Iterable[metrics.Metric]], LintGenerator], CheckType]
-] = {
+CATEGORY_CHECKS = {
"COMMON_PREFIX": (check_common_prefix, CheckType.error),
"CATEGORY_GENERIC": (check_category_generic, CheckType.error),
}
@@ -247,9 +245,7 @@ CATEGORY_CHECKS: Dict[
# The checks that operate on individual metrics:
# {NAME: (function, is_error)}
-INDIVIDUAL_CHECKS: Dict[
- str, Tuple[Callable[[metrics.Metric, dict], LintGenerator], CheckType]
-] = {
+INDIVIDUAL_CHECKS = {
"UNIT_IN_NAME": (check_unit_in_name, CheckType.error),
"BUG_NUMBER": (check_bug_number, CheckType.error),
"BASELINE_PING": (check_valid_in_baseline, CheckType.error),
@@ -282,7 +278,7 @@ def lint_metrics(
:param file: The stream to write errors to.
:returns: List of nits.
"""
- nits: List[GlinterNit] = []
+ nits = []
for (category_name, category) in sorted(list(objs.items())):
if category_name == "pings":
continue
@@ -363,7 +359,7 @@ def lint_yaml_files(input_filepaths: Ite
# Generic type since the actual type comes from yamllint, which we don't
# control.
- nits: List = []
+ nits = []
for path in input_filepaths:
# yamllint needs both the file content and the path.
file_content = None
--- a/third_party/python/glean_parser/glean_parser/metrics.py
+++ b/third_party/python/glean_parser/glean_parser/metrics.py
@@ -33,10 +33,10 @@ class DataSensitivity(enum.Enum):
class Metric:
- typename: str = "ERROR"
- glean_internal_metric_cat: str = "glean.internal.metrics"
- metric_types: Dict[str, Any] = {}
- default_store_names: List[str] = ["metrics"]
+ typename = "ERROR"
+ glean_internal_metric_cat = "glean.internal.metrics"
+ metric_types = {}
+ default_store_names = ["metrics"]
def __init__(
self,
--- a/third_party/python/glean_parser/glean_parser/pings.py
+++ b/third_party/python/glean_parser/glean_parser/pings.py
@@ -49,7 +49,7 @@ class Ping:
# _validated indicates whether this metric has already been jsonschema
# validated (but not any of the Python-level validation).
if not _validated:
- data: Dict[str, util.JSONType] = {
+ data = {
"$schema": parser.PINGS_ID,
self.name: self.serialize(),
}
--- a/third_party/python/glean_parser/glean_parser/util.py
+++ b/third_party/python/glean_parser/glean_parser/util.py
@@ -269,7 +269,7 @@ def fetch_remote_url(url: str, cache: bo
if key in dc:
return dc[key]
- contents: str = urllib.request.urlopen(url).read()
+ contents = urllib.request.urlopen(url).read()
if cache:
with diskcache.Cache(cache_dir) as dc:
--- a/third_party/python/glean_parser/glean_parser/parser.py
+++ b/third_party/python/glean_parser/glean_parser/parser.py
@@ -339,8 +339,8 @@ def parse_objects(
value from the `metrics.yaml`, rather than having it overridden when
the metric expires.
"""
- all_objects: ObjectTree = OrderedDict()
- sources: Dict[Any, Path] = {}
+ all_objects = OrderedDict()
+ sources = {}
filepaths = util.ensure_list(filepaths)
for filepath in filepaths:
content, filetype = yield from _load_file(filepath)

View file

@ -0,0 +1,21 @@
Description: reduce the rust debuginfo level
because 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,
with newer versions it started happening very frequently on s390x too, and with
firefox 84 (built with rustc 1.47) it started happening on amd64 too.
This patch would initially decrease debug_info for selected architectures, but
with recent versions of rustc pretty much all supported architectures are
affected, so it is now unconditional.
--- a/build/moz.configure/rust.configure
+++ b/build/moz.configure/rust.configure
@@ -2167,7 +2167,7 @@ def rust_compile_flags(opt_level, debug_
debug_assertions = False
if debug_symbols:
- debug_info = "2"
+ debug_info = "1"
opts = []

View file

@ -1,144 +0,0 @@
From 05971bd227dc6c359657d1501711e6865e9430f9 Mon Sep 17 00:00:00 2001
From: Matthew Denton <mpdenton@chromium.org>
Date: Tue, 28 Jul 2020 00:29:01 +0000
Subject: [PATCH] Linux sandbox: update arm syscall numbers
Change-Id: Ia2c39a86fb3516040a74de963115e73b7b1a1e0c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2318316
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Matthew Denton <mpdenton@chromium.org>
Cr-Commit-Position: refs/heads/master@{#792090}
---
diff --git a/security/sandbox/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h b/security/sandbox/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h
index 59d0eab8..a242c18c 100644
--- a/security/sandbox/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h
+++ b/security/sandbox/chromium/sandbox/linux/system_headers/arm64_linux_syscalls.h
@@ -1063,4 +1063,60 @@
#define __NR_memfd_create 279
#endif
+#if !defined(__NR_bpf)
+#define __NR_bpf 280
+#endif
+
+#if !defined(__NR_execveat)
+#define __NR_execveat 281
+#endif
+
+#if !defined(__NR_userfaultfd)
+#define __NR_userfaultfd 282
+#endif
+
+#if !defined(__NR_membarrier)
+#define __NR_membarrier 283
+#endif
+
+#if !defined(__NR_mlock2)
+#define __NR_mlock2 284
+#endif
+
+#if !defined(__NR_copy_file_range)
+#define __NR_copy_file_range 285
+#endif
+
+#if !defined(__NR_preadv2)
+#define __NR_preadv2 286
+#endif
+
+#if !defined(__NR_pwritev2)
+#define __NR_pwritev2 287
+#endif
+
+#if !defined(__NR_pkey_mprotect)
+#define __NR_pkey_mprotect 288
+#endif
+
+#if !defined(__NR_pkey_alloc)
+#define __NR_pkey_alloc 289
+#endif
+
+#if !defined(__NR_pkey_free)
+#define __NR_pkey_free 290
+#endif
+
+#if !defined(__NR_statx)
+#define __NR_statx 291
+#endif
+
+#if !defined(__NR_io_pgetevents)
+#define __NR_io_pgetevents 292
+#endif
+
+#if !defined(__NR_rseq)
+#define __NR_rseq 293
+#endif
+
#endif // SANDBOX_LINUX_SYSTEM_HEADERS_ARM64_LINUX_SYSCALLS_H_
diff --git a/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h b/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
index 1addd53..85e2110b 100644
--- a/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
+++ b/security/sandbox/chromium/sandbox/linux/system_headers/arm_linux_syscalls.h
@@ -1385,6 +1385,62 @@
#define __NR_memfd_create (__NR_SYSCALL_BASE+385)
#endif
+#if !defined(__NR_bpf)
+#define __NR_bpf (__NR_SYSCALL_BASE+386)
+#endif
+
+#if !defined(__NR_execveat)
+#define __NR_execveat (__NR_SYSCALL_BASE+387)
+#endif
+
+#if !defined(__NR_userfaultfd)
+#define __NR_userfaultfd (__NR_SYSCALL_BASE+388)
+#endif
+
+#if !defined(__NR_membarrier)
+#define __NR_membarrier (__NR_SYSCALL_BASE+389)
+#endif
+
+#if !defined(__NR_mlock2)
+#define __NR_mlock2 (__NR_SYSCALL_BASE+390)
+#endif
+
+#if !defined(__NR_copy_file_range)
+#define __NR_copy_file_range (__NR_SYSCALL_BASE+391)
+#endif
+
+#if !defined(__NR_preadv2)
+#define __NR_preadv2 (__NR_SYSCALL_BASE+392)
+#endif
+
+#if !defined(__NR_pwritev2)
+#define __NR_pwritev2 (__NR_SYSCALL_BASE+393)
+#endif
+
+#if !defined(__NR_pkey_mprotect)
+#define __NR_pkey_mprotect (__NR_SYSCALL_BASE+394)
+#endif
+
+#if !defined(__NR_pkey_alloc)
+#define __NR_pkey_alloc (__NR_SYSCALL_BASE+395)
+#endif
+
+#if !defined(__NR_pkey_free)
+#define __NR_pkey_free (__NR_SYSCALL_BASE+396)
+#endif
+
+#if !defined(__NR_statx)
+#define __NR_statx (__NR_SYSCALL_BASE+397)
+#endif
+
+#if !defined(__NR_rseq)
+#define __NR_rseq (__NR_SYSCALL_BASE+398)
+#endif
+
+#if !defined(__NR_io_pgetevents)
+#define __NR_io_pgetevents (__NR_SYSCALL_BASE+399)
+#endif
+
// ARM private syscalls.
#if !defined(__ARM_NR_BASE)
#define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0xF0000)

View file

@ -1,42 +0,0 @@
Description: silence GTK style-related assertions caused by the lack of a "selection" CSS node on GtkTextView in the version of gtk3 in xenial.
These assertions were caused by the fix for https://bugzilla.mozilla.org/1654323.
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
--- a/widget/gtk/nsLookAndFeel.cpp
+++ b/widget/gtk/nsLookAndFeel.cpp
@@ -1216,7 +1216,7 @@ void nsLookAndFeel::EnsureInit() {
&color);
mTextSelectedText = GDK_RGBA_TO_NS_RGBA(color);
};
- GrabSelectionColors(selectionStyle);
+ GrabSelectionColors(selectionStyle ? selectionStyle : style);
if (mTextSelectedBackground == mTextSelectedText) {
// Some old distros/themes don't properly use the .selection style, so
// fall back to the regular text view style.
@@ -1413,6 +1413,7 @@ bool nsLookAndFeel::WidgetUsesImage(Widg
};
GtkStyleContext* style = GetStyleContext(aNodeType);
+ if (!style) return false;
GValue value = G_VALUE_INIT;
for (GtkStateFlags state : sFlagsToCheck) {
--- a/widget/gtk/WidgetStyleCache.cpp
+++ b/widget/gtk/WidgetStyleCache.cpp
@@ -933,7 +933,7 @@ static GtkStyleContext* GetWidgetRootSty
default:
GtkWidget* widget = GetWidget(aNodeType);
MOZ_ASSERT(widget);
- return gtk_widget_get_style_context(widget);
+ return (widget ? gtk_widget_get_style_context(widget) : nullptr);
}
MOZ_ASSERT(style);
@@ -1356,6 +1356,7 @@ GtkStyleContext* GetStyleContext(WidgetN
style = GetCssNodeStyleInternal(aNodeType);
StyleContextSetScale(style, aScale);
}
+ if (!style) return nullptr;
bool stateChanged = false;
bool stateHasDirection = gtk_get_minor_version() >= 8;
GtkStateFlags oldState = gtk_style_context_get_state(style);

View file

@ -0,0 +1,13 @@
diff -r 08cd64cdbc3b config/external/icu/data/convert_icudata.py
--- a/config/external/icu/data/convert_icudata.py Fri Jul 17 11:18:09 2020 +0000
+++ b/config/external/icu/data/convert_icudata.py Sat Jul 18 14:40:33 2020 +0200
@@ -11,7 +11,7 @@
subprocess.run(
[
- os.path.join(buildconfig.topobjdir, "dist", "host", "bin", "icupkg"),
+ "icupkg",
"-tb",
data_file,
output.name,
]

View file

@ -0,0 +1,24 @@
diff --git a/browser/base/content/browser-context.inc b/browser/base/content/browser-context.inc
index a7fce1a806..3a9d07582d 100644
--- a/browser/base/content/browser-context.inc
+++ b/browser/base/content/browser-context.inc
@@ -78,9 +78,6 @@
<menuitem id="context-savelink"
data-l10n-id="main-context-menu-save-link"
oncommand="gContextMenu.saveLink();"/>
- <menuitem id="context-savelinktopocket"
- data-l10n-id="main-context-menu-save-link-to-pocket"
- oncommand= "Pocket.savePage(gContextMenu.browser, gContextMenu.linkURL);"/>
<menuitem id="context-copyemail"
data-l10n-id="main-context-menu-copy-email"
oncommand="gContextMenu.copyEmail();"/>
@@ -215,9 +212,6 @@
<menuitem id="context-savepage"
data-l10n-id="main-context-menu-page-save"
oncommand="gContextMenu.savePageAs();"/>
- <menuitem id="context-pocket"
- data-l10n-id="main-context-menu-save-to-pocket"
- oncommand="Pocket.savePage(gContextMenu.browser, gContextMenu.browser.currentURI.spec, gContextMenu.browser.contentTitle);"/>
<menuseparator id="context-sep-sendpagetodevice" class="sync-ui-item"
hidden="true"/>
<menu id="context-sendpagetodevice"

View file

@ -1,8 +1,8 @@
diff --git a/browser/components/urlbar/UrlbarInput.jsm b/browser/components/urlbar/UrlbarInput.jsm
index 18d73db..7911576 100644
index 73d15df..99cc41b 100644
--- a/browser/components/urlbar/UrlbarInput.jsm
+++ b/browser/components/urlbar/UrlbarInput.jsm
@@ -1172,13 +1172,13 @@ class UrlbarInput {
@@ -1692,13 +1692,13 @@ class UrlbarInput {
// Enable the animation only after the first extend call to ensure it
// doesn't run when opening a new window.
@ -24,19 +24,19 @@ index 18d73db..7911576 100644
endLayoutExtend() {
diff --git a/browser/themes/shared/urlbar-searchbar.inc.css b/browser/themes/shared/urlbar-searchbar.inc.css
index 0b1f693..7de64a1 100644
index e9fde8b..6c4c444 100644
--- a/browser/themes/shared/urlbar-searchbar.inc.css
+++ b/browser/themes/shared/urlbar-searchbar.inc.css
@@ -6,7 +6,7 @@
@@ -5,7 +5,7 @@
%endif
%define fieldBorderColor hsla(240,5%,5%,.25)
%define fieldHoverBorderColor hsla(240,5%,5%,.35)
-%define urlbarMarginInline 5px
+%define urlbarMarginInline 0px
%define urlbarSearchButtonWidth calc(16px + 2 * @identityBoxPaddingInline@)
%define urlbarSearchButtonWidth calc(16px + 2 * var(--urlbar-icon-padding))
:root {
@@ -197,13 +197,13 @@
@@ -273,9 +273,9 @@
}
#urlbar[breakout][breakout-extend] {
@ -48,14 +48,18 @@ index 0b1f693..7de64a1 100644
+ width: 100%;
}
@supports -moz-bool-pref("browser.proton.urlbar.enabled") {
@@ -288,7 +288,7 @@
@supports not -moz-bool-pref("browser.proton.urlbar.enabled") {
#urlbar[breakout][breakout-extend] > #urlbar-background {
- box-shadow: 0 3px 8px 0 rgba(0,0,0,.15)
+ box-shadow: 0 1px 4px rgba(0,0,0,.05);
}
#urlbar[breakout][breakout-extend][open] > #urlbar-background {
@@ -211,9 +211,9 @@
}
@@ -297,9 +297,9 @@
} /*** END !proton ***/
#urlbar[breakout][breakout-extend] > #urlbar-input-container {
- height: calc(var(--urlbar-toolbar-height) + 2 * @urlbarBreakoutExtend@);
@ -66,8 +70,8 @@ index 0b1f693..7de64a1 100644
+ padding-inline: 0;
}
#urlbar.searchButton[breakout][breakout-extend] > #urlbar-input-container > #urlbar-search-button {
@@ -231,7 +231,7 @@
@supports -moz-bool-pref("browser.proton.urlbar.enabled") {
@@ -325,7 +325,7 @@
}
#urlbar[breakout][breakout-extend] > #urlbar-background {
@ -77,49 +81,49 @@ index 0b1f693..7de64a1 100644
animation-timing-function: var(--animation-easing-function);
}
diff --git a/browser/themes/shared/urlbarView.inc.css b/browser/themes/shared/urlbarView.inc.css
index 6b8cac0..54648c6 100644
index c6ce546..da00fac 100644
--- a/browser/themes/shared/urlbarView.inc.css
+++ b/browser/themes/shared/urlbarView.inc.css
@@ -48,8 +48,8 @@
@@ -74,8 +74,8 @@
display: block;
text-shadow: none;
overflow: clip;
- margin-inline: @urlbarViewMarginInline@;
- width: calc(100% - 2 * @urlbarViewMarginInline@);
- margin-inline: calc(5px + var(--urlbar-container-padding));
- width: calc(100% - 2 * (5px + var(--urlbar-container-padding)));
+ margin-inline: 0;
+ width: 100%;
/* Match urlbar-background's border. */
border-inline: 1px solid transparent;
@@ -72,7 +72,7 @@
.urlbarView-row {
}
@@ -115,7 +115,7 @@
flex-wrap: nowrap;
fill: currentColor;
fill-opacity: .6;
- padding-block: 3px;
+ padding-block: 0;
}
.urlbarView-row-inner {
@@ -179,6 +179,7 @@
background-repeat: no-repeat;
background-size: contain;
:root[uidensity=compact] .urlbarView-row {
@@ -280,6 +280,7 @@
object-fit: contain;
flex-shrink: 0;
-moz-context-properties: fill, fill-opacity;
+ margin-inline-start: 20px;
}
@media (min-resolution: 2dppx) {
@@ -204,10 +205,10 @@
@supports not -moz-bool-pref("browser.proton.urlbar.enabled") {
@@ -324,10 +325,10 @@
.urlbarView-type-icon {
position: absolute;
- min-width: 12px;
- width: 12px;
- height: 12px;
- margin-bottom: -4px;
- margin-inline-start: 8px;
+ min-width: 16px;
+ width: 16px;
+ height: 16px;
+ margin-bottom: 0;
+ margin-inline-start: 0;
align-self: end;
background-repeat: no-repeat;
background-size: contain;
-moz-context-properties: fill, stroke;

View file

@ -0,0 +1,16 @@
diff --git a/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html b/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html
index 4d22812723..2542791b9b 100644
--- a/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html
+++ b/browser/components/privatebrowsing/content/aboutPrivateBrowsing.html
@@ -54,11 +54,7 @@
<div class="info">
<h1 data-l10n-id="about-private-browsing-info-title"></h1>
<p data-l10n-id="about-private-browsing-info-description"></p>
- <a id="private-browsing-myths" data-l10n-id="about-private-browsing-info-myths"></a>
</div>
</div>
-
- <p id="private-browsing-vpn-text" class="vpn-promo" data-l10n-id="about-private-browsing-need-more-privacy"></p>
- <a id="private-browsing-vpn-link" class="vpn-promo" data-l10n-id="about-private-browsing-turn-on-vpn"></a>
</body>
</html>

View file

@ -1,30 +1,30 @@
diff --git a/browser/extensions/moz.build b/browser/extensions/moz.build
index f71ece6..bd91686 100644
index 269dcb2..ed7c31d 100644
--- a/browser/extensions/moz.build
+++ b/browser/extensions/moz.build
@@ -5,9 +5,6 @@
@@ -5,10 +5,7 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
DIRS += [
- 'doh-rollout',
'formautofill',
- 'screenshots',
- 'webcompat',
- 'report-site-issue'
+ 'screenshots'
- "doh-rollout",
"formautofill",
"screenshots",
- "webcompat",
- "report-site-issue",
"pictureinpicture",
]
diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
index 05f0242..7c9737a 100644
index 496379c..dd6f359 100644
--- a/browser/locales/Makefile.in
+++ b/browser/locales/Makefile.in
@@ -61,7 +61,6 @@ libs-%:
@@ -61,7 +61,6 @@ l10n-%:
ifneq (,$(wildcard ../extensions/formautofill/locales))
@$(MAKE) -C ../extensions/formautofill/locales AB_CD=$* XPI_NAME=locale-$*
endif
- @$(MAKE) -C ../extensions/report-site-issue/locales AB_CD=$* XPI_NAME=locale-$*
@$(MAKE) -C ../../devtools/client/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
@$(MAKE) -C ../../devtools/startup/locales AB_CD=$* XPI_NAME=locale-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
@$(MAKE) libs AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR)
@$(MAKE) l10n AB_CD=$* XPI_NAME=locale-$* PREF_DIR=$(PREF_DIR)
@@ -82,7 +81,6 @@ endif
@$(MAKE) -C ../../devtools/startup/locales chrome AB_CD=$*
@$(MAKE) chrome AB_CD=$*
@ -34,17 +34,17 @@ index 05f0242..7c9737a 100644
package-win32-installer: $(SUBMAKEFILES)
$(MAKE) -C ../installer/windows CONFIG_DIR=l10ngen ZIP_IN='$(ZIP_OUT)' installer
diff --git a/browser/locales/filter.py b/browser/locales/filter.py
index 1fc9b14..d8a9ee2 100755
index bb2e992..7d7768e 100644
--- a/browser/locales/filter.py
+++ b/browser/locales/filter.py
@@ -13,7 +13,6 @@ def test(mod, path, entity=None):
"browser",
"browser/extensions/formautofill",
"browser/extensions/fxmonitor",
- "browser/extensions/report-site-issue",
"extensions/spellcheck",
"other-licenses/branding/firefox",
"browser/branding/official",
@@ -20,7 +20,6 @@ def test(mod, path, entity=None):
"browser",
"browser/extensions/formautofill",
"browser/extensions/fxmonitor",
- "browser/extensions/report-site-issue",
"extensions/spellcheck",
"other-licenses/branding/firefox",
"browser/branding/official",
diff --git a/browser/locales/l10n.ini b/browser/locales/l10n.ini
index f4cb7ca..4efac13 100644
--- a/browser/locales/l10n.ini
@ -58,7 +58,7 @@ index f4cb7ca..4efac13 100644
[includes]
# non-central apps might want to use %(topsrcdir)s here, or other vars
diff --git a/browser/locales/l10n.toml b/browser/locales/l10n.toml
index 0b53c52..f8b605d 100644
index b9b18fe..af7c583 100644
--- a/browser/locales/l10n.toml
+++ b/browser/locales/l10n.toml
@@ -133,10 +133,6 @@ locales = [

File diff suppressed because it is too large Load diff

7
docs/README.md Normal file
View file

@ -0,0 +1,7 @@
![Logo](https://librewolf-community.gitlab.io/images/logo.png)
# LibreWolf
## Documentation has moved
You can find the current documentation for LibreWolf at [librewolf-community.gitlab.io/docs/](https://librewolf-community.gitlab.io/docs/).

View file

@ -1,77 +0,0 @@
#!/bin/bash
printf "\n\n---------------------------------------- FLATPAK BUILD --------------------------------------------\n";
# Aborts the script upon any faliure
set -e;
# Setup Script Variables
BINARY_TARBALL=$1;
FLATPAK_REPO=$2;
FLATPAK_BUNDLE=$3;
_SCRIPT_FOLDER=$(realpath $(dirname $0));
_FLATHUB_REPO="flathub https://flathub.org/repo/flathub.flatpakrepo";
_FLATHUB_PACKAGES_TO_INSTALL="org.gnome.Platform/${CARCH}/3.36 org.gnome.Sdk/${CARCH}/3.36";
_EXTRACTED_BINARY_TARBALL_FOLDER=$_SCRIPT_FOLDER/librewolf
_FLATPAK_JSON_FILE=$_SCRIPT_FOLDER/content/io.gitlab.LibreWolf.json;
_FLATPAK_BUILD_SOURCE_FOLDER=$_SCRIPT_FOLDER/source;
_FLATPAK_BUILD_FOLDER=build-dir;
if [[ ! -z "${TARBALL_URL}" ]];then
apt update && apt install -y wget
wget "${TARBALL_URL}"
fi
if [[ ! -f "${BINARY_TARBALL}" ]];then
echo "Tarball not provided via pipeline or download."
exit 1
fi
# Install build dependencies
printf "\nInstalling flatpak build dependencies\n";
# we're using a pre-prepared flatpak-image witch aarch64
apt update && apt install -y software-properties-common
add-apt-repository -y ppa:alexlarsson/flatpak
apt update && apt install -y flatpak-builder bzip2
flatpak remote-add --if-not-exists $_FLATHUB_REPO;
flatpak install -y flathub $_FLATHUB_PACKAGES_TO_INSTALL;
# Extracts the binary tarball
printf "\nExtracting librewolf binary tarball\n";
mkdir -p $_EXTRACTED_BINARY_TARBALL_FOLDER;
tar -xvf $BINARY_TARBALL -C $_EXTRACTED_BINARY_TARBALL_FOLDER;
# Prepare for flatpak build
printf "\nPreparing files for flatpak build\n";
mkdir -p $_FLATPAK_BUILD_SOURCE_FOLDER;
mv $_EXTRACTED_BINARY_TARBALL_FOLDER $_FLATPAK_BUILD_SOURCE_FOLDER;
# Build Repo
printf "\nBuilding flatpak repository\n";
cp "$_FLATPAK_JSON_FILE" ./;
flatpak-builder --disable-rofiles-fuse --repo="$FLATPAK_REPO" "$_FLATPAK_BUILD_FOLDER" io.gitlab.LibreWolf.json;
# add appstream metadata
# TODO: firefox uses files/share/appdata/ in their flatpak, but https://docs.flatpak.org/en/latest/conventions.html says otherwise. which is "more" correct?
install -Dvm644 "$_FLATPAK_BUILD_SOURCE_FOLDER/librewolf/io.gitlab.LibreWolf.appdata.xml" "$_FLATPAK_BUILD_FOLDER/files/share/metainfo/io.gitlab.LibreWolf.appdata.xml"
# add .desktop file
install -Dvm644 "$_SCRIPT_FOLDER/content/librewolf.desktop" "$_FLATPAK_BUILD_FOLDER/files/share/application/librewolf.desktop"
# it's not clear if the above is sufficient; follow what mozilla does
install -Dvm644 "$_SCRIPT_FOLDER/content/librewolf.desktop" "$_FLATPAK_BUILD_FOLDER/export/share/application/librewolf.desktop"
# Build bundle
printf "\nBuilding flatpak bundle\n";
flatpak build-bundle $FLATPAK_REPO $FLATPAK_BUNDLE io.gitlab.LibreWolf master;
# Clean up flatpak files
printf "\nCleaning up flatpak related files\n";
rm -rf $_FLATPAK_BUILD_FOLDER;
rm -rf $_FLATPAK_BUILD_SOURCE_FOLDER;
# keep it cached
# rm -rf ./.flatpak-builder;
# Delete the extracted binary tarball folder
printf "\nDeleting extracted binary tarball folder\n";
rm -rf $_EXTRACTED_BINARY_TARBALL_FOLDER;

View file

@ -1,42 +0,0 @@
{
"app-id": "io.gitlab.LibreWolf",
"runtime": "org.gnome.Platform",
"runtime-version": "3.36",
"sdk": "org.gnome.Sdk",
"command": "librewolf",
"modules": [
"flatpak/content/shared-modules/dbus-glib/dbus-glib-0.110.json",
{
"name": "librewolf",
"buildsystem": "simple",
"build-commands": [
"mkdir -p /app/share && mv librewolf -t /app/share",
"mkdir -p /app/bin && ln -s /app/share/librewolf/librewolf /app/bin/"
],
"sources": [
{
"type": "dir",
"path": "flatpak/source"
}
]
}
],
"finish-args": [
"--share=ipc",
"--socket=x11",
"--socket=pcsc",
"--socket=pulseaudio",
"--persist=.librewolf",
"--persist=.mozilla",
"--filesystem=xdg-download:rw",
"--device=all",
"--talk-name=org.freedesktop.FileManager1",
"--system-talk-name=org.freedesktop.NetworkManager",
"--talk-name=org.a11y.Bus",
"--talk-name=org.gnome.SessionManager",
"--talk-name=org.freedesktop.ScreenSaver",
"--talk-name=org.gtk.vfs.*",
"--socket=wayland",
"--share=network"
]
}

View file

@ -1,12 +0,0 @@
[Desktop Entry]
Name=LibreWolf
Exec=librewolf %u
Icon=librewolf
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
StartupWMClass=LibreWolf
Categories=Network;WebBrowser;
StartupNotify=true
Terminal=false
X-MultipleArgs=false
Keywords=Internet;WWW;Browser;Web;Explorer

@ -1 +0,0 @@
Subproject commit 8ce6437c269ef28c49984c11246d27be433c21d5

View file

@ -1,340 +0,0 @@
[Desktop Entry]
Version=1.0
Name=LibreWolf
GenericName=Web Browser
GenericName[ar]=متصفح ويب
GenericName[ast]=Restolador Web
GenericName[bn]=
GenericName[ca]=Navegador web
GenericName[cs]=Webový prohlížeč
GenericName[da]=Webbrowser
GenericName[de]=Webbrowser
GenericName[el]=Περιηγητής διαδικτύου
GenericName[es]=Navegador web
GenericName[et]=Veebibrauser
GenericName[fa]=مرورگر اینترنتی
GenericName[fi]=WWW-selain
GenericName[fr]=Navigateur Web
GenericName[gl]=Navegador Web
GenericName[he]=דפדפן אינטרנט
GenericName[hr]=Web preglednik
GenericName[hu]=Webböngésző
GenericName[it]=Browser web
GenericName[ja]=
GenericName[ko]=
GenericName[ku]=Geroka torê
GenericName[lt]=Interneto naršyklė
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[ro]=Navigator Internet
GenericName[ru]=Веб-браузер
GenericName[sk]=Internetový prehliadač
GenericName[sl]=Spletni brskalnik
GenericName[sv]=Webbläsare
GenericName[tr]=Web Tarayıcı
GenericName[ug]=توركۆرگۈ
GenericName[uk]=Веб-браузер
GenericName[vi]=Trình duyt Web
GenericName[zh_CN]=
GenericName[zh_TW]=
Comment=Browse the World Wide Web
Comment[ar]=تصفح الشبكة العنكبوتية العالمية
Comment[ast]=Restola pela Rede
Comment[bn]=
Comment[ca]=Navegueu per el web
Comment[cs]=Prohlížení stránek World Wide Webu
Comment[da]=Surf på internettet
Comment[de]=Im Internet surfen
Comment[el]=Μπορείτε να περιηγηθείτε στο διαδίκτυο (Web)
Comment[es]=Navegue por la web
Comment[et]=Lehitse veebi
Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
Comment[fi]=Selaa Internetin WWW-sivuja
Comment[fr]=Naviguer sur le Web
Comment[gl]=Navegar pola rede
Comment[he]=גלישה ברחבי האינטרנט
Comment[hr]=Pretražite web
Comment[hu]=A világháló böngészése
Comment[it]=Esplora il web
Comment[ja]=
Comment[ko]=
Comment[ku]=Li torê bigere
Comment[lt]=Naršykite internete
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[ro]=Navigați pe Internet
Comment[ru]=Доступ в Интернет
Comment[sk]=Prehliadanie internetu
Comment[sl]=Brskajte po spletu
Comment[sv]=Surfa på webben
Comment[tr]=İnternet'te Gezinin
Comment[ug]=دۇنيادىكى توربەتلەرنى كۆرگىلى بولىدۇ
Comment[uk]=Перегляд сторінок Інтернету
Comment[vi]=Đ duyt các trang web
Comment[zh_CN]=
Comment[zh_TW]=
Keywords=Internet;WWW;Browser;Web;Explorer
Keywords[ar]=انترنت;إنترنت;متصفح;ويب;وب
Keywords[ast]=Internet;WWW;Restolador;Web;Esplorador
Keywords[ca]=Internet;WWW;Navegador;Web;Explorador;Explorer
Keywords[cs]=Internet;WWW;Prohlížeč;Web;Explorer
Keywords[da]=Internet;Internettet;WWW;Browser;Browse;Web;Surf;Nettet
Keywords[de]=Internet;WWW;Browser;Web;Explorer;Webseite;Site;surfen;online;browsen
Keywords[el]=Internet;WWW;Browser;Web;Explorer;Διαδίκτυο;Περιηγητής;LibreWolf;Φιρεφοχ;Ιντερνετ
Keywords[es]=Explorador;Internet;WWW
Keywords[fi]=Internet;WWW;Browser;Web;Explorer;selain;Internet-selain;internetselain;verkkoselain;netti;surffaa
Keywords[fr]=Internet;WWW;Browser;Web;Explorer;Fureteur;Surfer;Navigateur
Keywords[he]=דפדפן;אינטרנט;רשת;אתרים;אתר;פיירפוקס;מוזילה;
Keywords[hr]=Internet;WWW;preglednik;Web
Keywords[hu]=Internet;WWW;Böngésző;Web;Háló;Net;Explorer
Keywords[it]=Internet;WWW;Browser;Web;Navigatore
Keywords[is]=Internet;WWW;Vafri;Vefur;Netvafri;Flakk
Keywords[ja]=Internet;WWW;Web;;;;
Keywords[nb]=Internett;WWW;Nettleser;Explorer;Web;Browser;Nettside
Keywords[nl]=Internet;WWW;Browser;Web;Explorer;Verkenner;Website;Surfen;Online
Keywords[pt]=Internet;WWW;Browser;Web;Explorador;Navegador
Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador
Keywords[ru]=Internet;WWW;Browser;Web;Explorer;интернет;браузер;веб;файрфокс;огнелис
Keywords[sk]=Internet;WWW;Prehliadač;Web;Explorer
Keywords[sl]=Internet;WWW;Browser;Web;Explorer;Brskalnik;Splet
Keywords[tr]=İnternet;WWW;Tarayıcı;Web;Gezgin;Web sitesi;Site;sörf;çevrimiçi;tara
Keywords[uk]=Internet;WWW;Browser;Web;Explorer;Інтернет;мережа;переглядач;оглядач;браузер;веб;файрфокс;вогнелис;перегляд
Keywords[vi]=Internet;WWW;Browser;Web;Explorer;Trình duyt;Trang web
Keywords[zh_CN]=Internet;WWW;Browser;Web;Explorer;;;;;LibreWolf;ff;;;
Keywords[zh_TW]=Internet;WWW;Browser;Web;Explorer;;;;;;
Exec=/usr/lib/librewolf/librewolf %u
Icon=librewolf
Terminal=false
X-MultipleArgs=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
StartupNotify=true
StartupWMClass=LibreWolf
Categories=Network;WebBrowser;
Actions=new-window;new-private-window;
[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]=Ca s mi
Name[wo]=Palanteer bu bees
Name[xh]=Ifestile entsha
Name[zh_CN]=
Name[zh_TW]=
Exec=/usr/lib/librewolf/librewolf --new-window %u
[Desktop Action new-private-window]
Name=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]=Nêuvo barcón privòu
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]=Ca s riêng tư mi
Name[wo]=Panlanteeru biir bu bees
Name[xh]=Ifestile yangasese entsha
Name[zh_CN]=
Name[zh_TW]=
Exec=/usr/lib/librewolf/librewolf --private-window %u

View file

@ -1,13 +0,0 @@
post_install() {
echo ">> If you want to reduce potential privacy leaks even further, you should consider"
echo ">> clearing a few settings required for updating/searching extensions:"
echo ">> extensions.getAddons.get.url"
echo ">> extensions.getAddons.langpacks.url"
echo ">> extensions.getAddons.link.url"
echo ">> extensions.getAddons.search.browseURL"
echo ">> extensions.update.url"
echo ">> extensions.update.background.url"
echo ">> If you do wish to install extensions the 'regular way',"
echo ">> a few more tweaks might be needed."
echo ">> I've kept the relevant settings unlocked for that specific reason."
}

View file

@ -0,0 +1,63 @@
#!/bin/bash
printf "\n\n-------------------------------------- DEPENDENCY INSTALLATION ---------------------------------------------\n";
set -e
# Setup Script Variables
_DEPENDENCIES="wget git xorg-server-xvfb \
xz grep coreutils patch tar \
gettext pkg-config \
curl python3 libjack \
python3-psutil python3-devel python-devel \
automake \
autoconf213 \
zip \
libX11-devel \
libXt-devel \
libXext-devel \
gtk+3-devel \
libglib-devel \
pango-devel \
fontconfig-devel \
freetype-devel \
libcurl-devel \
MesaLib-devel \
libnotify-devel \
libXrender-devel \
pulseaudio-devel \
openssl-devel \
yasm \
unzip \
dbus-x11 \
python \
libffi-devel \
nodejs-lts \
cargo \
rust \
nasm \
clang \
llvm \
alsa-lib-devel \
jack-devel \
perl \
cbindgen \
pixman-devel \
libevent-devel libnotify-devel libvpx-devel \
libXcomposite-devel libSM-devel libXdamage-devel \
dbus-glib-devel \
make"
# Installs Dependencies
printf "\nInstalling dependencies: $_DEPENDENCIES\n";
xbps-install -Sy $_DEPENDENCIES 2>&1 >/dev/null
if [[ "$(/lib/libc.so 2>&1)" == *"musl libc"* ]]; then
xbps-install -y libfl-devel libssp-devel libssp 2>&1 >/dev/null
fi
ln -s /bin/clang /bin/cc
mkdir /usr/lib/nodejs-mozilla/
ln -s /usr/bin/ /usr/lib/nodejs-mozilla/bin
mkdir /usr/lib/nasm-mozilla
ln -s /usr/bin/ /usr/lib/nasm-mozilla/bin
ln -s /usr/bin/make /usr/bin/gmake

View file

@ -9,11 +9,12 @@ if [[ -z ${pkgver} || -z ${pkgrel} ]]; then
fi
# Setup Script Variables
SOURCE_FOLDER=$1;
_SOURCE_CODE_URL="https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz";
#_SOURCE_CODE_URL="https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz";
_SOURCE_CODE_URL="https://f.sakamoto.pl/firefox-$pkgver.source.tar.xz";
_SOURCE_TAR="firefox-${pkgver}.tar.xz"
# Downloading and Extracting Firefox Source Code
printf "\nDownloading Firefox Source Code\n";
wget -O $_SOURCE_TAR $_SOURCE_CODE_URL
wget -O $_SOURCE_TAR $_SOURCE_CODE_URL 2>&1 > /dev/null
mkdir -p $SOURCE_FOLDER
tar -x --strip-components=1 -C $SOURCE_FOLDER -f $_SOURCE_TAR

View file

@ -0,0 +1,213 @@
#!/bin/bash
printf "\n\n------------------------------ FINAL PREBUILD CONFIGURATION ---------------------------------\n";
set -e
# Setup Script Variables
srcdir=$1;
CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../)}
#_COMMON_REPO='https://gitlab.com/librewolf-community/browser/common.git';
_COMMON_REPO='https://git.sakamoto.pl/domi/foxgirl-common.git';
_PKGVER_TAG="v${pkgver}-${pkgrel}"
_COMMON_TAG=${COMMON_TAG:-${_PKGVER_TAG}}
_COMMON_DIR="${CI_PROJECT_DIR}"/common
_PATCHES_DIR="${_COMMON_DIR}"/patches
_MOZBUILD=$srcdir/../mozbuild
mkdir -p ${_MOZBUILD}
# Copy Source Code Changes to Source Code
printf "\nCopying branding and source code changes to firefox source code\n";
git clone $_COMMON_REPO ${_COMMON_DIR}
cd ${_COMMON_DIR}
#git checkout ${_COMMON_TAG}
cd ..
cp -r ${_COMMON_DIR}/source_files/* $srcdir/;
# get foxgirl branding (ff3.6)
wget "https://web.archive.org/web/0/http://people.mozilla.com/~faaborg/files/shiretoko/firefoxIcon/firefoxIcon.zip"
mkdir -p icons icons/content
pushd icons
unzip ../firefoxIcon.zip
for i in firefox*noshadow.png; do
mv "$i" "default$(grep -Poh "[0-9]+" <<< "$i").png"
done
mv firefox-256.png content/about-logo.png
mv firefox-512.png "content/about-logo@2x.png"
popd
cp -rlf icons/* $srcdir/browser/branding/librewolf/
cd $srcdir
cat >${CI_PROJECT_DIR}/mozconfig <<END
ac_add_options --enable-application=browser
mk_add_options MOZ_OBJDIR=${srcdir}/firefox-${pkgver}/obj
# to build on ubuntu and pick up clang
ac_add_options NODEJS=/usr/lib/nodejs-mozilla/bin/node
# This supposedly speeds up compilation (We test through dogfooding anyway)
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --prefix=/usr
ac_add_options --enable-release
ac_add_options --enable-hardening
ac_add_options --enable-rust-simd
# Branding
ac_add_options --enable-update-channel=release
ac_add_options --with-app-name=foxgirl
ac_add_options --with-app-basename=Foxgirl
ac_add_options --with-branding=browser/branding/librewolf
ac_add_options --with-distribution-id=io.gitlab.librewolf-community
ac_add_options --with-unsigned-addon-scopes=app,system
ac_add_options --allow-addon-sideload
# System libraries
# ac_add_options --with-system-nspr
# ac_add_options --with-system-nss
# Features
ac_add_options --enable-alsa
ac_add_options --enable-jack
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-tests
# Disables crash reporting, telemetry and other data gathering tools
mk_add_options MOZ_CRASHREPORTER=0
mk_add_options MOZ_DATA_REPORTING=0
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
mk_add_options MOZ_TELEMETRY_REPORTING=0
# options for ci / weaker build systems
# mk_add_options MOZ_MAKE_FLAGS="-j4"
# ac_add_options --enable-linker=gold
END
if [[ "$(/lib/libc.so 2>&1)" == *"musl libc"* ]]; then
echo "ac_add_options --disable-jemalloc" >> ${CI_PROJECT_DIR}/mozconfig
echo "ac_add_options --disable-gold" >> ${CI_PROJECT_DIR}/mozconfig
echo "ac_add_options --disable-webrtc" >> ${CI_PROJECT_DIR}/mozconfig
fi
# allow setting limited resource usage via ENV / CI:
if [[ ! -z ${CORES_TO_USE} ]]; then
echo "mk_add_options MOZ_MAKE_FLAGS=\"-j${CORES_TO_USE}\"" >> ${CI_PROJECT_DIR}/mozconfig
fi
if [[ $CARCH == 'aarch64' ]]; then
cat >>${CI_PROJECT_DIR}/mozconfig <<END
# taken from manjaro build:
ac_add_options --enable-optimize="-g0 -O2"
export CC='clang'
export CXX='clang++'
export AR=llvm-ar
export NM=llvm-nm
export RANLIB=llvm-ranlib
END
export MOZ_DEBUG_FLAGS=" "
export CFLAGS+=" -g0"
export CXXFLAGS+=" -g0"
export RUSTFLAGS="-Cdebuginfo=0"
export LDFLAGS+=" -Wl,--no-keep-memory -Wl"
# patch -Np1 -i ${_PATCHES_DIR}/arm.patch # not required anymore?
wget https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/firefox/build-arm-libopus.patch -O ${_PATCHES_DIR}/build-arm-libopus.patch
patch -Np1 -i ${_PATCHES_DIR}/build-arm-libopus.patch
else
cat >>${CI_PROJECT_DIR}/mozconfig <<END
# ubuntu seems to recommend this
ac_add_options --disable-elf-hack
export CC='clang'
export CXX='clang++'
export AR=llvm-ar
export NM=llvm-nm
export RANLIB=llvm-ranlib
# probably not needed, enabled by default?
ac_add_options --enable-optimize
# unavailable option when (on ubuntu at least(?)) building on aarch64
ac_add_options NASM=/usr/lib/nasm-mozilla/bin/nasm
END
fi
# hopefully the magic sauce that makes things build on 16.04 and later on work "everywhere":
patch -Np1 -i "${CI_PROJECT_DIR}/deb_patches/armhf-reduce-linker-memory-use.patch"
patch -Np1 -i "${CI_PROJECT_DIR}/deb_patches/fix-armhf-webrtc-build.patch"
patch -Np1 -i "${CI_PROJECT_DIR}/deb_patches/webrtc-fix-compiler-flags-for-armhf.patch"
patch -Np1 -i "${CI_PROJECT_DIR}/deb_patches/reduce-rust-debuginfo.patch"
patch -Np1 -i "${CI_PROJECT_DIR}/deb_patches/use-system-icupkg.patch"
# Remove some pre-installed addons that might be questionable
patch -Np1 -i ${_PATCHES_DIR}/remove_addons.patch
# Disable (some) megabar functionality
# Adapted from https://github.com/WesleyBranton/userChrome.css-Customizations
patch -Np1 -i ${_PATCHES_DIR}/megabar.patch
# remove mozilla vpn ads
patch -Np1 -i ${_PATCHES_DIR}/mozilla-vpn-ad.patch
# Debian patch to enable global menubar
if [[ ! -z "${GLOBAL_MENUBAR}" ]];then
patch -Np1 -i ${_PATCHES_DIR}/unity-menubar.patch
fi
# Disabling Pocket
printf "\nDisabling Pocket\n";
patch -Np1 -i "${_PATCHES_DIR}/sed-patches/disable-pocket.patch"
# More patches
patch -Np1 -i "${_PATCHES_DIR}/context-menu.patch"
patch -Np1 -i "${_PATCHES_DIR}/browser-confvars.patch"
patch -Np1 -i "${_PATCHES_DIR}/urlbarprovider-interventions.patch"
# Remove Internal Plugin Certificates
patch -Np1 -i "${_PATCHES_DIR}/sed-patches/remove-internal-plugin-certs.patch"
# allow SearchEngines option in non-ESR builds
patch -Np1 -i "${_PATCHES_DIR}/sed-patches/allow-searchengines-non-esr.patch"
# remove search extensions (experimental)
patch -Np1 -i "${_PATCHES_DIR}/search-config.patch"
# stop some undesired requests (https://gitlab.com/librewolf-community/browser/common/-/issues/10)
patch -Np1 -i "${_PATCHES_DIR}/sed-patches/stop-undesired-requests.patch"
# allow overriding the color scheme light/dark preference with RFP
patch -Np1 -i ${_PATCHES_DIR}/allow_dark_preference_with_rfp.patch
# fix an URL in 'about' dialog
patch -Np1 -i ${_PATCHES_DIR}/about-dialog.patch
# change some hardcoded directory strings that could lead to unnecessarily
# created directories
patch -Np1 -i ${_PATCHES_DIR}/mozilla_dirs.patch
# Foxgirl-specific patches
patch -Np1 -i "${_PATCHES_DIR}/urlbar.patch"
patch -Np1 -i "${_PATCHES_DIR}/icons.patch"
patch -Np1 -i "${_PATCHES_DIR}/wordmark.patch"
patch -Np1 -i "${_PATCHES_DIR}/css.patch"
patch -Np1 -i "${_PATCHES_DIR}/defsites.patch"
patch -Np1 -i "${_PATCHES_DIR}/bookmarksbar.patch"
patch -Np1 -i "${_PATCHES_DIR}/smile.patch"
patch -Np1 -i "${_PATCHES_DIR}/strings.patch"
patch -Np1 -i "${_PATCHES_DIR}/view-page-info.patch"
#patch -Np1 -i "${_PATCHES_DIR}/useragent-override.patch"
echo '[]' > browser/components/newtab/data/content/tippytop/top_sites.json
echo '[]' > browser/components/urlbar/content/preloaded-top-urls.json
rm -rf common

View file

@ -6,8 +6,8 @@ set -e
# Setup Script Variables
srcdir=$1;
OUTPUT_TARBALL=$2;
CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../../)}
_SOURCE_CODE_BINARY_TARBALL_LOCATION="${srcdir}/firefox-${pkgver}/obj/dist/librewolf*.tar.bz2";
CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../)}
_SOURCE_CODE_BINARY_TARBALL_LOCATION="${srcdir}/firefox-${pkgver}/obj/dist/foxgirl*.tar.bz2";
_MOZBUILD=$srcdir/../mozbuild
export DEB_BUILD_HARDENING=1
export DEB_BUILD_HARDENING_STACKPROTECTOR=1
@ -16,6 +16,9 @@ export DEB_BUILD_HARDENING_FORMAT=1
export DEB_BUILD_HARDENING_PIE=1
# export PATH=/usr/lib/nasm-mozilla/bin:$PATH
# add cargo binary to path
# source /root/.cargo/env
# we do change / unset some of them later, but setting them as set by Arch
# might make it easier to maintain changes in build scripts on both sides
@ -60,11 +63,10 @@ cd $srcdir;
rm -f mozconfig
# add cargo binary to path
# source /root/.cargo/env
# install cbindgen
cargo install --version 0.15.0 cbindgen
#if [[ "$(/lib/libc.so)" != *"musl libc"* ]]; then
# cargo install --version 0.20.0 cbindgen
#fi
if [[ $CARCH == 'aarch64' ]]; then
@ -90,7 +92,7 @@ echo "Building symbol archive..."
# End "build()" equivalent.
# Packages the build into a binary tarball
printf "\nPackaging LibreWolf\n";
printf "\nPackaging\n";
./mach package;
# Moves the packaged tarball to the specified location

View file

@ -8,11 +8,11 @@ set -e;
BINARY_TARBALL=$1;
TOGGLE_SETTINGS_SCRIPT=$2;
LAUNCHER_SCRIPT=$3;
CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../../)}
CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../)}
_SCRIPT_FOLDER=$(realpath $(dirname $0));
_EXTRACTED_TARBALL_FOLDER=$_SCRIPT_FOLDER/librewolf;
_SETTINGS_COMMIT=2f76ae07f7016034273f1887b7f1bedab997909c
_SETTINGS_REPO='https://gitlab.com/librewolf-community/settings.git';
_EXTRACTED_TARBALL_FOLDER=$_SCRIPT_FOLDER/foxgirl;
_SETTINGS_TAG=${SETTINGS_TAG:-'2.0'}
_SETTINGS_REPO='https://git.sakamoto.pl/domi/foxgirl-settings';
# Extracts the binary tarball
printf "\nExtracting librewolf binary tarball\n";
@ -24,7 +24,7 @@ printf "\nCopying librewolf settings to extracted binary tarball\n";
git clone $_SETTINGS_REPO $_EXTRACTED_TARBALL_FOLDER/settings;
cd $_EXTRACTED_TARBALL_FOLDER/settings
git checkout $_SETTINGS_COMMIT
#git checkout $_SETTINGS_TAG
cd -
# no need to keep that in there:
rm -rf "${_EXTRACTED_TARBALL_FOLDER}/settings/.git";
@ -42,19 +42,19 @@ distini="$_EXTRACTED_TARBALL_FOLDER/distribution/distribution.ini"
install -Dvm644 /dev/stdin "$distini" <<END
[Global]
id=io.gitlab.LibreWolf
id=io.gitlab.librewolf-community
version=1.0
about=LibreWolf
about=Foxgirl
[Preferences]
app.distributor="LibreWolf Community"
app.distributor.channel=librewolf
app.partner.librewolf=librewolf
app.distributor="idk lmao"
app.distributor.channel=foxgirl
app.partner.librewolf=foxgirl
END
# Create Appstream metadate file
export DATE=$(date +%Y-%m-%d)
envsubst < ${_SCRIPT_FOLDER}/../content/io.gitlab.LibreWolf.appdata.xml.in > ${_EXTRACTED_TARBALL_FOLDER}/io.gitlab.LibreWolf.appdata.xml
envsubst < ${_SCRIPT_FOLDER}/../content/io.gitlab.librewolf-community.appdata.xml.in > ${_EXTRACTED_TARBALL_FOLDER}/io.gitlab.librewolf-community.appdata.xml
# Repacks the binary tarball
printf "\nRecompressing binary tarball\n";

View file

@ -1,43 +0,0 @@
# Pipeline
## Triggering
The pipeline can currently only triggered manually. The version and variants to be build need
to be specified via variables:
* **pkgver** is the upstream Firefox release version
* **pkgrel** is the "Arch-style" package version[^1]
* **TARBALL** should a tarball be built (on Ubuntu 16.04 Xenial at the time of writing)
* **ARCH** should an Arch package be built
* **FLATPAK** should a Flatpak be built from a Tarball
* **APPIMAGE** should an AppImage be built from a Tarball
* **AARCH64** build for `aarch64`
* **X86_64** build for `x86_64`
* **TARBALL_URL** provide a tarball download URL for Flatpak or AppImage builds if the tarball is not built in the same pipeline run
Builds can be combined, so a full run for `x86_64` and `aarch64` including Arch releases, tarball build and Appimage and FlatPak releases is possible.
Variables are either unset, or have to be set (to `true`).
### Browser
Pipelines can be manually triggered from https://gitlab.com/librewolf-community/browser/linux/pipelines/new
### Commandline
Triggering from the commandline is possible via curl, but a valid Gitlab token needs to be provided.
The following is an example that only builds the tarball and the Flatpak and AppImage for `x86_64`:
```bash
curl --header "PRIVATE-TOKEN: ${GITLAB_TOKEN}" \
--header "Content-Type: application/json" \
--data '{ "ref": "master", "variables": [ {"key": "TARBALL", "value": "true"}, {"key": "FLATPAK", "value": "true"}, {"key": "APPIMAGE", "value": "true"}, {"key": "pkgver", "value": "74.0"}, {"key": "pkgrel", "value": "3"}, {"key": "X86_64", "value": "true"} ] }' \
"https://gitlab.com/api/v4/projects/12829184/pipeline"
```
[^1]: *The release number. This is usually a positive integer number that allows to differentiate
between consecutive builds of the same version of a package. As fixes and additional features are
added to the PKGBUILD that influence the resulting package, the pkgrel should be incremented by 1.
When a new version of the software is released, this value must be reset to 1.*
https://wiki.archlinux.org/index.php/PKGBUILD#pkgrel