Compare commits
28 Commits
7d7c75f149
...
e6ce785d61
Author | SHA1 | Date |
---|---|---|
igo95862 | e6ce785d61 | |
Zbigniew Jędrzejewski-Szmek | 8dc299a0da | |
Yu Watanabe | 042b028ae9 | |
Yu Watanabe | 9f2c260ef9 | |
Yu Watanabe | 70a51d7e08 | |
Zbigniew Jędrzejewski-Szmek | ffe3533eb7 | |
Anita Zhang | 6ace20b971 | |
Yu Watanabe | cbdc906288 | |
Zbigniew Jędrzejewski-Szmek | 40ebe49259 | |
Yu Watanabe | a614a6e2f8 | |
Zbigniew Jędrzejewski-Szmek | 88e574e7c1 | |
Yu Watanabe | 5b90b906c7 | |
Zbigniew Jędrzejewski-Szmek | 91ed0c8e32 | |
Zbigniew Jędrzejewski-Szmek | 44c6c5df2b | |
igo95862 | 2e4238a6d1 | |
Hans de Goede | 7983b4d9c6 | |
Hans de Goede | d46c0febab | |
Hans de Goede | b0a3a3ff5d | |
Yu Watanabe | 483abcc65b | |
Yu Watanabe | e55c073161 | |
Yu Watanabe | 5ba97fc0a9 | |
Yu Watanabe | ca7b9e1e0a | |
Yu Watanabe | 810394481b | |
Yu Watanabe | 85a03fda7d | |
Yu Watanabe | 1763ef1d49 | |
Yu Watanabe | d3f044ddf4 | |
Yu Watanabe | 5c09eac7d2 | |
Yu Watanabe | d51c4fca29 |
|
@ -103,7 +103,7 @@ for args in "${ARGS[@]}"; do
|
||||||
SECONDS=0
|
SECONDS=0
|
||||||
|
|
||||||
info "Checking build with $args"
|
info "Checking build with $args"
|
||||||
if ! AR="$AR" CC="$CC" CXX="$CXX" CFLAGS="-Werror" CXXFLAGS="-Werror" meson -Dtests=unsafe -Dslow-tests=true --werror $args build; then
|
if ! AR="$AR" CC="$CC" CXX="$CXX" CFLAGS="-Werror" CXXFLAGS="-Werror" meson -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true --werror $args build; then
|
||||||
fatal "meson failed with $args"
|
fatal "meson failed with $args"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
23
NEWS
23
NEWS
|
@ -462,15 +462,30 @@ CHANGES WITH 247 in spe:
|
||||||
via the new Independent= boolean setting.
|
via the new Independent= boolean setting.
|
||||||
|
|
||||||
* systemd-networkd's Gateway= setting in .network files now accepts the
|
* systemd-networkd's Gateway= setting in .network files now accepts the
|
||||||
special values _dhcp4 and _ipv6ra to configure additional, locally
|
special values "_dhcp4" and "_ipv6ra" to configure additional,
|
||||||
defined, explicit routes to the gateway acquired via DHCP or IPv6
|
locally defined, explicit routes to the gateway acquired via DHCP or
|
||||||
Router Advertisements.
|
IPv6 Router Advertisements. The old setting "_dhcp" is deprecated,
|
||||||
|
but still accepted for backwards compatibility.
|
||||||
|
|
||||||
* systemd-networkd's [IPv6PrefixDelegation] section and
|
* systemd-networkd's [IPv6PrefixDelegation] section and
|
||||||
IPv6PrefixDelegation= options have been renamed as [IPv6SendRA] and
|
IPv6PrefixDelegation= options have been renamed as [IPv6SendRA] and
|
||||||
IPv6SendRA= (the old names are still accepted for backwards
|
IPv6SendRA= (the old names are still accepted for backwards
|
||||||
compatibility).
|
compatibility).
|
||||||
|
|
||||||
|
* systemd-networkd's .network files gained the DHCPv6PrefixDelegation=
|
||||||
|
boolean setting in [Network] section. If enabled, the delegated prefix
|
||||||
|
gained by another link will be configured, and an address within the
|
||||||
|
prefix will be assigned.
|
||||||
|
|
||||||
|
* systemd-networkd's .network files gained the Announce= boolean setting
|
||||||
|
in [DHCPv6PrefixDelegation] section. When enabled, the delegated
|
||||||
|
prefix will be announced through IPv6 router advertisement (IPv6 RA).
|
||||||
|
The setting is enabled by default.
|
||||||
|
|
||||||
|
* systemd-networkd's .netdev files gained the Independent= boolean
|
||||||
|
setting in [VXLAN] section. When enabled, the vxlan interface will be
|
||||||
|
created without underlying interfaces. Defaults to false.
|
||||||
|
|
||||||
* systemctl gained support for two new verbs: "service-log-level" and
|
* systemctl gained support for two new verbs: "service-log-level" and
|
||||||
"service-log-target" may be used on services that implement the
|
"service-log-target" may be used on services that implement the
|
||||||
generic org.freedesktop.LogControl1 D-Bus interface to dynamically
|
generic org.freedesktop.LogControl1 D-Bus interface to dynamically
|
||||||
|
@ -536,7 +551,7 @@ CHANGES WITH 247 in spe:
|
||||||
promises.
|
promises.
|
||||||
|
|
||||||
* A new helper oomctl has been added to introspect systemd-oomd state.
|
* A new helper oomctl has been added to introspect systemd-oomd state.
|
||||||
If also is only enabled by default in developer mode and should be
|
It is only enabled by default in developer mode and should be
|
||||||
considered a preview without the usual backwards-compatibility
|
considered a preview without the usual backwards-compatibility
|
||||||
promises.
|
promises.
|
||||||
|
|
||||||
|
|
2
TODO
2
TODO
|
@ -646,7 +646,7 @@ Features:
|
||||||
parameters
|
parameters
|
||||||
|
|
||||||
* maybe hook of xfs/ext4 quotactl() with services? i.e. automatically manage
|
* maybe hook of xfs/ext4 quotactl() with services? i.e. automatically manage
|
||||||
the quota of a the user indicated in User= via unit file settings, like the
|
the quota of the user indicated in User= via unit file settings, like the
|
||||||
other resource management concepts. Would mix nicely with DynamicUser=1. Or
|
other resource management concepts. Would mix nicely with DynamicUser=1. Or
|
||||||
alternatively, do this with projids, so that we can also cover services
|
alternatively, do this with projids, so that we can also cover services
|
||||||
running as root. Quota should probably cover all the special dirs such as
|
running as root. Quota should probably cover all the special dirs such as
|
||||||
|
|
|
@ -926,6 +926,7 @@ evdev:input:b0003v046Dp00*
|
||||||
KEYBOARD_KEY_c1029=shuffle # Shuffle button
|
KEYBOARD_KEY_c1029=shuffle # Shuffle button
|
||||||
KEYBOARD_KEY_c102a=back # Back button
|
KEYBOARD_KEY_c102a=back # Back button
|
||||||
KEYBOARD_KEY_c102b=cyclewindows # Empty window icon
|
KEYBOARD_KEY_c102b=cyclewindows # Empty window icon
|
||||||
|
KEYBOARD_KEY_c102c=fn # Fn key
|
||||||
KEYBOARD_KEY_c102d=www # www text + magnifierglass icon
|
KEYBOARD_KEY_c102d=www # www text + magnifierglass icon
|
||||||
KEYBOARD_KEY_c1031=connect # Pickup phone button → connect → XF86Go
|
KEYBOARD_KEY_c1031=connect # Pickup phone button → connect → XF86Go
|
||||||
KEYBOARD_KEY_c1032=cancel # Hangup phone button → cancel → Cancel
|
KEYBOARD_KEY_c1032=cancel # Hangup phone button → cancel → Cancel
|
||||||
|
@ -1028,6 +1029,7 @@ evdev:input:b0003v046Dp00FE*
|
||||||
# MX5000 keyboard (HID proxy mode and bluetooth matches)
|
# MX5000 keyboard (HID proxy mode and bluetooth matches)
|
||||||
evdev:input:b0003v046DpB305*
|
evdev:input:b0003v046DpB305*
|
||||||
evdev:input:b0005v046DpB305*
|
evdev:input:b0005v046DpB305*
|
||||||
|
KEYBOARD_KEY_c0183=media # HUT says config, kbd says Media
|
||||||
KEYBOARD_KEY_c0230=zoomreset # HUT says fullscreen, kbd says 100%
|
KEYBOARD_KEY_c0230=zoomreset # HUT says fullscreen, kbd says 100%
|
||||||
KEYBOARD_KEY_c1004=send # Send and receive / sync button
|
KEYBOARD_KEY_c1004=send # Send and receive / sync button
|
||||||
KEYBOARD_KEY_c1006=coffee # Status (online/away) button
|
KEYBOARD_KEY_c1006=coffee # Status (online/away) button
|
||||||
|
@ -1040,13 +1042,25 @@ evdev:input:b0005v046DpB305*
|
||||||
KEYBOARD_KEY_c1039=prog2 # Smartkey B → XF86Launch2
|
KEYBOARD_KEY_c1039=prog2 # Smartkey B → XF86Launch2
|
||||||
KEYBOARD_KEY_c103a=prog3 # Smartkey C → XF86Launch3
|
KEYBOARD_KEY_c103a=prog3 # Smartkey C → XF86Launch3
|
||||||
KEYBOARD_KEY_c103b=prog4 # Smartkey D → XF86Launch4
|
KEYBOARD_KEY_c103b=prog4 # Smartkey D → XF86Launch4
|
||||||
|
KEYBOARD_KEY_c1040=fn_esc # Fn mode on/off toggle
|
||||||
|
|
||||||
|
# Dinovo Edge (HID proxy mode and bluetooth matches)
|
||||||
|
evdev:input:b0003v046DpB309*
|
||||||
|
evdev:input:b0005v046DpB309*
|
||||||
|
KEYBOARD_KEY_c102c=fn # Fn key
|
||||||
|
KEYBOARD_KEY_c1038=prog1 # Fn + F9 Smartkey A → XF86Launch1
|
||||||
|
KEYBOARD_KEY_c1039=prog2 # Fn + F10 Smartkey B → XF86Launch2
|
||||||
|
KEYBOARD_KEY_c103a=prog3 # Fn + F11 Smartkey C → XF86Launch3
|
||||||
|
KEYBOARD_KEY_c103b=prog4 # Fn + F12 Smartkey D → XF86Launch4
|
||||||
|
KEYBOARD_KEY_c1050=phone # Fn + F1 Phone button
|
||||||
|
|
||||||
# MX5500 keyboard (HID proxy mode and bluetooth matches)
|
# MX5500 keyboard (HID proxy mode and bluetooth matches)
|
||||||
evdev:input:b0003v046DpB30B*
|
evdev:input:b0003v046DpB30B*
|
||||||
evdev:input:b0005v046DpB30B*
|
evdev:input:b0005v046DpB30B*
|
||||||
KEYBOARD_KEY_c0183=media # HUT says consumer control configuration, kbd says Media Center
|
KEYBOARD_KEY_c0183=media # HUT says consumer control configuration, kbd says Media Center
|
||||||
KEYBOARD_KEY_c100e=images # Camera icon, "Photo Gallery"
|
KEYBOARD_KEY_c100e=images # Camera icon, "Photo Gallery"
|
||||||
KEYBOARD_KEY_c100f=config # Window with gear icon
|
KEYBOARD_KEY_c100f=config # Window with gear icon
|
||||||
|
KEYBOARD_KEY_c102c=fn # Fn key
|
||||||
KEYBOARD_KEY_c1038=prog1 # Smartkey A → XF86Launch1
|
KEYBOARD_KEY_c1038=prog1 # Smartkey A → XF86Launch1
|
||||||
KEYBOARD_KEY_c1039=prog2 # Smartkey B → XF86Launch2
|
KEYBOARD_KEY_c1039=prog2 # Smartkey B → XF86Launch2
|
||||||
KEYBOARD_KEY_c103a=prog3 # Smartkey C → XF86Launch3
|
KEYBOARD_KEY_c103a=prog3 # Smartkey C → XF86Launch3
|
||||||
|
|
|
@ -292,11 +292,13 @@
|
||||||
attached to the request object path, interface and member. Finally, the property callbacks
|
attached to the request object path, interface and member. Finally, the property callbacks
|
||||||
attached to the request object path, interface and member are called. If the final callback
|
attached to the request object path, interface and member are called. If the final callback
|
||||||
returns zero, an error reply is sent back to the caller indicating no matching object for the
|
returns zero, an error reply is sent back to the caller indicating no matching object for the
|
||||||
request was found. Note that you can return a positive integer from a callback without
|
request was found.</para>
|
||||||
|
|
||||||
|
<para>Note that you can return a positive integer from a callback without
|
||||||
immediately sending a reply. This informs sd-bus this callback will take responsibility for
|
immediately sending a reply. This informs sd-bus this callback will take responsibility for
|
||||||
replying to the request without forcing the callback to produce a reply immediately. This allows
|
replying to the request without forcing the callback to produce a reply immediately. This allows
|
||||||
a callback to perform any number of asynchronous operations required to construct a reply. Note
|
a callback to perform any number of asynchronous operations required to construct a reply.
|
||||||
that if producing a reply takes too long, the method call will time out at the caller.</para>
|
However, if producing a reply takes too long, the method call will time out at the caller.</para>
|
||||||
|
|
||||||
<para>If a callback was invoked to handle a request that expects a reply and the callback
|
<para>If a callback was invoked to handle a request that expects a reply and the callback
|
||||||
returns a negative value, the value is interpreted as a negative errno-style error code and sent
|
returns a negative value, the value is interpreted as a negative errno-style error code and sent
|
||||||
|
@ -369,8 +371,8 @@
|
||||||
with the message the callback was invoked with. Parameter <replaceable>flags</replaceable> is a
|
with the message the callback was invoked with. Parameter <replaceable>flags</replaceable> is a
|
||||||
combination of flags, see below.</para>
|
combination of flags, see below.</para>
|
||||||
|
|
||||||
<constant>SD_BUS_METHOD_WITH_ARGS()</constant> is a shorthand for calling
|
<para><constant>SD_BUS_METHOD_WITH_ARGS()</constant> is a shorthand for calling
|
||||||
<constant>SD_BUS_METHOD_WITH_ARGS_OFFSET()</constant> with an offset of zero.
|
<constant>SD_BUS_METHOD_WITH_ARGS_OFFSET()</constant> with an offset of zero.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
@ -404,7 +406,7 @@
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><constant>SD_BUS_SIGNAL_WITH_ARGS()</constant></term>
|
<term><constant>SD_BUS_SIGNAL_WITH_ARGS()</constant></term>
|
||||||
|
|
||||||
<listitem><para>>Declare a D-Bus signal with the name <replaceable>member</replaceable> and
|
<listitem><para>Declare a D-Bus signal with the name <replaceable>member</replaceable> and
|
||||||
arguments <replaceable>args</replaceable>. <replaceable>args</replaceable> expects a sequence of
|
arguments <replaceable>args</replaceable>. <replaceable>args</replaceable> expects a sequence of
|
||||||
argument type/name pairs wrapped in the <constant>SD_BUS_ARGS()</constant> macro. The elements at
|
argument type/name pairs wrapped in the <constant>SD_BUS_ARGS()</constant> macro. The elements at
|
||||||
even indices in this list describe the types of the signal's arguments. The signal's parameter
|
even indices in this list describe the types of the signal's arguments. The signal's parameter
|
||||||
|
|
|
@ -89,6 +89,12 @@
|
||||||
input parameter; it can be used to propagate errors from the callback handler, it will not receive any
|
input parameter; it can be used to propagate errors from the callback handler, it will not receive any
|
||||||
error that was received as method reply.)</para>
|
error that was received as method reply.)</para>
|
||||||
|
|
||||||
|
<para>The message <parameter>m</parameter> passed to the callback is only borrowed, that is, the callback should
|
||||||
|
not call <citerefentry><refentrytitle>sd_bus_message_unref</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||||
|
on it. If the callback wants to hold on to the message beyond the lifetime of the callback, it needs to call
|
||||||
|
<citerefentry><refentrytitle>sd_bus_message_ref</refentrytitle><manvolnum>3</manvolnum></citerefentry> to create a
|
||||||
|
new reference.</para>
|
||||||
|
|
||||||
<para>If <parameter>usec</parameter> is zero, the default D-Bus method call timeout is used. See
|
<para>If <parameter>usec</parameter> is zero, the default D-Bus method call timeout is used. See
|
||||||
<citerefentry><refentrytitle>sd_bus_get_method_call_timeout</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
<citerefentry><refentrytitle>sd_bus_get_method_call_timeout</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
||||||
</para>
|
</para>
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
|
|
||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>int <function>sd_bus_message_peek_type</function></funcdef>
|
<funcdef>int <function>sd_bus_message_peek_type</function></funcdef>
|
||||||
|
<paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
|
||||||
<paramdef>char *<parameter>type</parameter></paramdef>
|
<paramdef>char *<parameter>type</parameter></paramdef>
|
||||||
<paramdef>const char **<parameter>contents</parameter></paramdef>
|
<paramdef>const char **<parameter>contents</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
message is no longer needed. If <parameter>ret</parameter> is not <constant>NULL</constant>, progress was made, but no message was
|
message is no longer needed. If <parameter>ret</parameter> is not <constant>NULL</constant>, progress was made, but no message was
|
||||||
processed, <parameter>*ret</parameter> is set to <constant>NULL</constant>.</para>
|
processed, <parameter>*ret</parameter> is set to <constant>NULL</constant>.</para>
|
||||||
|
|
||||||
<para>If a the bus object is connected to an
|
<para>If the bus object is connected to an
|
||||||
<citerefentry><refentrytitle>sd-event</refentrytitle><manvolnum>3</manvolnum></citerefentry> event loop (with
|
<citerefentry><refentrytitle>sd-event</refentrytitle><manvolnum>3</manvolnum></citerefentry> event loop (with
|
||||||
<citerefentry><refentrytitle>sd_bus_attach_event</refentrytitle><manvolnum>3</manvolnum></citerefentry>), it is not
|
<citerefentry><refentrytitle>sd_bus_attach_event</refentrytitle><manvolnum>3</manvolnum></citerefentry>), it is not
|
||||||
necessary to call <function>sd_bus_process()</function> directly as it is invoked automatically when
|
necessary to call <function>sd_bus_process()</function> directly as it is invoked automatically when
|
||||||
|
|
|
@ -825,7 +825,7 @@ IPv6Token=prefixstable:2002:da8:1::</programlisting></para>
|
||||||
configured on another link. By default, an address within each delegated prefix will be
|
configured on another link. By default, an address within each delegated prefix will be
|
||||||
assigned, and the prefixes will be announced through IPv6 Router Advertisement when
|
assigned, and the prefixes will be announced through IPv6 Router Advertisement when
|
||||||
<varname>IPv6SendRA=</varname> is enabled. Such default settings can be configured in
|
<varname>IPv6SendRA=</varname> is enabled. Such default settings can be configured in
|
||||||
[DHCPv6PrefixDelegation] section.</para></listitem>
|
[DHCPv6PrefixDelegation] section. Defaults to disabled.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>IPv6MTUBytes=</varname></term>
|
<term><varname>IPv6MTUBytes=</varname></term>
|
||||||
|
@ -1170,7 +1170,9 @@ IPv6Token=prefixstable:2002:da8:1::</programlisting></para>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><varname>FirewallMark=</varname></term>
|
<term><varname>FirewallMark=</varname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Specifies the iptables firewall mark value to match (a number between 1 and 4294967295).</para>
|
<para>Specifies the iptables firewall mark value to match (a number between 1 and
|
||||||
|
4294967295). Optionally, the firewall mask (also a number between 1 and 4294967295) can be
|
||||||
|
suffixed with a slash (<literal>/</literal>), e.g., <literal>7/255</literal>.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
|
|
|
@ -132,7 +132,7 @@
|
||||||
<para>The string can be prefixed with a lowercase e (e"string\n") to mark the string as
|
<para>The string can be prefixed with a lowercase e (e"string\n") to mark the string as
|
||||||
<ulink url="https://en.wikipedia.org/wiki/Escape_sequences_in_C#Table_of_escape_sequences">C-style escaped</ulink>.
|
<ulink url="https://en.wikipedia.org/wiki/Escape_sequences_in_C#Table_of_escape_sequences">C-style escaped</ulink>.
|
||||||
For example, e"string\n" is parsed as 7 characters: 6 lowercase letters and a newline.
|
For example, e"string\n" is parsed as 7 characters: 6 lowercase letters and a newline.
|
||||||
This can be useful for writting special characters when a kernel driver requires them.</para>
|
This can be useful for writing special characters when a kernel driver requires them.</para>
|
||||||
|
|
||||||
<para>Please note that <constant>NUL</constant> is not allowed in either string variant.</para>
|
<para>Please note that <constant>NUL</constant> is not allowed in either string variant.</para>
|
||||||
</refsect2>
|
</refsect2>
|
||||||
|
|
|
@ -3438,7 +3438,7 @@ endif
|
||||||
|
|
||||||
fuzzer_exes = []
|
fuzzer_exes = []
|
||||||
|
|
||||||
if get_option('tests') != 'false'
|
if fuzz_tests or fuzzer_build
|
||||||
foreach tuple : fuzzers
|
foreach tuple : fuzzers
|
||||||
sources = tuple[0]
|
sources = tuple[0]
|
||||||
link_with = tuple[1].length() > 0 ? tuple[1] : [libshared]
|
link_with = tuple[1].length() > 0 ? tuple[1] : [libshared]
|
||||||
|
@ -3560,7 +3560,7 @@ foreach tuple : sanitizers
|
||||||
if name != prev
|
if name != prev
|
||||||
if want_tests == 'false'
|
if want_tests == 'false'
|
||||||
message('Not compiling @0@ because tests is set to false'.format(name))
|
message('Not compiling @0@ because tests is set to false'.format(name))
|
||||||
elif slow_tests or fuzz_tests
|
elif fuzz_tests
|
||||||
exe = custom_target(
|
exe = custom_target(
|
||||||
name,
|
name,
|
||||||
output : name,
|
output : name,
|
||||||
|
@ -3570,12 +3570,12 @@ foreach tuple : sanitizers
|
||||||
'@OUTPUT@'],
|
'@OUTPUT@'],
|
||||||
build_by_default : true)
|
build_by_default : true)
|
||||||
else
|
else
|
||||||
message('Not compiling @0@ because slow-tests/fuzz-tests is set to false'.format(name))
|
message('Not compiling @0@ because fuzz-tests is set to false'.format(name))
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
prev = name
|
prev = name
|
||||||
|
|
||||||
if want_tests != 'false' and (slow_tests or fuzz_tests)
|
if fuzz_tests
|
||||||
test('@0@:@1@:@2@'.format(b, c, sanitizer),
|
test('@0@:@1@:@2@'.format(b, c, sanitizer),
|
||||||
env,
|
env,
|
||||||
env : ['UBSAN_OPTIONS=print_stacktrace=1:print_summary=1:halt_on_error=1'],
|
env : ['UBSAN_OPTIONS=print_stacktrace=1:print_summary=1:halt_on_error=1'],
|
||||||
|
|
|
@ -86,7 +86,7 @@ EOF
|
||||||
# disable autopkgtests which are not for upstream
|
# disable autopkgtests which are not for upstream
|
||||||
sed -i '/# NOUPSTREAM/ q' debian/tests/control
|
sed -i '/# NOUPSTREAM/ q' debian/tests/control
|
||||||
# enable more unit tests
|
# enable more unit tests
|
||||||
sed -i '/^CONFFLAGS =/ s/=/= --werror -Dtests=unsafe -Dsplit-usr=true -Dslow-tests=true -Dman=true /' debian/rules
|
sed -i '/^CONFFLAGS =/ s/=/= --werror -Dtests=unsafe -Dsplit-usr=true -Dslow-tests=true -Dfuzz-tests=true -Dman=true /' debian/rules
|
||||||
# no orig tarball
|
# no orig tarball
|
||||||
echo '1.0' > debian/source/format
|
echo '1.0' > debian/source/format
|
||||||
|
|
||||||
|
|
|
@ -1875,9 +1875,8 @@ int cg_mask_supported(CGroupMask *ret) {
|
||||||
if (r > 0) {
|
if (r > 0) {
|
||||||
_cleanup_free_ char *root = NULL, *controllers = NULL, *path = NULL;
|
_cleanup_free_ char *root = NULL, *controllers = NULL, *path = NULL;
|
||||||
|
|
||||||
/* In the unified hierarchy we can read the supported
|
/* In the unified hierarchy we can read the supported and accessible controllers from
|
||||||
* and accessible controllers from a the top-level
|
* the top-level cgroup attribute */
|
||||||
* cgroup attribute */
|
|
||||||
|
|
||||||
r = cg_get_root_path(&root);
|
r = cg_get_root_path(&root);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
|
|
|
@ -810,7 +810,7 @@ int chase_symlinks(const char *path, const char *original_root, unsigned flags,
|
||||||
*
|
*
|
||||||
* 3. With CHASE_STEP: in this case only a single step of the normalization is executed, i.e. only the first
|
* 3. With CHASE_STEP: in this case only a single step of the normalization is executed, i.e. only the first
|
||||||
* symlink or ".." component of the path is resolved, and the resulting path is returned. This is useful if
|
* symlink or ".." component of the path is resolved, and the resulting path is returned. This is useful if
|
||||||
* a caller wants to trace the a path through the file system verbosely. Returns < 0 on error, > 0 if the
|
* a caller wants to trace the path through the file system verbosely. Returns < 0 on error, > 0 if the
|
||||||
* path is fully normalized, and == 0 for each normalization step. This may be combined with
|
* path is fully normalized, and == 0 for each normalization step. This may be combined with
|
||||||
* CHASE_NONEXISTENT, in which case 1 is returned when a component is not found.
|
* CHASE_NONEXISTENT, in which case 1 is returned when a component is not found.
|
||||||
*
|
*
|
||||||
|
|
|
@ -104,10 +104,6 @@ static void test_oomd_cgroup_context_acquire_and_insert(void) {
|
||||||
assert_se(oomd_cgroup_context_acquire(cgroup, &ctx) == 0);
|
assert_se(oomd_cgroup_context_acquire(cgroup, &ctx) == 0);
|
||||||
|
|
||||||
assert_se(streq(ctx->path, cgroup));
|
assert_se(streq(ctx->path, cgroup));
|
||||||
assert_se(ctx->memory_pressure.avg10 == 0);
|
|
||||||
assert_se(ctx->memory_pressure.avg60 == 0);
|
|
||||||
assert_se(ctx->memory_pressure.avg300 == 0);
|
|
||||||
assert_se(ctx->memory_pressure.total == 0);
|
|
||||||
assert_se(ctx->current_memory_usage > 0);
|
assert_se(ctx->current_memory_usage > 0);
|
||||||
assert_se(ctx->memory_min == 0);
|
assert_se(ctx->memory_min == 0);
|
||||||
assert_se(ctx->memory_low == 0);
|
assert_se(ctx->memory_low == 0);
|
||||||
|
|
|
@ -1380,7 +1380,7 @@ static int nsec3_hashed_domain_make(DnsResourceRecord *nsec3, const char *domain
|
||||||
* matches the wildcard domain.
|
* matches the wildcard domain.
|
||||||
*
|
*
|
||||||
* Based on this we can prove either the existence of the record in @key, or NXDOMAIN or NODATA, or
|
* Based on this we can prove either the existence of the record in @key, or NXDOMAIN or NODATA, or
|
||||||
* that there is no proof either way. The latter is the case if a the proof of non-existence of a given
|
* that there is no proof either way. The latter is the case if a proof of non-existence of a given
|
||||||
* name uses an NSEC3 record with the opt-out bit set. Lastly, if we are given insufficient NSEC3 records
|
* name uses an NSEC3 record with the opt-out bit set. Lastly, if we are given insufficient NSEC3 records
|
||||||
* to conclude anything we indicate this by returning NO_RR. */
|
* to conclude anything we indicate this by returning NO_RR. */
|
||||||
static int dnssec_test_nsec3(DnsAnswer *answer, DnsResourceKey *key, DnssecNsecResult *result, bool *authenticated, uint32_t *ttl) {
|
static int dnssec_test_nsec3(DnsAnswer *answer, DnsResourceKey *key, DnssecNsecResult *result, bool *authenticated, uint32_t *ttl) {
|
||||||
|
|
|
@ -2117,7 +2117,7 @@ int dns_transaction_request_dnssec_keys(DnsTransaction *t) {
|
||||||
return r;
|
return r;
|
||||||
if (r == 0) {
|
if (r == 0) {
|
||||||
/* Hmm, so this SOA RR doesn't match our original question. In this case, maybe this is
|
/* Hmm, so this SOA RR doesn't match our original question. In this case, maybe this is
|
||||||
* a negative reply, and we need the a SOA RR's TTL in order to cache a negative entry?
|
* a negative reply, and we need the SOA RR's TTL in order to cache a negative entry?
|
||||||
* If so, we need to validate it, too. */
|
* If so, we need to validate it, too. */
|
||||||
|
|
||||||
r = dns_answer_match_key(t->answer, t->key, NULL);
|
r = dns_answer_match_key(t->answer, t->key, NULL);
|
||||||
|
|
|
@ -35,7 +35,7 @@ typedef enum ConfigParseFlags {
|
||||||
/* Prototype for a parser for a specific configuration setting */
|
/* Prototype for a parser for a specific configuration setting */
|
||||||
typedef int (*ConfigParserCallback)(CONFIG_PARSER_ARGUMENTS);
|
typedef int (*ConfigParserCallback)(CONFIG_PARSER_ARGUMENTS);
|
||||||
|
|
||||||
/* A macro declaring the a function prototype, following the typedef above, simply because it's so cumbersomely long
|
/* A macro declaring a function prototype, following the typedef above, simply because it's so cumbersomely long
|
||||||
* otherwise. (And current emacs gets irritatingly slow when editing files that contain lots of very long function
|
* otherwise. (And current emacs gets irritatingly slow when editing files that contain lots of very long function
|
||||||
* prototypes on the same screen…) */
|
* prototypes on the same screen…) */
|
||||||
#define CONFIG_PARSER_PROTOTYPE(name) int name(CONFIG_PARSER_ARGUMENTS)
|
#define CONFIG_PARSER_PROTOTYPE(name) int name(CONFIG_PARSER_ARGUMENTS)
|
||||||
|
|
|
@ -2062,7 +2062,7 @@ bool user_record_compatible(UserRecord *a, UserRecord *b) {
|
||||||
assert(a);
|
assert(a);
|
||||||
assert(b);
|
assert(b);
|
||||||
|
|
||||||
/* If either lacks a the regular section, we can't really decide, let's hence say they are
|
/* If either lacks the regular section, we can't really decide, let's hence say they are
|
||||||
* incompatible. */
|
* incompatible. */
|
||||||
if (!(a->mask & b->mask & USER_RECORD_REGULAR))
|
if (!(a->mask & b->mask & USER_RECORD_REGULAR))
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -90,6 +90,7 @@ static int get_unit_list_recursive(
|
||||||
|
|
||||||
static int output_units_list(const UnitInfo *unit_infos, unsigned c) {
|
static int output_units_list(const UnitInfo *unit_infos, unsigned c) {
|
||||||
_cleanup_(table_unrefp) Table *table = NULL;
|
_cleanup_(table_unrefp) Table *table = NULL;
|
||||||
|
unsigned job_count = 0;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
table = table_new("", "unit", "load", "active", "sub", "job", "description");
|
table = table_new("", "unit", "load", "active", "sub", "job", "description");
|
||||||
|
@ -108,7 +109,6 @@ static int output_units_list(const UnitInfo *unit_infos, unsigned c) {
|
||||||
|
|
||||||
(void) table_set_empty_string(table, "-");
|
(void) table_set_empty_string(table, "-");
|
||||||
|
|
||||||
int job_count = 0;
|
|
||||||
for (const UnitInfo *u = unit_infos; unit_infos && u < unit_infos + c; u++) {
|
for (const UnitInfo *u = unit_infos; unit_infos && u < unit_infos + c; u++) {
|
||||||
_cleanup_free_ char *j = NULL;
|
_cleanup_free_ char *j = NULL;
|
||||||
const char *on_underline = "", *on_loaded = "", *on_active = "";
|
const char *on_underline = "", *on_loaded = "", *on_active = "";
|
||||||
|
@ -156,7 +156,7 @@ static int output_units_list(const UnitInfo *unit_infos, unsigned c) {
|
||||||
TABLE_STRING, u->sub_state,
|
TABLE_STRING, u->sub_state,
|
||||||
TABLE_SET_BOTH_COLORS, on_active,
|
TABLE_SET_BOTH_COLORS, on_active,
|
||||||
TABLE_STRING, u->job_id ? u->job_type: "",
|
TABLE_STRING, u->job_id ? u->job_type: "",
|
||||||
TABLE_SET_BOTH_COLORS, u->job_id ? on_underline : "",
|
TABLE_SET_BOTH_COLORS, on_underline,
|
||||||
TABLE_STRING, u->description,
|
TABLE_STRING, u->description,
|
||||||
TABLE_SET_BOTH_COLORS, on_underline);
|
TABLE_SET_BOTH_COLORS, on_underline);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
|
@ -186,7 +186,8 @@ static int output_units_list(const UnitInfo *unit_infos, unsigned c) {
|
||||||
"LOAD = Reflects whether the unit definition was properly loaded.\n"
|
"LOAD = Reflects whether the unit definition was properly loaded.\n"
|
||||||
"ACTIVE = The high-level unit activation state, i.e. generalization of SUB.\n"
|
"ACTIVE = The high-level unit activation state, i.e. generalization of SUB.\n"
|
||||||
"SUB = The low-level unit activation state, values depend on unit type.");
|
"SUB = The low-level unit activation state, values depend on unit type.");
|
||||||
puts(job_count ? "JOB = Pending job for the unit.\n" : "");
|
if (job_count > 0)
|
||||||
|
puts("JOB = Pending job for the unit.\n");
|
||||||
on = ansi_highlight();
|
on = ansi_highlight();
|
||||||
off = ansi_normal();
|
off = ansi_normal();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -58,10 +58,10 @@ if add_languages('cpp', required : false)
|
||||||
opts += [['c++'],
|
opts += [['c++'],
|
||||||
['c++', '-std=c++98'],
|
['c++', '-std=c++98'],
|
||||||
['c++', '-std=c++11']]
|
['c++', '-std=c++11']]
|
||||||
if cc.has_argument('-std=c++14')
|
if cxx.has_argument('-std=c++14')
|
||||||
opts += [['c++', '-std=c++14']]
|
opts += [['c++', '-std=c++14']]
|
||||||
endif
|
endif
|
||||||
if cc.has_argument('-std=c++17')
|
if cxx.has_argument('-std=c++17')
|
||||||
opts += [['c++', '-std=c++17']]
|
opts += [['c++', '-std=c++17']]
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -960,7 +960,7 @@ static int copy_all_tags(sd_device *d, sd_device *s) {
|
||||||
if (!s)
|
if (!s)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
for (tag = sd_device_get_tag_first(s); tag; tag = sd_device_get_tag_next(s)) {
|
FOREACH_DEVICE_TAG(s, tag) {
|
||||||
r = device_add_tag(d, tag, false);
|
r = device_add_tag(d, tag, false);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
|
|
|
@ -15,7 +15,7 @@ sanitize_address_undefined = custom_target(
|
||||||
project_source_root,
|
project_source_root,
|
||||||
'@OUTPUT@',
|
'@OUTPUT@',
|
||||||
'fuzzers',
|
'fuzzers',
|
||||||
'-Db_lundef=false -Db_sanitize=address,undefined @0@'.format(optimization),
|
'-Dfuzz-tests=true -Db_lundef=false -Db_sanitize=address,undefined @0@'.format(optimization),
|
||||||
' '.join(cc.cmd_array()),
|
' '.join(cc.cmd_array()),
|
||||||
cxx_cmd])
|
cxx_cmd])
|
||||||
|
|
||||||
|
|
|
@ -415,7 +415,7 @@ KERNEL=="ttyACM0", SYMLINK+="modem"
|
||||||
EOF
|
EOF
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
desc => "sustitution of sysfs value (%s{file})",
|
desc => "substitution of sysfs value (%s{file})",
|
||||||
devices => [
|
devices => [
|
||||||
{
|
{
|
||||||
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
|
devpath => "/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda",
|
||||||
|
|
|
@ -61,7 +61,7 @@ for phase in "${PHASES[@]}"; do
|
||||||
ENV_VARS="-e CC=clang -e CXX=clang++"
|
ENV_VARS="-e CC=clang -e CXX=clang++"
|
||||||
MESON_ARGS="--optimization=1"
|
MESON_ARGS="--optimization=1"
|
||||||
fi
|
fi
|
||||||
docker exec $ENV_VARS -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dsplit-usr=true -Dman=true $MESON_ARGS build
|
docker exec $ENV_VARS -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true -Dsplit-usr=true -Dman=true $MESON_ARGS build
|
||||||
$DOCKER_EXEC ninja -v -C build
|
$DOCKER_EXEC ninja -v -C build
|
||||||
docker exec -e "TRAVIS=$TRAVIS" -it $CONT_NAME ninja -C build test
|
docker exec -e "TRAVIS=$TRAVIS" -it $CONT_NAME ninja -C build test
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -83,12 +83,12 @@ for phase in "${PHASES[@]}"; do
|
||||||
RUN)
|
RUN)
|
||||||
info "Run phase"
|
info "Run phase"
|
||||||
# Build systemd
|
# Build systemd
|
||||||
$DOCKER_EXEC meson --werror -Dtests=unsafe -Dslow-tests=true build
|
$DOCKER_EXEC meson --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true build
|
||||||
$DOCKER_EXEC ninja -v -C build
|
$DOCKER_EXEC ninja -v -C build
|
||||||
$DOCKER_EXEC ninja -C build test
|
$DOCKER_EXEC ninja -C build test
|
||||||
;;
|
;;
|
||||||
RUN_CLANG)
|
RUN_CLANG)
|
||||||
docker exec -e CC=clang -e CXX=clang++ -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dman=true build
|
docker exec -e CC=clang -e CXX=clang++ -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true -Dman=true build
|
||||||
$DOCKER_EXEC ninja -v -C build
|
$DOCKER_EXEC ninja -v -C build
|
||||||
$DOCKER_EXEC ninja -C build test
|
$DOCKER_EXEC ninja -C build test
|
||||||
;;
|
;;
|
||||||
|
|
Loading…
Reference in New Issue