From dbc02a99a1a025e3835f71e29ba6152512f97733 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Mon, 6 Mar 2023 14:59:57 -0600 Subject: [PATCH] Simplify specifying packages to build/install The Portage packages that need to be built and/or installed are now specified in the `build.packages` and `install.packages` files, respectively. Similarly, packages to be installed on the host system are specified in `host-tools.packages`. Finally, the `installonly.packages` file contains a list of packages that are installed in the destination root, but not built in the sysroot beforehand. This allows `make` to better track when the package sets change. It will also make it easier to maintain different sets for different variants in the future. --- Makefile | 18 ++++++++++++++---- build-host-tools.sh | 11 ++--------- build-rootfs.sh | 16 +++++----------- build.packages | 2 ++ build.sh | 14 +++++--------- host-tools.packages | 7 +++++++ install.packages | 5 +++++ installonly.packages | 2 ++ 8 files changed, 42 insertions(+), 33 deletions(-) create mode 100644 build.packages create mode 100644 host-tools.packages create mode 100644 install.packages create mode 100644 installonly.packages diff --git a/Makefile b/Makefile index 5e51e01..6c1f036 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,7 @@ prepare: $(O)/.prepared $(O)/.host-tools: \ build-host-tools.sh \ + host-tools.packages \ $(O)/.prepared ./build-host-tools.sh touch $(O)/.host-tools @@ -27,18 +28,27 @@ host-tools: $(O)/.host-tools $(O)/.built: \ build.sh \ - build-rootfs.sh \ - $(O)/linux/arch/arm64/boot/Image.gz \ + build.packages \ + install.packages \ $(O)/.host-tools \ $(O)/.prepared ./build.sh - ./build-rootfs.sh touch $(O)/.built +$(O)/.ready: \ + build-rootfs.sh \ + install.packages \ + installonly.packages \ + $(O)/linux/arch/arm64/boot/Image.gz \ + $(O)/.host-tools \ + $(O)/.built + ./build-rootfs.sh + touch $(O)/.ready + $(IMAGESDIR)/rootfs.squashfs: \ build-squashfs.sh \ squashfs.exclude \ - $(O)/.built + $(O)/.ready ./build-squashfs.sh "$(IMAGESDIR)" squashfs: $(IMAGESDIR)/rootfs.squashfs diff --git a/build-host-tools.sh b/build-host-tools.sh index 74f8b13..3591364 100755 --- a/build-host-tools.sh +++ b/build-host-tools.sh @@ -1,12 +1,5 @@ #!/bin/sh # vim: set sw=4 ts=4 sts=4 et : -emerge -vnUj \ - sys-apps/systemd \ - sys-boot/grub \ - sys-fs/btrfs-progs \ - sys-fs/dosfstools \ - sys-fs/genimage \ - sys-fs/mtools \ - sys-fs/squashfs-tools \ - || exit +< host-tools.packages xargs -ro \ +emerge -vnUj diff --git a/build-rootfs.sh b/build-rootfs.sh index 6ebf243..9943ec0 100755 --- a/build-rootfs.sh +++ b/build-rootfs.sh @@ -24,19 +24,13 @@ cp -r portage/. /mnt/gentoo/etc/portage/ ROOT=/mnt/gentoo \ PORTAGE_CONFIGROOT=/mnt/gentoo \ -${target}-emerge -Kvnj \ - sys-apps/busybox \ - sys-apps/systemd \ - net-misc/openssh \ - net-misc/wget \ - sys-fs/btrfs-progs \ - -- +< install.packages xargs -ro \ +${target}-emerge -Kvnj + ROOT=/mnt/gentoo \ PORTAGE_CONFIGROOT=/mnt/gentoo \ -${target}-emerge -vnj \ - net-wireless/wireless-regdb \ - sys-kernel/linux-firmware \ - -- +< installonly.packages xargs -ro \ +${target}-emerge -vnj ROOT=/mnt/gentoo \ locale-gen diff --git a/build.packages b/build.packages new file mode 100644 index 0000000..6888dc1 --- /dev/null +++ b/build.packages @@ -0,0 +1,2 @@ +sys-boot/grub +sys-boot/raspberrypi-firmware diff --git a/build.sh b/build.sh index 03c693a..95f0f0a 100755 --- a/build.sh +++ b/build.sh @@ -9,13 +9,9 @@ unset MAKEFLAGS MAKEOVERRIDES MAKELEVEL ${target}-emerge -vuUDj sys-apps/util-linux -${target}-emerge -vnuUDj \ - net-misc/openssh \ - net-misc/wget \ - sys-apps/busybox \ - sys-apps/systemd \ - sys-boot/grub \ - sys-boot/raspberrypi-firmware \ - sys-fs/btrfs-progs \ - -- +cat \ + build.packages \ + install.packages \ + | xargs -ro \ +${target}-emerge -vnuUDj ${target}-emerge -v @preserved-rebuild diff --git a/host-tools.packages b/host-tools.packages new file mode 100644 index 0000000..b5adbfb --- /dev/null +++ b/host-tools.packages @@ -0,0 +1,7 @@ +sys-apps/systemd +sys-boot/grub +sys-fs/btrfs-progs +sys-fs/dosfstools +sys-fs/genimage +sys-fs/mtools +sys-fs/squashfs-tools diff --git a/install.packages b/install.packages new file mode 100644 index 0000000..472ccfe --- /dev/null +++ b/install.packages @@ -0,0 +1,5 @@ +net-misc/openssh +net-misc/wget +sys-apps/busybox +sys-apps/systemd +sys-fs/btrfs-progs diff --git a/installonly.packages b/installonly.packages new file mode 100644 index 0000000..6919839 --- /dev/null +++ b/installonly.packages @@ -0,0 +1,2 @@ +net-wireless/wireless-regdb +sys-kernel/linux-firmware