galeb

Једноставна статичка дистрибуција заснована на musl-у
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување e59b45d35732a24219bbdf9a6e2321dbaa9744ca
родитељ 805792d23bf68337bb0477a5694eb84625eddb8b
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Sat, 13 Aug 2022 20:52:24 +0200

Add information about boot image to BOOTING; INSTALL: New file; finish mkbootimage

Signed-off-by: Страхиња Радић <contact@strahinja.org>

Diffstat:
M.gitignore | 2++
M01-cross.sh | 12++++++------
M02-chroot.sh | 9+++++++++
M03-packages.sh | 169+++++++++++++++++++++++++++++++++++++++----------------------------------------
M04-finale.sh | 8++++----
A05-mkbootimage.sh | 44++++++++++++++++++++++++++++++++++++++++++++
MBOOTING | 58+++++++++++++++++++++++++++++++++++++++++++++++++++++++---
AINSTALL | 17+++++++++++++++++
MTODO | 9++++-----
Mfil/man/man8/galeb.8 | 1+
Mfil/rc.d/rc.conf | 2++
Mfil/rc.d/rc.init | 1+
Mfil/rc.d/rc.shutdown | 1+
Mlib/createdirs | 14++++++++++++--
Mlib/env.sh | 1+
Mlib/fun.sh | 2+-
Dlib/mkbootimage | 40----------------------------------------
Mlib/perms.tsv | 10+++++++++-
Mlib/pkgs.tsv | 6++++--
Mlib/setperms | 4++--
Mlib/symlinks.tsv | 3+++
измењених датотека: 21, додавања: 261(+), брисања: 152(-)

diff --git a/.gitignore b/.gitignore @@ -6,6 +6,8 @@ *.bak *.err *.orig +*.raw +*.raw.xz *.rej *.swp *.session diff --git a/01-cross.sh b/01-cross.sh @@ -42,7 +42,7 @@ check_dir ${TL}/bin check_dir ${TL}/lib check_dir ${G_SPKG} -check_dir ${G_SPKG}/X +#check_dir ${G_SPKG}/X msg info "Creating directories" ./lib/createdirs 01-cross.sh || exit 1 @@ -51,8 +51,8 @@ msg info "Creating symlinks" ./lib/createlinks 01-cross.sh || exit 1 cat <<! >${GR}/etc/fstab -/dev/sda2 / ext4 rw,relatime 0 1 -/dev/sda1 /boot vfat rw,relatime,fmask=0133,dmask=0022,errors=remount-ro 0 2 +${USBROOT} / ext4 rw,relatime 0 1 +${USBESP} /boot vfat rw,relatime,fmask=0133,dmask=0022,errors=remount-ro 0 2 ! if [ ! -e /${CTD} ] && [ ! -e /${TLD} ]; then @@ -108,8 +108,8 @@ done <${WD}/lib/pkgs.tsv echo unset lineno totallines -msg info "Regenerating SHA sums" -(cd ${WD}; ${WD}/lib/gensums) +# msg info "Regenerating SHA sums" +# (cd ${WD}; ${WD}/lib/gensums) begin_substep linux-5.17.13 "Linux headers" if [ -e ${CT}/${G_TARGET}/include/linux/stddef.h ]; then @@ -354,7 +354,7 @@ end_step # cross-tools begin_step tools -totalsubsteps=28 +totalsubsteps=29 substep=1 begin_substep musl-1.2.3 diff --git a/02-chroot.sh b/02-chroot.sh @@ -191,3 +191,12 @@ msg info "Cleaning up" ./lib/rmfiles 02-chroot.sh-end mv_or_fail ${GR}/etc/profile.final ${GR}/etc/profile + +msg query "Run 05-mkbootimage.sh to generate a boot image [y/N]? " +read -r run_mkbootimage +case "${run_mkbootimage}" in + y|Y) ;; + *) exit;; +esac + +./05-mkbootimage.sh diff --git a/03-packages.sh b/03-packages.sh @@ -25,7 +25,7 @@ fi export JN=-j1 -totalsteps=3 +totalsteps=2 step=1 msg info "Creating symlinks" @@ -33,7 +33,7 @@ msg info "Creating symlinks" begin_step "packages" -totalsubsteps=100 +totalsubsteps=128 substep=1 msg info "Creating temporary links" @@ -4021,14 +4021,14 @@ timestamp=$(date +'%Y-%m-%d %T') printf "%s\t%s\t%s\n" reflex 20210808 "${timestamp}" >>${G_PKGDB} end_substep -begin_substep table-0.6.3 +begin_substep table-0.6.4 if [ -x /bin/table ]; then msg info "%s exists, skipping %s" /bin/table ${pkg} elif [ -e ${G_SPKG}/${pkg}.tar.xz ]; then unpack_pkg ${pkg} / else remove_dir ${G_SRC}/${pkg} - extract_pkg ${G_SRC} table-v0.6.3 ${pkg}.tar.gz ${pkg} + extract_pkg ${G_SRC} table-v0.6.4 ${pkg}.tar.gz ${pkg} ( cd_or_fail ${G_SRC}/${pkg} @@ -4059,7 +4059,7 @@ mkpk_install() ) || exit 1 fi timestamp=$(date +'%Y-%m-%d %T') -printf "%s\t%s\t%s\n" table 0.6.3 "${timestamp}" >>${G_PKGDB} +printf "%s\t%s\t%s\n" table 0.6.4 "${timestamp}" >>${G_PKGDB} end_substep # Needed for PRoot @@ -6184,87 +6184,84 @@ end_substep # fi # end_substep -# rsync is not needed for boot image - better to use mkpk mkfiles later on # Needed for rsync -# https://github.com/Cyan4973/xxHash/archive/refs/tags/v0.8.1.tar.gz xxhash-0.8.1.tar.gz 12feedd6a1859ef55e27218dbd6dcceccbb5a4da34cd80240d2f7d44cd246c7afdeb59830c2d5b90189bb5159293532208bf5bb622250102e12d6e1bad14a193 -# begin_substep xxhash-0.8.1 -# if [ -x /sucks/lib/libxxhash.so.0.8.1 ]; then -# msg info "%s exists, skipping %s" /sucks/lib/libxxhash.so.0.8.1 ${pkg} -# elif [ -e ${G_SPKG}/${pkg}.tar.xz ]; then -# unpack_pkg ${pkg} / -# else -# extract_pkg ${G_SRC} xxHash-0.8.1 ${pkg}.tar.gz ${pkg} -# ( -# cd_or_fail ${G_SRC}/${pkg} -# -# cat <<! >MKPK -# mkpk_name() -# { -# printf "%s" "${pkg}" -# } -# -# mkpk_install() -# { -# CFLAGS='-Os -pipe' -# LDFLAGS='-s' -# PREFIX=/sucks -# DESTDIR=/build -# SED=/${TLD}/bin/sed -# export CFLAGS LDFLAGS PREFIX DESTDIR SED -# -# make ${JN} PREFIX=\${PREFIX} DESTDIR=\${DESTDIR} SED=\${SED} \\ -# -C . install || exit 1 -# } -# ! -# mkpk ${pkg} -# remove_dir ${G_SRC}/${pkg} -# unpack_pkg ${pkg} / -# ) || exit 1 -# fi -# timestamp=$(date +'%Y-%m-%d %T') -# printf "%s\t%s\t%s\n" xxhash 0.8.1 "${timestamp}" >>${G_PKGDB} -# end_substep -# -# https://github.com/WayneD/rsync/archive/refs/tags/v3.2.5pre2.tar.gz rsync-3.2.5pre2.tar.gz cc7884cced95ce6fafd8d322b8bdb42c250c869d94186f7c471ce09cc3906f596903aed65c070e3de1c6a5e28966c4cea4d75797f444424484ebb9e574a0d42c -# begin_substep rsync-3.2.5pre2 -# if [ -x /bin/rsync ]; then -# msg info "%s exists, skipping %s" /bin/rsync ${pkg} -# elif [ -e ${G_SPKG}/${pkg}.tar.xz ]; then -# unpack_pkg ${pkg} / -# else -# extract_pkg ${G_SRC} ${pkg} ${pkg}.tar.gz -# ( -# cd_or_fail ${G_SRC}/${pkg} -# -# cat <<! >MKPK -# mkpk_name() -# { -# printf "%s" "${pkg}" -# } -# -# mkpk_install() -# { -# CFLAGS='-Os -pipe -static --static -fcommon' -# LDFLAGS='-static --static -fcommon -s' -# DESTDIR=/build -# export CFLAGS LDFLAGS DESTDIR -# -# -# ./configure --prefix='' \\ -# --disable-md2man \\ -# --disable-lz4 || exit 1 -# make ${JN} || exit 1 -# make install -# } -# ! -# mkpk ${pkg} -# remove_dir ${G_SRC}/${pkg} -# unpack_pkg ${pkg} / -# ) || exit 1 -# fi -# timestamp=$(date +'%Y-%m-%d %T') -# printf "%s\t%s\t%s\n" rsync 3.2.5pre2 "${timestamp}" >>${G_PKGDB} -# end_substep +begin_substep xxhash-0.8.1 +if [ -x /sucks/lib/libxxhash.so.0.8.1 ]; then + msg info "%s exists, skipping %s" /sucks/lib/libxxhash.so.0.8.1 ${pkg} +elif [ -e ${G_SPKG}/${pkg}.tar.xz ]; then + unpack_pkg ${pkg} / +else + extract_pkg ${G_SRC} xxHash-0.8.1 ${pkg}.tar.gz ${pkg} + ( + cd_or_fail ${G_SRC}/${pkg} + + cat <<! >MKPK +mkpk_name() +{ + printf "%s" "${pkg}" +} + +mkpk_install() +{ + CFLAGS='-Os -pipe' + LDFLAGS='-s' + PREFIX=/sucks + DESTDIR=/build + SED=/${TLD}/bin/sed + export CFLAGS LDFLAGS PREFIX DESTDIR SED + + make ${JN} PREFIX=\${PREFIX} DESTDIR=\${DESTDIR} SED=\${SED} \\ + -C . install || exit 1 +} +! + mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} + unpack_pkg ${pkg} / + ) || exit 1 +fi +timestamp=$(date +'%Y-%m-%d %T') +printf "%s\t%s\t%s\n" xxhash 0.8.1 "${timestamp}" >>${G_PKGDB} +end_substep + +begin_substep rsync-3.2.5pre2 +if [ -x /bin/rsync ]; then + msg info "%s exists, skipping %s" /bin/rsync ${pkg} +elif [ -e ${G_SPKG}/${pkg}.tar.xz ]; then + unpack_pkg ${pkg} / +else + extract_pkg ${G_SRC} ${pkg} ${pkg}.tar.gz + ( + cd_or_fail ${G_SRC}/${pkg} + + cat <<! >MKPK +mkpk_name() +{ + printf "%s" "${pkg}" +} + +mkpk_install() +{ + CFLAGS='-Os -pipe -static --static -fcommon' + LDFLAGS='-static --static -fcommon -s' + DESTDIR=/build + export CFLAGS LDFLAGS DESTDIR + + + ./configure --prefix='' \\ + --disable-md2man \\ + --disable-lz4 || exit 1 + make ${JN} || exit 1 + make install +} +! + mkpk ${pkg} + remove_dir ${G_SRC}/${pkg} + unpack_pkg ${pkg} / + ) || exit 1 +fi +timestamp=$(date +'%Y-%m-%d %T') +printf "%s\t%s\t%s\n" rsync 3.2.5pre2 "${timestamp}" >>${G_PKGDB} +end_substep begin_substep shim-15.6 if [ -x /share/shim ]; then @@ -6609,7 +6606,7 @@ totalsubsteps=1 substep=1 begin_substep linux-5.17.13 - extract_pkg ${G_SRC} ${pkg} ${pkg}.tar.gz + extract_pkg ${G_SRC} ${pkg} ${pkg}.tar.xz remove_file ${G_SRC}/linux link_if_ne ${pkg} ${G_SRC}/linux cd_or_fail ${G_SRC}/${pkg} diff --git a/04-finale.sh b/04-finale.sh @@ -27,7 +27,7 @@ step=1 begin_step "finale" -totalsubsteps=100 +totalsubsteps=6 substep=1 begin_substep byacc-20220128 @@ -245,7 +245,7 @@ timestamp=$(date +'%Y-%m-%d %T') printf "%s\t%s\t%s\n" ubase 20220709 "${timestamp}" >>${G_PKGDB} end_substep -begin_substep svc-20220808 +begin_substep svc-20220813 if [ -x /bin/svc ]; then msg info "%s exists, skipping %s" /bin/svc ${pkg} elif [ -e ${G_SPKG}/${pkg}.tar.xz ]; then @@ -276,7 +276,7 @@ mkpk_install() ) || exit 1 fi timestamp=$(date +'%Y-%m-%d %T') -printf "%s\t%s\t%s\n" svc 20220808 "${timestamp}" >>${G_PKGDB} +printf "%s\t%s\t%s\n" svc 20220813 "${timestamp}" >>${G_PKGDB} end_substep begin_substep mkpk-20220808 @@ -320,7 +320,7 @@ cp_or_fail ${GR}/boot/vmlinuz ${GR}/boot/EFI/GALEB/vmlinuz msg info "Generating %s" "${GR}/boot/EFI/GALEB/BOOT.CSV" cat <<! >${GR}/boot/EFI/GALEB/BOOT-ASC.CSV -vmlinuz,Galeb EFISTUB,root=${USBROOT} rootdelay=5,Boot entry for Galeb EFISTUB +vmlinuz,Galeb USB,root=${USBROOT} ro rootdelay=5,Boot entry for Galeb USB ! iconv -f ASCII -t UCS-2LE <${GR}/boot/EFI/GALEB/BOOT-ASC.CSV \ >${GR}/boot/EFI/GALEB/BOOT.CSV diff --git a/05-mkbootimage.sh b/05-mkbootimage.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +. ./lib/env.sh +. ./lib/fun.sh + +if [ "$(id -u)" -ne 0 ]; then + msg err "You must run this script as root" + exit 1 +fi + +( +ver=2.0 +arch=x86_64 +timestamp=$(date +'%Y%m%d') +diskimg=galeb-${ver}-${arch}-${timestamp}.raw + +rm "${diskimg}" + +truncate -s $(echo '(25 * 1024 * 1024 * 1024)/10' | bc) "${diskimg}" || exit 1 + +printf "g\nn\n\n\n+500M\nt\n1\nn\n\n\n\nx\nn\n1\nGALBOOT\n"\ +"n\n2\nGalRoot\nr\nw\n" | fdisk "${diskimg}" || exit 1 + +losetup -P -f "${diskimg}" || exit 1 + +mkfs.ext4 -L GalRoot /dev/loop0p2 || exit 1 +mkfs.vfat -F 32 -n GALBOOT /dev/loop0p1 || exit 1 + +mount -t ext4 /dev/loop0p2 /mnt || exit 1 +mkdir -p /mnt/boot || exit 1 +mount -t vfat /dev/loop0p1 /mnt/boot || exit 1 + +rsync -arv --numeric-ids \ + --exclude='/cross-tools' \ + --exclude='/src/*' \ + --exclude='/tools' \ + ${GR}/* /mnt/ || exit 1 + +umount /mnt/boot || exit 1 +umount /mnt || exit 1 +losetup -d /dev/loop0 || exit 1 +xz -9vvf "${diskimg}" || exit 1 +chown ${GUSER}:${GUSER} "${diskimg}".xz +) || msg err "Image generation failed" diff --git a/BOOTING b/BOOTING @@ -6,6 +6,20 @@ setting up boot configuration correctly. The perceived difficulty mostly comes from not understanding the basic concepts behind booting. +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, is patches solving +potential issues. + + Firmware type ------------- @@ -90,7 +104,7 @@ The necessary command line parameters will be briefly explained here. For more information, see `man 8 efibootmgr` and `efibootmgr -h`. efibootmgr -c -d /dev/sda -l '\vmlinuz' -L 'Galeb EFISTUB' -p1 \ - -u root=/dev/sda2 + -u 'root=/dev/sda2 ro' -c Create a new boot entry. @@ -109,8 +123,45 @@ information, see `man 8 efibootmgr` and `efibootmgr -h`. -u Treat the kernel command line as UCS-2. -root=/dev/sda2 - Kernel command line. +'root=/dev/sda2 ro' + Kernel command line, quoted to prevent parsing by the shell. + + +Boot image +---------- + +After the boot scripts have finished, you will be presented with a choice to +create a boot image. The boot image will be compressed with xz and needs to be +sent to a USB flash medium, for example: + + # xz -dc galeb-2.0-x86_64-20220813.raw.xz > /dev/sdb + +or, if you have pv[4]: + + # xz -dc galeb-2.0-x86_64-20220813.raw.xz | pv > /dev/sdb + +_Be careful when specifying the device you send the output to, in order to not +overwrite any existing partitions (your hard disk, etc)!_ You can find out the +correct device by using + + $ lsblk -f + +or + + $ blkid + +The boot image is designed for UEFI systems and will be partitioned as GPT. + +When you reboot, enter UEFI setup and choose to boot from USB flash. Fallback +shim will automatically create a boot entry for Galeb, which will set the device +specified as USBROOT in lib/env.sh as the root device for that entry. If the +boot fails, you need to reboot back into your original system, remove the UEFI +entry (for example, by using efibootmgr(8)), change USBROOT in lib/env.sh, rerun +the bootstrap scripts, copy the newly generated image to USB flash and reboot. + +You can safely remove the "Galeb USB" UEFI entry if you don't need it anymore, +since it will be automatically generated by fallback shim whenever you choose to +boot from the Galeb USB medium. See also @@ -119,3 +170,4 @@ See also 1. https://wiki.archlinux.org/title/Partitioning#Example\_layouts 2. https://wiki.archlinux.org/title/EFI_system_partition 3. https://wiki.archlinux.org/title/EFISTUB +4. http://www.ivarch.com/programs/pv.shtml diff --git a/INSTALL b/INSTALL @@ -0,0 +1,17 @@ +Galeb installation +================== + +Installation is quite straightforward: adjust lib/env.sh, then run the numbered +scripts, 01-* to 05-*. This will leave you with a directory $GR (by default, +$HOME/galeb-root) containing the files of the root filesystem, and a compressed +raw disk image made from those files. + +02-chroot.sh needs to be run with root privileges, which you will be warned +about if you try to execute it as a regular user. Other than that, just pay +attention to on-screen prompts and messages. See BOOTING for information on what +to do next. + +Note: Files in the created directory $GR are configured for a system on a USB +medium. You should adjust files like /etc/fstab and /etc/rc.conf (for example) +if you don't intend on using the raw disk image, and wish to install the files +directly (for example, with rsync(1)). diff --git a/TODO b/TODO @@ -1,11 +1,6 @@ TODO ==== -[ ] Add information about boot image to BOOTING - -[ ] Add rsync to lib/mkbootimage - - Low priority ------------ @@ -28,6 +23,10 @@ Low priority Done ---- +[x] Add information about boot image to BOOTING + +[x] Add rsync to lib/mkbootimage + [x] Add shim [x] Use shim and mksquashfs to create boot iso - Using a slightly different method with raw image diff --git a/fil/man/man8/galeb.8 b/fil/man/man8/galeb.8 @@ -52,6 +52,7 @@ adopts and extends the filesystem hierarchy of stali: .It Li /local Ta programs specific to the local system .It Li /mnt Ta mount points .It Li /pkg Ta compiled packages +.It Li /plan9 Ta 9base .It Li /proc Ta procfs .It Li /run Ta 0755 tmpfs .It Li /sbin -> /bin Ta symlink pointing to /bin diff --git a/fil/rc.d/rc.conf b/fil/rc.d/rc.conf @@ -4,6 +4,8 @@ FONT_UNIMAP= KEYMAP=us INTERFACE=eth0 KILLDELAY=1 # Delay before sending TERM and KILL on shutdown +STATUSDELAY=5 # Delay before issuing 'service running all' after + # 'service start all' and similar commands by rc.* LANG=en_US.UTF-8 HOSTNAME=galeb TIMEZONE=Europe/Belgrade diff --git a/fil/rc.d/rc.init b/fil/rc.d/rc.init @@ -155,6 +155,7 @@ if [ -x /bin/rc.inet ]; then /bin/rc.inet fi +env STATUSDELAY=${STATUSDELAY} \ service start all if [ -x /bin/rc.local ]; then diff --git a/fil/rc.d/rc.shutdown b/fil/rc.d/rc.shutdown @@ -53,6 +53,7 @@ msg info "Shutting down" msg info "Storing random seed" dd if=/dev/urandom of=/etc/random-seed count=1 bs=512 2>/dev/null +env STATUSDELAY=${STATUSDELAY} \ service stop all KILLDELAY=${KILLDELAY:-3} diff --git a/lib/createdirs b/lib/createdirs @@ -26,12 +26,22 @@ do ownerid='' if [ -n "${owner}" ]; then - ownerid=$(grep "^${owner}:" ${GR}/etc/passwd | cut -d: -f3) + if [ -e ${GR}/etc/passwd ]; then + ownerid=$(grep "^${owner}:" ${GR}/etc/passwd | \ + cut -d: -f3) + else + ownerid=0 # fallback + fi fi groupid='' if [ -n "${group}" ]; then - groupid=$(grep "^${owner}:" ${GR}/etc/group | cut -d: -f3) + if [ -e ${GR}/etc/group ]; then + groupid=$(grep "^${owner}:" ${GR}/etc/group | \ + cut -d: -f3) + else + groupid=0 # fallback + fi fi # If no step was passed, do all diff --git a/lib/env.sh b/lib/env.sh @@ -6,6 +6,7 @@ GUSER=strajder USBROOT=/dev/sdb2 # Change to /dev/sda2, remove Galeb UEFI boot entry and # rerun bootstrap scripts if you can't boot +USBESP=/dev/sdb1 # Should match the disk with USBROOT # /Edit this diff --git a/lib/fun.sh b/lib/fun.sh @@ -233,7 +233,7 @@ extract_pkg() if [ -n "${realdir}" ] && [ -d "${realdir}" ]; then #msg info "Directory %s exists" "${realdir}" return - elif [ -n "${dir}" ] && [ -d "${dir}" ]; then + elif [ -z "${realdir}" ] && [ -n "${dir}" ] && [ -d "${dir}" ]; then #msg info "Directory %s exists" "${dir}" return fi diff --git a/lib/mkbootimage b/lib/mkbootimage @@ -1,40 +0,0 @@ -#!/bin/sh - -. ./lib/env.sh -. ./lib/fun.sh - -if [ "$(id -u)" -ne 0 ]; then - msg err "You must run this script as root" - exit 1 -fi - -( -ver=2.0 -timestamp=$(date +'%Y%m%d') -diskimg=galeb-${ver}-${timestamp}.raw - -rm "${diskimg}" - -truncate -s $(echo '(25 * 1024 * 1024 * 1024)/10' | bc) "${diskimg}" || exit 1 - -printf "g\nn\n\n\n+500M\nt\n1\nn\n\n\n\nx\nn\n1\nGALBOOT\n"\ -"n\n2\nGalRoot\nr\nw\n" | fdisk "${diskimg}" || exit 1 - -losetup -P -f "${diskimg}" || exit 1 - -mkfs.ext4 -L GalRoot /dev/loop0p2 || exit 1 -mkfs.vfat -F 32 -n GALBOOT /dev/loop0p1 || exit 1 - -mount -t ext4 /dev/loop0p2 /mnt || exit 1 -mkdir -p /mnt/boot || exit 1 -mount -t vfat /dev/loop0p1 /mnt/boot || exit 1 - -# rsync ... - -umount /mnt/boot -umount /mnt -losetup -d /dev/loop0 || exit 1 - -#xz -9vvf "${diskimg}" -) || msg err "Image generation failed" - diff --git a/lib/perms.tsv b/lib/perms.tsv @@ -20,9 +20,17 @@ Path Mode Owner Group /bin/rc.inet 555 root root /bin/rc.init 555 root root /bin/rc.shutdown 555 root root -/bin/rc.svc 555 root root /bin/service 755 root root /bin/svc 755 root root /bin/svc.d/bare.sh 755 root root /bin/remountroot 500 root root /bin/umountall 500 root root +/etc/fstab 644 root root +/pkg 755 root root +/src 755 root root +/sbin 755 root root +/share/legal 755 root root +/local/sbin 755 root root +/var/log/galeb 755 root root +/var/log/galeb/shortlog 644 root root +/var/log/galeb/log 644 root root diff --git a/lib/pkgs.tsv b/lib/pkgs.tsv @@ -4,7 +4,7 @@ git+https://git.adelielinux.org/adelie/musl-locales.git musl-locales-20220708 git+https://git.sr.ht/~strahinja/mkpk mkpk-20220808 git+https://git.sr.ht/~strahinja/reflow reflow-20220716 git+https://git.sr.ht/~strahinja/sbase sbase-20220801 -git+https://git.sr.ht/~strahinja/svc svc-20220808 +git+https://git.sr.ht/~strahinja/svc svc-20220813 git+https://github.com/cpeuvrel/usleep-aur usleep-20220718 git+https://github.com/mirbsd/mksh mksh-20220709 git+https://github.com/onetrueawk/awk awk-20220709 @@ -74,10 +74,12 @@ https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.4.2.tar.gz ae91a840b293 https://ftpmirror.gnu.org/autoconf-archive/autoconf-archive-2022.02.11.tar.xz 243e06a356ea2c0fddc527febd4241da49fe4c11fb64b548873744a54e079860739d7a1da842833b99540acde3f6a2ebfddc41897306cc2e61e2c6037a7d22ff https://gcc.gnu.org/pub/gcc/snapshots/11-20220101/gcc-11-20220101.tar.xz 33ae3f00c48e19659b9fc26e2dd2ccf98d52babd97c4fc2bf02171507572e1324892699b80e9c5036daec1453b04fc431366317c0456a3a2f59465a2374182a4 https://git.sr.ht/~strahinja/sled/archive/v0.10.8.tar.gz sled-0.10.8.tar.gz 9a1992bdf75f6a9a8b564563af3d7e5e61e93deae480e3aa643ae249a8fa8572d16bad6959cf6a7d339022c41fb4347d1e146aecc246257ebf6108439c1b0654 -https://git.sr.ht/~strahinja/table/archive/v0.6.3.tar.gz table-0.6.3.tar.gz 4562c701a9cd443db06bf37585425e2d1bf91856da59bc1ade9cef99abfbf60bb3888b6b4d7adc255b7b6235251e0d12df19a50578e62cd619da2db75ceca2e5 +https://git.sr.ht/~strahinja/table/archive/v0.6.4.tar.gz table-0.6.4.tar.gz a86c8bca4cc2250aa8fcdb49508e802fb3b78d950a4f95c8d2d214ad1dd72ffdda78ed20165317041c1afdf0f039b1a8b594bed5ab0d43c61cb21140e7adc37a +https://github.com/Cyan4973/xxHash/archive/refs/tags/v0.8.1.tar.gz xxhash-0.8.1.tar.gz 12feedd6a1859ef55e27218dbd6dcceccbb5a4da34cd80240d2f7d44cd246c7afdeb59830c2d5b90189bb5159293532208bf5bb622250102e12d6e1bad14a193 https://github.com/Duncaen/OpenDoas/releases/download/v6.8.2/opendoas-6.8.2.tar.xz 5f349763dcc56b60f3707af3b3b7557e4721427a093dff725235c54b741670e0606272063527d00442eb7510dfd96482f7c6f38f15ece148bea41c9aa514865c https://github.com/Mic92/iana-etc/releases/download/20210611/iana-etc-20210611.tar.gz 3db4d509699930bb48950b54d916d0aafbd6eb6ecbd98d6ffdf77f79fb9dd644754b2d479b675f1f0afb094e49e70fa583bbdb4432d976fa980b8696ca2387a7 https://github.com/PhilipHazel/pcre2/releases/download/pcre2-10.39/pcre2-10.39.tar.bz2 b3d898198f4b5ffc3453d2ba56fe2a7298c01c52e5f67d45f1e046fc0dee62e16a4024fcb65839ac9c367beedb531647affd6f8599fbeb102f19423c150d80d4 +https://github.com/WayneD/rsync/archive/refs/tags/v3.2.5pre2.tar.gz rsync-3.2.5pre2.tar.gz cc7884cced95ce6fafd8d322b8bdb42c250c869d94186f7c471ce09cc3906f596903aed65c070e3de1c6a5e28966c4cea4d75797f444424484ebb9e574a0d42c https://github.com/arsv/perl-cross/releases/download/1.4/perl-cross-1.4.tar.gz bde73cac13c0b42c4c6783d7e30dea491d70b65131e1c8434ef75db1f39a8e15ef5857568b706e8456faa3822402676dd247a1f20f4bed983597fdd5a6b4faad https://github.com/dosfstools/dosfstools/releases/download/v4.2/dosfstools-4.2.tar.gz 3cc0808edb4432428df8a67da4bb314fd1f27adc4a05754c1a492091741a7b6875ebd9f6a509cc4c5ad85643fc40395b6e0cadee548b25cc439cc9b725980156 https://github.com/ericonr/argp-standalone/archive/refs/tags/1.4.1.tar.gz argp-standalone-1.4.1.tar.gz c5f07e88434589a13a2e88e66d1142b581f19aa82da28507f3c31ea782e080a13a4504d8108c003b5d3c8a3aa20f52ea5e81f337c11a4b1342b16361d4877c1c diff --git a/lib/setperms b/lib/setperms @@ -47,9 +47,9 @@ do if [ "${startuid}" -eq 0 ] && [ -n "${owner}" ] && \ [ -n "${group}" ]; then - msg info "chown %s:%s %s" "${ownerid}" "${groupid}" \ + msg info "chown -h %s:%s %s" "${ownerid}" "${groupid}" \ "${GR}${path}" - chown ${ownerid}:${groupid} "${GR}${path}" || exit 1 + chown -h ${ownerid}:${groupid} "${GR}${path}" || exit 1 fi if [ -n "${mode}" ]; then diff --git a/lib/symlinks.tsv b/lib/symlinks.tsv @@ -11,5 +11,8 @@ lksh /bin/sh 03-packages.sh /bin/rc.shutdown /bin/shutdown 02-chroot.sh-end /bin/rc.shutdown /bin/poweroff 02-chroot.sh-end /bin/rc.shutdown /bin/reboot 02-chroot.sh-end +../avail/gpm /bin/svc.d/run/gpm 02-chroot.sh-end +../avail/hwclock /bin/svc.d/run/hwclock 02-chroot.sh-end +../avail/sdhcp /bin/svc.d/run/sdhcp 02-chroot.sh-end / /usr 02-chroot.sh-end /run /var/run 02-chroot.sh-end