This commit is contained in:
Bert van der Weerd 2021-02-03 23:53:06 +01:00
parent c998f21117
commit 4f92e73ec4
5 changed files with 346 additions and 0 deletions

53
README2.md Normal file
View file

@ -0,0 +1,53 @@
Just some notes
---------------
To build, one should use the following:
$ time bash build.sh fetch prepare build package
the final .zip is in:
C:\mozilla-source\firefox-85.0\obj-x86_64-pc-mingw32\dist
* problem with old sed. does not recognize -z. using the one from Git might be a work around.
BRANDING: resource files
========================
* build fail on missing stubinstaller (might be a FF bug as it should just take missing
stuff from the nightly branding folder?)
$ mkdir stubinstaller
$ cp bgstub.jpg stubinstaller
$ pwd
/c/mozilla-source/firefox-85.0/browser/branding/librewolf
$
* checking all the different files in nightly and librewolf
$ cd nightly
$ find . | sort > /c/mozilla-source/branding-nightly.txt
$ cd ../librewolf/
$ find . | sort > /c/mozilla-source/branding-librewolf.txt
$ diff branding-nightly.txt branding-librewolf.txt
4a5,6
> ./bgstub.jpg
> ./bgstub_2x.jpg
7a10
> ./content/about-background.png
9,10d11
< ./content/about-logo.svg
< ./content/about-logo@2x.png
14,15d14
< ./content/aboutlogins.svg
< ./content/firefox-wordmark.svg
22,24d20
< ./default22.png
< ./default24.png
< ./default256.png
$

190
build.sh Normal file
View file

@ -0,0 +1,190 @@
# build.sh - build librewolf on windows
# derived from https://gitlab.com/librewolf-community/browser/linux/-/blob/master/PKGBUILD
pkgname=librewolf
_pkgname=LibreWolf
pkgver=85.0
#srcdir=/c/mozilla-source
fetch() {
rm -f firefox-$pkgver.source.tar.xz
wget https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz
rm -rf settings commmon
git clone https://gitlab.com/$pkgname-community/browser/common.git
git clone https://gitlab.com/$pkgname-community/settings.git
rm -f megabar.patch remove_addons.patch unity-menubar.patch
wget https://gitlab.com/librewolf-community/browser/linux/-/raw/master/megabar.patch
wget https://gitlab.com/librewolf-community/browser/linux/-/raw/master/remove_addons.patch
wget https://gitlab.com/librewolf-community/browser/linux/-/raw/master/unity-menubar.patch
}
prepare() {
rm -rf firefox-$pkgver
tar xf firefox-$pkgver.source.tar.xz
cd firefox-$pkgver
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
# as suggested by Mental Outlaw in https://www.youtube.com/watch?v=L2otiFy4ADI
ac_add_options --disable-webrtc
# 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 --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
patch -p1 -i ../remove_addons.patch
patch -p1 -i ../megabar.patch
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'
# FIXME: on windows: the sed.exe in MozBuild is too old, no -z, using the one from Git instead.
mysed='/c/mozilla-source/Git/usr/bin/sed.exe'
$mysed -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 ../common/source_files/mozconfig
cp -r ../common/source_files/* ./
# FIX: on windows: the stubinstaller folder is missing from the librewolf branding folder.
cp -r ../missing_branding_files/stubinstaller browser/branding/librewolf
# just a straight copy for now..
cp ../mozconfig .mozconfig
cd ..
}
build() {
cd firefox-$pkgver
./mach build
cd ..
}
package() {
cd firefox-$pkgver
./mach package
# apply the LibreWolf settings
cp -rv ../settings/* obj-x86_64-pc-mingw32/dist/librewolf
# recreate the zip file..
cd obj-x86_64-pc-mingw32/dist
rm -f librewolf-85.0.en-US.win64.txt librewolf-85.0.en-US.win64.zip
zip -r9 librewolf-85.0.en-US.win64.zip librewolf
cd ../..
cd ..
}
# windows: change $PATH to find all the build tools in .mozbuild
# this might do the trick on macos aswell
export TPATH=$HOME/.mozbuild/clang/bin:$HOME/.mozbuild/cbindgen:$HOME/.mozbuild/node:$HOME/.mozbuild/nasm
export PATH=$TPATH:$PATH
# process commandline arguments and do something
done_something=0
if [[ "$*" == *fetch* ]]; then
fetch
done_something=1
fi
if [[ "$*" == *prepare* ]]; then
prepare
done_something=1
fi
if [[ "$*" == *build* ]]; then
build
done_something=1
fi
if [[ "$*" == *package* ]]; then
package
done_something=1
fi
if (( done_something == 0 )); then
echo "Usage: $0 fetch | prepare | build | package"
fi

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1,61 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
body {
color: white;
}
#label,
#progress_background,
#blurb {
text-align: center;
margin: 20px 30px;
}
#label {
font-size: 40px;
margin-top: 100px;
margin-bottom: 20px;
}
#progress_background {
margin: 0 auto;
width: 60%;
height: 24px;
background-color: white;
}
body.high-contrast #progress_background {
outline: solid;
}
#progress_bar {
margin: 0;
width: 0%;
height: 100%;
background-color: #00AAFF;
}
/* In high contrast mode, fill the entire progress bar with its border. */
body.high-contrast #progress_bar {
/* This border should be the height of progress_background. */
border-top: 24px solid;
box-sizing: border-box;
}
/* This layout doesn't want the header or content text. */
#header, #content {
display: none;
}
#blurb {
font-size: 20px;
}
/* The footer goes in the bottom right corner. */
#footer {
position: fixed;
right: 50px;
bottom: 59px;
}

View file

@ -0,0 +1,42 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
body {
color: white;
}
#header,
#refreshCheckboxContainer,
#refreshButtonContainer {
text-align: center;
margin-left: 40px;
margin-right: 40px;
margin-bottom: 30px;
}
#header {
font-size: 35px;
font-weight: normal;
margin-top: 45px;
}
#refreshCheckbox {
vertical-align: middle;
}
#checkboxLabel {
font-size: 13px;
}
#refreshButton {
padding: 8px 40px;
font-size: 15px;
}
/* The footer goes in the bottom right corner. */
#footer {
position: fixed;
right: 50px;
bottom: 59px;
}