From 78b4e437fc4e2790eb15a27d34792e8b40b3e379 Mon Sep 17 00:00:00 2001 From: amy Date: Fri, 22 Oct 2021 20:58:45 +0200 Subject: [PATCH] created extra script for building tarball --- .gitignore | 4 ++- build_bootstrap.sh | 59 +++++++++++++++++++++++++++++++++ build_iso.sh | 1 + chrooted-bootstrp.sh | 33 ++++++++++++++++++ chrooted.sh => chrooted-iso.sh | 0 crystal/airootfs/etc/buildstamp | 2 +- mkarchiso | 2 ++ 7 files changed, 99 insertions(+), 2 deletions(-) create mode 100644 build_bootstrap.sh create mode 100644 chrooted-bootstrp.sh rename chrooted.sh => chrooted-iso.sh (100%) diff --git a/.gitignore b/.gitignore index f291094..a24d8a6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ *.iso +*.tar.gz sysroot/ sysroot.* crystal/pacman.conf crystal/airootfs/etc/pacman.conf -repo/ \ No newline at end of file +repo/ +chrooted.sh \ No newline at end of file diff --git a/build_bootstrap.sh b/build_bootstrap.sh new file mode 100644 index 0000000..9ac0531 --- /dev/null +++ b/build_bootstrap.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash +rm -fv *.iso + +if [[ "$1" == "" ]]; then + WORKDIR=$(mktemp -d) +else + WORKDIR="$1" + if [[ ! -d "$WORKDIR" ]]; then + mkdir -p "$WORKDIR" + fi +fi + +if [[ "$2" == "testing" ]]; then + cp pacman.testing crystal/pacman.conf +else + cp pacman.def crystal/pacman.conf +fi + +if [[ -f aur-pkgs ]]; then + if [[ ! -d repo ]]; then + mkdir repo + mkdir temp + for pkg in "$(cat aur-pkgs)"; do + pushd temp + git clone https://aur.archlinux.org/$pkg.git + pushd $pkg + makepkg -sf --skippgpcheck + cp *.pkg.tar.zst ../../repo/. + popd + popd + done + rm -rf temp/ + pushd repo + repo-add aur.db.tar.gz *.pkg.tar.* + MP=$(pwd) + popd + + echo >> crystal/packages.x86_64 + for pkg in "$(cat aur-pkgs)"; do + echo "${pkg}" >> crystal/packages.x86_64 + done + + fi + + echo "[aur]" >> crystal/pacman.conf + echo "SigLevel = Never" >> crystal/pacman.conf + echo "Server = file://${MP}" >> crystal/pacman.conf + +fi + +# idk if this would've happened automatically? +cp crystal/pacman.conf crystal/airootfs/etc/. +cp crystal/packages.x86_64 crystal/airootfs/etc/packages.x86_64 +cp /etc/pacman.d/mirrorlist crystal/airootfs/etc/pacman.d/. +echo "Built on $(date +"%D @ %T EST")" > crystal/airootfs/etc/buildstamp +cp chrooted-bootstrp.sh chrooted.sh +time sudo ./mkarchiso -m bootstrap -v -w $WORKDIR -o . crystal +sudo rm -rf $WORKDIR +sudo chown $USER:$USER *.iso diff --git a/build_iso.sh b/build_iso.sh index cbae663..f9c9c19 100755 --- a/build_iso.sh +++ b/build_iso.sh @@ -53,6 +53,7 @@ cp crystal/pacman.conf crystal/airootfs/etc/. cp crystal/packages.x86_64 crystal/airootfs/etc/packages.x86_64 cp /etc/pacman.d/mirrorlist crystal/airootfs/etc/pacman.d/. echo "Built on $(date +"%D @ %T EST")" > crystal/airootfs/etc/buildstamp +cp chrooted-iso.sh chrooted.sh time sudo ./mkarchiso -v -w $WORKDIR -o . crystal sudo rm -rf $WORKDIR sudo chown $USER:$USER *.iso diff --git a/chrooted-bootstrp.sh b/chrooted-bootstrp.sh new file mode 100644 index 0000000..369895a --- /dev/null +++ b/chrooted-bootstrp.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# This file is run via mkarchiso while chrooted as the new system +echo "chrooted in the new system, running as $(whoami)" + +echo "CrystalLive" > /etc/hostname +echo "sudo reflector --verbose --latest 5 --sort rate --save /etc/pacman.d/mirrorlist" >> /usr/bin/mirrorsetup +chmod +x /usr/bin/mirrorsetup + +# We don't add crystal until here so that our packages which change +# /etc/skel have been installed already +useradd -m crystal +usermod -p $(echo "crystal" | openssl passwd -6 -stdin) crystal +usermod -p $(echo "crystal" | openssl passwd -6 -stdin) root +chsh -s /usr/bin/zsh crystal + +cat >> /home/crystal/.zshrc << EOF +PROMPT="%n@%m %~ %# " +alias paste="nc termbin.com 9999" +clear +pfetch +EOF + +echo "zsh" > /home/crystal/.bashrc + +chown -R crystal:crystal /home/crystal/ +systemctl enable NetworkManager + +# i'm tired ok +echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen +locale-gen +echo "LANG=en_US.UTF-8" > /etc/locale.conf +echo "Configured the system. Exiting chroot." diff --git a/chrooted.sh b/chrooted-iso.sh similarity index 100% rename from chrooted.sh rename to chrooted-iso.sh diff --git a/crystal/airootfs/etc/buildstamp b/crystal/airootfs/etc/buildstamp index d4be9d8..98ea62a 100644 --- a/crystal/airootfs/etc/buildstamp +++ b/crystal/airootfs/etc/buildstamp @@ -1 +1 @@ -Built on 10/22/21 @ 19:15:37 EST +Built on 10/22/21 @ 20:50:17 EST diff --git a/mkarchiso b/mkarchiso index bcb51ce..fa10842 100755 --- a/mkarchiso +++ b/mkarchiso @@ -984,6 +984,8 @@ _build_bootstrap_image() { cd -- "${_bootstrap_parent}" _msg_info "Creating bootstrap image..." + _msg_info "But before that, we're running inject.sh" + pushd ${startdir} && ./inject.sh ${pacstrap_dir} && popd bsdtar -cf - "root.${arch}" | gzip -cn9 > "${out_dir}/${image_name}" _msg_info "Done!" du -h -- "${out_dir}/${image_name}"