diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 87f92b7..a33271f 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -14,6 +14,7 @@ on: - ".github/workflows/macos.yml" - ".github/workflows/debian-cache.yml" - "docs/**" + - 'tools/**' - ".readthedocs.yaml" - "README.md" diff --git a/tools/qemu-ubuntu-img/14.04/Dockerfile b/tools/qemu-ubuntu-img/14.04/Dockerfile deleted file mode 100644 index a5c6af4..0000000 --- a/tools/qemu-ubuntu-img/14.04/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 2018 Mikhail Klementev. All rights reserved. -# Use of this source code is governed by a AGPLv3 license -# (or later) that can be found in the LICENSE file. -# -# Usage: -# -# $ docker build -t gen-ubuntu1404-image . -# $ docker run --privileged -v $(pwd):/shared -t gen-ubuntu1404-image -# -# ubuntu1404.img will be created in current directory. You can change $(pwd) to -# different directory to use different destination for image. -# -FROM ubuntu:14.04 - -ENV DEBIAN_FRONTEND=noninteractive -RUN apt-get update -RUN apt-get install -y debootstrap qemu - -ENV TMPDIR=/tmp/ubuntu -ENV IMAGEDIR=/tmp/image -ENV IMAGE=/shared/out_of_tree_ubuntu_14__04.img -ENV REPOSITORY=http://archive.ubuntu.com/ubuntu -ENV RELEASE=trusty - -RUN mkdir $IMAGEDIR - -# Must be executed with --privileged because of /dev/loop -CMD debootstrap --include=openssh-server,policykit-1 \ - $RELEASE $TMPDIR $REPOSITORY && \ - /shared/setup.sh $TMPDIR && \ - qemu-img create $IMAGE 2G && \ - mkfs.ext4 -F $IMAGE && \ - mount -o loop $IMAGE $IMAGEDIR && \ - cp -a $TMPDIR/* $IMAGEDIR/ && \ - umount $IMAGEDIR diff --git a/tools/qemu-ubuntu-img/14.04/setup.sh b/tools/qemu-ubuntu-img/14.04/setup.sh deleted file mode 100755 index b4a1647..0000000 --- a/tools/qemu-ubuntu-img/14.04/setup.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -eux -# Copyright 2018 Mikhail Klementev. All rights reserved. -# Use of this source code is governed by a AGPLv3 license -# (or later) that can be found in the LICENSE file. -TMPDIR=$1 -chroot $TMPDIR /bin/sh -c 'useradd -m user' -sed -i 's/root:\*:/root::/' $TMPDIR/etc/shadow -sed -i 's/user:!!:/user::/' $TMPDIR/etc/shadow -echo auth sufficient pam_permit.so > $TMPDIR/etc/pam.d/sshd -sed -i '/PermitEmptyPasswords/d' $TMPDIR/etc/ssh/sshd_config -echo PermitEmptyPasswords yes >> $TMPDIR/etc/ssh/sshd_config -sed -i '/PermitRootLogin/d' $TMPDIR/etc/ssh/sshd_config -echo PermitRootLogin yes >> $TMPDIR/etc/ssh/sshd_config -sed -i '/UseDNS/d' $TMPDIR/etc/ssh/sshd_config -echo UseDNS no >> $TMPDIR/etc/ssh/sshd_config - -echo '#!/bin/sh' > $TMPDIR/etc/rc.local -echo 'dhclient eth0' >> $TMPDIR/etc/rc.local -chmod +x $TMPDIR/etc/rc.local diff --git a/tools/qemu-ubuntu-img/generate-images.py b/tools/qemu-ubuntu-img/generate-images.py index 09eb0e1..9861f9f 100755 --- a/tools/qemu-ubuntu-img/generate-images.py +++ b/tools/qemu-ubuntu-img/generate-images.py @@ -7,13 +7,13 @@ script_dir = os.path.dirname(os.path.realpath(__file__)) os.chdir(script_dir) releases = [ - # ('12.04', 'precies'), - # ('14.04', 'trusty'), - # ('16.04', 'xenial'), - # ('18.04', 'bionic'), - # ('20.04', 'focal'), - # ('22.04', 'jammy'), - ('24.04', 'noble'), + ('12.04', 'precise', 'http://old-releases.ubuntu.com/ubuntu'), + ('14.04', 'trusty', 'http://archive.ubuntu.com/ubuntu'), + ('16.04', 'xenial', 'http://archive.ubuntu.com/ubuntu'), + ('18.04', 'bionic', 'http://archive.ubuntu.com/ubuntu'), + ('20.04', 'focal', 'http://archive.ubuntu.com/ubuntu'), + ('22.04', 'jammy', 'http://archive.ubuntu.com/ubuntu'), + ('24.04', 'noble', 'http://archive.ubuntu.com/ubuntu') ] template = ''' @@ -27,7 +27,7 @@ RUN apt install -y linux-image-generic ENV TMPDIR=/tmp/ubuntu ENV IMAGEDIR=/tmp/image ENV IMAGE=/shared/out_of_tree_ubuntu_{img_version}.img -ENV REPOSITORY=http://archive.ubuntu.com/ubuntu +ENV REPOSITORY={repository} ENV RELEASE={codename} RUN mkdir $IMAGEDIR @@ -47,7 +47,7 @@ def run_cmd(cmd): print(f"+ {cmd}") subprocess.run(cmd, shell=True, check=True, executable='/bin/bash') -for version, codename in releases: +for version, codename, repository in releases: numeric_version = version.replace('.', '') img_version=version.replace(".","__") @@ -55,6 +55,7 @@ for version, codename in releases: version=version, img_version=img_version, codename=codename, + repository=repository, numeric_version=numeric_version) os.makedirs(str(version), exist_ok=True)