linux-qubasis
linux oasis port as a qubes template
git clone https://9o.is/git/linux-qubasis.git
README
(2328B)
1 ## About
2
3 This project builds a Linux distro with Ninja and is heavily inspired by Michael Forney's Oasis Linux. Many of the packages are from Oasis Linux as well, but unlike Oasis, the scripts to generate the ninja files were written in Posix Shell and includes a tpl/ directory to define multiple templates. Each template outputs a raw image that can be used with virtual machines.
4
5 I personally built this as a means to create lightweight templates for Qubes OS without XDG, Python, or Bash. All packages in the pkg/ directory are compiled with musl libc and may include patches in a patch/ directory. The ninja specs are generated by gen.sh shell scripts using functions defined in the ninja/functions.sh file.
6
7 ## Getting Started
8
9 You'll need a few host dependencies including:
10 - a system toolchain to compile host dependencies which are used for bootstrapping
11 - a posix shell to run the gen scripts
12 - musl toolchain to cross-compile target dependencies
13 - curl for fetching packages
14 - git for fetching git submodule packages
15 - samurai - a simpler ninja alternative by Michael Forney
16
17
18 Run the configure script to initialize the ninja files. By default, out/ is the build directory and ninja files are saved in out/ninja directory. Then, you can start building with samurai (samu).
19
20 ```
21 ./configure
22 samu
23 ```
24
25 ## Targets
26
27 "build" is the default target. Below are all of the phony targets you can also use.
28
29 - configure: regenerates ninja file for root
30 - sync: syncs/fetches all source files in pkg directory
31 - build-pkgs: build all executables and libraries in pkg directory
32 - build-tpls: build all raw images in tpl directory
33 - build: builds all packages and templates
34 - fspec: generates fspec files in pkg/tpl directories
35 - pkg/{name}/configure: regenerates ninja file for specified package
36 - pkg/{name}/sync: syncs/fetches all source files for specified package
37 - pkg/{name}/build: builds executables and libraries for specified package
38 - pkg/{name}/fspec: generates fspec files for specified package
39 - tpl/{name}/configure: regenerates ninja file for specified template
40 - tpl/{name}/build: builds raw image for specified template
41 - tpl/{name}/fspec: generates fspec files for specified template
42
43 ## Architecture
44 ## Gen API
45 ## Ninja Files Explained
46 - incremental builds
47 ## The Build Directory
48 ## Qubes Users
49 ## Updating