0
Fork 0
mirror of https://codeberg.org/librewolf/source.git synced 2024-12-22 05:33:03 -05:00
LibreWolf - Source Archive
Find a file
Bert van der Weerd a0119f4bec
Updated README.md
2021-12-29 04:37:46 +01:00
assets Finally the xmas.patch has arrived. 2021-12-28 00:55:58 +01:00
patches Finally the xmas.patch has arrived. 2021-12-28 00:55:58 +01:00
scripts Finally the xmas.patch has arrived. 2021-12-28 00:55:58 +01:00
themes/browser/branding/librewolf removed some trash 2021-11-20 07:31:58 +01:00
.gitignore add .gitignore 2021-12-22 15:49:21 +01:00
.gitlab-ci.yml when:manual was not a good idea 2021-11-21 00:49:35 +01:00
LICENSE Add LICENSE 2021-11-19 17:42:30 +00:00
Makefile removed work folder stuff and fixed a regression introduced by the xmas.patch 2021-12-28 01:15:35 +01:00
README.md Updated README.md 2021-12-29 04:37:46 +01:00
version v95.0.2 2021-12-20 04:33:00 +01:00

Building LibreWolf from source:

First, let's download the latest tarball. This tarball is the latest produced by the CI.

To download the latest from a script, use wget/curl like this:

export version=95.0.2 # example
wget -O librewolf-$(version).source.tar.gz https://gitlab.com/librewolf-community/browser/source/-/jobs/artifacts/main/raw/librewolf-$(version).source.tar.gz?job=build-job
curl -L -o librewolf-$(version).source.tar.gz https://gitlab.com/librewolf-community/browser/source/-/jobs/artifacts/main/raw/librewolf-$(version).source.tar.gz?job=build-job

Next, we create ourselves a build folder and extract the tarball.

mkdir build
cd build
tar xf ../librewolf-$(version).source.tar.gz

Next step, if you have not done so already, you must create the build environment:

librewolf-$(version)/lw/mozfetch.sh

It takes about an hour for me to complete, but it needs to be done only once. This step might fail and cause problems. Hack a bit, and if that fails you can ask on our Gitter/matrix channel.

Now we're ready to actually build LibreWolf:

cd librewolf-$(version)
./mach build

Also takes me an hour. Then, we can run it:

./mach run

Or make a package:

./mach package

[dev info] How to use this repo instead of Common:

Since the dawn of time, we have used Common to get patches, source_files, including source_files/{branding}

This source repo supports all that, because it uses these same things to produce the tarball. As far as I can tell, the mapping from Common to Source would be:

With this mapping, I hope that other builders that can't use our tarball (afterMozilla project, weird distro's), still use the same source/patches as the builders that do use it.

Another feature

The file assets/patches.txt defines what patches go in. These are not the only patches a builder will use, weird distro's etc, will use additional patches. those patches can live in the repo of that distro, or in a subfolder here. I hope this gives everybody the freedom to build anyway they please, like in Common, but with the added benefit that we produce a source tarball.

[dev info] Building the LibreWolf source tarball:

Luckly, you don't need the build environment for this. If you don't have write access, just:

git clone https://gitlab.com/librewolf-community/browser/source.git
cd source
make all

If you do have write access, we're first gonna check for a newer version of Firefox:

git clone git@gitlab.com:librewolf-community/browser/source.git
cd source
make check

If there is a new version, it's a good time to git commit and trigger a CI build job.

git commit -am v$(cat version) && git push

To build the source archive:

make all

If you have a working build environment, you can build librewolf with:

make librewolf

This extracts the source, and then tries to ./mach build && ./mach package.