summaryrefslogtreecommitdiff
path: root/configs/profile/root-image
diff options
context:
space:
mode:
Diffstat (limited to 'configs/profile/root-image')
-rw-r--r--configs/profile/root-image/etc/fstab0
-rw-r--r--configs/profile/root-image/etc/hostname1
-rw-r--r--configs/profile/root-image/etc/locale.conf1
-rw-r--r--configs/profile/root-image/etc/pam.d/su6
-rw-r--r--configs/profile/root-image/etc/sudoers.d/g_wheel1
-rwxr-xr-xconfigs/profile/root-image/etc/systemd/scripts/choose-mirror26
-rw-r--r--configs/profile/root-image/etc/systemd/system/choose-mirror.service10
-rw-r--r--configs/profile/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount8
-rw-r--r--configs/profile/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf3
-rw-r--r--configs/profile/root-image/etc/systemd/system/pacman-init.service15
-rw-r--r--configs/profile/root-image/etc/udev/rules.d/81-dhcpcd.rules1
-rwxr-xr-xconfigs/profile/root-image/root/.automated_script.sh34
-rw-r--r--configs/profile/root-image/root/.zlogin1
-rwxr-xr-xconfigs/profile/root-image/root/customize_root_image.sh20
-rw-r--r--configs/profile/root-image/root/install.txt3
15 files changed, 130 insertions, 0 deletions
diff --git a/configs/profile/root-image/etc/fstab b/configs/profile/root-image/etc/fstab
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/configs/profile/root-image/etc/fstab
diff --git a/configs/profile/root-image/etc/hostname b/configs/profile/root-image/etc/hostname
new file mode 100644
index 0000000..8aaf41b
--- /dev/null
+++ b/configs/profile/root-image/etc/hostname
@@ -0,0 +1 @@
+parabolaiso
diff --git a/configs/profile/root-image/etc/locale.conf b/configs/profile/root-image/etc/locale.conf
new file mode 100644
index 0000000..01ec548
--- /dev/null
+++ b/configs/profile/root-image/etc/locale.conf
@@ -0,0 +1 @@
+LANG=en_US.UTF-8
diff --git a/configs/profile/root-image/etc/pam.d/su b/configs/profile/root-image/etc/pam.d/su
new file mode 100644
index 0000000..a291042
--- /dev/null
+++ b/configs/profile/root-image/etc/pam.d/su
@@ -0,0 +1,6 @@
+#%PAM-1.0
+auth sufficient pam_rootok.so
+auth sufficient pam_wheel.so trust use_uid
+auth required pam_unix.so
+account required pam_unix.so
+session required pam_unix.so
diff --git a/configs/profile/root-image/etc/sudoers.d/g_wheel b/configs/profile/root-image/etc/sudoers.d/g_wheel
new file mode 100644
index 0000000..8c45359
--- /dev/null
+++ b/configs/profile/root-image/etc/sudoers.d/g_wheel
@@ -0,0 +1 @@
+%wheel ALL=(ALL) NOPASSWD: ALL
diff --git a/configs/profile/root-image/etc/systemd/scripts/choose-mirror b/configs/profile/root-image/etc/systemd/scripts/choose-mirror
new file mode 100755
index 0000000..13c9f69
--- /dev/null
+++ b/configs/profile/root-image/etc/systemd/scripts/choose-mirror
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+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/profile/root-image/etc/systemd/system/choose-mirror.service b/configs/profile/root-image/etc/systemd/system/choose-mirror.service
new file mode 100644
index 0000000..1e4d771
--- /dev/null
+++ b/configs/profile/root-image/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=/etc/systemd/scripts/choose-mirror
+
+[Install]
+WantedBy=multi-user.target
diff --git a/configs/profile/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount b/configs/profile/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount
new file mode 100644
index 0000000..4eab551
--- /dev/null
+++ b/configs/profile/root-image/etc/systemd/system/etc-pacman.d-gnupg.mount
@@ -0,0 +1,8 @@
+[Unit]
+Description=Temporary /etc/pacman.d/gnupg directory
+
+[Mount]
+What=tmpfs
+Where=/etc/pacman.d/gnupg
+Type=tmpfs
+Options=mode=0755
diff --git a/configs/profile/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf b/configs/profile/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf
new file mode 100644
index 0000000..d1d8474
--- /dev/null
+++ b/configs/profile/root-image/etc/systemd/system/getty@tty1.service.d/autologin.conf
@@ -0,0 +1,3 @@
+[Service]
+ExecStart=
+ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux
diff --git a/configs/profile/root-image/etc/systemd/system/pacman-init.service b/configs/profile/root-image/etc/systemd/system/pacman-init.service
new file mode 100644
index 0000000..23b8144
--- /dev/null
+++ b/configs/profile/root-image/etc/systemd/system/pacman-init.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Initializes Pacman keyring
+Wants=haveged.service
+After=haveged.service
+Requires=etc-pacman.d-gnupg.mount
+After=etc-pacman.d-gnupg.mount
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/bin/pacman-key --init
+ExecStart=/usr/bin/pacman-key --populate archlinux
+
+[Install]
+WantedBy=multi-user.target
diff --git a/configs/profile/root-image/etc/udev/rules.d/81-dhcpcd.rules b/configs/profile/root-image/etc/udev/rules.d/81-dhcpcd.rules
new file mode 100644
index 0000000..970da69
--- /dev/null
+++ b/configs/profile/root-image/etc/udev/rules.d/81-dhcpcd.rules
@@ -0,0 +1 @@
+ACTION=="add", SUBSYSTEM=="net", ENV{SYSTEMD_WANTS}="dhcpcd@$name.service"
diff --git a/configs/profile/root-image/root/.automated_script.sh b/configs/profile/root-image/root/.automated_script.sh
new file mode 100755
index 0000000..fb106da
--- /dev/null
+++ b/configs/profile/root-image/root/.automated_script.sh
@@ -0,0 +1,34 @@
+#!/bin/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:// || "${script}" =~ ^ftp:// ]]; then
+ wget "${script}" --retry-connrefused -q -O /tmp/startup_script >/dev/null
+ rt=$?
+ else
+ cp "${script}" /tmp/startup_script
+ rt=$?
+ fi
+ if [[ ${rt} -eq 0 ]]; then
+ chmod +x /tmp/startup_script
+ /tmp/startup_script
+ fi
+ fi
+}
+
+if [[ $(tty) == "/dev/tty1" ]]; then
+ automated_script
+fi
diff --git a/configs/profile/root-image/root/.zlogin b/configs/profile/root-image/root/.zlogin
new file mode 100644
index 0000000..f598e43
--- /dev/null
+++ b/configs/profile/root-image/root/.zlogin
@@ -0,0 +1 @@
+~/.automated_script.sh
diff --git a/configs/profile/root-image/root/customize_root_image.sh b/configs/profile/root-image/root/customize_root_image.sh
new file mode 100755
index 0000000..7c9a003
--- /dev/null
+++ b/configs/profile/root-image/root/customize_root_image.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+set -e -u
+
+sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen
+locale-gen
+
+ln -sf /usr/share/zoneinfo/UTC /etc/localtime
+
+usermod -s /usr/bin/zsh root
+cp -aT /etc/skel/ /root/
+
+useradd -m -p "" -g users -G "adm,audio,floppy,log,network,rfkill,scanner,storage,optical,power,wheel" -s /usr/bin/zsh parabola
+
+chmod 750 /etc/sudoers.d
+chmod 440 /etc/sudoers.d/g_wheel
+
+sed -i "s/#Server/Server/g" /etc/pacman.d/mirrorlist
+
+systemctl enable multi-user.target pacman-init.service choose-mirror.service
diff --git a/configs/profile/root-image/root/install.txt b/configs/profile/root-image/root/install.txt
new file mode 100644
index 0000000..87b85cb
--- /dev/null
+++ b/configs/profile/root-image/root/install.txt
@@ -0,0 +1,3 @@
+View this installation guide online at
+https://wiki.parabolagnulinux.org/index.php/Installation_Guide
+