summaryrefslogtreecommitdiff
path: root/configs
diff options
context:
space:
mode:
Diffstat (limited to 'configs')
-rw-r--r--configs/baseline/airootfs/etc/localtimebin0 -> 114 bytes
-rw-r--r--configs/baseline/airootfs/etc/mkinitcpio.conf67
-rw-r--r--configs/baseline/airootfs/etc/mkinitcpio.conf.d/parabolaiso.conf1
-rw-r--r--configs/baseline/airootfs/etc/mkinitcpio.d/linux-libre.preset2
-rw-r--r--configs/baseline/airootfs/etc/ssh/sshd_config116
-rw-r--r--configs/baseline/airootfs/etc/ssh/sshd_config.d/10-parabolaiso.conf3
-rw-r--r--configs/baseline/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf2
-rw-r--r--configs/baseline/airootfs/etc/systemd/network/20-ethernet.network5
-rw-r--r--configs/baseline/airootfs/etc/systemd/resolved.conf.d/parabolaiso.conf4
l---------configs/baseline/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service1
-rw-r--r--configs/baseline/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf2
-rw-r--r--configs/baseline/efiboot/loader/entries/02-parabolaiso-x86_64-ram-linux-libre.conf4
-rw-r--r--configs/baseline/grub/grub.cfg88
-rw-r--r--configs/baseline/grub/loopback.cfg73
-rw-r--r--configs/baseline/pacman.conf9
-rw-r--r--configs/baseline/profiledef.sh6
-rw-r--r--configs/baseline/syslinux/syslinux-linux-libre.cfg8
-rw-r--r--configs/releng/airootfs/etc/mkinitcpio.conf67
-rw-r--r--configs/releng/airootfs/etc/mkinitcpio.conf.d/parabolaiso.conf2
-rw-r--r--configs/releng/airootfs/etc/mkinitcpio.d/linux-libre.preset2
-rw-r--r--configs/releng/airootfs/etc/ssh/sshd_config116
-rw-r--r--configs/releng/airootfs/etc/ssh/sshd_config.d/10-parabolaiso.conf3
-rw-r--r--configs/releng/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf2
-rw-r--r--configs/releng/airootfs/etc/systemd/network/20-ethernet.network5
-rw-r--r--configs/releng/airootfs/etc/systemd/network/20-wlan.network5
-rw-r--r--configs/releng/airootfs/etc/systemd/network/20-wwan.network8
-rw-r--r--configs/releng/airootfs/etc/systemd/resolved.conf.d/parabolaiso.conf4
l---------configs/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service1
-rw-r--r--configs/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount6
l---------configs/releng/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service1
-rw-r--r--configs/releng/airootfs/etc/systemd/system/pacman-init.service4
l---------configs/releng/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket1
l---------configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service1
l---------configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service1
-rwxr-xr-xconfigs/releng/airootfs/root/.automated_script.sh26
-rw-r--r--configs/releng/airootfs/root/.gnupg/scdaemon.conf4
-rw-r--r--configs/releng/airootfs/root/.zlogin2
-rwxr-xr-xconfigs/releng/airootfs/usr/local/bin/choose-mirror17
-rwxr-xr-xconfigs/releng/airootfs/usr/local/bin/livecd-sound97
-rw-r--r--configs/releng/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf2
-rw-r--r--configs/releng/efiboot/loader/entries/02-parabolaiso-x86_64-speech-linux-libre.conf2
-rw-r--r--configs/releng/efiboot/loader/entries/03-parabolaiso-x86_64-ram-linux-libre.conf5
-rw-r--r--configs/releng/efiboot/loader/entries/04-parabolaiso-x86_64-ram-speech-linux-libre.conf5
-rw-r--r--configs/releng/grub/grub.cfg32
-rw-r--r--configs/releng/grub/loopback.cfg80
-rw-r--r--configs/releng/packages.both9
-rw-r--r--configs/releng/pacman.conf9
-rw-r--r--configs/releng/profiledef.sh5
-rw-r--r--configs/releng/syslinux/parabolaiso_head.cfg2
-rw-r--r--configs/releng/syslinux/parabolaiso_pxe32-linux-libre.cfg6
-rw-r--r--configs/releng/syslinux/parabolaiso_pxe64-linux-libre.cfg6
-rw-r--r--configs/releng/syslinux/parabolaiso_sys32-linux-libre.cfg6
-rw-r--r--configs/releng/syslinux/parabolaiso_sys64-linux-libre.cfg15
-rw-r--r--configs/releng/syslinux/parabolaiso_tail.cfg4
54 files changed, 408 insertions, 546 deletions
diff --git a/configs/baseline/airootfs/etc/localtime b/configs/baseline/airootfs/etc/localtime
new file mode 100644
index 0000000..91558be
--- /dev/null
+++ b/configs/baseline/airootfs/etc/localtime
Binary files differ
diff --git a/configs/baseline/airootfs/etc/mkinitcpio.conf b/configs/baseline/airootfs/etc/mkinitcpio.conf
deleted file mode 100644
index 9a851c9..0000000
--- a/configs/baseline/airootfs/etc/mkinitcpio.conf
+++ /dev/null
@@ -1,67 +0,0 @@
-# vim:set ft=sh
-# MODULES
-# The following modules are loaded before any boot hooks are
-# run. Advanced users may wish to specify all system modules
-# in this array. For instance:
-# MODULES=(piix ide_disk reiserfs)
-MODULES=()
-
-# BINARIES
-# This setting includes any additional binaries a given user may
-# wish into the CPIO image. This is run last, so it may be used to
-# override the actual binaries included by a given hook
-# BINARIES are dependency parsed, so you may safely ignore libraries
-BINARIES=()
-
-# FILES
-# This setting is similar to BINARIES above, however, files are added
-# as-is and are not parsed in any way. This is useful for config files.
-FILES=()
-
-# HOOKS
-# This is the most important setting in this file. The HOOKS control the
-# modules and scripts added to the image, and what happens at boot time.
-# Order is important, and it is recommended that you do not change the
-# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
-# help on a given hook.
-# 'base' is _required_ unless you know precisely what you are doing.
-# 'udev' is _required_ in order to automatically load modules
-# 'filesystems' is _required_ unless you specify your fs modules in MODULES
-# Examples:
-## This setup specifies all modules in the MODULES setting above.
-## No raid, lvm2, or encrypted root is needed.
-# HOOKS=(base)
-#
-## This setup will autodetect all modules for your system and should
-## work as a sane default
-# HOOKS=(base udev autodetect block filesystems)
-#
-## This setup will generate a 'full' image which supports most systems.
-## No autodetection is done.
-# HOOKS=(base udev block filesystems)
-#
-## This setup assembles a pata mdadm array with an encrypted root FS.
-## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
-# HOOKS=(base udev block mdadm encrypt filesystems)
-#
-## This setup loads an lvm2 volume group on a usb device.
-# HOOKS=(base udev block lvm2 filesystems)
-#
-## NOTE: If you have /usr on a separate partition, you MUST include the
-# usr, fsck and shutdown hooks.
-HOOKS=(base udev modconf parabolaiso block filesystems)
-
-# COMPRESSION
-# Use this to compress the initramfs image. By default, gzip compression
-# is used. Use 'cat' to create an uncompressed image.
-#COMPRESSION="gzip"
-#COMPRESSION="bzip2"
-#COMPRESSION="lzma"
-#COMPRESSION="xz"
-#COMPRESSION="lzop"
-#COMPRESSION="lz4"
-#COMPRESSION="zstd"
-
-# COMPRESSION_OPTIONS
-# Additional options for the compressor
-#COMPRESSION_OPTIONS=()
diff --git a/configs/baseline/airootfs/etc/mkinitcpio.conf.d/parabolaiso.conf b/configs/baseline/airootfs/etc/mkinitcpio.conf.d/parabolaiso.conf
new file mode 100644
index 0000000..9d4877e
--- /dev/null
+++ b/configs/baseline/airootfs/etc/mkinitcpio.conf.d/parabolaiso.conf
@@ -0,0 +1 @@
+HOOKS=(base udev modconf parabolaiso block filesystems)
diff --git a/configs/baseline/airootfs/etc/mkinitcpio.d/linux-libre.preset b/configs/baseline/airootfs/etc/mkinitcpio.d/linux-libre.preset
index 625a03d..282bcde 100644
--- a/configs/baseline/airootfs/etc/mkinitcpio.d/linux-libre.preset
+++ b/configs/baseline/airootfs/etc/mkinitcpio.d/linux-libre.preset
@@ -3,6 +3,6 @@
PRESETS=('parabolaiso')
ALL_kver='/boot/vmlinuz-linux-libre'
-ALL_config='/etc/mkinitcpio.conf'
+parabolaiso_config='/etc/mkinitcpio.conf.d/parabolaiso.conf'
parabolaiso_image="/boot/initramfs-linux-libre.img"
diff --git a/configs/baseline/airootfs/etc/ssh/sshd_config b/configs/baseline/airootfs/etc/ssh/sshd_config
deleted file mode 100644
index 93f7d63..0000000
--- a/configs/baseline/airootfs/etc/ssh/sshd_config
+++ /dev/null
@@ -1,116 +0,0 @@
-# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $
-
-# This is the sshd server system-wide configuration file. See
-# sshd_config(5) for more information.
-
-# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
-
-# The strategy used for options in the default sshd_config shipped with
-# OpenSSH is to specify options with their default value where
-# possible, but leave them commented. Uncommented options override the
-# default value.
-
-#Port 22
-#AddressFamily any
-#ListenAddress 0.0.0.0
-#ListenAddress ::
-
-#HostKey /etc/ssh/ssh_host_rsa_key
-#HostKey /etc/ssh/ssh_host_ecdsa_key
-#HostKey /etc/ssh/ssh_host_ed25519_key
-
-# Ciphers and keying
-#RekeyLimit default none
-
-# Logging
-#SyslogFacility AUTH
-#LogLevel INFO
-
-# Authentication:
-
-#LoginGraceTime 2m
-PermitRootLogin yes
-#StrictModes yes
-#MaxAuthTries 6
-#MaxSessions 10
-
-#PubkeyAuthentication yes
-
-# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
-# but this is overridden so installations will only check .ssh/authorized_keys
-AuthorizedKeysFile .ssh/authorized_keys
-
-#AuthorizedPrincipalsFile none
-
-#AuthorizedKeysCommand none
-#AuthorizedKeysCommandUser nobody
-
-# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
-#HostbasedAuthentication no
-# Change to yes if you don't trust ~/.ssh/known_hosts for
-# HostbasedAuthentication
-#IgnoreUserKnownHosts no
-# Don't read the user's ~/.rhosts and ~/.shosts files
-#IgnoreRhosts yes
-
-# To disable tunneled clear text passwords, change to no here!
-#PasswordAuthentication yes
-#PermitEmptyPasswords no
-
-# Change to no to disable s/key passwords
-#KbdInteractiveAuthentication yes
-
-# Kerberos options
-#KerberosAuthentication no
-#KerberosOrLocalPasswd yes
-#KerberosTicketCleanup yes
-#KerberosGetAFSToken no
-
-# GSSAPI options
-#GSSAPIAuthentication no
-#GSSAPICleanupCredentials yes
-
-# Set this to 'yes' to enable PAM authentication, account processing,
-# and session processing. If this is enabled, PAM authentication will
-# be allowed through the KbdInteractiveAuthentication and
-# PasswordAuthentication. Depending on your PAM configuration,
-# PAM authentication via KbdInteractiveAuthentication may bypass
-# the setting of "PermitRootLogin without-password".
-# If you just want the PAM account and session checks to run without
-# PAM authentication, then enable this but set PasswordAuthentication
-# and KbdInteractiveAuthentication to 'no'.
-UsePAM yes
-
-#AllowAgentForwarding yes
-#AllowTcpForwarding yes
-#GatewayPorts no
-#X11Forwarding no
-#X11DisplayOffset 10
-#X11UseLocalhost yes
-#PermitTTY yes
-PrintMotd no # pam does that
-#PrintLastLog yes
-#TCPKeepAlive yes
-#PermitUserEnvironment no
-#Compression delayed
-#ClientAliveInterval 0
-#ClientAliveCountMax 3
-#UseDNS no
-#PidFile /run/sshd.pid
-#MaxStartups 10:30:100
-#PermitTunnel no
-#ChrootDirectory none
-#VersionAddendum none
-
-# no default banner path
-#Banner none
-
-# override default of no subsystems
-Subsystem sftp /usr/lib/ssh/sftp-server
-
-# Example of overriding settings on a per-user basis
-#Match User anoncvs
-# X11Forwarding no
-# AllowTcpForwarding no
-# PermitTTY no
-# ForceCommand cvs server
diff --git a/configs/baseline/airootfs/etc/ssh/sshd_config.d/10-parabolaiso.conf b/configs/baseline/airootfs/etc/ssh/sshd_config.d/10-parabolaiso.conf
new file mode 100644
index 0000000..6ea7b41
--- /dev/null
+++ b/configs/baseline/airootfs/etc/ssh/sshd_config.d/10-parabolaiso.conf
@@ -0,0 +1,3 @@
+# Allow root login using password authentication
+PasswordAuthentication yes
+PermitRootLogin yes
diff --git a/configs/baseline/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf b/configs/baseline/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf
new file mode 100644
index 0000000..0e9ceb4
--- /dev/null
+++ b/configs/baseline/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf
@@ -0,0 +1,2 @@
+[Network]
+IPv6PrivacyExtensions=yes
diff --git a/configs/baseline/airootfs/etc/systemd/network/20-ethernet.network b/configs/baseline/airootfs/etc/systemd/network/20-ethernet.network
index 4b6a2ab..0e4287b 100644
--- a/configs/baseline/airootfs/etc/systemd/network/20-ethernet.network
+++ b/configs/baseline/airootfs/etc/systemd/network/20-ethernet.network
@@ -5,6 +5,9 @@
Name=en*
Name=eth*
+[Link]
+RequiredForOnline=routable
+
[Network]
DHCP=yes
-IPv6PrivacyExtensions=yes
+MulticastDNS=yes
diff --git a/configs/baseline/airootfs/etc/systemd/resolved.conf.d/parabolaiso.conf b/configs/baseline/airootfs/etc/systemd/resolved.conf.d/parabolaiso.conf
new file mode 100644
index 0000000..5d64185
--- /dev/null
+++ b/configs/baseline/airootfs/etc/systemd/resolved.conf.d/parabolaiso.conf
@@ -0,0 +1,4 @@
+# Default systemd-resolved configuration for parabolaiso
+
+[Resolve]
+MulticastDNS=yes
diff --git a/configs/baseline/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service b/configs/baseline/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service
deleted file mode 120000
index 8e3ff80..0000000
--- a/configs/baseline/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/systemd/system/qemu-guest-agent.service \ No newline at end of file
diff --git a/configs/baseline/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf b/configs/baseline/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf
index e89de03..dcfa3a9 100644
--- a/configs/baseline/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf
+++ b/configs/baseline/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf
@@ -1,4 +1,4 @@
title Parabola GNU/Linux-libre (x86_64, UEFI)
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
-options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
+options parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID%
diff --git a/configs/baseline/efiboot/loader/entries/02-parabolaiso-x86_64-ram-linux-libre.conf b/configs/baseline/efiboot/loader/entries/02-parabolaiso-x86_64-ram-linux-libre.conf
deleted file mode 100644
index 630af00..0000000
--- a/configs/baseline/efiboot/loader/entries/02-parabolaiso-x86_64-ram-linux-libre.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-title Parabola GNU/Linux-libre (x86_64, UEFI) Copy to RAM
-linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
-initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
-options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram
diff --git a/configs/baseline/grub/grub.cfg b/configs/baseline/grub/grub.cfg
index ddcfa41..540ba68 100644
--- a/configs/baseline/grub/grub.cfg
+++ b/configs/baseline/grub/grub.cfg
@@ -3,23 +3,55 @@ insmod part_gpt
insmod part_msdos
insmod fat
insmod iso9660
+insmod ntfs
+insmod ntfscomp
+insmod exfat
+insmod udf
# Use graphics-mode output
-insmod all_video
-insmod font
if loadfont "${prefix}/fonts/unicode.pf2" ; then
- insmod gfxterm
+ insmod all_video
set gfxmode="auto"
terminal_input console
- terminal_output gfxterm
+ terminal_output console
fi
# Enable serial console
+insmod serial
+insmod usbserial_common
+insmod usbserial_ftdi
+insmod usbserial_pl2303
+insmod usbserial_usbdebug
if serial --unit=0 --speed=115200; then
terminal_input --append serial
terminal_output --append serial
fi
+# Search for the ISO volume
+if [ -z "${PARABOLAISO_UUID}" ]; then
+ if [ -z "${PARABOLAISO_HINT}" ]; then
+ regexp --set=1:PARABOLAISO_HINT '^\(([^)]+)\)' "${cmdpath}"
+ fi
+ search --no-floppy --set=root --file '%PARABOLAISO_SEARCH_FILENAME%' --hint "${PARABOLAISO_HINT}"
+ probe --set PARABOLAISO_UUID --fs-uuid "${root}"
+fi
+
+# Get a human readable platform identifier
+if [ "${grub_platform}" == 'efi' ]; then
+ parabolaiso_platform='UEFI'
+ if [ "${grub_cpu}" == 'x86_64' ]; then
+ parabolaiso_platform="x64 ${parabolaiso_platform}"
+ elif [ "${grub_cpu}" == 'i386' ]; then
+ parabolaiso_platform="IA32 ${parabolaiso_platform}"
+ else
+ parabolaiso_platform="${grub_cpu} ${parabolaiso_platform}"
+ fi
+elif [ "${grub_platform}" == 'pc' ]; then
+ parabolaiso_platform='BIOS'
+else
+ parabolaiso_platform="${grub_cpu} ${grub_platform}"
+fi
+
# Set default menu entry
default=parabola
timeout=15
@@ -27,16 +59,46 @@ timeout_style=menu
# Menu entries
-menuentry "Parabola GNU/Linux-libre (x86_64, UEFI)" --class arch --class gnu-linux --class gnu --class os --id 'parabola' {
+menuentry "Parabola GNU/Linux-libre (%ARCH%, ${parabolaiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'parabola' {
set gfxpayload=keep
- search --no-floppy --set=root --label %PARABOLAISO_LABEL%
- linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
- initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+ linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=${PARABOLAISO_UUID}
+ initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-libre.img
}
-menuentry "Parabola GNU/Linux-libre (x86_64, UEFI) Copy to RAM" --class arch --class gnu-linux --class gnu --class os --id 'parabola-copy-to-ram' {
- set gfxpayload=keep
- search --no-floppy --set=root --label %PARABOLAISO_LABEL%
- linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram
- initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
+if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then
+ menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class gnu --class tool {
+ set gfxpayload=800x600,1024x768
+ linux /boot/memtest86+/memtest.efi
+ }
+fi
+if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then
+ menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class gnu --class tool {
+ set gfxpayload=800x600,1024x768
+ linux /boot/memtest86+/memtest
+ }
+fi
+if [ "${grub_platform}" == 'efi' ]; then
+ if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then
+ menuentry 'UEFI Shell' {
+ chainloader /shellx64.efi
+ }
+ elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then
+ menuentry 'UEFI Shell' {
+ chainloader /shellia32.efi
+ }
+ fi
+
+ menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' {
+ fwsetup
+ }
+fi
+
+menuentry 'System shutdown' --class shutdown --class poweroff {
+ echo 'System shutting down...'
+ halt
+}
+
+menuentry 'System restart' --class reboot --class restart {
+ echo 'System rebooting...'
+ reboot
}
diff --git a/configs/baseline/grub/loopback.cfg b/configs/baseline/grub/loopback.cfg
new file mode 100644
index 0000000..149c879
--- /dev/null
+++ b/configs/baseline/grub/loopback.cfg
@@ -0,0 +1,73 @@
+# https://www.supergrubdisk.org/wiki/Loopback.cfg
+
+# Search for the ISO volume
+search --no-floppy --set=parabolaiso_img_dev --file "${iso_path}"
+probe --set parabolaiso_img_dev_uuid --fs-uuid "${parabolaiso_img_dev}"
+
+# Get a human readable platform identifier
+if [ "${grub_platform}" == 'efi' ]; then
+ parabolaiso_platform='UEFI'
+ if [ "${grub_cpu}" == 'x86_64' ]; then
+ parabolaiso_platform="x64 ${parabolaiso_platform}"
+ elif [ "${grub_cpu}" == 'i386' ]; then
+ parabolaiso_platform="IA32 ${parabolaiso_platform}"
+ else
+ parabolaiso_platform="${grub_cpu} ${parabolaiso_platform}"
+ fi
+elif [ "${grub_platform}" == 'pc' ]; then
+ parabolaiso_platform='BIOS'
+else
+ parabolaiso_platform="${grub_cpu} ${grub_platform}"
+fi
+
+# Set default menu entry
+default=parabola
+timeout=15
+timeout_style=menu
+
+
+# Menu entries
+
+menuentry "Parabola GNU/Linux-libre (%ARCH%, ${parabolaiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'parabola' {
+ set gfxpayload=keep
+ linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% img_dev=UUID=${parabolaiso_img_dev_uuid} img_loop="${iso_path}"
+ initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-libre.img
+}
+
+if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then
+ menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class gnu --class tool {
+ set gfxpayload=800x600,1024x768
+ linux /boot/memtest86+/memtest.efi
+ }
+fi
+if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then
+ menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class gnu --class tool {
+ set gfxpayload=800x600,1024x768
+ linux /boot/memtest86+/memtest
+ }
+fi
+if [ "${grub_platform}" == 'efi' ]; then
+ if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then
+ menuentry 'UEFI Shell' {
+ chainloader /shellx64.efi
+ }
+ elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then
+ menuentry 'UEFI Shell' {
+ chainloader /shellia32.efi
+ }
+ fi
+
+ menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' {
+ fwsetup
+ }
+fi
+
+menuentry 'System shutdown' --class shutdown --class poweroff {
+ echo 'System shutting down...'
+ halt
+}
+
+menuentry 'System restart' --class reboot --class restart {
+ echo 'System rebooting...'
+ reboot
+}
diff --git a/configs/baseline/pacman.conf b/configs/baseline/pacman.conf
index 7bcfccb..59821bc 100644
--- a/configs/baseline/pacman.conf
+++ b/configs/baseline/pacman.conf
@@ -77,21 +77,12 @@ LocalFileSigLevel = Optional
[libre]
Include = /etc/pacman.d/mirrorlist
-#[testing]
-#Include = /etc/pacman.d/mirrorlist
-
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
-#[community-testing]
-#Include = /etc/pacman.d/mirrorlist
-
-[community]
-Include = /etc/pacman.d/mirrorlist
-
#[pcr-testing]
#Include = /etc/pacman.d/mirrorlist
diff --git a/configs/baseline/profiledef.sh b/configs/baseline/profiledef.sh
index 7e714ef..7c35814 100644
--- a/configs/baseline/profiledef.sh
+++ b/configs/baseline/profiledef.sh
@@ -2,10 +2,10 @@
# shellcheck disable=SC2034
iso_name="parabola-baseline"
-iso_label="PARA_$(date +%Y%m)"
+iso_label="PARA_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)"
iso_publisher="Parabola GNU/Linux-libre <https://parabola.nu>"
iso_application="Parabola GNU/Linux-libre baseline"
-iso_version="$(date +%Y.%m.%d)"
+iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)"
install_dir="parabola"
buildmodes=('iso')
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito'
@@ -14,7 +14,7 @@ bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito'
arch="x86_64"
pacman_conf="pacman.conf"
airootfs_image_type="erofs"
-airootfs_image_tool_options=('-zlz4hc,12' -E ztailpacking)
+airootfs_image_tool_options=('-zlzma,109' -E 'ztailpacking,fragments,dedupe')
file_permissions=(
["/etc/shadow"]="0:0:400"
)
diff --git a/configs/baseline/syslinux/syslinux-linux-libre.cfg b/configs/baseline/syslinux/syslinux-linux-libre.cfg
index 47ac1e7..458bfe4 100644
--- a/configs/baseline/syslinux/syslinux-linux-libre.cfg
+++ b/configs/baseline/syslinux/syslinux-linux-libre.cfg
@@ -2,10 +2,4 @@ LABEL parabola
MENU LABEL Parabola GNU/Linux-libre (x86_64, BIOS)
LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-libre
INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-libre.img
-APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
-
-LABEL parabola-ram
-MENU LABEL Parabola GNU/Linux-libre (x86_64, BIOS) Copy to RAM
-LINUX /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-libre
-INITRD /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-libre.img
-APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID%
diff --git a/configs/releng/airootfs/etc/mkinitcpio.conf b/configs/releng/airootfs/etc/mkinitcpio.conf
deleted file mode 100644
index f1d34eb..0000000
--- a/configs/releng/airootfs/etc/mkinitcpio.conf
+++ /dev/null
@@ -1,67 +0,0 @@
-# vim:set ft=sh
-# MODULES
-# The following modules are loaded before any boot hooks are
-# run. Advanced users may wish to specify all system modules
-# in this array. For instance:
-# MODULES=(piix ide_disk reiserfs)
-MODULES=()
-
-# BINARIES
-# This setting includes any additional binaries a given user may
-# wish into the CPIO image. This is run last, so it may be used to
-# override the actual binaries included by a given hook
-# BINARIES are dependency parsed, so you may safely ignore libraries
-BINARIES=()
-
-# FILES
-# This setting is similar to BINARIES above, however, files are added
-# as-is and are not parsed in any way. This is useful for config files.
-FILES=()
-
-# HOOKS
-# This is the most important setting in this file. The HOOKS control the
-# modules and scripts added to the image, and what happens at boot time.
-# Order is important, and it is recommended that you do not change the
-# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
-# help on a given hook.
-# 'base' is _required_ unless you know precisely what you are doing.
-# 'udev' is _required_ in order to automatically load modules
-# 'filesystems' is _required_ unless you specify your fs modules in MODULES
-# Examples:
-## This setup specifies all modules in the MODULES setting above.
-## No raid, lvm2, or encrypted root is needed.
-# HOOKS=(base)
-#
-## This setup will autodetect all modules for your system and should
-## work as a sane default
-# HOOKS=(base udev autodetect block filesystems)
-#
-## This setup will generate a 'full' image which supports most systems.
-## No autodetection is done.
-# HOOKS=(base udev block filesystems)
-#
-## This setup assembles a pata mdadm array with an encrypted root FS.
-## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
-# HOOKS=(base udev block mdadm encrypt filesystems)
-#
-## This setup loads an lvm2 volume group on a usb device.
-# HOOKS=(base udev block lvm2 filesystems)
-#
-## NOTE: If you have /usr on a separate partition, you MUST include the
-# usr, fsck and shutdown hooks.
-HOOKS=(base udev modconf memdisk parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs parabolaiso_kms block filesystems keyboard)
-
-# COMPRESSION
-# Use this to compress the initramfs image. By default, gzip compression
-# is used. Use 'cat' to create an uncompressed image.
-#COMPRESSION="gzip"
-#COMPRESSION="bzip2"
-#COMPRESSION="lzma"
-COMPRESSION="xz"
-#COMPRESSION="lzop"
-#COMPRESSION="lz4"
-#COMPRESSION="zstd"
-
-# COMPRESSION_OPTIONS
-# Additional options for the compressor
-#COMPRESSION_OPTIONS=()
diff --git a/configs/releng/airootfs/etc/mkinitcpio.conf.d/parabolaiso.conf b/configs/releng/airootfs/etc/mkinitcpio.conf.d/parabolaiso.conf
new file mode 100644
index 0000000..26c74ea
--- /dev/null
+++ b/configs/releng/airootfs/etc/mkinitcpio.conf.d/parabolaiso.conf
@@ -0,0 +1,2 @@
+HOOKS=(base udev modconf kms memdisk parabolaiso parabolaiso_loop_mnt parabolaiso_pxe_common parabolaiso_pxe_nbd parabolaiso_pxe_http parabolaiso_pxe_nfs block filesystems keyboard)
+COMPRESSION="xz"
diff --git a/configs/releng/airootfs/etc/mkinitcpio.d/linux-libre.preset b/configs/releng/airootfs/etc/mkinitcpio.d/linux-libre.preset
index 625a03d..282bcde 100644
--- a/configs/releng/airootfs/etc/mkinitcpio.d/linux-libre.preset
+++ b/configs/releng/airootfs/etc/mkinitcpio.d/linux-libre.preset
@@ -3,6 +3,6 @@
PRESETS=('parabolaiso')
ALL_kver='/boot/vmlinuz-linux-libre'
-ALL_config='/etc/mkinitcpio.conf'
+parabolaiso_config='/etc/mkinitcpio.conf.d/parabolaiso.conf'
parabolaiso_image="/boot/initramfs-linux-libre.img"
diff --git a/configs/releng/airootfs/etc/ssh/sshd_config b/configs/releng/airootfs/etc/ssh/sshd_config
deleted file mode 100644
index 93f7d63..0000000
--- a/configs/releng/airootfs/etc/ssh/sshd_config
+++ /dev/null
@@ -1,116 +0,0 @@
-# $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $
-
-# This is the sshd server system-wide configuration file. See
-# sshd_config(5) for more information.
-
-# This sshd was compiled with PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
-
-# The strategy used for options in the default sshd_config shipped with
-# OpenSSH is to specify options with their default value where
-# possible, but leave them commented. Uncommented options override the
-# default value.
-
-#Port 22
-#AddressFamily any
-#ListenAddress 0.0.0.0
-#ListenAddress ::
-
-#HostKey /etc/ssh/ssh_host_rsa_key
-#HostKey /etc/ssh/ssh_host_ecdsa_key
-#HostKey /etc/ssh/ssh_host_ed25519_key
-
-# Ciphers and keying
-#RekeyLimit default none
-
-# Logging
-#SyslogFacility AUTH
-#LogLevel INFO
-
-# Authentication:
-
-#LoginGraceTime 2m
-PermitRootLogin yes
-#StrictModes yes
-#MaxAuthTries 6
-#MaxSessions 10
-
-#PubkeyAuthentication yes
-
-# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
-# but this is overridden so installations will only check .ssh/authorized_keys
-AuthorizedKeysFile .ssh/authorized_keys
-
-#AuthorizedPrincipalsFile none
-
-#AuthorizedKeysCommand none
-#AuthorizedKeysCommandUser nobody
-
-# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
-#HostbasedAuthentication no
-# Change to yes if you don't trust ~/.ssh/known_hosts for
-# HostbasedAuthentication
-#IgnoreUserKnownHosts no
-# Don't read the user's ~/.rhosts and ~/.shosts files
-#IgnoreRhosts yes
-
-# To disable tunneled clear text passwords, change to no here!
-#PasswordAuthentication yes
-#PermitEmptyPasswords no
-
-# Change to no to disable s/key passwords
-#KbdInteractiveAuthentication yes
-
-# Kerberos options
-#KerberosAuthentication no
-#KerberosOrLocalPasswd yes
-#KerberosTicketCleanup yes
-#KerberosGetAFSToken no
-
-# GSSAPI options
-#GSSAPIAuthentication no
-#GSSAPICleanupCredentials yes
-
-# Set this to 'yes' to enable PAM authentication, account processing,
-# and session processing. If this is enabled, PAM authentication will
-# be allowed through the KbdInteractiveAuthentication and
-# PasswordAuthentication. Depending on your PAM configuration,
-# PAM authentication via KbdInteractiveAuthentication may bypass
-# the setting of "PermitRootLogin without-password".
-# If you just want the PAM account and session checks to run without
-# PAM authentication, then enable this but set PasswordAuthentication
-# and KbdInteractiveAuthentication to 'no'.
-UsePAM yes
-
-#AllowAgentForwarding yes
-#AllowTcpForwarding yes
-#GatewayPorts no
-#X11Forwarding no
-#X11DisplayOffset 10
-#X11UseLocalhost yes
-#PermitTTY yes
-PrintMotd no # pam does that
-#PrintLastLog yes
-#TCPKeepAlive yes
-#PermitUserEnvironment no
-#Compression delayed
-#ClientAliveInterval 0
-#ClientAliveCountMax 3
-#UseDNS no
-#PidFile /run/sshd.pid
-#MaxStartups 10:30:100
-#PermitTunnel no
-#ChrootDirectory none
-#VersionAddendum none
-
-# no default banner path
-#Banner none
-
-# override default of no subsystems
-Subsystem sftp /usr/lib/ssh/sftp-server
-
-# Example of overriding settings on a per-user basis
-#Match User anoncvs
-# X11Forwarding no
-# AllowTcpForwarding no
-# PermitTTY no
-# ForceCommand cvs server
diff --git a/configs/releng/airootfs/etc/ssh/sshd_config.d/10-parabolaiso.conf b/configs/releng/airootfs/etc/ssh/sshd_config.d/10-parabolaiso.conf
new file mode 100644
index 0000000..6ea7b41
--- /dev/null
+++ b/configs/releng/airootfs/etc/ssh/sshd_config.d/10-parabolaiso.conf
@@ -0,0 +1,3 @@
+# Allow root login using password authentication
+PasswordAuthentication yes
+PermitRootLogin yes
diff --git a/configs/releng/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf b/configs/releng/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf
new file mode 100644
index 0000000..0e9ceb4
--- /dev/null
+++ b/configs/releng/airootfs/etc/systemd/network.conf.d/ipv6-privacy-extensions.conf
@@ -0,0 +1,2 @@
+[Network]
+IPv6PrivacyExtensions=yes
diff --git a/configs/releng/airootfs/etc/systemd/network/20-ethernet.network b/configs/releng/airootfs/etc/systemd/network/20-ethernet.network
index 9ada778..d3a3271 100644
--- a/configs/releng/airootfs/etc/systemd/network/20-ethernet.network
+++ b/configs/releng/airootfs/etc/systemd/network/20-ethernet.network
@@ -5,9 +5,12 @@
Name=en*
Name=eth*
+[Link]
+RequiredForOnline=routable
+
[Network]
DHCP=yes
-IPv6PrivacyExtensions=yes
+MulticastDNS=yes
# systemd-networkd does not set per-interface-type default route metrics
# https://github.com/systemd/systemd/issues/17698
diff --git a/configs/releng/airootfs/etc/systemd/network/20-wlan.network b/configs/releng/airootfs/etc/systemd/network/20-wlan.network
index 601d5b8..8b70a95 100644
--- a/configs/releng/airootfs/etc/systemd/network/20-wlan.network
+++ b/configs/releng/airootfs/etc/systemd/network/20-wlan.network
@@ -1,9 +1,12 @@
[Match]
Name=wl*
+[Link]
+RequiredForOnline=routable
+
[Network]
DHCP=yes
-IPv6PrivacyExtensions=yes
+MulticastDNS=yes
# systemd-networkd does not set per-interface-type default route metrics
# https://github.com/systemd/systemd/issues/17698
diff --git a/configs/releng/airootfs/etc/systemd/network/20-wwan.network b/configs/releng/airootfs/etc/systemd/network/20-wwan.network
index 55dadc2..6e1c8dd 100644
--- a/configs/releng/airootfs/etc/systemd/network/20-wwan.network
+++ b/configs/releng/airootfs/etc/systemd/network/20-wwan.network
@@ -1,9 +1,11 @@
[Match]
-Type=ww*
+Name=ww*
+
+[Link]
+RequiredForOnline=routable
[Network]
DHCP=yes
-IPv6PrivacyExtensions=yes
# systemd-networkd does not set per-interface-type default route metrics
# https://github.com/systemd/systemd/issues/17698
@@ -11,7 +13,7 @@ IPv6PrivacyExtensions=yes
# Use values from NetworkManager. From nm_device_get_route_metric_default in
# https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/blob/main/src/core/devices/nm-device.c
[DHCPv4]
-RouteMetric=2048
+RouteMetric=700
[IPv6AcceptRA]
RouteMetric=700
diff --git a/configs/releng/airootfs/etc/systemd/resolved.conf.d/parabolaiso.conf b/configs/releng/airootfs/etc/systemd/resolved.conf.d/parabolaiso.conf
new file mode 100644
index 0000000..5d64185
--- /dev/null
+++ b/configs/releng/airootfs/etc/systemd/resolved.conf.d/parabolaiso.conf
@@ -0,0 +1,4 @@
+# Default systemd-resolved configuration for parabolaiso
+
+[Resolve]
+MulticastDNS=yes
diff --git a/configs/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service b/configs/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service
new file mode 120000
index 0000000..cd00411
--- /dev/null
+++ b/configs/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/systemd-timesyncd.service \ No newline at end of file
diff --git a/configs/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount b/configs/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount
index 0ba0e67..038961e 100644
--- a/configs/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount
+++ b/configs/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount
@@ -2,7 +2,7 @@
Description=Temporary /etc/pacman.d/gnupg directory
[Mount]
-What=ramfs
+What=tmpfs
Where=/etc/pacman.d/gnupg
-Type=ramfs
-Options=mode=0755
+Type=tmpfs
+Options=mode=0755,noswap
diff --git a/configs/releng/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service b/configs/releng/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service
deleted file mode 120000
index 8e3ff80..0000000
--- a/configs/releng/airootfs/etc/systemd/system/multi-user.target.wants/qemu-guest-agent.service
+++ /dev/null
@@ -1 +0,0 @@
-/usr/lib/systemd/system/qemu-guest-agent.service \ No newline at end of file
diff --git a/configs/releng/airootfs/etc/systemd/system/pacman-init.service b/configs/releng/airootfs/etc/systemd/system/pacman-init.service
index b18f7f8..b824884 100644
--- a/configs/releng/airootfs/etc/systemd/system/pacman-init.service
+++ b/configs/releng/airootfs/etc/systemd/system/pacman-init.service
@@ -1,7 +1,9 @@
[Unit]
Description=Initializes Pacman keyring
Requires=etc-pacman.d-gnupg.mount
-After=etc-pacman.d-gnupg.mount
+After=etc-pacman.d-gnupg.mount time-sync.target
+BindsTo=etc-pacman.d-gnupg.mount
+Before=archlinux-keyring-wkd-sync.service
[Service]
Type=oneshot
diff --git a/configs/releng/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket b/configs/releng/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket
new file mode 120000
index 0000000..3897c63
--- /dev/null
+++ b/configs/releng/airootfs/etc/systemd/system/sockets.target.wants/pcscd.socket
@@ -0,0 +1 @@
+/usr/lib/systemd/system/pcscd.socket \ No newline at end of file
diff --git a/configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service b/configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service
new file mode 120000
index 0000000..cabf28b
--- /dev/null
+++ b/configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/systemd-time-wait-sync.service \ No newline at end of file
diff --git a/configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service b/configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service
new file mode 120000
index 0000000..cd00411
--- /dev/null
+++ b/configs/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service
@@ -0,0 +1 @@
+/usr/lib/systemd/system/systemd-timesyncd.service \ No newline at end of file
diff --git a/configs/releng/airootfs/root/.automated_script.sh b/configs/releng/airootfs/root/.automated_script.sh
index 52c47e6..0d95012 100755
--- a/configs/releng/airootfs/root/.automated_script.sh
+++ b/configs/releng/airootfs/root/.automated_script.sh
@@ -1,22 +1,29 @@
#!/usr/bin/env bash
-script_cmdline ()
-{
+script_cmdline() {
local param
- for param in $(< /proc/cmdline); do
+ for param in $(</proc/cmdline); do
case "${param}" in
- script=*) echo "${param#*=}" ; return 0 ;;
+ script=*)
+ echo "${param#*=}"
+ return 0
+ ;;
esac
done
}
-automated_script ()
-{
+automated_script() {
local script rt
script="$(script_cmdline)"
if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then
- if [[ "${script}" =~ ^((http|https|ftp)://) ]]; then
- curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script >/dev/null
+ if [[ "${script}" =~ ^((http|https|ftp|tftp)://) ]]; then
+ # there's no synchronization for network availability before executing this script
+ printf '%s: waiting for network-online.target\n' "$0"
+ until systemctl --quiet is-active network-online.target; do
+ sleep 1
+ done
+ printf '%s: downloading %s\n' "$0" "${script}"
+ curl "${script}" --location --retry-connrefused --retry 10 -s -o /tmp/startup_script
rt=$?
else
cp "${script}" /tmp/startup_script
@@ -24,6 +31,9 @@ automated_script ()
fi
if [[ ${rt} -eq 0 ]]; then
chmod +x /tmp/startup_script
+ printf '%s: executing automated script\n' "$0"
+ # note that script is executed when other services (like pacman-init) may be still in progress, please
+ # synchronize to "systemctl is-system-running --wait" when your script depends on other services
/tmp/startup_script
fi
fi
diff --git a/configs/releng/airootfs/root/.gnupg/scdaemon.conf b/configs/releng/airootfs/root/.gnupg/scdaemon.conf
new file mode 100644
index 0000000..e1f3d1f
--- /dev/null
+++ b/configs/releng/airootfs/root/.gnupg/scdaemon.conf
@@ -0,0 +1,4 @@
+disable-ccid
+disable-pinpad
+pcsc-driver /usr/lib/libpcsclite.so
+pcsc-shared
diff --git a/configs/releng/airootfs/root/.zlogin b/configs/releng/airootfs/root/.zlogin
index 0fb119d..bf6bc8f 100644
--- a/configs/releng/airootfs/root/.zlogin
+++ b/configs/releng/airootfs/root/.zlogin
@@ -1,5 +1,5 @@
# fix for screen readers
-if grep -Fq 'accessibility=' /proc/cmdline &> /dev/null; then
+if grep -Fqa 'accessibility=' /proc/cmdline &> /dev/null; then
setopt SINGLE_LINE_ZLE
fi
diff --git a/configs/releng/airootfs/usr/local/bin/choose-mirror b/configs/releng/airootfs/usr/local/bin/choose-mirror
index e8f8254..2f881e4 100755
--- a/configs/releng/airootfs/usr/local/bin/choose-mirror
+++ b/configs/releng/airootfs/usr/local/bin/choose-mirror
@@ -4,21 +4,22 @@
get_cmdline() {
local param
- for param in $(< /proc/cmdline); do
+ for param in $(</proc/cmdline); do
case "${param}" in
- $1=*) echo "${param##*=}";
- return 0
- ;;
+ "${1}="*)
+ echo "${param##*=}"
+ return 0
+ ;;
esac
done
}
-mirror=$(get_cmdline mirror)
-[[ $mirror = auto ]] && mirror=$(get_cmdline parabolaiso_http_srv)
-[[ $mirror ]] || exit 0
+mirror="$(get_cmdline mirror)"
+[[ "$mirror" == 'auto' ]] && mirror="$(get_cmdline parabolaiso_http_srv)"
+[[ -n "$mirror" ]] || exit 0
mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig
-cat >/etc/pacman.d/mirrorlist << EOF
+cat >/etc/pacman.d/mirrorlist <<EOF
#
# Parabola GNU/Linux-libre repository mirrorlist
# Generated by parabolaiso
diff --git a/configs/releng/airootfs/usr/local/bin/livecd-sound b/configs/releng/airootfs/usr/local/bin/livecd-sound
index baae0d2..b92fcf2 100755
--- a/configs/releng/airootfs/usr/local/bin/livecd-sound
+++ b/configs/releng/airootfs/usr/local/bin/livecd-sound
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: GPL-3.0-or-later
usage() {
- cat <<- _EOF_
+ cat <<-_EOF_
live cd sound helper script.
Usage: livecdsound [OPTION]
OPTIONS
@@ -14,14 +14,13 @@ usage() {
_EOF_
}
-bugout () {
+bugout() {
printf "/usr/local/bin/livecdsound: programming error"
stat_fail
}
-echo_card_indices()
-{
- if [ -f /proc/asound/cards ] ; then
+echo_card_indices() {
+ if [[ -f /proc/asound/cards ]]; then
sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' /proc/asound/cards
fi
}
@@ -33,8 +32,8 @@ echo_card_indices()
# $1 <card id>
# $2 <control>
# $3 <level>
-unmute_and_set_level(){
- { [ "$3" ] &&[ "$2" ] && [ "$1" ] ; } || bugout
+unmute_and_set_level() {
+ [[ -n "$3" && -n "$2" && -n "$1" ]] || bugout
systemd-cat -t "livecdsound" printf "Setting: %s on card: %s to %s\n" "$2" "$1" "$3"
systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3" unmute
return 0
@@ -42,9 +41,8 @@ unmute_and_set_level(){
# $1 <card id>
# $2 <control>
-mute_and_zero_level()
-{
- { [ "$1" ] && [ "$2" ] ; } || bugout
+mute_and_zero_level() {
+ [[ -n "$1" && -n "$2" ]] || bugout
systemd-cat -t "livecdsound" printf "Muting control: %s on card: %s\n" "$2" "$1"
systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "0%" mute
return 0
@@ -53,17 +51,15 @@ mute_and_zero_level()
# $1 <card ID>
# $2 <control>
# $3 "on" | "off"
-switch_control()
-{
- { [ "$3" ] && [ "$1" ] ; } || bugout
+switch_control() {
+ [[ -n "$3" && -n "$1" ]] || bugout
systemd-cat -t "livecdsound" printf "Switching control: %s on card: %s to %s\n" "$2" "$1" "$3"
systemd-cat -t "livecdsound" amixer -c "$1" set "$2" "$3"
return 0
}
# $1 <card ID>
-sanify_levels_on_card()
-{
+sanify_levels_on_card() {
unmute_and_set_level "$1" "Front" "80%"
unmute_and_set_level "$1" "Master" "80%"
unmute_and_set_level "$1" "Master Mono" "80%"
@@ -134,94 +130,89 @@ sanify_levels_on_card()
}
# $1 <card ID> | "all"
-sanify_levels()
-{
+sanify_levels() {
local ttsdml_returnstatus=0
local card
case "$1" in
- all)
- for card in $(echo_card_indices) ; do
- sanify_levels_on_card "$card" || ttsdml_returnstatus=1
- done
- ;;
- *)
- sanify_levels_on_card "$1" || ttsdml_returnstatus=1
- ;;
+ all)
+ for card in $(echo_card_indices); do
+ sanify_levels_on_card "$card" || ttsdml_returnstatus=1
+ done
+ ;;
+ *)
+ sanify_levels_on_card "$1" || ttsdml_returnstatus=1
+ ;;
esac
- return $ttsdml_returnstatus
+ return "$ttsdml_returnstatus"
}
# List all cards that *should* be usable for PCM audio. In my experience,
# the console speaker (handled by the pcsp driver) isn't a suitable playback
# device, so we'll exclude it.
-list_non_pcsp_cards()
-{
+list_non_pcsp_cards() {
for card in $(echo_card_indices); do
local cardfile="/proc/asound/card${card}/id"
- if [ -r "$cardfile" ] && [ -f "$cardfile" ] && \
- [ "$(cat "$cardfile")" != pcsp ]; then
+ if [[ -r "$cardfile" && -f "$cardfile" && "$(cat "$cardfile")" != pcsp ]]; then
echo "$card"
fi
done
}
# Properly initialize the sound card so that we have audio at boot.
-unmute_all_cards()
-{
+unmute_all_cards() {
sanify_levels all
}
is_numeric() {
- local str=$1
+ local str="$1"
[[ "$str" =~ ^[0-9]+$ ]]
}
set_default_card() {
- local card=$1
- sed -e "s/%card%/$card/g" < /usr/local/share/livecd-sound/asound.conf.in \
- > /etc/asound.conf
+ local card="$1"
+ sed -e "s/%card%/$card/g" </usr/local/share/livecd-sound/asound.conf.in \
+ >/etc/asound.conf
}
play_on_card() {
- local card=$1 file=$2
+ local card="$1" file="$2"
aplay -q "-Dplughw:$card,0" "$file"
}
# If there are multiple usable sound cards, prompt the user to choose one,
# using auditory feedback.
-pick_a_card()
-{
+pick_a_card() {
set -f
usable_cards="$(list_non_pcsp_cards)"
- num_usable_cards="$(wc -w <<< "$usable_cards")"
+ num_usable_cards="$(wc -w <<<"$usable_cards")"
- if [ "$num_usable_cards" -eq 1 ]; then
+ if (( num_usable_cards == 1 )); then
systemd-cat -t "livecdsound" printf "Only one sound card is detected\n"
exit 0
fi
systemd-cat -t "livecdsound" printf "multiple sound cards detected\n"
- for card in $usable_cards; do
+ for card in "${usable_cards[@]}"; do
if ! is_numeric "$card"; then
continue
fi
- play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav&
+ play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav &
done
wait
sleep 1
- for card in $usable_cards; do
+ for card in "${usable_cards[@]}"; do
if ! is_numeric "$card"; then
continue
- fi
- play_on_card "$card" /usr/share/livecd-sounds/beep.wav
- if read -r -t 10; then
- systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card"
- set_default_card "$card"
- break
- fi
-done
+ fi
+ play_on_card "$card" /usr/share/livecd-sounds/beep.wav
+ if read -r -t 10; then
+ systemd-cat -t "livecdsound" printf "Selecting %s sound card as default\n" "$card"
+ set_default_card "$card"
+ break
+ fi
+ done
}
-if [[ $# -eq 0 ]]; then
+if (( $# == 0 )); then
echo "error: No argument passed."
exit 1
fi
diff --git a/configs/releng/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf b/configs/releng/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf
index 925962a..1af7867 100644
--- a/configs/releng/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf
+++ b/configs/releng/efiboot/loader/entries/01-parabolaiso-x86_64-linux-libre.conf
@@ -2,4 +2,4 @@ title Parabola GNU/Linux-libre install medium (x86_64, UEFI)
sort-key 01
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
-options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
+options parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID%
diff --git a/configs/releng/efiboot/loader/entries/02-parabolaiso-x86_64-speech-linux-libre.conf b/configs/releng/efiboot/loader/entries/02-parabolaiso-x86_64-speech-linux-libre.conf
index e2f3cbe..3bb7725 100644
--- a/configs/releng/efiboot/loader/entries/02-parabolaiso-x86_64-speech-linux-libre.conf
+++ b/configs/releng/efiboot/loader/entries/02-parabolaiso-x86_64-speech-linux-libre.conf
@@ -2,4 +2,4 @@ title Parabola GNU/Linux-libre install medium (x86_64, UEFI) with speech
sort-key 02
linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
-options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% accessibility=on
+options parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% accessibility=on
diff --git a/configs/releng/efiboot/loader/entries/03-parabolaiso-x86_64-ram-linux-libre.conf b/configs/releng/efiboot/loader/entries/03-parabolaiso-x86_64-ram-linux-libre.conf
deleted file mode 100644
index ea54bc3..0000000
--- a/configs/releng/efiboot/loader/entries/03-parabolaiso-x86_64-ram-linux-libre.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-title Parabola GNU/Linux-libre install medium (x86_64, UEFI, Copy to RAM)
-sort-key 03
-linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
-initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
-options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram
diff --git a/configs/releng/efiboot/loader/entries/04-parabolaiso-x86_64-ram-speech-linux-libre.conf b/configs/releng/efiboot/loader/entries/04-parabolaiso-x86_64-ram-speech-linux-libre.conf
deleted file mode 100644
index 9a5b99b..0000000
--- a/configs/releng/efiboot/loader/entries/04-parabolaiso-x86_64-ram-speech-linux-libre.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-title Parabola GNU/Linux-libre install medium (x86_64, UEFI, Copy to RAM) with speech
-sort-key 04
-linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
-initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
-options parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram accessibility=on
diff --git a/configs/releng/grub/grub.cfg b/configs/releng/grub/grub.cfg
index c8c885e..4266ef3 100644
--- a/configs/releng/grub/grub.cfg
+++ b/configs/releng/grub/grub.cfg
@@ -3,15 +3,18 @@ insmod part_gpt
insmod part_msdos
insmod fat
insmod iso9660
+insmod ntfs
+insmod ntfscomp
+insmod exfat
+insmod udf
# Use graphics-mode output
insmod all_video
insmod font
if loadfont "${prefix}/fonts/unicode.pf2" ; then
- insmod gfxterm
set gfxmode="auto"
terminal_input console
- terminal_output gfxterm
+ terminal_output console
fi
# Enable serial console
@@ -20,6 +23,15 @@ if serial --unit=0 --speed=115200; then
terminal_output --append serial
fi
+# Search for the ISO volume
+if [ -z "${PARABOLAISO_UUID}" ]; then
+ if [ -z "${PARABOLAISO_HINT}" ]; then
+ regexp --set=1:PARABOLAISO_HINT '^\(([^)]+)\)' "${cmdpath}"
+ fi
+ search --no-floppy --set=root --file '%PARABOLAISO_SEARCH_FILENAME%' --hint "${PARABOLAISO_HINT}"
+ probe --set PARABOLAISO_UUID --fs-uuid "${root}"
+fi
+
# Set default menu entry
default=parabola
timeout=15
@@ -32,29 +44,29 @@ play 600 988 1 1319 4
menuentry "Parabola GNU/Linux-libre install medium (x86_64, UEFI)" --class arch --class gnu-linux --class gnu --class os --id 'parabola' {
set gfxpayload=keep
- search --no-floppy --set=root --label %PARABOLAISO_LABEL%
- linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
+ linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=${PARABOLAISO_UUID}
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
}
menuentry "Parabola GNU/Linux-libre install medium with speakup screen reader (x86_64, UEFI)" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'parabola-accessibility' {
set gfxpayload=keep
- search --no-floppy --set=root --label %PARABOLAISO_LABEL%
- linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% accessibility=on
+ linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=${PARABOLAISO_UUID} accessibility=on
initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
}
if [ "${grub_platform}" == "efi" ]; then
if [ "${grub_cpu}" == "x86_64" ]; then
- menuentry "UEFI Shell" {
+ menuentry "Run Memtest86+ (RAM test)" --class memtest86 --class memtest --class gnu --class tool {
+ set gfxpayload=800x600,1024x768
+ linux /boot/memtest86+/memtest.efi
+ }
+ menuentry "UEFI Shell" --class efi {
insmod chain
- search --no-floppy --set=root --label %PARABOLAISO_LABEL%
chainloader /shellx64.efi
}
elif [ "${grub_cpu}" == "i386" ]; then
- menuentry "UEFI Shell" {
+ menuentry "UEFI Shell" --class efi {
insmod chain
- search --no-floppy --set=root --label %PARABOLAISO_LABEL%
chainloader /shellia32.efi
}
fi
diff --git a/configs/releng/grub/loopback.cfg b/configs/releng/grub/loopback.cfg
new file mode 100644
index 0000000..6ac328c
--- /dev/null
+++ b/configs/releng/grub/loopback.cfg
@@ -0,0 +1,80 @@
+# https://www.supergrubdisk.org/wiki/Loopback.cfg
+
+# Search for the ISO volume
+search --no-floppy --set=parabolaiso_img_dev --file "${iso_path}"
+probe --set parabolaiso_img_dev_uuid --fs-uuid "${parabolaiso_img_dev}"
+
+# Get a human readable platform identifier
+if [ "${grub_platform}" == 'efi' ]; then
+ parabolaiso_platform='UEFI'
+ if [ "${grub_cpu}" == 'x86_64' ]; then
+ parabolaiso_platform="x64 ${parabolaiso_platform}"
+ elif [ "${grub_cpu}" == 'i386' ]; then
+ parabolaiso_platform="IA32 ${parabolaiso_platform}"
+ else
+ parabolaiso_platform="${grub_cpu} ${parabolaiso_platform}"
+ fi
+elif [ "${grub_platform}" == 'pc' ]; then
+ parabolaiso_platform='BIOS'
+else
+ parabolaiso_platform="${grub_cpu} ${grub_platform}"
+fi
+
+# Set default menu entry
+default=parabola
+timeout=15
+timeout_style=menu
+
+
+# Menu entries
+
+menuentry "Parabola GNU/Linux-libre install medium (%ARCH%, ${parabolaiso_platform})" --class arch --class gnu-linux --class gnu --class os --id 'parabola' {
+ set gfxpayload=keep
+ linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% img_dev=UUID=${parabolaiso_img_dev_uuid} img_loop="${iso_path}"
+ initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-libre.img
+}
+
+menuentry "Parabola GNU/Linux-libre install medium with speakup screen reader (%ARCH%, ${parabolaiso_platform})" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'parabola-accessibility' {
+ set gfxpayload=keep
+ linux /%INSTALL_DIR%/boot/%ARCH%/vmlinuz-linux-libre parabolaisobasedir=%INSTALL_DIR% img_dev=UUID=${parabolaiso_img_dev_uuid} img_loop="${iso_path}" accessibility=on
+ initrd /%INSTALL_DIR%/boot/%ARCH%/initramfs-linux-libre.img
+}
+
+
+if [ "${grub_platform}" == 'efi' -a "${grub_cpu}" == 'x86_64' -a -f '/boot/memtest86+/memtest.efi' ]; then
+ menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool {
+ set gfxpayload=800x600,1024x768
+ linux /boot/memtest86+/memtest.efi
+ }
+fi
+if [ "${grub_platform}" == 'pc' -a -f '/boot/memtest86+/memtest' ]; then
+ menuentry 'Run Memtest86+ (RAM test)' --class memtest86 --class memtest --class gnu --class tool {
+ set gfxpayload=800x600,1024x768
+ linux /boot/memtest86+/memtest
+ }
+fi
+if [ "${grub_platform}" == 'efi' ]; then
+ if [ "${grub_cpu}" == 'x86_64' -a -f '/shellx64.efi' ]; then
+ menuentry 'UEFI Shell' --class efi {
+ chainloader /shellx64.efi
+ }
+ elif [ "${grub_cpu}" == "i386" -a -f '/shellia32.efi' ]; then
+ menuentry 'UEFI Shell' --class efi {
+ chainloader /shellia32.efi
+ }
+ fi
+
+ menuentry 'UEFI Firmware Settings' --id 'uefi-firmware' {
+ fwsetup
+ }
+fi
+
+menuentry 'System shutdown' --class shutdown --class poweroff {
+ echo 'System shutting down...'
+ halt
+}
+
+menuentry 'System restart' --class reboot --class restart {
+ echo 'System rebooting...'
+ reboot
+}
diff --git a/configs/releng/packages.both b/configs/releng/packages.both
index aabb1e6..9828871 100644
--- a/configs/releng/packages.both
+++ b/configs/releng/packages.both
@@ -1,7 +1,9 @@
alsa-utils
arch-install-scripts
base
+bcachefs-tools
bind
+bolt
brltty
btrfs-progs
cloud-init
@@ -23,6 +25,7 @@ ethtool
exfatprogs
f2fs-tools
fatresize
+foot-terminfo
fsarchiver
gnu-netcat
gpart
@@ -53,6 +56,7 @@ man-pages
mc
mdadm
memtest86+
+memtest86+-efi
mkinitcpio
mkinitcpio-parabolaiso
mkinitcpio-nfs-utils
@@ -67,6 +71,7 @@ ntfs-3g
nvme-cli
open-iscsi
openconnect
+openpgp-card-tools
openssh
openvpn
partclone
@@ -84,10 +89,10 @@ rp-pppoe
rsync
rxvt-unicode-terminfo
screen
+sequoia-sq
sdparm
sg3_utils
smartmontools
-sof-firmware
squashfs-tools
sudo
syslinux
@@ -96,6 +101,7 @@ tcpdump
terminus-font
testdisk
tmux
+tpm2-tools
tpm2-tss
udftools
usb_modeswitch
@@ -103,6 +109,7 @@ usbmuxd
usbutils
vim
vpnc
+wezterm-terminfo
wireless-regdb
wireless_tools
wpa_supplicant
diff --git a/configs/releng/pacman.conf b/configs/releng/pacman.conf
index 79a8f69..4469abc 100644
--- a/configs/releng/pacman.conf
+++ b/configs/releng/pacman.conf
@@ -76,21 +76,12 @@ LocalFileSigLevel = Optional
[libre]
Include = /etc/pacman.d/mirrorlist
-#[testing]
-#Include = /etc/pacman.d/mirrorlist
-
[core]
Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
-#[community-testing]
-#Include = /etc/pacman.d/mirrorlist
-
-[community]
-Include = /etc/pacman.d/mirrorlist
-
#[pcr-testing]
#Include = /etc/pacman.d/mirrorlist
diff --git a/configs/releng/profiledef.sh b/configs/releng/profiledef.sh
index 12df102..5ac639e 100644
--- a/configs/releng/profiledef.sh
+++ b/configs/releng/profiledef.sh
@@ -2,10 +2,10 @@
# shellcheck disable=SC2034
iso_name="parabola"
-iso_label="PARA_$(date +%Y%m)"
+iso_label="PARA_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)"
iso_publisher="Parabola GNU/Linux-libre <https://parabola.nu>"
iso_application="Parabola GNU/Linux-libre Live/Rescue CD"
-iso_version="$(date +%Y.%m.%d)"
+iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)"
install_dir="parabola"
buildmodes=('iso')
bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito'
@@ -19,6 +19,7 @@ file_permissions=(
["/etc/shadow"]="0:0:400"
["/root"]="0:0:750"
["/root/.automated_script.sh"]="0:0:755"
+ ["/root/.gnupg"]="0:0:700"
["/usr/local/bin/choose-mirror"]="0:0:755"
["/usr/local/bin/Installation_guide"]="0:0:755"
["/usr/local/bin/livecd-sound"]="0:0:755"
diff --git a/configs/releng/syslinux/parabolaiso_head.cfg b/configs/releng/syslinux/parabolaiso_head.cfg
index 591097e..4f56858 100644
--- a/configs/releng/syslinux/parabolaiso_head.cfg
+++ b/configs/releng/syslinux/parabolaiso_head.cfg
@@ -12,7 +12,7 @@ MENU CMDLINEROW 14
MENU HELPMSGROW 16
MENU HELPMSGENDROW 29
-# Refer to http://syslinux.zytor.com/wiki/index.php/Doc/menu
+# Refer to https://wiki.syslinux.org/wiki/index.php/Comboot/menu.c32
MENU COLOR border 35;40 #ff777caa #a0000000 std
MENU COLOR title 1;35;40 #ff777caa #a0000000 std
diff --git a/configs/releng/syslinux/parabolaiso_pxe32-linux-libre.cfg b/configs/releng/syslinux/parabolaiso_pxe32-linux-libre.cfg
index 5e44dc9..fa629f1 100644
--- a/configs/releng/syslinux/parabolaiso_pxe32-linux-libre.cfg
+++ b/configs/releng/syslinux/parabolaiso_pxe32-linux-libre.cfg
@@ -6,7 +6,7 @@ ENDTEXT
MENU LABEL Boot Parabola GNU/Linux-libre (i686) (NBD)
LINUX ::/%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
INITRD ::/%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
-APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% parabolaiso_nbd_srv=${pxeserver} checksum verify
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% parabolaiso_nbd_srv=${pxeserver} cms_verify=y
SYSAPPEND 3
LABEL parabola32_nfs
@@ -17,7 +17,7 @@ ENDTEXT
MENU LABEL Boot Parabola GNU/Linux-libre (i686) (NFS)
LINUX ::/%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
INITRD ::/%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
-APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt checksum verify
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt cms_verify=y
SYSAPPEND 3
LABEL parabola32_http
@@ -28,5 +28,5 @@ ENDTEXT
MENU LABEL Boot Parabola GNU/Linux-libre (i686) (HTTP)
LINUX ::/%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
INITRD ::/%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
-APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/ checksum verify
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/ cms_verify=y
SYSAPPEND 3
diff --git a/configs/releng/syslinux/parabolaiso_pxe64-linux-libre.cfg b/configs/releng/syslinux/parabolaiso_pxe64-linux-libre.cfg
index 9868ea9..44531ab 100644
--- a/configs/releng/syslinux/parabolaiso_pxe64-linux-libre.cfg
+++ b/configs/releng/syslinux/parabolaiso_pxe64-linux-libre.cfg
@@ -6,7 +6,7 @@ ENDTEXT
MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (NBD)
LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
INITRD ::/%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
-APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% parabolaiso_nbd_srv=${pxeserver} checksum verify
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% parabolaiso_nbd_srv=${pxeserver} cms_verify=y
SYSAPPEND 3
LABEL parabola64_nfs
@@ -17,7 +17,7 @@ ENDTEXT
MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (NFS)
LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
INITRD ::/%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
-APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt checksum verify
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_nfs_srv=${pxeserver}:/run/parabolaiso/bootmnt cms_verify=y
SYSAPPEND 3
LABEL parabola64_http
@@ -28,5 +28,5 @@ ENDTEXT
MENU LABEL Boot Parabola GNU/Linux-libre (x86_64) (HTTP)
LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
INITRD ::/%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
-APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/ checksum verify
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaiso_http_srv=http://${pxeserver}/ cms_verify=y
SYSAPPEND 3
diff --git a/configs/releng/syslinux/parabolaiso_sys32-linux-libre.cfg b/configs/releng/syslinux/parabolaiso_sys32-linux-libre.cfg
index 4f0acb1..d15cac6 100644
--- a/configs/releng/syslinux/parabolaiso_sys32-linux-libre.cfg
+++ b/configs/releng/syslinux/parabolaiso_sys32-linux-libre.cfg
@@ -8,7 +8,7 @@ ENDTEXT
MENU LABEL Parabola GNU/Linux-libre install medium (i686, BIOS)
LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
-APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID%
# Accessibility boot option
LABEL parabola32speech
@@ -19,7 +19,7 @@ ENDTEXT
MENU LABEL Parabola GNU/Linux-libre install medium (i686, BIOS) with ^speech
LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
-APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% accessibility=on
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% accessibility=on
# Copy to RAM boot option
LABEL parabola32ram
@@ -30,4 +30,4 @@ ENDTEXT
MENU LABEL Parabola GNU/Linux-libre install medium (i686, BIOS, Copy to RAM)
LINUX /%INSTALL_DIR%/boot/i686/vmlinuz-linux-libre
INITRD /%INSTALL_DIR%/boot/i686/initramfs-linux-libre.img
-APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% copytoram
diff --git a/configs/releng/syslinux/parabolaiso_sys64-linux-libre.cfg b/configs/releng/syslinux/parabolaiso_sys64-linux-libre.cfg
index cbf736e..9750687 100644
--- a/configs/releng/syslinux/parabolaiso_sys64-linux-libre.cfg
+++ b/configs/releng/syslinux/parabolaiso_sys64-linux-libre.cfg
@@ -6,7 +6,7 @@ ENDTEXT
MENU LABEL Parabola GNU/Linux-libre install medium (x86_64, BIOS)
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
-APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL%
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID%
# Accessibility boot option
LABEL parabola64speech
@@ -17,15 +17,4 @@ ENDTEXT
MENU LABEL Parabola GNU/Linux-libre install medium (x86_64, BIOS) with ^speech
LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
-APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% accessibility=on
-
-# Copy to RAM boot option
-LABEL parabola64ram
-TEXT HELP
-Boot the Parabola GNU/Linux-libre install medium on BIOS with Copy-to-RAM option
-It allows you to install Parabola GNU/Linux-libre or perform system maintenance.
-ENDTEXT
-MENU LABEL Parabola GNU/Linux-libre install medium (x86_64, BIOS, Copy to RAM)
-LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-libre
-INITRD /%INSTALL_DIR%/boot/x86_64/initramfs-linux-libre.img
-APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisolabel=%PARABOLAISO_LABEL% copytoram
+APPEND parabolaisobasedir=%INSTALL_DIR% parabolaisodevice=UUID=%PARABOLAISO_UUID% accessibility=on
diff --git a/configs/releng/syslinux/parabolaiso_tail.cfg b/configs/releng/syslinux/parabolaiso_tail.cfg
index e5339a2..dcbb413 100644
--- a/configs/releng/syslinux/parabolaiso_tail.cfg
+++ b/configs/releng/syslinux/parabolaiso_tail.cfg
@@ -7,12 +7,12 @@ MENU LABEL Boot existing OS
COM32 chain.c32
APPEND hd0 0
-# http://www.memtest.org/
+# https://www.memtest.org/
LABEL memtest
MENU LABEL Run Memtest86+ (RAM test)
LINUX /%INSTALL_DIR%/boot/memtest
-# http://hdt-project.org/
+# https://wiki.syslinux.org/wiki/index.php/Hdt_(Hardware_Detection_Tool)
LABEL hdt
MENU LABEL Hardware Information (HDT)
COM32 hdt.c32