Modify Arch Install Scripts to work with Future Linux Install Scripts
This commit is contained in:
parent
a60ad80361
commit
b53d472be3
12
Makefile
12
Makefile
@ -1,14 +1,14 @@
|
|||||||
VER=26
|
VER=26
|
||||||
|
|
||||||
PREFIX = /usr/local
|
PREFIX = /usr
|
||||||
|
|
||||||
BINPROGS = \
|
BINPROGS = \
|
||||||
arch-chroot \
|
future-chroot \
|
||||||
genfstab \
|
genfstab \
|
||||||
pacstrap
|
pacstrap
|
||||||
|
|
||||||
MANS = \
|
MANS = \
|
||||||
doc/arch-chroot.8 \
|
doc/future-chroot.8 \
|
||||||
doc/genfstab.8 \
|
doc/genfstab.8 \
|
||||||
doc/pacstrap.8
|
doc/pacstrap.8
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ _v_GEN_0 = @echo " GEN " $@;
|
|||||||
|
|
||||||
edit = $(V_GEN) m4 -P $@.in >$@ && chmod go-w,+x $@
|
edit = $(V_GEN) m4 -P $@.in >$@ && chmod go-w,+x $@
|
||||||
|
|
||||||
arch-chroot: arch-chroot.in common
|
future-chroot: future-chroot.in common
|
||||||
$(edit)
|
$(edit)
|
||||||
|
|
||||||
genfstab: genfstab.in fstab-helpers
|
genfstab: genfstab.in fstab-helpers
|
||||||
@ -49,8 +49,8 @@ shellcheck: $(BINPROGS)
|
|||||||
shellcheck -W 99 --color -x test/test_*
|
shellcheck -W 99 --color -x test/test_*
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
install -d $(DESTDIR)$(PREFIX)/bin
|
install -d $(DESTDIR)$(PREFIX)/sbin
|
||||||
install -m 0755 $(BINPROGS) $(DESTDIR)$(PREFIX)/bin
|
install -m 0755 $(BINPROGS) $(DESTDIR)$(PREFIX)/sbin
|
||||||
install -d $(DESTDIR)$(PREFIX)/share/zsh/site-functions
|
install -d $(DESTDIR)$(PREFIX)/share/zsh/site-functions
|
||||||
install -m 0644 $(ZSHCOMP) $(DESTDIR)$(PREFIX)/share/zsh/site-functions
|
install -m 0644 $(ZSHCOMP) $(DESTDIR)$(PREFIX)/share/zsh/site-functions
|
||||||
install -d $(DESTDIR)$(PREFIX)/share/bash-completion/completions
|
install -d $(DESTDIR)$(PREFIX)/share/bash-completion/completions
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
# Arch Install Scripts
|
# Modify Arch Install Scripts
|
||||||
|
|
||||||
|
# Future Install Scripts
|
||||||
|
|
||||||
This is a small suite of scripts aimed at automating some menial
|
This is a small suite of scripts aimed at automating some menial
|
||||||
tasks when installing [Arch Linux](https://www.archlinux.org).
|
tasks when installing [Future Linux](https://www.futurelinux.xyz).
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
|
23
common
23
common
@ -29,15 +29,15 @@ chroot_setup() {
|
|||||||
[[ $(trap -p EXIT) ]] && die '(BUG): attempting to overwrite existing EXIT trap'
|
[[ $(trap -p EXIT) ]] && die '(BUG): attempting to overwrite existing EXIT trap'
|
||||||
trap 'chroot_teardown' EXIT
|
trap 'chroot_teardown' EXIT
|
||||||
|
|
||||||
chroot_add_mount proc "$1/proc" -t proc -o nosuid,noexec,nodev &&
|
chroot_add_mount --bind /dev "$1/dev" &&
|
||||||
chroot_add_mount sys "$1/sys" -t sysfs -o nosuid,noexec,nodev,ro &&
|
chroot_add_mount devpts "$1/dev/pts" -t devpts -o gid=5,mode=0620 &&
|
||||||
|
chroot_add_mount proc $1/proc -t proc &&
|
||||||
|
chroot_add_mount sysfs $1/sys -t sysfs &&
|
||||||
|
chroot_add_mount tmpfs "$1/run" -t tmpfs &&
|
||||||
|
chroot_add_mount tmpfs "$1/dev/shm" -t tmpfs -o nosuid,nodev &&
|
||||||
ignore_error chroot_maybe_add_mount "[[ -d '$1/sys/firmware/efi/efivars' ]]" \
|
ignore_error chroot_maybe_add_mount "[[ -d '$1/sys/firmware/efi/efivars' ]]" \
|
||||||
efivarfs "$1/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev &&
|
efivarfs "$1/sys/firmware/efi/efivars" -t efivarfs
|
||||||
chroot_add_mount udev "$1/dev" -t devtmpfs -o mode=0755,nosuid &&
|
|
||||||
chroot_add_mount devpts "$1/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec &&
|
|
||||||
chroot_add_mount shm "$1/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev &&
|
|
||||||
chroot_add_mount /run "$1/run" --bind --make-private &&
|
|
||||||
chroot_add_mount tmp "$1/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid
|
|
||||||
}
|
}
|
||||||
|
|
||||||
chroot_teardown() {
|
chroot_teardown() {
|
||||||
@ -68,8 +68,8 @@ unshare_setup() {
|
|||||||
trap 'unshare_teardown' EXIT
|
trap 'unshare_teardown' EXIT
|
||||||
|
|
||||||
chroot_add_mount_lazy "$1" "$1" --bind &&
|
chroot_add_mount_lazy "$1" "$1" --bind &&
|
||||||
chroot_add_mount proc "$1/proc" -t proc -o nosuid,noexec,nodev &&
|
chroot_add_mount proc "$1/proc" -t proc &&
|
||||||
chroot_add_mount_lazy /sys "$1/sys" --rbind &&
|
chroot_add_mount sysfs "$1/sys" -t sysfs &&
|
||||||
chroot_add_link /proc/self/fd "$1/dev/fd" &&
|
chroot_add_link /proc/self/fd "$1/dev/fd" &&
|
||||||
chroot_add_link /proc/self/fd/0 "$1/dev/stdin" &&
|
chroot_add_link /proc/self/fd/0 "$1/dev/stdin" &&
|
||||||
chroot_add_link /proc/self/fd/1 "$1/dev/stdout" &&
|
chroot_add_link /proc/self/fd/1 "$1/dev/stdout" &&
|
||||||
@ -80,8 +80,7 @@ unshare_setup() {
|
|||||||
chroot_bind_device /dev/tty "$1/dev/tty" &&
|
chroot_bind_device /dev/tty "$1/dev/tty" &&
|
||||||
chroot_bind_device /dev/urandom "$1/dev/urandom" &&
|
chroot_bind_device /dev/urandom "$1/dev/urandom" &&
|
||||||
chroot_bind_device /dev/zero "$1/dev/zero" &&
|
chroot_bind_device /dev/zero "$1/dev/zero" &&
|
||||||
chroot_add_mount run "$1/run" -t tmpfs -o nosuid,nodev,mode=0755 &&
|
chroot_add_mount tmpfs "$1/run" -t tmpfs
|
||||||
chroot_add_mount tmp "$1/tmp" -t tmpfs -o mode=1777,strictatime,nodev,nosuid
|
|
||||||
}
|
}
|
||||||
|
|
||||||
unshare_teardown() {
|
unshare_teardown() {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
_arch_chroot() {
|
_future_chroot() {
|
||||||
compopt +o dirnames
|
compopt +o dirnames
|
||||||
local cur prev opts i
|
local cur prev opts i
|
||||||
_init_completion -n : || return
|
_init_completion -n : || return
|
||||||
@ -22,4 +22,4 @@ _arch_chroot() {
|
|||||||
compopt -o dirnames
|
compopt -o dirnames
|
||||||
}
|
}
|
||||||
|
|
||||||
complete -F _arch_chroot arch-chroot
|
complete -F _future_chroot future-chroot
|
@ -1,4 +1,4 @@
|
|||||||
#compdef arch-chroot
|
#compdef future-chroot
|
||||||
|
|
||||||
# NOTE: nearly everything here is borrowed from the chroot completion
|
# NOTE: nearly everything here is borrowed from the chroot completion
|
||||||
local -a args=(
|
local -a args=(
|
@ -1,21 +1,21 @@
|
|||||||
arch-chroot(8)
|
future-chroot(8)
|
||||||
==============
|
==============
|
||||||
|
|
||||||
Name
|
Name
|
||||||
----
|
----
|
||||||
arch-chroot - enhanced chroot command
|
future-chroot - enhanced chroot command
|
||||||
|
|
||||||
Synopsis
|
Synopsis
|
||||||
--------
|
--------
|
||||||
arch-chroot [options] chroot-dir [command] [arguments...]
|
future-chroot [options] chroot-dir [command] [arguments...]
|
||||||
|
|
||||||
Description
|
Description
|
||||||
-----------
|
-----------
|
||||||
arch-chroot wraps the linkman:chroot[1] command while ensuring that important
|
future-chroot wraps the linkman:chroot[1] command while ensuring that important
|
||||||
functionality is available, e.g. mounting '/dev/', '/proc' and other API
|
functionality is available, e.g. mounting '/dev/', '/proc' and other API
|
||||||
filesystems, or exposing linkman:resolv.conf[5] to the chroot.
|
filesystems, or exposing linkman:resolv.conf[5] to the chroot.
|
||||||
|
|
||||||
If 'command' is unspecified, arch-chroot will launch */bin/bash*.
|
If 'command' is unspecified, future-chroot will launch */bin/bash*.
|
||||||
|
|
||||||
[NOTE]
|
[NOTE]
|
||||||
======
|
======
|
@ -19,7 +19,7 @@ usage: ${0##*/} chroot-dir [command] [arguments...]
|
|||||||
|
|
||||||
If 'command' is unspecified, ${0##*/} will launch /bin/bash.
|
If 'command' is unspecified, ${0##*/} will launch /bin/bash.
|
||||||
|
|
||||||
Note that when using arch-chroot, the target chroot directory *should* be a
|
Note that when using future-chroot, the target chroot directory *should* be a
|
||||||
mountpoint. This ensures that tools such as pacman(8) or findmnt(8) have an
|
mountpoint. This ensures that tools such as pacman(8) or findmnt(8) have an
|
||||||
accurate hierarchy of the mounted filesystems within the chroot.
|
accurate hierarchy of the mounted filesystems within the chroot.
|
||||||
|
|
||||||
@ -65,7 +65,7 @@ chroot_add_resolv_conf() {
|
|||||||
chroot_add_mount "$src" "$dest" -c --bind
|
chroot_add_mount "$src" "$dest" -c --bind
|
||||||
}
|
}
|
||||||
|
|
||||||
arch-chroot() {
|
future-chroot() {
|
||||||
(( EUID == 0 )) || die 'This script must be run with root privileges'
|
(( EUID == 0 )) || die 'This script must be run with root privileges'
|
||||||
|
|
||||||
[[ -d $chrootdir ]] || die "Can't create chroot on non-directory %s" "$chrootdir"
|
[[ -d $chrootdir ]] || die "Can't create chroot on non-directory %s" "$chrootdir"
|
||||||
@ -117,8 +117,8 @@ shift
|
|||||||
args=("$@")
|
args=("$@")
|
||||||
if (( unshare )); then
|
if (( unshare )); then
|
||||||
setup=unshare_setup
|
setup=unshare_setup
|
||||||
$mount_unshare bash -c "$(declare_all); arch-chroot"
|
$mount_unshare bash -c "$(declare_all); future-chroot"
|
||||||
else
|
else
|
||||||
setup=chroot_setup
|
setup=chroot_setup
|
||||||
arch-chroot
|
future-chroot
|
||||||
fi
|
fi
|
Loading…
Reference in New Issue
Block a user