├── data ├── packages │ ├── glacies-etc │ │ └── etc │ │ │ ├── s6 │ │ │ ├── rc │ │ │ │ ├── .keep │ │ │ │ └── compiled.do │ │ │ ├── sv │ │ │ │ ├── boot │ │ │ │ │ ├── contents.d │ │ │ │ │ │ ├── mdevd │ │ │ │ │ │ ├── mount │ │ │ │ │ │ ├── tty │ │ │ │ │ │ ├── modules │ │ │ │ │ │ └── mdevd-coldplug │ │ │ │ │ └── type │ │ │ │ ├── mdevd │ │ │ │ │ ├── type │ │ │ │ │ ├── dependencies.d │ │ │ │ │ │ └── mount │ │ │ │ │ ├── notification-fd │ │ │ │ │ └── run │ │ │ │ ├── mount │ │ │ │ │ ├── type │ │ │ │ │ └── up │ │ │ │ ├── tty │ │ │ │ │ ├── contents.d │ │ │ │ │ │ ├── tty1 │ │ │ │ │ │ ├── tty2 │ │ │ │ │ │ ├── tty3 │ │ │ │ │ │ ├── tty4 │ │ │ │ │ │ ├── tty5 │ │ │ │ │ │ ├── tty6 │ │ │ │ │ │ └── tty7 │ │ │ │ │ └── type │ │ │ │ ├── tty1 │ │ │ │ │ ├── type │ │ │ │ │ └── run │ │ │ │ ├── tty2 │ │ │ │ │ ├── type │ │ │ │ │ └── run │ │ │ │ ├── tty3 │ │ │ │ │ ├── type │ │ │ │ │ └── run │ │ │ │ ├── tty4 │ │ │ │ │ ├── type │ │ │ │ │ └── run │ │ │ │ ├── tty5 │ │ │ │ │ ├── type │ │ │ │ │ └── run │ │ │ │ ├── tty6 │ │ │ │ │ ├── type │ │ │ │ │ └── run │ │ │ │ ├── tty7 │ │ │ │ │ ├── type │ │ │ │ │ └── run │ │ │ │ ├── default │ │ │ │ │ ├── contents.d │ │ │ │ │ │ ├── boot │ │ │ │ │ │ └── rc-local │ │ │ │ │ └── type │ │ │ │ ├── modules │ │ │ │ │ ├── type │ │ │ │ │ ├── dependencies.d │ │ │ │ │ │ └── mdevd │ │ │ │ │ └── up │ │ │ │ ├── rc-local │ │ │ │ │ ├── type │ │ │ │ │ └── up │ │ │ │ ├── mdevd-coldplug │ │ │ │ │ ├── type │ │ │ │ │ ├── dependencies.d │ │ │ │ │ │ └── mdevd │ │ │ │ │ └── up │ │ │ │ ├── default.dhcpcd.do │ │ │ │ ├── dhcpcd.wpa-supplicant.do │ │ │ │ └── default.do │ │ │ ├── skel │ │ │ │ ├── rc.shutdown.final │ │ │ │ ├── rc.shutdown │ │ │ │ ├── runlevel │ │ │ │ └── rc.init │ │ │ ├── rc.local │ │ │ ├── rc.conf │ │ │ └── current.do │ │ │ ├── mtab │ │ │ ├── passwd │ │ │ ├── shadow │ │ │ ├── group │ │ │ ├── fstab │ │ │ ├── profile │ │ │ ├── init.in │ │ │ └── mdev.conf │ ├── glacies-setup │ │ └── bin │ │ │ ├── setup-keymap │ │ │ ├── setup-reboot │ │ │ ├── setup-list-keymaps │ │ │ ├── setup-network │ │ │ ├── setup-list-devices │ │ │ ├── setup-installer │ │ │ ├── setup-list-interfaces │ │ │ ├── setup-list-disks │ │ │ ├── setup-list-fstypes │ │ │ ├── setup-password │ │ │ ├── setup-util-awk │ │ │ ├── setup-list-timezones │ │ │ ├── setup-mount │ │ │ ├── setup-timezone │ │ │ ├── setup-util-pwadd │ │ │ ├── setup-user │ │ │ ├── setup-bootloader │ │ │ └── setup-system │ └── glacies-scripts │ │ ├── bin │ │ ├── mkinitramfs │ │ ├── update-fonts │ │ └── sysfetch │ │ └── boot │ │ └── default.initramfs.do ├── venus-store │ ├── modules │ │ └── venus │ │ │ └── repo │ │ │ ├── glacies │ │ │ └── repo.conf │ │ │ └── disk │ │ │ ├── glacies-etc │ │ │ ├── glacies-scripts │ │ │ ├── glacies-setup │ │ │ └── system-core │ └── config │ │ └── root ├── issue ├── cache.do └── init.in ├── AUTHORS ├── mk ├── env.conf ├── livecd └── build ├── README.md └── UNLICENSE /data/packages/glacies-etc/etc/s6/rc/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | Eduardo Francisco 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/mtab: -------------------------------------------------------------------------------- 1 | ../proc/self/mounts -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/boot/contents.d/mdevd: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/boot/contents.d/mount: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/boot/contents.d/tty: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/boot/type: -------------------------------------------------------------------------------- 1 | bundle 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/mdevd/type: -------------------------------------------------------------------------------- 1 | longrun 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/mount/type: -------------------------------------------------------------------------------- 1 | oneshot 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty/contents.d/tty1: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty/contents.d/tty2: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty/contents.d/tty3: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty/contents.d/tty4: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty/contents.d/tty5: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty/contents.d/tty6: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty/contents.d/tty7: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty/type: -------------------------------------------------------------------------------- 1 | bundle 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty1/type: -------------------------------------------------------------------------------- 1 | longrun 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty2/type: -------------------------------------------------------------------------------- 1 | longrun 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty3/type: -------------------------------------------------------------------------------- 1 | longrun 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty4/type: -------------------------------------------------------------------------------- 1 | longrun 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty5/type: -------------------------------------------------------------------------------- 1 | longrun 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty6/type: -------------------------------------------------------------------------------- 1 | longrun 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty7/type: -------------------------------------------------------------------------------- 1 | longrun 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/boot/contents.d/modules: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/default/contents.d/boot: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/default/contents.d/rc-local: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/default/type: -------------------------------------------------------------------------------- 1 | bundle 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/mdevd/dependencies.d/mount: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/mdevd/notification-fd: -------------------------------------------------------------------------------- 1 | 3 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/modules/type: -------------------------------------------------------------------------------- 1 | oneshot 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/rc-local/type: -------------------------------------------------------------------------------- 1 | oneshot 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/boot/contents.d/mdevd-coldplug: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/mdevd-coldplug/type: -------------------------------------------------------------------------------- 1 | oneshot 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/modules/dependencies.d/mdevd: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-keymap: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/mdevd-coldplug/dependencies.d/mdevd: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/mdevd/run: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | mdevd -D3 3 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/skel/rc.shutdown.final: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | true 3 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/rc-local/up: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | /etc/s6/rc.local 3 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty1/run: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | fgetty /dev/tty1 3 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty2/run: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | fgetty /dev/tty2 3 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty3/run: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | fgetty /dev/tty3 3 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty4/run: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | fgetty /dev/tty4 3 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty5/run: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | fgetty /dev/tty5 3 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty6/run: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | fgetty /dev/tty6 3 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/tty7/run: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | fgetty /dev/tty7 3 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/skel/rc.shutdown: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | s6-rc -bDa change 3 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/skel/runlevel: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S1 2 | s6-rc -up change $1 3 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/mdevd-coldplug/up: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | mdevd-coldplug 3 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-reboot: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | if { sync } 3 | reboot -f 4 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-list-keymaps: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | # XXX: See setup-keymap 3 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-network: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S1 2 | fdmove -c 2 1 3 | dhcpcd $1 4 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/passwd: -------------------------------------------------------------------------------- 1 | root:x:0:0::/root:/bin/sh 2 | log:x:100:100::/var/empty:/bin/nologin 3 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/rc.local: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | # script run in parallel with default services 3 | -------------------------------------------------------------------------------- /data/venus-store/modules/venus/repo/glacies/repo.conf: -------------------------------------------------------------------------------- 1 | url:https://downloads.eltaninos.org/repo/glacies 2 | safeurl:$url 3 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-list-devices: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | fdclose 2 3 | pipeline { lsblk -Adpno name } 4 | sort 5 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-installer: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | cd /usr/share/arcan/appl/installer 3 | getcwd -E PWD 4 | arcan $PWD 5 | -------------------------------------------------------------------------------- /mk/env.conf: -------------------------------------------------------------------------------- 1 | nprocs=2 2 | # TOOLS 3 | SU=doas 4 | LZ=plzip -9 5 | # OTHERS 6 | DEFAULT_PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 7 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/skel/rc.init: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -s1 2 | if { s6-rc-init -c /etc/s6/rc/compiled /run/service } 3 | /etc/s6/current/scripts/runlevel $1 4 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-list-interfaces: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | fdclose 2 3 | pipeline { ls /sys/class/net } 4 | pipeline { sed "/lo/d" } 5 | sort 6 | -------------------------------------------------------------------------------- /data/venus-store/modules/venus/repo/disk/glacies-etc: -------------------------------------------------------------------------------- 1 | name:glacies-etc 2 | version:20230817 3 | license:UNLICENSE 4 | description:Eltanin Glacies /etc directory. 5 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/shadow: -------------------------------------------------------------------------------- 1 | log:!::::::: 2 | root:$6$AZtpPp4IKa/WlIfb$0VHwzgjBh0rbHESkdnlwL2Xi2ZlBgeIUC9K.byr4eMq/MuA8fLQxZppjpDcSS2P7SCmW98Om8JFhzxMM0uB/c/::::::: 3 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-list-disks: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | fdclose 2 3 | pipeline { lsblk -Aipno name } 4 | pipeline { sed -e "/^\\//d" -e "s;^..;;" } 5 | sort 6 | -------------------------------------------------------------------------------- /data/venus-store/modules/venus/repo/disk/glacies-scripts: -------------------------------------------------------------------------------- 1 | name:glacies-scripts 2 | version:20230817 3 | license:UNLICENSE 4 | description:Eltanin Glacies scripts. 5 | rundeps{ 6 | system-core 7 | } 8 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/group: -------------------------------------------------------------------------------- 1 | root:x:0: 2 | kvm:x:1: 3 | tty:x:2: 4 | uucp:x:3: 5 | disk:x:4: 6 | cdrom:x:5: 7 | floppy:x:6: 8 | audio:x:7: 9 | video:x:8: 10 | input:x:9: 11 | log:x:100: 12 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/mount/up: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | if { mount -o remount,rw / } 3 | if { mkdir -p /dev/pts /dev/shm } 4 | if { mount -a } 5 | if { swapon -a } 6 | ln -s /proc/self/fd /dev/fd 7 | -------------------------------------------------------------------------------- /data/packages/glacies-scripts/bin/mkinitramfs: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S1 2 | cd /boot 3 | backtick -Ex version { 4 | ifelse -n { test "${#}" = "0" } { echo $1 } 5 | uname -r 6 | } 7 | redo ${version}.initramfs 8 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-list-fstypes: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | fdclose 2 3 | elglob binaries "/bin/mkfs.*" 4 | pipeline { printf "%s\n" $binaries } 5 | pipeline { sed "s;^/bin/mkfs.;;g" } 6 | sort 7 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-password: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S2 2 | # $1=user $2=password 3 | backtick -Ex pass { openssl passwd -1 $2 } # XXX 4 | setup-util-pwadd /mnt/etc/shadow "${1}:${pass}:::::::" 5 | -------------------------------------------------------------------------------- /data/venus-store/modules/venus/repo/disk/glacies-setup: -------------------------------------------------------------------------------- 1 | name:glacies-setup 2 | version:20230817 3 | license:UNLICENSE 4 | description:Eltanin Glacies installation scripts. 5 | rundeps{ 6 | system-core 7 | } 8 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/rc.conf: -------------------------------------------------------------------------------- 1 | # system config 2 | hostname:eltanin-glacies 3 | font{ 4 | default:Montserrat[wght].ttf 5 | mono:AnonymousPro-Regular.ttf 6 | } 7 | s6{ 8 | init-flags:-1c 9 | } 10 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/fstab: -------------------------------------------------------------------------------- 1 | none /dev/pts devpts nosuid,noexec,relatime 0 0 2 | none /dev/shm tmpfs nodev,nosuid,noexec 0 0 3 | none /proc proc nodev,noexec,nosuid,relatime 0 0 4 | none /tmp tmpfs nodev,nosuid,relatime 0 0 5 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/current.do: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S3 2 | if { 3 | importas -i S6_INIT_FLAGS S6_INIT_FLAGS 4 | s6-linux-init-maker $S6_INIT_FLAGS /etc/s6/current $3 5 | } 6 | elglob files "${3}/bin/*" 7 | cp -PRp $files /sbin 8 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/default.dhcpcd.do: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S3 2 | if { mkdir $3 } 3 | cd $3 4 | if { 5 | redirfd -w 1 type 6 | echo longrun 7 | } 8 | redirfd -w 1 run 9 | heredoc 0 10 | "#!/bin/execlineb -P 11 | dhcpcd -B ${2}" 12 | cat 13 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-util-awk: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -s1 2 | # $1=file 3 | # inplace awk 4 | backtick -Ex tmpfile { mktemp -u } 5 | if { cp $1 $tmpfile } 6 | if { 7 | redirfd -r 0 $1 8 | redirfd -w 1 $tmpfile 9 | awk $@ 10 | } 11 | mv $tmpfile $1 12 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-list-timezones: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -s1 2 | ifelse { test -z "${1}" } { 3 | pipeline { ls -F /usr/share/zoneinfo } 4 | grep "^[A-Z].*/$" 5 | } 6 | cd /usr/share/zoneinfo/${1} 7 | pipeline { find . } 8 | pipeline { sed -e "/^\.$/d" -e "s;./;;" } 9 | sort 10 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-mount: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S4 2 | # $1=device $2=path $3=fstype $4=format? 3 | fdmove -c 2 1 4 | ifelse { test "swap" = "${3}" } { 5 | if { if -t { $4 } mkswap $1 } 6 | swapon $1 7 | } 8 | if { if -t { $4 } mkfs.${3} $1 } 9 | mount -nt $3 $1 /mnt${2} 10 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/dhcpcd.wpa-supplicant.do: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S3 2 | if { mkdir $3 } 3 | cd $3 4 | if { 5 | redirfd -w 1 type 6 | echo longrun 7 | } 8 | redirfd -w 1 run 9 | heredoc 0 10 | "#!/bin/execlineb -P 11 | wpa-supplicant -c /etc/wpa-supplicant/wpa-supplicant-${2}.conf -i ${2} 12 | cat 13 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/modules/up: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | backtick -D "" modules { 3 | redirfd -w 2 /dev/null 4 | venus-conf -t /etc/s6/rc.conf modules 5 | } 6 | if -t { 7 | importas -iu modules modules 8 | test -n "${modules}" 9 | } 10 | importas -isu modules modules 11 | modprobe -aq $modules 12 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/rc/compiled.do: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S3 2 | if { 3 | ifelse { 4 | redirfd -w 1 /dev/null 5 | venus-conf -t user /etc/s6/rc.conf 6 | } { 7 | if { redo-ifchange /etc/s6/sv/user } 8 | touch /etc/s6/sv/default/contents.d/user 9 | } 10 | rm -f /etc/s6/sv/default/contents.d/user 11 | } 12 | s6-rc-compile $3 /etc/s6/sv 13 | -------------------------------------------------------------------------------- /data/venus-store/modules/venus/repo/disk/system-core: -------------------------------------------------------------------------------- 1 | name:system-core 2 | version:meta 3 | rundeps{ 4 | bc 5 | ccore 6 | ecore 7 | execline 8 | gzip 9 | heirloom-doctools 10 | iproute2 11 | kbd 12 | kmod 13 | mandoc 14 | mdevd 15 | ncurses 16 | neatvi 17 | plzip 18 | redo 19 | s6 20 | s6-linux-init 21 | s6-rc 22 | sh 23 | ubase 24 | util-linux 25 | venus 26 | } 27 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-timezone: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S1 2 | # $1=timezone file 3 | backtick -Ex time { 4 | backtick base { basename $1 } 5 | backtick dir { dirname $1 } 6 | multisubstitute { 7 | importas -iu base base 8 | importas -iu dir dir 9 | } 10 | cd /usr/share/zoneinfo/${dir} 11 | pipeline { find . -type l -name $base } 12 | head -n1 13 | } 14 | ln -sf $time /etc/localtime 15 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-util-pwadd: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S2 2 | # $1=file $2=entry 3 | setup-util-awk $1 -ventry=$2 " 4 | BEGIN { 5 | p=1 6 | found=0 7 | split(entry,args,\":\") 8 | } 9 | { 10 | split($0,line,\":\") 11 | if (line[1] == args[1]) { 12 | found=1 13 | p=0 14 | print entry 15 | } else { 16 | p=1 17 | } 18 | } 19 | p 20 | END { 21 | if (!found) print entry 22 | } 23 | " 24 | -------------------------------------------------------------------------------- /data/issue: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | Welcome to Eltanin Glacies! 3 | To login: 4 | - root:glacies 5 | 6 | To start the installation wizard: 7 | # setup-installer 8 | To start the window manager: 9 | $ durden 10 | 11 | Thank you for participating. 12 | Learn more at: https://eltaninos.org 13 | ####################################################################### 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Glacies 2 | 3 | Glacies is an operating system, composed of the [Linux®](https://www.kernel.org) kernel and the [Eltanin](https://eltaninos.org) userpace. 4 | 5 | ## Build 6 | [Build Process](https://eltaninos.org/?download/distros/glacies) 7 | 8 | ## Support 9 | [Support](https://eltaninos.org/?community/index) 10 | 11 | Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries. 12 | -------------------------------------------------------------------------------- /data/cache.do: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | envfile ../mk/env.conf 3 | if { mkdir -p packages/system-core } # XXX 4 | backtick packages { ls packages } 5 | importas -isu packages packages 6 | forx -pE package { $packages } 7 | if { 8 | cd packages/${package} 9 | pipeline { venus-ar -c . } 10 | redirfd -w 1 ../../venus-store/modules/venus/cache/${package} 11 | importas -is LZ LZ 12 | $LZ 13 | } 14 | cd venus-store/modules/venus/cache 15 | backtick sum { 16 | pipeline { venus-cksum $package } 17 | venus-conf $package 18 | } 19 | backtick version { venus-conf version ../repo/disk/${package} } 20 | multisubstitute { 21 | importas -iu sum sum 22 | importas -iu version version 23 | } 24 | mv $package ${sum}.${package}#${version}.pkg 25 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-user: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S4 2 | fdmove -c 2 1 3 | # $1=name $2=uid $3=password $4=groups 4 | # add user info 5 | if { setup-util-pwadd /mnt/etc/passwd "${1}:x:${2}:${2}::/home/${1}:/bin/sh" } 6 | # add group info 7 | if { setup-util-pwadd /mnt/etc/group "${1}:x:${2}:" } 8 | if { 9 | # populate groups 10 | setup-util-awk /mnt/etc/group -vuser=${1} -vgroups=${4} " 11 | BEGIN { 12 | split(groups, arr, \",\") 13 | FS=OFS=\":\" 14 | } 15 | { 16 | for(i=1; i<=length(arr); i++) { 17 | if($1 == arr[i]) { 18 | if($4 == \"\") 19 | $4=user 20 | else 21 | $4=$4\",\"user 22 | } 23 | } 24 | print 25 | } 26 | " 27 | } 28 | if { setup-password $1 $3 } 29 | if { mkdir -p /mnt/home/${1} } 30 | chown ${2}:${2} /mnt/home/${1} 31 | -------------------------------------------------------------------------------- /data/packages/glacies-scripts/bin/update-fonts: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | # TODO: A local and global interface to set fonts with a unified interface 3 | if { 4 | backtick -Ex user { whoami } 5 | test "root" = "${user}" 6 | } 7 | backtick FONT_DEFAULT { 8 | pipeline { venus-conf -t font /etc/s6/rc.conf } 9 | venus-conf default 10 | } 11 | backtick FONT_MONO { 12 | pipeline { venus-conf -t font /etc/s6/rc.conf } 13 | venus-conf mono 14 | } 15 | multisubstitute { 16 | define ARCAN_FONTDIR "/usr/share/arcan/resources/fonts" 17 | define FONTDIR "/usr/share/fonts" 18 | importas -i FONT_DEFAULT FONT_DEFAULT 19 | importas -i FONT_MONO FONT_MONO 20 | } 21 | if { mkdir -p $ARCAN_FONTDIR } 22 | if { ln -sf ${FONTDIR}/${FONT_DEFAULT} ${ARCAN_FONTDIR}/default } 23 | ln -sf ${FONTDIR}/${FONT_MONO} ${ARCAN_FONTDIR}/mono 24 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/profile: -------------------------------------------------------------------------------- 1 | getkey() { 2 | (venus-conf -t /etc/s6/rc.conf $1 | venus-conf $2) 2>/dev/null 3 | } 4 | umask 022 5 | # ARCAN 6 | if LASH_SHELL="$(getkey arcan lash)"; then 7 | export LASH_SHELL 8 | else 9 | export LASH_SHELL="cat9" 10 | fi 11 | export LASH_BASE="/usr/share/arcan/lash" 12 | # XKB 13 | if XKB_DEFAULT_LAYOUT="$(getkey xkb layout)"; then 14 | export XKB_DEFAULT_LAYOUT 15 | fi 16 | if XKB_DEFAULT_MODEL="$(getkey xkb model)"; then 17 | export XKB_DEFAULT_MODEL 18 | fi 19 | if XKB_DEFAULT_OPTIONS="$(getkey xkb options)"; then 20 | export XKB_DEFAULT_RULES 21 | fi 22 | if XKB_DEFAULT_RULES="$(getkey xkb rules)"; then 23 | export XKB_DEFAULT_RULES 24 | fi 25 | if XKB_DEFAULT_VARIANT="$(getkey xkb variant)"; then 26 | export XKB_DEFAULT_VARIANT 27 | fi 28 | # YOUR CUSTOM VARIABLES BELOW 29 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-bootloader: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | fdmove -c 2 1 3 | define LIMINE "/venus-store/programs/limine-bin" 4 | cd $LIMINE 5 | backtick -Ex root { pipeline { mount } awk "/\\/mnt / { print $1 }" } 6 | if { 7 | backtick -Ex device { pipeline { echo $root } sed "s;[0-9]*$;;" } 8 | limine bios-install $device 9 | } 10 | if { 11 | cd ./share/limine 12 | if { mkdir -p /mnt/boot } 13 | cp limine-bios.sys /mnt/boot 14 | } 15 | backtick boot { 16 | if -nt { pipeline { mount } grep -q "/mnt/boot" } 17 | echo "boot/" 18 | } 19 | backtick type { pipeline { mount } awk "/\\/mnt / { print $3 }" } 20 | backtick version { ls /mnt/lib/modules } # XXX 21 | multisubstitute { 22 | importas -iu boot boot 23 | importas -iu type type 24 | importas -iu version version 25 | } 26 | heredoc 0 27 | "TIMEOUT 5 28 | 29 | :Eltanin Glacies 30 | PROTOCOL=linux 31 | KERNEL_PATH=boot:///${boot}vmlinuz-${version} 32 | CMDLINE=root=${root} rootfstype=${type} quiet 33 | MODULE_PATH=boot:///${boot}initramfs-${version} 34 | " 35 | redirfd -w 1 /mnt/boot/limine.cfg 36 | cat 37 | -------------------------------------------------------------------------------- /data/venus-store/config/root: -------------------------------------------------------------------------------- 1 | modules{ 2 | venus 3 | } 4 | venus{ 5 | repo{ 6 | disk 7 | glacies{ 8 | url:https://downloads.eltaninos.org/repo/glacies 9 | safeurl:$url 10 | } 11 | } 12 | packages{ 13 | # system core 14 | bc 15 | bzip2 16 | ca-certificates 17 | ccore 18 | curl 19 | dhcpcd 20 | e2fsprogs 21 | ecore 22 | execline 23 | fgetty 24 | gzip 25 | heirloom-doctools 26 | iproute2 27 | kbd 28 | kmod 29 | libressl 30 | limine-bin 31 | mandoc 32 | mdevd 33 | ncurses 34 | neatvi 35 | plzip 36 | redo 37 | s6 38 | s6-linux-init 39 | s6-rc 40 | sh 41 | tz 42 | ubase 43 | util-linux 44 | venus 45 | wpa-supplicant 46 | xz 47 | # glacies 48 | system-core 49 | glacies-etc 50 | glacies-scripts 51 | glacies-setup 52 | # audio 53 | alsa-utils 54 | sndio 55 | # gui 56 | arcan 57 | cat9 58 | durden 59 | font-ttf-anonymous-pro 60 | font-ttf-montserrat 61 | installer-tui 62 | xarcan 63 | xwayland 64 | xkbcomp 65 | # gui apps 66 | libreselene 67 | # kernel 68 | linux 69 | linux-firmware 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /data/init.in: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S0 2 | # LIVECD INIT.IN 3 | if { mount -nt devtmpfs devtmpfs /dev } 4 | if { mount -nt proc proc /proc } 5 | if { mount -nt tmpfs run /run } 6 | if { mount -nt sysfs sysfs /sys } 7 | if { 8 | background { mdevd -C } 9 | foreground { 10 | loopwhilex -x 0 11 | pipeline { lsblk -f } grep -q "ISOIMAGE" 12 | } 13 | importas -iu ! ! 14 | kill $! 15 | } 16 | if { 17 | if { mkdir -p /run/device } 18 | backtick -Ex dev { pipeline { lsblk -f } awk "/ISOIMAGE/ {print $1}" } 19 | mount -nt iso9660 -o ro /dev/${dev} /run/device 20 | } 21 | if { 22 | if { modprobe loop } 23 | losetup /dev/loop0 /run/device/image.squashfs 24 | } 25 | if { 26 | if { mkdir -p /run/image } 27 | mount -nt squashfs -o ro /dev/loop0 /run/image 28 | } 29 | if { 30 | if { mkdir -p /.root /run/upper /run/work } 31 | mount -nt overlay -o "lowerdir=/run/image,upperdir=/run/upper,workdir=/run/work" none /.root 32 | } 33 | if { 34 | backtick -xED "eltanin-glacies" hostname { cat .root/etc/hostname } 35 | hostname $hostname 36 | } 37 | if { mount -o move /dev .root/dev } 38 | if { mount -o move /proc .root/proc } 39 | if { mount -o move /run .root/run } 40 | if { mount -o move /sys .root/sys } 41 | switch_root .root /sbin/init $@ 42 | -------------------------------------------------------------------------------- /UNLICENSE: -------------------------------------------------------------------------------- 1 | This is free and unencumbered software released into the public domain. 2 | 3 | Anyone is free to copy, modify, publish, use, compile, sell, or 4 | distribute this software, either in source code form or as a compiled 5 | binary, for any purpose, commercial or non-commercial, and by any 6 | means. 7 | 8 | In jurisdictions that recognize copyright laws, the author or authors 9 | of this software dedicate any and all copyright interest in the 10 | software to the public domain. We make this dedication for the benefit 11 | of the public at large and to the detriment of our heirs and 12 | successors. We intend this dedication to be an overt act of 13 | relinquishment in perpetuity of all present and future rights to this 14 | software under copyright law. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 20 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 21 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | For more information, please refer to 25 | -------------------------------------------------------------------------------- /data/packages/glacies-setup/bin/setup-system: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S1 2 | fdmove -c 2 1 3 | # $1=network? 4 | cd /mnt 5 | if { 6 | mkdir -p bin boot dev etc home include lib libexec 7 | mnt opt proc share run src srv sys var 8 | } 9 | if { mkdir -m 0750 root } 10 | if { mkdir -m 1777 tmp } 11 | if { 12 | cd var 13 | mkdir -p db empty lib lock log pkg run spool 14 | } 15 | if { ln -s . usr } 16 | if { ln -s bin sbin } 17 | if { 18 | if { cp -R /opt/pm venus-store } 19 | if { cp /venus-store/config/root venus-store/config } 20 | if -nt { $1 } 21 | if { echo " copying cache..." } 22 | cp -R /venus-store/modules/venus/cache venus-store/modules/venus 23 | } 24 | if { 25 | cd venus-store 26 | if { ln -s ../.. sys/root } 27 | if { redo sync } 28 | redo clean 29 | } 30 | if { 31 | redirfd -a 1 ./etc/fstab 32 | pipeline { mount } 33 | sed -n "s;/mnt;;p" 34 | } 35 | if { mount -t tmpfs tmpfs tmp } 36 | if { 37 | chroot . 38 | # certificates 39 | if { mkdir -p etc/ssl/certs } 40 | if { update-ca-certificates --fresh } 41 | # init 42 | if { 43 | cd /etc/s6 44 | export S6_INIT_FLAGS "-1c" 45 | redo current 46 | } 47 | # rc 48 | if { 49 | if { s6-rc-compile etc/s6/rc/compiled-default etc/s6/sv } 50 | ln -s compiled-default etc/s6/rc/compiled 51 | } 52 | # setup 53 | if { update-fonts } 54 | # initramfs 55 | backtick -Ex version { ls lib/modules } 56 | mkinitramfs $version 57 | } 58 | umount tmp 59 | -------------------------------------------------------------------------------- /mk/livecd: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | envfile mk/env.conf 3 | backtick tmpdir { mktemp -d } 4 | multisubstitute { 5 | importas -isu SU SU 6 | importas -iu tmpdir tmpdir 7 | define PROGRAMS "build/mnt/venus-store/modules/venus/root.progs" 8 | } 9 | # IMAGE 10 | if { 11 | if { $SU cp data/issue build/mnt/etc } 12 | if { $SU cp data/init.in build/mnt/etc } 13 | backtick -Ex kversion { ls ${PROGRAMS}/linux/lib/modules } 14 | $SU if { mount -t tmpfs tmpfs build/mnt/tmp } 15 | if { 16 | chroot build/mnt 17 | if { 18 | cd /etc/s6 19 | export S6_INIT_FLAGS "-1nc" 20 | redo current 21 | } 22 | /bin/mkinitramfs $kversion 23 | } 24 | umount build/mnt/tmp 25 | } 26 | if { $SU mksquashfs build/mnt ${tmpdir}/image.squashfs -comp xz } 27 | # BOOT 28 | if { 29 | if { mkdir -p ${tmpdir}/boot } 30 | backtick -Ex kversion { ls ${PROGRAMS}/linux/lib/modules } 31 | heredoc 0 32 | ":Eltanin Glacies 33 | PROTOCOL=linux 34 | KERNEL_PATH=boot:///boot/vmlinuz-${kversion} 35 | CMDLINE=quiet 36 | MODULE_PATH=boot:///boot/${kversion}.initramfs 37 | " 38 | redirfd -w 1 ${tmpdir}/boot/limine.cfg 39 | cat 40 | 41 | } 42 | if { cp -R build/mnt/boot $tmpdir } 43 | if { 44 | cd ${PROGRAMS}/limine-bin/share/limine 45 | cp limine-uefi-cd.bin limine-bios-cd.bin limine-bios.sys ${tmpdir}/boot 46 | } 47 | # ISO 48 | if { 49 | xorriso -as mkisofs 50 | -b boot/limine-bios-cd.bin 51 | -no-emul-boot 52 | -boot-load-size 4 53 | -boot-info-table 54 | --efi-boot boot/limine-uefi-cd.bin 55 | -efi-boot-part 56 | --efi-boot-image 57 | --protective-msdos-label 58 | -o output.iso 59 | $tmpdir 60 | } 61 | if { ${PROGRAMS}/limine-bin/bin/limine bios-install output.iso } 62 | rm -Rf $tmpdir 63 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/init.in: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S0 2 | if { mount -nt devtmpfs devtmpfs /dev } 3 | if { mount -nt proc proc /proc } 4 | if { mount -nt sysfs sysfs /sys } 5 | foreground { 6 | background { mdevd -C } 7 | foreground { 8 | loopwhilex -x 0 9 | pipeline { lsblk -f } grep -q "ISOIMAGE" 10 | } 11 | importas -iu ! ! 12 | kill $! 13 | 14 | } 15 | if { 16 | if { mkdir .root } 17 | backtick root { 18 | awk " 19 | BEGIN { 20 | FS=\"=\" 21 | RS=\" \" 22 | OFS=\"=\" 23 | } 24 | /root=/ { 25 | gsub(\"root=\", \"\") 26 | print 27 | } 28 | " 29 | /proc/cmdline 30 | } 31 | backtick rootflags { 32 | awk " 33 | BEGIN { 34 | FS=\"=\"; 35 | RS=\" \"; 36 | } 37 | /rootflags=/ { 38 | print $2 39 | } 40 | " 41 | /proc/cmdline 42 | } 43 | backtick rootfstype { 44 | awk " 45 | BEGIN { 46 | FS=\"=\"; 47 | RS=\" \"; 48 | } 49 | /rootfstype=/ { 50 | print $2 51 | } 52 | " 53 | /proc/cmdline 54 | } 55 | multisubstitute { 56 | importas -iu root root 57 | importas -iu rootflags rootflags 58 | importas -iu rootfstype rootfstype 59 | } 60 | backtick -Ex device { 61 | case -- $root { 62 | "UUID=.*" { 63 | pipeline { echo $root } 64 | awk -F"=" "{ print \"/dev/disk/by-uuid/\"$2 }" 65 | } 66 | "LABEL=.*" { 67 | pipeline { echo $root } 68 | awk -F"=" "{ print \"/dev/disk/by-label/\"$2 }" 69 | } 70 | } 71 | echo $root 72 | } 73 | mount -nt $rootfstype -o $rootflags $device .root 74 | } 75 | if { 76 | backtick -xED "eltanin-glacies" hostname { 77 | venus-conf hostname .root/etc/s6/rc.conf 78 | } 79 | hostname $hostname 80 | } 81 | if { mount -o move /dev .root/dev } 82 | if { mount -o move /proc .root/proc } 83 | if { mount -o move /sys .root/sys } 84 | switch_root .root /sbin/init $@ 85 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/s6/sv/default.do: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S3 2 | if { redo-ifchange /etc/s6/rc.conf } 3 | if { mkdir $3 } 4 | cd $3 5 | backtick type { 6 | pipeline { venus-conf -t services /etc/s6/rc.conf } 7 | pipeline { venus-conf -t $1 } 8 | venus-conf type 9 | } 10 | importas -iu type type 11 | if { 12 | redirfd -w 1 type 13 | echo $type 14 | } 15 | ifelse { test "bundle" = "${type}" } { 16 | backtick files { 17 | pipeline { venus-conf -t services /etc/s6/rc.conf } 18 | pipeline { venus-conf -t $1 } 19 | venus-conf -lt contents.d 20 | } 21 | mkdir contents.d 22 | importas -isu files files 23 | if { redo-ifchange ../${files} } 24 | touch contents.d/${files} 25 | } 26 | # optional dependencies.d 27 | if { 28 | backtick -D "" files { 29 | pipeline { venus-conf -t services /etc/s6/rc.conf } 30 | pipeline { venus-conf -t $1 } 31 | venus-conf -t dependencies.d 32 | } 33 | if -t { 34 | importas -iu files files 35 | test -n "${dependencies}" 36 | } 37 | mkdir dependencies.d 38 | importas -iu files files 39 | touch dependencies.d/$files 40 | } 41 | # oneshot or longrun 42 | ifelse { test "oneshot" = "${type}" } { 43 | if { 44 | backtick -D "" down { 45 | pipeline { venus-conf -t services /etc/s6/rc.conf } 46 | pipeline { venus-conf -t $1 } 47 | venus-conf down 48 | } 49 | if -t { 50 | importas -iu down down 51 | test -n "${down}" 52 | } 53 | redirfd -w 1 "down" 54 | printf "#!/bin/execlineb -P\n%s\n" $down 55 | } 56 | backtick up { 57 | pipeline { venus-conf -t services /etc/s6/rc.conf } 58 | pipeline { venus-conf -t $1 } 59 | venus-conf up 60 | } 61 | redirfd -w 1 "up" 62 | importas -iu up up 63 | printf "#!/bin/execlineb -P\n%s\n" $up 64 | } 65 | # longrun or let s6-rc-compile deal with errors 66 | backtick run { 67 | pipeline { venus-conf -t services /etc/s6/rc.conf } 68 | pipeline { venus-conf -t $1 } 69 | venus-conf run 70 | } 71 | redirfd -w 1 "run" 72 | importas -iu run run 73 | printf "#!/bin/execlineb -P\n%s\n" $run 74 | -------------------------------------------------------------------------------- /data/packages/glacies-scripts/bin/sysfetch: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | # COLORS 3 | backtick c0 { tput sgr0 } 4 | backtick c1 { tput setaf 7 } 5 | backtick c2 { tput setaf 1 } 6 | backtick c3 { tput setaf 3 } 7 | # INFO 8 | backtick KERNEL { uname -sr } 9 | backtick UP { pipeline { uptime } awk -F"," "sub(\".*up \",x,$1){print $1}" } 10 | backtick PKGCNT { pipeline { ls /venus-store/modules/venus/root.progs/ } wc -l } 11 | backtick ME { whoami } 12 | backtick HOSTNAME { hostname } 13 | backtick MEM { pipeline { awk "/MemTotal|Shmem:|MemFree|Buffers|^Cached|SReclaimable/ {print $2}" /proc/meminfo } awk "BEGIN { RS=\"\"; FS=\"\\n\" } {printf \"%dM / %dM\\n\", ($1+$5-$2-$3-$4-$6)/1024, $1/1024}" } 14 | multisubstitute { 15 | importas -iu c0 c0 16 | importas -iu c1 c1 17 | importas -iu c2 c2 18 | importas -iu c3 c3 19 | importas -iu KERNEL KERNEL 20 | importas -iu UP UP 21 | importas -iu PKGCNT PKGCNT 22 | importas -iu MEM MEM 23 | importas -iu ME ME 24 | importas -iu HOSTNAME HOSTNAME 25 | define OS "Eltanin Glacies" 26 | } 27 | heredoc 0 28 | "${c1} ^. Y.${c3} ${ME}${c0}@${c3}${HOSTNAME} 29 | ${c1} 5 J5${c0} ---------------------- 30 | ${c1} .P^ 7B?${c3} OS${c0}: ${OS} 31 | ${c1} J#^ ^P&Y.${c3} Kernel${c0}: ${KERNEL} 32 | ${c1} ?&5 :Y&#?.${c3} Uptime${c0}: ${UP} 33 | ${c1} .J&&J!J&@@5:${c3} Packages${c0}: ${PKGCNT} 34 | ${c1} .P@@@#&@@@@&&#BGG5?7..:${c3} Memory${c0}: ${MEM} 35 | ${c1} ~@@@@@@&@@@@@@@@@&&&&&#?^: 36 | ${c1} B&@@@@@&#${c2}&${c1}@@@@@@@@@@@&&&&&&Y! 37 | ${c1} .!7^.5@@@@@BG&@@@@@@@@@@@@@@@@&&&&& 38 | ${c1} ~B#@@@@@@@@@@@@@@@@57JJ?~^^!P&@@@@@&&& 39 | ${c1} &@P&@@@@@@@@@@B::P#J#&&J7!~7Y#@@@@@&#& 40 | ${c1} ^@@@@@@@@@P#B~!. .B&@@@J7Y&@@@@@@@@@@#& 41 | ${c1} B@@BY^!7.? .. ~?GP&@@@P~7B@@@@@@@@@@@@@ 42 | ${c1} :J! .!7Y#&&&@@@@@@@??!:!G@@@@@@@@@@@@ 43 | ${c1} .#&@@@@@@@&#BGPY?..YJJ!^^75#@@@@@@@@ 44 | ${c1} 7@@@#Y!:. ?PPBG5Y?!&@@@@@@@ 45 | ${c1} ?Y!. ~GGB##BG#@@@@@@@@ 46 | ${c1} :5G##BG@@@@@@@@@@${c0} 47 | " 48 | cat 49 | -------------------------------------------------------------------------------- /data/packages/glacies-scripts/boot/default.initramfs.do: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -S3 2 | if { redo-ifchange /etc/init.in } 3 | backtick tmpdir { mktemp -d } 4 | importas -iu tmpdir tmpdir 5 | foreground { 6 | cd $tmpdir 7 | # filesystem build 8 | if { mkdir -p etc/default bin dev lib/firmware run sys proc tmp } 9 | if { ln -s . usr } 10 | if { ln -s bin sbin } 11 | # files build 12 | if { touch etc/fstab } 13 | if { 14 | define path "/venus-store/modules/venus" 15 | backtick core { 16 | export VENUS_CONFIG_FILE "root" 17 | ${path}/repo/get -t rundeps system-core 18 | } 19 | importas -isu core core 20 | forx -E package { $core } 21 | cp -R ${path}/root.progs/${package}/. . 22 | } 23 | # /etc files 24 | if { 25 | redirfd -w 1 etc/group 26 | echo "root:x:0:" 27 | } 28 | if { 29 | redirfd -w 1 etc/passwd 30 | echo "root:x:0:0::/root:/bin/sh" 31 | } 32 | if { 33 | redirfd -w 1 etc/mdev.conf 34 | echo "$MODALIAS=.* root:root 660 @modprobe -qb \"$MODALIAS\"" 35 | } 36 | # modules build 37 | if { 38 | pipeline { 39 | elglob crypto "/lib/modules/${2}/kernel/arch/*/crypto" 40 | find 41 | $crypto 42 | /lib/modules/${2}/kernel/block 43 | /lib/modules/${2}/kernel/crypto 44 | /lib/modules/${2}/kernel/drivers/ata 45 | /lib/modules/${2}/kernel/drivers/block 46 | /lib/modules/${2}/kernel/drivers/cdrom 47 | /lib/modules/${2}/kernel/drivers/firewire 48 | /lib/modules/${2}/kernel/drivers/md 49 | /lib/modules/${2}/kernel/drivers/scsi 50 | /lib/modules/${2}/kernel/drivers/usb/common 51 | /lib/modules/${2}/kernel/drivers/usb/core 52 | /lib/modules/${2}/kernel/drivers/usb/host 53 | /lib/modules/${2}/kernel/drivers/usb/storage 54 | /lib/modules/${2}/kernel/fs 55 | /lib/modules/${2}/kernel/lib 56 | ! -type d 57 | } 58 | cpio -pLd . 59 | } 60 | if { 61 | cd /lib/modules/${2} 62 | if { install -cm 0755 modules.builtin lib/modules/${2} } 63 | install -cm 0755 modules.order lib/modules/${2} 64 | } 65 | if { depmod -b . $2 } 66 | # init build 67 | if { install -cm 0755 /etc/init.in init } 68 | pipeline { find . } 69 | pipeline { cpio -o -H newc } 70 | redirfd -w 1 $3 71 | pigz -9 72 | } 73 | importas -iu status ? 74 | foreground { rm -Rf $tmpdir } 75 | exit $status 76 | -------------------------------------------------------------------------------- /data/packages/glacies-etc/etc/mdev.conf: -------------------------------------------------------------------------------- 1 | # mdev-like-a-boss 2 | 3 | # Syntax: 4 | # [-]devicename_regex user:group mode [=path]|[>path]|[!] [@|$|*cmd args...] 5 | # [-]$ENVVAR=regex user:group mode [=path]|[>path]|[!] [@|$|*cmd args...] 6 | # [-]@maj,min[-min2] user:group mode [=path]|[>path]|[!] [@|$|*cmd args...] 7 | # 8 | # [-]: do not stop on this match, continue reading mdev.conf 9 | # =: move, >: move and create a symlink 10 | # !: do not create device node 11 | # @|$|*: run cmd if $ACTION=remove, @cmd if $ACTION=add, *cmd in all cases 12 | 13 | # support module loading on hotplug 14 | $MODALIAS=.* root:root 660 @modprobe -qb "$MODALIAS" 15 | 16 | # null may already exist; therefore ownership has to be changed with command 17 | null root:root 666 @chmod 666 $MDEV 18 | zero root:root 666 19 | full root:root 666 20 | random root:root 444 21 | urandom root:root 444 22 | hwrandom root:root 444 23 | grsec root:root 660 24 | 25 | # Kernel-based Virtual Machine. 26 | kvm root:kvm 660 27 | 28 | # vhost-net, to be used with kvm. 29 | vhost-net root:kvm 660 30 | 31 | kmem root:root 640 32 | mem root:root 640 33 | port root:root 640 34 | # console may already exist; therefore ownership has to be changed with command 35 | console root:tty 600 @chmod 600 $MDEV 36 | ptmx root:tty 666 37 | pty.* root:tty 660 38 | 39 | # Typical devices 40 | tty root:tty 666 41 | tty[0-9]* root:tty 660 42 | vcsa*[0-9]* root:tty 660 43 | ttyS[0-9]* root:uucp 660 44 | 45 | # block devices 46 | ram([0-9]*) root:disk 660 >rd/%1 47 | loop([0-9]+) root:disk 660 >loop/%1 48 | sr[0-9]* root:cdrom 660 @ln -sf $MDEV cdrom 49 | fd[0-9]* root:floppy 660 50 | #SUBSYSTEM=block;.* root:disk 660 */opt/mdev/helpers/storage-device 51 | SUBSYSTEM=block;.* root:disk 660 52 | 53 | # Run settle-nics every time new NIC appear. 54 | # If you don't want to auto-populate /etc/mactab with NICs, run 'settle-nis' without '--write-mactab' param. 55 | #-SUBSYSTEM=net;DEVPATH=.*/net/.*;.* root:root 600 @/opt/mdev/helpers/settle-nics --write-mactab 56 | -SUBSYSTEM=net;DEVPATH=.*/net/.*;.* root:root 600 57 | 58 | net/tun[0-9]* root:kvm 660 59 | net/tap[0-9]* root:root 600 60 | 61 | # alsa sound devices and audio stuff 62 | #SUBSYSTEM=sound;.* root:audio 660 @/opt/mdev/helpers/sound-control 63 | SUBSYSTEM=sound;.* root:audio 660 64 | 65 | adsp root:audio 660 >sound/ 66 | audio root:audio 660 >sound/ 67 | dsp root:audio 660 >sound/ 68 | mixer root:audio 660 >sound/ 69 | sequencer.* root:audio 660 >sound/ 70 | 71 | 72 | # raid controllers 73 | cciss!(.*) root:disk 660 =cciss/%1 74 | ida!(.*) root:disk 660 =ida/%1 75 | rd!(.*) root:disk 660 =rd/%1 76 | 77 | 78 | fuse root:root 666 79 | 80 | card[0-9] root:video 660 =dri/ 81 | 82 | agpgart root:root 660 >misc/ 83 | psaux root:root 660 >misc/ 84 | rtc root:root 664 >misc/ 85 | 86 | # input stuff 87 | SUBSYSTEM=input;.* root:input 660 88 | 89 | # v4l stuff 90 | vbi[0-9] root:video 660 >v4l/ 91 | video[0-9] root:video 660 >v4l/ 92 | 93 | # dvb stuff 94 | dvb.* root:video 660 95 | 96 | # drm etc 97 | dri/.* root:video 660 98 | 99 | # Don't create old usbdev* devices. 100 | usbdev[0-9].[0-9]* root:root 660 ! 101 | 102 | # Stop creating x:x:x:x which looks like /dev/dm-* 103 | [0-9]+\:[0-9]+\:[0-9]+\:[0-9]+ root:root 660 ! 104 | 105 | # /dev/cpu support. 106 | microcode root:root 600 =cpu/ 107 | cpu([0-9]+) root:root 600 =cpu/%1/cpuid 108 | msr([0-9]+) root:root 600 =cpu/%1/msr 109 | 110 | # Populate /dev/bus/usb. 111 | #SUBSYSTEM=usb;DEVTYPE=usb_device;.* root:root 660 */opt/mdev/helpers/dev-bus-usb 112 | SUBSYSTEM=usb;DEVTYPE=usb_device;.* root:root 660 113 | 114 | # Catch-all other devices, Right now useful only for debuging. 115 | #.* root:root 660 */opt/mdev/helpers/catch-all 116 | -------------------------------------------------------------------------------- /mk/build: -------------------------------------------------------------------------------- 1 | #!/bin/execlineb -P 2 | if { redo data/cache } 3 | backtick GLACIES_PACKAGES { 4 | pipeline { 5 | pipeline { venus-conf -t venus data/venus-store/config/root } 6 | venus-conf -lt packages 7 | } 8 | backtick packages { ls data/packages } 9 | importas -isu packages packages 10 | grep -Fv -e$packages 11 | } 12 | envfile mk/env.conf 13 | if { 14 | backtick -Ex mask { sh -c "umask" } 15 | case -- $mask { "[0]+22" { exit 0 } } 16 | fdmove 1 2 17 | foreground { echo "${SU}: umask must be 022" } 18 | exit 1 19 | } 20 | cd build 21 | if { 22 | # clone arbor 23 | if { git clone https://git.eltaninos.org/arbor } 24 | getcwd PWD 25 | multisubstitute { 26 | importas -i PWD PWD 27 | importas -i PATH PATH 28 | } 29 | # build glacies environment 30 | export ARBOR "${PWD}/arbor" 31 | if { 32 | cd arbor 33 | if { ./bootstrap } 34 | importas -isu GLACIES_PACKAGES GLACIES_PACKAGES 35 | bin/arbor $GLACIES_PACKAGES 36 | } 37 | # explode stdenv 38 | if { 39 | export PATH "${PWD}/arbor/bin:${PATH}" 40 | backtick ARBOR_HOSTARCH { uname -m } 41 | export ARBOR_HOSTOS "linux" 42 | envfile arbor/config/defaults 43 | backtick cacerts { arbor-priv-printpkgdep ca-certificates } 44 | backtick curl { arbor-priv-printpkgdep curl } 45 | backtick stdenv { arbor-priv-printpkgdep stdenv } 46 | backtick ssl { arbor-priv-printpkgdep libressl } 47 | multisubstitute { 48 | importas -iu cacerts cacerts 49 | importas -iu curl curl 50 | importas -iu stdenv stdenv 51 | importas -iu ssl ssl 52 | } 53 | if { 54 | arbor-priv-pkgexplode 55 | arbor/${cacerts} 56 | arbor/${curl} 57 | arbor/${stdenv} 58 | arbor/${ssl} 59 | } 60 | # XXX: do not populate stdenv (ideal = arbor blacklist) 61 | rm arbor/${stdenv} 62 | } 63 | # populate store 64 | if { 65 | cd arbor 66 | if { bin/arbor -p } 67 | bin/arbor -o ../../mnt/venus-store/modules/venus/repo/disk 68 | } 69 | # prepare to chroot 70 | if { mkdir -p dev sys proc tmp etc } 71 | if { ln -s . usr } 72 | if { ln -s bin sbin } 73 | cd etc 74 | if { cp /etc/resolv.conf . } 75 | touch fstab group passwd 76 | } 77 | multisubstitute { 78 | importas -iu DEFAULT_PATH DEFAULT_PATH 79 | importas -isu SU SU 80 | } 81 | $SU if { 82 | # init store 83 | if { mkdir -p mnt } 84 | if { git clone https://git.eltaninos.org/venus } 85 | if { cp -R venus/pm/. mnt/venus-store } 86 | # copy pm for installer 87 | if { mkdir -p mnt/opt } 88 | if { cp -R venus/pm mnt/opt } 89 | # copy data store 90 | if { cp -R ../data/venus-store/. mnt/venus-store } 91 | if { 92 | redirfd -a 1 mnt/venus-store/modules/venus/repo/disk/chksum 93 | cd ../data/venus-store/modules/venus/cache 94 | pipeline { ls } sed "s;^\\(.\\{128\\}\\)\\.\\(.*\\);\\2:\\1;" 95 | } 96 | # chroot 97 | export PATH "${DEFAULT_PATH}" 98 | chroot . 99 | # certificates 100 | if { mkdir -p etc/ssl/certs } 101 | if { update-ca-certificates --fresh } 102 | # prepare fhs 103 | cd mnt 104 | if { 105 | mkdir -p bin boot dev etc home include lib libexec 106 | mnt opt proc share run src srv sys var 107 | } 108 | if { mkdir -m 0750 root } 109 | if { mkdir -m 1777 tmp } 110 | if { 111 | cd var 112 | mkdir -p db empty lib lock log pkg run spool 113 | } 114 | if { ln -s . usr } 115 | if { ln -s bin sbin } 116 | # sync 117 | cd venus-store 118 | if { ln -s ../.. sys/root } 119 | if { redo sync } 120 | redo clean 121 | } 122 | cd mnt 123 | if { mount -t tmpfs tmpfs tmp } 124 | if { 125 | export PATH "${DEFAULT_PATH}" 126 | chroot . 127 | # certificates 128 | if { mkdir -p /etc/ssl/certs } 129 | if { update-ca-certificates --fresh } 130 | # init 131 | if { 132 | cd /etc/s6 133 | export S6_INIT_FLAGS "-1c" 134 | redo current 135 | } 136 | # rc 137 | if { 138 | if { s6-rc-compile /etc/s6/rc/compiled-default /etc/s6/sv } 139 | ln -s compiled-default /etc/s6/rc/compiled 140 | } 141 | # setup 142 | if { update-fonts } 143 | # initramfs 144 | backtick -Ex version { ls /lib/modules } 145 | mkinitramfs $version 146 | } 147 | umount tmp 148 | --------------------------------------------------------------------------------