platform/upstream/systemd.git
8 years agosd-bus: correct size calculation in DBus fd receive
Michal Schmidt [Wed, 16 Sep 2015 20:55:02 +0000 (22:55 +0200)]
sd-bus: correct size calculation in DBus fd receive

The size of the allocated array for received file descriptors was
incorrectly calculated. This did not matter when a single file
descriptor was received, but for more descriptors the allocation was
insufficient.

8 years agoMerge pull request #1269 from zonque/netcls
Lennart Poettering [Wed, 16 Sep 2015 18:59:31 +0000 (20:59 +0200)]
Merge pull request #1269 from zonque/netcls

cgroup: add support for net_cls controllers

8 years agoMerge pull request #1279 from teg/resolved-cname-cache
Daniel Mack [Wed, 16 Sep 2015 15:59:11 +0000 (17:59 +0200)]
Merge pull request #1279 from teg/resolved-cname-cache

resolevd: cache - improve CNAME handling

8 years agoresolved: cache - cache what we can of negative redirect chains
Tom Gundersen [Thu, 3 Sep 2015 23:58:20 +0000 (01:58 +0200)]
resolved: cache - cache what we can of negative redirect chains

When a NXDATA or a NODATA response is received for an alias it may
include CNAME records from the redirect chain. We should cache the
response for each of these names to avoid needless roundtrips in
the future.

It is not sufficient to do the negative caching only for the
canonical name, as the included redirection chain is not guaranteed
to be complete. In fact, only the final CNAME record from the chain
is guaranteed to be included.

We take care not to cache entries that redirects outside the current
zone, as the SOA will then not be valid.

8 years agoresolved: cache - handle CNAME redirection
Tom Gundersen [Mon, 17 Aug 2015 05:56:57 +0000 (07:56 +0200)]
resolved: cache - handle CNAME redirection

CNAME records are special in the way they are treated by DNS servers,
and our cache should mimic that behavior: In case a domain name has an
alias, its CNAME record is returned in place of any other.

Our cache was not doing this despite caching the CNAME records, this
entailed needless lookups to re-resolve the CNAME.

8 years agoresolved: cache - only allow putting a single question key at a time
Tom Gundersen [Thu, 3 Sep 2015 23:01:27 +0000 (01:01 +0200)]
resolved: cache - only allow putting a single question key at a time

Only one key is allowed per transaction now, so let's simplify things and only allow putting
one question key into the cache at a time.

8 years agoresolved: rr - introduce dns_resource_key_new_redirect()
Tom Gundersen [Thu, 3 Sep 2015 23:56:23 +0000 (01:56 +0200)]
resolved: rr - introduce dns_resource_key_new_redirect()

Takes a key and CNAME RR and returns the canonical RR of the right
type. Make use of this in dns_question_redirect().

8 years agoresolved: rr - introduce dns_resource_key_new_cname()
Tom Gundersen [Thu, 3 Sep 2015 22:15:48 +0000 (00:15 +0200)]
resolved: rr - introduce dns_resource_key_new_cname()

Creates a new CNAME RR key with the same class and name as an existing key.

8 years agoresolved: cache - clarify logging
Tom Gundersen [Mon, 17 Aug 2015 06:38:48 +0000 (08:38 +0200)]
resolved: cache - clarify logging

8 years agoMerge pull request #1278 from michich/nicer-asserts
Lennart Poettering [Wed, 16 Sep 2015 14:27:00 +0000 (16:27 +0200)]
Merge pull request #1278 from michich/nicer-asserts

nicer assert messages

8 years agobasic: nicer xsprintf and xstrftime assert messages
Michal Schmidt [Mon, 14 Sep 2015 13:53:47 +0000 (15:53 +0200)]
basic: nicer xsprintf and xstrftime assert messages

It's nicer if the assertion failure message from a bad use of xsprintf
actually mentions xsprintf instead of the expression the macro is
implemented as.

The assert_message_se macro was added in the previous commit as an
internal helper, but it can also be used for customizing assertion
failure messages like in this case.

Example:
  char buf[10];
  xsprintf(buf, "This is a %s message.\n", "long");

Before:
  Assertion '(size_t) snprintf(buf, ELEMENTSOF(buf), "This is a %s
  message.\n", "long") < ELEMENTSOF(buf)' failed at foo.c:6, function
  main(). Aborting.

After:
  Assertion 'xsprintf: buf[] must be big enough' failed at foo.c:6,
  function main(). Aborting.

8 years agobasic: nicer assert messages
Michal Schmidt [Mon, 14 Sep 2015 13:53:36 +0000 (15:53 +0200)]
basic: nicer assert messages

Make sure the assert expression is not macro-expanded before
stringification. This makes several assertion failure messages more
readable.

As an example:
  assert(streq("foo", "bar"));

I'd rather see this:

Assertion 'streq("foo", "bar")' failed at foo.c:5, function main(). Aborting.

...than this, though awesome, incomprehensible truncated mess:

Assertion '(__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ((
"foo")) && __builtin_constant_p (("bar")) && (__s1_len = strlen (("foo")), __s2_
len = strlen (("bar")), (!((size_t)(const void *)((("foo")) + 1) - (size_t)(cons
t void *)(("foo")) == 1) || __s1_len >= 4) && (!((size_t)(const void *)((("bar")
) + 1) - (size_t)(const void *)(("bar")) == 1) || __s2_len >= 4)) ? __builtin_st
rcmp (("foo"), ("bar")) : (__builtin_constant_p (("foo")) && ((size_t)(const voi
d *)((("foo")) + 1) - (size_t)(const void *)(("foo")) == 1) && (__s1_len = strle
n (("foo")), __s1_len < 4) ? (__builtin_constant_p (("bar")) && ((size_t)(const
void *)((("bar")) + 1) - (size_t)(const void *)(("bar")) == 1) ? __builtin_strcm
p (("foo"), ("bar")) : (__extension__ ({ const unsigned char *__s2 = (const unsi
gned char *) (const char *) (("bar")); int __result = (((const unsigned char *)
(const char *) (("foo")))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __
result = (((const unsigned char *) (const char *) (("foo")))[1] - __s2[1]); if (
__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const cha
r *) (("foo")))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((
const unsigned char *) (const char *) (("foo")))[3] - __s2[3]); } } __result; })
)) : (__builtin_constant_p (("bar")) && ((size_t)(const void *)((("bar")) + 1) -
 (size_t)(const void *)(("bar")) == 1) && (__s2_len = strlen (("bar")), __s2_len
 < 4) ? (__builtin_constant_p (("foo")) && ((size_t)(const void *)((("foo")) + 1
) - (size_t)(const void *)(("foo")) == 1) ? __builtin_strcmp (("foo"), ("bar"))
: (- (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (cons
t char *) (("foo")); int __result = (((const unsigned char *) (const char *) (("
bar")))[0] - __s2[0]); if (__s2_len > 0 && __result == 0) { __result = (((const
unsigned char *) (const char *) (("bar")))[1] - __s2[1]); if (__s2_len > 1 && __
result == 0) { __result = (((const unsigned char *) (const char *) (("bar")))[2]
 - __s2[2]); if (__s2_len > 2 && __result == 0)

8 years agobasic: make sure argument of ELEMENTSOF is an array
Michal Schmidt [Mon, 14 Sep 2015 18:32:17 +0000 (20:32 +0200)]
basic: make sure argument of ELEMENTSOF is an array

Using ELEMENTSOF on a pointer will result in a compilation error.

8 years agocgroup: add support for net_cls controllers
Daniel Mack [Thu, 15 Jan 2015 19:08:42 +0000 (20:08 +0100)]
cgroup: add support for net_cls controllers

Add a new config directive called NetClass= to CGroup enabled units.
Allowed values are positive numbers for fix assignments and "auto" for
picking a free value automatically, for which we need to keep track of
dynamically assigned net class IDs of units. Introduce a hash table for
this, and also record the last ID that was given out, so the allocator
can start its search for the next 'hole' from there. This could
eventually be optimized with something like an irb.

The class IDs up to 65536 are considered reserved and won't be
assigned automatically by systemd. This barrier can be made a config
directive in the future.

Values set in unit files are stored in the CGroupContext of the
unit and considered read-only. The actually assigned number (which
may have been chosen dynamically) is stored in the unit itself and
is guaranteed to remain stable as long as the unit is active.

In the CGroup controller, set the configured CGroup net class to
net_cls.classid. Multiple unit may share the same net class ID,
and those which do are linked together.

8 years agoMerge pull request #1270 from frandieguez/master
Daniel Mack [Tue, 15 Sep 2015 09:16:06 +0000 (11:16 +0200)]
Merge pull request #1270 from frandieguez/master

Add Galician translations

8 years agoAdd Galician language to LINGUAS file
Fran Dieguez [Mon, 14 Sep 2015 22:20:51 +0000 (00:20 +0200)]
Add Galician language to LINGUAS file

8 years agoAdded Galician translations
Fran Dieguez [Mon, 14 Sep 2015 22:20:21 +0000 (00:20 +0200)]
Added Galician translations

8 years agoMerge pull request #1250 from g2p/master
Lennart Poettering [Mon, 14 Sep 2015 21:19:03 +0000 (23:19 +0200)]
Merge pull request #1250 from g2p/master

Hook more properties for transient units

8 years agoMerge pull request #1267 from systemd-mailing-devs/1442233013-14985-1-git-send-email...
Daniel Mack [Mon, 14 Sep 2015 15:27:11 +0000 (17:27 +0200)]
Merge pull request #1267 from systemd-mailing-devs/1442233013-14985-1-git-send-email-hdegoede@redhat.com

hwdb: Add Thinkpad X1 carbon 3rd gen to 70-pointingstick.hwdb

8 years agohwdb: Add Thinkpad X1 carbon 3rd gen to 70-pointingstick.hwdb
Hans de Goede [Mon, 14 Sep 2015 12:16:53 +0000 (14:16 +0200)]
hwdb: Add Thinkpad X1 carbon 3rd gen to 70-pointingstick.hwdb

Like many other recent thinkpads the factory default pointingstick
sensitivity on these devices is quite low, making the pointingstick
very slow in moving the cursor.

This extends the existing hwdb rules for tweaking the sensitivity to
also apply to the X1 carbon 3rd gen model.

BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1200717
8 years agoMerge pull request #1259 from martinpitt/master
Daniel Mack [Mon, 14 Sep 2015 08:02:36 +0000 (10:02 +0200)]
Merge pull request #1259 from martinpitt/master

keymap: Add Corsair K70

8 years agokeymap: Add Corsair K70
Martin Pitt [Mon, 14 Sep 2015 07:26:19 +0000 (09:26 +0200)]
keymap: Add Corsair K70

8 years agoMerge pull request #1251 from poettering/cgroups-cleanup
Daniel Mack [Sun, 13 Sep 2015 18:44:30 +0000 (20:44 +0200)]
Merge pull request #1251 from poettering/cgroups-cleanup

cgroups cleanup + other fixes

8 years agoMerge pull request #1253 from victorenator/master
Daniel Mack [Sun, 13 Sep 2015 17:44:50 +0000 (19:44 +0200)]
Merge pull request #1253 from victorenator/master

po: update Belarusian translation

8 years agopo: update Belarusian translation
Viktar Vauchkevich [Sat, 12 Sep 2015 13:47:18 +0000 (16:47 +0300)]
po: update Belarusian translation

8 years agocgroup: unify how we invalidate cgroup controller settings
Lennart Poettering [Fri, 11 Sep 2015 16:21:53 +0000 (18:21 +0200)]
cgroup: unify how we invalidate cgroup controller settings

Let's make sure that we follow the same codepaths when adjusting a
cgroup property via the dbus SetProperty() call, and when we execute the
StartupCPUShares= effect.

8 years agotransaction: clarify via void-casting that we ignore the pipe2() return value for...
Lennart Poettering [Fri, 11 Sep 2015 16:18:01 +0000 (18:18 +0200)]
transaction: clarify via void-casting that we ignore the pipe2() return value for a reason

8 years agocore: invalidate idle pipe event source in manager_close_idle_pipe()
Lennart Poettering [Fri, 11 Sep 2015 16:15:58 +0000 (18:15 +0200)]
core: invalidate idle pipe event source in manager_close_idle_pipe()

In all occasions when this function is called we do so anyway, so let's
move this inside, to make things easier.

8 years agoexecute: fix return type from write()
Lennart Poettering [Fri, 11 Sep 2015 16:15:08 +0000 (18:15 +0200)]
execute: fix return type from write()

8 years agoexecute: invalidate idle pipe after use
Lennart Poettering [Fri, 11 Sep 2015 16:14:11 +0000 (18:14 +0200)]
execute: invalidate idle pipe after use

Not strictly necessary, but makes clear the fds are invalidated. Make
sure we do the same here as in most other cases.

8 years agocore: allocate sets of startup and failed units on-demand
Lennart Poettering [Fri, 11 Sep 2015 15:25:35 +0000 (17:25 +0200)]
core: allocate sets of startup and failed units on-demand

There's a good chance we never needs these sets, hence allocate them
only when needed.

8 years agotimesyncd: fix how we print a PID
Lennart Poettering [Fri, 11 Sep 2015 14:49:12 +0000 (16:49 +0200)]
timesyncd: fix how we print a PID

8 years agocore: refactor cpu shares/blockio weight cgroup logic
Lennart Poettering [Fri, 11 Sep 2015 14:48:24 +0000 (16:48 +0200)]
core: refactor cpu shares/blockio weight cgroup logic

Let's stop using the "unsigned long" type for weights/shares, and let's
just use uint64_t for this, as that's what we expose on the bus.

Unify parsers, and always validate the range for these fields.

Correct the default blockio weight to 500, since that's what the kernel
actually uses.

When parsing the weight/shares settings from unit files accept the empty
string as a way to reset the weight/shares value. When getting it via
the bus, uniformly map (uint64_t) -1 to unset.

Open up StartupCPUShares= and StartupBlockIOWeight= to transient units.

8 years agoutil: remove ring.[ch] + pty.[ch] and tests
Lennart Poettering [Fri, 11 Sep 2015 14:26:31 +0000 (16:26 +0200)]
util: remove ring.[ch] + pty.[ch] and tests

This was used by consoled, which was removed, let's remove this too now.

8 years agoTODO
Lennart Poettering [Fri, 11 Sep 2015 16:28:03 +0000 (18:28 +0200)]
TODO

8 years agoHook more properties for transient units
Gabriel de Perthuis [Thu, 10 Sep 2015 14:45:28 +0000 (16:45 +0200)]
Hook more properties for transient units

systemd-run can now launch units with PrivateTmp, PrivateDevices,
PrivateNetwork, NoNewPrivileges set.

8 years agoMerge pull request #1248 from lnykryn/loginctl-show-v2
Lennart Poettering [Fri, 11 Sep 2015 14:28:36 +0000 (16:28 +0200)]
Merge pull request #1248 from lnykryn/loginctl-show-v2

loginctl: print nontrivial properties in logictl show-*

8 years agologinctl: print nontrivial properties in logictl show-*
Lukas Nykryn [Fri, 11 Sep 2015 11:37:59 +0000 (13:37 +0200)]
loginctl: print nontrivial properties in logictl show-*

8 years agoMerge pull request #1245 from evverx/kill-control-on-timeout
Lennart Poettering [Fri, 11 Sep 2015 12:44:45 +0000 (14:44 +0200)]
Merge pull request #1245 from evverx/kill-control-on-timeout

core: kill processes started due to the ExecReload= on timeout

8 years agocore: kill processes started due to the ExecReload= on timeout
Evgeny Vereshchagin [Fri, 11 Sep 2015 08:42:35 +0000 (11:42 +0300)]
core: kill processes started due to the ExecReload= on timeout

8 years agoMerge pull request #1227 from intelfx/systemctl-legacy-tools-polkit
Lennart Poettering [Thu, 10 Sep 2015 17:53:31 +0000 (19:53 +0200)]
Merge pull request #1227 from intelfx/systemctl-legacy-tools-polkit

systemctl: fix various aspects of polkit authorization in legacy tools.

8 years agoMerge pull request #1222 from poettering/image-ops-settings
Daniel Mack [Thu, 10 Sep 2015 17:18:18 +0000 (19:18 +0200)]
Merge pull request #1222 from poettering/image-ops-settings

machine: when removing, renaming, cloning images also care for .nspaw…

8 years agoMerge pull request #1239 from poettering/cgroup-pids
Daniel Mack [Thu, 10 Sep 2015 17:11:29 +0000 (19:11 +0200)]
Merge pull request #1239 from poettering/cgroup-pids

core: add support for the "pids" cgroup controller

8 years agoMerge pull request #1242 from poettering/no-off_t
Daniel Mack [Thu, 10 Sep 2015 17:01:25 +0000 (19:01 +0200)]
Merge pull request #1242 from poettering/no-off_t

Drop usage of off_t

8 years agocore: add support for the "pids" cgroup controller
Lennart Poettering [Thu, 10 Sep 2015 10:32:16 +0000 (12:32 +0200)]
core: add support for the "pids" cgroup controller

This adds support for the new "pids" cgroup controller of 4.3 kernels.
It allows accounting the number of tasks in a cgroup and enforcing
limits on it.

This adds two new setting TasksAccounting= and TasksMax= to each unit,
as well as a gloabl option DefaultTasksAccounting=.

This also updated "cgtop" to optionally make use of the new
kernel-provided accounting.

systemctl has been updated to show the number of tasks for each service
if it is available.

This patch also adds correct support for undoing memory limits for units
using a MemoryLimit=infinity syntax. We do the same for TasksMax= now
and hence keep things in sync here.

8 years agoupdate TODO
Lennart Poettering [Thu, 10 Sep 2015 16:18:58 +0000 (18:18 +0200)]
update TODO

8 years agotree-wide: never use the off_t unless glibc makes us use it
Lennart Poettering [Thu, 10 Sep 2015 16:16:18 +0000 (18:16 +0200)]
tree-wide: never use the off_t unless glibc makes us use it

off_t is a really weird type as it is usually 64bit these days (at least
in sane programs), but could theoretically be 32bit. We don't support
off_t as 32bit builds though, but still constantly deal with safely
converting from off_t to other types and back for no point.

Hence, never use the type anymore. Always use uint64_t instead. This has
various benefits, including that we can expose these values directly as
D-Bus properties, and also that the values parse the same in all cases.

8 years agoMerge pull request #1236 from evverx/systemctl-requisite-of
Lennart Poettering [Thu, 10 Sep 2015 14:40:04 +0000 (16:40 +0200)]
Merge pull request #1236 from evverx/systemctl-requisite-of

systemctl: add RequisiteOf* as inverses of Requisite and RequisiteOverridable

8 years agoMerge pull request #1238 from again4you/devel/fix_smack_mtab
Lennart Poettering [Thu, 10 Sep 2015 14:36:07 +0000 (16:36 +0200)]
Merge pull request #1238 from again4you/devel/fix_smack_mtab

smack: label /etc/mtab as "_" when '--with-smack-run-label' is enabled.

8 years agosmack: label /etc/mtab as "_" when '--with-smack-run-label' is enabled.
Sangjung Woo [Thu, 10 Sep 2015 12:52:39 +0000 (21:52 +0900)]
smack: label /etc/mtab as "_" when '--with-smack-run-label' is enabled.

/etc/mtab should be labeled as "_", even though systemd has its own
smack label using '--with-smack-run-label' configuration. This is mainly
because all processes could read that file and the origin of this file
(i.e. /proc/mounts) is labeled as "_". This labels /etc/mtab as "_" when
'--with-smack-run-label' is enabled.

8 years agosystemctl: add RequisiteOf* as inverses of Requisite and RequisiteOverridable
Evgeny Vereshchagin [Thu, 10 Sep 2015 11:49:29 +0000 (14:49 +0300)]
systemctl: add RequisiteOf* as inverses of Requisite and RequisiteOverridable

8 years agoMerge pull request #1226 from poettering/coccinelle-fixes3
Daniel Mack [Thu, 10 Sep 2015 11:46:14 +0000 (13:46 +0200)]
Merge pull request #1226 from poettering/coccinelle-fixes3

Third round of Coccinelle fixes

8 years agosystemctl: improve clarity of error messages in the logind path
Ivan Shapovalov [Wed, 9 Sep 2015 21:41:46 +0000 (00:41 +0300)]
systemctl: improve clarity of error messages in the logind path

8 years agosystemctl: relax permission checks in halt_main()
Ivan Shapovalov [Wed, 9 Sep 2015 13:06:49 +0000 (16:06 +0300)]
systemctl: relax permission checks in halt_main()

Thus we allow (non-interactive) polkit auth to kick in for legacy commands
(halt, poweroff, reboot, telinit) as well.

Fixes (another aspect of) issue #213.

8 years agosystemctl: fix logind bus call error handling in halt_main()
Ivan Shapovalov [Wed, 9 Sep 2015 13:04:35 +0000 (16:04 +0300)]
systemctl: fix logind bus call error handling in halt_main()

Handle -EOPNOTSUPP and -EINPROGRESS like in start_special().

8 years agosystemctl: minor: use IN_SET() instead of repeated equality checks.
Ivan Shapovalov [Wed, 9 Sep 2015 13:01:10 +0000 (16:01 +0300)]
systemctl: minor: use IN_SET() instead of repeated equality checks.

8 years agoMerge pull request #1234 from medhefgo/master
Lennart Poettering [Thu, 10 Sep 2015 10:10:44 +0000 (12:10 +0200)]
Merge pull request #1234 from medhefgo/master

cryptsetup-generator: Properly check return code

8 years agocryptsetup-generator: Properly check return code
Jan Janssen [Thu, 10 Sep 2015 08:23:49 +0000 (10:23 +0200)]
cryptsetup-generator: Properly check return code

8 years agoMerge pull request #1230 from swem/master
Martin Pitt [Thu, 10 Sep 2015 04:56:44 +0000 (06:56 +0200)]
Merge pull request #1230 from swem/master

Add microphone mute keymap for Dell Precision

8 years agoAdd microphone mute keymap for Dell Precision
Chen-Han Hsiao (Stanley) [Thu, 10 Sep 2015 03:20:50 +0000 (11:20 +0800)]
Add microphone mute keymap for Dell Precision

8 years agosystemctl: legacy tools shall never be interactive
Ivan Shapovalov [Mon, 22 Jun 2015 16:04:38 +0000 (19:04 +0300)]
systemctl: legacy tools shall never be interactive

Fixes (the main concern of) issue #213.

8 years agoMerge pull request #1225 from mbiebl/remove-sphinx-leftover2
Lennart Poettering [Wed, 9 Sep 2015 21:13:58 +0000 (23:13 +0200)]
Merge pull request #1225 from mbiebl/remove-sphinx-leftover2

README: remove obsolete instructions regarding python-systemd/sphinx

8 years agotree-wide: take benefit of the fact that hashmap_free() returns NULL
Lennart Poettering [Wed, 9 Sep 2015 21:12:07 +0000 (23:12 +0200)]
tree-wide: take benefit of the fact that hashmap_free() returns NULL

And set_free() too.

Another Coccinelle patch.

8 years agoREADME: remove obsolete instructions regarding python-systemd/sphinx
Michael Biebl [Wed, 9 Sep 2015 21:10:34 +0000 (23:10 +0200)]
README: remove obsolete instructions regarding python-systemd/sphinx

8 years agotree-wide: make use of the fact that strv_free() returns NULL
Lennart Poettering [Wed, 9 Sep 2015 21:05:10 +0000 (23:05 +0200)]
tree-wide: make use of the fact that strv_free() returns NULL

Another Coccinelle patch.

8 years agoMakefile: fix gardel target
Lennart Poettering [Wed, 9 Sep 2015 21:04:40 +0000 (23:04 +0200)]
Makefile: fix gardel target

8 years agomachine: when removing, renaming, cloning images also care for .nspawn settings file
Lennart Poettering [Wed, 9 Sep 2015 16:51:23 +0000 (18:51 +0200)]
machine: when removing, renaming, cloning images also care for .nspawn settings file

Whenever we remove/rename/clone a machine image, make sure we do the
same for the image's .nspawn settings file.

8 years agoMerge pull request #1220 from zonque/logind-dry-run
Lennart Poettering [Wed, 9 Sep 2015 16:39:01 +0000 (18:39 +0200)]
Merge pull request #1220 from zonque/logind-dry-run

logind: make dry run command line arguments work again (v2)

8 years agosystemctl: add dry-run support for scheduled shutdowns
Daniel Mack [Wed, 9 Sep 2015 15:10:49 +0000 (17:10 +0200)]
systemctl: add dry-run support for scheduled shutdowns

Prefix the action parameter with "dry-" in case the --dry-run command
line switch was passed.

8 years agologind: allow dry run variants for scheduled shutdowns
Daniel Mack [Wed, 9 Sep 2015 15:05:03 +0000 (17:05 +0200)]
logind: allow dry run variants for scheduled shutdowns

Allow passing a "dry-" prefix to the action parameter passed to
.ScheduleShutdown(). When strings with this prefix are passed,
the scheduled action will not take place. Instead, an info message
is logged.

8 years agoMerge pull request #1213 from evverx/systemd-notify-log
Lennart Poettering [Wed, 9 Sep 2015 13:54:41 +0000 (15:54 +0200)]
Merge pull request #1213 from evverx/systemd-notify-log

notify: log error when sd_pid_notify() == 0

8 years agoMerge pull request #1218 from poettering/safe-fclose
Daniel Mack [Wed, 9 Sep 2015 13:45:03 +0000 (15:45 +0200)]
Merge pull request #1218 from poettering/safe-fclose

util: introduce safe_fclose() and port everything over to it

8 years agoREADME: document new /etc/mtab requirement
Daniel Mack [Wed, 9 Sep 2015 13:27:19 +0000 (15:27 +0200)]
README: document new /etc/mtab requirement

8 years agoutil: introduce safe_fclose() and port everything over to it
Lennart Poettering [Wed, 9 Sep 2015 13:20:10 +0000 (15:20 +0200)]
util: introduce safe_fclose() and port everything over to it

Adds a coccinelle script to port things over automatically.

8 years agoMerge pull request #1217 from zonque/free-and-replace
Lennart Poettering [Wed, 9 Sep 2015 13:25:15 +0000 (15:25 +0200)]
Merge pull request #1217 from zonque/free-and-replace

locale: kill free_and_replace()

8 years agolocale: kill free_and_replace()
Daniel Mack [Wed, 9 Sep 2015 13:15:14 +0000 (15:15 +0200)]
locale: kill free_and_replace()

That function really makes little sense, as the open-coded variant
is much more readable. Also, if the 2nd argument is NULL, mfree()
is a much better candidate.

Convert the only users of this function in localed, and then remove it
entirely.

8 years agoMerge pull request #1216 from poettering/coccinelle-fixes-2
Daniel Mack [Wed, 9 Sep 2015 13:12:28 +0000 (15:12 +0200)]
Merge pull request #1216 from poettering/coccinelle-fixes-2

Coccinelle fixes 2

8 years agotree-wide: replace while(1) by for(;;) everywhere
Lennart Poettering [Wed, 9 Sep 2015 12:33:32 +0000 (14:33 +0200)]
tree-wide: replace while(1) by for(;;) everywhere

Another Coccinelle script.

8 years agotree-wide: update empty-if coccinelle script to cover empty-while and more
Lennart Poettering [Wed, 9 Sep 2015 12:23:02 +0000 (14:23 +0200)]
tree-wide: update empty-if coccinelle script to cover empty-while and more

Let's also clean up single-line while and for blocks.

8 years agotree-wide: make use of log_error_errno() return value in more cases
Lennart Poettering [Wed, 9 Sep 2015 09:08:23 +0000 (11:08 +0200)]
tree-wide: make use of log_error_errno() return value in more cases

The previous coccinelle semantic patch that improved usage of
log_error_errno()'s return value, only looked for log_error_errno()
invocations with a single parameter after the error parameter. Update
the patch to handle arbitrary numbers of additional arguments.

8 years agosd-bus: drop weird empty lines
David Herrmann [Wed, 9 Sep 2015 12:57:04 +0000 (14:57 +0200)]
sd-bus: drop weird empty lines

We should never put empty lines between `if` and `else if`, unless we use
braces.

8 years agoMerge pull request #1215 from maciejaszek/fds_pass_fixes
Lennart Poettering [Wed, 9 Sep 2015 12:44:52 +0000 (14:44 +0200)]
Merge pull request #1215 from maciejaszek/fds_pass_fixes

sd_pid_notify_with_fds: fix computing msg_controllen

8 years agoMerge pull request #1214 from zonque/mtab
Lennart Poettering [Wed, 9 Sep 2015 12:43:42 +0000 (14:43 +0200)]
Merge pull request #1214 from zonque/mtab

core: freeze execution if /etc/mtab exists

8 years agosd_pid_notify_with_fds: fix computing msg_controllen
Maciej Wereski [Tue, 8 Sep 2015 13:36:30 +0000 (15:36 +0200)]
sd_pid_notify_with_fds: fix computing msg_controllen

CMSG_SPACE(0) may return value other than 0. This caused sendmsg to fail
with EINVAL, when have_pid or n_fds was 0.

8 years agoMerge pull request #1212 from again4you/devel/fix_smack_label_#3
Lennart Poettering [Wed, 9 Sep 2015 12:01:26 +0000 (14:01 +0200)]
Merge pull request #1212 from again4you/devel/fix_smack_label_#3

Wrong smack label of the symlink in CGROUP root directory when enabling '--with-smack-run-label' (v3)

8 years agocore: freeze execution if /etc/mtab exists
Daniel Mack [Wed, 9 Sep 2015 12:00:23 +0000 (14:00 +0200)]
core: freeze execution if /etc/mtab exists

The mount monitor that was added to libmount v2.27 requires /etc/mtab to be
non-existant. As systemd now uses that functionality, we cannot monitor any
mounts anymore, and hence not support .mount units.

Systems that have /etc/mtab around as regular file are unsupported by
systemd since a long time.

This patch makes that condition fatal, so we do not boot up with
non-working mount monitor support.

8 years agonotify: log error when sd_pid_notify() == 0
Evgeny Vereshchagin [Wed, 9 Sep 2015 11:51:58 +0000 (14:51 +0300)]
notify: log error when sd_pid_notify() == 0

8 years agosmack: bugfix the smack label of symlink when '--with-smack-run-label' is set
Sangjung Woo [Tue, 8 Sep 2015 06:09:40 +0000 (15:09 +0900)]
smack: bugfix the smack label of symlink when '--with-smack-run-label' is set

Even though systemd has its own smack label since
'--with-smack-run-label' configuration is set, the smack label of each
CGROUP root directory should have the star (i.e. *) label. This is
mainly because current Linux Kernel set the label in this way.
(Refer to smack_d_instantiate() in security/smack/smack_lsm.c)

However, if systemd has its own smack label and arg_join_controllers is
explicitly set or initialized by initialize_join_controllers() function,
current systemd creates the symlink in CGROUP root directory with its
own smack label as below.

lrwxrwxrwx. 1 root root System  11 Dec 31 16:00 cpu -> cpu,cpuacct
dr-xr-xr-x. 4 root root *        0 Dec 31 16:01 cpu,cpuacct
lrwxrwxrwx. 1 root root System  11 Dec 31 16:00 cpuacct -> cpu,cpuacct

This patch fixes that bug by copying the smack label from the origin.

8 years agosmack: introduce new mac_smack_copy() function
Sangjung Woo [Tue, 8 Sep 2015 05:58:22 +0000 (14:58 +0900)]
smack: introduce new mac_smack_copy() function

This adds a new mac_smack_copy() function in order to read the smack
label from the source and apply it to the destination.

8 years agoimportd: fix typos
Daniel Mack [Wed, 9 Sep 2015 08:10:23 +0000 (10:10 +0200)]
importd: fix typos

8 years agoMerge pull request #1210 from poettering/import-fixes
Daniel Mack [Wed, 9 Sep 2015 08:08:44 +0000 (10:08 +0200)]
Merge pull request #1210 from poettering/import-fixes

cgroup fix, nspawn fix, plus change to download .nspawn files in importd

8 years agoMerge pull request #1207 from poettering/coccinelle-fixes
Daniel Mack [Wed, 9 Sep 2015 07:57:29 +0000 (09:57 +0200)]
Merge pull request #1207 from poettering/coccinelle-fixes

Coccinelle fixes

8 years agonspawn: add missing comma to gperf file
Lennart Poettering [Wed, 9 Sep 2015 06:36:20 +0000 (08:36 +0200)]
nspawn: add missing comma to gperf file

8 years agoMerge pull request #1180 from evverx/dot-from-to-alias-handling
Lennart Poettering [Wed, 9 Sep 2015 06:31:11 +0000 (08:31 +0200)]
Merge pull request #1180 from evverx/dot-from-to-alias-handling

analyze: add alias handling for --{from,to}-pattern options of the dot command

8 years agotree-wide: drop {} from one-line if blocks
Lennart Poettering [Tue, 8 Sep 2015 21:03:38 +0000 (23:03 +0200)]
tree-wide: drop {} from one-line if blocks

Patch via coccinelle.

8 years agotree-wide: make use of log_error_errno() return value
Lennart Poettering [Tue, 8 Sep 2015 17:30:45 +0000 (19:30 +0200)]
tree-wide: make use of log_error_errno() return value

Turns this:

        r = -errno;
        log_error_errno(errno, "foo");

into this:

        r = log_error_errno(errno, "foo");

and this:

        r = log_error_errno(errno, "foo");
        return r;

into this:

        return log_error_errno(errno, "foo");

8 years agotree-wide: don't do assignments within if checks
Lennart Poettering [Tue, 8 Sep 2015 17:14:10 +0000 (19:14 +0200)]
tree-wide: don't do assignments within if checks

Turn this:

       if ((r = foo()) < 0) { ...

into this:

       r = foo();
       if (r < 0) { ...

8 years agotree-wide: drop redundant if checks before safe_close()
Lennart Poettering [Tue, 8 Sep 2015 16:58:28 +0000 (18:58 +0200)]
tree-wide: drop redundant if checks before safe_close()

Replace this:

        if (fd >= 0)
                safe_close(fd);

by this:

        safe_close(fd);

8 years agotree-wide: make more code use safe_close()
Lennart Poettering [Tue, 8 Sep 2015 16:53:19 +0000 (18:53 +0200)]
tree-wide: make more code use safe_close()

Replace this:

        close(fd);
        fd = -1;

write this:

        fd = safe_close(fd);

8 years agotree-wide: use coccinelle to patch a lot of code to use mfree()
Lennart Poettering [Tue, 8 Sep 2015 16:43:11 +0000 (18:43 +0200)]
tree-wide: use coccinelle to patch a lot of code to use mfree()

This replaces this:

        free(p);
        p = NULL;

by this:

        p = mfree(p);

Change generated using coccinelle. Semantic patch is added to the
sources.