Galeb
Simple musl-based static distro
Description
Galeb is a distribution of musl/Linux which is inspired by and based on parts of several similar projects, most notably:
stali https://sta.li
suckless core https://core.suckless.org/
Linux From Scratch https://www.linuxfromscratch.org/
and so on.
Concepts
Static linking, as much as possible.
Simplicity. Prefer simple solutions and programs which conform to the Unix philosophy of “programs that do one thing well, work with other programs and handle text streams”.
Avoid following standards blindly, and at the expense of the above.
Prerequisites
To build Galeb from source, you'll need:
Working, reasonably recent GNU/Linux system, with development tools, such as GCC, git, and so on, and some general-purpose tools, such as rsync, xz etc. Preferably rolling release and up-to-date.
Working Internet connection.
Ideally, system supporting UEFI. If you want to install on a BIOS/MBR system, you will need to diverge from the installation steps contained here. See BOOTING.
Dedicated “guest” partition to install to. This could be a partition on your main or secondary hard drive, USB flash… or a partition on a virtual drive in QEMU. Comfortable sizes are:
Partition Size Recommended Type /
~2GB, at least ~5GB is better ext4 /boot
The usual “at least 500MB”1 vfat Necessary free space on host: depends on the distro. Around 15 to 20+GB should be enough.
A day or two of free time (depends on your system's CPU/network speed and your daily schedule).
Disclaimer
Galeb is a distro for advanced users, who know how a Unix-like system is organized internally. I will not be responsible for any damage resulting from not paying attention when needed, lack of will to read documentation, or lack of experience in administering a Unix-like system. You have been warned, so please pay attention, read the documentation, search the Web and avoid sending questions or requests for guidance.
What I will appreciate, and will take into consideration, are patches solving potential issues or adding missing planned functionality.
Installation
See INSTALL.
FAQ
See FAQ.
Known bugs/Errata
x86_64 is assumed. Other architectures are not planned for now, although patches supporting them are welcome.
utmp is nonfunctional as I have been reluctant to include skalibs. That might change in a future version of Galeb.
Once you finish compiling and installing everything, the build scripts won't be fully functional for rebuilding packages from that point on, due to sbase/ubase/9base utilities having only a subset of options of coreutils etc. This is only a concern if you want to customize the initial process and go back and forth. Normally you would want to boot the installed system and use mkpk(8) from that point on. Workaround: uninstall sbase, ubase and 9base.
Running
mkpk info gcc
immediately after installation from bootstrap script gives some errors. This is due to suckless tar having difficulties with tar “type L” archive created by the bootstrap script. Workaround: once the package gcc is added togaleb-mkfiles
(TODO), rebuild GCC from the installed system withmkpk update && mkpk upgrade gcc
.
Screenshots
Changelog
See git log for details.
Thanks
Richard M. Stallman for his work on software liberation.
suckless movement for raising awareness of software bloat.
Rich Felker and others for their work on musl-libc.
Derrick for his work on Musl-LFS, which served as the initial inspiration for Galeb.
All the people not explicitly mentioned here which helped make the programs which are used in Galeb.
License
Licenses for packages, programs and libraries which are a part of Galeb vary and are described in their respective files. License for Galeb installation scripts and utility programs in the main Galeb repository is GPLv3+, and notice given below is related to them (except patches and files from Musl-LFS and other sources, which might be covered by other compatible licenses).
In particular, musl-libc is licensed under the Expat (“MIT”) license.
Galeb - Simple musl-based static distro.
Copyright © 2022-2023 Страхиња Радић
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.