Rebase, squash and merge !7.

changes

changes

changes

changes

changes

addes settings submodule

changes

updates

updates

new version of the readme.md

Update README2.md

changes

Update the text formatting

Update README2.md

Update README2.md

changes

Removed install_script.txt because the profile folder requested here is checked to be Ok.

Updated the readme a bit
This commit is contained in:
Bert van der Weerd 2021-02-03 23:53:06 +01:00 committed by ohfp
parent f560babc69
commit ec10c4e6f5
10 changed files with 411 additions and 15 deletions

8
.gitignore vendored
View file

@ -1,2 +1,6 @@
firefox.exe
librewolf
firefox-*
librewolf-*
megabar.patch
remove_addons.patch
unity-menubar.patch
mozconfig

3
.gitmodules vendored
View file

@ -1,3 +1,6 @@
[submodule "settings"]
path = settings
url = https://gitlab.com/librewolf-community/settings.git
[submodule "common"]
path = common
url = https://gitlab.com/librewolf-community/browser/common.git

View file

@ -1,16 +1,22 @@
# Librewolf Windows
This repository is still a work in progress.
## Instalation/Creation
* clone this repository
* execute the package.ps1 on powershell
But we have a zip file available for testing right now..
This is create a folder *librewolf* on current dir, with subfolder core (its content of the firefox.exe), with Firefox configured with scripts/settings of librewolf.
From that point you can install using the setup.exe or simple execute the ***firefox.exe*** on the core folder.
Download link to the prerelease alpha zip file is [here](https://gitlab.com/librewolf-community/browser/windows/uploads/5e9d436515d315d4e8953f88bf02bd99/librewolf-85.0.en-US.win64.zip).
## Cloning the repo
```powershell
git clone --recursive https://gitlab.com/librewolf-community/browser/windows.git
```
To do:
* Creating an installer.
* Branding issues, include a good icon for librewolf.exe
* Other Branding Issues
* Improve this README.md to contain detailed instructions on how to build.
For now, if you want to attempt to build, this build does require you to:
* First build the mozilla-unified as explained in the mozilla docs, using all the ./mach bootstrap stuff
* You can delete this mozilla-unified thing to save some space (try ./mach run on it just for fun)
* Then clone the windows repo
* cd into it, and build with: **time bash build.sh fetch prepare build package installer_win**
* you can perform each of the build steps individually and the overall script structure follows PKGBULD as used on Archlinux
* This will produce a **librewolf-85.0.en-US.win64.zip** in this windows folder.
### Opensource Licences/Uses
This scripts use and embed [7zip](https://www.7-zip.org/)

61
README2.md Normal file
View file

@ -0,0 +1,61 @@
Just some notes
---------------
Once you have built the entire mozilla-unified with all the mach bootstrap stuff (which will
install the needed binaries in $HOME/.mozbuild), don't forget to copy the entire
C:\Program Files\Git folder to /c/mozilla-source to get a sed.exe that understands the -z option,
and to get sha256sum.exe.
To build, one should use the following command in the checked out windows repo:
$ time bash build.sh fetch prepare build package
the final .zip is in:
C:\mozilla-source\windows
* 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
$
```

219
build.sh Normal file
View file

@ -0,0 +1,219 @@
# 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
fetch() {
rm -f firefox-$pkgver.source.tar.xz
wget https://archive.mozilla.org/pub/firefox/releases/$pkgver/source/firefox-$pkgver.source.tar.xz
# the settings and common submodules should be checked out to allow the build
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'
# on windows: the sed.exe in MozBuild is too old, no -z, using the one from Git instead.
if [ -f '/c/mozilla-build/start-shell.bat' ]; then
mysed='/c/mozilla-source/Git/usr/bin/sed.exe'
if [ ! -f $mysed ]; then
echo 'build.sh: For the build to work, copy "c:\program files\Git" folder into "c:\mozilla-source".'
exit
fi
else
$mysed='sed'
fi
$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
cp -r ../common/source_files/* ./
# FIXME: this 'mozconfig' file in the 'common' submodule should be removed
# this submodule is purely for the branding.
rm -f mozconfig
# FIXME: on windows: the stubinstaller folder is missing from the librewolf branding folder.
# this might be a bug in FF however as it seems to take missing branding resources from
# the nightly branding. We probably want this stuff merged into the 'common' submodule.
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
cd ..
}
installer_win() {
cd firefox-$pkgver
# 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-$pkgver.en-US.win64.txt librewolf-$pkgver.en-US.win64.zip
zip -r9 librewolf-$pkgver.en-US.win64.zip librewolf
/c/mozilla-source/Git/usr/bin/sha256sum.exe librewolf-$pkgver.en-US.win64.zip > librewolf-$pkgver.en-US.win64.zip.sha256sum
rm -f ../../../librewolf-$pkgver.en-US.win64.zip*
cp librewolf-$pkgver.en-US.win64.zip* ../../..
cd ../..
cd ..
}
installer_macos() {
cd firefox-$pkgver
# TODO: we want to apply the librewolf settings and make the .dmg file here.
echo 'build.sh: installer_macos() Not implemented yet.'
cd ..
}
# windows: change $PATH to find all the build tools in .mozbuild
# this might do the trick on macos aswell?
if [ -f '/c/mozilla-build/start-shell.bat' ]; then
export TPATH=$HOME/.mozbuild/clang/bin:$HOME/.mozbuild/cbindgen:$HOME/.mozbuild/node:$HOME/.mozbuild/nasm
export PATH=$TPATH:$PATH
fi
# 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 [[ "$*" == *installer_win* ]]; then
installer_win
done_something=1
fi
if [[ "$*" == *installer_macos* ]]; then
installer_macos
done_something=1
fi
if (( done_something == 0 )); then
echo "Usage: $0 fetch | prepare | build | package | installer_win | installer_mac"
exit
fi

1
common Submodule

@ -0,0 +1 @@
Subproject commit 9995c8b275e2a06db3e0b24974b302a63791fc24

View file

@ -1 +0,0 @@
#C:\Users\<username>\AppData\Roaming\LibreWolf\Profiles\xxxxxxxx.default

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;
}