1
0
mirror of https://github.com/systemd/systemd synced 2025-11-07 02:44:46 +01:00

Compare commits

..

No commits in common. "307f904d6fae6c09f7f56b9ced8b4762a35b5fef" and "c2678480a79ad1fcab0b5c9a4c3195dbe0c490d1" have entirely different histories.

41 changed files with 81 additions and 167 deletions

View File

@ -39,7 +39,7 @@ jobs:
trigger: pull_request
fmf_url: https://src.fedoraproject.org/rpms/systemd
# This is automatically updated by tools/fetch-distro.py --update fedora
fmf_ref: 8e2833a5b64f7e2ce62ea0a2d0ec9e393e718dfa
fmf_ref: 7de88c66bdc26920db570e67ef74e579f8461d9c
targets:
- fedora-rawhide-x86_64
# testing-farm in the Fedora repository is explicitly configured to use testing-farm bare metal runners as

View File

@ -86,12 +86,6 @@ manager, please consider supporting the following interfaces.
confuse systemd and the admin, but also prevent your implementation from
being "stackable".
8. The mount hierarchy of the container should be mounted `MS_SHARED` before
invoking `systemd` as PID 1. Things will break at various places if this is
not done. Note that of course it's OK if the mounts are first marked
`MS_PRIVATE`/`MS_SLAVE` (to disconnect propagation at least partially) as
long as they are remounted `MS_SHARED` before `systemd` is invoked.
## Environment Variables
1. To allow systemd (and other programs) to identify that it is executed within

View File

@ -275,18 +275,18 @@ i.e. somewhere below `/var/` or similar.
| 1…4 | 0x00000001…0x00000004 | 4 | System users | Distributions | `/etc/passwd` |
| 5 | 0x00000005 | 1 | `tty` group | `systemd` | `/etc/passwd` |
| 6…999 | 0x00000006…0x000003E7 | 994 | System users | Distributions | `/etc/passwd` |
| 1000…60000 | 0x000003E8…0x0000EA60 | 59001 | Regular users | Distributions | `/etc/passwd` + LDAP/NIS/… |
| 1000…60000 | 0x000003E8…0x00001770 | 59000 | Regular users | Distributions | `/etc/passwd` + LDAP/NIS/… |
| 60001…60513 | 0x0000EA61…0x0000EC61 | 513 | Human users (homed) | `systemd` | `nss-systemd` |
| 60514…60577 | 0x0000EC62…0x0000ECA1 | 64 | Host users mapped into containers | `systemd` | `systemd-nspawn` |
| 60578…60705 | 0x0000ECA2…0x0000ED21 | 128 | Dynamic greeter users | `systemd` | `nss-systemd` |
| 60706…61183 | 0x0000ED22…0x0000EEFF | 478 | *unused* | | |
| 61184…65519 | 0x0000EF00…0x0000FFEF | 4336 | Dynamic service users | `systemd` | `nss-systemd` |
| 65520…65533 | 0x0000FFF0…0x0000FFFD | 14 | *unused* | | |
| 65520…65533 | 0x0000FFF0…0x0000FFFD | 13 | *unused* | | |
| 65534 | 0x0000FFFE | 1 | `nobody` user | Linux | `/etc/passwd` + `nss-systemd` |
| 65535 | 0x0000FFFF | 1 | 16-bit `(uid_t) -1` | Linux | |
| 65536…524287 | 0x00010000…0x0007FFFF | 458752 | *unused* | | |
| 524288…1879048191 | 0x00080000…0x6FFFFFFF | 1878523904 | Container UID ranges | `systemd` | `nss-systemd` |
| 1879048192…2147352575 | 0x70000000…0x7FFDFFFF | 268304384 | *unused* | | |
| 1879048192…2147352575 | 0x70000000…0x7FFDFFFF | 1879048192 | *unused* | | |
| 2147352576…2147418111 | 0x7FFE0000…0x7FFEFFFF | 65536 | Foreign UID range | `systemd` | `nss-systemd` |
| 2147418112…2147483647 | 0x7FFF0000…0x7FFFFFFF | 65536 | *unused* | | |
| 2147483648…4294967294 | 0x80000000…0xFFFFFFFE | 2147483647 | *HIC SVNT LEONES* | | |

View File

@ -353,7 +353,7 @@
particular, if the device is used for a mount point, the mount point itself also needs to
have the <option>nofail</option> option, or the boot will fail if the device is not unlocked
successfully. If a keyfile and/or a <option>header</option> are specified, the dependencies on
their respective directories will also not be fatal, so that unmounting said directories will
their respective directories will also not be fatal, so that umounting said directories will
not cause the generated cryptset unit to be deactivated.</para>
<xi:include href="version-info.xml" xpointer="v186"/></listitem>

View File

@ -158,8 +158,6 @@
<xsl:param name="keyNode"/>
<!-- suggested value for generatedID output, a contextually meaningful ID string -->
<xsl:param name="templateID"/>
<!-- Strip leading and trailing whitespaces, and replace repeating whitespaces with a single space -->
<xsl:variable name="normalizedID" select="normalize-space($templateID)"/>
<xsl:variable name="conflictSource" select="preceding::refsect1/title|preceding::refsect1/info/title|
preceding::refsect2/title|preceding::refsect2/info/title|
preceding::varlistentry/term[1]"/>
@ -167,10 +165,10 @@
<xsl:choose>
<!-- special case conflictCount = 0 to preserve compatibility with URLs generated by previous versions of this XSL stylesheet where possible -->
<xsl:when test="$conflictCount = 0">
<xsl:value-of select="$normalizedID"/>
<xsl:value-of select="$templateID"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="concat($normalizedID, $conflictCount)"/>
<xsl:value-of select="concat($templateID, $conflictCount)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>

View File

@ -230,9 +230,7 @@
<listitem><para>Repository for vendor-supplied default configuration files. This directory should be
populated with pristine vendor versions of all configuration files that may be placed in
<filename>/etc/</filename>. This is useful to compare the local configuration of a system with vendor
defaults and to populate the local configuration with defaults. Software should not read configuration
settings directly from <filename>/usr/share/factory/</filename>. Those files will be copied to
other locations if appropriate, and should only be read from there.</para></listitem>
defaults and to populate the local configuration with defaults.</para></listitem>
</varlistentry>
<varlistentry>
@ -241,9 +239,7 @@
<listitem><para>Similar to
<filename>/usr/share/factory/etc/</filename>, but for vendor
versions of files in the variable, persistent data directory
<filename>/var/</filename>. The same recommendations as for
<filename>/usr/share/factory/etc/</filename> apply here.
</para></listitem>
<filename>/var/</filename>.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>

View File

@ -101,7 +101,7 @@
icon name to <replaceable>NAME</replaceable>. The icon name is used by some
graphical applications to visualize this host. The icon name
should follow the <ulink
url="https://specifications.freedesktop.org/icon-naming/latest">Icon
url="https://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">Icon
Naming Specification</ulink>.</para>
<xi:include href="version-info.xml" xpointer="v249"/></listitem>

View File

@ -924,7 +924,7 @@
<para><citerefentry><refentrytitle>systemd-dissect</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<option>--shift</option> switch may be used to shift UID/GID ownership from or to the 0, foreign or
specific container UID/GID base outside of any <command>systemd-nspawn</command> invocation.</para>
specific container UID/GID base outside of any <command>systemd-nspawn</command></para> invocation.
<xi:include href="version-info.xml" xpointer="v230"/></listitem>
</varlistentry>
@ -1601,7 +1601,7 @@ After=sys-subsystem-net-devices-ens1.device</programlisting>
<listitem><para>Binds the home directory of the specified user on the host into the container. Takes
the name of an existing user on the host as argument. May be used multiple times to bind multiple
users into the container. This does two things:</para>
users into the container. This does three things:</para>
<orderedlist>
<listitem><para>The user's home directory is bind mounted from the host into
@ -1616,7 +1616,7 @@ After=sys-subsystem-net-devices-ens1.device</programlisting>
user/group databases.</para></listitem>
</orderedlist>
<para>The combination of the two operations above ensures that it is possible to log into the
<para>The combination of the three operations above ensures that it is possible to log into the
container using the same account information as on the host. The user is only mapped transiently,
while the container is running, and the mapping itself does not result in persistent changes to the
container (except maybe for log messages generated at login time, and similar). Note that in

View File

@ -640,15 +640,35 @@
<title>Environment</title>
<variablelist class='config-directives'>
<varlistentry>
<term><varname>ManagerEnvironment=</varname></term>
<listitem><para>Takes the same arguments as <varname>DefaultEnvironment=</varname>, see above. Sets
environment variables for the manager process itself. These variables are inherited by processes
spawned by user managers, but not the system manager - use <varname>DefaultEnvironment=</varname>
for that. Note that these variables are merged into the existing environment block. In particular, in
case of the system manager, this includes variables set by the kernel based on the kernel command line.
As with <varname>DefaultEnvironment=</varname>, this environment block is internal, and changes are not
reflected in the manager's <filename>/proc/PID/environ</filename>.</para>
<para>Setting environment variables for the manager process may be useful to modify its behaviour.
See <ulink url="https://systemd.io/ENVIRONMENT">Known Environment Variables</ulink> for a
descriptions of some variables understood by <command>systemd</command>.</para>
<para>Simple <literal>%</literal>-specifier expansion is supported, see below for a list of supported
specifiers.</para>
<xi:include href="version-info.xml" xpointer="v248"/>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>DefaultEnvironment=</varname></term>
<listitem><para>Configures environment variables passed to all executed processes. Takes a
space-separated list of variable assignments. See <citerefentry
project='man-pages'><refentrytitle>environ</refentrytitle><manvolnum>7</manvolnum></citerefentry> for
details about environment variables. This environment block is internal, and changes are not
reflected in the manager's <filename>/proc/PID/environ</filename>.
</para>
details about environment variables.</para>
<para>Simple <literal>%</literal>-specifier expansion is supported, see below for a list of supported
specifiers.</para>
@ -664,30 +684,6 @@
<xi:include href="version-info.xml" xpointer="v205"/></listitem>
</varlistentry>
<varlistentry>
<term><varname>ManagerEnvironment=</varname></term>
<listitem><para>Sets environment variables for the manager process itself. Takes a space-separated
list of variable assignment in the same format as <varname>DefaultEnvironment=</varname>, see above.
These variables are merged into the existing environment block of the manager process. In particular,
in case of the system manager, this block includes variables set by the kernel based on the kernel
command line, and in case of the user manager, the variables passed by the system manager. After
those variables have been merged, they will persist until overriden, even if the manager is reloaded
or reexecuted. In case of the user manager, these variables are also inherited by processes spawned
by the manager. As with <varname>DefaultEnvironment=</varname>, this environment block is internal,
and changes are not reflected in the manager's <filename>/proc/PID/environ</filename>.</para>
<para>Setting environment variables for the manager process may be useful to modify its behaviour.
See <ulink url="https://systemd.io/ENVIRONMENT">Known Environment Variables</ulink> for a description
of some variables understood by <command>systemd</command>.</para>
<para>Simple <literal>%</literal>-specifier expansion is supported, see below for a list of supported
specifiers.</para>
<xi:include href="version-info.xml" xpointer="v248"/>
</listitem>
</varlistentry>
</variablelist>
</refsect1>

View File

@ -215,8 +215,7 @@
<term><varname>Multicast=</varname></term>
<listitem>
<para>Takes a boolean. If set to true, the multicast flag on the device is enabled. Defaults
to unset and the flag is unchanged. When disabled, <varname>IPv6AcceptRA=</varname> and
<varname>IPv6SendRA=</varname> cannot be enabled.</para>
to unset.</para>
<xi:include href="version-info.xml" xpointer="v239"/>
</listitem>
@ -943,19 +942,10 @@ DuplicateAddressDetection=none</programlisting></para>
<para>Takes a boolean. Controls IPv6 Router Advertisement (RA) reception support for the interface.
If true, RAs are accepted; if false, RAs are ignored. When RAs are accepted, they may trigger the
start of the DHCPv6 client if the relevant flags are set in the RA data, or if no routers are found
on the link.</para>
<para>This cannot be enabled on devices aggregated in a bond device, or when IPv6 link-local
addressing (see <varname>LinkLocalAddressing=</varname>) or multicasting (see
<varname>Multicast=</varname>) is disabled. Note, multicasting is disabled by default for some
configurations, e.g. bridge ports. Hence, in that case <varname>Multicast=</varname> needs to be
explicitly enabled to make this feature usable. When <varname>IPv6SendRA=</varname>,
<varname>IPv6Forwarding=</varname>, or <varname>IPMasquerade=</varname> is enabled, this feature is
disabled by default, but can be overridden by explicitly enabling this setting. Note,
<varname>IPv6Forwarding=</varname> may be indirectly enabled when the global setting with the same
name is enabled, or when <varname>IPMasquerade=</varname> is enabled on <emphasis>any other
interfaces</emphasis>. See also <varname>IPv6Forwarding=</varname> and
<varname>IPMasquerade=</varname> for more details. Enabled by default otherwise.</para>
on the link. Defaults to false for bridge devices, when <varname>IPv6Forwarding=</varname>,
<varname>IPv6SendRA=</varname>, or <varname>KeepMaster=</varname> is enabled. Otherwise, enabled by
default. Cannot be enabled on devices aggregated in a bond device or when link-local addressing is
disabled.</para>
<para>Further settings for the IPv6 RA support may be configured in the [IPv6AcceptRA]
section, see below.</para>
@ -6319,17 +6309,15 @@ ServerAddress=192.168.0.1/24</programlisting>
<refsect1>
<title>[BridgeVLAN] Section Options</title>
<para>
The [BridgeVLAN] section manages the VLAN ID configuration of a bridge master or enslaved device.
To make the settings in this section take an effect,
The [BridgeVLAN] section manages the VLAN ID configurations of a bridge master or port, and accepts the
following keys. To make the settings in this section take an effect,
<varname>VLANFiltering=</varname> option has to be enabled on the bridge master, see the [Bridge]
section in
<citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>, and
each enslaved device needs to define the relevant VLAN IDs in its own [BridgeVLAN] section, which it
has in common with the bridge master.
All assigned VLAN IDs on the interface that are not configured in the .network file will be removed. If
<citerefentry><refentrytitle>systemd.netdev</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
If at least one valid settings specified in this section in a .network file for an interface, all
assigned VLAN IDs on the interface that are not configured in the .network file will be removed. If
VLAN IDs on an interface need to be managed by other tools, then the settings in this section cannot
be used in the matching .network file and <varname>VLANFiltering=</varname> needs to be disabled on
the bridge master.
be used in the matching .network file.
</para>
<variablelist class='network-directives'>

View File

@ -206,7 +206,7 @@
identify the main process of the service. The manager will proceed with starting follow-up units
after the parent process exits.</para></listitem>
<listitem><para>Behavior of <option>oneshot</option> is similar to <option>exec</option>;
<listitem><para>Behavior of <option>oneshot</option> is similar to <option>simple</option>;
however, the service manager will consider the unit up after the main process exits. It will then
start follow-up units. <varname>RemainAfterExit=</varname> is particularly useful for this type
of service. <varname>Type=</varname><option>oneshot</option> is the implied default if neither
@ -1483,8 +1483,7 @@ ExecStart=/bin/echo $ONE $TWO $THREE</programlisting>
<literal>too</literal>.
</para>
<para>Unless for commands with the special executable prefix <literal>:</literal>,
to pass a literal dollar sign, use <literal>$$</literal>.
<para>To pass a literal dollar sign, use <literal>$$</literal>.
Variables whose value is not known at expansion time are treated
as empty strings. Note that the first argument (i.e. the program
to execute) may not be a variable.</para>

View File

@ -4,5 +4,5 @@
Environment=
GIT_URL=https://src.fedoraproject.org/rpms/systemd.git
GIT_BRANCH=rawhide
GIT_COMMIT=8e2833a5b64f7e2ce62ea0a2d0ec9e393e718dfa
GIT_COMMIT=7de88c66bdc26920db570e67ef74e579f8461d9c
PKG_SUBDIR=fedora

View File

@ -1,12 +0,0 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
# New package needed for TEST-75-RESOLVED
[Match]
Release=!40
Release=!41
Release=!42
Release=!43
[Content]
Packages=knot-keymgr

View File

@ -82,7 +82,6 @@ CXX_LD="$( ((LLVM)) && echo lld)" \
--noprep \
--build-in-place \
--with upstream \
--without lto \
$( ((WITH_TESTS)) || echo "--nocheck") \
$( ((WITH_DOCS)) || echo "--without=docs") \
--define "_topdir /var/tmp" \

View File

@ -1,50 +0,0 @@
#compdef -value-,DBUS_SESSION_BUS_ADDRESS,-default- -value-,DBUS_SYSTEM_BUS_ADDRESS,-default-
local context state state_descr line
typeset -A val_args
_values -S: kind \
'unix[a unix domain socket]:unix properties:->unix' \
'tcp[a tcp socket]:tcp properties:->tcp' \
'unixexec[a process]:unixexec properties:->unixexec' \
'x-machine-unix[a container]:machine properties:->x-machine-unix'
_sd_bus_get_guid() {
local TYPE VALUE
local -a busname=(org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus)
_call_program -l dbus-guid busctl call $busname GetId |
while read TYPE VALUE; do
[[ $TYPE == 's' && -n $VALUE ]] && compadd "$@" - ${(Q)VALUE};
done
}
local expl ret
case $context in
unix)
_values -s, 'unix socket properties' \
'guid[bus guid]:bus guid:_sd_bus_get_guid -qS,' \
'(abstract)path[unix domain socket path]:path:_files -r, -g "*(=)"' \
'(path)abstract[unix domain socket path in the abstract namespace]:abstract path:_files -r, -P@ -g "*(=)"' \
'uid[unix uid]:uid:_numbers' \
'gid[unix gid]:gid:_numbers'
;;
tcp)
_values -s, 'unix socket properties' \
'guid[bus guid]:bus guid:_sd_bus_get_guid -qS,' \
'host[hostname]:hostname:_hosts -r,'\
'port[port]:port:_numbers' \
'family[address family]:address family:(ipv4 ipv6)'
;;
unixexec)
_values -s, 'unixexec properties' \
'guid[bus guid]:bus guid:_sd_bus_get_guid -qS,' \
'path[command path]:command path:_absolute_command_paths -r,'\
;;
x-machine-unix)
_values -s, 'machine properties' \
'guid[bus guid]:bus guid:_sd_bus_get_guid -qS,' \
'(pid)machine[machine]:machine:_call_function ret _sd_machines' \
'(machine)pid[pid]:pid:_pids'
;;
esac

View File

@ -24,7 +24,6 @@ items = [['_busctl', ''],
['_udevadm', ''],
['_varlinkctl', ''],
['_kernel-install', 'ENABLE_KERNEL_INSTALL'],
['_sd_bus_address', ''],
['_sd_hosts_or_user_at_host', ''],
['_sd_outputmodes', ''],
['_sd_unit_files', ''],

View File

@ -1,4 +1,3 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int verb_compare_versions(int argc, char *argv[], void *userdata);

View File

@ -1,4 +1,3 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int verb_fdstore(int argc, char *argv[], void *userdata);

View File

@ -1,4 +1,3 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
int verb_image_policy(int argc, char *argv[], void *userdata);

View File

@ -203,7 +203,7 @@ static int validate_device(sd_device *device) {
r = device_in_subsystem(device, "leds");
if (r < 0)
return log_device_debug_errno(device, r, "Failed to check if device is in leds subsystem: %m");
return log_device_debug_errno(device, r, "Failed to check if device is in backlight subsystem: %m");
if (r > 0)
return true; /* We assume LED device is always valid. */

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "proto/loaded-image.h"

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "forward.h"

View File

@ -572,7 +572,7 @@ int verb_status(int argc, char *argv[], void *userdata) {
* to _either_ of them, print a warning. */
if (!sd_id128_is_null(esp_uuid) && !sd_id128_equal(stub_partition_uuid, esp_uuid) &&
!sd_id128_is_null(xbootldr_uuid) && !sd_id128_equal(stub_partition_uuid, xbootldr_uuid))
printf("WARNING: The stub loader reports a different UUID than the detected ESP and XBOOTLDR partitions "
printf("WARNING: The stub loader reports a different UUID than the detected ESP and XBOOTDLR partitions "
"("SD_ID128_UUID_FORMAT_STR" vs. "SD_ID128_UUID_FORMAT_STR"/"SD_ID128_UUID_FORMAT_STR")!\n",
SD_ID128_FORMAT_VAL(stub_partition_uuid),
SD_ID128_FORMAT_VAL(esp_uuid),

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "forward.h"

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "forward.h"

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* The SPDX header above is actually correct in claiming this was
* LGPL-2.1-or-later, because it is. Since the kernel doesn't consider that

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* The SPDX header above is actually correct in claiming this was
* LGPL-2.1-or-later, because it is. Since the kernel doesn't consider that

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* The SPDX header above is actually correct in claiming this was
* LGPL-2.1-or-later, because it is. Since the kernel doesn't consider that

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* The SPDX header above is actually correct in claiming this was
* LGPL-2.1-or-later, because it is. Since the kernel doesn't consider that

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdint.h>

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#ifdef SBAT_DISTRO
# include "version.h"

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <stdbool.h>

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* The SPDX header above is actually correct in claiming this was
* LGPL-2.1-or-later, because it is. Since the kernel doesn't consider that

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <linux/if.h>
#include <linux/if_link.h>

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "forward.h"

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/* The SPDX header above is actually correct in claiming this was
* LGPL-2.1-or-later, because it is. Since the kernel doesn't consider that

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "forward.h"

29
src/systemd/sd-utf8.h Normal file
View File

@ -0,0 +1,29 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef foosdutf8hfoo
#define foosdutf8hfoo
/***
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <https://www.gnu.org/licenses/>.
***/
#include "_sd-common.h"
_SD_BEGIN_DECLARATIONS;
_sd_pure_ const char *sd_utf8_is_valid(const char *s);
_sd_pure_ const char *sd_ascii_is_valid(const char *s);
_SD_END_DECLARATIONS;
#endif

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "sysupdate-forward.h"

View File

@ -667,7 +667,6 @@ static void test_float_match(sd_json_variant *v) {
assert_se(fabs(1.0 - (DBL_MIN / 2 / sd_json_variant_real(sd_json_variant_by_index(v, 9)))) <= delta);
assert_se(sd_json_variant_is_real(sd_json_variant_by_index(v, 10)) &&
!sd_json_variant_is_integer(sd_json_variant_by_index(v, 10)));
assert_se(!iszero_safe(sd_json_variant_real(sd_json_variant_by_index(v, 10))));
assert_se(fabs(1.0 - (-DBL_MIN / 2 / sd_json_variant_real(sd_json_variant_by_index(v, 10)))) <= delta);
}

View File

@ -1,5 +1,4 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "forward.h"