Sun 19 Dec 2021 02:16:46 PM CET
This commit is contained in:
parent
b09e162310
commit
965bc3db05
6 changed files with 0 additions and 1142 deletions
|
|
@ -1,137 +0,0 @@
|
|||
function artifacts_win_details() {
|
||||
|
||||
exe=.exe
|
||||
objdir=obj-x86_64-pc-mingw32/dist/firefox
|
||||
ospkg=win64
|
||||
|
||||
# sanity checks
|
||||
if [ ! -d $objdir ]; then
|
||||
echo "artifacts_win.sh: directory $objdir not found. did you run './build.sh build'?"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
rm -rf ../firefox ../librewolf
|
||||
cp -r $objdir ..
|
||||
|
||||
pushd ..
|
||||
|
||||
mv firefox librewolf
|
||||
# apply the LibreWolf settings
|
||||
cp -rv settings/* librewolf
|
||||
# rename the executable manually
|
||||
pushd librewolf ; mv -v firefox$exe librewolf$exe ; popd
|
||||
# clean garbage files
|
||||
cd librewolf ; rm -rf maintenanceservice* pingsender* firefox.*.xml precomplete removed-files uninstall ; cd ..
|
||||
# copy the windows icon
|
||||
cp -v common/source_files/browser/branding/librewolf/firefox.ico librewolf/librewolf.ico
|
||||
|
||||
# create the final zip/exe artifacts
|
||||
|
||||
rm -f librewolf-$pkgver.en-US.$ospkg.zip
|
||||
zip -qr9 librewolf-$pkgver.en-US.$ospkg.zip librewolf
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# now to try to make the installer
|
||||
rm -f librewolf-$pkgver.en-US.win64-setup.exe tmp.nsi
|
||||
sed "s/pkg_version/$pkgver/g" < artifacts_win.nsi > tmp.nsi
|
||||
makensis-3.01.exe -V1 tmp.nsi
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function artifacts_deb_details() {
|
||||
|
||||
exe=
|
||||
objdir=obj-x86_64-pc-linux-gnu/dist/firefox
|
||||
ospkg=deb
|
||||
|
||||
# sanity checks
|
||||
if [ ! -d $objdir ]; then
|
||||
echo "artifacts_win.sh: directory $objdir not found. did you run './build.sh build'?"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
rm -rf ../firefox ../librewolf
|
||||
cp -r $objdir ..
|
||||
|
||||
pushd ..
|
||||
|
||||
mv firefox librewolf
|
||||
# apply the LibreWolf settings
|
||||
cp -rv settings/* librewolf
|
||||
# rename the executable manually
|
||||
pushd librewolf ; mv -v firefox$exe librewolf$exe ; popd
|
||||
# clean garbage files
|
||||
cd librewolf ; rm -rf maintenanceservice* pingsender* firefox.*.xml precomplete removed-files uninstall ; cd ..
|
||||
# copy the windows icon
|
||||
cp -v common/source_files/browser/branding/librewolf/firefox.ico librewolf/librewolf.ico
|
||||
|
||||
# create the final zip artifact
|
||||
rm -f librewolf-$pkgver.en-US.$ospkg.zip
|
||||
zip -qr9 librewolf-$pkgver.en-US.$ospkg.zip librewolf
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# now to try to make the installer
|
||||
# (create a .deb here)
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function artifacts_rpm_details(){
|
||||
exe=
|
||||
objdir=obj-x86_64-pc-linux-gnu/dist/firefox
|
||||
ospkg=rpm
|
||||
|
||||
# sanity checks
|
||||
if [ ! -d $objdir ]; then
|
||||
echo "artifacts_win.sh: directory $objdir not found. did you run './build.sh build'?"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
rm -rf ../firefox ../librewolf
|
||||
cp -r $objdir ..
|
||||
|
||||
pushd ..
|
||||
|
||||
mv firefox librewolf
|
||||
# apply the LibreWolf settings
|
||||
cp -rv settings/* librewolf
|
||||
# rename the executable manually
|
||||
pushd librewolf ; mv -v firefox$exe librewolf$exe ; popd
|
||||
# clean garbage files
|
||||
cd librewolf ; rm -rf maintenanceservice* pingsender* firefox.*.xml precomplete removed-files ; cd ..
|
||||
|
||||
# linux: copy app icon stuff
|
||||
cp files/register-librewolf files/start-librewolf files/start-librewolf.desktop.in librewolf
|
||||
|
||||
# create the final zip artifact
|
||||
rm -f librewolf-$pkgver.en-US.$ospkg.zip
|
||||
zip -qr9 librewolf-$pkgver.en-US.$ospkg.zip librewolf
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# now to try to make the installer
|
||||
# (create a .rpm here)
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,600 +0,0 @@
|
|||
#!/bin/bash
|
||||
# build.sh - build librewolf on windows
|
||||
# derived from https://gitlab.com/librewolf-community/browser/linux/-/blob/master/PKGBUILD
|
||||
#
|
||||
# This script is set up like a Makefile, it's a list of functions that perform a
|
||||
# certain sub-task, that function can be called as a commandline argument to the script.
|
||||
#
|
||||
|
||||
set -e
|
||||
|
||||
. ./version.sh
|
||||
|
||||
srcdir=firefox-$pkgver
|
||||
|
||||
#
|
||||
# Basic functionality
|
||||
#
|
||||
|
||||
fetch() {
|
||||
echo "fetch: begin."
|
||||
|
||||
# fetch the firefox source.
|
||||
rm -f firefox-$pkgver.source.tar.xz
|
||||
echo "Downloading firefox-$pkgver.source.tar.xz ..."
|
||||
wget -q https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
if [ ! -f firefox-$pkgver.source.tar.xz ]; then exit 1; fi
|
||||
|
||||
echo "fetch: done."
|
||||
}
|
||||
|
||||
|
||||
|
||||
extract() {
|
||||
echo "extract: begin."
|
||||
|
||||
echo "Deleting previous firefox-$pkgver ..."
|
||||
rm -rf firefox-$pkgver
|
||||
|
||||
echo "Extracting firefox-$pkgver.source.tar.xz ..."
|
||||
tar xf firefox-$pkgver.source.tar.xz
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
if [ ! -d firefox-$pkgver ]; then exit 1; fi
|
||||
|
||||
echo "extract: done."
|
||||
}
|
||||
|
||||
. ./mozconfigs.sh
|
||||
|
||||
do_patches() {
|
||||
echo "do_patches: begin. (srcdir=$srcdir)"
|
||||
|
||||
if [ "$srcdir" == "tor-browser" ]; then
|
||||
echo "do_patches: warning: not running do_patches on tor-browser. done."
|
||||
return
|
||||
fi
|
||||
|
||||
if [ ! -d $srcdir ]; then exit 1; fi
|
||||
cd $srcdir
|
||||
|
||||
echo 'Creating mozconfig...'
|
||||
|
||||
if [ "$mozconfig_mode" == "xcompile" ]; then
|
||||
create_mozconfig_xcompile
|
||||
cp -v ../mozconfig .
|
||||
elif [ "$strict" == "strict" ]; then
|
||||
create_mozconfig_strict
|
||||
cp -v ../mozconfig .
|
||||
elif [ "$android" == "android" ]; then
|
||||
create_mozconfig_android
|
||||
cp -v ../mozconfig .
|
||||
else
|
||||
create_mozconfig_default
|
||||
cp -v ../mozconfig .
|
||||
fi
|
||||
|
||||
|
||||
echo 'Copy librewolf branding files...'
|
||||
|
||||
cp -vr ../common/source_files/* ./
|
||||
# new branding stuff
|
||||
cp -v ../files/configure.sh browser/branding/librewolf
|
||||
|
||||
echo 'Applying patches...'
|
||||
|
||||
echo "patch -p1 -i ../common/patches/nightly/context-menu2.patch"
|
||||
patch -p1 -i ../common/patches/nightly/context-menu2.patch
|
||||
echo "patch -p1 -i ../common/patches/remove_addons.patch"
|
||||
patch -p1 -i ../common/patches/remove_addons.patch
|
||||
echo 'patch -p1 -i ../common/patches/nightly/megabar2.patch'
|
||||
patch -p1 -i ../common/patches/nightly/megabar3.patch
|
||||
echo "patch -p1 -i ../patches/mozilla-vpn-ad-proton.patch"
|
||||
patch -p1 -i ../patches/mozilla-vpn-ad-proton.patch
|
||||
|
||||
echo 'GNU sed patches...'
|
||||
|
||||
echo 'patch -p1 -i ../common/patches/sed-patches/allow-searchengines-non-esr.patch'
|
||||
patch -p1 -i ../common/patches/sed-patches/allow-searchengines-non-esr.patch
|
||||
echo 'patch -p1 -i ../common/patches/sed-patches/disable-pocket.patch'
|
||||
patch -p1 -i ../common/patches/sed-patches/disable-pocket.patch
|
||||
echo 'patch -p1 -i ../common/patches/sed-patches/remove-internal-plugin-certs.patch'
|
||||
patch -p1 -i ../common/patches/sed-patches/remove-internal-plugin-certs.patch
|
||||
echo 'patch -p1 -i ../common/patches/sed-patches/stop-undesired-requests.patch'
|
||||
patch -p1 -i ../common/patches/sed-patches/stop-undesired-requests.patch
|
||||
|
||||
echo 'Local patches...'
|
||||
|
||||
# local win10 patches
|
||||
echo 'patch -p1 -i ../patches/browser-confvars.patch'
|
||||
patch -p1 -i ../patches/browser-confvars.patch # not sure about this one yet!
|
||||
|
||||
cd ..
|
||||
echo "do_patches: done."
|
||||
}
|
||||
|
||||
|
||||
|
||||
build() {
|
||||
echo "build: begin."
|
||||
if [ ! -d $srcdir ]; then exit 1; fi
|
||||
cd $srcdir
|
||||
|
||||
./mach build
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
cd ..
|
||||
echo "build: done."
|
||||
}
|
||||
|
||||
|
||||
. ./artifacts_all.sh
|
||||
|
||||
artifacts_win() {
|
||||
echo "artifacts_win: begin."
|
||||
if [ ! -d $srcdir ]; then exit 1; fi
|
||||
cd $srcdir
|
||||
|
||||
./mach package
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
echo ""
|
||||
echo "artifacts_win: Creating final artifacts."
|
||||
echo ""
|
||||
|
||||
artifacts_win_details
|
||||
|
||||
cd ..
|
||||
echo "artifacts_win: done."
|
||||
}
|
||||
|
||||
artifacts_deb()
|
||||
{
|
||||
echo "artifacts_deb: begin."
|
||||
if [ ! -d $srcdir ]; then exit 1; fi
|
||||
cd $srcdir
|
||||
|
||||
./mach package
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
echo ""
|
||||
echo "artifacts_deb: Creating final artifacts."
|
||||
echo ""
|
||||
|
||||
artifacts_deb_details
|
||||
|
||||
cd ..
|
||||
echo "artifacts_deb: done."
|
||||
}
|
||||
|
||||
|
||||
artifacts_rpm()
|
||||
{
|
||||
echo "artifacts_rpm: begin."
|
||||
if [ ! -d $srcdir ]; then exit 1; fi
|
||||
cd $srcdir
|
||||
|
||||
./mach package
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
echo ""
|
||||
echo "artifacts_rpm: Creating final artifacts."
|
||||
echo ""
|
||||
|
||||
artifacts_rpm_details
|
||||
|
||||
cd ..
|
||||
echo "artifacts_rpm: done."
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Dependencies for linux/freebsd.
|
||||
deps_deb() {
|
||||
echo "deps_deb: begin."
|
||||
deps1="python python-dev python3 python3-dev python3-distutils clang pkg-config libpulse-dev gcc"
|
||||
deps2="curl wget nodejs libpango1.0-dev nasm yasm zip m4 libgtk-3-dev libgtk2.0-dev libdbus-glib-1-dev"
|
||||
deps3="libxt-dev python3-pip mercurial automake autoconf libtool m4"
|
||||
apt install -y $deps1
|
||||
apt install -y $deps2
|
||||
apt install -y $deps3
|
||||
echo "deps_deb: done."
|
||||
}
|
||||
|
||||
deps_rpm() {
|
||||
echo "deps_rpm: begin."
|
||||
deps="python3 python3-distutils-extra clang pkg-config gcc curl wget nodejs nasm yasm zip m4 python3-zstandard python-zstandard python-devel python3-devel gtk3-devel llvm gtk2-devel dbus-glib-devel libXt-devel pulseaudio-libs-devel"
|
||||
dnf -y install $deps
|
||||
echo "deps_rpm: done."
|
||||
}
|
||||
|
||||
deps_pkg() {
|
||||
echo "deps_pkg: begin."
|
||||
deps="wget gmake m4 python3 py37-sqlite3 pkgconf llvm node nasm zip unzip yasm"
|
||||
pkg install $deps
|
||||
echo "deps_pkg: done."
|
||||
}
|
||||
|
||||
# these utilities should work everywhere
|
||||
clean() {
|
||||
echo "clean: begin."
|
||||
|
||||
echo "Deleting firefox-${pkgver} ..."
|
||||
rm -rf firefox-$pkgver
|
||||
|
||||
echo "Deleting other cruft ..."
|
||||
rm -rf librewolf
|
||||
rm -f firefox-$pkgver.source.tar.xz
|
||||
rm -f mozconfig
|
||||
rm -f bootstrap.py
|
||||
|
||||
# windows
|
||||
rm -f librewolf-$pkgver.en-US.win64.zip
|
||||
rm -f librewolf-$pkgver.en-US.win64-setup.exe
|
||||
rm -f librewolf-$pkgver.en-US.win64-permissive.zip
|
||||
rm -f librewolf-$pkgver.en-US.win64-permissive-setup.exe
|
||||
rm -f librewolf-$pkgver.en-US.win64-strict.zip
|
||||
rm -f librewolf-$pkgver.en-US.win64-strict-setup.exe
|
||||
rm -f tmp.nsi tmp-permissive.nsi tmp-strict.nsi
|
||||
|
||||
# linux
|
||||
rm -f librewolf-$pkgver.en-US.deb.zip
|
||||
rm -f librewolf-$pkgver.en-US.deb-permissive.zip
|
||||
rm -f librewolf-$pkgver.en-US.deb-strict.zip
|
||||
rm -f librewolf-$pkgver.en-US.rpm.zip
|
||||
rm -f librewolf-$pkgver.en-US.rpm-permissive.zip
|
||||
rm -f librewolf-$pkgver.en-US.rpm-strict.zip
|
||||
|
||||
echo "clean: done."
|
||||
}
|
||||
|
||||
|
||||
rustup() {
|
||||
# rust needs special love: https://www.atechtown.com/install-rust-language-on-debian-10/
|
||||
echo "rustup: begin."
|
||||
curl https://sh.rustup.rs -sSf | sh
|
||||
. "$HOME/.cargo/env"
|
||||
cargo install cbindgen
|
||||
echo "rustup: done."
|
||||
}
|
||||
|
||||
mach_env() {
|
||||
echo "mach_env: begin."
|
||||
if [ ! -d $srcdir ]; then exit 1; fi
|
||||
cd $srcdir
|
||||
./mach create-mach-environment
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
cd ..
|
||||
echo "mach_env: done."
|
||||
}
|
||||
|
||||
git_subs() {
|
||||
echo "git_subs: begin."
|
||||
git submodule update --recursive
|
||||
git submodule foreach git pull origin master
|
||||
git submodule foreach git merge origin master
|
||||
echo "git_subs: done."
|
||||
}
|
||||
|
||||
git_init() {
|
||||
echo "git_init: begin."
|
||||
echo "srcdir = $srcdir"
|
||||
if [ ! -d $srcdir ]; then exit 1; fi
|
||||
cd $srcdir
|
||||
|
||||
echo "Removing old .git folder..."
|
||||
rm -rf .git
|
||||
|
||||
echo "Creating new .git folder..."
|
||||
git init
|
||||
git config core.safecrlf false
|
||||
git config commit.gpgsign false
|
||||
git add -f * .[a-z]*
|
||||
git commit -am 'Initial commit'
|
||||
|
||||
cd ..
|
||||
echo "git_init: done."
|
||||
}
|
||||
|
||||
#
|
||||
# Nightly builds, alternative builds.
|
||||
#
|
||||
|
||||
init_mozilla_unified() {
|
||||
rm -f bootstrap.py
|
||||
wget -q https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py
|
||||
python3 bootstrap.py
|
||||
}
|
||||
set_mozilla_unified() {
|
||||
srcdir=mozilla-unified
|
||||
}
|
||||
reset_mozilla_unified() {
|
||||
echo "reset_mozilla_unified: begin."
|
||||
if [ ! -d mozilla-unified ]; then
|
||||
echo "Error: mozilla-unified folder not found. use init_mozilla_unified() to create one"
|
||||
exit 1;
|
||||
fi
|
||||
cd mozilla-unified
|
||||
|
||||
echo "Resetting mozilla-unified..."
|
||||
hg up -C
|
||||
hg purge
|
||||
echo "Mercurial pull..."
|
||||
hg pull -u
|
||||
|
||||
cd ..
|
||||
echo "reset_mozilla_unified: done."
|
||||
}
|
||||
|
||||
# tor-browser.. (experimental)
|
||||
init_tor_browser() {
|
||||
git clone --no-checkout https://git.torproject.org/tor-browser.git
|
||||
|
||||
cd tor-browser
|
||||
git checkout tor-browser-78.8.0esr-10.0-1
|
||||
git submodule update --recursive
|
||||
patch -p1 -i ../patches/tb-mozconfig-win10.patch
|
||||
cd ..
|
||||
}
|
||||
set_tor_browser() {
|
||||
srcdir=tor-browser
|
||||
}
|
||||
reset_tor_browser() {
|
||||
echo "reset_tor_browser: begin."
|
||||
if [ ! -d tor-browser ]; then
|
||||
echo "Error: tor-browser folder not found. use init_tor_browser() to create one"
|
||||
exit 1;
|
||||
fi
|
||||
cd tor-browser
|
||||
|
||||
echo "Resetting tor-browser..."
|
||||
git reset --hard
|
||||
|
||||
cd ..
|
||||
echo "reset_tor_browser: done."
|
||||
}
|
||||
|
||||
|
||||
|
||||
# cross-compile actions...
|
||||
#
|
||||
# linux_patches - the 'do_patches' for linux->win crosscompile.
|
||||
# linux_artifacts - standard artifact zip file. perhaps a -setup.exe.
|
||||
# setup_deb_root - setup compile environment (root stuff)
|
||||
# setup_deb_user - setup compile environmnet (build user)
|
||||
# setup_rpm_root - setup compile environment (root stuff)
|
||||
# setup_rpm_user - setup compile environmnet (build user)
|
||||
|
||||
. ./linux_xcompile.sh
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# process commandline arguments and do something
|
||||
#
|
||||
|
||||
done_something=0
|
||||
|
||||
|
||||
if [[ "$*" == *linux_patches* ]]; then
|
||||
linux_patches
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *linux_artifacts* ]]; then
|
||||
linux_artifacts
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *setup_deb_root* ]]; then
|
||||
setup_deb_root
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *setup_deb_user* ]]; then
|
||||
setup_deb_user
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *setup_rpm_root* ]]; then
|
||||
setup_rpm_root
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *setup_rpm_user* ]]; then
|
||||
setup_rpm_user
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
|
||||
# android
|
||||
if [[ "$*" == *set_android* ]]; then
|
||||
android=android
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
|
||||
# various administrative actions...
|
||||
|
||||
if [[ "$*" == *init_mozilla_unified* ]]; then
|
||||
init_mozilla_unified
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *set_mozilla_unified* ]]; then
|
||||
set_mozilla_unified
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *reset_mozilla_unified* ]]; then
|
||||
reset_mozilla_unified
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *init_tor_browser* ]]; then
|
||||
init_tor_browser
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *set_tor_browser* ]]; then
|
||||
set_tor_browser
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *reset_tor_browser* ]]; then
|
||||
reset_tor_browser
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
if [[ "$*" == *clean* ]]; then
|
||||
clean
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *all* ]]; then
|
||||
fetch
|
||||
extract
|
||||
do_patches
|
||||
build
|
||||
artifacts_win
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
if [[ "$*" == *git_subs* ]]; then
|
||||
git_subs
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *rustup* ]]; then
|
||||
rustup
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *mach_env* ]]; then
|
||||
mach_env
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
# dependencies on various platforms...
|
||||
|
||||
if [[ "$*" == *deps_deb* ]]; then
|
||||
deps_deb
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *deps_rpm* ]]; then
|
||||
deps_rpm
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *deps_pkg* ]]; then
|
||||
deps_pkg
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
# main building actions...
|
||||
|
||||
if [[ "$*" == *fetch* ]]; then
|
||||
fetch
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *extract* ]]; then
|
||||
extract
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *do_patches* ]]; then
|
||||
do_patches
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *git_init* ]]; then
|
||||
git_init
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *build* ]]; then
|
||||
build
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
# creating the artifacts...
|
||||
|
||||
if [[ "$*" == *artifacts_win* ]]; then
|
||||
artifacts_win
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *artifacts_deb* ]]; then
|
||||
artifacts_deb
|
||||
done_something=1
|
||||
fi
|
||||
if [[ "$*" == *artifacts_rpm* ]]; then
|
||||
artifacts_rpm
|
||||
done_something=1
|
||||
fi
|
||||
|
||||
# by default, give help..
|
||||
if (( done_something == 0 )); then
|
||||
cat << EOF
|
||||
Use: ./build.sh clean | all | [other stuff...]
|
||||
|
||||
fetch - fetch the tarball.
|
||||
extract - extract the tarball.
|
||||
do_patches - create a mozconfig, and patch the source.
|
||||
build - the actual build.
|
||||
|
||||
artifacts_win - apply .cfg, build the zip file and NSIS setup.exe installer.
|
||||
|
||||
# Basic functionality:
|
||||
|
||||
all - build all (fetch extract do_patches build artifacts_win)
|
||||
clean - remove generated cruft.
|
||||
|
||||
# Linux related functions:
|
||||
|
||||
deps_deb - install dependencies with apt.
|
||||
deps_rpm - install dependencies with dnf.
|
||||
deps_pkg - install dependencies with pkg. (experimental)
|
||||
|
||||
artifacts_deb - apply .cfg, create a dist zip file (for debian10).
|
||||
artifacts_rpm - apply .cfg, create a dist zip file (for fedora33).
|
||||
|
||||
# Generic utility functionality:
|
||||
|
||||
mach_env - create mach build environment.
|
||||
rustup - perform a rustup for this user.
|
||||
git_subs - update git submodules.
|
||||
git_init - create .git folder in firefox-$pkgver for creating patches.
|
||||
|
||||
# Cross-compile from linux: (in development)
|
||||
|
||||
linux_patches - the 'do_patches' for linux->win crosscompile.
|
||||
linux_artifacts - standard artifact zip file. perhaps a -setup.exe.
|
||||
setup_deb_root - setup compile environment (root stuff)
|
||||
setup_deb_user - setup compile environmnet (build user)
|
||||
setup_rpm_root - setup compile environment (root stuff)
|
||||
setup_rpm_user - setup compile environmnet (build user)
|
||||
|
||||
# Nightly etc.:
|
||||
|
||||
init_mozilla_unified - use bootstrap.py to grab the latest mozilla-unified.
|
||||
set_mozilla_unified - use mozilla-unified instead of firefox-87.0 source.
|
||||
reset_mozilla_unified - clean mozilla-unified and pull latest git changes.
|
||||
s set_android - attempt andorid build (experimental).
|
||||
|
||||
You can use init_tor_browser, set_tor_browser as above, but it attempts a Tor
|
||||
Browser build instead (esr releases). (experimental) or use set_strict to get
|
||||
a more restricted version (experimental).
|
||||
|
||||
# Installation from linux zip file:
|
||||
|
||||
Copy the zip file in your $HOME folder, then:
|
||||
|
||||
unzip librewolf-*.zip
|
||||
cd librewolf
|
||||
./register-librewolf
|
||||
|
||||
That should give an app icon. You can unzip it elsewhere and it will work.
|
||||
|
||||
# Examples:
|
||||
|
||||
For windows, use:
|
||||
./build.sh fetch extract do_patches build artifacts_win
|
||||
./build.sh all
|
||||
|
||||
For debian, use:
|
||||
sudo ./build.sh deps_deb
|
||||
./build.sh rustup mach_env
|
||||
./build.sh fetch extract do_patches build artifacts_deb
|
||||
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
|
|
@ -1,144 +0,0 @@
|
|||
# Crosscompile on linux (debian,fedora)
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Creating the crosscompile environment on linux
|
||||
#
|
||||
|
||||
|
||||
|
||||
setup_deb_root() {
|
||||
echo "setup_deb_root: begin."
|
||||
|
||||
# (implementation...)
|
||||
|
||||
echo "setup_deb_root: done."
|
||||
}
|
||||
setup_deb_user() {
|
||||
echo "setup_deb_user: begin."
|
||||
|
||||
# (implementation...)
|
||||
|
||||
echo "setup_deb_user: done."
|
||||
}
|
||||
setup_rpm_root() {
|
||||
echo "setup_rpm_root: begin."
|
||||
|
||||
# (implementation...)
|
||||
|
||||
echo "setup_rpm_root: done."
|
||||
}
|
||||
setup_rpm_user() {
|
||||
echo "setup_rpm_user: begin."
|
||||
|
||||
# (implementation...)
|
||||
|
||||
echo "setup_rpm_user: done."
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# linux_patches() and linux_artifacts()
|
||||
#
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
linux_patches() {
|
||||
mozconfig_mode=xcompile
|
||||
do_patches
|
||||
}
|
||||
|
||||
|
||||
|
||||
linux_artifacts_details() {
|
||||
exe=.exe
|
||||
objdir=obj-x86_64-pc-mingw32/dist/firefox
|
||||
ospkg=win64
|
||||
|
||||
# sanity checks
|
||||
if [ ! -d $objdir ]; then
|
||||
echo "artifacts_win.sh: directory $objdir not found. did you run './build.sh build'?"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
rm -rf ../firefox ../librewolf
|
||||
cp -r $objdir ..
|
||||
|
||||
pushd ..
|
||||
|
||||
mv firefox librewolf
|
||||
# apply the LibreWolf settings
|
||||
cp -rv settings/* librewolf
|
||||
# rename the executable manually
|
||||
pushd librewolf ; mv -v firefox$exe librewolf$exe ; popd
|
||||
# clean garbage files
|
||||
cd librewolf ; rm -rf maintenanceservice* pingsender* firefox.*.xml precomplete removed-files ; cd ..
|
||||
|
||||
# windows: copy the windows icon
|
||||
cp -v common/source_files/browser/branding/librewolf/firefox.ico librewolf/librewolf.ico
|
||||
|
||||
# create the final zip artifact
|
||||
rm -f librewolf-$pkgver.en-US.$ospkg.zip
|
||||
zip -qr9 librewolf-$pkgver.en-US.$ospkg.zip librewolf
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# now to try to make the installer
|
||||
rm -f librewolf-$pkgver.en-US.win64-setup.exe tmp.nsi
|
||||
sed "s/pkg_version/$pkgver/g" < artifacts_win.nsi > tmp.nsi
|
||||
makensis-3.01.exe -V1 tmp.nsi
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# patch to permissive config
|
||||
if [ ! -z $permissive ]; then
|
||||
pushd librewolf
|
||||
echo "Applying permissive patches..."
|
||||
patch -p1 -i ../patches/permissive/librewolf-config.patch
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
patch -p1 -i ../patches/permissive/librewolf-policies.patch
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
popd
|
||||
|
||||
# create the final zip artifact
|
||||
rm -f librewolf-$pkgver.en-US.$ospkg-permissive.zip
|
||||
zip -qr9 librewolf-$pkgver.en-US.$ospkg-permissive.zip librewolf
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
# now to try to make the installer
|
||||
rm -f librewolf-$pkgver.en-US.win64-permissive-setup.exe tmp-permissive.nsi
|
||||
sed "s/win64-setup/win64-permissive-setup/g" < tmp.nsi > tmp-permissive.nsi
|
||||
makensis-3.01.exe -V1 tmp-permissive.nsi
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
fi
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
|
||||
linux_artifacts() {
|
||||
echo "linux_artifacts: begin."
|
||||
|
||||
if [ ! -d firefox-$pkgver ]; then exit 1; fi
|
||||
cd firefox-$pkgver
|
||||
|
||||
./mach package
|
||||
if [ $? -ne 0 ]; then exit 1; fi
|
||||
|
||||
echo ""
|
||||
echo "artifacts_win: Creating final artifacts."
|
||||
echo ""
|
||||
|
||||
linux_artifacts_details
|
||||
|
||||
cd ..
|
||||
|
||||
echo "linux_artifacts: done."
|
||||
}
|
||||
|
|
@ -1,236 +0,0 @@
|
|||
create_mozconfig_default() {
|
||||
cat >../mozconfig <<END
|
||||
ac_add_options --enable-application=browser
|
||||
|
||||
# This supposedly speeds up compilation (We test through dogfooding anyway)
|
||||
ac_add_options --disable-tests
|
||||
ac_add_options --disable-debug
|
||||
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --enable-hardening
|
||||
ac_add_options --enable-rust-simd
|
||||
ac_add_options --enable-optimize
|
||||
|
||||
|
||||
# Branding
|
||||
ac_add_options --enable-update-channel=release
|
||||
# theming bugs: ac_add_options --with-app-name=librewolf
|
||||
# theming bugs: ac_add_options --with-app-basename=LibreWolf
|
||||
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
|
||||
#export MOZ_REQUIRE_SIGNING=0
|
||||
|
||||
# Features
|
||||
ac_add_options --disable-crashreporter
|
||||
ac_add_options --disable-updater
|
||||
|
||||
# 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
|
||||
|
||||
# first attempt to fix the win32 vcredist issue results in build errors..
|
||||
#WIN32_REDIST_DIR=$VCINSTALLDIR\redist\x86\Microsoft.VC141.CRT
|
||||
END
|
||||
}
|
||||
|
||||
create_mozconfig_xcompile() {
|
||||
cat >../mozconfig <<END
|
||||
# Crosscompile to windows..
|
||||
|
||||
ac_add_options --enable-application=browser
|
||||
|
||||
# This supposedly speeds up compilation (We test through dogfooding anyway)
|
||||
ac_add_options --disable-tests
|
||||
ac_add_options --disable-debug
|
||||
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --enable-hardening
|
||||
ac_add_options --enable-rust-simd
|
||||
ac_add_options --enable-optimize
|
||||
|
||||
|
||||
# Branding
|
||||
ac_add_options --enable-update-channel=release
|
||||
# theming bugs: ac_add_options --with-app-name=librewolf
|
||||
# theming bugs: ac_add_options --with-app-basename=LibreWolf
|
||||
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
|
||||
export MOZ_REQUIRE_SIGNING=0
|
||||
|
||||
# Features
|
||||
ac_add_options --disable-crashreporter
|
||||
ac_add_options --disable-updater
|
||||
|
||||
# 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
|
||||
|
||||
# first attempt to fix the win32 vcredist issue results in build errors..
|
||||
#WIN32_REDIST_DIR=$VCINSTALLDIR\redist\x86\Microsoft.VC141.CRT
|
||||
END
|
||||
}
|
||||
|
||||
create_mozconfig_strict() {
|
||||
cat >../mozconfig <<END
|
||||
# Balls to the wall edition..
|
||||
ac_add_options --disable-webrtc
|
||||
|
||||
|
||||
ac_add_options --enable-application=browser
|
||||
|
||||
# This supposedly speeds up compilation (We test through dogfooding anyway)
|
||||
ac_add_options --disable-tests
|
||||
ac_add_options --disable-debug
|
||||
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --enable-hardening
|
||||
ac_add_options --enable-rust-simd
|
||||
ac_add_options --enable-optimize
|
||||
|
||||
# Branding
|
||||
ac_add_options --enable-update-channel=release
|
||||
# theming bugs: ac_add_options --with-app-name=librewolf
|
||||
# theming bugs: ac_add_options --with-app-basename=LibreWolf
|
||||
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
|
||||
export MOZ_REQUIRE_SIGNING=0
|
||||
|
||||
# Features
|
||||
ac_add_options --disable-crashreporter
|
||||
ac_add_options --disable-updater
|
||||
|
||||
# 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
|
||||
|
||||
# first attempt to fix the win32 vcredist issue results in build errors..
|
||||
#WIN32_REDIST_DIR=$VCINSTALLDIR\redist\x86\Microsoft.VC141.CRT
|
||||
END
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
create_mozconfig_android() {
|
||||
cat >../mozconfig <<END
|
||||
# Original file is from:
|
||||
# https://raw.githubusercontent.com/Divested-Mobile/Mull/master/MOZCONFIG
|
||||
#
|
||||
# Reference
|
||||
# https://gitweb.torproject.org/user/sysrqb/tor-browser.git/tree/.mozconfig-android
|
||||
# https://gitlab.com/fdroid/fdroiddata/blob/master/metadata/org.mozilla.fennec_fdroid.txt
|
||||
|
||||
|
||||
|
||||
# Build for Android
|
||||
ac_add_options --with-android-min-sdk=16
|
||||
ac_add_options --enable-application=mobile/android
|
||||
ac_add_options --target=arm-linux-androideabi
|
||||
#ac_add_options --target=aarch64-linux-android
|
||||
#ac_add_options --target=x86_64-linux-android
|
||||
|
||||
|
||||
|
||||
|
||||
# Specify paths
|
||||
ac_add_options --with-android-sdk="/home/emy/.mozbuild/android-sdk-linux"
|
||||
ac_add_options --with-android-ndk="/home/emy/.mozbuild/android-ndk-r17b"
|
||||
CC="/home/emy/.mozbuild/clang/bin/clang"
|
||||
CXX="/home/emy/.mozbuild/clang/bin/clang++"
|
||||
|
||||
|
||||
|
||||
|
||||
# Set branding
|
||||
#ac_add_options --with-branding=mobile/android/branding/divestos
|
||||
|
||||
|
||||
# Build tweaks
|
||||
ac_add_options --disable-tests
|
||||
|
||||
|
||||
# Disable malware
|
||||
#ac_add_options --disable-eme
|
||||
ac_add_options --without-google-play-services
|
||||
|
||||
# Disable unneeded extras
|
||||
ac_add_options --disable-updater
|
||||
ac_add_options --disable-crashreporter
|
||||
|
||||
|
||||
# Hardening
|
||||
ac_add_options --enable-hardening
|
||||
|
||||
# Optimize
|
||||
ac_add_options --disable-debug
|
||||
ac_add_options --disable-profiling
|
||||
ac_add_options --disable-rust-debug
|
||||
ac_add_options --enable-optimize
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --enable-strip
|
||||
ac_add_options --enable-rust-simd
|
||||
|
||||
export BUILDING_RELEASE=1
|
||||
export MOZ_DEBUG=
|
||||
export NIGHTLY_BUILD=
|
||||
|
||||
|
||||
#The following options are the only way to fully disable debugging
|
||||
export MOZILLA_OFFICIAL=1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#### ORIGINAL MOZCONFIG #####
|
||||
#ac_add_options --enable-application=browser
|
||||
|
||||
# This supposedly speeds up compilation (We test through dogfooding anyway)
|
||||
ac_add_options --disable-tests
|
||||
ac_add_options --disable-debug
|
||||
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --enable-hardening
|
||||
ac_add_options --enable-rust-simd
|
||||
ac_add_options --enable-optimize
|
||||
|
||||
|
||||
# Branding
|
||||
ac_add_options --enable-update-channel=release
|
||||
# theming bugs: ac_add_options --with-app-name=librewolf
|
||||
# theming bugs: ac_add_options --with-app-basename=LibreWolf
|
||||
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
|
||||
export MOZ_REQUIRE_SIGNING=0
|
||||
|
||||
# Features
|
||||
ac_add_options --disable-crashreporter
|
||||
ac_add_options --disable-updater
|
||||
|
||||
# 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
|
||||
|
||||
END
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
pkgver=88.0.1
|
||||
private_token=$1
|
||||
if [ -z $private_token ]; then
|
||||
echo "Please specify the Gitlab PRIVATE TOKEN on the commandline."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
curl --request POST --header "PRIVATE-TOKEN: ${private_token}" --form "file=@librewolf-${pkgver}.en-US.win64-setup.exe" "https://gitlab.com/api/v4/projects/13852981/uploads"
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
curl --request POST --header "PRIVATE-TOKEN: ${private_token}" --form "file=@librewolf-${pkgver}.en-US.win64.zip" "https://gitlab.com/api/v4/projects/13852981/uploads"
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
curl --request POST --header "PRIVATE-TOKEN: ${private_token}" --form "file=@librewolf-${pkgver}.en-US.win64-permissive-nightly-setup.exe" "https://gitlab.com/api/v4/projects/13852981/uploads"
|
||||
echo ""
|
||||
echo ""
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
pkgver=89.0
|
||||
Loading…
Add table
Reference in a new issue