chiark / gitweb /
6 years agohashmap, set: remove unused functions
Michal Schmidt [Thu, 31 Jul 2014 16:04:20 +0000 (18:04 +0200)]
hashmap, set: remove unused functions

The following hashmap_* and set_* functions/macros have never had any
users in systemd's history:


Remove this dead code.

6 years agohashmap: introduce hash_ops to make struct Hashmap smaller
Michal Schmidt [Tue, 12 Aug 2014 23:00:18 +0000 (01:00 +0200)]
hashmap: introduce hash_ops to make struct Hashmap smaller

It is redundant to store 'hash' and 'compare' function pointers in
struct Hashmap separately. The functions always comprise a pair.
Store a single pointer to struct hash_ops instead.

systemd keeps hundreds of hashmaps, so this saves a little bit of

6 years agobuild: colorize gcc only if on tty
Michal Schmidt [Fri, 15 Aug 2014 14:33:03 +0000 (16:33 +0200)]
build: colorize gcc only if on tty

Rather than forcing gcc to always produce colorized error messages
whether on tty or not, enable automatic colorization by ensuring
GCC_COLORS is set to a non-empty string.

Doing it this way removes the need for workarounds in ~/.emacs or
~/.vimrc for "M-x compile" or ":make", respectively, to work.

6 years agotest: fix test of uid-range
Thomas Hindoe Paaboel Andersen [Sun, 14 Sep 2014 20:25:58 +0000 (22:25 +0200)]
test: fix test of uid-range

The number of uid's in the range should be tested instead of written

The test still passes with the fix checks.

Found with Coverity. Fixes: CID#1237714 - 1237722

6 years agosd-dhcp: fix test of magic cookie
Thomas Hindoe Paaboel Andersen [Sun, 14 Sep 2014 20:06:37 +0000 (22:06 +0200)]
sd-dhcp: fix test of magic cookie

The magic cookie is set in dhcp_message_init. Test the magic cookie
value intead of writing the last 3/4 of it directly.

Found with Coverity. Fixes: CID#1237732 CID#1237734 CID#1237735

6 years agoresolved: fall back to hardcoded ifindex when checking if a link is the loopback
Tom Gundersen [Sat, 13 Sep 2014 18:41:35 +0000 (20:41 +0200)]
resolved: fall back to hardcoded ifindex when checking if a link is the loopback

Reported by Philippe De Swert <>.

Coverity CID#1237656

6 years agonetworkd: remove vestigial event sources
Dave Reisner [Sat, 13 Sep 2014 18:10:33 +0000 (14:10 -0400)]
networkd: remove vestigial event sources

187fe1db took advantage of floating events, but didn't remove pointers
it made superfluous.

6 years agocore: use correct function to free CalendarSpec
Dave Reisner [Sat, 13 Sep 2014 15:18:26 +0000 (11:18 -0400)]
core: use correct function to free CalendarSpec

6 years agocore: fix a potential mem leak
Thomas Hindoe Paaboel Andersen [Sat, 13 Sep 2014 10:35:06 +0000 (12:35 +0200)]
core: fix a potential mem leak

Found with Coverity. Fixes: CID#996438

6 years agoanalyze: fix mem leak
Thomas Hindoe Paaboel Andersen [Sat, 13 Sep 2014 10:29:43 +0000 (12:29 +0200)]
analyze: fix mem leak

Found with Coverity. Fixes: CID#1237756

6 years agocore: smack-setup: Actually allow for succesfully loading CIPSO policy
Philippe De Swert [Fri, 12 Sep 2014 13:49:48 +0000 (16:49 +0300)]
core: smack-setup: Actually allow for succesfully loading CIPSO policy

The line under the last switch statement  *loaded_policy = true;
would never be executed. As all switch cases return 0. Thus the
policy would never be marked as loaded.

Found with Coverity. Fixes: CID#1237785

6 years agoanalyze: avoid a null dereference
Thomas Hindoe Paaboel Andersen [Thu, 11 Sep 2014 21:41:44 +0000 (23:41 +0200)]
analyze: avoid a null dereference

If we have an error in the early sd_bus_* calls then unit_times
will still be null.

Found with coverity. Fixes: CID#996464

6 years agoudev: timeout - warn after a third of the timeout before killing
Tom Gundersen [Thu, 11 Sep 2014 16:49:04 +0000 (18:49 +0200)]
udev: timeout - warn after a third of the timeout before killing

6 years agofirstboot: silence a warning
Thomas Hindoe Paaboel Andersen [Thu, 11 Sep 2014 19:29:59 +0000 (21:29 +0200)]
firstboot: silence a warning

No change in behavoir as the fallthrough from ARG_COPY had already
set arg_copy_locale to true.

Found with coverity. Fixes: CID#1237622

6 years agomanager: use correct cleanup function
Thomas Hindoe Paaboel Andersen [Thu, 11 Sep 2014 19:14:53 +0000 (21:14 +0200)]
manager: use correct cleanup function

Close the dir instead of attempt to free it.

Introduced in 874310b7b68c4c0d36ff07397db30a959bb7dae5

Found with coverity. Fixes: CID#996368

6 years agoactivate: fix fd leak in do_accept()
Philippe De Swert [Wed, 10 Sep 2014 19:14:41 +0000 (22:14 +0300)]
activate: fix fd leak in do_accept()

Found with Coverity.

6 years agotest: fix mem-leak in fdopen() test
David Herrmann [Thu, 11 Sep 2014 15:37:30 +0000 (17:37 +0200)]
test: fix mem-leak in fdopen() test

We must free FILE* after function return to not leak resources. Note that
this also closes our fd as fdopen() takes ownership of it.
Reported by Philippe De Swert (via coverity).

6 years agobus: unref buscreds on failure
Philippe De Swert [Wed, 10 Sep 2014 09:20:42 +0000 (12:20 +0300)]
bus: unref buscreds on failure

Actually unref the buscreds when we are not going to return a
pointer to them. As when bus_creds_add_more fails we immediately
return the error code otherwise and leak the new buscreds.
Found with coverity. Fixes: CID#1237761

6 years agojournal: do not leak mmaps on OOM
Philippe De Swert [Wed, 10 Sep 2014 09:20:41 +0000 (12:20 +0300)]
journal: do not leak mmaps on OOM

After a section of memory is succesfully allocated, some of the following
actions can still fail due to lack of memory. In this case -ENOMEM is
returned without actually freeing the already mapped memory.
Found with coverity. Fixes: CID#1237762

6 years agoterminal: fix uninitialized variable in strerror() log message
David Herrmann [Thu, 11 Sep 2014 15:20:11 +0000 (17:20 +0200)]
terminal: fix uninitialized variable in strerror() log message

We currently print weird error-messages if xkbcommon fails (which cannot
fail so far, but might in the future). Fix the uninitialized variable
warnings by setting 'r' correctly.
Thanks to Philippe De Swert for catching this (via coverity).

6 years agojournal: do not dereference already freed patterns
Philippe De Swert [Wed, 10 Sep 2014 09:20:39 +0000 (12:20 +0300)]
journal: do not dereference already freed patterns

In case set_consume goes wrong, the pattern name has already been
freed. So we do not try to print it in the logs, assuming the pattern
addition print will be printed just before the failure anyway. Found
with coverity. Fixes: CID#1237798

6 years agobus: avoid using m->kdbus after freeing it
Philippe De Swert [Wed, 10 Sep 2014 09:20:38 +0000 (12:20 +0300)]
bus: avoid using m->kdbus after freeing it

m->kdbus could be freed before it is released. Changing the
order fixes the issue.

Found with Coverity. Fixes: CID#1237798

6 years agoterminal: drop redundant assertion
David Herrmann [Thu, 11 Sep 2014 13:30:56 +0000 (15:30 +0200)]
terminal: drop redundant assertion

This assertion is already there two lines down. Drop the redundant

6 years agoterminal: fix wrong return value in idev if fcntl() fails
David Herrmann [Thu, 11 Sep 2014 13:29:58 +0000 (15:29 +0200)]
terminal: fix wrong return value in idev if fcntl() fails

This might cause >=0 to be returned, even though the method failed. Fix
this and return -errno.

6 years agoterminal: enable sessions in evcat after taking control
David Herrmann [Thu, 11 Sep 2014 13:28:37 +0000 (15:28 +0200)]
terminal: enable sessions in evcat after taking control

If we enable a session, any probed device might get immediately enabled.
This might cause TakeDevice() messages to be sent before we call
TakeControl(). Therefore, enable sessions *after* sending TakeControl() so
we always succeed if TakeControl() succeeds.

6 years agoterminal: remove unused set.h inclusion in idev
David Herrmann [Thu, 11 Sep 2014 13:27:56 +0000 (15:27 +0200)]
terminal: remove unused set.h inclusion in idev

We don't use set.h so no need to include it. We used to include it for
temporary refs on all idev devices of a session, but that never was pushed

6 years agoudev: allow removing tags via TAG-="foobar"
David Herrmann [Thu, 11 Sep 2014 11:25:21 +0000 (13:25 +0200)]
udev: allow removing tags via TAG-="foobar"

This extends the udev parser to support OP_REMOVE (-=) and adds support
for TAG-= to remove previously set tags. We don't fail if the tag didn't

This is pretty handy if we ship default rules for seat-assignments and
users want to exclude specific devices from that. They can easily add
rules that drop any automatically added "seat" tags again.

6 years agoterminal: remove redundant "struct" prefixes
David Herrmann [Tue, 2 Sep 2014 12:19:38 +0000 (14:19 +0200)]
terminal: remove redundant "struct" prefixes

We define typedefs for all internal types so drop the redundant "struct"

6 years agoterminal: discard async read() errors for evdev
David Herrmann [Tue, 2 Sep 2014 12:17:59 +0000 (14:17 +0200)]
terminal: discard async read() errors for evdev

If read() fails on evdev devices, we deal with this in idev_evdev_hup().
It is very likely this is an async revoke, therefore, we must not abort.
Fix our io helper to discard such errors after passing them to
idev_evdev_hup(), so we don't bail out of the event loop.

6 years agobacklight: Avoid error when state restore is disabled
Michael Biebl [Wed, 10 Sep 2014 22:49:36 +0000 (00:49 +0200)]
backlight: Avoid error when state restore is disabled

When the state restore is disabled, we would print:
"Unknown verb: load" instead of simply skipping loading the

6 years agoudev: timeout - increase timeout
Tom Gundersen [Wed, 10 Sep 2014 08:56:26 +0000 (10:56 +0200)]
udev: timeout - increase timeout

Some kernel modules still take more than one minute to insmod, we no longer rely on the timeout
killing insmod within a given period of time, so just bump this to a much higher value. Its only
purpose is to make sure that nothing stays aronud forever.

6 years agoudev: fix copy-paste error in log message
Tom Gundersen [Wed, 10 Sep 2014 05:59:22 +0000 (07:59 +0200)]
udev: fix copy-paste error in log message

6 years agoTODO: Remove Elapsed Time DHCPv6 option as it is done
Patrik Flykt [Mon, 1 Sep 2014 10:21:35 +0000 (13:21 +0300)]
TODO: Remove Elapsed Time DHCPv6 option as it is done

6 years agotest-dhcp6-client: Add checks for Elapsed Time option
Patrik Flykt [Mon, 1 Sep 2014 10:21:34 +0000 (13:21 +0300)]
test-dhcp6-client: Add checks for Elapsed Time option

Verify that the Elapsed Time option is present.

6 years agosd-dhcp6-client: Implement Elapsed Time option
Patrik Flykt [Mon, 1 Sep 2014 10:21:33 +0000 (13:21 +0300)]
sd-dhcp6-client: Implement Elapsed Time option

Implement Elapsed Time option as it is defined as MUST in RFC 3315,
section 22.9. The elapsed time value is a 1/100th of a second with
a max value of 0xffff, i.e. 655.35 seconds.

As the main loop might not be running yet when sd_dhcp6_client_start() is
called, fetch the monotonic time directly and not from the event loop
while in state DHCP6_STATE_STOPPED.

6 years agoudev - drop print_kmsg
Tom Gundersen [Tue, 9 Sep 2014 20:48:07 +0000 (22:48 +0200)]
udev - drop print_kmsg

The only remaining user was 'starting version XXX', which is now logged using log_info().

6 years agoudev: netif_rename - don't log to kmsg
Tom Gundersen [Tue, 9 Sep 2014 20:45:03 +0000 (22:45 +0200)]
udev: netif_rename - don't log to kmsg

As of 3.17, the kernel will do this on its own, so just do regular log_debug() logging from udev.

6 years agoudev: net_setup_link - open ethtool and rtnl connections lazily
Tom Gundersen [Tue, 9 Sep 2014 13:36:56 +0000 (15:36 +0200)]
udev: net_setup_link - open ethtool and rtnl connections lazily

6 years agoudev: event - keep one rtnl per worker, rather than per event
Tom Gundersen [Tue, 9 Sep 2014 09:15:37 +0000 (11:15 +0200)]
udev: event - keep one rtnl per worker, rather than per event

Creating the rtnl context is cheap, but freeing it may not be, due to
synchronous close().

Also drop some excessive logging. We now log about the changing ifname
exactly once.

6 years agoudev: import the full db on MOVE events for devices without dev_t
Tom Gundersen [Tue, 9 Sep 2014 10:23:19 +0000 (12:23 +0200)]
udev: import the full db on MOVE events for devices without dev_t

6 years agobuild-sys: make hibernation support configure option also handle hybrid-sleep; fix...
Ivan Shapovalov [Mon, 8 Sep 2014 21:40:51 +0000 (01:40 +0400)]
build-sys: make hibernation support configure option also handle hybrid-sleep; fix indentation

6 years agohwdb: update
Marcel Holtmann [Tue, 9 Sep 2014 05:44:02 +0000 (07:44 +0200)]
hwdb: update

6 years agoexecute: silence warnings
Thomas Hindoe Paaboel Andersen [Mon, 8 Sep 2014 20:10:36 +0000 (22:10 +0200)]
execute: silence warnings

Mark two function parameters as const

6 years agonamespace: avoid posible use of uninitialized variable
Thomas Hindoe Paaboel Andersen [Mon, 8 Sep 2014 20:05:17 +0000 (22:05 +0200)]
namespace: avoid posible use of uninitialized variable

6 years agorules: net-setup-link - remove stray linebreak
Mantas Mikulėnas [Mon, 8 Sep 2014 19:53:39 +0000 (22:53 +0300)]
rules: net-setup-link - remove stray linebreak

If not backslash-escaped, it splits the rule in two.

6 years agorules: net-setup-link - preserve ID_NET_LINK_FILE and ID_NET_NAME after MOVE
Tom Gundersen [Mon, 8 Sep 2014 15:16:24 +0000 (17:16 +0200)]
rules: net-setup-link - preserve ID_NET_LINK_FILE and ID_NET_NAME after MOVE

6 years agomachined: remove redundant sd_notify
Dave Reisner [Mon, 8 Sep 2014 13:27:41 +0000 (09:27 -0400)]
machined: remove redundant sd_notify

We already call this on via bus_event_loop_with_idle on exit. This
makes machined consistent with other similar daemons: localed,
hostnamed, timedated.

6 years agonetworkd: allow specification of DHCP route metric
Angus Gibson [Mon, 8 Sep 2014 10:26:47 +0000 (20:26 +1000)]
networkd: allow specification of DHCP route metric

This lets the routing metric for links to be specified per-network,
still defaulting to DHCP_ROUTE_METRIC (1024) if unspecified. Hopefully
this helps with multiple interfaces configured via DHCP.

6 years agonetworkctl: show the link file applied to each link
Tom Gundersen [Mon, 8 Sep 2014 12:18:32 +0000 (14:18 +0200)]
networkctl: show the link file applied to each link

6 years agoudev: link-config - only set *name on success
Tom Gundersen [Mon, 8 Sep 2014 12:17:46 +0000 (14:17 +0200)]
udev: link-config - only set *name on success

6 years agoudev: net_setup_link - export the .link filename applied to the link
Tom Gundersen [Mon, 8 Sep 2014 12:00:58 +0000 (14:00 +0200)]
udev: net_setup_link - export the .link filename applied to the link

6 years agonetworkctl: show the network file applied to each link
Tom Gundersen [Mon, 8 Sep 2014 12:00:34 +0000 (14:00 +0200)]
networkctl: show the network file applied to each link

6 years agosd-network: add _get_network_file api
Tom Gundersen [Mon, 8 Sep 2014 11:50:52 +0000 (13:50 +0200)]
sd-network: add _get_network_file api

6 years agoTODO
Tom Gundersen [Mon, 8 Sep 2014 11:12:06 +0000 (13:12 +0200)]

6 years agonetworkd: add preferred source to dhcp4 gateway route
Emil Renner Berthing [Fri, 5 Sep 2014 09:56:02 +0000 (11:56 +0200)]
networkd: add preferred source to dhcp4 gateway route

This makes DHCPv4 and IPv4LL coexist peacefully.

[tomegun: apply to both the dhcp routes, use in_addr_is_null() rather than a
separate variable to indicate when prefsrc should be applied]

6 years agounits: networkd - order after udev
Tom Gundersen [Sat, 6 Sep 2014 20:37:31 +0000 (22:37 +0200)]
units: networkd - order after udev

This way we are sure that /dev/net/tun has been given the right permissions before we try to connect to it.
Ideally, we should create tun/tap devices over netlink, and then this whole issue would go away.

6 years agonetworkd: netdev - failing to create a netdev is not fatal, just fail that netdev
Tom Gundersen [Sat, 6 Sep 2014 20:16:20 +0000 (22:16 +0200)]
networkd: netdev - failing to create a netdev is not fatal, just fail that netdev

6 years agonetworkd: tuntap - return correct error when /dev/net/tun cannot be opened
Tom Gundersen [Sat, 6 Sep 2014 20:06:58 +0000 (22:06 +0200)]
networkd: tuntap - return correct error when /dev/net/tun cannot be opened

6 years agoservice: hook up custom endpoint logic
Daniel Mack [Fri, 22 Aug 2014 17:02:03 +0000 (19:02 +0200)]
service: hook up custom endpoint logic

If BusPolicy= was passed, the parser function will have created
an ExecContext->bus_endpoint object, along with policy information.

In that case, create a kdbus endpoint, and pass its path name to the
namespace logic, to it will be mounted over the actual 'bus' node.

At endpoint creation time, no policy is updloaded. That is done after
fork(), through a separate call. This is necessary because we don't
know the real uid of the process earlier than that.

6 years agoexit-status: add new exit code for custom endpoint errors
Daniel Mack [Fri, 5 Sep 2014 15:24:27 +0000 (17:24 +0200)]
exit-status: add new exit code for custom endpoint errors

6 years agonamespace: add support for custom kdbus endpoint
Daniel Mack [Fri, 22 Aug 2014 16:55:21 +0000 (18:55 +0200)]
namespace: add support for custom kdbus endpoint

If a path to a previously created custom kdbus endpoint is passed in,
bind-mount a new devtmpfs that contains a 'bus' node, which in turn in
bind-mounted with the custom endpoint. This tmpfs then mounted over the
kdbus subtree that refers to the current bus.

This way, we can fake the bus node in order to lock down services with
a kdbus custom endpoint policy.

6 years agobus: parse BusPolicy directive in service files
Daniel Mack [Mon, 18 Aug 2014 20:42:28 +0000 (22:42 +0200)]
bus: parse BusPolicy directive in service files

Add a new directive called BusPolicy to define custom endpoint policies. If
one such directive is given, an endpoint object in the service's ExecContext is
created and the given policy is added to it.

6 years agobus: add code to create custom endpoints and set their policy
Daniel Mack [Mon, 18 Aug 2014 17:58:42 +0000 (19:58 +0200)]
bus: add code to create custom endpoints and set their policy

Custom endpoints are alternative connection points to a bus, allowing
specific policy to be uploaded.

Add two functions to bus-kernel. One to create such endpoints, and another
one for setting a policy for them.

6 years agobus: add kdbus endpoint types
Daniel Mack [Mon, 18 Aug 2014 17:55:32 +0000 (19:55 +0200)]
bus: add kdbus endpoint types

Add types to describe endpoints and associated policy entries,
and add a BusEndpoint instace to ExecContext.

6 years agobus: factor out bus policy items
Daniel Mack [Mon, 18 Aug 2014 20:07:47 +0000 (22:07 +0200)]
bus: factor out bus policy items

In order to re-use the policy definitions, factor them out into their own

6 years agohwdb: Update database of Bluetooth company identifiers
Marcel Holtmann [Mon, 8 Sep 2014 03:06:18 +0000 (05:06 +0200)]
hwdb: Update database of Bluetooth company identifiers

6 years agoman: fix references to systemctl man page which is now in section 1
Michael Biebl [Sat, 6 Sep 2014 11:43:25 +0000 (13:43 +0200)]
man: fix references to systemctl man page which is now in section 1

6 years agoupdate TODO
Lennart Poettering [Fri, 5 Sep 2014 19:49:23 +0000 (21:49 +0200)]
update TODO

6 years agoexit-status: fix URL in comment
Daniel Mack [Fri, 5 Sep 2014 11:48:05 +0000 (13:48 +0200)]
exit-status: fix URL in comment

The LSB sites have moved, so update the URL.

6 years agoexec: move code executed after fork into exec_child()
Daniel Mack [Sat, 23 Aug 2014 14:02:21 +0000 (16:02 +0200)]
exec: move code executed after fork into exec_child()

This factors out one conditional branch that has grown way too big, and
makes the code more readable by using return statements rather than jump

6 years agoexec: factor out most function arguments of exec_spawn() to ExecParameters
Daniel Mack [Sat, 23 Aug 2014 13:28:37 +0000 (15:28 +0200)]
exec: factor out most function arguments of exec_spawn() to ExecParameters

This way, the list of arguments to that function gets more comprehensive,
and we can get around passing lots of NULL and 0 arguments from socket.c,
swap.c and mount.c.

It also allows for splitting up the code in exec_spawn().

While at it, make ExecContext const in execute.c.

6 years agoman: make it more clear that the concepts systemctl(1) manage are introduced in syste...
Lennart Poettering [Thu, 4 Sep 2014 19:41:54 +0000 (21:41 +0200)]
man: make it more clear that the concepts systemctl(1) manage are introduced in systemd(1)

Based on a suggestion of Ken Coar.

6 years agohibernate-resume: let's move all hibernate-resume tools into the same directory
Lennart Poettering [Thu, 4 Sep 2014 19:40:00 +0000 (21:40 +0200)]
hibernate-resume: let's move all hibernate-resume tools into the same directory

They are closely related, so let's move them together, and clean up the
.c file naming while we are at it.

6 years agonetworkd: link - allow loopback links to be manage, but ignore DHCP/IPv4LL
Tom Gundersen [Thu, 4 Sep 2014 18:54:08 +0000 (20:54 +0200)]
networkd: link - allow loopback links to be manage, but ignore DHCP/IPv4LL

6 years agobuild: don't install busname units and target if kdbus support is disabled
Michael Biebl [Wed, 3 Sep 2014 21:34:29 +0000 (23:34 +0200)]
build: don't install busname units and target if kdbus support is disabled

6 years agonetworkd: link - clarify log message when receiving address for unknown link
Tom Gundersen [Thu, 4 Sep 2014 12:16:56 +0000 (14:16 +0200)]
networkd: link - clarify log message when receiving address for unknown link

6 years agonetworkd: link - do not manage loopback links
Tom Gundersen [Thu, 4 Sep 2014 11:40:24 +0000 (13:40 +0200)]
networkd: link - do not manage loopback links


6 years agonetworkd: link - save link flags when the link is added
Tom Gundersen [Thu, 4 Sep 2014 12:10:43 +0000 (14:10 +0200)]
networkd: link - save link flags when the link is added

Don't wait for the link to be fully synchronised.

6 years agonetworkd: move carrier gained/lost handling from link_update_flags() to link_update()
Tom Gundersen [Thu, 4 Sep 2014 12:05:54 +0000 (14:05 +0200)]
networkd: move carrier gained/lost handling from link_update_flags() to link_update()

This allows us also to simplify link_has_carrier() a bit.

6 years agoUpdate TODO
Zbigniew Jędrzejewski-Szmek [Thu, 4 Sep 2014 02:12:51 +0000 (22:12 -0400)]
Update TODO

6 years agoman: fix typo
Zbigniew Jędrzejewski-Szmek [Thu, 4 Sep 2014 02:07:29 +0000 (22:07 -0400)]
man: fix typo

6 years agosystemd: fix argument ordering in UnsetAndSetEnvironment
Zbigniew Jędrzejewski-Szmek [Thu, 4 Sep 2014 02:22:38 +0000 (22:22 -0400)]
systemd: fix argument ordering in UnsetAndSetEnvironment

Fixup for v208-615-g718db96199.

6 years agolocaled: check for partially matching converted keymaps
Zbigniew Jędrzejewski-Szmek [Thu, 4 Sep 2014 02:55:54 +0000 (22:55 -0400)]
localed: check for partially matching converted keymaps

If a user specifies multiple X11 keymaps, with a (at least the first
one) nonempty variant, and we don't match the whole combo, use
a converted keymap which includes the variant in preference to
the default, variantless, keymap.

E.g.: We would convert X11 config "layout=fr variant=mac" to "fr-mac",
but "layout=fr,us variant=mac," to "fr", because we don't have a
converted keymap which would match "fr,us", and we don't have a legacy
mapping for "fr,us". This is unexpected, and if we cannot match both,
it is still better to match the primary mapping and use "fr-mac".

6 years agolocaled: introduce helper function to simplify matching
Zbigniew Jędrzejewski-Szmek [Thu, 4 Sep 2014 02:55:52 +0000 (22:55 -0400)]
localed: introduce helper function to simplify matching

6 years agolocaled: log locale/keymap changes in detail
Zbigniew Jędrzejewski-Szmek [Thu, 4 Sep 2014 02:55:16 +0000 (22:55 -0400)]
localed: log locale/keymap changes in detail

Converting X11 to legacy keymaps and back is a fucking mess. Let's
make it at least possible to request detailed logs of what is being
changed and why (LOG_DEBUG level).

At LOG_INFO level, we would log the requested change of X11 or console
keymap, but not the resulting change after conversion to console or X11.
Make sure that every change of configuration on disk has a matching
line in the logs.

6 years agolocaled: remove free_and_copy
Zbigniew Jędrzejewski-Szmek [Thu, 4 Sep 2014 02:53:23 +0000 (22:53 -0400)]
localed: remove free_and_copy

It was mostly a duplicate of free_and_strdup().

6 years agolocaled: double free in error path and modernization
Zbigniew Jędrzejewski-Szmek [Wed, 3 Sep 2014 14:28:24 +0000 (10:28 -0400)]
localed: double free in error path and modernization

Very unlikely to trigger, but in principle strv_free
could be called twice: once explictly, and once from cleanup.

6 years agobuild-sys: configure option to disable hibernation
Umut Tezduyar Lindskog [Tue, 2 Sep 2014 10:31:49 +0000 (12:31 +0200)]
build-sys: configure option to disable hibernation

6 years agoman: two fixes, reported on irc by 'wget'
Lennart Poettering [Wed, 3 Sep 2014 17:31:22 +0000 (19:31 +0200)]
man: two fixes, reported on irc by 'wget'

6 years agoupdate TODO
Lennart Poettering [Wed, 3 Sep 2014 16:59:17 +0000 (18:59 +0200)]
update TODO

6 years agobase-file-system: always generate error messages locally
Lennart Poettering [Wed, 3 Sep 2014 17:00:21 +0000 (19:00 +0200)]
base-file-system: always generate error messages locally

Functions either should generate error messages for everything they do
themselves, or for nothing and let the caller do it. But they certainly
shouldn't generate errors for some messages but not for others. Since
the function in this case is one that generates messages on its own, it
really should do that for everything, not just for some things, hence.

6 years agoupdate TODO
Lukas Nykryn [Wed, 3 Sep 2014 11:59:59 +0000 (13:59 +0200)]
update TODO

Yum was creating <container>/var/run/ and hence this directory
was created before filesystem package could create the symlink
/var/run -> /run.
This should be now fixed in yum.

6 years agoinitrd-parse-etc.service: ignore return code of daemon-reload
Harald Hoyer [Wed, 3 Sep 2014 11:28:31 +0000 (13:28 +0200)]
initrd-parse-etc.service: ignore return code of daemon-reload

It seems the return code of systemctl daemon-reload can be !=0 in some
circumstances, which causes a failure of the unit and breaks booting in
the initrd.

6 years agobase_filesystem_create: do not try to create "/root" if it exists
Harald Hoyer [Wed, 3 Sep 2014 11:22:40 +0000 (13:22 +0200)]
base_filesystem_create: do not try to create "/root" if it exists

The check, if the directory/file already exists is only executed, if
there is a symlink target specified. In case of "/root", there is none,
so it is unconditionally tried to create the directory.

In case of a readonly filesystem, errno != EEXIST, but errno == EROFS,
so base_filesystem_create() and switch_root does not succeed.

This patch checks for existance not only in the symlink case.

6 years agoman: fix file extension in udev rules example
Zbigniew Jędrzejewski-Szmek [Tue, 2 Sep 2014 23:37:04 +0000 (19:37 -0400)]
man: fix file extension in udev rules example

6 years agoRevert "timesyncd: remove retry_timer logic which is covered by the server timeout"
Kay Sievers [Tue, 2 Sep 2014 13:28:56 +0000 (15:28 +0200)]
Revert "timesyncd: remove retry_timer logic which is covered by the server timeout"

This reverts commit 665c6a9eab46b0b253af6566ca9fc70c866b3fcd.

On Tue, Sep 2, 2014 at 3:17 PM, Miroslav Lichvar <> wrote:
> With the other patch allowing missed replies included it's now getting
> stuck as there is no timer to send the 2nd and 3rd request.

6 years agotimesyncd: don't reset polling interval when reselecting server
Kay Sievers [Tue, 2 Sep 2014 12:33:59 +0000 (14:33 +0200)]
timesyncd: don't reset polling interval when reselecting server

Original patch from: Miroslav Lichvar <>

6 years agotimesyncd: allow two missed replies before reselecting server
Miroslav Lichvar [Tue, 2 Sep 2014 12:29:51 +0000 (14:29 +0200)]
timesyncd: allow two missed replies before reselecting server

After receiving a reply from the server, allow two missed replies before
switching to another server to avoid unnecessary clock hopping when
packets are getting lost in the network.

6 years agotimesyncd: remove retry_timer logic which is covered by the server timeout
Kay Sievers [Tue, 2 Sep 2014 12:27:00 +0000 (14:27 +0200)]
timesyncd: remove retry_timer logic which is covered by the server timeout

6 years agotimesyncd: wait before reconnecting to first server
Miroslav Lichvar [Wed, 27 Aug 2014 14:47:24 +0000 (16:47 +0200)]
timesyncd: wait before reconnecting to first server

When all servers are exhausted, wait for one poll interval before trying
to connect again to the first server in the list. Also, keep increasing
the polling interval to make sure a client not getting any valid replies
will not send requests to any server more frequently than is allowed by
the maximum polling interval.