diff options
14 files changed, 116 insertions, 9 deletions
@@ -23,21 +23,28 @@ lint: scripts/run_parabolaiso.sh \ $(INSTALL_FILES) \ $(wildcard configs/*/build.sh) \ - $(wildcard configs/*/profiledef.sh) \ + $(wildcard configs/*/profiledef.sh) \ configs/releng/airootfs/root/.automated_script.sh \ configs/releng/airootfs/usr/local/bin/choose-mirror \ configs/releng-openrc/airootfs/root/.automated_script.sh \ configs/releng-openrc/airootfs/etc/local.d/pacman-init.start \ + configs/releng-openrc/airootfs/etc/local.d/choose-mirror.start \ + configs/releng-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start \ configs/releng-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector \ + configs/releng-openrc/airootfs/usr/local/bin/choose-mirror \ configs/lxde-openrc/airootfs/root/.automated_script.sh \ configs/lxde-openrc/airootfs/root/.keymap.sh \ configs/lxde-openrc/airootfs/root/.language.sh \ configs/lxde-openrc/airootfs/etc/local.d/pacman-init.start \ + configs/lxde-openrc/airootfs/etc/local.d/choose-mirror.start \ + configs/lxde-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start \ configs/lxde-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector \ + configs/lxde-openrc/airootfs/usr/local/bin/choose-mirror \ configs/talkingparabola/airootfs/root/.automated_script.sh \ configs/talkingparabola/airootfs/usr/bin/livecd-alsa-unmuter \ configs/talkingparabola/airootfs/usr/bin/pick-a-card \ - configs/talkingparabola/airootfs/usr/bin/talk-to-me + configs/talkingparabola/airootfs/usr/bin/talk-to-me \ + configs/talkingparabola/airootfs/usr/local/bin/choose-mirror shellcheck -s dash $(HOOKS_FILES) $(SCRIPT_FILES) install: install-program install-examples install-doc diff --git a/configs/lxde-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector b/configs/lxde-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector index a186bbf..17ba099 100755 --- a/configs/lxde-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector +++ b/configs/lxde-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector @@ -2,6 +2,9 @@ # # SPDX-License-Identifier: GPL-3.0-or-later -if [ "$2" = up ]; then - /usr/bin/reflector --protocol https --age 1 --sort rate --save /etc/pacman.d/mirrorlist +if [ "$2" == up ] && ! grep -qoP 'mirror=\K\S+' /proc/cmdline; then + # shellcheck disable=SC2034 + XDG_CACHE_HOME=/var/cache/reflector + umask 177 + /usr/bin/reflector --protocol https --latest 15 --sort rate --save /etc/pacman.d/mirrorlist fi diff --git a/configs/lxde-openrc/airootfs/etc/local.d/choose-mirror.start b/configs/lxde-openrc/airootfs/etc/local.d/choose-mirror.start new file mode 100755 index 0000000..fea21b8 --- /dev/null +++ b/configs/lxde-openrc/airootfs/etc/local.d/choose-mirror.start @@ -0,0 +1,6 @@ +#!/bin/bash +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# Choose mirror from the kernel command line +grep -qoP 'mirror=\K\S+' /proc/cmdline && /usr/local/bin/choose-mirror diff --git a/configs/lxde-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start b/configs/lxde-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start new file mode 100755 index 0000000..f705ece --- /dev/null +++ b/configs/lxde-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start @@ -0,0 +1,11 @@ +#!/bin/bash +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# Temporary /etc/pacman.d/gnupg directory +fstype="$(findmnt /etc/pacman.d/gnupg -o FSTYPE -Un)" + +test -d /etc/pacman.d/gnupg || mkdir /etc/pacman.d/gnupg +if ! [[ "$fstype" == tmpfs ]]; then + mount -o mode=0755 -t tmpfs tmpfs /etc/pacman.d/gnupg +fi diff --git a/configs/lxde-openrc/airootfs/etc/local.d/pacman-init.start b/configs/lxde-openrc/airootfs/etc/local.d/pacman-init.start index b57d737..41c6166 100755 --- a/configs/lxde-openrc/airootfs/etc/local.d/pacman-init.start +++ b/configs/lxde-openrc/airootfs/etc/local.d/pacman-init.start @@ -2,7 +2,8 @@ # # SPDX-License-Identifier: GPL-3.0-or-later -if ! [ -d /etc/pacman.d/gnupg ]; then +# Initializes Pacman keyring +if ! find /etc/pacman.d/gnupg -mindepth 1 2>/dev/null | read -r; then pacman-key --init pacman-key --populate archlinux archlinux32 parabola fi diff --git a/configs/lxde-openrc/airootfs/etc/runlevels/default/haveged b/configs/lxde-openrc/airootfs/etc/runlevels/default/haveged new file mode 120000 index 0000000..0ec5343 --- /dev/null +++ b/configs/lxde-openrc/airootfs/etc/runlevels/default/haveged @@ -0,0 +1 @@ +/etc/init.d/haveged
\ No newline at end of file diff --git a/configs/lxde-openrc/airootfs/usr/local/bin/choose-mirror b/configs/lxde-openrc/airootfs/usr/local/bin/choose-mirror new file mode 100755 index 0000000..e8f8254 --- /dev/null +++ b/configs/lxde-openrc/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 parabolaiso_http_srv) +[[ $mirror ]] || exit 0 + +mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig +cat >/etc/pacman.d/mirrorlist << EOF +# +# Parabola GNU/Linux-libre repository mirrorlist +# Generated by parabolaiso +# + +Server = ${mirror%%/}/\$repo/os/\$arch +EOF diff --git a/configs/releng-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector b/configs/releng-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector index a186bbf..17ba099 100755 --- a/configs/releng-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector +++ b/configs/releng-openrc/airootfs/etc/NetworkManager/dispatcher.d/reflector @@ -2,6 +2,9 @@ # # SPDX-License-Identifier: GPL-3.0-or-later -if [ "$2" = up ]; then - /usr/bin/reflector --protocol https --age 1 --sort rate --save /etc/pacman.d/mirrorlist +if [ "$2" == up ] && ! grep -qoP 'mirror=\K\S+' /proc/cmdline; then + # shellcheck disable=SC2034 + XDG_CACHE_HOME=/var/cache/reflector + umask 177 + /usr/bin/reflector --protocol https --latest 15 --sort rate --save /etc/pacman.d/mirrorlist fi diff --git a/configs/releng-openrc/airootfs/etc/local.d/choose-mirror.start b/configs/releng-openrc/airootfs/etc/local.d/choose-mirror.start new file mode 100755 index 0000000..fea21b8 --- /dev/null +++ b/configs/releng-openrc/airootfs/etc/local.d/choose-mirror.start @@ -0,0 +1,6 @@ +#!/bin/bash +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# Choose mirror from the kernel command line +grep -qoP 'mirror=\K\S+' /proc/cmdline && /usr/local/bin/choose-mirror diff --git a/configs/releng-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start b/configs/releng-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start new file mode 100755 index 0000000..f705ece --- /dev/null +++ b/configs/releng-openrc/airootfs/etc/local.d/etc-pacman.d-gnupg.start @@ -0,0 +1,11 @@ +#!/bin/bash +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# Temporary /etc/pacman.d/gnupg directory +fstype="$(findmnt /etc/pacman.d/gnupg -o FSTYPE -Un)" + +test -d /etc/pacman.d/gnupg || mkdir /etc/pacman.d/gnupg +if ! [[ "$fstype" == tmpfs ]]; then + mount -o mode=0755 -t tmpfs tmpfs /etc/pacman.d/gnupg +fi diff --git a/configs/releng-openrc/airootfs/etc/local.d/pacman-init.start b/configs/releng-openrc/airootfs/etc/local.d/pacman-init.start index b57d737..41c6166 100755 --- a/configs/releng-openrc/airootfs/etc/local.d/pacman-init.start +++ b/configs/releng-openrc/airootfs/etc/local.d/pacman-init.start @@ -2,7 +2,8 @@ # # SPDX-License-Identifier: GPL-3.0-or-later -if ! [ -d /etc/pacman.d/gnupg ]; then +# Initializes Pacman keyring +if ! find /etc/pacman.d/gnupg -mindepth 1 2>/dev/null | read -r; then pacman-key --init pacman-key --populate archlinux archlinux32 parabola fi diff --git a/configs/releng-openrc/airootfs/etc/runlevels/default/haveged b/configs/releng-openrc/airootfs/etc/runlevels/default/haveged new file mode 120000 index 0000000..0ec5343 --- /dev/null +++ b/configs/releng-openrc/airootfs/etc/runlevels/default/haveged @@ -0,0 +1 @@ +/etc/init.d/haveged
\ No newline at end of file diff --git a/configs/releng-openrc/airootfs/usr/local/bin/choose-mirror b/configs/releng-openrc/airootfs/usr/local/bin/choose-mirror new file mode 100755 index 0000000..e8f8254 --- /dev/null +++ b/configs/releng-openrc/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 parabolaiso_http_srv) +[[ $mirror ]] || exit 0 + +mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig +cat >/etc/pacman.d/mirrorlist << EOF +# +# Parabola GNU/Linux-libre repository mirrorlist +# Generated by parabolaiso +# + +Server = ${mirror%%/}/\$repo/os/\$arch +EOF diff --git a/configs/talkingparabola/airootfs/root/.zlogin b/configs/talkingparabola/airootfs/root/.zlogin index 7666b6b..282398a 100644 --- a/configs/talkingparabola/airootfs/root/.zlogin +++ b/configs/talkingparabola/airootfs/root/.zlogin @@ -1,4 +1,4 @@ -if [ -n "$(grep -oP 'speakup.synth=\K\S+' /proc/cmdline)" ] +if grep -qoP 'speakup.synth=\K\S+' /proc/cmdline then setopt singlelinezle flock -n /run/talk-to-me.lck talk-to-me |