diff --git a/.gitignore b/.gitignore index a1b499b..ed5cb52 100644 --- a/.gitignore +++ b/.gitignore @@ -9,10 +9,8 @@ isolinux.cfg Vagrantfile # Generated distros -distros/fedora-rawhide-*.hcl -distros/centos-8stream-*.hcl -distros/centos-9stream-*.hcl -cellar/centos-9stream-*.hcl +distros/fedora/rawhide/*.hcl +distros/nixos/**/*.hcl __pycache__ *.pyc diff --git a/build.xsh b/build.xsh index 5e87597..de60ba7 100755 --- a/build.xsh +++ b/build.xsh @@ -6,6 +6,8 @@ sys.path.append(str(Path(__file__).parent / "lib")) from support import Support, BASE import time +source test.xsh + year, month, day, hour, minute, second, wday, jday, dst = time.localtime() STAMP = f"build={year}.{month}.{day}.{hour}" @@ -59,7 +61,12 @@ def do_build(build): packer build -var @(headless) -var @(args.stamp) @(build.var_file) @(build.only) @(BASE / "sources") else: upload = "-except=upload" - packer build -var @(headless) -var @(args.stamp) @(build.var_file) @(build.only) -except=upload @(BASE / "sources") + # Skip building file if we already have built it + output = Path(__file__).parent / "output" / get_vagrant_provider(build.provider.name) / f"{build.distro}-{build.version}-{build.provider.arch}.box" + if output.exists(): + print(f"Skipping {build} as box already exists") + else: + packer build -var @(headless) -var @(args.stamp) @(build.var_file) @(build.only) -except=upload @(BASE / "sources") if args.all or (args.distro and args.version and args.build): process_all() diff --git a/distros/centos-stream/8/disc/ks.cfg b/distros/centos-stream/8/disc/ks.cfg index e8198dd..1771a9b 100644 --- a/distros/centos-stream/8/disc/ks.cfg +++ b/distros/centos-stream/8/disc/ks.cfg @@ -83,16 +83,13 @@ EOF # sshd: disable password authentication and DNS checks ex -s /etc/ssh/sshd_config <>/etc/sysconfig/sshd < /etc/ssh/sshd_config.d/00-vagrant_accept_pubkey.conf -PubkeyAcceptedKeyTypes +ssh-rsa -EOF +echo PubkeyAcceptedKeyTypes +ssh-rsa >> /etc/ssh/sshd_config # Decrease connection time by preventing reverse DNS lookups # (see https://lists.centos.org/pipermail/centos-devel/2016-July/014981.html diff --git a/distros/centos-stream/9/disc/ks.cfg b/distros/centos-stream/9/disc/ks.cfg index b021edf..bd63f1e 100644 --- a/distros/centos-stream/9/disc/ks.cfg +++ b/distros/centos-stream/9/disc/ks.cfg @@ -92,7 +92,7 @@ EOF # sshd: disable password authentication and DNS checks ex -s /etc/ssh/sshd_config < /etc/ssh/sshd_config.d/00-vagrant_accept_pubkey.conf -UseDNS no -PubkeyAcceptedKeyTypes +ssh-rsa -EOF +sed -i -E -e 's,^.*(UseDNS).*$,\1 No,' /etc/ssh/sshd_config +echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> /etc/ssh/sshd_config # Clean up after ourselves apt-get clean diff --git a/distros/fedora/rawhide/x86_64.pkrvars.hcl b/distros/fedora/rawhide/x86_64.pkrvars.hcl index ab777bc..2740f35 100644 --- a/distros/fedora/rawhide/x86_64.pkrvars.hcl +++ b/distros/fedora/rawhide/x86_64.pkrvars.hcl @@ -1,8 +1,8 @@ distro = "fedora" version = "rawhide" iso = { - url = "https://download.fedoraproject.org/pub/fedora/linux/development/rawhide/Server/x86_64/iso/./Fedora-Server-dvd-x86_64-Rawhide-20230814.n.0.iso" - checksum = "e682844d4d61e9e51b5dd98ebabb4738ed3460d02e217125c6f77f9089c87142" + url = "https://download.fedoraproject.org/pub/fedora/linux/development/rawhide/Server/x86_64/iso/./Fedora-Server-dvd-x86_64-Rawhide-20230823.n.0.iso" + checksum = "4ed35d456b51b2d27cfa083220cc0ac4b593f63db0513d69d79af622711783a6" } boot_command = [ "e", diff --git a/distros/fedora/supports.yml b/distros/fedora/supports.yml index c16a3ca..c1634e4 100644 --- a/distros/fedora/supports.yml +++ b/distros/fedora/supports.yml @@ -6,4 +6,4 @@ - arch: x86_64 provider: vmware-iso 38: *supp -rawhide: [] +rawhide: *supp diff --git a/distros/nixos/23.05/finalize.sh b/distros/nixos/23.05/finalize.sh index f1f641a..4cfad53 100644 --- a/distros/nixos/23.05/finalize.sh +++ b/distros/nixos/23.05/finalize.sh @@ -1 +1,2 @@ #!/usr/bin/env bash +set -ex diff --git a/distros/nixos/23.05/qemu.sh b/distros/nixos/23.05/qemu.sh index 9c3c4d6..b55b32d 100644 --- a/distros/nixos/23.05/qemu.sh +++ b/distros/nixos/23.05/qemu.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -ex -sed -i -e 's,#PROVIDER_PLACEHOLDER,guest-agent.nix,' /etc/nixos/configuration.nix +sed -i -e 's,#PROVIDER_PLACEHOLDER,./guest-agent.nix,' /etc/nixos/configuration.nix cat << EOF > /etc/nixos/guest-agent.nix {...}: { diff --git a/distros/nixos/23.05/virtualbox.sh b/distros/nixos/23.05/virtualbox.sh index ab3eddd..33feaec 100644 --- a/distros/nixos/23.05/virtualbox.sh +++ b/distros/nixos/23.05/virtualbox.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -ex -sed -i -e 's,#PROVIDER_PLACEHOLDER,guest-agent.nix,' /etc/nixos/configuration.nix +sed -i -e 's,#PROVIDER_PLACEHOLDER,./guest-agent.nix,' /etc/nixos/configuration.nix cat << EOF > /etc/nixos/guest-agent.nix {...}: { diff --git a/distros/nixos/23.05/vmware.sh b/distros/nixos/23.05/vmware.sh index 3b16ddf..e3b0b6e 100644 --- a/distros/nixos/23.05/vmware.sh +++ b/distros/nixos/23.05/vmware.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash set -ex -sed -i -e 's,#PROVIDER_PLACEHOLDER,guest-agent.nix,' /etc/nixos/configuration.nix +sed -i -e 's,#PROVIDER_PLACEHOLDER,./guest-agent.nix,' /etc/nixos/configuration.nix cat << EOF > /etc/nixos/guest-agent.nix {...}: { diff --git a/distros/ubuntu/20.04/qemu.sh b/distros/ubuntu/20.04/qemu.sh index 4ef2dee..68d435a 100644 --- a/distros/ubuntu/20.04/qemu.sh +++ b/distros/ubuntu/20.04/qemu.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash set -ex +apt update apt install -y qemu-guest-agent systemctl start qemu-guest-agent systemctl enable qemu-guest-agent diff --git a/scripts/minimize.sh b/scripts/minimize.sh index 4e7d753..6b7d6e5 100644 --- a/scripts/minimize.sh +++ b/scripts/minimize.sh @@ -1,7 +1,6 @@ #!/bin/sh -set -e -set -x +set -ex rm -rf /home/vagrant/.ansible sudo rm -rf /root/.ansible