Building the Live ISO — helloSystem documentation
Building the Live ISO — helloSystem documentation
helloSystem is not a derivative (fork) of FreeBSD (like e.g., GhostBSD), but strives to be “real
FreeBSD” as far as possible. Hence, helloSystem does not build all source code, but relies on
binaries provided by FreeBSD wherever possible.
helloSystem is distributed as an installable Live ISO file. This file gets built by the hello Live ISO
builder.
Continuous builds of the ISO get produced automatically on a continuous integration (CI)
system for each git commit.
However, it is also possible to build the ISO locally, which is especially handy for testing and
development.
A FreeBSD or helloSystem installed on the computer. The FreeBSD version needs to match
the FreeBSD version of the helloSystem ISO being built (e.g., 13.2-RELEASE )
2 GHz dual core processor
4 GiB RAM (system memory)
50 GB of hard-drive space
Either a CD-RW/DVD-RW drive or a USB port for writing the Live media
A fast internet connection
$ sudo pkg install -y pkg git zsync wget bash zip devel/py-xdg librsvg2 ca_root_nss
$ git clone https://github.com/helloSystem/ISO
$ cd ISO
$ sudo ./build.sh hello
Warning
This will overwrite the entire contents of the selected device. Take extra caution when
determining the device name.
For end users, there is the Create Live Media application that can conveniently download and
write Live Media with a graphical user interface.
You can use the cdrecord command line tool to burn Live Media to DVD.
helloSystem is built in a way that makes it trivially easy to apply your own changes to it.
Simply replace hello with the name of one of the supported desktop environments, such as
cinnamon
gnome
kde
openbox
xfce
While the resulting image will be built on the same infrastructure, those will not be helloSystem
builds and are not supported by the project. Still, the community may find them useful.
Customizing the set of packages
To add or remove packages, edit settings/packages.<name> and rebuild the image. Substitute
<name> with hello or one of the desktop environments mentioned above.
Customizing configuration
Configuration is applied using transient packages that get generated on-the-fly from the
contents of the overlays/ directory.
Overlays for the main filesystem are stored in overlays/uzip/<overlay>/files/ . Note that to
be included in a build, the overlay called <overlay> must be listed in settings/overlays.
<name> . Substitute <name> with hello or one of the desktop environments mentioned
above.
For example, a file that is supposed to appear in /usr/local/bin/app on the main filesystem
could be stored in overlays/uzip/hello/files/usr/local/bin/app .
If a file called settings/script.<name> exists, then it will be executed during the build.
Substitute <name> with hello or one of the desktop environments mentioned above. For
building helloSystem, settings/script.hello performs actions such as installing applications
that are not coming from FreeBSD packages, setting the wallpaper, installing fonts that are not
coming from FreeBSD, and so on.