From 55b8b51e519ea9eeb2f26f40ea397e299c6717f0 Mon Sep 17 00:00:00 2001 From: theVakhovskeIsTaken Date: Wed, 28 Jun 2023 11:44:47 +0000 Subject: [PATCH] Use a better approach for pacstrapping kernels --- .gitignore | 1 + .../post_install/install_holoiso.sh | 4 +- .../holoinstall/pre_install/iso_build_deps.sh | 11 +- .../holoinstall/pre_install/testpacman.conf | 116 ------------------ efiboot/loader/entries/02-test.conf | 6 - kernel_list.bootstrap | 4 + packages.x86_64 | 6 - 7 files changed, 12 insertions(+), 136 deletions(-) delete mode 100644 airootfs/etc/holoinstall/pre_install/testpacman.conf delete mode 100644 efiboot/loader/entries/02-test.conf create mode 100644 kernel_list.bootstrap diff --git a/.gitignore b/.gitignore index 31befe1..bcd4bd2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ work/ out/ steamdeck-20230323.1000-snapshot.manifest.pacman pkglist.x86_64.txt +test2.sh diff --git a/airootfs/etc/holoinstall/post_install/install_holoiso.sh b/airootfs/etc/holoinstall/post_install/install_holoiso.sh index b412199..5da0f7e 100644 --- a/airootfs/etc/holoinstall/post_install/install_holoiso.sh +++ b/airootfs/etc/holoinstall/post_install/install_holoiso.sh @@ -286,9 +286,9 @@ base_os_install() { arch-chroot ${HOLO_INSTALL_DIR} rm /etc/polkit-1/rules.d/99_holoiso_installuser.rules cp -r /etc/holoinstall/post_install/pacman.conf ${HOLO_INSTALL_DIR}/etc/pacman.conf arch-chroot ${HOLO_INSTALL_DIR} pacman-key --init - arch-chroot ${HOLO_INSTALL_DIR} pacman -Rdd --noconfirm linux-neptune-61 linux-neptune linux-neptune-61-headers linux-neptune-headers linux-lts linux-lts-headers mkinitcpio-archiso + arch-chroot ${HOLO_INSTALL_DIR} pacman -Rdd --noconfirm $(cat /etc/holoinstall/post_install/kernel_list.bootstrap) arch-chroot ${HOLO_INSTALL_DIR} mkinitcpio -P - arch-chroot ${HOLO_INSTALL_DIR} pacman -U --noconfirm $(find /etc/holoinstall/post_install/pkgs | grep pkg.tar.zst) + arch-chroot ${HOLO_INSTALL_DIR} pacman -U --noconfirm $(find /etc/holoinstall/post_install/kernels | grep pkg.tar.zst) arch-chroot ${HOLO_INSTALL_DIR} userdel -r liveuser check_download $? "installing base package" diff --git a/airootfs/etc/holoinstall/pre_install/iso_build_deps.sh b/airootfs/etc/holoinstall/pre_install/iso_build_deps.sh index 8911b64..23bccf1 100644 --- a/airootfs/etc/holoinstall/pre_install/iso_build_deps.sh +++ b/airootfs/etc/holoinstall/pre_install/iso_build_deps.sh @@ -46,16 +46,15 @@ systemctl enable sddm NetworkManager systemd-timesyncd cups bluetooth sshd # Download extra stuff mkdir -p /etc/holoinstall/post_install/pkgs +mkdir -p /etc/holoinstall/post_install/kernels wget $(pacman -Sp win600-xpad-dkms) -P /etc/holoinstall/post_install/pkgs_addon wget $(pacman -Sp linux-firmware-neptune) -P /etc/holoinstall/post_install/pkgs_addon # Download Kernels -wget $(pacman -Sp linux-neptune-61) -P /etc/holoinstall/post_install/pkgs -wget $(pacman -Sp linux-neptune-61-headers) -P /etc/holoinstall/post_install/pkgs -wget $(pacman -Sp linux-neptune) -P /etc/holoinstall/post_install/pkgs -wget $(pacman -Sp linux-neptune-headers) -P /etc/holoinstall/post_install/pkgs -wget $(pacman -Sp linux-lts) -P /etc/holoinstall/post_install/pkgs -wget $(pacman -Sp linux-lts) -P /etc/holoinstall/post_install/pkgs +for kernel in $(cat /etc/holoinstall/post_install/kernel_list.bootstrap) +do + wget $(pacman -Sp $kernel) -P /etc/holoinstall/post_install/kernels +done # Workaround mkinitcpio bullshit so that i don't KMS after rebuilding ISO each time and having users reinstalling their fucking OS bullshit every goddamn time. rm /etc/mkinitcpio.conf diff --git a/airootfs/etc/holoinstall/pre_install/testpacman.conf b/airootfs/etc/holoinstall/pre_install/testpacman.conf deleted file mode 100644 index 095eef2..0000000 --- a/airootfs/etc/holoinstall/pre_install/testpacman.conf +++ /dev/null @@ -1,116 +0,0 @@ -# -# /etc/pacman.conf -# -# See the pacman.conf(5) manpage for option and repository directives -# CONFIG_VERSION="1" - -# -# GENERAL OPTIONS -# -[options] -# The following paths are commented out with their default values listed. -# If you wish to use different paths, uncomment and update the paths. -#RootDir = / -#DBPath = /var/lib/pacman/ -#CacheDir = /var/cache/pacman/pkg/ -#LogFile = /var/log/pacman.log -#GPGDir = /etc/pacman.d/gnupg/ -#HookDir = /etc/pacman.d/hooks/ -HoldPkg = pacman glibc -#XferCommand = /usr/bin/curl -L -C - -f -o %o %u -#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u -#CleanMethod = KeepInstalled -Architecture = auto - -# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup -IgnorePkg = jupiter-hw-support linux-firmware-neptune linux-firmware-neptune-rtw-debug -#IgnoreGroup = - -#NoUpgrade = -#NoExtract = - -# Misc options -#UseSyslog -#Color -#TotalDownload -# We cannot check disk space from within a chroot environment -#CheckSpace -#VerbosePkgLists -ParallelDownloads = 5 - -# By default, pacman accepts packages signed by keys that its local keyring -# trusts (see pacman-key and its man page), as well as unsigned packages. -SigLevel = Required DatabaseOptional -LocalFileSigLevel = Optional -#RemoteFileSigLevel = Required - -# NOTE: You must run `pacman-key --init` before first using pacman; the local -# keyring can then be populated with the keys of all official Arch Linux -# packagers with `pacman-key --populate archlinux`. - -# -# REPOSITORIES -# - can be defined here or included from another file -# - pacman will search repositories in the order defined here -# - local/custom mirrors can be added here or in separate files -# - repositories listed first will take precedence when packages -# have identical names, regardless of version number -# - URLs will have $repo replaced by the name of the current repo -# - URLs will have $arch replaced by the name of the architecture -# -# Repository entries are of the format: -# [repo-name] -# Server = ServerName -# Include = IncludePath -# -# The header [repo-name] is crucial - it must be present and -# uncommented to enable the repo. -# - -# The testing repositories are disabled by default. To enable, uncomment the -# repo name header and Include lines. You can add preferred servers immediately -# after the header, and they will be used before the default mirrors. - -#[testing-rel] -#Include = /etc/pacman.d/mirrorlist - -[holoiso-hwsupport] -Server = https://gdrivecdn.thevakhovske.pw/3:/daily_/testpkgs/$repo -SigLevel = Never - -[holoiso-next] -Include = /etc/pacman.d/holo_mirrorlist -SigLevel = Never - -[holostaging] -Include = /etc/pacman.d/holo_mirrorlist -SigLevel = Never - -[jupiter-main] -Include = /etc/pacman.d/mirrorlist -SigLevel = Never - -[holo-main] -Include = /etc/pacman.d/mirrorlist -SigLevel = Never - -[core-main] -Include = /etc/pacman.d/mirrorlist - -[extra-main] -Include = /etc/pacman.d/mirrorlist - -#[community-testing-main] -#Include = /etc/pacman.d/mirrorlist - -[community-main] -Include = /etc/pacman.d/mirrorlist - -[multilib-main] -Include = /etc/pacman.d/mirrorlist - -# An example of a custom package repository. See the pacman manpage for -# tips on creating your own repositories. -#[custom] -#SigLevel = Optional TrustAll -#Server = file:///home/custompkgs \ No newline at end of file diff --git a/efiboot/loader/entries/02-test.conf b/efiboot/loader/entries/02-test.conf deleted file mode 100644 index 56cc043..0000000 --- a/efiboot/loader/entries/02-test.conf +++ /dev/null @@ -1,6 +0,0 @@ -title HoloISO installer (beta, with SD 6.1) -linux /%INSTALL_DIR%/boot/x86_64/vmlinuz-linux-neptune-61 -initrd /%INSTALL_DIR%/boot/intel-ucode.img -initrd /%INSTALL_DIR%/boot/amd-ucode.img -initrd /%INSTALL_DIR%/boot/x86_64/initramfs-linux-neptune-61.img -options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% cow_spacesize=10G copytoram diff --git a/kernel_list.bootstrap b/kernel_list.bootstrap new file mode 100644 index 0000000..f133aaf --- /dev/null +++ b/kernel_list.bootstrap @@ -0,0 +1,4 @@ +linux-neptune +linux-neptune-headers +core-main/linux-lts +core-main/linux-lts-headers \ No newline at end of file diff --git a/packages.x86_64 b/packages.x86_64 index 662f76c..27647fd 100644 --- a/packages.x86_64 +++ b/packages.x86_64 @@ -44,12 +44,6 @@ less lftp libfido2 libusb-compat -linux-neptune-61 -linux-neptune-61-headers -linux-neptune -linux-neptune-headers -linux-lts -linux-lts-headers linux-atm linux-firmware linux-firmware-marvell