Commit graph

1,542 commits

Author SHA1 Message Date
Luca Boccassi
1bdb4efe40 obs: switch to xz for compression
[skip changelog]
2025-08-08 01:59:25 +01:00
Zbigniew Jędrzejewski-Szmek
be7a4d0863 Version 258~rc2 2025-08-06 08:56:51 +02:00
Luca Boccassi
2ace9416e8 obs: also use version with tilde for Source0
[skip changelog]
2025-07-25 18:05:35 +02:00
Zbigniew Jędrzejewski-Szmek
8d1645af75 Use again %{version} when building in OBS
%{version_no_tilde} no work.

[skip changelog]
2025-07-25 14:08:23 +02:00
Zbigniew Jędrzejewski-Szmek
98cc5fd91a Version 258~rc1
- See https://raw.githubusercontent.com/systemd/systemd/v258-rc1/NEWS.
  Too many changes to list or discuss here.
2025-07-23 23:13:29 +02:00
Zbigniew Jędrzejewski-Szmek
ed7d2f1132 Add "test" that LTO effectively removes unused code from shared lib 2025-07-08 12:50:10 +02:00
Zbigniew Jędrzejewski-Szmek
40b38a04d2 Build docs on 64-bit architectures only
In the light of the recent discussion about dropping i686 packages, let's stop
building our docs there. This reduces the amount of tools needed in the mock
root.

Unfortunately we need to move the man page out of the noarch ukify subpackage,
because it needs to be the same on all architectures where it is built.
2025-07-05 17:29:21 +02:00
Zbigniew Jędrzejewski-Szmek
5d30fd3b26 Version 257.7
- Fixes for systemd itself, systemd-repart, systemd-resolved,
  systemd-vmspawn, systemd-networkd, resolvectl, bootctl, the shared
  library code, man pages, shell completions, and tests.
- Hardware database is updated.
2025-06-26 14:17:05 +02:00
Zbigniew Jędrzejewski-Szmek
7de88c66bd Do not mark symlinks as %ghost
When testing build reproducibility, we got the following result:

+ rpmdiff cache/rpms/systemd-257.6-1.fc43/systemd-257.6-1.fc43.x86_64.rpm \
          cache/build/systemd-257.6-1.fc43/rebuild/systemd-257.6-1.fc43.x86_64.rpm
......V..F. /etc/xdg/systemd/user

This is because we'd apply %ghost to a symlink to a directory, if the directory
stat reported 0 blocks. It seems that this depends on the filesystem type or
something and didn't pop up in previous rebuilds.

The first chunk is a noop to increase clarity.

The resulting difference from this patch in the file list:
$ diff -u systemd-257.6-build/systemd-257.6/.file-list-main{.0,}
-%config(noreplace) %ghost /etc/xdg/systemd/user
+%config(noreplace) /etc/xdg/systemd/user
2025-06-05 08:35:15 +02:00
Matteo Croce
92c16c1dab Let systemd-{sysusers,shared} conflict with older systemd
When downgrading to package versions before 257.3-6 we have this error:

Error: Transaction test error:
  file /usr/bin/systemd-sysusers from install of systemd-257-9.el10.x86_64 conflicts
  with file from package systemd-sysusers-258~devel-20250416115850.el10.x86_64

Add Conflicts on systemd-sysusers subpackage to allow downgrades
across version 257.3-6.
2025-06-04 17:14:41 +02:00
Zbigniew Jędrzejewski-Szmek
ed6b885327 Version 257.6
- Fix for local information disclosure in systemd-coredump (CVE-2025-4598)
- Fixes for systemd itself, run0, systemd-networkd, "secure" pager,
  man pages, shell completions, sd-boot, sd-varlink
- Hardware database update
2025-05-29 19:03:59 +02:00
David Tardon
5a53eac13c Package pcrlock files together with systemd-pcrlock
... (rhbz#2366948)
2025-05-20 14:58:07 +02:00
Zbigniew Jędrzejewski-Szmek
2192e86112 Move mount.ddi symlinks to -container subpackage
Those symlinks point to systemd-dissect, so with just the main subpackage installed,
the symlink was dangling.
2025-05-08 14:14:40 +02:00
LuK1337
451184cbea
Revert "Disable freezing of user sessions"
This breaks suspend on my machine as of Linux 6.14, furthermore both
linked issues in rhbz#2321268 are closed and fixed in Linux upstream.

This reverts commit 6162965002.
2025-05-02 10:18:04 +02:00
LuK1337
f6af46db12
Backport adb/fastboot udev rules (BZ#2356537) 2025-04-18 00:39:10 +02:00
Zbigniew Jędrzejewski-Szmek
f6b814cc0f Backport CI fix 2025-04-10 15:52:59 +02:00
Zbigniew Jędrzejewski-Szmek
d304477023 Version 257.5
- A lot of small fixes in various components
2025-04-09 22:35:03 +02:00
Daan De Meyer
6646d13aca fmf: Run tests from systemd-tests rpm if possible
Running from the source tarball implies running with unpatched tests,
whereas the same files from the systemd-tests package (which now contains
the mkosi and integration test files) will be patched.

[skip changelog]
2025-04-09 09:43:41 +02:00
Daan De Meyer
08ce156d74 fmf: Run mkosi genkey before mkosi summary
Otherwise mkosi summary might fail because the key/cert don't exist
yet.

[skip changelog]
2025-04-03 16:32:38 +02:00
Daan De Meyer
1126a7c6b8 Download commit archives via full sha instead of short one
Both work and if we do full sha we can retrieve the full sha from the
source filename in the source rpm later on which is useful for various
use cases.

[skip changelog]
2025-04-03 15:23:17 +02:00
Daan De Meyer
cc473d807f fmf: Check out mkosi to some directory in /var/tmp
Using the source tree of the spec can still lead to conflicts if a
mkosi/ directory exists there (which is the case in the hyperscale
systemd spec repo), so let's check out mkosi in /var/tmp to ensure
we don't conflict.
2025-04-03 13:05:38 +02:00
Daan De Meyer
b17e5d64a1 Don't try to modify mkosi.repart config if mkosi conf is in subdir
[skip changelog]
2025-04-03 09:58:17 +02:00
Daan De Meyer
e2b2ea3776 fmf: Use mkosi/mkosi.local.conf if the mkosi/ directory exists
https://github.com/systemd/systemd/pull/36954 will move all the mkosi
configuration in the systemd repository into a mkosi/ subdirectory. This
means we have to put mkosi.local.conf in that subdirectory as well, so check
if the mkosi/ directory exists and put mkosi.local.conf in there if it exists.

The mkosi/ directory will conflict with our checkout of mkosi so we move that
checkout one level up. Additionally, we can't use .. anymore as the package
directory as that only works when mkosi.local.conf is in the top level directory
of the repository so we use an absolute path instead.
2025-04-03 09:39:29 +02:00
Daan De Meyer
617952132d Run integration testsuite standalone if available
[skip changelog]
2025-03-27 21:48:29 +01:00
Daan De Meyer
13d523f84d Relax dependencies from noarch packages on archful packages for OBS builds
In OBS, noarch packages are shared between all architectures and
independent architectures can be rebuilt automatically without all
the other architectures getting rebuilt. This can result in the noarch
packages being newer than the archful packages for some architectures,
which means our current strict deps from the noarch packages on the
archful packages can't be satisfied.

To address this problem, let's relax the dependencies from the noarch
packages on the archful packages for OBS builds. Let's only do this for
OBS builds because this isn't an issue on Fedora as it's impossible to
build a package for only some of the architectures.
2025-03-25 12:35:43 +00:00
Daan De Meyer
59378485be Remove purge-nobody-user script
The corresponding change proposal is from 2018. Enough time has passed
since then that we don't need to carry this around anymore
2025-03-23 11:00:27 +01:00
Zbigniew Jędrzejewski-Szmek
d1380dc114 Add more services to %post for udev and networkd
Noticed in https://bugzilla.redhat.com/show_bug.cgi?id=2348669#c25.

Most of those units listed don't have an [Install] section, and of those that
have, almost all were disabled by default. This might be something to fix, e.g.
we might want to enable systemd-udev-load-credentials.service, this is
something to consider. But it's clearer if we list all the units that those
packages ship. In priciple somebody might ship a preset to enable them.
Anyway, the impact of this change is much smaller than might seem at first.
But systemd-network-generator.service has an [Install] section and is preset
to true, so not listing it in the scriptlets was a visible bug.

There's the additional caveat that systemd-network-generator.service is coowned
by two packages. The current system does not have a way of handling this
properly, because unit enablement is tied to the package install state. Let's
just call the scriptlet for this unit twice for now. I think that's not going
to cause any real problem.
2025-03-23 10:59:08 +01:00
Zbigniew Jędrzejewski-Szmek
6f0d03443d Fix paths for /usr/sbin/nologin and related progs
I noticed that systemd-sysusers creates accounts with /usr/bin/nologin.
On merged systems is fine, but would not work for systems where
/usr/sbin is still a separate directory and /usr/bin/nologin does not
exist. This problem occurs because the meson configuration script discovers
the location using $PATH, which on recent builds results in /usr/bin always.
Just specify all the paths so that we don't depend on the presence and
order of paths in $PATH.
2025-03-23 10:59:08 +01:00
Daan De Meyer
df9a74d530 Make the source tarball glob in the test script more generic
If we download the main branch from github by defining %branch, the
source tarball will be named main.tar.gz, so let's make the tarball
pattern more generic to match.
2025-03-21 21:40:07 +01:00
Daan De Meyer
2ecfbec1a4 Support specifying extra mkosi repositories to the test script 2025-03-21 15:59:32 +01:00
Daan De Meyer
f5b47b1302 Use old setup sysusers files on Fedora < 43 2025-03-21 14:38:40 +01:00
Daan De Meyer
2da5793357 Merge #196 Migrate fmf metadata and test script from the upstream repository 2025-03-21 13:32:58 +00:00
Daan De Meyer
3e9051124e Migrate fmf metadata and test script from the upstream repository
Primarily, this allows us to get rid of dist-git-source which makes
the fmf stuff reusable for CentOS Stream in gitlab which we'd like to
make use of in the systemd backport in the Hyperscale SIG.

Also in general making the integration touch points with Fedora CI
and the other systems as small as possible seems like a good thing.
2025-03-21 13:29:53 +01:00
Yaakov Selkowitz
e346d9f33e Limit sdubby dependency to Fedora
dnf repoclosure raises an error even when a boolean dependency is
missing.  While technically a bug in dnf, since these dependencies
are already conditional, simply adjusting the condition is simplest.

https://github.com/rpm-software-management/dnf-plugins-core/issues/549
2025-03-20 19:15:52 -04:00
Daan De Meyer
d366b59657 Fix test_sysusers_defined check
https://src.fedoraproject.org/rpms/setup/c/7ced36d60b67c9e74f7951123225200597e3d2fa?branch=rawhide
merged the two setup sysusers files into one and changed the name, so
let's adapt the test_sysusers_defined check for those changes.
2025-03-20 10:57:58 +01:00
Daan De Meyer
38b41a729e Clean up debuginfo files as well in %clean
When using --build-in-place + debuginfo these get written to the
source directory so let's make sure we clean them up as well.
2025-03-07 12:37:44 +01:00
Daan De Meyer
7bc5883654 Fix missing question mark 2025-03-07 12:37:17 +01:00
Zbigniew Jędrzejewski-Szmek
d22561d59e Also drop auxiliary files related to sysusers compat
And in non-Fedora builds, undo the neutering of sysusers macros.
Downstreams like CentosStream did not go through the same changes
as Fedora but they may use packages built from the rawhide branch.
2025-03-07 11:25:27 +01:00
Zbigniew Jędrzejewski-Szmek
e825459f2d Change python-zstd depenedency to python-zstandard
There is no BuildRequires dependency. I think we don't have any tests
which would require this.
2025-03-07 11:17:57 +01:00
Zbigniew Jędrzejewski-Szmek
0a3907745e Version 257.4
- Fixes for systemd itself, systemd-dissect, systemd-sbsign,
  systemd-networkd, systemd-repart, systemd-tmpfiles, systemd-id128,
  systemd-resolved, ukify, internal shared library, fido2 code,
  virtualization detection, shell completions, documentation.
- Adds new DNSSEC anchor key for systemd-resolved.
2025-03-07 09:33:55 +01:00
Zbigniew Jędrzejewski-Szmek
1bdfa29ce2 Neuter sysusers macros
https://pagure.io/packaging-committee/pull-request/1436 was merged,
packaging guidelines describe the new method as the default option for f42+.
2025-03-06 09:30:31 +01:00
Zbigniew Jędrzejewski-Szmek
4ab2a9e539 Drop old self-Obsoletes and provides
We had a bunch of Obsolets on self. This is useful when a subpackage
is split out to make it optional, and we want to install both the
original subpackage and the subpackage on ugprades. If both new
subpackages have Obsoletes on the old name, dnf will install both. But
we don't need to keep this infinitely, it's mostly useful for the
duration of a single stable release.

Apparatenly, those Obsoletes cause problems with downgrades.

The most recently added case is for the split of systemd-sysusers. But
we have an alternative mechanism in place: systemd Requires
/usr/bin/systemd-sysusers, and this path is provided by systemd-sysusers
and systemd-standalone-sysusers, with a bias towards systemd-sysusers.
So we should be able to drop the self-Obsoletes without a change in
functionality.

Also, drop some old Provides where 'dnf repoquery' indicates it is not
used by anything. Actually, only 'timedatex'. All the other ones are
used by one spec or another.
2025-03-05 18:28:57 +01:00
Daan De Meyer
ec182495e7 Drop libbpf versioned dependency version to 1.4.7
We don't need 1.5.0 to avoid the libbpf crash, the latest libbpf 1.4
patch release (1.4.7) also has the necessary fixes, so relax the
requirement a little to allow builds on Fedora 41 to succeed.
2025-03-05 12:31:55 +01:00
Zbigniew Jędrzejewski-Szmek
1f8d2b0ebd Make self-obsoletes for the sysusers split conditional
In CI builds we have %version that it smaller than 257.3-4 when the split
happened, and this causes problems when the packages are installed:

Failed to resolve the transaction:
Problem: package
         systemd-sysusers-257-1.20250225060108317145.pr36507.1659.g4635c37946.fc43.x86_64
           from @commandline
         obsoletes
         systemd < 257.3-4 provided by
         systemd-257-1.20250225060108317145.pr36507.1659.g4635c37946.fc43.x86_64
           from @commandline
  - conflicting requests

I'm not sure if we even need the self-Obsoletes. We have a Requires and
Recommends in the main systemd package that will cause on of the providers of
/usr/bin/systemd-sysusers to be installed, and the non-standalone version is
preferred. But it's possible that if recommends are disabled, the
non-standalone package could be installed for some reason. So let's keep the
self-Obsoletes for now.

Another caveat is that it's not clear if v-string comparisons require %[] as a
wrapper. Some chat in #fedora-devel suggested that that's the case, but things
seem to work without it.
2025-03-04 17:37:56 +01:00
Daan De Meyer
0d95af264f Include epoch in versioned libbpf dependency
"""
$ rpmdev-vercmp '2:1.4.6-1.fc42' '1.5.0'
2:1.4.6-1.fc42 > 1.5.0
$ rpmdev-vercmp '2:1.4.6-1.fc42' '2:1.5.0'
2:1.4.6-1.fc42 < 2:1.5.0
"""
2025-03-04 13:02:20 +01:00
Daan De Meyer
8230f501b6 Make sure we pull in libbpf >= 1.5.0 if libbpf is installed
libbpf 1.4.0 + systemd 257 + a newer kernel results in segmentation
faults in libbpf 1.4.0, so let's explicitly pull in libbpf 1.5.0 or
newer to avoid this issue.

Fixes https://pagure.io/centos-sig-hyperscale/package-bugs/issue/22
2025-03-03 21:46:20 +01:00
Daan De Meyer
9b6884d2e1 Stop using version_no_tilde for github archives
None of the systemd git tags have tildes in them, so there's no need
to use version_no_tilde for these.

This is another change to make packit work as the archive it sets up
for us based on the systemd upstream packit config file does have a
tilde in its name which then makes %prep fail as we transform the tilde
to a hyphen and then fail to find the systemd source directory.

"""
+ /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/systemd-258~devel.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd systemd-258-devel
/var/tmp/rpm-tmp.gw7KSw: line 42: cd: systemd-258-devel: No such file or directory
"""
2025-02-25 17:25:34 +01:00
Daan De Meyer
5671cf6132 List the fallback Source0 first
packit will only rewrite the first Source0 that it finds, so we
list the Source0 that gets used if neither %branch nor %commit are
defined first.
2025-02-25 13:55:19 +01:00
Daan De Meyer
6c7c4a510d Do not use dynamic spec generation for non-upstream builds
This reverts commit ac9c438e27.
2025-02-19 10:46:38 +01:00
Zbigniew Jędrzejewski-Szmek
6201755b36 Allow co-installation of systemd-sysusers-standalone and systemd
Previously, /usr/bin/systemd-sysusers was provided by both systemd and
systemd-standalone-sysusers, creating a file conflict, and the packages
declared Conflicts. This changed when systemd-sysusers was split out to a
separate subpackage. So we don't need the Conflicts and can allow a "cross
installation" of systemd-sysusers-standalone and and the other "normal"
systemd subpackages.

This should solve https://bugzilla.redhat.com/show_bug.cgi?id=2344322 without
requiring changes in the container definitions. (Though those changes probably
should be made anyway. If we end up installing systemd, we probably want to use
shared systemd-sysusers, to avoid wasting space.)
2025-02-16 14:30:07 +01:00