From 38798f075001e53208adf83c07d57675b4736b2b Mon Sep 17 00:00:00 2001 From: LimePotato Date: Mon, 7 Aug 2023 23:56:39 -0600 Subject: [PATCH] init with some changes to archiso already --- .gitignore | 2 + archiso/releng/airootfs/etc/gshadow | 2 + archiso/releng/airootfs/etc/hostname | 1 + archiso/releng/airootfs/etc/locale.conf | 1 + archiso/releng/airootfs/etc/localtime | 1 + archiso/releng/airootfs/etc/mkinitcpio.conf | 67 +++++ .../airootfs/etc/mkinitcpio.d/linux.preset | 8 + .../airootfs/etc/modprobe.d/broadcom-wl.conf | 7 + archiso/releng/airootfs/etc/motd | 11 + archiso/releng/airootfs/etc/os-release | 11 + .../etc/pacman.d/hooks/uncomment-mirrors.hook | 13 + ...z99-remove-custom-hooks-from-airootfs.hook | 18 ++ archiso/releng/airootfs/etc/passwd | 2 + archiso/releng/airootfs/etc/resolv.conf | 1 + archiso/releng/airootfs/etc/shadow | 2 + archiso/releng/airootfs/etc/ssh/sshd_config | 116 ++++++++ .../journald.conf.d/volatile-storage.conf | 2 + .../systemd/logind.conf.d/do-not-suspend.conf | 4 + .../etc/systemd/network/20-ethernet.network | 22 ++ .../etc/systemd/network/20-wlan.network | 18 ++ .../etc/systemd/network/20-wwan.network | 17 ++ .../etc/systemd/resolved.conf.d/archiso.conf | 4 + .../systemd-gpt-auto-generator | 1 + .../etc/systemd/system/choose-mirror.service | 10 + .../cloud-config.service | 1 + .../cloud-final.service | 1 + .../cloud-init-local.service | 1 + .../cloud-init.service | 1 + ...dbus-org.freedesktop.ModemManager1.service | 1 + .../dbus-org.freedesktop.network1.service | 1 + .../dbus-org.freedesktop.resolve1.service | 1 + .../dbus-org.freedesktop.timesync1.service | 1 + .../systemd/system/etc-pacman.d-gnupg.mount | 8 + .../getty@tty1.service.d/autologin.conf | 3 + .../system/livecd-alsa-unmuter.service | 13 + .../etc/systemd/system/livecd-talk.service | 20 ++ .../ModemManager.service | 1 + .../choose-mirror.service | 1 + .../hv_fcopy_daemon.service | 1 + .../hv_kvp_daemon.service | 1 + .../hv_vss_daemon.service | 1 + .../multi-user.target.wants/iwd.service | 1 + .../livecd-talk.service | 1 + .../pacman-init.service | 1 + .../multi-user.target.wants/reflector.service | 1 + .../multi-user.target.wants/sshd.service | 1 + .../systemd-networkd.service | 1 + .../systemd-resolved.service | 1 + .../vboxservice.service | 1 + .../multi-user.target.wants/vmtoolsd.service | 1 + .../vmware-vmblock-fuse.service | 1 + .../systemd-networkd-wait-online.service | 1 + .../etc/systemd/system/pacman-init.service | 15 ++ .../system/reflector.service.d/archiso.conf | 6 + .../systemd-networkd.socket | 1 + .../livecd-alsa-unmuter.service | 1 + .../systemd-time-wait-sync.service | 1 + .../systemd-timesyncd.service | 1 + .../wait-for-only-one-interface.conf | 6 + .../airootfs/etc/xdg/reflector/reflector.conf | 8 + .../releng/airootfs/root/.automated_script.sh | 43 +++ archiso/releng/airootfs/root/.zlogin | 6 + .../airootfs/usr/local/bin/Installation_guide | 6 + .../airootfs/usr/local/bin/choose-mirror | 28 ++ .../airootfs/usr/local/bin/livecd-sound | 248 ++++++++++++++++++ .../local/share/livecd-sound/asound.conf.in | 3 + archiso/releng/bootstrap_packages.x86_64 | 2 + .../entries/01-archiso-x86_64-linux.conf | 7 + .../02-archiso-x86_64-speech-linux.conf | 7 + archiso/releng/efiboot/loader/loader.conf | 3 + archiso/releng/grub/grub.cfg | 87 ++++++ archiso/releng/packages.x86_64 | 127 +++++++++ archiso/releng/pacman.conf | 98 +++++++ archiso/releng/profiledef.sh | 26 ++ archiso/releng/syslinux/archiso_head.cfg | 28 ++ archiso/releng/syslinux/archiso_pxe-linux.cfg | 32 +++ archiso/releng/syslinux/archiso_pxe.cfg | 5 + archiso/releng/syslinux/archiso_sys-linux.cfg | 20 ++ archiso/releng/syslinux/archiso_sys.cfg | 8 + archiso/releng/syslinux/archiso_tail.cfg | 35 +++ archiso/releng/syslinux/splash.png | Bin 0 -> 52227 bytes archiso/releng/syslinux/syslinux.cfg | 11 + 82 files changed, 1278 insertions(+) create mode 100644 .gitignore create mode 100644 archiso/releng/airootfs/etc/gshadow create mode 100644 archiso/releng/airootfs/etc/hostname create mode 100644 archiso/releng/airootfs/etc/locale.conf create mode 120000 archiso/releng/airootfs/etc/localtime create mode 100644 archiso/releng/airootfs/etc/mkinitcpio.conf create mode 100644 archiso/releng/airootfs/etc/mkinitcpio.d/linux.preset create mode 100644 archiso/releng/airootfs/etc/modprobe.d/broadcom-wl.conf create mode 100644 archiso/releng/airootfs/etc/motd create mode 100644 archiso/releng/airootfs/etc/os-release create mode 100644 archiso/releng/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook create mode 100644 archiso/releng/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook create mode 100644 archiso/releng/airootfs/etc/passwd create mode 120000 archiso/releng/airootfs/etc/resolv.conf create mode 100644 archiso/releng/airootfs/etc/shadow create mode 100644 archiso/releng/airootfs/etc/ssh/sshd_config create mode 100644 archiso/releng/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf create mode 100644 archiso/releng/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf create mode 100644 archiso/releng/airootfs/etc/systemd/network/20-ethernet.network create mode 100644 archiso/releng/airootfs/etc/systemd/network/20-wlan.network create mode 100644 archiso/releng/airootfs/etc/systemd/network/20-wwan.network create mode 100644 archiso/releng/airootfs/etc/systemd/resolved.conf.d/archiso.conf create mode 120000 archiso/releng/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator create mode 100644 archiso/releng/airootfs/etc/systemd/system/choose-mirror.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service create mode 100644 archiso/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount create mode 100644 archiso/releng/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf create mode 100644 archiso/releng/airootfs/etc/systemd/system/livecd-alsa-unmuter.service create mode 100644 archiso/releng/airootfs/etc/systemd/system/livecd-talk.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service create mode 100644 archiso/releng/airootfs/etc/systemd/system/pacman-init.service create mode 100644 archiso/releng/airootfs/etc/systemd/system/reflector.service.d/archiso.conf create mode 120000 archiso/releng/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket create mode 120000 archiso/releng/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service create mode 120000 archiso/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service create mode 100644 archiso/releng/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf create mode 100644 archiso/releng/airootfs/etc/xdg/reflector/reflector.conf create mode 100755 archiso/releng/airootfs/root/.automated_script.sh create mode 100644 archiso/releng/airootfs/root/.zlogin create mode 100755 archiso/releng/airootfs/usr/local/bin/Installation_guide create mode 100755 archiso/releng/airootfs/usr/local/bin/choose-mirror create mode 100755 archiso/releng/airootfs/usr/local/bin/livecd-sound create mode 100644 archiso/releng/airootfs/usr/local/share/livecd-sound/asound.conf.in create mode 100644 archiso/releng/bootstrap_packages.x86_64 create mode 100644 archiso/releng/efiboot/loader/entries/01-archiso-x86_64-linux.conf create mode 100644 archiso/releng/efiboot/loader/entries/02-archiso-x86_64-speech-linux.conf create mode 100644 archiso/releng/efiboot/loader/loader.conf create mode 100644 archiso/releng/grub/grub.cfg create mode 100644 archiso/releng/packages.x86_64 create mode 100644 archiso/releng/pacman.conf create mode 100644 archiso/releng/profiledef.sh create mode 100644 archiso/releng/syslinux/archiso_head.cfg create mode 100644 archiso/releng/syslinux/archiso_pxe-linux.cfg create mode 100644 archiso/releng/syslinux/archiso_pxe.cfg create mode 100644 archiso/releng/syslinux/archiso_sys-linux.cfg create mode 100644 archiso/releng/syslinux/archiso_sys.cfg create mode 100644 archiso/releng/syslinux/archiso_tail.cfg create mode 100644 archiso/releng/syslinux/splash.png create mode 100644 archiso/releng/syslinux/syslinux.cfg diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6cb0d34 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/IMAGES +/VirtMachines \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/gshadow b/archiso/releng/airootfs/etc/gshadow new file mode 100644 index 0000000..efe6156 --- /dev/null +++ b/archiso/releng/airootfs/etc/gshadow @@ -0,0 +1,2 @@ +root:!*::root +bm01:!*:: diff --git a/archiso/releng/airootfs/etc/hostname b/archiso/releng/airootfs/etc/hostname new file mode 100644 index 0000000..5ea656d --- /dev/null +++ b/archiso/releng/airootfs/etc/hostname @@ -0,0 +1 @@ +obos \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/locale.conf b/archiso/releng/airootfs/etc/locale.conf new file mode 100644 index 0000000..f9c983c --- /dev/null +++ b/archiso/releng/airootfs/etc/locale.conf @@ -0,0 +1 @@ +LANG=C.UTF-8 diff --git a/archiso/releng/airootfs/etc/localtime b/archiso/releng/airootfs/etc/localtime new file mode 120000 index 0000000..0e35b57 --- /dev/null +++ b/archiso/releng/airootfs/etc/localtime @@ -0,0 +1 @@ +/usr/share/zoneinfo/UTC \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/mkinitcpio.conf b/archiso/releng/airootfs/etc/mkinitcpio.conf new file mode 100644 index 0000000..96a8752 --- /dev/null +++ b/archiso/releng/airootfs/etc/mkinitcpio.conf @@ -0,0 +1,67 @@ +# 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 ' 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 kms memdisk archiso archiso_loop_mnt archiso_pxe_common archiso_pxe_nbd archiso_pxe_http archiso_pxe_nfs 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/archiso/releng/airootfs/etc/mkinitcpio.d/linux.preset b/archiso/releng/airootfs/etc/mkinitcpio.d/linux.preset new file mode 100644 index 0000000..9f67184 --- /dev/null +++ b/archiso/releng/airootfs/etc/mkinitcpio.d/linux.preset @@ -0,0 +1,8 @@ +# mkinitcpio preset file for the 'linux' package on archiso + +PRESETS=('archiso') + +ALL_kver='/boot/vmlinuz-linux' +ALL_config='/etc/mkinitcpio.conf' + +archiso_image="/boot/initramfs-linux.img" diff --git a/archiso/releng/airootfs/etc/modprobe.d/broadcom-wl.conf b/archiso/releng/airootfs/etc/modprobe.d/broadcom-wl.conf new file mode 100644 index 0000000..0eae70c --- /dev/null +++ b/archiso/releng/airootfs/etc/modprobe.d/broadcom-wl.conf @@ -0,0 +1,7 @@ +# The broadcom-wl package requires some modules to be disabled in order to use +# wl. Since the ISO image needs to cover many hardware cases, this file +# overrides the default blacklist in /usr/lib/modprobe.d/ +# +# If you need to use wl, you may need to delete this file, then `rmmod` any +# already-loaded modules that are now blacklisted before proceeding to modprobe +# wl itself. diff --git a/archiso/releng/airootfs/etc/motd b/archiso/releng/airootfs/etc/motd new file mode 100644 index 0000000..4d9eda1 --- /dev/null +++ b/archiso/releng/airootfs/etc/motd @@ -0,0 +1,11 @@ +To install Arch Linux follow the installation guide: +https://wiki.archlinux.org/title/Installation_guide + +For Wi-Fi, authenticate to the wireless network using the iwctl utility. +For mobile broadband (WWAN) modems, connect with the mmcli utility. +Ethernet, WLAN and WWAN interfaces using DHCP should work automatically. + +After connecting to the internet, the installation guide can be accessed +via the convenience script Installation_guide. + +                                           diff --git a/archiso/releng/airootfs/etc/os-release b/archiso/releng/airootfs/etc/os-release new file mode 100644 index 0000000..1fbe878 --- /dev/null +++ b/archiso/releng/airootfs/etc/os-release @@ -0,0 +1,11 @@ +NAME="Ourobor.OS" +PRETTY_NAME="Ourobor.OS" +ID_LIKE=arch +BUILD_ID=rolling +ANSI_COLOR="38;2;23;147;209" +HOME_URL="https://limepot.xyz/" +DOCUMENTATION_URL="https://git.ouroboros.group/Ouroboros/Ourobor.OS/wiki" +SUPPORT_URL="https://git.ouroboros.group/Ouroboros/Ourobor.OS/" +BUG_REPORT_URL="https://git.ouroboros.group/Ouroboros/Ourobor.OS/issues" +PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" +LOGO=archlinux-logo \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook b/archiso/releng/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook new file mode 100644 index 0000000..342aa95 --- /dev/null +++ b/archiso/releng/airootfs/etc/pacman.d/hooks/uncomment-mirrors.hook @@ -0,0 +1,13 @@ +# remove from airootfs! +[Trigger] +Operation = Install +Operation = Upgrade +Type = Package +Target = pacman-mirrorlist + +[Action] +Description = Uncommenting all mirrors in /etc/pacman.d/mirrorlist... +When = PostTransaction +Depends = pacman-mirrorlist +Depends = sed +Exec = /usr/bin/sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist diff --git a/archiso/releng/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook b/archiso/releng/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook new file mode 100644 index 0000000..8dfb943 --- /dev/null +++ b/archiso/releng/airootfs/etc/pacman.d/hooks/zzzz99-remove-custom-hooks-from-airootfs.hook @@ -0,0 +1,18 @@ +# remove from airootfs! +# As a workaround for https://bugs.archlinux.org/task/49347 , remove pacman hooks specific to the ISO build process. +# If not, they would be used when pacstrap is run in the live environment. + +[Trigger] +Operation = Install +Operation = Upgrade +Operation = Remove +Type = Package +Target = * + +[Action] +Description = Work around FS#49347 by removing custom pacman hooks that are only required during ISO build... +When = PostTransaction +Depends = sh +Depends = coreutils +Depends = grep +Exec = /bin/sh -c "rm -- $(grep -Frl 'remove from airootfs' /etc/pacman.d/hooks/)" diff --git a/archiso/releng/airootfs/etc/passwd b/archiso/releng/airootfs/etc/passwd new file mode 100644 index 0000000..cf01d8c --- /dev/null +++ b/archiso/releng/airootfs/etc/passwd @@ -0,0 +1,2 @@ +root:x:0:0:root:/root:/usr/bin/bash +bm01:x:1000:1000::/home/dtos:/usr/bin/fish \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/resolv.conf b/archiso/releng/airootfs/etc/resolv.conf new file mode 120000 index 0000000..3639662 --- /dev/null +++ b/archiso/releng/airootfs/etc/resolv.conf @@ -0,0 +1 @@ +/run/systemd/resolve/stub-resolv.conf \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/shadow b/archiso/releng/airootfs/etc/shadow new file mode 100644 index 0000000..7a9993b --- /dev/null +++ b/archiso/releng/airootfs/etc/shadow @@ -0,0 +1,2 @@ +root::14871:::::: +bm01:$6$CuxNM75nBKFBFevU$aq58uNgBZabcWygkyjBYrP6qNrc73e1V8p8HBRZB17kU3d2DF/1ubH5A2kA6.nk.nz/LvOYqWlsl94zUVrNcg0:14871:::::: \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/ssh/sshd_config b/archiso/releng/airootfs/etc/ssh/sshd_config new file mode 100644 index 0000000..dc22c11 --- /dev/null +++ b/archiso/releng/airootfs/etc/ssh/sshd_config @@ -0,0 +1,116 @@ +# $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 no + +# 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 prohibit-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 +#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/archiso/releng/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf b/archiso/releng/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf new file mode 100644 index 0000000..b69850d --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/journald.conf.d/volatile-storage.conf @@ -0,0 +1,2 @@ +[Journal] +Storage=volatile diff --git a/archiso/releng/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf b/archiso/releng/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf new file mode 100644 index 0000000..f3ecb39 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/logind.conf.d/do-not-suspend.conf @@ -0,0 +1,4 @@ +[Login] +HandleSuspendKey=ignore +HandleHibernateKey=ignore +HandleLidSwitch=ignore diff --git a/archiso/releng/airootfs/etc/systemd/network/20-ethernet.network b/archiso/releng/airootfs/etc/systemd/network/20-ethernet.network new file mode 100644 index 0000000..ce8de1f --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/network/20-ethernet.network @@ -0,0 +1,22 @@ +[Match] +# Matching with "Type=ether" causes issues with containers because it also matches virtual Ethernet interfaces (veth*). +# See https://bugs.archlinux.org/task/70892 +# Instead match by globbing the network interface name. +Name=en* +Name=eth* + +[Network] +DHCP=yes +MulticastDNS=yes +IPv6PrivacyExtensions=yes + +# systemd-networkd does not set per-interface-type default route metrics +# https://github.com/systemd/systemd/issues/17698 +# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband. +# 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=100 + +[IPv6AcceptRA] +RouteMetric=100 diff --git a/archiso/releng/airootfs/etc/systemd/network/20-wlan.network b/archiso/releng/airootfs/etc/systemd/network/20-wlan.network new file mode 100644 index 0000000..e5990bf --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/network/20-wlan.network @@ -0,0 +1,18 @@ +[Match] +Name=wl* + +[Network] +DHCP=yes +MulticastDNS=yes +IPv6PrivacyExtensions=yes + +# systemd-networkd does not set per-interface-type default route metrics +# https://github.com/systemd/systemd/issues/17698 +# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband. +# 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=600 + +[IPv6AcceptRA] +RouteMetric=600 diff --git a/archiso/releng/airootfs/etc/systemd/network/20-wwan.network b/archiso/releng/airootfs/etc/systemd/network/20-wwan.network new file mode 100644 index 0000000..9104c24 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/network/20-wwan.network @@ -0,0 +1,17 @@ +[Match] +Name=ww* + +[Network] +DHCP=yes +IPv6PrivacyExtensions=yes + +# systemd-networkd does not set per-interface-type default route metrics +# https://github.com/systemd/systemd/issues/17698 +# Explicitly set route metric, so that Ethernet is preferred over Wi-Fi and Wi-Fi is preferred over mobile broadband. +# 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=700 + +[IPv6AcceptRA] +RouteMetric=700 diff --git a/archiso/releng/airootfs/etc/systemd/resolved.conf.d/archiso.conf b/archiso/releng/airootfs/etc/systemd/resolved.conf.d/archiso.conf new file mode 100644 index 0000000..636f3bd --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/resolved.conf.d/archiso.conf @@ -0,0 +1,4 @@ +# Default systemd-resolved configuration for archiso + +[Resolve] +MulticastDNS=yes diff --git a/archiso/releng/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator b/archiso/releng/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator new file mode 120000 index 0000000..dc1dc0c --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system-generators/systemd-gpt-auto-generator @@ -0,0 +1 @@ +/dev/null \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/choose-mirror.service b/archiso/releng/airootfs/etc/systemd/system/choose-mirror.service new file mode 100644 index 0000000..b6a3562 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/choose-mirror.service @@ -0,0 +1,10 @@ +[Unit] +Description=Choose mirror from the kernel command line +ConditionKernelCommandLine=mirror + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/choose-mirror + +[Install] +WantedBy=multi-user.target diff --git a/archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service b/archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service new file mode 120000 index 0000000..ebc50f0 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-config.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-config.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service b/archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service new file mode 120000 index 0000000..80fa3c8 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-final.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-final.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service b/archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service new file mode 120000 index 0000000..dd8e9f1 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init-local.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-init-local.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init.service b/archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init.service new file mode 120000 index 0000000..24c7a26 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/cloud-init.target.wants/cloud-init.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/cloud-init.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service b/archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service new file mode 120000 index 0000000..dcf7c8e --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/ModemManager.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service b/archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service new file mode 120000 index 0000000..4c158e6 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.network1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service b/archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service new file mode 120000 index 0000000..4f6ae34 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.resolve1.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-resolved.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service b/archiso/releng/airootfs/etc/systemd/system/dbus-org.freedesktop.timesync1.service new file mode 120000 index 0000000..cd00411 --- /dev/null +++ b/archiso/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/archiso/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount b/archiso/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount new file mode 100644 index 0000000..0ba0e67 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/etc-pacman.d-gnupg.mount @@ -0,0 +1,8 @@ +[Unit] +Description=Temporary /etc/pacman.d/gnupg directory + +[Mount] +What=ramfs +Where=/etc/pacman.d/gnupg +Type=ramfs +Options=mode=0755 diff --git a/archiso/releng/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf b/archiso/releng/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf new file mode 100644 index 0000000..b9d22eb --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/getty@tty1.service.d/autologin.conf @@ -0,0 +1,3 @@ +[Service] +ExecStart= +ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin root - $TERM diff --git a/archiso/releng/airootfs/etc/systemd/system/livecd-alsa-unmuter.service b/archiso/releng/airootfs/etc/systemd/system/livecd-alsa-unmuter.service new file mode 100644 index 0000000..03db4b9 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/livecd-alsa-unmuter.service @@ -0,0 +1,13 @@ +[Unit] +Description=Unmute All Sound Card Controls For Use With The Live Arch Environment +# This needs to run after the audio device becomes available. +Wants=systemd-udev-settle.service +After=systemd-udev-settle.service sound.target +ConditionKernelCommandLine=accessibility=on + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/livecd-sound -u + +[Install] +WantedBy=sound.target diff --git a/archiso/releng/airootfs/etc/systemd/system/livecd-talk.service b/archiso/releng/airootfs/etc/systemd/system/livecd-talk.service new file mode 100644 index 0000000..b38df22 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/livecd-talk.service @@ -0,0 +1,20 @@ +[Unit] +Description=Screen reader service +After=livecd-alsa-unmuter.service +Before=getty@tty1.service +ConditionKernelCommandLine=accessibility=on + +[Service] +Type=oneshot +TTYPath=/dev/tty13 +ExecStartPre=/usr/bin/chvt 13 +ExecStart=/usr/local/bin/livecd-sound -p +ExecStartPost=/usr/bin/chvt 1 +ExecStartPost=systemctl start espeakup.service +StandardInput=tty +TTYVHangup=yes +TTYVTDisallocate=yes +RemainAfterExit=true + +[Install] +WantedBy=multi-user.target diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service new file mode 120000 index 0000000..dcf7c8e --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/ModemManager.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/ModemManager.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service new file mode 120000 index 0000000..2d8d256 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/choose-mirror.service @@ -0,0 +1 @@ +../choose-mirror.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service new file mode 120000 index 0000000..20ac7b2 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_fcopy_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_fcopy_daemon.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service new file mode 120000 index 0000000..a7eac4a --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_kvp_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_kvp_daemon.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service new file mode 120000 index 0000000..eae19ef --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/hv_vss_daemon.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/hv_vss_daemon.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service new file mode 120000 index 0000000..3625abd --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/iwd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/iwd.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service new file mode 120000 index 0000000..b917481 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/livecd-talk.service @@ -0,0 +1 @@ +/etc/systemd/system/livecd-talk.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service new file mode 120000 index 0000000..d09eec6 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/pacman-init.service @@ -0,0 +1 @@ +../pacman-init.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service new file mode 120000 index 0000000..d372729 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/reflector.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/reflector.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service new file mode 120000 index 0000000..d21ebd9 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/sshd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/sshd.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service new file mode 120000 index 0000000..4c158e6 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/systemd-networkd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service new file mode 120000 index 0000000..4f6ae34 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/systemd-resolved.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-resolved.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service new file mode 120000 index 0000000..cb2d560 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/vboxservice.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vboxservice.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service new file mode 120000 index 0000000..e0a11a7 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/vmtoolsd.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vmtoolsd.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service new file mode 120000 index 0000000..173f306 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/multi-user.target.wants/vmware-vmblock-fuse.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/vmware-vmblock-fuse.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service b/archiso/releng/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service new file mode 120000 index 0000000..7d6ad92 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/network-online.target.wants/systemd-networkd-wait-online.service @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd-wait-online.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/pacman-init.service b/archiso/releng/airootfs/etc/systemd/system/pacman-init.service new file mode 100644 index 0000000..b824884 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/pacman-init.service @@ -0,0 +1,15 @@ +[Unit] +Description=Initializes Pacman keyring +Requires=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 +RemainAfterExit=yes +ExecStart=/usr/bin/pacman-key --init +ExecStart=/usr/bin/pacman-key --populate + +[Install] +WantedBy=multi-user.target diff --git a/archiso/releng/airootfs/etc/systemd/system/reflector.service.d/archiso.conf b/archiso/releng/airootfs/etc/systemd/system/reflector.service.d/archiso.conf new file mode 100644 index 0000000..de6664d --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/reflector.service.d/archiso.conf @@ -0,0 +1,6 @@ +[Unit] +ConditionKernelCommandLine=!mirror + +[Service] +Restart=on-failure +RestartSec=10 diff --git a/archiso/releng/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket b/archiso/releng/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket new file mode 120000 index 0000000..51942c8 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/sockets.target.wants/systemd-networkd.socket @@ -0,0 +1 @@ +/usr/lib/systemd/system/systemd-networkd.socket \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service b/archiso/releng/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service new file mode 120000 index 0000000..98c0fc8 --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/sound.target.wants/livecd-alsa-unmuter.service @@ -0,0 +1 @@ +../livecd-alsa-unmuter.service \ No newline at end of file diff --git a/archiso/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service b/archiso/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-time-wait-sync.service new file mode 120000 index 0000000..cabf28b --- /dev/null +++ b/archiso/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/archiso/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service b/archiso/releng/airootfs/etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service new file mode 120000 index 0000000..cd00411 --- /dev/null +++ b/archiso/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/archiso/releng/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf b/archiso/releng/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf new file mode 100644 index 0000000..c9f9bce --- /dev/null +++ b/archiso/releng/airootfs/etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf @@ -0,0 +1,6 @@ +# Allow systemd-networkd-wait-online to succeed with one interface, otherwise, if multiple network interfaces exist, +# network-online.target gets needlessly delayed. +# See https://wiki.archlinux.org/title/systemd-networkd#systemd-networkd-wait-online +[Service] +ExecStart= +ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any diff --git a/archiso/releng/airootfs/etc/xdg/reflector/reflector.conf b/archiso/releng/airootfs/etc/xdg/reflector/reflector.conf new file mode 100644 index 0000000..7c830d2 --- /dev/null +++ b/archiso/releng/airootfs/etc/xdg/reflector/reflector.conf @@ -0,0 +1,8 @@ +# Reflector configuration file for the systemd service. + +--save /etc/pacman.d/mirrorlist +--ipv4 +--ipv6 +--protocol https +--latest 20 +--sort rate diff --git a/archiso/releng/airootfs/root/.automated_script.sh b/archiso/releng/airootfs/root/.automated_script.sh new file mode 100755 index 0000000..f257537 --- /dev/null +++ b/archiso/releng/airootfs/root/.automated_script.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +script_cmdline () +{ + local param + for param in $(< /proc/cmdline); do + case "${param}" in + script=*) echo "${param#*=}" ; return 0 ;; + esac + done +} + +automated_script () +{ + local script rt + script="$(script_cmdline)" + if [[ -n "${script}" && ! -x /tmp/startup_script ]]; then + if [[ "${script}" =~ ^((http|https|ftp)://) ]]; 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 + rt=$? + 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 +} + +if [[ $(tty) == "/dev/tty1" ]]; then + automated_script +fi diff --git a/archiso/releng/airootfs/root/.zlogin b/archiso/releng/airootfs/root/.zlogin new file mode 100644 index 0000000..bf6bc8f --- /dev/null +++ b/archiso/releng/airootfs/root/.zlogin @@ -0,0 +1,6 @@ +# fix for screen readers +if grep -Fqa 'accessibility=' /proc/cmdline &> /dev/null; then + setopt SINGLE_LINE_ZLE +fi + +~/.automated_script.sh diff --git a/archiso/releng/airootfs/usr/local/bin/Installation_guide b/archiso/releng/airootfs/usr/local/bin/Installation_guide new file mode 100755 index 0000000..08a3584 --- /dev/null +++ b/archiso/releng/airootfs/usr/local/bin/Installation_guide @@ -0,0 +1,6 @@ +#!/bin/sh +# +# SPDX-License-Identifier: GPL-3.0-or-later + +exec lynx 'https://wiki.archlinux.org/title/Installation_guide' +exec lynx 'https://github.com/MatMoul/archfi' \ No newline at end of file diff --git a/archiso/releng/airootfs/usr/local/bin/choose-mirror b/archiso/releng/airootfs/usr/local/bin/choose-mirror new file mode 100755 index 0000000..b021945 --- /dev/null +++ b/archiso/releng/airootfs/usr/local/bin/choose-mirror @@ -0,0 +1,28 @@ +#!/bin/bash +# +# SPDX-License-Identifier: GPL-3.0-or-later + +get_cmdline() { + local param + for param in $(< /proc/cmdline); do + case "${param}" in + $1=*) echo "${param##*=}"; + return 0 + ;; + esac + done +} + +mirror=$(get_cmdline mirror) +[[ $mirror = auto ]] && mirror=$(get_cmdline archiso_http_srv) +[[ $mirror ]] || exit 0 + +mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig +cat >/etc/pacman.d/mirrorlist << EOF +# +# Arch Linux repository mirrorlist +# Generated by archiso +# + +Server = ${mirror%%/}/\$repo/os/\$arch +EOF diff --git a/archiso/releng/airootfs/usr/local/bin/livecd-sound b/archiso/releng/airootfs/usr/local/bin/livecd-sound new file mode 100755 index 0000000..baae0d2 --- /dev/null +++ b/archiso/releng/airootfs/usr/local/bin/livecd-sound @@ -0,0 +1,248 @@ +#!/usr/bin/env bash +# +# SPDX-License-Identifier: GPL-3.0-or-later + +usage() { + cat <<- _EOF_ + live cd sound helper script. + Usage: livecdsound [OPTION] + OPTIONS + -u, --unmute unmute all sound cards + -p, --pick select a card for speetch output + -h, --help Show this usage message + +_EOF_ +} + +bugout () { + printf "/usr/local/bin/livecdsound: programming error" + stat_fail +} + +echo_card_indices() +{ + if [ -f /proc/asound/cards ] ; then + sed -n -e's/^[[:space:]]*\([0-7]\)[[:space:]].*/\1/p' /proc/asound/cards + fi +} + +# The following functions try to set many controls. +# No card has all the controls and so some of the attempts are bound to fail. +# Because of this, the functions can't return useful status values. + +# $1 +# $2 +# $3 +unmute_and_set_level(){ + { [ "$3" ] &&[ "$2" ] && [ "$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 +} + +# $1 +# $2 +mute_and_zero_level() +{ + { [ "$1" ] && [ "$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 +} + +# $1 +# $2 +# $3 "on" | "off" +switch_control() +{ + { [ "$3" ] && [ "$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 +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%" + unmute_and_set_level "$1" "Master Digital" "80%" # E.g., cs4237B + unmute_and_set_level "$1" "Playback" "80%" + unmute_and_set_level "$1" "Headphone" "100%" + unmute_and_set_level "$1" "PCM" "80%" + unmute_and_set_level "$1" "PCM,1" "80%" # E.g., ess1969 + unmute_and_set_level "$1" "DAC" "80%" # E.g., envy24, cs46xx + unmute_and_set_level "$1" "DAC,0" "80%" # E.g., envy24 + unmute_and_set_level "$1" "DAC,1" "80%" # E.g., envy24 + unmute_and_set_level "$1" "Synth" "80%" + unmute_and_set_level "$1" "CD" "80%" + unmute_and_set_level "$1" "PC Speaker" "100%" + + mute_and_zero_level "$1" "Mic" + mute_and_zero_level "$1" "IEC958" # Ubuntu #19648 + + # Intel P4P800-MX + switch_control "$1" "Master Playback Switch" on + switch_control "$1" "Master Surround" on + + # Trident/YMFPCI/emu10k1: + unmute_and_set_level "$1" "Wave" "80%" + unmute_and_set_level "$1" "Music" "80%" + unmute_and_set_level "$1" "AC97" "80%" + + # DRC: + unmute_and_set_level "$1" "Dynamic Range Compression" "80%" + + # Required for HDA Intel (hda-intel): + unmute_and_set_level "$1" "Front" "80%" + + # Required for SB Live 7.1/24-bit (ca0106): + unmute_and_set_level "$1" "Analog Front" "80%" + + # Required at least for Via 823x hardware on DFI K8M800-MLVF Motherboard + switch_control "$1" "IEC958 Capture Monitor" off + + # Required for hardware allowing toggles for AC97 through IEC958, + # valid values are 0, 1, 2, 3. Needs to be set to 0 for PCM1. + unmute_and_set_level "$1" "IEC958 Playback AC97-SPSA" "0" + + # Required for newer Via hardware + unmute_and_set_level "$1" "VIA DXS,0" "80%" + unmute_and_set_level "$1" "VIA DXS,1" "80%" + unmute_and_set_level "$1" "VIA DXS,2" "80%" + unmute_and_set_level "$1" "VIA DXS,3" "80%" + + # Required on some notebooks with ICH4: + switch_control "$1" "Headphone Jack Sense" off + switch_control "$1" "Line Jack Sense" off + + # Some machines need one or more of these to be on; + # others need one or more of these to be off: + + switch_control "$1" "Audigy Analog/Digital Output Jack" on + switch_control "$1" "SB Live Analog/Digital Output Jack" on + + # D1984 -- Thinkpad T61/X61 + switch_control "$1" "Speaker" on + switch_control "$1" "Headphone" on + + # HDA-Intel w/ "Digital" capture mixer (See Ubuntu #193823) + unmute_and_set_level "$1" "Digital" "80%" + + return 0 +} + +# $1 | "all" +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 + ;; + esac + 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() +{ + for card in $(echo_card_indices); do + local cardfile="/proc/asound/card${card}/id" + 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() +{ + sanify_levels all +} + +is_numeric() { + 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 +} + +play_on_card() { + 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() +{ + set -f + usable_cards="$(list_non_pcsp_cards)" + num_usable_cards="$(wc -w <<< "$usable_cards")" + + if [ "$num_usable_cards" -eq 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 + if ! is_numeric "$card"; then + continue + fi + play_on_card "$card" /usr/share/livecd-sounds/pick-a-card.wav& + done + wait + sleep 1 + 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 +} + +if [[ $# -eq 0 ]]; then + echo "error: No argument passed." + exit 1 +fi +while [[ "${1}" != "" ]]; do + case ${1} in + -h|--help) + usage + exit + ;; + -u|--unmute) + systemd-cat -t "livecdsound" printf "Unmuting all cards" + unmute_all_cards + ;; + -p|--pick) + pick_a_card + ;; + *) + echo "error: Unsupported argument" + usage + exit 1 + ;; + esac + shift +done diff --git a/archiso/releng/airootfs/usr/local/share/livecd-sound/asound.conf.in b/archiso/releng/airootfs/usr/local/share/livecd-sound/asound.conf.in new file mode 100644 index 0000000..3f9c7aa --- /dev/null +++ b/archiso/releng/airootfs/usr/local/share/livecd-sound/asound.conf.in @@ -0,0 +1,3 @@ +Defaults node +defaults.ctl.card %card%; +defaults.pcm.card %card%; diff --git a/archiso/releng/bootstrap_packages.x86_64 b/archiso/releng/bootstrap_packages.x86_64 new file mode 100644 index 0000000..64966d0 --- /dev/null +++ b/archiso/releng/bootstrap_packages.x86_64 @@ -0,0 +1,2 @@ +arch-install-scripts +base diff --git a/archiso/releng/efiboot/loader/entries/01-archiso-x86_64-linux.conf b/archiso/releng/efiboot/loader/entries/01-archiso-x86_64-linux.conf new file mode 100644 index 0000000..2506f07 --- /dev/null +++ b/archiso/releng/efiboot/loader/entries/01-archiso-x86_64-linux.conf @@ -0,0 +1,7 @@ +title Arch Linux install medium (x86_64, UEFI) +sort-key 01 +linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +initrd /%INSTALL_DIR%/boot/intel-ucode.img +initrd /%INSTALL_DIR%/boot/amd-ucode.img +initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% diff --git a/archiso/releng/efiboot/loader/entries/02-archiso-x86_64-speech-linux.conf b/archiso/releng/efiboot/loader/entries/02-archiso-x86_64-speech-linux.conf new file mode 100644 index 0000000..6928a10 --- /dev/null +++ b/archiso/releng/efiboot/loader/entries/02-archiso-x86_64-speech-linux.conf @@ -0,0 +1,7 @@ +title Arch Linux install medium (x86_64, UEFI) with speech +sort-key 02 +linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +initrd /%INSTALL_DIR%/boot/intel-ucode.img +initrd /%INSTALL_DIR%/boot/amd-ucode.img +initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +options archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% accessibility=on diff --git a/archiso/releng/efiboot/loader/loader.conf b/archiso/releng/efiboot/loader/loader.conf new file mode 100644 index 0000000..2d137aa --- /dev/null +++ b/archiso/releng/efiboot/loader/loader.conf @@ -0,0 +1,3 @@ +timeout 15 +default 01-archiso-x86_64-linux.conf +beep on diff --git a/archiso/releng/grub/grub.cfg b/archiso/releng/grub/grub.cfg new file mode 100644 index 0000000..034bdb4 --- /dev/null +++ b/archiso/releng/grub/grub.cfg @@ -0,0 +1,87 @@ +# Load partition table and file system modules +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 + set gfxmode="auto" + terminal_input console + terminal_output console +fi + +# Enable serial console +if serial --unit=0 --speed=115200; then + terminal_input --append serial + terminal_output --append serial +fi + +# Search for the ISO volume +if [ -z "${ARCHISO_UUID}" ]; then + if [ -z "${ARCHISO_HINT}" ]; then + regexp --set=1:ARCHISO_HINT '^\(([^)]+)\)' "${cmdpath}" + fi + search --no-floppy --set=root --file '%ARCHISO_SEARCH_FILENAME%' --hint "${ARCHISO_HINT}" + probe --set ARCHISO_UUID --fs-uuid "${root}" +fi + +# Set default menu entry +default=archlinux +timeout=15 +timeout_style=menu + +# GRUB init tune for accessibility +play 600 988 1 1319 4 + +# Menu entries + +menuentry "Arch Linux install medium (x86_64, UEFI)" --class arch --class gnu-linux --class gnu --class os --id 'archlinux' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +} + +menuentry "Arch Linux install medium with speakup screen reader (x86_64, UEFI)" --hotkey s --class arch --class gnu-linux --class gnu --class os --id 'archlinux-accessibility' { + set gfxpayload=keep + linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux archisobasedir=%INSTALL_DIR% archisodevice=UUID=${ARCHISO_UUID} accessibility=on + initrd /%INSTALL_DIR%/boot/intel-ucode.img /%INSTALL_DIR%/boot/amd-ucode.img /%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +} + +if [ "${grub_platform}" == "efi" ]; then + if [ "${grub_cpu}" == "x86_64" ]; then + 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 + chainloader /shellx64.efi + } + elif [ "${grub_cpu}" == "i386" ]; then + menuentry "UEFI Shell" --class efi { + insmod chain + 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/archiso/releng/packages.x86_64 b/archiso/releng/packages.x86_64 new file mode 100644 index 0000000..d42910c --- /dev/null +++ b/archiso/releng/packages.x86_64 @@ -0,0 +1,127 @@ +alsa-utils +amd-ucode +arch-install-scripts +archinstall +b43-fwcutter +base +bind +brltty +broadcom-wl +btrfs-progs +clonezilla +cloud-init +cryptsetup +darkhttpd +ddrescue +dhclient +dhcpcd +diffutils +dmidecode +dmraid +dnsmasq +dosfstools +e2fsprogs +edk2-shell +efibootmgr +espeakup +ethtool +exfatprogs +f2fs-tools +fatresize +foot-terminfo +fsarchiver +gnu-netcat +gpart +gpm +gptfdisk +grml-zsh-config +grub +hdparm +hyperv +intel-ucode +irssi +iw +iwd +jfsutils +kitty-terminfo +less +lftp +libfido2 +libusb-compat +linux +linux-atm +linux-firmware +linux-firmware-marvell +livecd-sounds +lsscsi +lvm2 +lynx +man-db +man-pages +mc +mdadm +memtest86+ +memtest86+-efi +mkinitcpio +mkinitcpio-archiso +mkinitcpio-nfs-utils +modemmanager +mtools +nano +nbd +ndisc6 +nfs-utils +nilfs-utils +nmap +ntfs-3g +nvme-cli +open-iscsi +open-vm-tools +openconnect +openssh +openvpn +partclone +parted +partimage +pcsclite +ppp +pptpclient +pv +qemu-guest-agent +refind +reflector +reiserfsprogs +rp-pppoe +rsync +rxvt-unicode-terminfo +screen +sdparm +sg3_utils +smartmontools +sof-firmware +squashfs-tools +sudo +syslinux +systemd-resolvconf +tcpdump +terminus-font +testdisk +tmux +tpm2-tss +udftools +usb_modeswitch +usbmuxd +usbutils +vim +virtualbox-guest-utils-nox +vpnc +wezterm-terminfo +wireless-regdb +wireless_tools +wpa_supplicant +wvdial +xfsprogs +xl2tpd +zsh +bottom +fish \ No newline at end of file diff --git a/archiso/releng/pacman.conf b/archiso/releng/pacman.conf new file mode 100644 index 0000000..f382fab --- /dev/null +++ b/archiso/releng/pacman.conf @@ -0,0 +1,98 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +#HookDir = /etc/pacman.d/hooks/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -L -C - -f -o %o %u +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +Architecture = auto + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +#Color +#NoProgressBar +# We cannot check disk space from within a chroot environment +#CheckSpace +#VerbosePkgLists +ParallelDownloads = 5 + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[core-testing] +#Include = /etc/pacman.d/mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +#[extra-testing] +#Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +# If you want to run 32 bit applications on your x86_64 system, +# enable the multilib repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist + +#[multilib] +#Include = /etc/pacman.d/mirrorlist + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs diff --git a/archiso/releng/profiledef.sh b/archiso/releng/profiledef.sh new file mode 100644 index 0000000..e2ecb46 --- /dev/null +++ b/archiso/releng/profiledef.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# shellcheck disable=SC2034 + +iso_name="Ourobor.OS" +iso_label="ARCH_$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y%m)" +iso_publisher="LimePotato " +iso_application="Ourobor.OS Linux Live/Rescue CD" +iso_version="$(date --date="@${SOURCE_DATE_EPOCH:-$(date +%s)}" +%Y.%m.%d)" +install_dir="arch" +buildmodes=('iso') +bootmodes=('bios.syslinux.mbr' 'bios.syslinux.eltorito' + 'uefi-ia32.grub.esp' 'uefi-x64.grub.esp' + 'uefi-ia32.grub.eltorito' 'uefi-x64.grub.eltorito') +arch="x86_64" +pacman_conf="pacman.conf" +airootfs_image_type="squashfs" +airootfs_image_tool_options=('-comp' 'xz' '-Xbcj' 'x86' '-b' '1M' '-Xdict-size' '1M') +file_permissions=( + ["/etc/shadow"]="0:0:400" + ["/etc/gshadow"]="0:0:400" + ["/root"]="0:0:750" + ["/root/.automated_script.sh"]="0:0:755" + ["/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/archiso/releng/syslinux/archiso_head.cfg b/archiso/releng/syslinux/archiso_head.cfg new file mode 100644 index 0000000..671ab4e --- /dev/null +++ b/archiso/releng/syslinux/archiso_head.cfg @@ -0,0 +1,28 @@ +SERIAL 0 115200 +UI vesamenu.c32 +MENU TITLE Arch Linux +MENU BACKGROUND splash.png + +MENU WIDTH 78 +MENU MARGIN 4 +MENU ROWS 7 +MENU VSHIFT 10 +MENU TABMSGROW 14 +MENU CMDLINEROW 14 +MENU HELPMSGROW 16 +MENU HELPMSGENDROW 29 + +# Refer to https://wiki.syslinux.org/wiki/index.php/Comboot/menu.c32 + +MENU COLOR border 30;44 #40ffffff #a0000000 std +MENU COLOR title 1;36;44 #9033ccff #a0000000 std +MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all +MENU COLOR unsel 37;44 #50ffffff #a0000000 std +MENU COLOR help 37;40 #c0ffffff #a0000000 std +MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std +MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std +MENU COLOR msg07 37;40 #90ffffff #a0000000 std +MENU COLOR tabmsg 31;40 #30ffffff #00000000 std + +MENU CLEAR +MENU IMMEDIATE diff --git a/archiso/releng/syslinux/archiso_pxe-linux.cfg b/archiso/releng/syslinux/archiso_pxe-linux.cfg new file mode 100644 index 0000000..305b8fd --- /dev/null +++ b/archiso/releng/syslinux/archiso_pxe-linux.cfg @@ -0,0 +1,32 @@ +LABEL arch64_nbd +TEXT HELP +Boot the Arch Linux install medium using NBD. +It allows you to install Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Arch Linux install medium (x86_64, NBD) +LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% archiso_nbd_srv=${pxeserver} cms_verify=y +SYSAPPEND 3 + +LABEL arch64_nfs +TEXT HELP +Boot the Arch Linux live medium using NFS. +It allows you to install Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Arch Linux install medium (x86_64, NFS) +LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt cms_verify=y +SYSAPPEND 3 + +LABEL arch64_http +TEXT HELP +Boot the Arch Linux live medium using HTTP. +It allows you to install Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Arch Linux install medium (x86_64, HTTP) +LINUX ::/%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +INITRD ::/%INSTALL_DIR%/boot/intel-ucode.img,::/%INSTALL_DIR%/boot/amd-ucode.img,::/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ cms_verify=y +SYSAPPEND 3 diff --git a/archiso/releng/syslinux/archiso_pxe.cfg b/archiso/releng/syslinux/archiso_pxe.cfg new file mode 100644 index 0000000..b4c9a80 --- /dev/null +++ b/archiso/releng/syslinux/archiso_pxe.cfg @@ -0,0 +1,5 @@ +INCLUDE archiso_head.cfg + +INCLUDE archiso_pxe-linux.cfg + +INCLUDE archiso_tail.cfg diff --git a/archiso/releng/syslinux/archiso_sys-linux.cfg b/archiso/releng/syslinux/archiso_sys-linux.cfg new file mode 100644 index 0000000..950dc48 --- /dev/null +++ b/archiso/releng/syslinux/archiso_sys-linux.cfg @@ -0,0 +1,20 @@ +LABEL arch64 +TEXT HELP +Boot the Arch Linux install medium on BIOS. +It allows you to install Arch Linux or perform system maintenance. +ENDTEXT +MENU LABEL Arch Linux install medium (x86_64, BIOS) +LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% + +# Accessibility boot option +LABEL arch64speech +TEXT HELP +Boot the Arch Linux install medium on BIOS with speakup screen reader. +It allows you to install Arch Linux or perform system maintenance with speech feedback. +ENDTEXT +MENU LABEL Arch Linux install medium (x86_64, BIOS) with ^speech +LINUX /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux +INITRD /%INSTALL_DIR%/boot/intel-ucode.img,/%INSTALL_DIR%/boot/amd-ucode.img,/%INSTALL_DIR%/boot/x86_64/initramfs-linux.img +APPEND archisobasedir=%INSTALL_DIR% archisodevice=UUID=%ARCHISO_UUID% accessibility=on diff --git a/archiso/releng/syslinux/archiso_sys.cfg b/archiso/releng/syslinux/archiso_sys.cfg new file mode 100644 index 0000000..d93bcfe --- /dev/null +++ b/archiso/releng/syslinux/archiso_sys.cfg @@ -0,0 +1,8 @@ +INCLUDE archiso_head.cfg + +DEFAULT arch64 +TIMEOUT 150 + +INCLUDE archiso_sys-linux.cfg + +INCLUDE archiso_tail.cfg diff --git a/archiso/releng/syslinux/archiso_tail.cfg b/archiso/releng/syslinux/archiso_tail.cfg new file mode 100644 index 0000000..e84897c --- /dev/null +++ b/archiso/releng/syslinux/archiso_tail.cfg @@ -0,0 +1,35 @@ +LABEL existing +TEXT HELP +Boot an existing operating system. +Press TAB to edit the disk and partition number to boot. +ENDTEXT +MENU LABEL Boot existing OS +COM32 chain.c32 +APPEND hd0 0 + +# https://www.memtest.org/ +LABEL memtest +MENU LABEL Run Memtest86+ (RAM test) +LINUX /boot/memtest86+/memtest + +# https://wiki.syslinux.org/wiki/index.php/Hdt_(Hardware_Detection_Tool) +LABEL hdt +MENU LABEL Hardware Information (HDT) +COM32 hdt.c32 +APPEND modules_alias=hdt/modalias.gz pciids=hdt/pciids.gz + +LABEL reboot +TEXT HELP +Reboot computer. +The computer's firmware must support APM. +ENDTEXT +MENU LABEL Reboot +COM32 reboot.c32 + +LABEL poweroff +TEXT HELP +Power off computer. +The computer's firmware must support APM. +ENDTEXT +MENU LABEL Power Off +COM32 poweroff.c32 diff --git a/archiso/releng/syslinux/splash.png b/archiso/releng/syslinux/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..ce05043d85ee79e6ab3cfd7218fc7746fc487d61 GIT binary patch literal 52227 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 z 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

Hj^a_9gg|X@B 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 literal 0 HcmV?d00001 diff --git a/archiso/releng/syslinux/syslinux.cfg b/archiso/releng/syslinux/syslinux.cfg new file mode 100644 index 0000000..cbda72f --- /dev/null +++ b/archiso/releng/syslinux/syslinux.cfg @@ -0,0 +1,11 @@ +DEFAULT select + +LABEL select +COM32 whichsys.c32 +APPEND -pxe- pxe -sys- sys -iso- sys + +LABEL pxe +CONFIG archiso_pxe.cfg + +LABEL sys +CONFIG archiso_sys.cfg