From 014509b4279b68be59bb203b3c04a184d4f52242 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Correa=20G=C3=B3mez?= Date: Sun, 26 Feb 2023 22:08:52 +0100 Subject: [PATCH] install: run alpine-appstream-downloader if available MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes sure that the AppStream data is available on the built image. To avoid unnecessary downloads on multiple invocations of install, create a new cache chroot. Signed-off-by: Pablo Correa Gómez Reviewed-by: Oliver Smith Tested-by: Oliver Smith Link: https://lists.sr.ht/~postmarketos/pmbootstrap-devel/%3CPAXP192MB12938C6B570CA56AA162E8A6C7AE9@PAXP192MB1293.EURP192.PROD.OUTLOOK.COM%3E --- pmb/config/__init__.py | 1 + pmb/install/_install.py | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/pmb/config/__init__.py b/pmb/config/__init__.py index 7728e0bb..9a85c1c7 100644 --- a/pmb/config/__init__.py +++ b/pmb/config/__init__.py @@ -216,6 +216,7 @@ chroot_host_path = os.environ["PATH"] + ":/usr/sbin/" chroot_mount_bind = { "/proc": "/proc", "$WORK/cache_apk_$ARCH": "/var/cache/apk", + "$WORK/cache_appstream/$ARCH/$CHANNEL": "/mnt/appstream-data", "$WORK/cache_ccache_$ARCH": "/mnt/pmbootstrap-ccache", "$WORK/cache_distfiles": "/var/cache/distfiles", "$WORK/cache_git": "/mnt/pmbootstrap-git", diff --git a/pmb/install/_install.py b/pmb/install/_install.py index 5a3f2bfe..768fa86d 100644 --- a/pmb/install/_install.py +++ b/pmb/install/_install.py @@ -370,6 +370,25 @@ def setup_hostname(args): pmb.chroot.root(args, ["sed", "-i", "-e", regex, "/etc/hosts"], suffix) +def setup_appstream(args): + """ + If alpine-appstream-downloader has been downloaded, execute it to have + update AppStream data on new installs + """ + suffix = "rootfs_" + args.device + installed_pkgs = pmb.chroot.apk.installed(args, suffix) + + if "alpine-appstream-downloader" not in installed_pkgs or args.offline: + return + + pmb.chroot.root(args, ["alpine-appstream-downloader", + "/mnt/appstream-data"], suffix) + pmb.chroot.root(args, ["mkdir", "-p", "/var/lib/swcatalog"], suffix) + pmb.chroot.root(args, ["cp", "-r", "/mnt/appstream-data/icons", + "/mnt/appstream-data/xml", + "-t", "/var/lib/swcatalog"], suffix) + + def disable_sshd(args): if not args.no_sshd: return @@ -1013,6 +1032,8 @@ def create_device_rootfs(args, step, steps): # Set the hostname as the device name setup_hostname(args) + setup_appstream(args) + disable_sshd(args) disable_firewall(args)