0
Fork 0
mirror of https://codeberg.org/librewolf/source.git synced 2024-12-22 21:53:31 -05:00
LibreWolf/README.md
2022-04-13 14:27:39 +00:00

5.7 KiB
Raw Blame History

LibreWolf Source Repository

This repository contains all the patches and theming that make up LibreWolf, as well as scripts and a Makefile to build LibreWolf. There also is the Settings repo, which contains the LibreWolf prefs.

Active repositories and projects

List of browser build sub projects. These are the locations where people have their repositories and build artifacts.

Currently active build repositories:

  • Arch: Arch Linux
  • Bsys5: deb/rpm for Mint,Fedora,Ubuntu; dmg for MacOS.
  • Debian: bgstack15 version
  • Fedora: bgstack15 version
  • Flatpak: Flatpak
  • Gentoo: Gentoo
  • Linux: Flatpak, AppImage, Arch and other Linux builds of the LibreWolf browser.
  • MacOS: The macOS build of LibreWolf.
  • OpenBSD: OpenBSD page
  • Windows: LibreWolf builds for Windows.

Currently active forks:

LibreWolf build instructions

There currently are two ways to build LibreWolf. You can either use the source tarball or compile directly with this repository.

Building from the Tarball

First, let's download the latest tarball. This tarball is the latest produced by the CI. You can also check the sha256sum of the tarball there.

tar xf <tarball>
cd <folder>

Then, you have to bootstrap your system to be able to build LibreWolf. You only have to do this one time. It is done by running the following commands:

./mach --no-interactive bootstrap --application-choice=browser
./lw/setup-wasi-linux.sh

Finally you can build LibreWolf and then package or run it with the following commands:

./mach build
./mach package
# OR
./mach run

Building with this Repository

First, clone this repository with Git:

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

Next, build the LibreWolf source code with the following command:

make dir

After that, you have to bootstrap your system to be able to build LibreWolf. You only have to do this one time. It is done by running the following command:

make bootstrap

Finally you can build LibreWolf and then package or run it with the following commands:

make build
make package
# OR
make run

Development Notes

How to make a patch

The easiest way to make patches is to go to the LibreWolf source folder:

cd librewolf-$(cat version)
git init
git add <path_to_file_you_changed>
git commit -am initial-commit
git diff > ../mypatch.patch

We have Gitter / Matrix rooms, and on the website we have links to the various issue trackers.

How to create a patch for problems in Mozilla's Bugzilla.

Well, first of all:

Now that you have a patch in LibreWolf, that's not enough to upload to Mozilla. See, Mozilla only accepts patches against Nightly. So here is how to do that:

If you have not done already, create the mozilla-unified folder and build Firefox with it:

hg clone https://hg.mozilla.org/mozilla-unified
cd mozilla-unified
hg update
MOZBUILD_STATE_PATH=$HOME/.mozbuild ./mach --no-interactive bootstrap --application-choice=browser
./mach build
./mach run

If you skipped the previous step, you could ensure that you're up to date with:

cd mozilla-unified
hg pull
hg update

Now you can apply your patch to Nightly:

patch -p1 -i ../mypatch.patch

Now you let Mercurial create the patch:

hg diff > ../my-nightly-patch.patch

And it can be uploaded to Bugzilla.

(copy of Mozilla readme) Now the fun starts

Time to start hacking! You should join us on Matrix, say hello in the Introduction channel, and find a bug to start working on. See the Firefox Contributors Quick Reference to learn how to test your changes, send patches to Mozilla, update your source code locally, and more.

Hey, I'm using a Mac or Windows :(

We understand, life isn't always fair 😺. The same steps as above do apply, you'll just have to walk through the beginning part of the guides for MacOS, Windows. To build on Windows is not very well tested. The cross-compiled Mac .dmg files are also relatively new. It should work, perhaps with the exception of the make setup-wasi step. Help testing with these targets is always welcome.