Merge branch 'tarball_only' into 'master'
Tarball only See merge request librewolf-community/browser/linux!14
This commit is contained in:
commit
90b3443268
29 changed files with 5 additions and 1728 deletions
104
.gitlab-ci.yml
104
.gitlab-ci.yml
|
|
@ -1,22 +1,13 @@
|
||||||
stages:
|
stages:
|
||||||
- build
|
- build
|
||||||
- paks
|
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
GIT_SUBMODULE_STRATEGY: recursive
|
GIT_SUBMODULE_STRATEGY: recursive
|
||||||
# variables:
|
# variables:
|
||||||
# TARBALL: $TARBALL
|
|
||||||
# ARCH: $ARCH
|
|
||||||
# FLATPAK: $FLATPAK
|
|
||||||
# APPIMAGE: $FLATPAK
|
|
||||||
# pkgver: $PKGVER
|
# pkgver: $PKGVER
|
||||||
# pkgrel: $PKGREL
|
# pkgrel: $PKGREL
|
||||||
# AARCH64: $AARCH64
|
# AARCH64: $AARCH64
|
||||||
# X86_64: $X86_64
|
# 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
|
.carch_aarch64: &carch_aarch64
|
||||||
variables:
|
variables:
|
||||||
|
|
@ -35,52 +26,6 @@ variables:
|
||||||
paths:
|
paths:
|
||||||
- "LibreWolf-${pkgver}-${pkgrel}.${CARCH}.tar.bz2"
|
- "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:
|
tarball_x86_64:
|
||||||
image: ubuntu:16.04
|
image: ubuntu:16.04
|
||||||
tags: [x86_64b]
|
tags: [x86_64b]
|
||||||
|
|
@ -88,7 +33,7 @@ tarball_x86_64:
|
||||||
<<: *tarball_build_config
|
<<: *tarball_build_config
|
||||||
only:
|
only:
|
||||||
variables:
|
variables:
|
||||||
- $TARBALL && $X86_64
|
- $X86_64
|
||||||
|
|
||||||
tarball_aarch64:
|
tarball_aarch64:
|
||||||
image: arm64v8/ubuntu:16.04
|
image: arm64v8/ubuntu:16.04
|
||||||
|
|
@ -97,49 +42,4 @@ tarball_aarch64:
|
||||||
<<: *tarball_build_config
|
<<: *tarball_build_config
|
||||||
only:
|
only:
|
||||||
variables:
|
variables:
|
||||||
- $TARBALL && $AARCH64
|
- $AARCH64
|
||||||
|
|
||||||
flatpak_x86_64:
|
|
||||||
image: ubuntu:16.04
|
|
||||||
tags: [flat_runner]
|
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- .flatpak-builder
|
|
||||||
key: flatpak_x86_64
|
|
||||||
<<: *carch_x86_64
|
|
||||||
<<: *flatpak_config
|
|
||||||
only:
|
|
||||||
variables:
|
|
||||||
- $FLATPAK && $X86_64
|
|
||||||
|
|
||||||
flatpak_aarch64:
|
|
||||||
image: arm64v8/ubuntu:16.04
|
|
||||||
tags: [flat_runner_aarch64]
|
|
||||||
cache:
|
|
||||||
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
|
|
||||||
|
|
|
||||||
3
.gitmodules
vendored
3
.gitmodules
vendored
|
|
@ -1,3 +0,0 @@
|
||||||
[submodule "flatpak/content/shared-submodules"]
|
|
||||||
path = flatpak/content/shared-modules
|
|
||||||
url = https://github.com/flathub/shared-modules.git
|
|
||||||
325
PKGBUILD
325
PKGBUILD
|
|
@ -1,325 +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=85.0.1
|
|
||||||
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
|
|
||||||
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=3feb12464aa81df2f4ff162fce69890614c0ac8f
|
|
||||||
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"
|
|
||||||
"unity-menubar.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"
|
|
||||||
"unity-menubar.patch"
|
|
||||||
arm.patch
|
|
||||||
https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/firefox/build-arm-libopus.patch)
|
|
||||||
|
|
||||||
sha256sums_x86_64=('e98f586aa4d58e7418da41a2d19cd30030d072f86edd24a3fd6f769284287cee'
|
|
||||||
'0b28ba4cc2538b7756cb38945230af52e8c4659b2006262da6f3352345a8bed2'
|
|
||||||
'SKIP'
|
|
||||||
'SKIP'
|
|
||||||
'682bf4bf5d79db0080aa132235a95b25745c8ef944d2a2e1fed985489d894df5'
|
|
||||||
'f2f7403c9abd33a7470a5861e247b488693cf8d7d55c506e7e579396b7bf11e6'
|
|
||||||
'ee302586f5291f809759f5eae3e5bad60b13007d9a9d37ac7f397597eb1d8665')
|
|
||||||
sha256sums_aarch64=('e98f586aa4d58e7418da41a2d19cd30030d072f86edd24a3fd6f769284287cee'
|
|
||||||
'0b28ba4cc2538b7756cb38945230af52e8c4659b2006262da6f3352345a8bed2'
|
|
||||||
'SKIP'
|
|
||||||
'SKIP'
|
|
||||||
'682bf4bf5d79db0080aa132235a95b25745c8ef944d2a2e1fed985489d894df5'
|
|
||||||
'f2f7403c9abd33a7470a5861e247b488693cf8d7d55c506e7e579396b7bf11e6'
|
|
||||||
'ee302586f5291f809759f5eae3e5bad60b13007d9a9d37ac7f397597eb1d8665'
|
|
||||||
'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}-community
|
|
||||||
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"
|
|
||||||
|
|
||||||
# we should have more than enough RAM on the CI spot instances.
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# Debian patch to enable global menubar
|
|
||||||
# disabled until it's updated upstream
|
|
||||||
# also disabled for the default build, as it seems to cause issues in some configurations
|
|
||||||
# patch -p1 -i ../unity-menubar.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
|
|
||||||
|
|
||||||
_settings_services_sed='s#firefox.settings.services.mozilla.com#f.s.s.m.c.qjz9zk#g'
|
|
||||||
|
|
||||||
# stop some undesired requests (https://gitlab.com/librewolf-community/browser/common/-/issues/10)
|
|
||||||
sed "$_settings_services_sed" -i browser/components/newtab/data/content/activity-stream.bundle.js
|
|
||||||
sed "$_settings_services_sed" -i modules/libpref/init/all.js
|
|
||||||
sed "$_settings_services_sed" -i services/settings/Utils.jsm
|
|
||||||
sed "$_settings_services_sed" -i toolkit/components/search/SearchUtils.jsm
|
|
||||||
|
|
||||||
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}-community
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
@ -1,324 +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=85.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
|
|
||||||
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=640b375dc02c5b089f678ed16b0232d1c0cc0721
|
|
||||||
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"
|
|
||||||
"unity-menubar.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"
|
|
||||||
"unity-menubar.patch"
|
|
||||||
arm.patch
|
|
||||||
https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/firefox/build-arm-libopus.patch)
|
|
||||||
|
|
||||||
sha256sums_x86_64=('5f03712642f5e77de4581d2ba3ee3e87cfa44c3d2fdd8fe0fb56ea05a57f7b50'
|
|
||||||
'0b28ba4cc2538b7756cb38945230af52e8c4659b2006262da6f3352345a8bed2'
|
|
||||||
'SKIP'
|
|
||||||
'SKIP'
|
|
||||||
'682bf4bf5d79db0080aa132235a95b25745c8ef944d2a2e1fed985489d894df5'
|
|
||||||
'f2f7403c9abd33a7470a5861e247b488693cf8d7d55c506e7e579396b7bf11e6'
|
|
||||||
'ee302586f5291f809759f5eae3e5bad60b13007d9a9d37ac7f397597eb1d8665')
|
|
||||||
sha256sums_aarch64=('5f03712642f5e77de4581d2ba3ee3e87cfa44c3d2fdd8fe0fb56ea05a57f7b50'
|
|
||||||
'0b28ba4cc2538b7756cb38945230af52e8c4659b2006262da6f3352345a8bed2'
|
|
||||||
'SKIP'
|
|
||||||
'SKIP'
|
|
||||||
'682bf4bf5d79db0080aa132235a95b25745c8ef944d2a2e1fed985489d894df5'
|
|
||||||
'f2f7403c9abd33a7470a5861e247b488693cf8d7d55c506e7e579396b7bf11e6'
|
|
||||||
'ee302586f5291f809759f5eae3e5bad60b13007d9a9d37ac7f397597eb1d8665'
|
|
||||||
'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}-community
|
|
||||||
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"
|
|
||||||
|
|
||||||
# we should have more than enough RAM on the CI spot instances.
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# Debian patch to enable global menubar
|
|
||||||
# disabled until it's updated upstream
|
|
||||||
# patch -p1 -i ../unity-menubar.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
|
|
||||||
|
|
||||||
_settings_services_sed='s#firefox.settings.services.mozilla.com#f.s.s.m.c.qjz9zk#g'
|
|
||||||
|
|
||||||
# stop some undesired requests (https://gitlab.com/librewolf-community/browser/common/-/issues/10)
|
|
||||||
sed "$_settings_services_sed" -i browser/components/newtab/data/content/activity-stream.bundle.js
|
|
||||||
sed "$_settings_services_sed" -i modules/libpref/init/all.js
|
|
||||||
sed "$_settings_services_sed" -i services/settings/Utils.jsm
|
|
||||||
sed "$_settings_services_sed" -i toolkit/components/search/SearchUtils.jsm
|
|
||||||
|
|
||||||
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}-community
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
@ -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;
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
librewolf.png
|
|
||||||
|
|
@ -1,14 +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
|
|
||||||
DEFAULT_XDG_DATA_DIRS='./share/:/usr/share/gnome:/usr/local/share/:/usr/share/'
|
|
||||||
export XDG_DATA_DIRS="${HERE}/usr/share/:${XDG_DATA_DIRS:-$DEFAULT_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}" "$@"
|
|
||||||
|
|
@ -1,25 +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;
|
|
||||||
Actions=new-window;new-private-window;profilemanager;
|
|
||||||
|
|
||||||
[Desktop Action new-window]
|
|
||||||
Name=Open a New Window
|
|
||||||
Exec=librewolf %u
|
|
||||||
|
|
||||||
[Desktop Action new-private-window]
|
|
||||||
Name=Open a New Private Window
|
|
||||||
Exec=librewolf --private-window %u
|
|
||||||
|
|
||||||
[Desktop Action profilemanager]
|
|
||||||
Name=Open the Profile Manager
|
|
||||||
Exec=librewolf --ProfileManager %u
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 13 KiB |
|
|
@ -1,17 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
PKGBUILD_NAME=${PKGBUILD_NAME:-'PKGBUILD'}
|
|
||||||
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 .
|
|
||||||
if [[ ! -z "${GLOBAL_MENUBAR}" ]];then
|
|
||||||
PKGBUILD_NAME='PKGBUILD_global_menubar'
|
|
||||||
fi
|
|
||||||
# makepkg will not run as root
|
|
||||||
sudo -u nobody -E -H makepkg --noconfirm --nosign --syncdeps --cleanbuild -p "${PKGBUILD_NAME}"
|
|
||||||
16
build.sh
16
build.sh
|
|
@ -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;
|
|
||||||
|
|
@ -1,78 +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.38 org.gnome.Sdk/${CARCH}/3.38 org.freedesktop.Platform//19.08 org.freedesktop.Sdk//19.08";
|
|
||||||
_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" ./;
|
|
||||||
|
|
||||||
# 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? => using both for now, just in case...
|
|
||||||
install -Dvm644 "$_FLATPAK_BUILD_SOURCE_FOLDER/librewolf/io.gitlab.LibreWolf.appdata.xml" "$_SCRIPT_FOLDER/source/share/metainfo/io.gitlab.LibreWolf.appdata.xml"
|
|
||||||
install -Dvm644 "$_FLATPAK_BUILD_SOURCE_FOLDER/librewolf/io.gitlab.LibreWolf.appdata.xml" "$_SCRIPT_FOLDER/source/share/appdata/LibreWolf.appdata.xml"
|
|
||||||
|
|
||||||
install -Dvm644 "$_SCRIPT_FOLDER/content/io.gitlab.LibreWolf.desktop" "$_SCRIPT_FOLDER/source/share/applications/LibreWolf.desktop"
|
|
||||||
|
|
||||||
install -Dvm644 "$_FLATPAK_BUILD_SOURCE_FOLDER/librewolf/browser/chrome/icons/default/default128.png" "$_SCRIPT_FOLDER/source/share/icons/hicolor/128x128/apps/io.gitlab.LibreWolf.png"
|
|
||||||
|
|
||||||
flatpak-builder --disable-rofiles-fuse --repo="$FLATPAK_REPO" "$_FLATPAK_BUILD_FOLDER" io.gitlab.LibreWolf.json;
|
|
||||||
|
|
||||||
# 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;
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
[Desktop Entry]
|
|
||||||
Name=LibreWolf
|
|
||||||
Exec=librewolf %u
|
|
||||||
Icon=io.gitlab.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;
|
|
||||||
Actions=new-window;new-private-window;profilemanager;
|
|
||||||
|
|
||||||
[Desktop Action new-window]
|
|
||||||
Name=Open a New Window
|
|
||||||
Exec=librewolf %u
|
|
||||||
|
|
||||||
[Desktop Action new-private-window]
|
|
||||||
Name=Open a New Private Window
|
|
||||||
Exec=librewolf --private-window %u
|
|
||||||
|
|
||||||
[Desktop Action profilemanager]
|
|
||||||
Name=Open the Profile Manager
|
|
||||||
Exec=librewolf --ProfileManager %u
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
||||||
{
|
|
||||||
"app-id": "io.gitlab.LibreWolf",
|
|
||||||
"runtime": "org.gnome.Platform",
|
|
||||||
"runtime-version": "3.38",
|
|
||||||
"sdk": "org.gnome.Sdk",
|
|
||||||
"command": "librewolf",
|
|
||||||
"rename-desktop-file": "LibreWolf.desktop",
|
|
||||||
"rename-appdata-file": "LibreWolf.appdata.xml",
|
|
||||||
"rename-icon": "io.gitlab.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",
|
|
||||||
"mv share/appdata /app/share",
|
|
||||||
"mv share/applications /app/share",
|
|
||||||
"mv share/icons /app/share",
|
|
||||||
"mv share/metainfo /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=wayland",
|
|
||||||
"--socket=fallback-x11",
|
|
||||||
"--socket=pcsc",
|
|
||||||
"--socket=pulseaudio",
|
|
||||||
"--persist=.librewolf",
|
|
||||||
"--persist=.mozilla",
|
|
||||||
"--filesystem=xdg-download:rw",
|
|
||||||
"--device=dri",
|
|
||||||
"--filesystem=~/.config/dconf:ro",
|
|
||||||
"--env=DCONF_USER_CONFIG_DIR=.config/dconf",
|
|
||||||
"--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=session-bus",
|
|
||||||
"--env=MOZ_ENABLE_WAYLAND=1",
|
|
||||||
"--share=network"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 8ce6437c269ef28c49984c11246d27be433c21d5
|
|
||||||
|
|
@ -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 duyệt 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]=Để duyệt 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 duyệt;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]=Cửa sổ mới
|
|
||||||
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]=Cửa sổ riêng tư mới
|
|
||||||
Name[wo]=Panlanteeru biir bu bees
|
|
||||||
Name[xh]=Ifestile yangasese entsha
|
|
||||||
Name[zh_CN]=新建隐私浏览窗口
|
|
||||||
Name[zh_TW]=新增隱私視窗
|
|
||||||
Exec=/usr/lib/librewolf/librewolf --private-window %u
|
|
||||||
|
|
@ -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."
|
|
||||||
}
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
# Config file for prep-librewolf-dpkg.sh
|
|
||||||
# Configure these settings before running that script.
|
|
||||||
|
|
||||||
debian_firefox_version=84.0.2-1 # current version of Firefox package in Debian sid
|
|
||||||
firefox_version=84.0.2 # current version of Firefox
|
|
||||||
|
|
||||||
librewolf_common_url=https://gitlab.com/librewolf-community/browser/common.git
|
|
||||||
librewolf_settings_url=https://gitlab.com/librewolf-community/settings.git
|
|
||||||
librewolf_linux_url=https://gitlab.com/librewolf-community/browser/linux.git
|
|
||||||
|
|
||||||
# user configurable
|
|
||||||
git_source_dir=/home/librewolf/git # where LibreWolf git contents are cached
|
|
||||||
debian_dir=/home/librewolf/${firefox_version}/debian # where the firefox_debian.tar.xz file is extracted
|
|
||||||
source_dir=/home/librewolf/${firefox_version}/librewolf_${firefox_version} # where firefox.orig.tar.xz file is extracted with --strip-components=1
|
|
||||||
work_dir=/home/librewolf/${firefox_version}/
|
|
||||||
|
|
@ -1,260 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
# File: prep-librewolf-dpkg.sh
|
|
||||||
# Location: https://gitlab.com/bgstack15/librewolf-linux.git
|
|
||||||
# Latest supported version: librewolf-84.0.2-2
|
|
||||||
# Author: bgstack15
|
|
||||||
# SPDX-License-Identifier: CC-BY-SA-4.0
|
|
||||||
# Startdate: 2020-11-29
|
|
||||||
# Title: Build Dpkg for LibreWolf
|
|
||||||
# Purpose: Prepare initial assets for running "dpkg-buildpackage -b -us -uc" for LibreWolf by adapting Debian Firefox assets
|
|
||||||
# History:
|
|
||||||
# Usage:
|
|
||||||
# Can send these final assets up to Open Build Service
|
|
||||||
# References:
|
|
||||||
# Script numbers from https://gitlab.com/librewolf-community/browser/linux/-/tree/master/binary_tarball/scripts
|
|
||||||
# Improve:
|
|
||||||
# Make this idempotent. Right now it is very much not.
|
|
||||||
# Dependencies:
|
|
||||||
# wget, git, tar, awk, sed
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Load settings
|
|
||||||
|
|
||||||
# basically, dot-source the conf file.
|
|
||||||
test -z "${librewolf_dpkg_conf}" && export librewolf_dpkg_conf="$( find "$( dirname "${0}" )" -maxdepth 2 -name "$( basename "${0%%.sh}.conf" )" -print 2>/dev/null | head -n1 )"
|
|
||||||
test ! -r "${librewolf_dpkg_conf}" && { echo "Unable to load config file, which should be named the same as this script but with a .conf ending. Aborted." 1>&2 ; exit 1 ; }
|
|
||||||
. "${librewolf_dpkg_conf}"
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Download initial components
|
|
||||||
|
|
||||||
# Download upstream Debian assets, which includes
|
|
||||||
# 1. orig tarball, which in Debian is not always the pristine contents from upstream source
|
|
||||||
# 2. debian/ directory which defines how to build a package for Debian
|
|
||||||
# 3. Debian source package control file
|
|
||||||
mkdir -p "${work_dir}" ; cd "${work_dir}"
|
|
||||||
test -z "${SKIP_DOWNLOAD}" && {
|
|
||||||
wget --content-disposition http://deb.debian.org/debian/pool/main/f/firefox/firefox_"${firefox_version}".orig.tar.xz # -O librewolf_"${firefox_version}".orig.tar.xz
|
|
||||||
wget --content-disposition http://deb.debian.org/debian/pool/main/f/firefox/firefox_"${debian_firefox_version}".debian.tar.xz # -O librewolf_"${debian_firefox_version}".debian.tar.xz
|
|
||||||
wget --content-disposition http://deb.debian.org/debian/pool/main/f/firefox/firefox_"${debian_firefox_version}".dsc # -O librewolf_"${debian_firefox_version}".dsc
|
|
||||||
}
|
|
||||||
|
|
||||||
# extract these contents to where they belong
|
|
||||||
mkdir -p "${source_dir}"
|
|
||||||
test -z "${SKIP_EXTRACT}" && {
|
|
||||||
echo "Extracting files from orig and debian tarballs. This might take a while." 1>&2
|
|
||||||
tar -C "${source_dir}" -Jx --strip-components=1 -f firefox_"${firefox_version}".orig.tar.xz
|
|
||||||
tar -C "$( dirname "${debian_dir}" )" -Jxf firefox_"${debian_firefox_version}".debian.tar.xz
|
|
||||||
# dsc file is a text file and needs no extraction
|
|
||||||
}
|
|
||||||
|
|
||||||
# Download git sources
|
|
||||||
test -z "${SKIP_GIT}" && (
|
|
||||||
# yes, use a sub-shell because of this cd. pushd is a bash builtin, but we are using sh and not bash.
|
|
||||||
cd "${git_source_dir}"
|
|
||||||
git clone "${librewolf_common_url}" common
|
|
||||||
git clone "${librewolf_settings_url}" settings
|
|
||||||
git clone "${librewolf_linux_url}" linux
|
|
||||||
)
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Script 1 tasks
|
|
||||||
|
|
||||||
# update debian/control file
|
|
||||||
# update fields and add libjack-dev
|
|
||||||
sed -i -r "${debian_dir}"/control \
|
|
||||||
-e '/^[[:alpha:]]+: firefox/s/firefox/librewolf/' \
|
|
||||||
-e '/^Package:.*-l10/,$d' \
|
|
||||||
-e '/^Maintainer:/{s/Maintainer:/XSBC-Original-Maintainer:/;iMaintainer: B. Stack <bgstack15@gmail.com>' -e '}' \
|
|
||||||
-e '/^Uploaders:/d' \
|
|
||||||
-e '/libasound2-dev/s/libasound2-dev,/libasound2-dev, libjack-dev,/;' \
|
|
||||||
-e '/^Vcs-/d' \
|
|
||||||
-e '/Breaks:.*xul-ext-torbutton/d' \
|
|
||||||
-e '/Description:/,+8{/Description:/,/^\s*$/d}'
|
|
||||||
cat <<'EOF' >> "${debian_dir}"/control
|
|
||||||
Description: LibreWolf variant of Mozilla Firefox web browser
|
|
||||||
LibreWolf is a build of Firefox that seeks to protect user privacy,
|
|
||||||
security, and freedom.
|
|
||||||
EOF
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Script 2 tasks
|
|
||||||
|
|
||||||
# none. Dependencies are handled by the build environment by interpreting the dsc file.
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Script 3 tasks
|
|
||||||
|
|
||||||
# overlay the orig tarball contents with LibreWolf contents
|
|
||||||
# LibreWolf branding
|
|
||||||
cp -pr "${git_source_dir}"/common/source_files/browser/branding "${source_dir}"/browser/
|
|
||||||
# update mozconfig with needed info
|
|
||||||
sed -i -e '/with-app-name=/d' "${debian_dir}"/browser.mozconfig.in
|
|
||||||
cat <<EOF >> "${debian_dir}"/browser.mozconfig.in
|
|
||||||
|
|
||||||
# Start of LibreWolf effects
|
|
||||||
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
|
|
||||||
|
|
||||||
# Features
|
|
||||||
ac_add_options --enable-jack
|
|
||||||
ac_add_options --disable-crashreporter
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
ac_add_options --disable-elf-hack
|
|
||||||
|
|
||||||
# LibreWolf binary release uses clang-11 but Debian builds Firefox with gcc so this is irrelevant.
|
|
||||||
#export CC='clang-11'
|
|
||||||
#export CXX='clang++-11'
|
|
||||||
#export AR=llvm-ar-11
|
|
||||||
#export NM=llvm-nm-11
|
|
||||||
#export RANLIB=llvm-ranlib-11
|
|
||||||
|
|
||||||
ac_add_options --enable-optimize
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# add patches to debian/patches
|
|
||||||
mkdir -p "${debian_dir}"/patches/librewolf
|
|
||||||
cp -pr "${git_source_dir}"/linux/megabar.patch "${git_source_dir}"/linux/remove_addons.patch \
|
|
||||||
"${git_source_dir}"/linux/deb_patches/*.patch \
|
|
||||||
"${debian_dir}"/patches/librewolf/
|
|
||||||
cat <<EOF >> "${debian_dir}"/patches/series
|
|
||||||
librewolf/lower-python3-requirement.patch -p1
|
|
||||||
librewolf/armhf-reduce-linker-memory-use.patch -p1
|
|
||||||
#librewolf/build-with-libstdc++-7.patch -p1
|
|
||||||
librewolf/fix-armhf-webrtc-build.patch -p1
|
|
||||||
librewolf/webrtc-fix-compiler-flags-for-armhf.patch -p1
|
|
||||||
librewolf/python3-remove-variable-annotations.patch -p1
|
|
||||||
librewolf/python3-remove-fstrings.patch -p1
|
|
||||||
librewolf/python3-remove-pep487.patch -p1
|
|
||||||
librewolf/silence-gtk-style-assertions.patch -p1
|
|
||||||
librewolf/sandbox-update-arm-syscall-numbers.patch -p1
|
|
||||||
librewolf/remove_addons.patch -p1
|
|
||||||
librewolf/megabar.patch -p1
|
|
||||||
EOF
|
|
||||||
# observe that build-with-libstdc++-7 is disabled for this dpkg. Debian builds Firefox with gcc, not clang.
|
|
||||||
# fix some fuzz in remove_addons.patch. The space is important!
|
|
||||||
sed -i -r -e 's/libs /l10n /;' "${debian_dir}"/patches/librewolf/remove_addons.patch
|
|
||||||
|
|
||||||
# additional main LibreWolf activities
|
|
||||||
# disable pocket in source
|
|
||||||
sed -i "/'pocket'/d" "${source_dir}"/browser/components/moz.build
|
|
||||||
sed -i "/SaveToPocket\.init/d" "${source_dir}"/browser/components/BrowserGlue.jsm
|
|
||||||
# Remove internal plugin certificates
|
|
||||||
sed -i -r -e '/organizationalUnit.{0,5}=.{0,5}Mozilla/{N;N;N;d}' "${source_dir}"/toolkit/mozapps/extensions/internal/XPIInstall.jsm
|
|
||||||
# allow SearchEngines option in non-ESR builds
|
|
||||||
sed -i -r -e '/enterprise_only/s#true#false#g;' "${source_dir}"/browser/components/enterprisepolicies/schemas/policies-schema.json
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Script 4 tasks
|
|
||||||
|
|
||||||
sed -i -r -e '2{
|
|
||||||
iexport DEB_BUILD_HARDENING=1
|
|
||||||
;iexport DEB_BUILD_HARDENING_STACKPROTECTOR=1
|
|
||||||
;iexport DEB_BUILD_HARDENING_FORTIFY=1
|
|
||||||
;iexport DEB_BUILD_HARDENING_FORMAT=1
|
|
||||||
;iexport DEB_BUILD_HARDENING_PIE=1
|
|
||||||
;iexport CPP
|
|
||||||
}
|
|
||||||
/^EXPORTS/{
|
|
||||||
iCPPFLAGS += -D_FORTIFY_SOURCE=2
|
|
||||||
;iCFLAGS += -march=x86-64 -mtune=generic -O2 -pipe -fno-plt
|
|
||||||
;iCXXFLAGS += -march=x86-64 -mtune=generic -O2 -pipe -fno-plt
|
|
||||||
;iLDFLAGS += -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now
|
|
||||||
}
|
|
||||||
2{
|
|
||||||
iexport MOZ_NOSPAM=1
|
|
||||||
iexport MACH_USE_SYSTEM_PYTHON=1
|
|
||||||
}
|
|
||||||
' "${debian_dir}"/rules
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Additional steps for dpkg implementation
|
|
||||||
|
|
||||||
# fix the binary name that gets installed in /usr/bin, and disable crash reporter by changing what variable name it looks for that will enable it
|
|
||||||
sed -i -e '/%if browser/,+2s/firefox/librewolf/' \
|
|
||||||
-e '/%if CRASH_REPORTER/s/CRASH_REPORTER/CRASH_REPORTER_ENABLED/' \
|
|
||||||
"${debian_dir}"/browser.install.in
|
|
||||||
|
|
||||||
# instruct dpkg to include the librewolf settings
|
|
||||||
rm -rf "${debian_dir}"/librewolf_settings
|
|
||||||
cp -pr "${git_source_dir}"/settings "${debian_dir}"/librewolf_settings
|
|
||||||
rm -rf "${debian_dir}"/librewolf_settings/.git*
|
|
||||||
cat <<EOF >> "${debian_dir}"/browser.install.in
|
|
||||||
debian/librewolf_settings/librewolf.cfg usr/lib/@browser@
|
|
||||||
debian/librewolf_settings/defaults usr/lib/@browser@
|
|
||||||
debian/librewolf_settings/distribution usr/lib/@browser@
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# add changelog contents for LibreWolf
|
|
||||||
new_changelog="$( mktemp )"
|
|
||||||
{
|
|
||||||
cat <<EOF
|
|
||||||
librewolf (${debian_firefox_version}) unstable; urgency=low
|
|
||||||
|
|
||||||
* Fork to librewolf release
|
|
||||||
|
|
||||||
-- B. Stack <bgstack15@gmail.com> $( date "+%a, %d %b %+4Y %T %z" )
|
|
||||||
|
|
||||||
EOF
|
|
||||||
cat "${debian_dir}"/changelog
|
|
||||||
} > "${new_changelog}"
|
|
||||||
cat "${new_changelog}" > "${debian_dir}"/changelog
|
|
||||||
|
|
||||||
rm -f "${new_changelog:-NOTHINGTODEL}"
|
|
||||||
|
|
||||||
#####################################
|
|
||||||
# Build new assets
|
|
||||||
# dpkg-buildpackage needs the orig tarball, debian tarball, and dsc file.
|
|
||||||
|
|
||||||
echo "Building new tarballs. This might take a while." 1>&2
|
|
||||||
|
|
||||||
# orig tarball
|
|
||||||
cd "${work_dir}"
|
|
||||||
tar -Jc -f librewolf_"${firefox_version}".orig.tar.xz -C "$( dirname "${source_dir}" )" librewolf_"${firefox_version}"
|
|
||||||
|
|
||||||
# debian tarball
|
|
||||||
tar -Jc -f librewolf_"${debian_firefox_version}".debian.tar.xz -C "$( dirname "${debian_dir}" )" debian
|
|
||||||
|
|
||||||
# dsc file, which needs to be modified
|
|
||||||
cd "${work_dir}"
|
|
||||||
sed -r \
|
|
||||||
-e '/^(Files|Checksums-.{0,8}):/,$d' \
|
|
||||||
-e '1,/^Format:/{/^Format:/!{d}}' \
|
|
||||||
-e 's/^([[:alpha:]]+:).* firefox(-l10n[^\s]*)*/\1 librewolf/' \
|
|
||||||
-e '/firefox-l10n/d' \
|
|
||||||
-e '/^Maintainer:/{s/Maintainer:/XSBC-Original-Maintainer:/;iMaintainer: B. Stack <bgstack15@gmail.com>' -e '}' \
|
|
||||||
-e '/^Uploaders:/d' \
|
|
||||||
-e '/libasound2-dev/s/libasound2-dev,/libasound2-dev, libjack-dev,/;' \
|
|
||||||
-e '/^Vcs-/d' \
|
|
||||||
-e '/^ firefox/s/firefox/librewolf/g' \
|
|
||||||
firefox_"${debian_firefox_version}".dsc > librewolf_"${debian_firefox_version}".dsc
|
|
||||||
{
|
|
||||||
echo "Files:"
|
|
||||||
for word in librewolf*z ;
|
|
||||||
do
|
|
||||||
printf "%s %s\n" "$( stat -c '%s' "${word}" )" "$( md5sum "${word}" )"
|
|
||||||
done | awk '{print " "$2,$1,$3}'
|
|
||||||
} >> librewolf_"${debian_firefox_version}".dsc
|
|
||||||
|
|
||||||
# And now you have in the ${work_dir} location three files.
|
|
||||||
# librewolf_80.3.orig.tar.xz librewolf_80.3-1.debian.tar.xz librewolf_80.3-1.dsc
|
|
||||||
|
|
@ -5,7 +5,7 @@ set -e
|
||||||
|
|
||||||
# Setup Script Variables
|
# Setup Script Variables
|
||||||
srcdir=$1;
|
srcdir=$1;
|
||||||
CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../../)}
|
CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../)}
|
||||||
_COMMON_REPO='https://gitlab.com/librewolf-community/browser/common.git';
|
_COMMON_REPO='https://gitlab.com/librewolf-community/browser/common.git';
|
||||||
_MOZBUILD=$srcdir/../mozbuild
|
_MOZBUILD=$srcdir/../mozbuild
|
||||||
|
|
||||||
|
|
@ -6,7 +6,7 @@ set -e
|
||||||
# Setup Script Variables
|
# Setup Script Variables
|
||||||
srcdir=$1;
|
srcdir=$1;
|
||||||
OUTPUT_TARBALL=$2;
|
OUTPUT_TARBALL=$2;
|
||||||
CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../../)}
|
CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../)}
|
||||||
_SOURCE_CODE_BINARY_TARBALL_LOCATION="${srcdir}/firefox-${pkgver}/obj/dist/librewolf*.tar.bz2";
|
_SOURCE_CODE_BINARY_TARBALL_LOCATION="${srcdir}/firefox-${pkgver}/obj/dist/librewolf*.tar.bz2";
|
||||||
_MOZBUILD=$srcdir/../mozbuild
|
_MOZBUILD=$srcdir/../mozbuild
|
||||||
export DEB_BUILD_HARDENING=1
|
export DEB_BUILD_HARDENING=1
|
||||||
|
|
@ -8,7 +8,7 @@ set -e;
|
||||||
BINARY_TARBALL=$1;
|
BINARY_TARBALL=$1;
|
||||||
TOGGLE_SETTINGS_SCRIPT=$2;
|
TOGGLE_SETTINGS_SCRIPT=$2;
|
||||||
LAUNCHER_SCRIPT=$3;
|
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));
|
_SCRIPT_FOLDER=$(realpath $(dirname $0));
|
||||||
_EXTRACTED_TARBALL_FOLDER=$_SCRIPT_FOLDER/librewolf;
|
_EXTRACTED_TARBALL_FOLDER=$_SCRIPT_FOLDER/librewolf;
|
||||||
_SETTINGS_COMMIT=3feb12464aa81df2f4ff162fce69890614c0ac8f
|
_SETTINGS_COMMIT=3feb12464aa81df2f4ff162fce69890614c0ac8f
|
||||||
|
|
@ -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
|
|
||||||
Loading…
Add table
Reference in a new issue