Browse Source

Prep v234: Update root build files to upstream.

tags/v234.2
Sven Eden 3 years ago
parent
commit
ec82d02053
11 changed files with 430 additions and 52 deletions
  1. +5
    -1
      .dir-locals.el
  2. +9
    -1
      .gitignore
  3. +21
    -0
      .mailmap
  4. +5
    -0
      Makefile-man.am
  5. +57
    -42
      Makefile.am
  6. +135
    -2
      NEWS
  7. +9
    -0
      TODO
  8. +9
    -0
      cb/elogind.cbp
  9. +34
    -6
      configure.ac
  10. +81
    -0
      src/libelogind/sd-bus/test-bus-vtable.c
  11. +65
    -0
      src/test/test-random-util.c

+ 5
- 1
.dir-locals.el View File

@@ -20,4 +20,8 @@
(eval . (c-set-offset 'arglist-intro '++))
(eval . (c-set-offset 'arglist-close 0))))
(nxml-mode . ((nxml-child-indent . 2)
(fill-column . 119))))
(fill-column . 119)))
(meson-mode . ((meson-indent-basic . 8)))
(sh-mode . ((sh-basic-offset . 8)
(sh-indentation . 8)))
(awk-mode . ((c-basic-offset . 8))))

+ 9
- 1
.gitignore View File

@@ -28,7 +28,7 @@
/TAGS
/ata_id
/bootctl
/build-aux
/build*
/busctl
/cdrom_id
/collect
@@ -160,6 +160,8 @@
/test-bus-server
/test-bus-signature
/test-bus-track
/test-bus-vtable
/test-bus-vtable-cc
/test-bus-zero-copy
/test-calendarspec
/test-cap-list
@@ -265,13 +267,16 @@
/test-process-util
/test-pty
/test-qcow2
/test-random-util
/test-ratelimit
/test-replace-var
/test-resolve
/test-resolve-tables
/test-resolved-packet
/test-ring
/test-rlimit-util
/test-sched-prio
/test-sd-dhcp-lease
/test-seccomp
/test-selinux
/test-set
@@ -290,6 +295,7 @@
/test-tables
/test-terminal-util
/test-time
/test-timesync
/test-tmpfiles
/test-udev
/test-uid-range
@@ -355,3 +361,5 @@ patches/
/coccinelle
mask_po_files.sh
cccc
*.v234
*.v234.diff

+ 21
- 0
.mailmap View File

@@ -102,3 +102,24 @@ Paolo Giangrandi <paolo@luccalug.it>
Karl Kraus <karl.kraus@tum.de> <laqueray@gmail.com>
Tibor Nagy <xnagytibor@gmail.com>
Stuart McLaren <stuart.mclaren@hp.com>
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> <glaubitz@suse.com>
Sjoerd Simons <sjoerd.simons@collabora.co.uk>
Neil Brown <neil@brown.name>
Michal Suchanek <msuchanek@suse.de> <hramrach@gmail.com>
Michal Suchanek <msuchanek@suse.de>
Bastien Nocera <hadess@hadess.net> <hadess@users.noreply.github.com>
Umut Tezduyar Lindskog <umut@tezduyar.com>
Alexander Kurtz <alexander@kurtz.be>
Piotr Szydełko <wiertel@users.sourceforge.net>
Łukasz Stelmach <l.stelmach@samsung.com> <stlman@poczta.fm>
Krzysztof Jackiewicz <k.jackiewicz@samsung.com> <kjackiewicz@users.noreply.github.com>
Marcus Cooper <marcusc@axis.com> <codekipper@gmail.com>
Insun Pyo <insun.pyo@samsung.com> <iplayinsun@gmail.com>
Ted Wood <ted.l.wood@gmail.com>
Ted Wood <ted@mailchimp.com>
Anthony Parsons <flussence@users.noreply.github.com>
Federico Di Pierro <nierro92@gmail.com>
Josef Andersson <josef.andersson@fripost.org>
Josef Andersson <l10nl18nsweja@gmail.com>
Hendrik Westerberg <hendrik@gestorf.com>

+ 5
- 0
Makefile-man.am View File

@@ -133,6 +133,7 @@ MANPAGES_ALIAS += \
man/sd_bus_message_append_array_iovec.3 \
man/sd_bus_message_append_array_memfd.3 \
man/sd_bus_message_append_array_space.3 \
man/sd_bus_message_appendv.3 \
man/sd_bus_negotiate_creds.3 \
man/sd_bus_negotiate_timestamp.3 \
man/sd_bus_open.3 \
@@ -289,6 +290,7 @@ man/sd_bus_error_setf.3: man/sd_bus_error.3
man/sd_bus_message_append_array_iovec.3: man/sd_bus_message_append_array.3
man/sd_bus_message_append_array_memfd.3: man/sd_bus_message_append_array.3
man/sd_bus_message_append_array_space.3: man/sd_bus_message_append_array.3
man/sd_bus_message_appendv.3: man/sd_bus_message_append.3
man/sd_bus_negotiate_creds.3: man/sd_bus_negotiate_fds.3
man/sd_bus_negotiate_timestamp.3: man/sd_bus_negotiate_fds.3
man/sd_bus_open.3: man/sd_bus_default.3
@@ -591,6 +593,9 @@ man/sd_bus_message_append_array_memfd.html: man/sd_bus_message_append_array.html
man/sd_bus_message_append_array_space.html: man/sd_bus_message_append_array.html
$(html-alias)

man/sd_bus_message_appendv.html: man/sd_bus_message_append.html
$(html-alias)

man/sd_bus_negotiate_creds.html: man/sd_bus_negotiate_fds.html
$(html-alias)



+ 57
- 42
Makefile.am View File

@@ -38,9 +38,9 @@ SUBDIRS = . po
# Keep the test-suite.log
.PRECIOUS: $(TEST_SUITE_LOG) Makefile

LIBELOGIND_CURRENT=18
LIBELOGIND_REVISION=3
LIBELOGIND_AGE=18
LIBELOGIND_CURRENT=19
LIBELOGIND_REVISION=0
LIBELOGIND_AGE=19

# Dirs of external packages
dbuspolicydir=@dbuspolicydir@
@@ -260,9 +260,11 @@ man/index.html: man/elogind.index.html
$(AM_V_LN)$(LN_S) -f elogind.index.html $@

if HAVE_PYTHON
if ENABLE_MANPAGES
noinst_DATA += \
man/index.html
endif
endif

CLEANFILES += \
man/index.html
@@ -509,7 +511,6 @@ libelogind_shared_la_CFLAGS = \
$(libelogind_journal_internal_la_CFLAGS) \
$(libudev_internal_la_CFLAGS) \
$(ACL_CFLAGS) \
$(LIBIDN_CFLAGS) \
$(SECCOMP_CFLAGS) \
-fvisibility=default

@@ -520,7 +521,6 @@ libelogind_shared_la_LIBADD = \
$(libelogind_internal_la_LIBADD) \
$(UDEV_LIBS) \
$(ACL_LIBS) \
$(LIBIDN_LIBS) \
$(SECCOMP_LIBS)

libelogind_shared_la_LDFLAGS = \
@@ -600,6 +600,7 @@ tests += \
test-list \
test-unaligned \
test-conf-files \
test-random-util \
test-conf-parser \
test-locale-util \
test-copy \
@@ -640,6 +641,12 @@ test_copy_SOURCES = \
test_copy_LDADD = \
libshared.la

test_random_util_SOURCES = \
src/test/test-random-util.c

test_random_util_LDADD = \
libelogind-shared.la

test_util_SOURCES = \
src/test/test-util.c

@@ -751,9 +758,6 @@ test_selinux_LDADD = \
test_sizeof_SOURCES = \
src/test/test-sizeof.c

test_sizeof_LDADD = \
libelogind-shared.la

BUILT_SOURCES += \
src/test/test-hashmap-ordered.c

@@ -972,7 +976,6 @@ noinst_LTLIBRARIES += \

EXTRA_DIST += \
src/libelogind/libelogind.pc.in \
src/libelogind/sd-bus/DIFFERENCES \
src/libelogind/sd-bus/GVARIANT-SERIALIZATION

libelogind_la_SOURCES =
@@ -1017,6 +1020,7 @@ tests += \
test-bus-server \
test-bus-match \
test-bus-introspect \
test-bus-vtable \
test-bus-error \
test-event

@@ -1032,6 +1036,12 @@ test_bus_server_SOURCES = \
test_bus_server_LDADD = \
libelogind-shared.la

test_bus_vtable_SOURCES = \
src/libelogind/sd-bus/test-bus-vtable.c

test_bus_vtable_LDADD = \
libelogind-shared.la

test_bus_error_SOURCES = \
src/libelogind/sd-bus/test-bus-error.c

@@ -1197,10 +1207,10 @@ test_login_tables_LDADD = \
libelogind-core.la

manual_tests += \
test-login \
test-inhibit

tests += \
test-login \
test-login-tables \
test-login-shared

@@ -1284,15 +1294,13 @@ substitutions = \
'|exec_prefix=$(exec_prefix)|' \
'|libdir=$(libdir)|' \
'|includedir=$(includedir)|' \
'|VERSION=$(VERSION)|' \
'|rootprefix=$(rootprefix)|' \
'|udevlibexecdir=$(udevlibexecdir)|' \
'|KILL=$(KILL)|' \
'|MKDIR_P=$(MKDIR_P)|' \
'|KILL_USER_PROCESSES=$(KILL_USER_PROCESSES)|' \
'|systemuidmax=$(SYSTEM_UID_MAX)|' \
'|systemgidmax=$(SYSTEM_GID_MAX)|' \
'|TTY_GID=$(TTY_GID)|'
'|systemgidmax=$(SYSTEM_GID_MAX)|'

SED_PROCESS = \
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
@@ -1351,8 +1359,10 @@ if ENABLE_POLKIT
nodist_polkitpolicy_DATA = \
$(polkitpolicy_files)
polkitrules_DATA = $(polkitrules_files)
if ENABLE_POLKIT_PKLA
polkitpkla_DATA = $(polkitpkla_files)
endif
endif

EXTRA_DIST += \
$(polkitpolicy_in_files)
@@ -1375,7 +1385,7 @@ XSLTPROC_FLAGS = \
--stringparam funcsynopsis.style ansi \
--stringparam man.authors.section.enabled 0 \
--stringparam man.copyright.section.enabled 0 \
--stringparam elogind.version $(VERSION) \
--stringparam elogind.version $(PACKAGE_VERSION) \
--path '$(builddir)/man:$(srcdir)/man'

XSLTPROC_PROCESS_MAN = \
@@ -1465,38 +1475,43 @@ dist:

.PHONY: git-tag
git-tag:
git tag -s "v$(VERSION)" -m "elogind $(VERSION)"
git tag -s "v$(PACKAGE_VERSION)" -m "elogind $(PACKAGE_VERSION)"

.PHONY: git-tar
git-tar:
$(AM_V_at)git archive --format=tar --prefix=elogind-$(VERSION)-raw/ HEAD | \
$(AM_V_at)git archive --format=tar --prefix=elogind-$(PACKAGE_VERSION)-raw/ HEAD | \
(cd /var/tmp/ && tar xf -)
$(AM_V_GEN)(cd /var/tmp && rm -rf elogind-$(VERSION) && $(MKDIR_P) elogind-$(VERSION) && \
for f in `find elogind-$(VERSION)-raw/ -type f | cut -d '/' -f 2-` ; do \
$(MKDIR_P) elogind-$(VERSION)/`dirname $$f` ; \
$(AWK) 'BEGIN { i=0;e=0 } \
/^#if\s+0.*elogind.*$$/ { i=1;next } \
/^#else\s*$$/ { \
{ if ( i==1 ) e=1; else print }{next} \
} \
/^#endif\s*\/\/\s*0\s*$$/ { \
{ if ( i==1 ) { i=0;e=0 } else print }{next} \
} \
/^\s*\/\/\/.*elogind.*$$/{ next } \
/^\s*\/\/\s*#include.+$$/{ next } \
{ if ( (i==0) || (e==1) ) print }' \
elogind-$(VERSION)-raw/$$f \
> elogind-$(VERSION)/$$f ; \
chmod `stat -c '%a' elogind-$(VERSION)-raw/$$f` \
elogind-$(VERSION)/$$f ; \
done ; \
for l in `find elogind-$(VERSION)-raw/ -type l | cut -d '/' -f 2-` ; do \
$(MKDIR_P) elogind-$(VERSION)/`dirname $$l` ; \
cp -P elogind-$(VERSION)-raw/$$l elogind-$(VERSION)/$$l ; \
done ; \
tar czf elogind-$(VERSION).tar.gz elogind-$(VERSION) ; \
rm -rf elogind-$(VERSION) elogind-$(VERSION)-raw) ; \
$(AM_V_at)mv /var/tmp/elogind-$(VERSION).tar.gz ./
$(AM_V_GEN)(cd /var/tmp && \
rm -rf elogind-$(PACKAGE_VERSION) && \
$(MKDIR_P) elogind-$(PACKAGE_VERSION) && \
for f in `find elogind-$(PACKAGE_VERSION)-raw/ -type f | \
cut -d '/' -f 2-` ; do \
$(MKDIR_P) elogind-$(PACKAGE_VERSION)/`dirname $$f` ; \
$(AWK) 'BEGIN { i=0;e=0 } \
/^#if\s+0.*elogind.*$$/ { i=1;next } \
/^#else\s*$$/ { \
{ if ( i==1 ) e=1; else print }{next} \
} \
/^#endif\s*\/\/\s*0\s*$$/ { \
{ if ( i==1 ) { i=0;e=0 } else print }{next} \
} \
/^\s*\/\/\/.*elogind.*$$/{ next } \
/^\s*\/\/\s*#include.+$$/{ next } \
{ if ( (i==0) || (e==1) ) print }' \
elogind-$(PACKAGE_VERSION)-raw/$$f \
> elogind-$(PACKAGE_VERSION)/$$f ; \
chmod `stat -c '%a' elogind-$(PACKAGE_VERSION)-raw/$$f` \
elogind-$(PACKAGE_VERSION)/$$f ; \
done ; \
for l in `find elogind-$(PACKAGE_VERSION)-raw/ -type l | \
cut -d '/' -f 2-` ; do \
$(MKDIR_P) elogind-$(PACKAGE_VERSION)/`dirname $$l` ; \
cp -P elogind-$(PACKAGE_VERSION)-raw/$$l \
elogind-$(PACKAGE_VERSION)/$$l ; \
done ; \
tar czf elogind-$(PACKAGE_VERSION).tar.gz elogind-$(PACKAGE_VERSION) ; \
rm -rf elogind-$(PACKAGE_VERSION) elogind-$(PACKAGE_VERSION)-raw) ; \
$(AM_V_at)mv /var/tmp/elogind-$(PACKAGE_VERSION).tar.gz ./

.PHONY: install-tree
install-tree: all


+ 135
- 2
NEWS View File

@@ -1,7 +1,140 @@
systemd System and Service Manager

CHANGES WITH 234:

* Meson is now supported as build system in addition to Automake. It is
our plan to remove Automake in one of our next releases, so that
Meson becomes our exclusive build system. Hence, please start using
the Meson build system in your downstream packaging. There's plenty
of documentation around how to use Meson, the extremely brief
summary:

./autogen.sh && ./configure && make && sudo make install

becomes:

meson build && ninja -C build && sudo ninja -C build install

* Unit files gained support for a new JobRunningTimeoutUSec= setting,
which permits configuring a timeout on the time a job is
running. This is particularly useful for setting timeouts on jobs for
.device units.

* Unit files gained two new options ConditionUser= and ConditionGroup=
for conditionalizing units based on the identity of the user/group
running a systemd user instance.

* systemd-networkd now understands a new FlowLabel= setting in the
[VXLAN] section of .network files, as well as a Priority= in
[Bridge], GVRP= + MVRP= + LooseBinding= + ReorderHeader= in [VLAN]
and GatewayOnlink= + IPv6Preference= + Protocol= in [Route]. It also
gained support for configuration of GENEVE links, and IPv6 address
labels. The [Network] section gained the new IPv6ProxyNDP= setting.

* .link files now understand a new Port= setting.

* systemd-networkd's DHCP support gained support for DHCP option 119
(domain search list).

* systemd-networkd gained support for serving IPv6 address ranges using
the Router Advertisment protocol. The new .network configuration
section [IPv6Prefix] may be used to configure the ranges to
serve. This is implemented based on a new, minimal, native server
implementation of RA.

* journalctl's --output= switch gained support for a new parameter
"short-iso-precise" for a mode where timestamps are shown as precise
ISO date values.

* systemd-udevd's "net_id" builtin may now generate stable network
interface names from IBM PowerVM VIO devices as well as ACPI platform
devices.

* MulticastDNS support in systemd-resolved may now be explicitly
enabled/disabled using the new MulticastDNS= configuration file
option.

* systemd-resolved may now optionally use libidn2 instead of the libidn
for processing internationalized domain names. Support for libidn2
should be considered experimental and should not be enabled by
default yet.

* "machinectl pull-tar" and related call may now do verification of
downloaded images using SUSE-style .sha256 checksum files in addition
to the already existing support for validating using Ubuntu-style
SHA256SUMS files.

* sd-bus gained support for a new sd_bus_message_appendv() call which
is va_list equivalent of sd_bus_message_append().

* sd-boot gained support for validating images using SHIM/MOK.

* The SMACK code learnt support for "onlycap".

* systemd-mount --umount is now much smarter in figuring out how to
properly unmount a device given its mount or device path.

* The code to call libnss_dns as a fallback from libnss_resolve when
the communication with systemd-resolved fails was removed. This
fallback was redundant and interfered with the [!UNAVAIL=return]
suffix. See nss-resolve(8) for the recommended configuration.

* systemd-logind may now be restarted without losing state. It stores
the file descriptors for devices it manages in the system manager
using the FDSTORE= mechanism. Please note that further changes in
other components may be required to make use of this (for example
Xorg has code to listen for stops of systemd-logind and terminate
itself when logind is stopped or restarted, in order to avoid using
stale file descriptors for graphical devices, which is now
counterproductive and must be reverted in order for restarts of
systemd-logind to be safe. See
https://cgit.freedesktop.org/xorg/xserver/commit/?id=dc48bd653c7e101.)

* All kernel install plugins are called with the environment variable
KERNEL_INSTALL_MACHINE_ID which is set to the machine ID given by
/etc/machine-id. If the file is missing or empty, the variable is
empty and BOOT_DIR_ABS is the path of a temporary directory which is
removed after all the plugins exit. So, if KERNEL_INSTALL_MACHINE_ID
is empty, all plugins should not put anything in BOOT_DIR_ABS.

Contributions from: Adrian Heine né Lang, Aggelos Avgerinos, Alexander
Kurtz, Alexandros Frantzis, Alexey Brodkin, Alex Lu, Amir Pakdel, Amir
Yalon, Anchor Cat, Anthony Parsons, Bastien Nocera, Benjamin Gilbert,
Benjamin Robin, Boucman, Charles Plessy, Chris Chiu, Chris Lamb,
Christian Brauner, Christian Hesse, Colin Walters, Daniel Drake,
Danielle Church, Daniel Molkentin, Daniel Rusek, Daniel Wang, Davide
Cavalca, David Herrmann, David Michael, Dax Kelson, Dimitri John
Ledkov, Djalal Harouni, Dušan Kazik, Elias Probst, Evgeny Vereshchagin,
Federico Di Pierro, Felipe Sateler, Felix Zhang, Franck Bui, Gary
Tierney, George McCollister, Giedrius Statkevičius, Hans de Goede,
hecke, Hendrik Westerberg, Hristo Venev, Ian Wienand, Insun Pyo, Ivan
Shapovalov, James Cowgill, James Hemsing, Janne Heß, Jan Synacek, Jason
Reeder, João Paulo Rechi Vita, John Paul Adrian Glaubitz, Jörg
Thalheim, Josef Andersson, Josef Gajdusek, Julian Mehne, Kai Krakow,
Krzysztof Jackiewicz, Lars Karlitski, Lennart Poettering, Lluís Gili,
Lucas Werkmeister, Lukáš Nykrýn, Łukasz Stelmach, Mantas Mikulėnas,
Marcin Bachry, Marcus Cooper, Mark Stosberg, Martin Pitt, Matija Skala,
Matt Clarkson, Matthew Garrett, Matthias Greiner, Matthijs van Duin,
Max Resch, Michael Biebl, Michal Koutný, Michal Sekletar, Michal
Soltys, Michal Suchanek, Mike Gilbert, Nate Clark, Nathaniel R. Lewis,
Neil Brown, Nikolai Kondrashov, Pascal S. de Kloe, Pat Riehecky, Patrik
Flykt, Paul Kocialkowski, Peter Hutterer, Philip Withnall, Piotr
Szydełko, Rafael Fontenelle, Ray Strode, Richard Maw, Roelf Wichertjes,
Ronny Chevalier, Sarang S. Dalal, Sjoerd Simons, slodki, Stefan
Schweter, Susant Sahani, Ted Wood, Thomas Blume, Thomas Haller, Thomas
H. P. Andersen, Timothée Ravier, Tobias Jungel, Tobias Stoeckmann, Tom
Gundersen, Tom Yan, Torstein Husebø, Umut Tezduyar Lindskog,
userwithuid, Vito Caputo, Waldemar Brodkorb, WaLyong Cho, Yu, Li-Yu,
Yusuke Nojima, Yu Watanabe, Zbigniew Jędrzejewski-Szmek, Дамјан
Георгиевски

— Berlin, 2017-07-12

CHANGES WITH 233:

* This version requires at least gperf 3.1 for building, 3.0 is not
sufficient.

* The "hybrid" control group mode has been modified to improve
compatibility with "legacy" cgroups-v1 setups. Specifically, the
"hybrid" setup of /sys/fs/cgroup is now pretty much identical to
@@ -348,7 +481,7 @@ CHANGES WITH 233:
these NTP servers officially. We still recommend downstreams to
properly register an NTP pool with the NTP pool project though.

* coredumpctl gained new new "--reverse" option for printing the list
* coredumpctl gained a new "--reverse" option for printing the list
of coredumps in reverse order.

* coredumpctl will now show additional information about truncated and
@@ -3315,7 +3448,7 @@ CHANGES WITH 216:
like Cockpit which register web clients as PAM sessions.

* timer units with at least one OnCalendar= setting will now
be started only after timer-sync.target has been
be started only after time-sync.target has been
reached. This way they will not elapse before the system
clock has been corrected by a local NTP client or
similar. This is particular useful on RTC-less embedded


+ 9
- 0
TODO View File

@@ -24,6 +24,15 @@ Janitorial Clean-ups:

Features:

* Add AddUser= setting to unit files, similar to DynamicUser=1 which however
creates a static, persistent user rather than a dynamic, transient user. We
can leverage code from sysusers.d for this.

* add some optional flag to ReadWritePaths= and friends, that has the effect
that we create the dir in question when the service is started. Example:

ReadWritePaths=:/var/lib/foobar

* sort generated hwdb files alphabetically when we import them, so that git
diffs remain minimal (in particular: the OUI databases we import are not
sorted, and not stable)


+ 9
- 0
cb/elogind.cbp View File

@@ -396,6 +396,9 @@
<Unit filename="../src/libelogind/sd-bus/test-bus-signature.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../src/libelogind/sd-bus/test-bus-vtable.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../src/libelogind/sd-daemon/sd-daemon.c">
<Option compilerVar="CC" />
</Unit>
@@ -556,6 +559,9 @@
<Option compilerVar="CC" />
</Unit>
<Unit filename="../src/shared/tests.h" />
<Unit filename="../src/shared/udev-util.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../src/shared/udev-util.h" />
<Unit filename="../src/shared/utmp-wtmp.c">
<Option compilerVar="CC" />
@@ -656,6 +662,9 @@
<Unit filename="../src/test/test-process-util.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../src/test/test-random-util.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="../src/test/test-selinux.c">
<Option compilerVar="CC" />
</Unit>


+ 34
- 6
configure.ac View File

@@ -20,7 +20,7 @@
AC_PREREQ([2.64])

AC_INIT([elogind],
[233.3],
[234],
[https://github.com/elogind/elogind/issues],
[elogind],
[https://github.com/elogind/elogind])
@@ -378,7 +378,6 @@ AC_CHECK_DECLS([
pivot_root,
name_to_handle_at,
setns,
getrandom,
renameat2,
kcmp,
keyctl,
@@ -393,6 +392,13 @@ AC_CHECK_DECLS([
#include <sched.h>
#include <string.h>
#include <linux/loop.h>
]])

AC_CHECK_DECLS([getrandom],
[AC_DEFINE([USE_SYS_RANDOM_H], [], [sys/random.h is usable])],
[AC_CHECK_DECLS([getrandom], [], [], [[
#include <sys/random.h>
]])], [[
#include <linux/random.h>
]])

@@ -410,7 +416,8 @@ AC_CHECK_DECLS([IFLA_INET6_ADDR_GEN_MODE,
IFLA_PHYS_PORT_ID,
IFLA_BOND_AD_INFO,
IFLA_VLAN_PROTOCOL,
IFLA_VXLAN_REMCSUM_NOPARTIAL,
IFLA_VXLAN_GPE,
IFLA_GENEVE_LABEL,
IFLA_IPTUN_ENCAP_DPORT,
IFLA_GRE_ENCAP_DPORT,
IFLA_BRIDGE_VLAN_INFO,
@@ -452,6 +459,16 @@ AC_ARG_WITH([udevbindir],
[with_udevbindir=$($PKG_CONFIG --variable=udevdir udev)])
AC_SUBST([udevbindir], [$with_udevbindir])

# ------------------------------------------------------------------------------
have_glib=no
AC_ARG_ENABLE(glib, AS_HELP_STRING([--disable-glib], [disable usage of glib,gobject,gio in tests]))
AS_IF([test "x$enable_glib" != "xno"], [
PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.22.0 gobject-2.0 >= 2.22.0 gio-2.0],
[AC_DEFINE(HAVE_GLIB, 1, [Define if glib,gobject,gio are available]) have_glib=yes],
[have_glib=no])
AS_IF([test "x$have_glib" = "xno" -a "x$enable_glib" = "xyes"],
[AC_MSG_ERROR([*** glib support requested but libraries not found])])])

# ------------------------------------------------------------------------------
have_utmp=yes
AC_ARG_ENABLE([utmp], AS_HELP_STRING([--disable-utmp], [disable utmp/wtmp log handling]),
@@ -459,7 +476,11 @@ AC_ARG_ENABLE([utmp], AS_HELP_STRING([--disable-utmp], [disable utmp/wtmp log ha
[xyes], [have_utmp=yes],
[xno], [have_utmp=no],
AC_MSG_ERROR(bad value ${enableval} for --enable-utmp)))
AS_IF([test "x$have_utmp" = "xyes"], [AC_DEFINE(HAVE_UTMP, 1, [Define if utmp/wtmp support is enabled])])
AS_IF([test "x$have_utmp" = "xyes"], [
AC_DEFINE(HAVE_UTMP, 1, [Define if utmp/wtmp support is enabled])
have_utmp=yes
M4_DEFINES="$M4_DEFINES -DHAVE_UTMP"],
[have_utmp=no])
AM_CONDITIONAL([HAVE_UTMP], [test "x$have_utmp" = "xyes"])

# ------------------------------------------------------------------------------
@@ -668,8 +689,14 @@ AC_ARG_ENABLE(polkit, AS_HELP_STRING([--disable-polkit], [disable PolicyKit supp
if test "x$enable_polkit" != "xno"; then
AC_DEFINE(ENABLE_POLKIT, 1, [Define if PolicyKit support is to be enabled])
have_polkit=yes

# also enable support for *.pkla files on old polkit
PKG_CHECK_MODULES(POLKIT, [ polkit-gobject-1 < 0.106 ],
[polkit_pkla=yes],
[polkit_pkla=no])
fi
AM_CONDITIONAL(ENABLE_POLKIT, [test "x$have_polkit" = "xyes"])
AM_CONDITIONAL(ENABLE_POLKIT_PKLA, [test "x$polkit_pkla" = "xyes"])

# ------------------------------------------------------------------------------
AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h valgrind/valgrind.h])
@@ -823,7 +850,7 @@ AC_CONFIG_FILES([

AC_OUTPUT
AC_MSG_RESULT([
$PACKAGE_NAME $VERSION
$PACKAGE_NAME $PACKAGE_VERSION

PAM: . . . . . . . . . . . . . . . ${have_pam}
SELinux: . . . . . . . . . . . . . ${have_selinux}
@@ -831,7 +858,8 @@ AC_MSG_RESULT([
ACL: . . . . . . . . . . . . . . . ${have_acl}
default cgroup hierarchy: . . . . ${DEFAULT_HIERARCHY}
default KillUserProcesses setting: ${KILL_USER_PROCESSES}
polkit: . . . . . . . . . . . . . ${have_polkit}
polkit: . . . . . . . . . . . . . ${have_polkit} (legacy pkla support: ${polkit_pkla})
glib: . . . . . . . . . . . . . . ${have_glib}
Python: . . . . . . . . . . . . . ${have_python}
man pages: . . . . . . . . . . . . ${have_manpages}
test coverage: . . . . . . . . . . ${have_coverage}


+ 81
- 0
src/libelogind/sd-bus/test-bus-vtable.c View File

@@ -0,0 +1,81 @@
#include <stdbool.h>
#include <stddef.h>

/* We use system assert.h here, because we don't want to keep macro.h and log.h C++ compatible */
#undef NDEBUG
#include <assert.h>
#include <errno.h>

#include "sd-bus-vtable.h"

#define DEFAULT_BUS_PATH "unix:path=/run/dbus/system_bus_socket"

struct context {
bool quit;
char *something;
char *automatic_string_property;
uint32_t automatic_integer_property;
};

static int handler(sd_bus_message *m, void *userdata, sd_bus_error *error) {
return 1;
}

static int value_handler(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error) {
return 1;
}

static int get_handler(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *reply, void *userdata, sd_bus_error *error) {
return 1;
}

static int set_handler(sd_bus *bus, const char *path, const char *interface, const char *property, sd_bus_message *value, void *userdata, sd_bus_error *error) {
return 1;
}

static const sd_bus_vtable vtable[] = {
SD_BUS_VTABLE_START(0),
SD_BUS_METHOD("AlterSomething", "s", "s", handler, 0),
SD_BUS_METHOD("Exit", "", "", handler, 0),
SD_BUS_METHOD_WITH_OFFSET("AlterSomething2", "s", "s", handler, 200, 0),
SD_BUS_METHOD_WITH_OFFSET("Exit2", "", "", handler, 200, 0),
SD_BUS_PROPERTY("Value", "s", value_handler, 10, SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE),
SD_BUS_PROPERTY("Value2", "s", value_handler, 10, SD_BUS_VTABLE_PROPERTY_EMITS_INVALIDATION),
SD_BUS_PROPERTY("Value3", "s", value_handler, 10, SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("Value4", "s", value_handler, 10, 0),
SD_BUS_PROPERTY("AnExplicitProperty", "s", NULL, offsetof(struct context, something),
SD_BUS_VTABLE_PROPERTY_EXPLICIT|SD_BUS_VTABLE_PROPERTY_EMITS_INVALIDATION),
SD_BUS_WRITABLE_PROPERTY("Something", "s", get_handler, set_handler, 0, 0),
SD_BUS_WRITABLE_PROPERTY("AutomaticStringProperty", "s", NULL, NULL,
offsetof(struct context, automatic_string_property), 0),
SD_BUS_WRITABLE_PROPERTY("AutomaticIntegerProperty", "u", NULL, NULL,
offsetof(struct context, automatic_integer_property), 0),
SD_BUS_METHOD("NoOperation", NULL, NULL, NULL, 0),
SD_BUS_SIGNAL("DummySignal", "b", 0),
SD_BUS_SIGNAL("DummySignal2", "so", 0),
SD_BUS_VTABLE_END
};

static void test_vtable(void) {
sd_bus *bus = NULL;
struct context c = {};
int r;

assert(sd_bus_new(&bus) >= 0);

assert(sd_bus_add_object_vtable(bus, NULL, "/foo", "org.freedesktop.systemd.testVtable", vtable, &c) >= 0);
assert(sd_bus_add_object_vtable(bus, NULL, "/foo", "org.freedesktop.systemd.testVtable2", vtable, &c) >= 0);

assert(sd_bus_set_address(bus, DEFAULT_BUS_PATH) >= 0);
r = sd_bus_start(bus);
assert(r == 0 || /* success */
r == -ENOENT /* dbus is inactive */ );

sd_bus_unref(bus);
}

int main(int argc, char **argv) {
test_vtable();

return 0;
}

+ 65
- 0
src/test/test-random-util.c View File

@@ -0,0 +1,65 @@
/***
This file is part of systemd.

Copyright 2017 Zbigniew Jędrzejewski-Szmek

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 <http://www.gnu.org/licenses/>.
***/

#include "hexdecoct.h"
#include "random-util.h"
#include "log.h"

static void test_acquire_random_bytes(bool high_quality_required) {
uint8_t buf[16] = {};
unsigned i;

log_info("/* %s */", __func__);

for (i = 1; i < sizeof buf; i++) {
assert_se(acquire_random_bytes(buf, i, high_quality_required) == 0);
if (i + 1 < sizeof buf)
assert_se(buf[i] == 0);

hexdump(stdout, buf, i);
}
}

static void test_pseudorandom_bytes(void) {
uint8_t buf[16] = {};
unsigned i;

log_info("/* %s */", __func__);

for (i = 1; i < sizeof buf; i++) {
pseudorandom_bytes(buf, i);
if (i + 1 < sizeof buf)
assert_se(buf[i] == 0);

hexdump(stdout, buf, i);
}
}

int main(int argc, char **argv) {
log_set_max_level(LOG_DEBUG);
log_parse_environment();
log_open();

test_acquire_random_bytes(false);
test_acquire_random_bytes(true);

test_pseudorandom_bytes();

return 0;
}

Loading…
Cancel
Save