#4298: systemd-239
----------------------+-----------------------
Reporter: bdubbs@… | Owner: renodr
Type: task | Status: assigned
Priority: normal | Milestone: 8.3
Component: Book | Version: SVN
Severity: normal | Resolution:
Keywords: |
----------------------+-----------------------
Comment (by renodr):
{{{
CHANGES WITH 239:
* NETWORK INTERFACE DEVICE NAMING CHANGES: systemd-udevd's
"net_id"
builtin will name network interfaces differently than in
previous
versions for virtual network interfaces created with SR-IOV and
NPAR
and for devices where the PCI network controller device does not
have
a slot number associated.
SR-IOV virtual devices are now named based on the name of the
parent
interface, with a suffix of "v<N>", where <N> is the virtual
device
number. Previously those virtual devices were named as if
completely
independent.
The ninth and later NPAR virtual devices will be named following
the
scheme used for the first eight NPAR partitions. Previously
those
devices were not renamed and the kernel default (eth<n>) was
used.
"net_id" will also generate names for PCI devices where the PCI
network controller device does not have an associated slot
number
itself, but one of its parents does. Previously those devices
were
not renamed and the kernel default (eth<n>) was used.
* AF_INET and AF_INET6 are dropped from RestrictAddressFamilies=
in
systemd-logind.service. Since v235, IPAddressDeny=any has been
set to
the unit. So, it is expected that the default behavior of
systemd-logind is not changed. However, if distribution
packagers or
administrators disabled or modified IPAddressDeny= setting by a
drop-in config file, then it may be necessary to update the file
to
re-enable AF_INET and AF_INET6 to support network user name
services,
e.g. NIS.
* When the RestrictNamespaces= unit property is specified multiple
times, then the specified types are merged now. Previously, only
the
last assignment was used. So, if distribution packagers or
administrators modified the setting by a drop-in config file,
then it
may be necessary to update the file.
* When OnFailure= is used in combination with Restart= on a
service
unit, then the specified units will no longer be triggered on
failures that result in restarting. Previously, the specified
units
would be activated each time the unit failed, even when the unit
was
going to be restarted automatically. This behaviour contradicted
the
documentation. With this release the code is adjusted to match
the
documentation.
* systemd-tmpfiles will now print a notice whenever it encounters
tmpfiles.d/ lines referencing the /var/run/ directory. It will
recommend reworking them to use the /run/ directory instead (for
which /var/run/ is simply a symlinked compatibility alias). This
way
systemd-tmpfiles can properly detect line conflicts and merge
lines
referencing the same file by two paths, without having to access
them.
* systemctl disable/unmask/preset/preset-all cannot be used with
--runtime. Previously this was allowed, but resulted in
unintuitive
behaviour that wasn't useful. systemctl disable/unmask will now
undo
both runtime and persistent enablement/masking, i.e. it will
remove
any relevant symlinks both in /run and /etc.
* Note that all long-running system services shipped with systemd
will
now default to a system call whitelist (rather than a blacklist,
as
before). In particular, systemd-udevd will now enforce one too.
For
most cases this should be safe, however downstream distributions
which disabled sandboxing of systemd-udevd (specifically the
MountFlags= setting), might want to disable this security
feature
too, as the default whitelisting will prohibit all mount, swap,
reboot and clock changing operations from udev rules.
* sd-boot acquired new loader configuration settings to optionally
turn
off Windows and MacOS boot partition discovery as well as
reboot-into-firmware menu items. It is also able to pick a
better
screen resolution for HiDPI systems, and now provides loader
configuration settings to change the resolution explicitly.
* systemd-resolved now supports DNS-over-TLS. It's still
turned off by default, use DNSOverTLS=opportunistic to turn it
on in
resolved.conf. We intend to make this the default as soon as
couple
of additional techniques for optimizing the initial latency
caused by
establishing a TLS/TCP connection are implemented.
* systemd-resolved.service and systemd-networkd.service now set
DynamicUser=yes. The users systemd-resolve and systemd-network
are
not created by systemd-sysusers.
* The systemd-resolve tool has been renamed to resolvectl (it also
remains available under the old name, for compatibility), and
its
interface is now verb-based, similar in style to the other
<xyz>ctl
tools, such as systemctl or loginctl.
* The resolvectl/systemd-resolve tool also provides 'resolvconf'
compatibility. It may be symlinked under the 'resolvconf' name,
in
which case it will take arguments and input compatible with the
Debian and FreeBSD resolvconf tool.
* Support for suspend-then-hibernate has been added, i.e. a sleep
mode
where the system initially suspends, and after a time-out
resumes and
hibernates again.
* networkd's ClientIdentifier= now accepts a new option "duid-
only". If
set the client will only send a DUID as client identifier.
* The nss-systemd glibc NSS module will now enumerate dynamic
users and
groups in effect. Previously, it could resolve UIDs/GIDs to user
names/groups and vice versa, but did not support enumeration.
* journald's Compress= configuration setting now optionally
accepts a
byte threshold value. All journal objects larger than this
threshold
will be compressed, smaller ones will not. Previously this
threshold
was not configurable and set to 512.
* A new system.conf setting NoNewPrivileges= is now available
which may
be used to turn off acquisition of new privileges system-wide
(i.e. set Linux' PR_SET_NO_NEW_PRIVS for PID 1 itself, and thus
also
for all its children). Note that turning this option on means
setuid
binaries and file system capabilities lose their special powers.
While turning on this option is a big step towards a more secure
system, doing so is likely to break numerous pre-existing UNIX
tools,
in particular su and sudo.
* A new service systemd-time-sync-wait.service has been added. If
enabled it will delay the time-sync.target unit at boot until
time
synchronization has been received from the network. This
functionality is useful on systems lacking a local RTC or where
it is
acceptable that the boot process shall be delayed by external
network
services.
* When hibernating, systemd will now inform the kernel of the
image
write offset, on kernels new enough to support this. This means
swap
files should work for hibernation now.
* When loading unit files, systemd will now look for drop-in unit
files
extensions in additional places. Previously, for a unit file
name
"foo-bar-baz.service" it would look for dropin files in
"foo-bar-baz.service.d/*.conf". Now, it will also look in
"foo-bar-.service.d/*.conf" and "foo-.service.d/", i.e. at the
service name truncated after all inner dashes. This scheme
allows
writing drop-ins easily that apply to a whole set of unit files
at
once. It's particularly useful for mount and slice units (as
their
naming is prefix based), but is also useful for service and
other
units, for packages that install multiple unit files at once,
following a strict naming regime of beginning the unit file name
with
the package's name. Two new specifiers are now supported in unit
files to match this: %j and %J are replaced by the part of the
unit
name following the last dash.
* Unit files and other configuration files that support specifier
expansion now understand another three new specifiers: %T and %V
will
resolve to /tmp and /var/tmp respectively, or whatever temporary
directory has been set for the calling user. %E will expand to
either
/etc (for system units) or $XDG_CONFIG_HOME (for user units).
* The ExecStart= lines of unit files are no longer required to
reference absolute paths. If non-absolute paths are specified
the
specified binary name is searched within the service manager's
built-in $PATH, which may be queried with 'systemd-path
search-binaries-default'. It's generally recommended to continue
to
use absolute paths for all binaries specified in unit files.
* Units gained a new load state "bad-setting", which is used when
a
unit file was loaded, but contained fatal errors which prevent
it
from being started (for example, a service unit has been defined
lacking both ExecStart= and ExecStop= lines).
* coredumpctl's "gdb" verb has been renamed to "debug", in order
to
support alternative debuggers, for example lldb. The old name
continues to be available however, for compatibility reasons.
Use the
new --debugger= switch or the $SYSTEMD_DEBUGGER environment
variable
to pick an alternative debugger instead of the default gdb.
* systemctl and the other tools will now output escape sequences
that
generate proper clickable hyperlinks in various terminal
emulators
where useful (for example, in the "systemctl status" output you
can
now click on the unit file name to quickly open it in the
editor/viewer of your choice). Note that not all terminal
emulators
support this functionality yet, but many do. Unfortunately, the
"less" pager doesn't support this yet, hence this functionality
is
currently automatically turned off when a pager is started
(which
happens quite often due to auto-paging). We hope to remove this
limitation as soon as "less" learns these escape sequences. This
new
behaviour may also be turned off explicitly with the
$SYSTEMD_URLIFY
environment variable. For details on these escape sequences see:
https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
* networkd's .network files now support a new IPv6MTUBytes= option
for
setting the MTU used by IPv6 explicitly as well as a new
MTUBytes=
option in the [Route] section to configure the MTU to use for
specific routes. It also gained support for configuration of the
DHCP
"UserClass" option through the new UserClass= setting. It gained
three new options in the new [CAN] section for configuring CAN
networks. The MULTICAST and ALLMULTI interface flags may now be
controlled explicitly with the new Multicast= and AllMulticast=
settings.
* networkd will now automatically make use of the kernel's route
expiration feature, if it is available.
* udevd's .link files now support setting the number of receive
and
transmit channels, using the RxChannels=, TxChannels=,
OtherChannels=, CombinedChannels= settings.
* Support for UDPSegmentationOffload= has been removed, given its
limited support in hardware, and waning software support.
* networkd's .netdev files now support creating "netdevsim"
interfaces.
* PID 1 learnt a new bus call GetUnitByControlGroup() which may be
used
to query the unit belonging to a specific kernel control group.
* systemd-analyze gained a new verb "cat-config", which may be
used to
dump the contents of any configuration file, with all its
matching
drop-in files added in, and honouring the usual search and
masking
logic applied to systemd configuration files. For example use
"systemd-analyze cat-config systemd/system.conf" to get the
complete
system configuration file of systemd how it would be loaded by
PID 1
itself. Similar to this, various tools such as systemd-tmpfiles
or
systemd-sysusers, gained a new option "--cat-config", which does
the
corresponding operation for their own configuration settings.
For
example, "systemd-tmpfiles --cat-config" will now output the
full
list of tmpfiles.d/ lines in place.
* timedatectl gained three new verbs: "show" shows bus properties
of
systemd-timedated, "timesync-status" shows the current NTP
synchronization state of systemd-timesyncd, and "show-timesync"
shows bus properties of systemd-timesyncd.
* systemd-timesyncd gained a bus interface on which it exposes
details
about its state.
* A new environment variable $SYSTEMD_TIMEDATED_NTP_SERVICES is
now
understood by systemd-timedated. It takes a colon-separated list
of
unit names of NTP client services. The list is used by
"timedatectl set-ntp".
* systemd-nspawn gained a new --rlimit= switch for setting initial
resource limits for the container payload. There's a new switch
--hostname= to explicitly override the container's hostname. A
new
--no-new-privileges= switch may be used to control the
PR_SET_NO_NEW_PRIVS flag for the container payload. A new
--oom-score-adjust= switch controls the OOM scoring adjustment
value
for the payload. The new --cpu-affinity= switch controls the CPU
affinity of the container payload. The new --resolv-conf= switch
allows more detailed control of /etc/resolv.conf handling of the
container. Similarly, the new --timezone= switch allows more
detailed
control of /etc/localtime handling of the container.
* systemd-detect-virt gained a new --list switch, which will print
a
list of all currently known VM and container environments.
* Support for "Portable Services" has been added, see
doc/PORTABLE_SERVICES.md for details. Currently, the support is
still
experimental, but this is expected to change soon. Reflecting
this
experimental state, the "portablectl" binary is not installed
into
/usr/bin yet. The binary has to be called with the full path
/usr/lib/systemd/portablectl instead.
* journalctl's and systemctl's -o switch now knows a new log
output
mode "with-unit". The output it generates is very similar to the
regular "short" mode, but displays the unit name instead of the
syslog tag for each log line. Also, the date is shown with
timezone
information. This mode is probably more useful than the classic
"short" output mode for most purposes, except where pixel-
perfect
compatibility with classic /var/log/messages formatting is
required.
* A new --dump-bus-properties switch has been added to the systemd
binary, which may be used to dump all supported D-Bus
properties.
(Options which are still supported, but are deprecated, are
*not*
shown.)
* sd-bus gained a set of new calls:
sd_bus_slot_set_floating()/sd_bus_slot_get_floating() may be
used to
enable/disable the "floating" state of a bus slot object,
i.e. whether the slot object pins the bus it is allocated for
into
memory or if the bus slot object gets disconnected when the bus
goes
away. sd_bus_open_with_description(),
sd_bus_open_user_with_description(),
sd_bus_open_system_with_description() may be used to allocate
bus
objects and set their description string already during
allocation.
* sd-event gained support for watching inotify events from the
event
loop, in an efficient way, sharing inotify handles between
multiple
users. For this a new function sd_event_add_inotify() has been
added.
* sd-event and sd-bus gained support for calling special user-
supplied
destructor functions for userdata pointers associated with
sd_event_source, sd_bus_slot, and sd_bus_track objects. For this
new
functions sd_bus_slot_set_destroy_callback,
sd_bus_slot_get_destroy_callback,
sd_bus_track_set_destroy_callback,
sd_bus_track_get_destroy_callback,
sd_event_source_set_destroy_callback,
sd_event_source_get_destroy_callback have been added.
* The "net.ipv4.tcp_ecn" sysctl will now be turned on by default.
* PID 1 will now automatically reschedule .timer units whenever
the
local timezone changes. (They previously got rescheduled
automatically when the system clock changed.)
* New documentation has been added to document cgroups delegation,
portable services and the various code quality tools we have set
up:
https://github.com/systemd/systemd/blob/master/doc/CGROUP_DELEGATION.md
https://github.com/systemd/systemd/blob/master/doc/PORTABLE_SERVICES.md
https://github.com/systemd/systemd/blob/master/doc/CODE_QUALITY.md
* The Boot Loader Specification has been added to the source tree.
https://github.com/systemd/systemd/blob/master/doc/BOOT_LOADER_SPECIFICATION.md
While moving it into our source tree we have updated it and
further
changes are now accepted through the usual github PR workflow.
* pam_systemd will now look for PAM userdata fields
systemd.memory_max,
systemd.tasks_max, systemd.cpu_weight, systemd.io_weight set by
earlier PAM modules. The data in these fields is used to
initialize
the session scope's resource properties. Thus external PAM
modules
may now configure per-session limits, for example sourced from
external user databases.
* socket units with Accept=yes will now maintain a "refused"
counter in
addition to the existing "accepted" counter, counting
connections
refused due to the enforced limits.
* The "systemd-path search-binaries-default" command may now be
use to
query the default, built-in $PATH PID 1 will pass to the
services it
manages.
* A new unit file setting PrivateMounts= has been added. It's a
boolean
option. If enabled the unit's processes are invoked in their own
file
system namespace. Note that this behaviour is also implied if
any
other file system namespacing options (such as PrivateTmp=,
PrivateDevices=, ProtectSystem=, …) are used. This option is
hence
primarily useful for services that do not use any of the other
file
system namespacing options. One such service is systemd-
udevd.service
wher this is now used by default.
* ConditionSecurity= gained a new value "uefi-secureboot" that is
true
when the system is booted in UEFI "secure mode".
* A new unit "system-update-pre.target" is added, which defines an
optional synchronization point for offline system updates, as
implemented by the pre-existing "system-update.target" unit. It
allows ordering services before the service that executes the
actual
update process in a generic way.
Contributions from: Adam Duskett, Alan Jenkins, Alessandro Casale,
Alexander Kurtz, Alex Gartrell, Anssi Hannula, Arnaud Rebillout,
Brian
J. Murrell, Bruno Vernay, Chris Lamb, Chris Lesiak, Christian
Brauner,
Christian Hesse, Christian Rebischke, Colin Guthrie, Daniel Dao,
Daniel
Lin, Danylo Korostil, Davide Cavalca, David Tardon, Dimitri John
Ledkov, Dmitriy Geels, Douglas Christman, Elia Geretto, emelenas,
Emil
Velikov, Evgeny Vereshchagin, Felipe Sateler, Feng Sun, Filipe
Brandenburger, Franck Bui, futpib, Giuseppe Scrivano, Guillem
Jover,
guixxx, Hannes Reinecke, Hans de Goede, Harald Hoyer, Henrique
Dante de
Almeida, Hiram van Paassen, Ian Miell, Igor Gnatenko, Ivan
Shapovalov,
Iwan Timmer, James Cowgill, Jan Janssen, Jan Synacek, Jared
Kazimir,
Jérémy Rosen, João Paulo Rechi Vita, Joost Heitbrink, Jui-Chi
Ricky
Liang, Jürg Billeter, Kai-Heng Feng, Karol Augustin, Kay Sievers,
Krzysztof Nowicki, Lauri Tirkkonen, Lennart Poettering, Leonard
König,
Long Li, Luca Boccassi, Lucas Werkmeister, Marcel Hoppe, Marc
Kleine-Budde, Mario Limonciello, Martin Jansa, Martin Wilck,
Mathieu
Malaterre, Matteo F. Vescovi, Matthew McGinn, Matthias-Christian
Ott,
Michael Biebl, Michael Olbrich, Michael Prokop, Michal Koutný,
Michal
Sekletar, Mike Gilbert, Mikhail Kasimov, Milan Broz, Milan
Pässler,
Mladen Pejaković, Muhammet Kara, Nicolas Boichat, Omer Katz,
Paride
Legovini, Paul Menzel, Paul Milliken, Pavel Hrdina, Peter A.
Bigot,
Peter D'Hoye, Peter Hutterer, Peter Jones, Philip Sequeira, Philip
Withnall, Piotr Drąg, Radostin Stoyanov, Ricardo Salveti de
Araujo,
Ronny Chevalier, Rosen Penev, Rubén Suárez Alvarez, Ryan Gonzalez,
Salvo Tomaselli, Sebastian Reichel, Sergey Ptashnick, Sergio Lindo
Mansilla, Stefan Schweter, Stephen Hemminger, Stuart Hayes, Susant
Sahani, Sylvain Plantefève, Thomas H. P. Andersen, Tobias Jungel,
Tomasz Torcz, Vito Caputo, Will Dietz, Will Thompson, Wim van
Mourik,
Yu Watanabe, Zbigniew Jędrzejewski-Szmek
— Berlin, 2018-06-22
}}}
Almost ready to commit this. Then onto BLFS!
--
Ticket URL: <http://wiki.linuxfromscratch.org/lfs/ticket/4298#comment:2>
LFS Trac <http://wiki.linuxfromscratch.org/lfs/>
Linux From Scratch: Your Distro, Your Rules.
--
http://lists.linuxfromscratch.org/listinfo/lfs-book
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page