chiark / gitweb /
Lennart Poettering [Wed, 7 Jan 2015 13:43:10 +0000 (14:43 +0100)]
btrfs-util: rework how we iterate through the results of the TREE_SEARCH results
Let's introduce some syntactic sugar with iteration macros, and add
correct key increment calls.
Michael Biebl [Mon, 5 Jan 2015 08:49:44 +0000 (09:49 +0100)]
sysv-generator: handle Provides: for non-virtual facility names
The list of provided facility names as specified via Provides: in the
LSB header was originally implemented by adding those facilities to the
Names= property via unit_add_name().
In commit
95ed3294c632f5606327149f10cef1eb34422862 the internal SysV
support was replaced by a generator and support for parsing the Names=
option had been removed from the unit file parsing in v186.
As a result, Provides: for non-virtual facility was dropped when
introducing the sysv-generator.
Since quite a few SysV init scripts still use that functionality (at
least in distros like Debian which have a large body of SysV init
scripts), add back support by making those facility names available via
symlinks to the unit filename to ensure correct orderings between
SysV init scripts which use those facility names.
Bug-Debian: https://bugs.debian.org/774335
Lennart Poettering [Wed, 7 Jan 2015 02:08:29 +0000 (03:08 +0100)]
update TODO
Lennart Poettering [Wed, 7 Jan 2015 02:08:00 +0000 (03:08 +0100)]
machinectl: make sure that "machinectl login" exits immediately when the machine it is connected to dies
Lennart Poettering [Wed, 7 Jan 2015 01:14:14 +0000 (02:14 +0100)]
util: make use of kcmp() to compare fds, if it is available
Lennart Poettering [Wed, 7 Jan 2015 00:32:13 +0000 (01:32 +0100)]
util: don't fail recursive bind mounting if we cannot read the mount flags from an obstructed mounted
Lennart Poettering [Wed, 7 Jan 2015 00:18:13 +0000 (01:18 +0100)]
core: implement serialization/deserialization of fd store elements
Lennart Poettering [Tue, 6 Jan 2015 19:33:46 +0000 (20:33 +0100)]
tmpfiles: make gcc shut up
Lennart Poettering [Tue, 6 Jan 2015 19:27:29 +0000 (20:27 +0100)]
journal: consider file deletion errors a reason for rotation
Lennart Poettering [Tue, 6 Jan 2015 18:51:03 +0000 (19:51 +0100)]
journald: whenever we rotate a file, btrfs defrag it
Our write pattern is quite awful for CoW file systems (btrfs...), as we
keep updating file parts in the beginning of the file. This results in
fragmented journal files. Hence: when rotating files, defragment them,
since at that point we know that no further write accesses will be made.
Lennart Poettering [Tue, 6 Jan 2015 18:50:52 +0000 (19:50 +0100)]
Update TODO
Zbigniew Jędrzejewski-Szmek [Tue, 6 Jan 2015 14:53:12 +0000 (09:53 -0500)]
tmpfiles: finish with EXIT_FAILURE if anything failed
Return value is successful only if everything succeeded.
Zbigniew Jędrzejewski-Szmek [Tue, 6 Jan 2015 05:29:40 +0000 (00:29 -0500)]
tree-wide: remove unnecessary LOG_PRI
LOG_DEBUG is already a log level, there is no need to use LOG_PRI which
is for filtering out the facility.
Zbigniew Jędrzejewski-Szmek [Tue, 6 Jan 2015 05:26:26 +0000 (00:26 -0500)]
journal-upload: enable curl debug output conditionally
https://bugs.freedesktop.org/show_bug.cgi?id=86464
Gabor Kelemen [Fri, 2 Jan 2015 22:02:16 +0000 (23:02 +0100)]
po: Initial Hungarian translation
https://bugs.freedesktop.org/show_bug.cgi?id=87982
Chris Atkinson [Thu, 1 Jan 2015 21:35:34 +0000 (16:35 -0500)]
man: clarify path escaping and reference systemd-escape
This patch adds more detail to the description of how path escaping
operates and provides a pointer to the systemd-escape program. Either
would serve to answer the question raised in the bug report, so
hopefully this will allow it to be closed.
https://bugs.freedesktop.org/show_bug.cgi?id=87688
Lennart Poettering [Tue, 6 Jan 2015 02:16:07 +0000 (03:16 +0100)]
build-sys: add two more missing makefile links
Lennart Poettering [Mon, 5 Jan 2015 23:31:38 +0000 (00:31 +0100)]
machined: simplification
Lennart Poettering [Mon, 5 Jan 2015 23:30:25 +0000 (00:30 +0100)]
journald: allow restarting journald without losing stream connections
Making use of the fd storage capability of the previous commit, allow
restarting journald by serilizing stream state to /run, and pushing open
fds to PID 1.
Lennart Poettering [Mon, 5 Jan 2015 23:26:25 +0000 (00:26 +0100)]
core: add new logic for services to store file descriptors in PID 1
With this change it is possible to send file descriptors to PID 1, via
sd_pid_notify_with_fds() which PID 1 will store individually for each
service, and pass via the usual fd passing logic on next invocation.
This is useful for enable daemon reload schemes where daemons serialize
their state to /run, push their fds into PID 1 and terminate, restoring
their state on next start from the data in /run and passed in from PID
1.
The fds are kept by PID 1 as long as no POLLHUP or POLLERR is seen on
them, and the service they belong to are either not dead or failed, or
have a job queued.
Zbigniew Jędrzejewski-Szmek [Tue, 6 Jan 2015 00:03:08 +0000 (19:03 -0500)]
cgroup: memory limits on / are not supported
Zbigniew Jędrzejewski-Szmek [Tue, 6 Jan 2015 00:03:23 +0000 (19:03 -0500)]
cgroup: fix error message
systemd[1]: Failed to set memory.limit_in_bytes on : Invalid argument
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jan 2015 03:40:41 +0000 (04:40 +0100)]
journal: call connect() with dropped privileges
When systemd starts a service, it first opened /run/systemd/journal/stdout
socket, and only later switched to the right user.group (if they are
specified). Later on, journald looked at the credentials, and saw
root.root, because credentials are stored at the time the socket is
opened. As a result, all messages passed over _TRANSPORT=stdout were
logged with _UID=0, _GID=0.
Drop real uid and gid temporarily to fix the issue.
Lennart Poettering [Mon, 5 Jan 2015 16:22:10 +0000 (17:22 +0100)]
core: rework counting of running jobs
Let's unify the code that counts the running jobs a bit, in order to
make sure we are less likely to miss one.
This is related to this bug:
https://bugs.freedesktop.org/show_bug.cgi?id=87349
However, it probably won't fix it fully, and I cannot reproduce the issue.
The change also adds an explicit assert change when the counter is off.
Josef Andersson [Mon, 5 Jan 2015 16:38:54 +0000 (11:38 -0500)]
po: add Swedish translation
https://bugs.freedesktop.org/show_bug.cgi?id=88052
Ivan Shapovalov [Fri, 19 Dec 2014 14:08:07 +0000 (17:08 +0300)]
path-lookup, systemctl: export lookup_paths_init_from_scope() from shared/install.c and use it
Filipe Brandenburger [Mon, 29 Dec 2014 23:22:33 +0000 (15:22 -0800)]
machine: add reference to machine-dbus.h to Makefile.am
Commit
003dffde2c1b93 ("machined: Move image discovery logic into src/shared,
so that we can make use of it from nspawn") moved some definitions from
machine.h to a new machine-dbus.h, but did not include it in Makefile.am
Tested that `make distcheck` works after this fix.
Lennart Poettering [Mon, 5 Jan 2015 15:32:59 +0000 (16:32 +0100)]
tmpfiles: fix 'D' lines
https://bugs.freedesktop.org/show_bug.cgi?id=87953
Lennart Poettering [Mon, 5 Jan 2015 15:23:21 +0000 (16:23 +0100)]
nss-myhostname: always will in canonical hostname field when resolving addresses to hostnames
https://bugs.freedesktop.org/show_bug.cgi?id=87634
Lukasz Skalski [Mon, 5 Jan 2015 13:45:55 +0000 (14:45 +0100)]
bus-proxyd: don't allow to acquire org.freedesktop.DBus name
Michael Biebl [Mon, 5 Jan 2015 13:12:47 +0000 (14:12 +0100)]
core: fix typo in log message
Lennart Poettering [Mon, 5 Jan 2015 12:46:36 +0000 (13:46 +0100)]
machinectl: remove spurious newline
Daniele Medri [Mon, 5 Jan 2015 12:46:18 +0000 (13:46 +0100)]
po: update Italian translation
Daniel Mack [Mon, 5 Jan 2015 12:41:30 +0000 (13:41 +0100)]
sd-bus: sync kdbus.h
Catch up with latest changes in kdbus.ko:
* Signals can be sent as unicast now, hence they need to be marked as
such with the KDBUS_MSG_SIGNAL in the message flags.
* Follow ioctl number change for KDBUS_CMD_FREE
Topi Miettinen [Sun, 4 Jan 2015 18:51:17 +0000 (20:51 +0200)]
util: Do not clear parent mount flags when setting up namespaces
When setting up a namespace, mount flags like noexec, nosuid and
nodev are cleared, so the mounts always have exec, suid and dev
flags enabled.
Copy source directory mount flags to target mount when remounting
the bind mounts.
Lennart Poettering [Mon, 5 Jan 2015 12:19:55 +0000 (13:19 +0100)]
udevadm,..: make --help output of udev tools more like the output of the various other tools
Lennart Poettering [Mon, 5 Jan 2015 11:35:08 +0000 (12:35 +0100)]
fstab-generator: use more appropriate checks for swap and device availability
We always should use the same checks when deciding whether swap support
and mounting of devices is supported. Hence, let's make
fstab-generator's logic more similar to the usual logic we follow:
a) Look for /proc/swaps and no container support before activating
swaps.
b) Look for /sys being writable befire supporting device mounts.
Torstein Husebø [Mon, 5 Jan 2015 08:55:11 +0000 (09:55 +0100)]
libsystemd-network: fix typo in lldp
Colin Walters [Thu, 1 Jan 2015 19:57:08 +0000 (14:57 -0500)]
util: Fix signedness error in lines(), match implementations
Regression introduced by
ed757c0cb03eef50e8d9aeb4682401c3e9486f0b
Mirror the implementation of columns(), since the fd_columns()
functions returns a negative integer for errors.
Also fix columns() to return the unsigned variable instead of the
signed intermediary (they're the same, but better to be explicit).
Lennart Poettering [Mon, 5 Jan 2015 01:58:04 +0000 (02:58 +0100)]
update TODO
Lennart Poettering [Mon, 5 Jan 2015 01:48:50 +0000 (02:48 +0100)]
journald: reuse IOVEC_TOTAL_SIZE() macros where possible
Lennart Poettering [Mon, 5 Jan 2015 01:09:01 +0000 (02:09 +0100)]
journald: when we detect the journal file we are about to write to has been deleted, rotate
https://bugzilla.redhat.com/show_bug.cgi?id=
1171719
Lennart Poettering [Mon, 5 Jan 2015 00:56:47 +0000 (01:56 +0100)]
systemctl: properly iterate through service array when dispatching to sysv
https://bugzilla.redhat.com/show_bug.cgi?id=
1175734
Lennart Poettering [Mon, 5 Jan 2015 00:20:44 +0000 (01:20 +0100)]
journald: add some additional checks before we divide by values read from journal file headers
Since the file headers might be replaced by zeroed pages now due to
sigbus we should make sure we don't end up dividing by zero because we
don't check values read from journal file headers for changes.
Lennart Poettering [Mon, 5 Jan 2015 00:08:51 +0000 (01:08 +0100)]
journalctl: static variables immediately configured via command line arguments should be prefixed with "arg_"
Lennart Poettering [Sun, 4 Jan 2015 23:52:47 +0000 (00:52 +0100)]
journal: install sigbus handler for journal tools too
This makes them robust regarding truncation. Ideally, we'd export this
as an API, but given how messy SIGBUS handling is, and the uncertain
ownership logic of signal handlers we should not do this (unless libc
one day invents a scheme how to sanely install SIGBUS handlers for
specific memory areas only). However, for now we can still make all our
own tools robust.
Note that external tools will only have read-access to the journal
anyway, where SIGBUS is much more unlikely, given that only writes are
subject to disk full problems.
Lennart Poettering [Sun, 4 Jan 2015 23:38:31 +0000 (00:38 +0100)]
systemctl: fix waiting for jobs when using direct connections to PID 1 for dbus
Lennart Poettering [Sun, 4 Jan 2015 23:13:26 +0000 (00:13 +0100)]
journald: constify all things
Lennart Poettering [Sun, 4 Jan 2015 21:20:22 +0000 (22:20 +0100)]
machined,bus-proxy: fix connecting to containers
Lennart Poettering [Sun, 4 Jan 2015 21:09:07 +0000 (22:09 +0100)]
journald: prefix exported calls with "server_", unexport unnecessary calls
Lennart Poettering [Tue, 30 Dec 2014 19:57:53 +0000 (20:57 +0100)]
journald: process SIGBUS for the memory maps we set up
Even though we use fallocate() it appears that file systems like btrfs
will trigger SIGBUS on certain low-disk-space situation. We should
handle that, hence catch the signal, add it to a list of invalidated
pages, and replace the page with an empty memory area. After each write
check if SIGBUS was triggered, and consider the write invalid if it was.
This should make journald a lot more robust with file systems where
fallocate() is not reliable, for example all CoW file systems
(btrfs...), where changing written data can fail with disk full errors.
https://bugzilla.redhat.com/show_bug.cgi?id=
1045810
Lennart Poettering [Tue, 30 Dec 2014 01:19:04 +0000 (02:19 +0100)]
update TODO
Lennart Poettering [Tue, 30 Dec 2014 00:57:23 +0000 (01:57 +0100)]
nspawn: mount most of the cgroup tree read-only in nspawn containers except for the container's own subtree in the name=systemd hierarchy
More specifically mount all other hierarchies in their entirety and the
name=systemd above the container's subtree read-only.
Lennart Poettering [Tue, 30 Dec 2014 00:56:42 +0000 (01:56 +0100)]
cgroup: downgrade log messages when we cannot write to cgroup trees that are mounted read-only
Peter Hutterer [Sun, 4 Jan 2015 21:41:03 +0000 (07:41 +1000)]
hwdb: fix a typo
Peter Hutterer [Sun, 4 Jan 2015 21:26:18 +0000 (07:26 +1000)]
hwdb: revert Logitech Optical USB Mouse
Reporter says he incorrectly measured the data but the device is not available
anymore to correct it. We'll have to wait for someone else to submit the data.
https://bugs.freedesktop.org/show_bug.cgi?id=87343
Thomas Hindoe Paaboel Andersen [Fri, 2 Jan 2015 19:29:04 +0000 (20:29 +0100)]
machinectl: Check type instead of path before printing the type
Looks like a typo when introduced in
fefdc04b38725457a91651218feb7000f6ccc1f4
Sergey Ptashnick [Thu, 1 Jan 2015 18:42:47 +0000 (21:42 +0300)]
po: update Russian translation
By analogy with commit
4038d7502f.
Sylvain Plantefève [Thu, 1 Jan 2015 17:02:54 +0000 (18:02 +0100)]
po: update French translation
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jan 2015 19:25:18 +0000 (14:25 -0500)]
mount: do not use -n when running in --user mode
-n is only allowed for root. /etc/mtab is nowadays almost always a link to /proc/,
so in practice this does not really matter too much, but should allow .mount units
to work in --user mode.
https://bugs.freedesktop.org/show_bug.cgi?id=87602
Topi Miettinen [Thu, 1 Jan 2015 17:40:07 +0000 (19:40 +0200)]
Type of mount(2) flags is unsigned long
Robert Milasan [Thu, 1 Jan 2015 17:11:22 +0000 (18:11 +0100)]
udev: improve help/usage for some more programs
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jan 2015 17:00:59 +0000 (12:00 -0500)]
networkctl: avoid potential use of unitialized variables
Those values are based on a file we read from disk, so we should
verify everything we receive, and make sure everything we print
is sensible.
Also, print fractional seconds for TTL.
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jan 2015 16:53:25 +0000 (11:53 -0500)]
networkctl: remove unused variable
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jan 2015 16:15:50 +0000 (11:15 -0500)]
network: fix scanf/printf format
usec_t is defined as 64 bit wide, but long is 32 bit on many archs.
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jan 2015 15:55:19 +0000 (10:55 -0500)]
missing: add __NR_renameat2
Martin Pitt [Sun, 28 Dec 2014 11:14:25 +0000 (12:14 +0100)]
build-sys: Fix install location of systemd.pc
systemd.pc contains "libdir" which can be architecture specific. Thus it needs
to be installed into libdir/pkgconfig/ instead of datadir/pkgconfig.
As nothing else is using pkgconfigdata any more, remove it entirely.
Note that udev.pc does not contain architecture specific values and thus can be
kept in /usr/share/pkgconfig/.
Zbigniew Jędrzejewski-Szmek [Thu, 1 Jan 2015 14:44:43 +0000 (09:44 -0500)]
Remove "to allow" from policy messages
It carries no additional information and forces a passive sentence
structure which is longer and harder to parse.
Piotr Drąg [Fri, 26 Dec 2014 00:05:29 +0000 (01:05 +0100)]
po: update Polish translation
https://bugs.freedesktop.org/show_bug.cgi?id=87724
Piotr Drąg [Thu, 25 Dec 2014 23:55:26 +0000 (00:55 +0100)]
machined: fix grammar in org.freedesktop.machine1.policy.in
[zj: change "in into" to "into".]
https://bugs.freedesktop.org/show_bug.cgi?id=87722
Philippe De Swert [Wed, 31 Dec 2014 16:02:12 +0000 (18:02 +0200)]
build-sys: fix build issue with machines.target
When doing "make clean" the unit/machines.target file gets deleted.
This causes a build error later on when trying to rebuild systemd.
V2: The file probably belongs to dist_systemunit_DATA
Chris Atkinson [Thu, 1 Jan 2015 02:59:16 +0000 (21:59 -0500)]
man: Clarify effect when both calendar day and date are listed in timer
See bug 87859 (https://bugs.freedesktop.org/show_bug.cgi?id=87859). Bug
reporter found the language describing the effect of specifying both a
day and date unclear; hopefully the attached patch will clarify and
allow the bug to be closed.
David Herrmann [Wed, 31 Dec 2014 15:28:48 +0000 (16:28 +0100)]
lldp: fix sd_lldp_save()
Fix a bunch of needless memzero() calls, a bunch of use-after-free
regarding _cleanup_free_ and drop unused variables.
Hint: Do NOT use _cleanup_free_ for temporary strappend() helpers that are
freed multiple times. All you safe is the last free() call, which is
really not worth the trouble resetting it to NULL all the time.
David Herrmann [Wed, 31 Dec 2014 15:07:17 +0000 (16:07 +0100)]
lldp: fix uninitialized cleanup var #2
Another uninitialized variable marked as _cleanup_. Set it to NULL to
avoid accessing uninitialized memory.
David Herrmann [Wed, 31 Dec 2014 15:04:55 +0000 (16:04 +0100)]
lldp: fix uninitialized cleanup var
Make sure to set _cleanup_ variables to NULL. Otherwise, we free
uninitialized objects.
David Herrmann [Wed, 31 Dec 2014 15:01:37 +0000 (16:01 +0100)]
import: fix mem-leak in CurlGlue
Make sure to actually free the underlying object in CurlGlue unref.
David Herrmann [Wed, 31 Dec 2014 14:58:27 +0000 (15:58 +0100)]
lldp: fix double free
'k' is marked as _cleanup_free_ so reset it to NULL if we free it
explicitly.
David Herrmann [Wed, 31 Dec 2014 14:56:11 +0000 (15:56 +0100)]
networkctl: fix strappend() error checking
Make sure to test the right variable for NULL.
David Herrmann [Wed, 31 Dec 2014 14:54:20 +0000 (15:54 +0100)]
network: add malloc-assertion in test
Make sure malloc() really returns non-NULL in lldp test.
David Herrmann [Wed, 31 Dec 2014 14:52:23 +0000 (15:52 +0100)]
machinectl: remove dead code
'r' is not touched after the previous error-checking 100 lines above. Drop
that code.
Christoph Brill [Wed, 31 Dec 2014 13:28:52 +0000 (08:28 -0500)]
hwdb: mouse DPI data, Logitech USB Laser Mouse M-U0011-O
https://bugs.freedesktop.org/show_bug.cgi?id=87880
David Herrmann [Wed, 31 Dec 2014 12:34:21 +0000 (13:34 +0100)]
Revert commit
f131770b "tree-wide: spelling fixes"
This partially reverts:
commit
f131770b1465fbf423881f16ba85523a05f846fe
Author: Veres Lajos <vlajos@gmail.com>
Date: Mon Dec 29 09:45:58 2014 +0000
tree-wide: spelling fixes
The commit in question changed a binary file. I didn't look at the diff in
particular, so I have no idea what exactly was changed. However, the file
is generated and it looked highly suspiciuous. Therefore, I reverted that
part.
Note that this is generated by "make update-unifont" so really no reason
to touch at all.
Veres Lajos [Mon, 29 Dec 2014 09:45:58 +0000 (09:45 +0000)]
tree-wide: spelling fixes
https://github.com/vlajos/misspell_fixer
https://github.com/torstehu/systemd/commit/
b6fdeb618cf2f3ce1645b3315f15f482710c7ffa
Thanks to Torstein Husebo <torstein@huseboe.net>.
Robert Milasan [Tue, 30 Dec 2014 17:58:29 +0000 (18:58 +0100)]
accelerometer: display short options too
Christoph Brill [Wed, 31 Dec 2014 00:07:28 +0000 (19:07 -0500)]
hwdb: mouse DPI data, Logitech M-UAS144
https://bugs.freedesktop.org/show_bug.cgi?id=87881
Christoph Brill [Wed, 31 Dec 2014 00:03:39 +0000 (19:03 -0500)]
hwdb: mouse DPI data, Fujitsu Siemens OEM
https://bugs.freedesktop.org/show_bug.cgi?id=87879
Christoph Brill [Tue, 30 Dec 2014 23:56:16 +0000 (18:56 -0500)]
hwdb: mouse DPI data, Logitech MK260 aka M-R0011
https://bugs.freedesktop.org/show_bug.cgi?id=87882
Christoph Brill [Tue, 30 Dec 2014 23:54:24 +0000 (18:54 -0500)]
hwdb: mouse DPI data, Chicony 2.4G Multimedia Wireless Kit
https://bugs.freedesktop.org/show_bug.cgi?id=87883
Zbigniew Jędrzejewski-Szmek [Tue, 30 Dec 2014 23:38:21 +0000 (18:38 -0500)]
systemctl: do not repeat hibernate/sleep attempts
If some sleep operation was not possible (e.g. because swap is missing),
we would try twice: once through logind, which would result in a clean error:
Failed to execute operation: Sleep verb not supported
and then second time by starting the appropriate unit directly, which is
more messy. If logind tells us that something is not possible (or already
in progress), report that to the user and quit. If logind is present and working
we should not try to work around it.
Loosely based on https://bugs.freedesktop.org/show_bug.cgi?id=87832.
Zbigniew Jędrzejewski-Szmek [Tue, 30 Dec 2014 23:22:53 +0000 (18:22 -0500)]
bus: replace ENOSYS return codes with EBADR/ENOTSUP
ENOSYS is used to signify compiled-out functionality. Using it for
different kinds of error is misleading.
For BUS_ERROR_SLEEP_VERB_NOT_SUPPORTED, logind-action.c uses ENOTSUP
already, so changing it to ENOTSUP makes the dbus and action paths
behave the same.
Zbigniew Jędrzejewski-Szmek [Tue, 30 Dec 2014 14:57:01 +0000 (09:57 -0500)]
README: CONFIG_DEVPTS_MULTIPLE_INSTANCES is necessary
https://bugs.debian.org/773932
Robert Milasan [Tue, 30 Dec 2014 17:58:05 +0000 (18:58 +0100)]
accelerometer: drop unused -x option
Susant Sahani [Tue, 30 Dec 2014 16:41:38 +0000 (22:11 +0530)]
man: Fix spelling
David Herrmann [Tue, 30 Dec 2014 10:37:35 +0000 (11:37 +0100)]
bus: add sd_bus_emit_object_{added/removed}()
This implements two new helpers, discussed on systemd-devel about 1 year
ago:
sd_bus_emit_object_added()
sd_bus_emit_object_removed()
Both calls are equivalent to their respective counterpart
sd_bus_emit_interfaces_{added/removed}(), but can figure out the list of
interfaces themselves, instead of requiring the caller to provide them.
Furthermore, both calls properly deal with builtin interfaces provided via
org.freedesktop.DBus.* and alike.
Both calls simply traverse a node and all its parent nodes to figure out a
list of all interfaces registered as vtable or fallback. It then appends
each of them, similar to the interfaces_{added/removed}() helpers.
Note that interfaces_{added/removed}() runs a parent traversal for *each*
passed interface. Therefore, it can simply bail out, once it found a
parent node that implements a given interface.
With object_{added/removed}() we cannot know the registered interfaces in
advance, thus, we cannot run one traversal per node. Instead, we run a
single traversal and remember all interfaces that we added. Therefore, a
child-interface overrides all conflicting parent-interfaces. We keep a
"Set *s" context to track those while climbing up the tree.
David Herrmann [Tue, 30 Dec 2014 08:09:41 +0000 (09:09 +0100)]
bus: fix capabilities on big-endian
The kernel provides capabilities as a u32 array, sd-bus uses an u8 array.
This works fine on little-endian as both are encoded the same way.
However, this fails on big-endian if we do not perform sufficient
byte-swapping on each u32 entry.
This patch makes sd-bus use u32, too. We avoid changing any kernel
provided data so we can keep pointing into kdbus pool buffers which
contain u32 arrays.
David Herrmann [Tue, 30 Dec 2014 07:42:53 +0000 (08:42 +0100)]
bus: drop creds->capability_size
The number of available caps can be read from
/proc/sys/kernel/cap_last_cap during runtime. Our helper cap_last_cap()
does that, so there's no reason to remember the size of any capability
cache. We can just pre-allocate arrays with a suitable size for all
available caps and reject any higher caps.
The kernel capability API uses u32 as base so make sure we do the same.
Note that this is specified by POSIX, so it's unlikely to change.
David Herrmann [Mon, 29 Dec 2014 16:51:36 +0000 (17:51 +0100)]
macro: add DIV_ROUND_UP()
This macro calculates A / B but rounds up instead of down. We explicitly
do *NOT* use:
(A + B - 1) / A
as it suffers from an integer overflow, even though the passed values are
properly tested against overflow. Our test-cases show this behavior.
Instead, we use:
A / B + !!(A % B)
Note that on "Real CPUs" this does *NOT* result in two divisions. Instead,
instructions like idivl@x86 provide both, the quotient and the remainder.
Therefore, both algorithms should perform equally well (I didn't verify
this, though).
Marcel Holtmann [Mon, 29 Dec 2014 19:47:04 +0000 (20:47 +0100)]
hwdb: Update database of Bluetooth company identifiers
Lennart Poettering [Mon, 29 Dec 2014 19:18:04 +0000 (20:18 +0100)]
update TODO
Lennart Poettering [Mon, 29 Dec 2014 19:00:01 +0000 (20:00 +0100)]
Revert "machined: don't force terminate registered machines"
This reverts commit
206e7a5f7b55ac61188efd895e65ab26e478cbb2.
We actually want to allow shutting down containers that use
RegisterMachine() rather than CreateMachine() to register their own
unit. It should be safe to do so, since the primary usecase for
RegisterMachine() are container managers that run only a single
container within their own unit, such as systemd-nspawn.