1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-10 05:18:17 +03:00
Commit Graph

214 Commits

Author SHA1 Message Date
Luca Boccassi
2e0af5f6fe mkosi: remove conflicting deb packages from builddir
These are not actually needed or installed, so delete them from the
build directory, so that inside an image one can do:

apt install --reinstall /work/build/*.deb

Follow-up for 690a85b1d4

(cherry picked from commit ce513c6c6c)
2024-07-05 11:38:42 +02:00
Daan De Meyer
6a898c35da mkosi: Copy packages to the build directory as well
With the latest mkosi, mkosi -t none can be used to rerun the build
script without messing with a previously built image. This allows
one to run "mkosi -t disk -f qemu" in one terminal to build and boot
an image in qemu and then run "mkosi -t none" in another terminal to
rebuild the packages. If one then has "RuntimeBuildSources=yes" set
in their mkosi configuration, the build directory is mounted into the
virtual machine, which means that one can then run "dnf upgrade
/work/build/*.rpm" from within the VM to install the new packages.

This allows for quickly iterating on changes without having to rebuild
the image all the time.

We'll probably want to document this at some point, but let's start
with making it possible by copying the built packages to the build directory.

(cherry picked from commit 690a85b1d4)
2024-07-05 11:38:42 +02:00
Daan De Meyer
16ea64e2be mkosi: Make sure we don't hide errors from git merge-base
Currently if git merge-base fails we'll hide the error and exit with
exit status 0. Let's make we only exit early if git merge-base exits
with 1 which indicates the current commit is not on the target branch.
Any other error is considered fatal.

(cherry picked from commit 2fe6ad5a64)
2024-07-05 11:38:42 +02:00
Daan De Meyer
3f42d88faa mkosi: Install perf
It's already installed on ubuntu via linux-tools-common.

(cherry picked from commit cca8c15599)
2024-07-05 11:38:42 +02:00
Daan De Meyer
f2c782c043 mkosi: Install pciutils
(cherry picked from commit 3cdc8da5ad)
2024-07-05 11:38:42 +02:00
Zbigniew Jędrzejewski-Szmek
054fc83a23 mkosi: move variable to the right scope
(cherry picked from commit 3690971cd0)
2024-07-05 11:38:42 +02:00
Daan De Meyer
8abb2e0f55 mkosi: Don't touch the packaging checkout if work is being done
If work is being done in a separate branch, don't touch the packaging
checkout.

(cherry picked from commit 88e9230643)
2024-07-05 11:38:42 +02:00
Luca Boccassi
7b18adadde mkosi: restrict noble-backports to noble builds
Follow-up for c01cb8cbff

(cherry picked from commit f97b243edf)
2024-06-18 20:41:01 +02:00
Luca Boccassi
9802a28b36 mkosi: install EFI packages only on EFI architectures
sbsigntool, systemd-boot and systemd-boot-efi do not  exist on other
architectures

(cherry picked from commit 47fe3f29b4)
2024-06-18 20:41:01 +02:00
Luca Boccassi
21feae324e mkosi: use ports.ubuntu.com for non-x86 backports
Follow-up for 46368556af

(cherry picked from commit c01cb8cbff)
2024-06-18 20:41:01 +02:00
Luca Boccassi
9f5f3c2f8b mkosi: enable unprivileged user ns for integration tests
Ubuntu disables them by default in Noble, ship a sysctl to turn them back on
so that tests can use them

(cherry picked from commit 4cfcde024f)
2024-06-18 20:41:01 +02:00
Luca Boccassi
3a46a00a26 mkosi: install dlopen optional dependencies for debian/ubuntu builds 2024-06-10 20:11:16 +01:00
Luca Boccassi
fb8e05cc43 mkosi.prepare: do not install build dependencies with NO_BUILD 2024-06-10 09:10:59 +02:00
Daan De Meyer
27cd8a61c1 mkosi: Replace sysusers.d with useradd for test user
sysusers.d is not intended for regular users, so let's use useradd
instead.
2024-06-08 12:33:32 +02:00
Daan De Meyer
d5474f78b8 ci: Switch to Ubuntu 24.04 2024-06-08 12:33:32 +02:00
Luca Boccassi
9f7f02bc71 mkosi: update debian packaging commit id 2024-06-07 10:02:53 +01:00
Luca Boccassi
46368556af mkosi: enable noble-backports for ubuntu
Required to get the new dh-dlopenlibdeps package
2024-06-07 10:02:53 +01:00
Daan De Meyer
d49c09474d mkosi: Stop skipping pkcs11 test on opensuse
A fix was made to the softhsm package so the test now passes.
2024-06-06 18:59:44 +02:00
Luca Boccassi
b99dc98780 mkosi: do a sparse checkout of debian/ubuntu packaging repo
The repository on Salsa includes the full upstream sources, which means
they are duplicated, taking extra space and showing duplicated grep results.
But we only need the debian/ subfolder, so do a sparse clone and checkout.
2024-06-06 12:16:03 +01:00
Luca Boccassi
0bec281d29
Merge pull request #33198 from keszybz/update-distro-hash
Add helper script to update distro packaging hashes
2024-06-06 10:22:15 +01:00
Zbigniew Jędrzejewski-Szmek
531e0f5481 mkosi: update fedora commit reference
* 1f94b56cee Partially backport PR #33016 to fix crashes in KDE 6.3.0
2024-06-06 10:02:23 +02:00
Zbigniew Jędrzejewski-Szmek
7d3cc45a53 mkosi: update debian commit reference
* 5b9607385d debian/tests/storage: without scsi_debug, skip test
* 8a195a6327 debian/extra: use a dropin to configure Nice=-1 on systemd-journald.service
* 5436d49288 debian/extra: use a drop-in resolved.conf to configure Cache=no-negative
* 596a99d2d3 debian/extra: set ManagedOOMSwap=auto on -.slice
* 07ba81b14d LimitCORE: restore default hard limit to infinity
* df3a9a91e8 Restart managers on libc-upgrade dpkg trigger
2024-06-06 10:02:23 +02:00
Zbigniew Jędrzejewski-Szmek
2f3ae702a1 mkosi: set -o nounset for scripts
Those scripts are written with the expectation that all input variables are set
and will not behave correctly if something is ommitted. In particular, the
non-chrooted scripts (mkosi.clean, mkosi.sync) might wreak havoc if called
without the full environment.
2024-06-06 10:02:23 +02:00
Daan De Meyer
60a20eff80 Revert "mkosi: Don't install wireguard-tools on Debian"
wireguard-tools was added back to debian testing.

This reverts commit 8c335463d9.
2024-06-05 19:36:05 +02:00
Daan De Meyer
0c639a9010 mkosi: Stop sourcing /etc/makepkg.conf
We don't need this anymore since we now just do delayed evaluation
of $CFLAGS in /etc/makepkg.conf and it imports $CFLAGS into the
script environment which messes everything up.
2024-06-04 16:03:45 +02:00
Daan De Meyer
f57cd0afbf mkosi: Build with -O0 by default
This was accidentally removed in https://github.com/systemd/systemd/pull/33193
2024-06-04 15:53:06 +02:00
Luca Boccassi
0af5114534
Merge pull request #33193 from DaanDeMeyer/fortify
mkosi: Disable FORTIFY_SOURCE when building without optimizations or with sanitizers
2024-06-04 13:38:00 +01:00
Daan De Meyer
cbbffa8355 mkosi: Drop $OPTIMIZATION variable
Let's instead just use $CFLAGS to override the optimization level.
2024-06-04 12:20:19 +02:00
Daan De Meyer
98a0e73b45 mkosi: Use __meson_verbose in opensuse build script
OpenSUSE Tumbleweed now ships meson 1.4.0 which ships the new
__meson_verbose macro.
2024-06-04 11:04:46 +02:00
Daan De Meyer
a16c186667 mkosi: Use meson_extra_configure_options for opensuse
This is now available so let's use it.
2024-06-04 11:00:53 +02:00
Daan De Meyer
21b338de4c mkosi: Update opensuse commit to latest 2024-06-04 11:00:38 +02:00
Daan De Meyer
c45ce65f2f mkosi: Allow using $MESON_VERBOSE to enable verbose meson output 2024-06-03 14:06:19 +02:00
Daan De Meyer
05895728e6 mkosi: Allow clearing meson cache with WIPE=1
meson does not support changing compilation flags on the fly, when
doing so, the entire build directory has to be cleared explicitly, so
let's add a way to do that by setting WIPE=1.

Let's also allow developers to specify their own meson options via
$MESON_OPTIONS.
2024-06-03 13:47:33 +02:00
Daan De Meyer
51ce4c7864 mkosi: Allow setting custom CFLAGS and LDFLAGS 2024-06-03 12:58:16 +02:00
Daan De Meyer
0ccbd22f04 mkosi: Fix comment 2024-06-03 12:58:16 +02:00
Daan De Meyer
02bfe0fa1b mkosi: Add support for building with LLVM
Now you can do mkosi -E LLVM=1 to build with clang+lld. This includes
support for building with sanitizers.
2024-06-03 12:53:03 +02:00
Daan De Meyer
4548e53ee5 mkosi: Make sure initrd coredumps are also stored in the journal
Let's also translate the coredump config into a dropin so we don't
accidentally override any existing configuration.
2024-06-03 12:52:48 +02:00
Daan De Meyer
90ce4096c6 mkosi: Update debian packaging to latest 2024-06-03 12:52:48 +02:00
Daan De Meyer
9d25dc0d86 mkosi: Disable iscsiuio.socket as well 2024-06-03 12:52:48 +02:00
Daan De Meyer
6a88774c96 mkosi: Use env where appropriate 2024-06-03 12:52:48 +02:00
Daan De Meyer
c397b5c701 mkosi: drop Debian /tmp hack
/tmp is now a tmpfs in debian testing so let's drop our workaround.
2024-06-03 12:43:20 +02:00
Daan De Meyer
e9ef4d6c7f mkosi: Add missing [Content] section 2024-06-03 12:29:23 +02:00
Daan De Meyer
51018ed1c2 mkosi: Make system dependencies conditional on format
If the none format is specified, we don't use the extra trees at all
so let's make the dependencies on the subimages conditional on Format=
not being set to "none".

This speeds up builds when using Format=none.
2024-06-03 11:51:08 +02:00
Daan De Meyer
f9dd837104 mkosi: Filter out sdubby and grubby from fedora rpm dependencies
When we query dependencies with rpmspec, we get the following:

"""
bash-5.2# mkosi-chroot rpmspec --with upstream --query --requires --define "_topdir /var/tmp" --define "_sourcedir pkg/fedora" "pkg/fedora/systemd.spec" | sort --unique
(grubby > 8.40-72 if grubby)
(sdubby > 1.0-3 if sdubby)
(systemd-rpm-macros = 256~rc3-1.fc41 if rpm-build)
(util-linux-core or util-linux)
/bin/sh
coreutils
dbus >= 1.9.18
firewalld-filesystem
grep
kbd
kmod >= 18-4
libidn2.so.0()(64bit)
libidn2.so.0(IDN2_0.0.0)(64bit)
libkmod.so.2()(64bit)
libkmod.so.2(LIBKMOD_5)(64bit)
openssl-libs
python3dist(cryptography)
python3dist(pefile)
python3dist(psutil)
python3dist(zstd)
systemd = 256~rc3-1.fc41
systemd(x86-64) = 256~rc3-1.fc41
systemd-boot
systemd-libs(x86-64) = 256~rc3-1.fc41
systemd-networkd = 256~rc3-1.fc41
systemd-pam(x86-64) = 256~rc3-1.fc41
systemd-udev = 256~rc3-1.fc41
"""

Trying to install with dnf5 correctly filters out grubby and sdubby
as they are conditional dependencies and shouldn't be installed. However,
dnf doesn't do the right thing and tries to install both grubby and sdubby,
and since they conflict this causes the build to fail.

Let's filter out sdubby and grubby explicitly to work around the bug in dnf
as it's unlikely to get fixed since all development effort is now focused on
dnf5.
2024-05-31 23:46:58 +02:00
Daan De Meyer
f4a0dd0ef6
Merge pull request #33105 from DaanDeMeyer/sanitizers
Sanitizers
2024-05-31 19:44:05 +02:00
Daan De Meyer
8919f86f57 mkosi: Sanitizer improvements
- Let's set the environment on the kernel command line so it applies
to initrd and main system.
- Let's add the necessary wrappers that are also added in test-functions.
Unlike test-functions we don't use gcc/clang to get the library path as
that requires installing gcc/clang in the initrd.
- Let's drop the hack to get journald writing to the console and have
it write to kmsg instead. We'll get the output either way.
- Stop removing libstdc++ and sanitizer libraries from Arch Linux
initrds and other images as it's required by the sanitizer libraries.
- Add a workaround for specifying extra meson options for opensuse
- Add a leak sanitizer suppression file as a workaround for a false
positive leak in verify_selinuxmnt() in libselinux. We do a soname match
because the stacktrace can't be properly symbolized on Debian.
2024-05-31 17:26:13 +02:00
Zbigniew Jędrzejewski-Szmek
00d359e988 Revert "mkosi: Disable add-determinism on Fedora"
This reverts commit e74a994ebf.

The description in that commit was confused, add-determinism was not broken
and was not causing any problems, except a log message.
2024-05-31 13:34:58 +02:00
Daan De Meyer
1baea86287 mkosi: Override rpm's _fixperms script to be a noop
Since rpm 4.20 it tries to fix the permissions of all source files
in the sources. This takes forever and fails in our case with a
permission error. Since we don't want rpm touching our source files,
override the script to be a noop.
2024-05-30 22:19:00 +02:00
Daan De Meyer
e74a994ebf mkosi: Disable add-determinism on Fedora
This was added for reproducible builds which we don't really care
about when building rpms in mkosi, so disable it from running as it's
broken and breaks our rpm builds.
2024-05-30 22:17:29 +02:00
Daan De Meyer
3b046883ad mkosi: Skip debuginfo workaround on newer rpm
The corresponding bug was fixed in rpm 4.20 (of which the alpha is in
rawhide as rpm 4.19.91) so skip the workaround when we detect a newer
rpm version.
2024-05-30 22:16:13 +02:00