- Shell 81.3%
- NSIS 16.2%
- PowerShell 1.7%
- Python 0.6%
- Dockerfile 0.2%
| .forgejo/workflows | ||
| .vscode | ||
| assets | ||
| src | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .woodpecker.yml | ||
| bsys6 | ||
| bsys6_docker | ||
| LICENSE | ||
| README.md | ||
| TODO | ||
🛠️ bsys6
This repository should make it easy to build LibreWolf and various things around it, via Docker or directly on your system. (Work in Progress, currently used in combination with bsys5)
Setup
- Clone this repository
git clone https://gitlab.com/librewolf-community/browser/bsys6.git - (optional) Add the checked out repository to your
PATHto have thebsys6command available everywhere
Usage
Right now this repository is only meant to be used on a x86_64 Linux system. You
always run ./bsys6, followed by a chain of commands you want to run. The most
important commands are the following, a arrow indicates a dependency to another
command:
flowchart TB
source --> build --> package --> setup & msix & portable & deb & rpm
setup --> nupkg
To view all commands, run ./bsys6 help. Commands can be customized by setting
environment variables, most importantly:
| Environment variable | Description | Possible values (bold is default) |
|---|---|---|
TARGET |
The platform you want to build for. | linux windows |
ARCH |
The architecture that you want to build for. | x86_64 arm64 |
VERSION |
The version of LibreWolf to build. | [latest version] [version tag]. |
WORKDIR |
The directory where the source code should be downloaded to and where the compilation should happen. | ~/.local/share/bsys6/work [any directory] |
SOURCE_TAR |
Optionally, a path to a local source tarball to use instead of downloading the VERSION-tarball from GitLab. |
[any filepath] |
For actually building LibreWolf, there are two options available:
Building with Docker
-
Run
./bsys6_docker <COMMAND>. The available commands can be found above and the resulting artifact will be placed in your current directory.This will automatically download a prebuilt docker image as a build environment. If you want to build the image yourself, run
./bsys6 build_image, optionally with theTARGETenvironment variable set to specify which image you want to build.
Building directly on your system
-
Prepare all the dependencies for your system. You can do that by running
./bsys6 prepare.This step is only supported on Arch and Debian based systems, you will have to install the dependencies manually on other systems. If you want to cross-compile, also already set the
TARGETenvironment variable to the platform you want to target before that to ensure all necessary dependencies are installed. -
Run
./bsys6 <COMMAND>. The available commands can be found above and the resulting artifact will be placed in your current directory.
Development
Structure
| Directory | Contents | Arguments | How to include |
|---|---|---|---|
src/{command}.sh |
Commands that can be run by the user with ./bsys6 {command}. Can export new environment variables. |
Via environment variable | With source |
src/exports/*.sh |
Scripts that export environment variables, but shouldn't be run directly by the user. | Via environment variable | With source |
src/utils/*.sh |
Scripts that don't export environment variables and shouldn't be run directly by the user. | Via environment variable or positional arguments | Run directly |
License
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/.