foxgirl-linux/binary_tarball/scripts/3_Configure_Source_Code.sh

111 lines
3.5 KiB
Bash
Raw Normal View History

2020-03-07 19:44:22 +01:00
#!/bin/bash
printf "\n\n------------------------------ FINAL PREBUILD CONFIGURATION ---------------------------------\n";
2019-07-21 07:30:19 +02:00
# Setup Script Variables
2020-03-28 23:18:19 +01:00
srcdir=$1;
CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../../)}
2019-08-17 22:34:48 +02:00
_COMMON_REPO='https://gitlab.com/librewolf-community/browser/common.git';
2020-03-28 23:18:19 +01:00
_MOZBUILD=$srcdir/../mozbuild
mkdir -p ${_MOZBUILD}
2019-07-21 07:30:19 +02:00
# Copy Source Code Changes to Source Code
printf "\nCopying branding and source code changes to firefox source code\n";
2019-08-17 05:32:17 +02:00
git clone $_COMMON_REPO common;
2020-03-28 23:18:19 +01:00
cp -r common/source_files/* $srcdir/;
2019-08-17 05:32:17 +02:00
rm -rf common;
2020-03-28 23:18:19 +01:00
cd $srcdir
2020-03-29 01:27:47 +01:00
cat >${CI_PROJECT_DIR}/mozconfig <<END
ac_add_options --enable-application=browser
2020-03-29 13:34:12 +02:00
# to build on ubuntu and pick up clang
2020-03-29 13:52:56 +02:00
ac_add_options --with-libclang-path="/usr/lib/llvm-9/lib"
2020-03-29 13:34:12 +02:00
ac_add_options --with-clang-path="/usr/bin/clang-9"
2020-03-29 16:52:39 +02:00
# let's see if this works: make things backwards-compatible as much as possible
# TODO: check if this would also work when building on something newer to have it run on
# 16.04/xenial later on as well?
ac_add_options --enable-stdcxx-compat
# This supposedly speeds up compilation (We test through dogfooding anyway)
ac_add_options --disable-tests
ac_add_options --disable-debug
2020-03-29 16:52:39 +02:00
ac_add_options --prefix=/usr
ac_add_options --enable-release
ac_add_options --enable-hardening
ac_add_options --enable-rust-simd
2020-03-29 13:34:12 +02:00
export CC='clang-9'
export CXX='clang++-9'
export AR=llvm-ar-9
export NM=llvm-nm-9
export RANLIB=llvm-ranlib-9
# Branding
ac_add_options --enable-update-channel=release
ac_add_options --with-app-name=librewolf
ac_add_options --with-app-basename=LibreWolf
ac_add_options --with-branding=browser/branding/librewolf
ac_add_options --with-distribution-id=io.gitlab.librewolf
ac_add_options --with-unsigned-addon-scopes=app,system
ac_add_options --allow-addon-sideload
export MOZ_REQUIRE_SIGNING=0
# System libraries
# ac_add_options --with-system-nspr
# ac_add_options --with-system-nss
# Features
ac_add_options --enable-alsa
ac_add_options --enable-jack
ac_add_options --enable-startup-notification
ac_add_options --disable-crashreporter
ac_add_options --disable-gconf
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
2020-03-29 01:27:47 +01:00
cat >>${CI_PROJECT_DIR}/mozconfig <<END
# taken from manjaro build:
ac_add_options --enable-optimize="-g0 -O2"
export MOZ_DEBUG_FLAGS=" "
export CFLAGS+=" -g0"
export CXXFLAGS+=" -g0"
export RUSTFLAGS="-Cdebuginfo=0"
# from ALARM
2020-03-29 16:52:39 +02:00
# See https://bugzilla.mozilla.org/show_bug.cgi?id=1430094
ac_add_options --disable-webrtc
END
LDFLAGS+=" -Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
patch -p1 -i ${$CI_PROJECT_DIR}/arm.patch
wget https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/firefox/build-arm-libopus.patch -O ${$CI_PROJECT_DIR}/build-arm-libopus.patch
patch -p1 -i ${$CI_PROJECT_DIR}/build-arm-libopus.patch
fi
# Disabling Pocket
printf "\nDisabling Pocket\n";
sed -i "s/'pocket'/#'pocket'/g" browser/components/moz.build
# this one only to remove an annoying error message:
sed -i 's#SaveToPocket.init();#// SaveToPocket.init();#g' browser/components/BrowserGlue.jsm
# allow SearchEngines option in non-ESR builds
sed -i 's#"enterprise_only": true,#"enterprise_only": false,#g' browser/components/enterprisepolicies/schemas/policies-schema.json