From: Marek Vasut Date: Sun, 25 Sep 2022 23:12:08 +0000 (+0200) Subject: archlinux: Replace platform.machine() check with args.architecture check X-Git-Tag: v14~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2494fd707739b94446a269517a2e030bfff318ac;p=thirdparty%2Fmkosi.git archlinux: Replace platform.machine() check with args.architecture check Test args.architecture instead when selecting the mirror.archlinuxarm.org . The args.architecture will default to "aarch64" if running on a aarch64 machine and respect command line --architecture switch as well. This is necessary in case the mkosi is generating foreign architecture container (e.g. mkosi on amd64 generates arm64 container). Fix Architecture parameter passed into pacman.conf to permit generation of foreign architecture containers. The test on debian/sid amd64 used to generate archlinuxarm aarch64 container looks something like this: 1) Setup pacman ``` $ pacman-key --init ``` - Download http://mirror.archlinuxarm.org/aarch64/core/archlinuxarm-keyring-20140119-2-any.pkg.tar.xz - Verify the download - Extract keys into /usr/share/keyrings ``` $ pacman-key --populate $ pacman-key --populate archlinuxarm $ pacman-key --refresh-keys ``` 2) Run `mkosi --architecture aarch64 ...` --- diff --git a/mkosi/__init__.py b/mkosi/__init__.py index b97b546ca..323cf9220 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -2708,7 +2708,7 @@ def install_arch(state: MkosiState) -> None: GPGDir = /etc/pacman.d/gnupg/ HookDir = {state.root}/etc/pacman.d/hooks/ HoldPkg = pacman glibc - Architecture = auto + Architecture = {state.config.architecture} Color CheckSpace SigLevel = {sig_level} @@ -6414,10 +6414,11 @@ def load_args(args: argparse.Namespace) -> MkosiConfig: args.mirror = "http://archive.ubuntu.com/ubuntu" if platform.machine() == "aarch64": args.mirror = "http://ports.ubuntu.com/" - elif args.distribution == Distribution.arch and platform.machine() == "aarch64": - args.mirror = "http://mirror.archlinuxarm.org" - elif args.distribution == Distribution.arch and platform.machine() == "x86_64": - args.mirror = "https://geo.mirror.pkgbuild.com" + elif args.distribution == Distribution.arch: + if args.architecture == "aarch64": + args.mirror = "http://mirror.archlinuxarm.org" + else: + args.mirror = "https://geo.mirror.pkgbuild.com" elif args.distribution == Distribution.opensuse: args.mirror = "http://download.opensuse.org" elif args.distribution in (Distribution.rocky, Distribution.rocky_epel):