NOTE WELL!!! If you are using a Puppy Linux as the host build system you likely need to first:
mkdir -p firstrib_rootfs
in the directory you want to build KL Fedora in. That's because Puppy uses limited busybox realpath command rather than the full version usually, which results in build failure.
NEW: build_firstrib_rootfs.sh version 800rc1,
updated f_00_fedora_gui build plugin,
NEW facility via addons_f.plug (for finishing off the build; for example fetching numbered addon layers. With suitable added commands could be used, for example to make an iso... whatever).
Read the below for simple build instructions and details:
FirstRib/KL: Bringing EASY but powerful frugal-installable distro building to the masses!
Following on from post of: viewtopic.php?p=95950#p95950
For howto use dnf package manager google tutorials on that or refer: https://dnf.readthedocs.io/
Do the following as root user (the build directory can have any name but must be in a partition that has a Linux format)
1. Download latest build_firstrib_rootfs.sh script to build directory such as /KLF (as root user in a terminal opened there):
Code: Select all
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/build_firstrib_rootfs.sh && chmod +x build_firstrib_rootfs.sh
2. Create a simple text file, let's call it f_00_fedora_gui (filename is unimportant as long as starts with f_), with the following text in it (most all of it is simple package manager install commands so you can easily modify/add to it).
For your convenience a quite complete f_00_fedora_gui is attached; just remove dummy tar:
Code: Select all
# Change XFCE to GNOME below if you want that instead
dnf --nogpgcheck group install XFCE -y
# dnf --nogpgcheck --exclude=kernel* --skip-broken group install XFCE -y # experimental to avoid kernel download:
dnf --nogpgcheck install tar wget leafpad yad sudo rsync gparted chromium xmessage -y
# add user spot and set password for user spot (spot:spot - root user:password is root:root)
useradd -m -G wheel -s /bin/bash spot
printf "spot\nspot" | passwd spot >/dev/null 2>&1
echo '%wheel ALL=(ALL) NOPASSWD: ALL' | (VISUAL="tee -a" visudo) # wheel group override to sudo no password required
# If using 11rox... addon sfs addon we need a symlink to rox stored in /usr/lib/rox directory
# Folder rox stored in /usr/lib so 11rox... addon sfs also works with FR Void Linux and Arch Linux based distros
# No harm including this symlink anyway
ln -s /usr/lib/rox /usr/lib64/rox
#Avoid updating/fetching new kernels/modules later
echo exclude=kernel* redhat-release* >> /etc/dnf/dnf.conf
3. Create a simple text file named exactly as addons_f.plug, which will be sourced immediately the main root filesystem (firstrib_rootfs) is complete. The addons_f.plug can be used for anything you want to finish off your build such as downloading addon sfs files, FirstRib utilities and so on (most all of it is simple wget download commands so you can easily modify/add to it). Expert FR builders could even use it for creating an iso release via suitable extra make iso commands.
For your convenience a relatively complete addons_f.plug is attached (but doesn't make iso)
NOTE WELL: two alternative addons_f.plug files are attached, one that also downloads huge-kernel/00modules and 00firmware to make quickly bootable. Before use you need to remove the end part of name (e.g. _includes_kernel.tar) so ends up always named exactly as: "addons_f.plug". They are NOT actually a tar files
Code: Select all
# Main KL addon containing the likes of gtkdialog, filemnt, UExtract, gxmessage, and more
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/12KL_gtkdialogGTK3filemnt64.sfs
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/initrd-latest.gz -O initrd.gz # FR skeleton initrd.gz
# The following are optional (disclaimer: may be untested or had limited testing so use at own risk like everything else provided by FirstRib/KL build system):
# Roxfiler install (made from Fedora 38 rpm provided by rockedge):
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/11r_rox-filer-2.11-1.x86_64.sfs
# Some useful FR utilities for distro builders
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/wd_grubconfig && chmod +x wd_grubconfig
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/modify_initrd_gz.sh && chmod +x modify_initrd_gz.sh
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/mount_chroot.sh && chmod +x mount_chroot.sh
wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/umount_chroot.sh && chmod +x umount_chroot.sh
# Under-test/optional addons: NOTE WELL: uncomment below wget line(s) to use these
# poorercputemp;From Sofiya
#wget -c https://gitlab.com/firstrib/firstrib/-/raw/master/latest/build_system/14poorercputemp_usrlocalbin-0.2_1.x86_64.sfs -O 14poorercputemp_usrlocalbin-0.2_1.x86_64.sfs
4. Build Fedora Rawhide XFCE with FirstRib build script(!), using command:
Code: Select all
./build_firstrib_rootfs.sh fedora default amd64 f_00_fedora_gui
or, if you don't mind it being slowed down a bit and want a build log, add the following at end of above line: 2>&1 | tee build.log
5. Rename firstrib_rootfs directory to 07firstrib_rootfs:
Code: Select all
mv firstrib_rootfs 07firstrib_rootfs
6. Alongside the initrd.gz, put a KL/Puppy-style huge-kernel vmlinuz, 00modules.sfs, 01firmware.sfs in the build directory (could be called 00zdr... and 01fdr... doesn't matter as long as number part correct). For example, from KL-jam or KL-OT2base iso I think (or, KL-experts, can use non-huge vmlinuz kernel with modified FR initrd, optionally constructed using FRmake_initrd to include boot modules, 00modules.sfs and 01firmware.sfs).
7. Find suitable grub stanza by running script:
Code: Select all
./wd_grubconfig # And set up your grub accordingly ready to boot
9. Reboot into your shiny new Fedora Rawhide GUI distro!
(Default provided addons_f.plug includes auto-inclusion of Rox filemanager addon at the moment)
=================================================================
NOTE: Of course, if small distro size matters to you, then best to use FirstRib/KL build system (using build_firstrib_rootfs.sh) to build a Void Linux based distro since the smallest package manager including distro with that only includes busybox and xbps package manager plus huge-style-kernel vmlinuz, 00modules, 01firmware, skeleton FR initrd in the resulting build, which you can add to yourself via a suitable f_ plugin to produce the likes of KLV-Airedale...
It is also advantageous to always add the small additional KL-modified save2flash scripts (/usr/local/bin/snap-ex, /usr/bin/save2flash, and /usr/bin/snapmergepuppy) to provide convenient save-on-demand FR-RAM2 mode persistence operation: See here for sfs addon that will achieve that save2flash (and gtkdialog and filemnt and more) automatically on reboot: viewtopic.php?p=95988#p95988 (this is included in above build by attached addons_f.plug).
Note well that the above simple text files that control the build, f_00_fedora_gui and addons_f.plug are very short and simple. If you want to understand the simple build process just read them; just simple package manager install and wget fetch commands on the whole.
To see all the Fedora program 'group/template/meta apps' available, in running Fedora, enter command:
Code: Select all
dnf group list --hidden
To see what packages any of these Environment Groups contain, in running Fedora, enter command:
Code: Select all
dnf group info <group name>
For example:
Code: Select all
dnf group info "Sound and Video"
For lots of general information concerning FirstRib boot options and usage, refer to: https://www.tinylinux.info/