]>
git.ipfire.org Git - thirdparty/mkosi.git/log
Daan De Meyer [Mon, 17 Aug 2020 17:34:35 +0000 (18:34 +0100)]
CI: Add QEMU boot tests
Adding these gives us a clear idea of which setups should work and which
are broken. This helps with triaging issues since we can immediately see
if a setup is supposed to work or not. It also makes sure setups that do
work keep working in the future.
Currently, only Arch, CentOS and Fedora can boot on all included setups
(nspawn, UEFI + systemd-boot with unified kernel images, UEFI +
systemd-boot and BIOS). Debian, Ubuntu, OpenSUSE and Mageia fail
on UEFI without unified kernel images because their package managers
don't install any boot loader entries that systemd-boot can read.
Photon doesn't work on any of the setups. Clear also has a lot of issues
due to it using its own bootloader and OpenMandriva has QEMU failures.
For now, we disable all these but we hope support by them can be added
by interested contributors in the future.
Daan De Meyer [Sat, 22 Aug 2020 11:55:15 +0000 (12:55 +0100)]
CI: Stop running setup-mkosi on Ubuntu and Debian
Ubuntu is currently the slowest of all the builds. Let's speed it up by
removing unnecessary dependency building and installation.
Daan De Meyer [Thu, 20 Aug 2020 21:56:52 +0000 (22:56 +0100)]
Only install dracut config files when necessary
Daan De Meyer [Thu, 20 Aug 2020 18:00:40 +0000 (19:00 +0100)]
OpenSUSE: Remove dracut workaround
Daan De Meyer [Thu, 20 Aug 2020 17:42:14 +0000 (18:42 +0100)]
OpenSUSE: Support passwordless root login
Daan De Meyer [Thu, 20 Aug 2020 16:40:40 +0000 (17:40 +0100)]
Arch: Quote correctly in mkosi-kernel-remove script
Daan De Meyer [Wed, 19 Aug 2020 22:13:44 +0000 (23:13 +0100)]
Fail early when using --bootable on Photon
Daan De Meyer [Wed, 19 Aug 2020 22:12:59 +0000 (23:12 +0100)]
Fail early when trying to use --bootable with Clear Linux
Daan De Meyer [Wed, 19 Aug 2020 22:09:03 +0000 (23:09 +0100)]
Fail early when using --without-unified-kernel-images on unsupported
distros
Daan De Meyer [Wed, 19 Aug 2020 21:43:42 +0000 (22:43 +0100)]
Mageia: Make sure systemd is included in the initramfs
Daan De Meyer [Wed, 19 Aug 2020 21:23:37 +0000 (22:23 +0100)]
Fedora: Install kernel modules so squashfs is available
Daan De Meyer [Wed, 19 Aug 2020 21:02:14 +0000 (22:02 +0100)]
Ubuntu/Debian: Add universe regardless of UKI or not
Leftover from a previous revert.
Daan De Meyer [Wed, 19 Aug 2020 20:59:44 +0000 (21:59 +0100)]
Add BIOS support to --qemu-headless
Daan De Meyer [Wed, 19 Aug 2020 20:45:47 +0000 (21:45 +0100)]
Arch: Drop e2fsprogs install logic as its part of base
Daan De Meyer [Sat, 22 Aug 2020 10:04:08 +0000 (11:04 +0100)]
Fix grub installation
If we don't mount /dev/block and /dev/disk into the container, grub will
add root=/dev/loop... to the kernel command line which breaks when
booting the image. If we mount these directories, grub will correctly
use the PARTUUID or UUID instead.
Daan De Meyer [Wed, 19 Aug 2020 20:13:28 +0000 (21:13 +0100)]
Arch: Handle no kernels installed case in kernel-install hook
If a bash glob doesn't match any files, it returns the glob itself which
trips up the current logic. Explicitly check if the file exists to avoid
this.
Daan De Meyer [Wed, 19 Aug 2020 20:06:55 +0000 (21:06 +0100)]
Arch: Explicitly install base package first
Avoids dependency installation order issues due to other packages
implicitly depending on packages in base.
Daan De Meyer [Mon, 17 Aug 2020 23:46:44 +0000 (00:46 +0100)]
Mageia: Apply opensuse dracut fix
Daan De Meyer [Mon, 17 Aug 2020 22:38:54 +0000 (23:38 +0100)]
Fall back to software CPU emulation if KVM isn't available
Daan De Meyer [Mon, 17 Aug 2020 20:37:31 +0000 (21:37 +0100)]
Fix WithUnifiedKernelImages
Daan De Meyer [Mon, 17 Aug 2020 19:02:09 +0000 (20:02 +0100)]
Arch: Add vmlinuz add/remove hooks when using BIOS
dracut doesn't actually copy these to /boot when using BIOS so we an
extra set of hooks to copy these over.
Daan De Meyer [Mon, 17 Aug 2020 18:03:50 +0000 (19:03 +0100)]
Only boot with OVMF when building UEFI images
Joerg Behrmann [Sun, 23 Aug 2020 11:44:56 +0000 (13:44 +0200)]
Don't write .pyc files when bin/mkosi is called with sudo
Daan De Meyer [Sat, 22 Aug 2020 09:50:24 +0000 (10:50 +0100)]
Merge pull request #504 from behrmann/entrypoint_v2
Entrypoint v2
Joerg Behrmann [Thu, 20 Aug 2020 12:42:29 +0000 (14:42 +0200)]
move do-a-release.sh to tools directory
Joerg Behrmann [Thu, 20 Aug 2020 12:41:20 +0000 (14:41 +0200)]
add generate-zipapp.sh script to generate a zipapp
Joerg Behrmann [Fri, 14 Aug 2020 14:20:59 +0000 (16:20 +0200)]
ci: add installation tests
Joerg Behrmann [Fri, 14 Aug 2020 14:09:54 +0000 (16:09 +0200)]
Statically set the program name in the argument parser
Joerg Behrmann [Sun, 9 Aug 2020 09:21:09 +0000 (11:21 +0200)]
Eschew using an entrypoint for an explicit wrapper script
Joerg Behrmann [Sat, 8 Aug 2020 21:53:11 +0000 (23:53 +0200)]
Revert "Revert: Make mkosi a python module and generate script via entrypoint"
This reverts commit
7b86ed98f07d20a46aaeaa64db03499b443412e9 .
Joerg Behrmann [Mon, 17 Aug 2020 18:32:22 +0000 (20:32 +0200)]
generate a new man page for a release
Daan De Meyer [Sun, 16 Aug 2020 17:44:52 +0000 (18:44 +0100)]
Arch: Use Arch mirrorlist generator to get a list of mirrors.
Fixes #467 and puts us in a good spot for when pacman 6.0 releases with
parallel download support.
Daan De Meyer [Sun, 16 Aug 2020 16:32:00 +0000 (17:32 +0100)]
Merge pull request #514 from DaanDeMeyer/ci-boot
CI: Add systemd-nspawn boot test
Daan De Meyer [Sat, 15 Aug 2020 21:20:10 +0000 (22:20 +0100)]
CI: Add systemd-nspawn boot test
Daan De Meyer [Sun, 16 Aug 2020 00:16:59 +0000 (01:16 +0100)]
OpenMandriva: Disable pam_securetty
Daan De Meyer [Sun, 16 Aug 2020 00:16:45 +0000 (01:16 +0100)]
Mageia: Disable pam_securetty
Daan De Meyer [Sun, 16 Aug 2020 00:04:39 +0000 (01:04 +0100)]
Use --volatile=overlay when booting generated_root() images
These aren't meant to be modified after being created so make sure that
writes don't fail by mounting a tmpfs overlay on top when booting.
Daan De Meyer [Sat, 15 Aug 2020 23:19:19 +0000 (00:19 +0100)]
Only require --bootable for --qemu-headless when building
Daan De Meyer [Sat, 15 Aug 2020 22:10:50 +0000 (23:10 +0100)]
OpenSUSE: Add systemd package
Daan De Meyer [Sat, 15 Aug 2020 21:44:57 +0000 (22:44 +0100)]
OpenSUSE: Simplify
Daan De Meyer [Sat, 15 Aug 2020 20:33:13 +0000 (21:33 +0100)]
Ignore mypy false positives and update to latest version
Daan De Meyer [Sat, 15 Aug 2020 18:31:42 +0000 (19:31 +0100)]
Drop --verbose flag when running dracut
Daan De Meyer [Sat, 15 Aug 2020 14:56:28 +0000 (15:56 +0100)]
Ubuntu/Debian: Simplify installation and drop some outdated workarounds
Daan De Meyer [Sat, 15 Aug 2020 17:19:33 +0000 (18:19 +0100)]
Merge pull request #510 from DaanDeMeyer/check-default
Make run() set check=True by default
Daan De Meyer [Sat, 15 Aug 2020 10:39:50 +0000 (11:39 +0100)]
Make run_workspace_command take the command as a list
Consistent with how run() takes its command.
Daan De Meyer [Sat, 15 Aug 2020 09:35:08 +0000 (10:35 +0100)]
Arch: Make pacman hooks more generic
It's generally good to not depend on specific packages in pacman hooks
since it doesn't take new packages into account. To get around, this we
can simply depend on the /usr/lib/kernel/install.d directory so any
package that installs a file into this directory can plug into the
pacman hook.
One annoyance we can't solve without package specific information in the
pacman hook is packages that themself support hook directories that
other packages can install to. This would require a mechanism in pacman
where packages can contribute triggers to hooks installed by other
packages.
Daan De Meyer [Sat, 15 Aug 2020 10:24:28 +0000 (11:24 +0100)]
Make run() set check=True by default
Daan De Meyer [Thu, 13 Aug 2020 19:57:23 +0000 (20:57 +0100)]
Interpret CLI args as nspawn args when verb == "boot"
Normal command line args are ignored by nspawn when --boot is used.
Instead of doing nothing with them, let's allow users to pass nspawn
args via the command line directly when boot is used.
Daan De Meyer [Sat, 8 Aug 2020 19:33:14 +0000 (20:33 +0100)]
Add setup-mkosi Github Action
We want to make it easy to set up mkosi based CI for other Linux
userspace projects on Github. By extracting all the tedious building of
dependencies out into a Github Actions, other projects can start using
mkosi for CI by simply adding 'uses: actions/setup-mkosi' to their
Github Actions workflow.
Joerg Behrmann [Sat, 8 Aug 2020 21:44:20 +0000 (23:44 +0200)]
Revert: Make mkosi a python module and generate script via entrypoint
This commit reverts
5c9faf85fd6cc3101bbed9c506bfcce612102eae
97f22b9fada69687127c8086e9ea4ee869a33c15
0e477deeabb51e99ce4f85538b079ed8b42b250d
because the entrypoint console_script does not work properly when called with
sudo when not installed in a virtual environment, since the python binary is
unable to find the mkosi module in its search path.
Daan De Meyer [Sat, 8 Aug 2020 22:26:55 +0000 (23:26 +0100)]
Revert "Add note to README that `sudo python -m mkosi` should be used to run"
This reverts commit
ba62763ad0858753fe473c43ff6705353f9ab0d0 .
Daan De Meyer [Sat, 8 Aug 2020 22:08:35 +0000 (23:08 +0100)]
Add note to README that `sudo python -m mkosi` should be used to run
mkosi
Daan De Meyer [Sat, 8 Aug 2020 18:32:53 +0000 (19:32 +0100)]
Merge pull request #499 from behrmann/manpage2
Manpage and entrypoint fix
Joerg Behrmann [Sat, 8 Aug 2020 16:54:29 +0000 (18:54 +0200)]
Fix entrypoint installation
Joerg Behrmann [Sat, 8 Aug 2020 16:48:52 +0000 (18:48 +0200)]
Install the man page
Joerg Behrmann [Sat, 8 Aug 2020 15:00:39 +0000 (17:00 +0200)]
Fix man page generation
Daan De Meyer [Sat, 8 Aug 2020 16:24:43 +0000 (17:24 +0100)]
Merge pull request #401 from behrmann/entrypoint
Use entrypoint to generate mkosi instead of symlink
Joerg Behrmann [Sat, 8 Aug 2020 12:22:22 +0000 (14:22 +0200)]
Explain the installation in the README
Joerg Behrmann [Thu, 30 Jul 2020 18:45:06 +0000 (20:45 +0200)]
Make mkosi a python module and generate script via entrypoint
Blair Bonnett [Fri, 24 Jul 2020 10:06:31 +0000 (12:06 +0200)]
Fix default source file transfer
According to the man page, --source-file-transfer "defaults to
copy-git-cached if a git source tree is detected, otherwise copy-all".
However the existing code only sets it to copy-git-cached if a .git
folder exists and leaves it at None otherwise, meaning a non-Git source
is never transferred.
Daan De Meyer [Sat, 8 Aug 2020 11:37:03 +0000 (12:37 +0100)]
Merge pull request #490 from DaanDeMeyer/arch-kernel-install-hooks
Unified kernel images improvements
Daan De Meyer [Fri, 7 Aug 2020 21:15:02 +0000 (22:15 +0100)]
Fedora: Capitalize rawhide in repository full name
Daan De Meyer [Fri, 7 Aug 2020 21:13:57 +0000 (22:13 +0100)]
Fedora: Fall back to fedora.gpg if key id is not in FEDORA_KEYS_MAP.
Daan De Meyer [Fri, 7 Aug 2020 18:55:15 +0000 (19:55 +0100)]
Arch: Add bootctl update pacman hook
Daan De Meyer [Sat, 8 Aug 2020 00:13:33 +0000 (01:13 +0100)]
Fix --subvolume --read-only combo
Fixes #145
Daan De Meyer [Fri, 7 Aug 2020 18:53:55 +0000 (19:53 +0100)]
Use bootctl install instead of manually copying systemd-boot to $BOOT
Daan De Meyer [Thu, 6 Aug 2020 17:40:44 +0000 (18:40 +0100)]
Arch: Drop pacstrap dependency
We have all the bits and pieces necessary to re-implement its
functionality.
Daan De Meyer [Thu, 6 Aug 2020 07:28:13 +0000 (08:28 +0100)]
Simplify grub installation
Daan De Meyer [Wed, 5 Aug 2020 20:48:33 +0000 (21:48 +0100)]
Make sure serial-getty override parent directories exist
Daan De Meyer [Wed, 5 Aug 2020 20:43:14 +0000 (21:43 +0100)]
Make warning messages yellow and simplify warn()
Daan De Meyer [Wed, 5 Aug 2020 20:38:52 +0000 (21:38 +0100)]
Collapse print_error() into die()
Daan De Meyer [Wed, 5 Aug 2020 20:37:32 +0000 (21:37 +0100)]
Add --qemu-headless to option summary
Daan De Meyer [Wed, 5 Aug 2020 20:36:19 +0000 (21:36 +0100)]
Add --without-unified-kernel-images option
Specifying this option makes mkosi install kernels with a separate
initrd and boot loader config.
Daan De Meyer [Wed, 5 Aug 2020 20:11:43 +0000 (21:11 +0100)]
Docs: Remove trailing whitespace
Daan De Meyer [Wed, 5 Aug 2020 19:33:47 +0000 (20:33 +0100)]
Arch: Drop UseSyslog from the pacman config
It clutters the log at warning level and doesn't provide much benefit.
Daan De Meyer [Mon, 3 Aug 2020 18:42:53 +0000 (19:42 +0100)]
Arch: Simplify kernel logic
Daan De Meyer [Tue, 4 Aug 2020 18:46:20 +0000 (19:46 +0100)]
Arch: Switch to dracut
Daan De Meyer [Mon, 3 Aug 2020 18:27:06 +0000 (19:27 +0100)]
Arch: Add kernel-install pacman hooks
We keep mkinitcpio disabled and replace the mkinitpcio and depmod pacman
hooks by kernel-install hooks instead.
Daan De Meyer [Mon, 3 Aug 2020 16:22:23 +0000 (17:22 +0100)]
Arch: Enable pacman colors
We use colors in the rest of mkosi so no reason to explicitly disable
them in pacman.
Daan De Meyer [Mon, 3 Aug 2020 16:20:58 +0000 (17:20 +0100)]
Arch: Drop removal of packages
Leftover from a time where base still included way too much stuff. Can
be removed now that Arch's base group is much leaner.
Daan De Meyer [Tue, 4 Aug 2020 18:46:47 +0000 (19:46 +0100)]
Regenerate unified kernel images when installing/updating kernels in
image.
This also removes --add qemu and --add-drivers squashfs from the dracut
command line as these are added by default in recent versions.
Daan De Meyer [Thu, 6 Aug 2020 23:13:12 +0000 (00:13 +0100)]
Fix btrfs EEXIST error when using cached images
Fixes #416
Daan De Meyer [Thu, 6 Aug 2020 16:00:03 +0000 (17:00 +0100)]
CentOS: Fix --mirror
Daan De Meyer [Wed, 5 Aug 2020 17:49:46 +0000 (18:49 +0100)]
Fedora: Fix --mirror
Daan De Meyer [Mon, 3 Aug 2020 23:16:44 +0000 (00:16 +0100)]
opensuse: Add binutils
Daan De Meyer [Tue, 4 Aug 2020 23:58:50 +0000 (00:58 +0100)]
Merge pull request #486 from DaanDeMeyer/ci-tdnf
Ci tdnf
Daan De Meyer [Fri, 31 Jul 2020 20:10:07 +0000 (21:10 +0100)]
Add photon to CI
We build tdnf along with the centos dependencies as it needs libsolv as
well and splitting everything up in separate steps is relatively more
complexity for a little extra run time.
We should look into caching the dependency building so we don't rebuild
the same dependencies each build.
Daan De Meyer [Fri, 31 Jul 2020 21:48:27 +0000 (22:48 +0100)]
Fix photon default release
Daan De Meyer [Fri, 31 Jul 2020 20:13:32 +0000 (21:13 +0100)]
Rename CI steps
Daan De Meyer [Fri, 31 Jul 2020 20:08:49 +0000 (21:08 +0100)]
Install zypper along with all other apt packages
Simpler build config > minimal performance win
Daan De Meyer [Mon, 3 Aug 2020 16:42:29 +0000 (17:42 +0100)]
Merge pull request #489 from DaanDeMeyer/ci-bootable
Add bootable builds to CI
Daan De Meyer [Sun, 2 Aug 2020 18:38:29 +0000 (19:38 +0100)]
Add bootable CI builds
Daan De Meyer [Sat, 1 Aug 2020 20:14:44 +0000 (21:14 +0100)]
Enable BIOS on all distros
Daan De Meyer [Sun, 2 Aug 2020 18:44:17 +0000 (19:44 +0100)]
Gracefully handle BIOS + --minimize/gpt_squashfs combo
Using grub on generated_root() images currently has problems as there is
a circular dependency between the root partition wanting to have grub
installed before being generated and grub wanting the root partition to
be generated before being installed.
It might be possible to get this working but until we do it's better to
explicitly fail when users try to do this.
Daan De Meyer [Sun, 2 Aug 2020 18:32:58 +0000 (19:32 +0100)]
Gracefully handle hybrid BIOS/UEFI images on Clear Linux
Clear Linux's bootloader clr-boot-manager supports either BIOS or UEFI
but not both.
Daan De Meyer [Sun, 2 Aug 2020 18:29:43 +0000 (19:29 +0100)]
Fail gracefully when trying to install Clear Linux on btrfs
Clear Linux does not yet support btrfs.
Daan De Meyer [Sun, 2 Aug 2020 12:22:59 +0000 (13:22 +0100)]
Only mount necessary loop device and partitions when installing bootloaders
Daan De Meyer [Sat, 1 Aug 2020 22:32:15 +0000 (23:32 +0100)]
Don't try to install systemd-boot on Clear Linux
Clear Linux has its own modified version of systemd-boot already.
Daan De Meyer [Sun, 2 Aug 2020 12:22:44 +0000 (13:22 +0100)]
Install systemd on Clear Linux
Daan De Meyer [Sun, 2 Aug 2020 12:02:22 +0000 (13:02 +0100)]
Add workspace-command debug option