Compare commits

..

No commits in common. "master" and "v96.0.3-2" have entirely different histories.

8 changed files with 95 additions and 149 deletions

View file

@ -5,28 +5,15 @@ Author: Olivier Tilloy <olivier.tilloy@canonical.com>
--- a/build/moz.configure/toolchain.configure
+++ b/build/moz.configure/toolchain.configure
@@ -1699,6 +1699,7 @@
android_platform,
c_compiler,
developer_options,
+ host,
)
else:
deps = depends_if(
@@ -1709,6 +1710,7 @@
dependable(None),
host_c_compiler,
developer_options,
+ host,
)
@@ -2287,10 +2287,12 @@
set_config("LINKER_KIND", select_linker.KIND)
@deps
@@ -1721,8 +1723,11 @@
android_platform,
c_compiler,
developer_options,
+ host,
):
-@depends_if(select_linker, target, target_sysroot, target_multiarch_dir, c_compiler)
+@depends_if(select_linker, target, target_sysroot, target_multiarch_dir, c_compiler, host)
@imports("os")
-def linker_ldflags(linker, target, sysroot, multiarch_dir, c_compiler):
+def linker_ldflags(linker, target, sysroot, multiarch_dir, c_compiler, host):
flags = list((linker and linker.LINKER_FLAG) or [])
+ if host.cpu == "arm":
+ flags.append("-Wl,--no-keep-memory")

View file

@ -1,17 +0,0 @@
Description: Remove an extra constant definition that is now being generated by newer versions of cbindgen (0.24),
and causing build failures because it is defined in several places.
Author: Olivier Tilloy <olivier.tilloy@canonical.com>
Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1773259
Forwarded: not-needed
--- a/gfx/webrender_bindings/webrender_ffi.h
+++ b/gfx/webrender_bindings/webrender_ffi.h
@@ -73,8 +73,6 @@ struct WrPipelineInfo;
struct WrPipelineIdAndEpoch;
using WrPipelineIdEpochs = nsTArray<WrPipelineIdAndEpoch>;
-const uint64_t ROOT_CLIP_CHAIN = ~0;
-
} // namespace wr
} // namespace mozilla

View file

@ -1,19 +0,0 @@
Description: Fix FTBFS on bionic. Compiler errors:
In file included from Unified_cpp_widget_gtk1.cpp:2:
/<<BUILDDIR>>/firefox-92.0~b2+build1/widget/gtk/WaylandBuffer.cpp:261:39: error: unknown type name 'GLContext'; did you mean 'EGLContext'?
const LayoutDeviceIntSize& aSize, GLContext* aGL) {
^~~~~~~~~
Author: Rico Tzschichholz <ricotz@ubuntu.com>
--- a/widget/gtk/WaylandBuffer.cpp
+++ b/widget/gtk/WaylandBuffer.cpp
@@ -258,7 +258,7 @@
/* static */
RefPtr<WaylandBufferDMABUF> WaylandBufferDMABUF::Create(
- const LayoutDeviceIntSize& aSize, GLContext* aGL) {
+ const LayoutDeviceIntSize& aSize, gl::GLContext* aGL) {
RefPtr<WaylandBufferDMABUF> buffer = new WaylandBufferDMABUF(aSize);
const auto flags =

View file

@ -0,0 +1,35 @@
# Description: Don't pass -mfloat-abi=softfp on armhf
# Author: Chris Coulson <chris.coulson@canonical.com>
# Forwarded: no
--- a/build/gyp.mozbuild
+++ b/build/gyp.mozbuild
@@ -107,9 +107,15 @@ if CONFIG['ARM_ARCH']:
gyp_vars['arm_neon'] = 1
gyp_vars['build_with_neon'] = 1
else:
- # CPU detection for ARM works on Android only. armv7 always uses CPU
- # detection, so we have to set armv7=0 for non-Android target
- gyp_vars['armv7'] = 0
+ gyp_vars['armv7'] = 1
+ # We enable NEON for Ubuntu armhf. Note that these don't really
+ # have any effect here as NEON is hardcoded on in
+ # media/webrtc/trunk/webrtc/build/common.gypi. Disabling these
+ # without fixing that file will result in a link failure, as
+ # targets hidden behind the build_with_neon flag don't get
+ # built but WEBRTC_HAS_NEON is still defined
+ gyp_vars['arm_neon'] = 1
+ gyp_vars['build_with_neon'] = 1
# For libyuv
gyp_vars['arm_version'] = int(CONFIG['ARM_ARCH'])
--- a/third_party/libwebrtc/build/config/compiler/BUILD.gn
+++ b/third_party/libwebrtc/build/config/compiler/BUILD.gn
@@ -590,7 +590,6 @@ config("compiler_cpu_abi") {
if (!is_nacl) {
cflags += [
"-march=$arm_arch",
- "-mfloat-abi=$arm_float_abi",
]
}
if (arm_tune != "") {

View file

@ -8,7 +8,7 @@ _DEPENDENCIES="wget git xvfb \
xz-utils \
gettext-base \
curl python3 libjack-dev \
python3-dev python-dev \
python3-psutil python-psutil python3-dev python-dev \
gnupg \
autotools-dev \
autoconf2.13 \
@ -39,8 +39,7 @@ _DEPENDENCIES="wget git xvfb \
python \
libffi-dev \
nodejs-mozilla \
nasm-mozilla \
locales"
nasm-mozilla"
# cargo \
# rustc \
@ -68,9 +67,6 @@ else
apt-get -y install clang-13 libclang-13-dev
fi
# avoid python parsing files as ascii instead of utf8 and complaining
locale-gen en_US.UTF-8
# we need a more recent rust
# …to test if a fix in 1.57 magically fixes aarch64 hanging
curl https://sh.rustup.rs -o rustup.sh

View file

@ -6,22 +6,22 @@ set -e
# Setup Script Variables
srcdir=$1;
CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../)}
_SOURCE_REPO='https://gitlab.com/librewolf-community/browser/source.git';
_COMMON_REPO='https://gitlab.com/librewolf-community/browser/common.git';
_PKGVER_TAG="v${pkgver}-${pkgrel}"
_SOURCE_TAG=${SOURCE_TAG:-${_PKGVER_TAG}}
_SOURCE_REPO_DIR="${CI_PROJECT_DIR}"/source
_PATCHES_DIR="${_SOURCE_REPO_DIR}"/patches
_COMMON_TAG=${COMMON_TAG:-${_PKGVER_TAG}}
_COMMON_DIR="${CI_PROJECT_DIR}"/common
_PATCHES_DIR="${_COMMON_DIR}"/patches
_MOZBUILD=$srcdir/../mozbuild
mkdir -p ${_MOZBUILD}
# Copy Source Code Changes to Source Code
printf "\nCopying branding and source code changes to firefox source code\n";
git clone $_SOURCE_REPO ${_SOURCE_REPO_DIR}
cd ${_SOURCE_REPO_DIR}
git checkout ${_SOURCE_TAG}
git clone $_COMMON_REPO ${_COMMON_DIR}
cd ${_COMMON_DIR}
git checkout ${_COMMON_TAG}
cd ..
cp -r ${_SOURCE_REPO_DIR}/themes/browser $srcdir/;
cp -r ${_COMMON_DIR}/source_files/browser $srcdir/;
cd $srcdir
@ -47,23 +47,11 @@ ac_add_options --enable-dbus
# Branding
ac_add_options --enable-update-channel=release
ac_add_options --with-app-name=librewolf
# ac_add_options --with-app-basename=LibreWolf
# switch to env vars like in librewolf source repo
# this is in browser/branding/librewolf/configure.sh as well
# so it _should_ already be applied, buuuuut just in case?
export MOZ_APP_NAME=librewolf
export MOZ_APP_BASENAME=LibreWolf
export MOZ_APP_PROFILE=librewolf
export MOZ_APP_VENDOR=LibreWolf
export MOZ_APP_DISPLAYNAME=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-community
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=
# System libraries
# ac_add_options --with-system-nspr
@ -77,11 +65,7 @@ ac_add_options --disable-updater
ac_add_options --disable-tests
# obsoleted?
# TODO: use source/assets/moczonfig in the future
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
# mk_add_options MOZ_CRASHREPORTER=0
# options for ci / weaker build systems
# mk_add_options MOZ_MAKE_FLAGS="-j4"
@ -89,9 +73,6 @@ mk_add_options MOZ_TELEMETRY_REPORTING=0
# required for 95.0 for now, it seems
ac_add_options --without-wasm-sandboxed-libraries
# experimental JXL support
ac_add_options --enable-jxl
END
# allow setting limited resource usage via ENV / CI:
@ -118,6 +99,9 @@ END
export RUSTFLAGS="-Cdebuginfo=0"
export LDFLAGS+=" -Wl,--no-keep-memory -Wl"
# patch -Np1 -i ${_PATCHES_DIR}/arm.patch # not required anymore?
wget https://raw.githubusercontent.com/archlinuxarm/PKGBUILDs/master/extra/firefox/build-arm-libopus.patch -O ${_PATCHES_DIR}/build-arm-libopus.patch
patch -Np1 -i ${_PATCHES_DIR}/build-arm-libopus.patch
else
cat >>${CI_PROJECT_DIR}/mozconfig <<END
@ -139,25 +123,30 @@ END
fi
# hopefully the magic sauce that makes things build on 18.04 and later on work "everywhere":
# hopefully the magic sauce that makes things build on 16.04 and later on work "everywhere":
patch -Np1 -i "${CI_PROJECT_DIR}/deb_patches/armhf-reduce-linker-memory-use.patch"
patch -Np1 -i "${CI_PROJECT_DIR}/deb_patches/webrtc-fix-compiler-flags-for-armhf.patch"
patch -Np1 -i "${CI_PROJECT_DIR}/deb_patches/reduce-rust-debuginfo.patch"
patch -Np1 -i "${CI_PROJECT_DIR}/deb_patches/use-system-icupkg.patch"
# might make the build just a tiny bit cleaner, not really required though
patch -Np1 -i "${CI_PROJECT_DIR}/deb_patches/fix-wayland-build.patch"
# allow enabling JPEG XL in non-nightly browser
patch -Np1 -i ${_PATCHES_DIR}/allow-JXL-in-non-nightly-browser.patch
# Remove some pre-installed addons that might be questionable
patch -Np1 -i ${_PATCHES_DIR}/remove_addons.patch
# Disable (some) megabar functionality
# Adapted from https://github.com/WesleyBranton/userChrome.css-Customizations
patch -Np1 -i ${_PATCHES_DIR}/removed-patches/megabar.patch
# KDE menu and unity menubar. patch order matters.
patch -Np1 -i ${_PATCHES_DIR}/unity_kde/mozilla-kde.patch
patch -Np1 -i ${_PATCHES_DIR}/unity_kde/firefox-kde.patch
patch -Np1 -i ${_PATCHES_DIR}/unity_kde/unity-menubar.patch
# remove mozilla vpn ads
patch -Np1 -i ${_PATCHES_DIR}/mozilla-vpn-ad.patch
# Debian patch to enable global menubar
# if [[ ! -z "${GLOBAL_MENUBAR}" ]];then
# patch -Np1 -i ${_PATCHES_DIR}/unity-menubar.patch
# fi
# experimentally re-included
patch -Np1 -i ${_PATCHES_DIR}/unity-menubar.patch
patch -Np1 -i ${_PATCHES_DIR}/mozilla-kde_after_unity.patch
# Disabling Pocket
printf "\nDisabling Pocket\n";
@ -168,21 +157,23 @@ patch -Np1 -i "${_PATCHES_DIR}/context-menu.patch"
patch -Np1 -i "${_PATCHES_DIR}/urlbarprovider-interventions.patch"
patch -Np1 -i "${_PATCHES_DIR}/unified-extensions-dont-show-recommendations.patch"
# Remove Internal Plugin Certificates
patch -Np1 -i "${_PATCHES_DIR}/sed-patches/remove-internal-plugin-certs.patch"
# allow SearchEngines option in non-ESR builds
patch -Np1 -i "${_PATCHES_DIR}/sed-patches/allow-searchengines-non-esr.patch"
# fix broken(?)/unintended handling of autoconf file loading in flatpak/snap environments
patch -Np1 -i "${_PATCHES_DIR}/flatpak_autoconf.patch"
# remove search extensions (experimental)
# patch -Np1 -i "${_PATCHES_DIR}/search-config.patch"
cp "${_SOURCE_REPO_DIR}/assets/search-config.json" services/settings/dumps/main/search-config.json
cp "${_COMMON_DIR}/source_files/search-config.json" services/settings/dumps/main/search-config.json
# stop some undesired requests (https://gitlab.com/librewolf-community/browser/common/-/issues/10)
patch -Np1 -i "${_PATCHES_DIR}/sed-patches/stop-undesired-requests.patch"
# allow overriding the color scheme light/dark preference with RFP
# deprecated / will be dropped soon
# patch -Np1 -i ${_PATCHES_DIR}/allow_dark_preference_with_rfp.patch
# change some hardcoded directory strings that could lead to unnecessarily
# created directories
patch -Np1 -i ${_PATCHES_DIR}/mozilla_dirs.patch
@ -197,9 +188,6 @@ patch -Np1 -i ${_PATCHES_DIR}/allow-ubo-private-mode.patch
# add custom uBO assets (on first launch only)
patch -Np1 -i ${_PATCHES_DIR}/custom-ubo-assets-bootstrap-location.patch
#
patch -Np1 -i ${_PATCHES_DIR}/faster-package-multi-locale.patch
# ui patches
# remove references to firefox from the settings UI, change text in some of the links,
@ -207,16 +195,7 @@ patch -Np1 -i ${_PATCHES_DIR}/faster-package-multi-locale.patch
patch -Np1 -i ${_PATCHES_DIR}/ui-patches/pref-naming.patch
#
patch -Np1 -i ${_PATCHES_DIR}/ui-patches/handlers.patch
#
patch -Np1 -i ${_PATCHES_DIR}/ui-patches/hide-default-browser.patch
# Add LibreWolf logo to Debugging Page
patch -Np1 -i ${_PATCHES_DIR}/ui-patches/lw-logo-devtools.patch
#
patch -Np1 -i ${_PATCHES_DIR}/ui-patches/privacy-preferences.patch
patch -Np1 -i ${_PATCHES_DIR}/ui-patches/hide-safe-browsing.patch
# remove firefox references in the urlbar, when suggesting opened tabs.
patch -Np1 -i ${_PATCHES_DIR}/ui-patches/remove-branding-urlbar.patch
@ -230,22 +209,13 @@ patch -Np1 -i ${_PATCHES_DIR}/ui-patches/remove-organization-policy-banner.patch
# hide "snippets" section from the home page settings, as it was already locked.
patch -Np1 -i ${_PATCHES_DIR}/ui-patches/remove-snippets-from-home.patch
# add patch to hide website appearance settings
patch -Np1 -i ${_PATCHES_DIR}/ui-patches/website-appearance-ui-rfp.patch
# add warning that sanitizing exceptions are bypassed by the options in History > Clear History when LibreWolf closes > Settings
patch -Np1 -i ${_PATCHES_DIR}/ui-patches/sanitizing-description.patch
# pref pane
patch -Np1 -i ${_PATCHES_DIR}/librewolf-pref-pane.patch
# firefox view
patch -Np1 -i ${_PATCHES_DIR}/ui-patches/firefox-view.patch
# new prefs (view, ubo)
patch -Np1 -i ${_PATCHES_DIR}/librewolf-prefs.patch
# fix telemetry removal, see https://gitlab.com/librewolf-community/browser/linux/-/merge_requests/17, for example
patch -Np1 -i ${_PATCHES_DIR}/disable-data-reporting-at-compile-time.patch
# allows hiding the password manager (from the lw pref pane) / via a pref
patch -Np1 -i ${_PATCHES_DIR}/hide-passwordmgr.patch
rm -rf source
rm -rf common

View file

@ -16,12 +16,6 @@ export DEB_BUILD_HARDENING_FORMAT=1
export DEB_BUILD_HARDENING_PIE=1
# export PATH=/usr/lib/nasm-mozilla/bin:$PATH
# avoid python parsing files as ascii instead of utf8 and complaining
export LANG='en_US.UTF-8'
export LANGUAGE='en_US:en'
export LC_ALL='en_US.UTF-8'
# add cargo binary to path
source /root/.cargo/env
@ -42,7 +36,7 @@ fi
export MOZ_NOSPAM=1
export MOZBUILD_STATE_PATH="${_MOZBUILD}"
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=system
export MACH_USE_SYSTEM_PYTHON=1
if [[ $CARCH == 'aarch64' ]]; then
export MOZ_DEBUG_FLAGS=" "
@ -70,7 +64,7 @@ cd $srcdir;
rm -f mozconfig
# install cbindgen
cargo install --version 0.24.3 cbindgen
cargo install --version 0.20.0 cbindgen
if [[ $CARCH == 'aarch64' ]]; then

View file

@ -11,7 +11,7 @@ LAUNCHER_SCRIPT=$3;
CI_PROJECT_DIR=${CI_PROJECT_DIR:-$(realpath $(dirname $0)/../)}
_SCRIPT_FOLDER=$(realpath $(dirname $0));
_EXTRACTED_TARBALL_FOLDER=$_SCRIPT_FOLDER/librewolf;
_SETTINGS_TAG=${SETTINGS_TAG:-'7.4'}
_SETTINGS_TAG=${SETTINGS_TAG:-'5.4'}
_SETTINGS_REPO='https://gitlab.com/librewolf-community/settings.git';
# Extracts the binary tarball