Commit graph

264 commits

Author SHA1 Message Date
Frantisek Sumsal
4e71714bca README: bump the gcc baseline to 8.4
We already use __VA_OPT__ in multiple places, which was introduced in
gcc 8 [0], so let's bump the baseline to reflect that. I chose gcc 8.4,
as that was the lowest 8.x version I could easily get my hands on when I
verified this (on Ubuntu Focal with the gcc-8 package).

Closes: #31191

[0] https://gcc.gnu.org/gcc-8/changes.html
2024-02-05 10:45:10 +00:00
Daan De Meyer
98118c44ae Remove a few references to dracut
Let's remove some explicit references to dracut as we prefer initrds
built with mkosi these days.
2024-01-24 17:54:38 +01:00
Daan De Meyer
2d05492040 Document kernel configs required for reading credentials from SMBIOS 2023-12-04 11:13:59 +01:00
Lennart Poettering
02e9308751 docs: excorcise NIS from nsswitch.conf
Let's replace the "compat" module in our proposed nsswitch.conf
configuration with "files", since it is not 1995 anymore.

Fedora and other distros have deprecated and removed NIS support a while
back. While others still retain some support I am not sure we should
advertise it in our examples. Downstream can of course still use
"compat" instead of "files" if they want to, but let's not confuse
people who don't care about NIS anymore with this.

Also, bring the nsswitch.conf snippet in README in line with what our
man pages say.

Also see: https://fedoraproject.org/wiki/Changes/retire_NIS_user_space_utils
2023-09-20 15:17:52 +02:00
Luca Boccassi
b0d3095fd6 Drop split-usr and unmerged-usr support
As previously announced, execute order 66:

https://lists.freedesktop.org/archives/systemd-devel/2022-September/048352.html

The meson options split-usr, rootlibdir and rootprefix become no-ops
that print a warning if they are set to anything other than the
default values. We can remove them in a future release.
2023-07-28 19:34:03 +01:00
Luca Boccassi
9ce707d64e README: mention that meson 0.60 is now required 2023-07-07 11:44:54 +01:00
Lennart Poettering
dbf7509775 README: strenghten wording regarding static libs
static versions of libsystems.so are not really supportable, and
encourages mix&match which we cannot really support. Make the wording
about this stronger in the README, since people apparently don'd read to
the last paragraph.
2023-06-30 18:22:42 +02:00
Yu Watanabe
7aeafa93df README: drop busybox requirement
Follow-up for 5656759d06.
2023-05-18 10:51:49 +02:00
Zbigniew Jędrzejewski-Szmek
522c108de1 README: describe how our libraries are linked
In https://github.com/systemd/systemd/pull/27637#issuecomment-1547517316
we discussed disclaiming warranty when distros do version mixing.
But to make this disclaimer meaningful, we need to document what options are
available.
2023-05-16 08:50:11 +02:00
Zbigniew Jędrzejewski-Szmek
7c0d79131b README: require python >= 3.7, clean up module descriptions
libpython was added in 2cc86f094a, it seems
because of python-systemd module that we built. But libpython by itself
is not enough for actual python programs, and now we also list python itself,
so let's drop libpython from the list.

meson requires >= 3.7. We have CI that runs on CentOS8 with Python 3.6, but
let's not provide official support for an EOL Python version. Individual
distributions can provide backports, but we don't need to mention that in
the user-facing docs. According to [1], 3.7 is on life support and 3.6 is EOL.

[1] https://devguide.python.org/versions/
2023-05-09 08:11:10 +02:00
Mike Yuan
7d33146dbc
docs: update unit name for sd-tmpfiles-setup 2023-03-19 01:32:50 +08:00
Jan Janssen
2afeaf1675 boot: Bring back bootloader builds
This adds back sd-boot builds by using meson compile targets directly.
We can do this now, because userspace binaries use the special
dependency that allows us to easily separate flags, so that we don't
pass anything to EFI builds that shouldn't be passed.

Additionally, we pass a bunch of flags to hopefully disable/override any
distro provided flags that should not be used for EFI binaries.

Fixes: #12275
2023-03-10 11:41:08 +01:00
Jan Janssen
dfca5587cf tree-wide: Drop gnu-efi
This drops all mentions of gnu-efi and its manual build machinery. A
future commit will bring bootloader builds back. A new bootloader meson
option is now used to control whether to build sd-boot and its userspace
tooling.
2023-03-10 11:41:03 +01:00
Zbigniew Jędrzejewski-Szmek
50b35193ec meson: merge our two valgrind configuration conditions into one
Most of the support for valgrind was under HAVE_VALGRIND_VALGRIND_H, i.e. we
would enable if the valgrind headers were found. The operations then we be
conditionalized on RUNNING_UNDER_VALGRIND.

But in a few places we had code which was conditionalized on VALGRIND, i.e. the
config option. I noticed because I compiled with -Dvalgrind=true on a machine
that didn't have valgrind.h, and the build failed because
RUNNING_UNDER_VALGRIND was not defined. My first idea was to add a check that
the header is present if the option is set, but it seems better to just remove
the option. The code to support valgrind is trivial, and if we're
!RUNNING_UNDER_VALGRIND, it has negligible cost. And the case of running under
valgrind is always some special testing/debugging mode, so we should just do
those extra steps to make valgrind output cleaner. Removing the option makes
things simpler and we don't have to think if something should be covered by the
one or the other configuration bit.

I had a vague recollection that in some places we used -Dvalgrind=true not
for valgrind support, but to enable additional cleanup under other sanitizers.
But that code would fail to build without the valgrind headers anyway, so
I'm not sure if that was still used. If there are uses like that, we can
extend the condition for cleanup_pools().
2023-02-22 11:39:44 +01:00
Luca Boccassi
164070e497 README: explicitly note that util-linux's mount/swap are required
These are the most visible and hard requirements, as we use options that
busybox does not provide, so list them explicitly to avoid surprises
2023-02-10 13:24:51 +00:00
Zbigniew Jędrzejewski-Szmek
1f6da5d902 ci: install pefile 2022-12-07 15:53:47 +01:00
Luca Boccassi
a460debc8e README: note Kconfig for verifying DDIs via MoK keys
Also note them in the mkosi.build kernel config list
2022-11-14 11:09:36 +00:00
Luca Boccassi
4445b3574f README: use https on one more link 2022-11-12 01:04:19 +00:00
Daan De Meyer
afd22e3219 README: Fix libbpf minimum version
This didn't get properly updated as part of #24511
2022-10-17 08:45:16 +02:00
Daan De Meyer
e2490f7384 Bump libbpf version to 0.7
We already depend on the skeleton APIs introduced in libbpf 0.7 so
let's bump our minimum version to reflect that.

We don't enforce bpf compilation on mkosi anymore since not all
distros have sufficiently up-to-date libbpf available.
2022-10-06 07:31:20 +09:00
Lennart Poettering
2c3794f422 README: we don't use crypto API in kernel anymore
This effectively reverts 9c7f7d86f8.

We dropped kernel crypto API use with
1fc8d0c9dd, hence catch up in README.
2022-09-07 11:04:34 +01:00
Lennart Poettering
c87abcfa5c README: make section title less confusing
This is about glibc NSS, not about the TLS implementation library NSS.
2022-09-07 11:30:23 +02:00
Lennart Poettering
659215cf14 README: drop some spurious empty lines, we otherwise don't place after section titles 2022-09-07 11:29:14 +02:00
Lennart Poettering
036b9e7fed README: use right emoji UTF-8 sequences for stop/warning sign 2022-09-07 10:49:49 +02:00
Lennart Poettering
4213dd2398 README: clarify baseline situation a bit (add emojis!) 2022-09-06 18:02:58 +01:00
matoro
bab5d84790 README: gcc now has a minimum requirement of 4.7 2022-07-14 17:39:35 -04:00
Zbigniew Jędrzejewski-Szmek
8bf9eb7e6b man: update the description of taint flags
We had a description in README, and an outdated list in the man page.
I think we should keep a reference-style list in the man page. The description
in README is more free-form.
2022-07-09 19:18:14 +02:00
Benjamin Franzke
a25d9395ad tree-wide: streamline wiki links
* Avoid traling slash as most links are defined without.
* Always use https:// protocol and www. subdomain

Allows for easier tree-wide linkvalidation
for our migration to systemd.io.
2022-05-21 14:28:03 +02:00
Zbigniew Jędrzejewski-Szmek
b16e93d73e README: fix typo 2022-05-18 08:29:17 +02:00
Zbigniew Jędrzejewski-Szmek
5810c2042a README: say that recent releases are supported
Prompted by the discussion in
https://github.com/systemd/systemd/pull/23391.
2022-05-16 22:05:40 +02:00
Zbigniew Jędrzejewski-Szmek
ead7e86d20 README: recommend --no-rebuild for sudo meson install
sudo and rebuilding don't mix well.
C.f. fe2b7631ad.
2022-05-16 19:50:26 +02:00
Zbigniew Jędrzejewski-Szmek
12801295d1 README: add missing colons and wrap to ~80 columns
Some paragraphs were narrow for no good reason. Let's make things
a bit more uniform.
2022-05-16 19:50:26 +02:00
Yu Watanabe
ad11dd94fd README: mention kernel requirement for ambient capabilities
Closes #23231.
2022-05-06 09:33:49 +01:00
Zbigniew Jędrzejewski-Szmek
3983fc0227 README: recommend zstd over xz
git archive automatically uses gzip when --output=*.tar.gz is used, but
not for other extensions. Thus we need to invoke the compressor separately :(

It's a good pattern to use a variable for the repeating number, so let's
recommend that.
2022-04-12 15:28:33 +02:00
Zbigniew Jędrzejewski-Szmek
e8a688178c docs: stop recommending meson compile
With meson-0.60, meson compile stopped working with some targets:

$ meson compile -C build update-man-rules
ERROR: Can't invoke target `update-man-rules`: ambiguous name. Add target type and/or path: `PATH/NAME:TYPE`

This is obviously a regression in meson, but based on a chat with the
maintainers, it seems that there's some disagreement as to whether 'meson
compile' is useful and how exactly it should work. Since we're already at
meson 0.60.3 and this hasn't been fixed, and people generally don't seem to
consider this an issue, let's return to documenting the usual practice of
'ninja -C build' that just works everywhere.

(Since nobody has raised any fuss in systemd, it means that people are
generally using the shorter form during development too. I only noticed
because I pasted a command from the release docs when preparing -rc1.)
2022-04-12 12:35:44 +02:00
Lennart Poettering
492f9e74ff
Merge pull request #23009 from keszybz/fix-detection-of-libsystemd-shared-with-suffix
Fix detection of libsystemd-shared with suffix
2022-04-08 15:43:09 +02:00
Zbigniew Jędrzejewski-Szmek
be6447b483 README: add one more kernel-version line
I want to add as many as possible to show people that each kernel version
has something nice to entice them to keep moving up ;)
2022-04-07 12:42:23 +02:00
Luca Boccassi
31cd2dd906 core: taint if /usr is unmerged
9afd5e7b97 introduced a build-time
taint, introduce a runtime one as well, in preparation for
removing support for unmerged-usr in a future release
2022-04-06 21:54:14 +01:00
Zbigniew Jędrzejewski-Szmek
88a3af9421 README: describe taint flags and how to check them
We should have this somewhere. We talk about versions of things
in the README, so it seems as good a place as any.
2022-04-05 20:31:30 +02:00
Zbigniew Jędrzejewski-Szmek
277f05872f README: say kernel 4.15 is the minimum recommended
After various long discussions
(https://lists.freedesktop.org/archives/systemd-devel/2022-March/047587.html,
https://lwn.net/Articles/889610/), there is no clear answer what the minimum
version should be. Bumping the version above 3.15 doesn't allow us to make any
significant simplifications (unless we went *much* higher). In particular, even
renameat2() is not fully supported with latest kernel versions, e.g. nfs still
doesn't have it. And the bpf stuff is optional anyway. So let's just say that
4.15 is what we recommend, because it provides fairly complete cgroups-v2, but
without any removals of compat in the code.
2022-04-05 20:30:00 +02:00
Lennart Poettering
ba4e0427e9 time-util: assume CLOCK_BOOTTIME always exists
Let's raise our supported baseline a bit: CLOCK_BOOTTIME started to work
with timerfd in kernel 3.15 (i.e. back in 2014), let's require support
for it now.

This will raise our baseline only modestly from 3.13 → 3.15.
2022-03-28 16:55:41 +02:00
Daan De Meyer
baec7d782b meson: Drop required libfdisk version to 2.32
We initially pinned this to 2.33 in
e71f5585b9 because libfdisk 2.32 in
CentOS 8 didn't have
2f35c1ead6
backported.

If we check now, we can see it has been backported
(https://git.centos.org/rpms/util-linux/blob/c8s/f/SOURCES/0048-libfdisk-count-gaps-to-possible-size-when-resize.patch)
which means we can drop the required version to 2.32 instead of 2.33.
2022-02-24 20:06:55 +00:00
Lennart Poettering
560ace5da8 README: CONFIG_KCMP is the new kernel compile time option for kcmp()
Fixes: #21947
2022-02-08 19:54:14 +09:00
Zbigniew Jędrzejewski-Szmek
2777a4a3bf README: link to the new page
Lennart's blog is now mostly of historical interest, and the wiki
landing page has been replaced by systemd.io.
2022-01-12 16:05:59 +01:00
gregzuro
48538c19e5 change req meson version
since `meson compile` first appears in 0.54.0
2021-10-26 09:29:14 +01:00
Jan Janssen
53f69d671c sd-boot: Require gnu-efi 3.0.5
This version is from 2017 and should be stale enough to not cause
an outrage. All the relevant distros have it or a newer version.

We also already depend on some symbols defined in 3.0.5 anyway,
so let's take the opportunity to reduce our missing_efi.h
baggage.
2021-10-17 11:56:05 +02:00
Iago López Galeiras
ec31dd5a98 README: document LSM BPF requirements 2021-10-06 10:52:15 +02:00
Luca Boccassi
7fe57498de add LICENSES/README.md explaining the license situation 2021-10-01 17:27:34 +01:00
Mauricio Vásquez
43689840a2 README: add requirements for RestrictNetworkInterfaces=
Signed-off-by: Mauricio Vásquez <mauricio@kinvolk.io>
2021-08-19 07:25:01 -05:00
Zbigniew Jędrzejewski-Szmek
6d825ab2d4 rpm: use a helper script to actually invoke systemctl commands
Instead of embedding the commands to invoke directly in the macros,
let's use a helper script as indirection. This has a couple of advantages:

- the macro language is awkward, we need to suffix most commands by "|| :"
  and "\", which is easy to get wrong. In the new scheme, the macro becomes
  a single simple command.
- in the script we can use normal syntax highlighting, shellcheck, etc.
- it's also easier to test the invoked commands by invoking the helper
  manually.
- most importantly, the logic is contained in the helper, i.e. we can
  update systemd rpm and everything uses the new helper. Before, we would
  have to rebuild all packages to update the macro definition.

This raises the question whether it makes sense to use the lua scriptlets when
the real work is done in a bash script. I think it's OK: we still have the
efficient lua scripts that do the short scripts, and we use a single shared
implementation in bash to do the more complex stuff.

The meson version is raised to 0.47 because that's needed for install_mode.
We were planning to raise the required version anyway…
2021-07-24 11:46:23 +02:00