Compare commits

...

2 Commits

Author SHA1 Message Date
Jarvis Carroll
a60bcf941b add xbps/kerl install scripts for Void 2025-06-03 09:09:33 +10:00
Jarvis Carroll
c200c89b75 Add scripts for Void scripts 2025-06-02 23:36:08 +10:00
10 changed files with 223 additions and 25 deletions

4
.gitignore vendored
View File

@ -2,3 +2,7 @@ debian/clean_environment
debian/test_environment
debian/debootstrap
debian/debootstrap.tar.gz
void/clean_environment
void/test_environment
void/xbps-static*.tar.xz

25
debian/mountpoints vendored
View File

@ -1,25 +0,0 @@
#!/bin/sh
if test `id -u` -ne 0
then
echo "$0 must be run as root."
return
fi
ROOT=test_environment
check_mount() {
if mountpoint "$ROOT$1" > /dev/null
then
echo "$ROOT$1 already mounted."
else
mkdir -p "$ROOT$1"
mount -o bind "$1" "$ROOT$1"
fi
}
check_mount /proc
check_mount /sys
check_mount /dev
check_mount /dev/pts

86
void/cleanup Executable file
View File

@ -0,0 +1,86 @@
#!/bin/sh
if test `id -u` -ne 0
then
echo "$0 must be run as root."
return
fi
FRESH=clean_environment
ROOT=test_environment
add_mount() {
if mountpoint "$ROOT$1" -q
then
echo "$ROOT$1 already mounted."
else
echo "Mounting $1 to $ROOT$1"
mkdir -p "$ROOT$1"
mount -o bind "$1" "$ROOT$1"
fi
}
remove_mount() {
if mountpoint "$ROOT$1" -q
then
echo "Unmounting $ROOT$1"
umount "$ROOT$1"
fi
}
add_mounts() {
add_mount /proc
add_mount /sys
add_mount /dev
add_mount /dev/pts
add_mount /tmp/.X11-unix
}
remove_mounts() {
remove_mount /tmp/.X11-unix
remove_mount /dev/pts
remove_mount /dev
remove_mount /sys
remove_mount /proc
}
remove_environment() {
if test -d "$ROOT"
then
# Call this script that automatically unmounts the mount points too.
remove_mounts
echo "Removing $ROOT"
rm -r "$ROOT"
else
echo "No environment found at $ROOT. Doing nothing."
fi
}
remove_everything() {
if test -d "$ROOT"
then
# Call this script that automatically unmounts the mount points too.
remove_environment
fi
if test -d "$FRESH"
then
echo "Removing $FRESH"
rm -r "$FRESH"
fi
if test -f xbps-static*.tar.xz
then
echo "Removing xbps-static tarballs."
rm xbps-static*.tar.xz
fi
}
case "$1" in
everything) remove_everything ;;
mounts) remove_mounts ;;
add_mounts) add_mounts ;;
environment) remove_environment ;;
"") remove_environment ;;
esac

63
void/create_environment Executable file
View File

@ -0,0 +1,63 @@
#!/bin/sh
if test `id -u` -ne 0
then
echo "$0 must be run as root."
return
fi
ROOT=test_environment
FRESH=clean_environment
TARBALL=xbps-static-static-0.59_5.x86_64-musl.tar.xz
# See https://xmirror.voidlinux.org/ for other mirrors.
REPO=https://ftp.swin.edu.au/voidlinux
if test -e "$FRESH"
then
echo "Void installation found at $FRESH. Good."
else
if test -e "$TARBALL"
then
echo "Tarball found."
else
URL="$REPO/static/$TARBALL"
echo "Fetching tarball from $URL"
curl "$URL" -O
fi
mkdir "$FRESH"
tar xf "$TARBALL" -C "$FRESH"
mkdir -p "$FRESH/etc/xbps.d"
echo "repository=$REPO/current" > "$FRESH/etc/xbps.d/00-repository-main.conf"
XBPS_ARCH=x86_64 "$FRESH/usr/bin/xbps-install.static" -r "$FRESH" -S base-system
fi
if test -e "$ROOT"
then
echo "Existing installation found at $ROOT, removing."
./cleanup
fi
echo "Copying $FRESH to $ROOT."
cp -r "$FRESH" "$ROOT"
echo "Initializing $ROOT."
chmod 1777 "$ROOT"
chmod 1777 "$ROOT/bin"
chmod 1777 "$ROOT/tmp"
chmod 4755 "$ROOT/usr/bin/sudo"
# Add DNS configs
cp /etc/resolv.conf "$ROOT/etc/resolv.conf"
cp -r install_scripts "$ROOT/root"
./cleanup add_mounts
chroot "$ROOT" /root/install_scripts/user_setup "$@"
./cleanup mounts

22
void/enter_environment Executable file
View File

@ -0,0 +1,22 @@
#!/bin/sh
if test `id -u` -ne 0
then
echo "$0 must be run as root."
return
fi
ROOT=test_environment
if test -e "$ROOT"
then
echo "Using existing environment in $ROOT."
else
./create_environment
fi
./cleanup add_mounts
chroot "$ROOT" sudo -iu user "$@"
./cleanup mounts

View File

@ -0,0 +1,21 @@
#!/bin/sh
sudo xbps-install -y curl wget git gcc autoconf make libxslt noto-fonts-ttf \
wxWidgets-gtk3-devel openssl-devel ncurses-devel glu-devel
mkdir ~/bin
ln -s /usr/bin/wx-config-gtk3 ~/bin/wx-config
export PATH=$PATH:$HOME/bin
curl -O https://raw.githubusercontent.com/kerl/kerl/master/kerl
chmod a+x kerl
./kerl build 27.3.4 27.3.4
./kerl install 27.3.4 ~/.erts/27.3.4
echo '. "$HOME"/.erts/27.3.4/activate' >> .bashrc
. ~/.erts/27.3.4/activate
wget -q https://zxq9.com/projects/zomp/get_zx && bash get_zx
zx import realm ~/install_scripts/qpq.zrf
zx import realm ~/install_scripts/uwiger.zrf
zx run qpq-gajumine

View File

@ -0,0 +1,8 @@
#!/bin/sh
sudo xbps-install wget erlang-wx noto-fonts-ttf
wget -q https://zxq9.com/projects/zomp/get_zx && bash get_zx
export PATH=$PATH:$HOME/bin
zx run gajudesk

Binary file not shown.

19
void/install_scripts/user_setup Executable file
View File

@ -0,0 +1,19 @@
#!/bin/bash
# Overwrite locale setting specified before the chroot
#export LANG=C
#export LC_ALL=C
# Add a passwordless sudoer
useradd -m -s /bin/bash -G wheel user
passwd -d user
echo "user ALL=(ALL) NOPASSWD:ALL" > "/etc/sudoers.d/user"
chmod 0440 "/etc/sudoers.d/user"
# Copy the install scripts into their home directory
cp -r /root/install_scripts /home/user
#chown -R user:user /home/user/install_scripts
# su to this new user... Or sudo -iu, since we want to pass in arguments too.
cd /home/user
sudo -iu user "$@"

Binary file not shown.