2013-12-13 23:29:35 +04:00
*.a
*.cache
*.html
*.la
*.lo
*.log
*.o
*.plist
*.pyc
*.stamp
2014-07-11 18:35:37 +04:00
*.swp
2013-12-13 23:29:35 +04:00
*.trs
*~
.deps/
.dirstamp
.libs/
2014-07-07 12:04:33 +04:00
/*.gcda
/*.gcno
2013-12-13 23:29:35 +04:00
/*.tar.bz2
/*.tar.gz
/*.tar.xz
2012-12-01 13:37:52 +04:00
/Makefile
/TAGS
/accelerometer
/ata_id
2013-02-08 20:24:43 +04:00
/bootctl
2012-12-01 13:37:52 +04:00
/build-aux
2013-03-21 01:56:25 +04:00
/busctl
2012-12-01 13:37:52 +04:00
/cdrom_id
/collect
2014-06-19 15:46:01 +04:00
/coredumpctl
2013-03-28 17:54:06 +04:00
/coverage/
2013-12-13 23:29:35 +04:00
/defined
/exported
/exported-*
2012-12-01 13:37:52 +04:00
/gtk-doc.make
2012-10-17 23:23:30 +04:00
/hostnamectl
2012-09-28 02:46:32 +04:00
/install-tree
2012-04-13 23:36:37 +04:00
/journalctl
2014-01-26 08:35:28 +04:00
/libsystemd-*.c
2012-12-01 13:37:52 +04:00
/libtool
/localectl
/loginctl
2013-07-02 05:47:23 +04:00
/machinectl
2012-12-01 13:37:52 +04:00
/mtd_probe
2014-08-12 03:41:42 +04:00
/networkctl
2012-12-01 13:37:52 +04:00
/scsi_id
/systemadm
/systemctl
/systemd
2012-04-13 23:36:37 +04:00
/systemd-ac-power
2013-12-13 23:29:35 +04:00
/systemd-activate
2013-02-14 02:51:12 +04:00
/systemd-analyze
2012-12-01 13:37:52 +04:00
/systemd-ask-password
2013-08-14 03:57:02 +04:00
/systemd-backlight
2012-12-01 13:37:52 +04:00
/systemd-binfmt
2013-01-08 03:49:39 +04:00
/systemd-bootchart
2013-12-13 23:29:35 +04:00
/systemd-bus-proxyd
2012-12-01 13:37:52 +04:00
/systemd-cat
/systemd-cgls
/systemd-cgroups-agent
/systemd-cgtop
/systemd-coredump
2012-04-13 23:36:37 +04:00
/systemd-cryptsetup
/systemd-cryptsetup-generator
2013-12-03 04:13:03 +04:00
/systemd-dbus1-generator
2014-06-19 18:10:55 +04:00
/systemd-debug-generator
2012-12-01 13:37:52 +04:00
/systemd-delta
/systemd-detect-virt
2013-01-21 04:02:53 +04:00
/systemd-efi-boot-generator
2014-07-08 00:23:00 +04:00
/systemd-escape
2014-07-07 17:05:37 +04:00
/systemd-firstboot
2012-04-13 23:36:37 +04:00
/systemd-fsck
2012-12-01 13:37:52 +04:00
/systemd-fstab-generator
/systemd-getty-generator
2012-04-13 23:36:37 +04:00
/systemd-gnome-ask-password-agent
2013-08-13 12:13:45 +04:00
/systemd-gpt-auto-generator
2012-12-01 13:37:52 +04:00
/systemd-hostnamed
/systemd-inhibit
/systemd-initctl
/systemd-journal-gatewayd
2014-03-26 02:05:52 +04:00
/systemd-journal-remote
2014-03-18 06:54:28 +04:00
/systemd-journal-upload
/systemd-journald
2012-04-13 23:36:37 +04:00
/systemd-kmsg-syslogd
2012-12-01 13:37:52 +04:00
/systemd-localed
/systemd-logind
2014-06-19 18:13:36 +04:00
/systemd-machine-id-setup
2014-03-18 06:54:28 +04:00
/systemd-machined
2012-04-13 23:36:37 +04:00
/systemd-modules-load
2012-12-01 13:37:52 +04:00
/systemd-multi-seat-x
2013-10-17 05:18:36 +04:00
/systemd-networkd
2014-03-01 16:39:14 +04:00
/systemd-networkd-wait-online
2012-12-01 13:37:52 +04:00
/systemd-notify
/systemd-nspawn
2014-07-02 14:23:36 +04:00
/systemd-path
2012-12-01 13:37:52 +04:00
/systemd-quotacheck
2012-04-13 23:36:37 +04:00
/systemd-random-seed
2012-12-01 13:37:52 +04:00
/systemd-rc-local-generator
/systemd-readahead
/systemd-remount-api-vfs
/systemd-remount-fs
/systemd-reply-password
2014-07-17 00:55:23 +04:00
/systemd-resolve-host
2014-05-19 00:10:48 +04:00
/systemd-resolved
2013-10-14 06:31:49 +04:00
/systemd-rfkill
2013-06-28 06:12:58 +04:00
/systemd-run
2012-12-01 13:37:52 +04:00
/systemd-shutdown
/systemd-shutdownd
/systemd-sleep
2013-12-13 23:29:35 +04:00
/systemd-socket-proxyd
2014-07-17 13:10:53 +04:00
/systemd-subterm
2012-12-01 13:37:52 +04:00
/systemd-sysctl
/systemd-system-update-generator
sysusers: add minimal tool to reconstruct /etc/passwd and /etc/group from static files
systemd-sysusers is a tool to reconstruct /etc/passwd and /etc/group
from static definition files that take a lot of inspiration from
tmpfiles snippets. These snippets should carry information about system
users only. To make sure it is not misused for normal users these
snippets only allow configuring UID and gecos field for each user, but
do not allow configuration of the home directory or shell, which is
necessary for real login users.
The purpose of this tool is to enable state-less systems that can
populate /etc with the minimal files necessary, solely from static data
in /usr. systemd-sysuser is additive only, and will never override
existing users.
This tool will create these files directly, and not via some user
database abtsraction layer. This is appropriate as this tool is supposed
to run really early at boot, and is only useful for creating system
users, and system users cannot be stored in remote databases anyway.
The tool is also useful to be invoked from RPM scriptlets, instead of
useradd. This allows moving from imperative user descriptions in RPM to
declarative descriptions.
The UID/GID for a user/group to be created can either be chosen dynamic,
or fixed, or be read from the owner of a file in the file system, in
order to support reconstructing the correct IDs for files that shall be
owned by them.
This also adds a minimal user definition file, that should be
sufficient for most basic systems. Distributions are expected to patch
these files and augment the contents, for example with fixed UIDs for
the users where that's necessary.
2014-06-13 00:54:02 +04:00
/systemd-sysusers
2014-05-23 02:37:39 +04:00
/systemd-sysv-generator
2012-12-01 13:37:52 +04:00
/systemd-timedated
2014-04-28 16:45:42 +04:00
/systemd-timesyncd
2012-12-01 13:37:52 +04:00
/systemd-tmpfiles
/systemd-tty-ask-password-agent
/systemd-uaccess
/systemd-udevd
update-done: add minimal tool to manage system updates for /etc and /var, if /usr has changed
In order to support offline updates to /usr, we need to be able to run
certain tasks on next boot-up to bring /etc and /var in line with the
updated /usr. Hence, let's devise a mechanism how we can detect whether
/etc or /var are not up-to-date with /usr anymore: we keep "touch
files" in /etc/.updated and /var/.updated that are mtime-compared with
/usr. This means:
Whenever the vendor OS tree in /usr is updated, and any services that
shall be executed at next boot shall be triggered, it is sufficient to
update the mtime of /usr itself. At next boot, if /etc/.updated and/or
/var/.updated is older than than /usr (or missing), we know we have to
run the update tools once. After that is completed we need to update the
mtime of these files to the one of /usr, to keep track that we made the
necessary updates, and won't repeat them on next reboot.
A subsequent commit adds a new ConditionNeedsUpdate= condition that
allows checking on boot whether /etc or /var are outdated and need
updating.
This is an early step to allow booting up with an empty /etc, with
automatic rebuilding of the necessary cache files or user databases
therein, as well as supporting later updates of /usr that then propagate
to /etc and /var again.
2014-06-13 14:43:49 +04:00
/systemd-update-done
2012-04-13 23:36:37 +04:00
/systemd-update-utmp
2012-12-01 13:37:52 +04:00
/systemd-user-sessions
/systemd-vconsole-setup
/tags
2014-02-22 02:21:26 +04:00
/test-architecture
2014-06-22 16:53:24 +04:00
/test-async
shared: add generic IPC barrier
The "Barrier" object is a simple inter-process barrier implementation. It
allows placing synchronization points and waiting for the other side to
reach it. Additionally, it has an abortion-mechanism as second-layer
synchronization to send abortion-events asynchronously to the other side.
The API is usually used to synchronize processes during fork(). However,
it can be extended to pass state through execve() so you could synchronize
beyond execve().
Usually, it's used like this (error-handling replaced by assert() for
simplicity):
Barrier b;
r = barrier_init(&b);
assert_se(r >= 0);
pid = fork();
assert_se(pid >= 0);
if (pid == 0) {
barrier_set_role(&b, BARRIER_CHILD);
...do child post-setup...
if (CHILD_SETUP_FAILED)
exit(1);
...child setup done...
barrier_place(&b);
if (!barrier_sync(&b)) {
/* parent setup failed */
exit(1);
}
barrier_destroy(&b); /* redundant as execve() and exit() imply this */
/* parent & child setup successful */
execve(...);
}
barrier_set_role(&b, BARRIER_PARENT);
...do parent post-setup...
if (PARENT_SETUP_FAILED) {
barrier_abort(&b); /* send abortion event */
barrier_wait_abortion(&b); /* wait for child to abort (exit() implies abortion) */
barrier_destroy(&b);
...bail out...
}
...parent setup done...
barrier_place(&b);
if (!barrier_sync(&b)) {
...child setup failed... ;
barrier_destroy(&b);
...bail out...
}
barrier_destroy(&b);
...child setup successfull...
This is the most basic API. Using barrier_place() to place barriers and
barrier_sync() to perform a full synchronization between both processes.
barrier_abort() places an abortion barrier which superceeds any other
barriers, exit() (or barrier_destroy()) places an abortion-barrier that
queues behind existing barriers (thus *not* replacing existing barriers
unlike barrier_abort()).
This example uses hard-synchronization with wait_abortion(), sync() and
friends. These are all optional. Barriers are highly dynamic and can be
used for one-way synchronization or even no synchronization at all
(postponing it for later). The sync() call performs a full two-way
synchronization.
The API is documented and should be fairly self-explanatory. A test-suite
shows some special semantics regarding abortion, wait_next() and exit().
Internally, barriers use two eventfds and a pipe. The pipe is used to
detect exit()s of the remote side as eventfds do not allow that. The
eventfds are used to place barriers, one for each side. Barriers itself
are numbered, but the numbers are reused once both sides reached the same
barrier, thus you cannot address barriers by the index. Moreover, the
numbering is implicit and we only store a counter. This makes the
implementation itself very lightweight, which is probably negligible
considering that we need 3 FDs for a barrier..
Last but not least: This barrier implementation is quite heavy. It's
definitely not meant for fast IPC synchronization. However, it's very easy
to use. And given the *HUGE* overhead of fork(), the barrier-overhead
should be negligible.
2014-07-10 17:25:47 +04:00
/test-barrier
2013-09-24 02:23:35 +04:00
/test-boot-timestamp
2013-03-31 18:16:37 +04:00
/test-bus-chat
2014-06-19 18:13:36 +04:00
/test-bus-cleanup
2013-11-28 20:50:02 +04:00
/test-bus-creds
2013-11-22 17:30:52 +04:00
/test-bus-error
2013-12-13 23:29:35 +04:00
/test-bus-gvariant
2013-10-09 04:37:10 +04:00
/test-bus-introspect
2013-04-12 02:26:12 +04:00
/test-bus-kernel
2013-05-22 18:02:21 +04:00
/test-bus-kernel-benchmark
2013-12-13 23:29:35 +04:00
/test-bus-kernel-bloom
2013-03-19 23:03:16 +04:00
/test-bus-marshal
2013-03-31 18:16:37 +04:00
/test-bus-match
2013-05-10 16:34:57 +04:00
/test-bus-memfd
2013-10-09 04:37:10 +04:00
/test-bus-objects
2013-03-30 18:30:23 +04:00
/test-bus-server
2013-12-13 23:29:35 +04:00
/test-bus-signature
2013-05-15 21:45:05 +04:00
/test-bus-zero-copy
2012-12-01 13:37:52 +04:00
/test-calendarspec
2014-06-22 16:53:24 +04:00
/test-capability
2012-12-01 13:37:52 +04:00
/test-catalog
2012-04-13 23:36:37 +04:00
/test-cgroup
2013-11-11 13:03:31 +04:00
/test-cgroup-mask
2013-01-19 07:20:23 +04:00
/test-cgroup-util
2014-06-24 22:42:29 +04:00
/test-compress
compress: add benchmark-style test
This is useful to test the behaviour of the compressor for various buffer
sizes.
Time is limited to a minute per compression, since otherwise, when LZ4
takes more than a second which is necessary to reduce the noise, XZ
takes more than 10 minutes.
% build/test-compress-benchmark (without time limit)
XZ: compressed & decompressed 2535300963 bytes in 794.57s (3.04MiB/s), mean compresion 99.95%, skipped 3570 bytes
LZ4: compressed & decompressed 2535303543 bytes in 1.56s (1550.07MiB/s), mean compresion 99.60%, skipped 990 bytes
% build/test-compress-benchmark (with time limit)
XZ: compressed & decompressed 174321481 bytes in 60.02s (2.77MiB/s), mean compresion 99.76%, skipped 3570 bytes
LZ4: compressed & decompressed 2535303543 bytes in 1.63s (1480.83MiB/s), mean compresion 99.60%, skipped 990 bytes
It appears that there's a bug in lzma_end where it leaks 32 bytes.
2014-07-05 22:29:56 +04:00
/test-compress-benchmark
2014-08-16 16:19:10 +04:00
/test-condition-util
2014-06-20 06:07:05 +04:00
/test-conf-files
2014-06-27 20:57:24 +04:00
/test-coredump-vacuum
2012-04-13 23:36:37 +04:00
/test-daemon
2012-12-01 13:37:52 +04:00
/test-date
2013-09-18 20:12:04 +04:00
/test-device-nodes
2013-12-13 05:43:35 +04:00
/test-dhcp-client
/test-dhcp-option
2014-06-19 18:13:36 +04:00
/test-dhcp-server
2014-06-19 18:57:10 +04:00
/test-dhcp6-client
2014-07-16 02:26:02 +04:00
/test-dns-domain
2014-06-19 18:57:10 +04:00
/test-icmp6-rs
2013-10-14 21:02:11 +04:00
/test-ellipsize
2012-04-13 23:36:37 +04:00
/test-engine
2012-12-01 13:37:52 +04:00
/test-env-replace
2013-10-10 06:40:28 +04:00
/test-event
2014-06-15 00:10:45 +04:00
/test-fdset
2013-04-03 21:04:03 +04:00
/test-fileio
2013-05-10 16:34:57 +04:00
/test-hashmap
2012-12-01 13:37:52 +04:00
/test-hostname
/test-id128
/test-inhibit
/test-install
2014-03-14 04:38:19 +04:00
/test-ipcrm
2014-04-28 16:45:42 +04:00
/test-ipv4ll
2012-04-13 23:36:37 +04:00
/test-job-type
2012-12-01 13:37:52 +04:00
/test-journal
/test-journal-enum
2013-11-27 04:01:53 +04:00
/test-journal-flush
2013-12-13 23:29:35 +04:00
/test-journal-init
2013-06-12 15:05:15 +04:00
/test-journal-interleaving
2012-12-01 13:37:52 +04:00
/test-journal-match
/test-journal-send
/test-journal-stream
/test-journal-syslog
/test-journal-verify
2014-01-13 20:30:51 +04:00
/test-libsystemd-sym*
2013-12-13 23:29:35 +04:00
/test-libsystemd-*-sym*
2012-12-01 13:37:52 +04:00
/test-libudev
2013-12-13 23:29:35 +04:00
/test-libudev-sym*
2013-06-26 15:43:16 +04:00
/test-list
2012-12-01 13:37:52 +04:00
/test-log
/test-login
2013-09-17 23:39:09 +04:00
/test-login-shared
2013-12-13 23:29:35 +04:00
/test-login-tables
2012-12-01 13:37:52 +04:00
/test-loopback
2013-12-13 23:29:35 +04:00
/test-machine-tables
2012-12-01 13:37:52 +04:00
/test-mmap-cache
2013-10-23 22:10:02 +04:00
/test-namespace
2013-10-17 05:18:36 +04:00
/test-network
2014-07-10 06:29:24 +04:00
/test-network-tables
2012-12-01 13:37:52 +04:00
/test-ns
2013-03-30 18:06:51 +04:00
/test-path-util
2013-03-21 05:42:28 +04:00
/test-prioq
2014-06-23 23:28:22 +04:00
/test-ratelimit
2014-07-11 18:29:56 +04:00
/test-pty
2012-12-01 13:37:52 +04:00
/test-replace-var
2014-06-19 18:13:36 +04:00
/test-resolve
2014-05-13 22:08:18 +04:00
/test-ring
2013-10-21 22:12:52 +04:00
/test-rtnl
2014-06-19 18:13:36 +04:00
/test-rtnl-manual
2012-11-01 21:48:11 +04:00
/test-sched-prio
2012-12-01 13:37:52 +04:00
/test-sleep
2014-06-15 00:10:44 +04:00
/test-socket-util
2014-05-16 22:14:23 +04:00
/test-ssd
2013-02-09 04:39:44 +04:00
/test-strbuf
2013-12-13 23:29:35 +04:00
/test-strip-tab-ansi
2012-12-01 13:37:52 +04:00
/test-strv
2013-02-11 00:56:03 +04:00
/test-strxcpyx
2013-07-05 08:25:26 +04:00
/test-tables
2014-06-12 19:51:14 +04:00
/test-term-page
2014-06-15 16:50:00 +04:00
/test-term-parser
2013-04-04 00:58:41 +04:00
/test-time
2014-01-26 08:35:28 +04:00
/test-tmpfiles
2012-12-01 13:37:52 +04:00
/test-udev
2014-07-18 19:34:03 +04:00
/test-unifont
2012-12-01 13:37:52 +04:00
/test-unit-file
/test-unit-name
2013-09-17 23:39:09 +04:00
/test-utf8
2013-02-07 00:15:23 +04:00
/test-util
2012-12-01 13:37:52 +04:00
/test-watchdog
2013-12-28 06:03:50 +04:00
/test-xml
2012-12-01 13:37:52 +04:00
/timedatectl
/udevadm
2013-12-13 23:29:35 +04:00
/undefined
2012-12-01 13:37:52 +04:00
/v4l_id
2010-02-03 16:21:48 +03:00
Makefile.in
2013-12-13 23:29:35 +04:00
__pycache__/
2010-02-03 16:21:48 +03:00
aclocal.m4
config.h
config.h.in
config.log
config.status
configure
stamp-*