💾 Archived View for gemini.strahinja.org › galeb captured on 2023-04-19 at 22:20:57. Gemini links have been rewritten to link to archived content
View Raw
More Information
⬅️ Previous capture (2023-01-29)
➡️ Next capture (2023-04-26)
🚧 View Differences
-=-=-=-=-=-=-
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:
- morpheus https://git.2f30.org/morpheus/log.html
https://git.2f30.org/morpheus/log.html
https://sta.li
- suckless core https://core.suckless.org/
https://core.suckless.org/
- Linux From Scratch https://www.linuxfromscratch.org/
https://www.linuxfromscratch.org/
- Musl-LFS https://github.com/dslm4515/Musl-LFS/
https://github.com/dslm4515/Musl-LFS/
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.
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.
INSTALL
FAQ
See FAQ.
FAQ
Known bugs/Errata
- x86_64 is assumed. Other architectures are not planned for now, although patches supporting them are welcome.
- Ethernet connection is assumed. wpa_supplicant is included in the build script, as well as the needed libnl, but both are commented out. It has dbus stripped out, and I haven't been able to test how well it would behave. Use at your own risk. You will have to create a service file for svc(8) as well. Adding support for wireless is planned for a future update to Galeb, and it will likely include the support for Christoph Lohmann's conn, rfkilld, nldev and nlmon.
Christoph Lohmann's
- 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 to galeb-mkfiles (TODO), rebuild GCC from the installed system with mkpk update && mkpk upgrade gcc.
Screenshots
Galeb 2.1 booting
Service management
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.
Derrick
- 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 copy 2022 Страхиња Радић
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/.
https://www.gnu.org/licenses/
Generated by slw2gmi © 2021, 2022 Strahinya Radich.
————————————————————
1. I've seen various amounts recommended, usually from ~200MB to ~300MB, but if you are multi-booting, that limit can easily be hit.