Commit Graph
29012 Commits
Author SHA1 Message Date
Christian Brauner 6385cb31ef main: improve RLIMIT_NOFILE handling (#5795)
This has systemd look at /proc/sys/fs/nr_open to find the current maximum of
open files compiled into the kernel and tries to set the RLIMIT_NOFILE max to
it. This has the advantage the value chosen as limit is less arbitrary and also
improves the behavior of systemd in containers that have an rlimit set: When
systemd currently starts in a container that has RLIMIT_NOFILE set to e.g.
100000 systemd will lower it to 65536. With this patch systemd will try to set
the nofile limit to the allowed kernel maximum. If this fails, it will compute
the minimum of the current set value (the limit that is set on the container)
and the maximum value as soft limit and the currently set maximum value as the
maximum value. This way it retains the limit set on the container.
2017-04-26 07:18:10 +03:00
Zbigniew Jędrzejewski-Szmek 26e1f724a6 test-sizeof: print the size of an enum 2017-04-25 21:14:59 -04:00
Zbigniew Jędrzejewski-Szmek e4d85dbb3d shared/extract-word: replace enum with unsigned int to avoid undefined behaviour
../src/basic/extract-word.c:255:22: warning: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Wvarargs]
        va_start(ap, flags);
                     ^
../src/basic/extract-word.c:244:77: note: parameter of type 'ExtractFlags' (aka 'enum ExtractFlags') is declared here
int extract_many_words(const char **p, const char *separators, ExtractFlags flags, ...) {
                                                                            ^
../src/basic/extract-word.c:286:22: warning: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Wvarargs]
        va_start(ap, flags);
                     ^
../src/basic/extract-word.c:244:77: note: parameter of type 'ExtractFlags' (aka 'enum ExtractFlags') is declared here
int extract_many_words(const char **p, const char *separators, ExtractFlags flags, ...) {
                                                                            ^
2 warnings generated.

I think the relevant part of C99 is 6.7.2.2 Enumeration specifiers:

Each enumerated type shall be compatible with char, a signed integer type, or
an unsigned integer type. The choice of type is implementation-defined, but
shall be capable of representing the values of all the members of the
enumeration.

and 7.16.1.4:

The parameter parmN is the identifier of the rightmost parameter in the
variable parameter list in the function definition (the one just before the
...). If the parameter parmN is declared with the register storage class, with
a function or array type, or with a type that is not compatible with the type
that results after application of the default argument promotions, the behavior
is undefined.

This might cause a real issue if the compiler chooses something that is not an
integer for ExtractFlags. Rework the code to avoid the warning, but add an
assert_cc in a large-valued ExtractFlags element is ever defined and the type
is bumped to something wider than an int.
2017-04-25 21:12:52 -04:00
tblume 1f0f4f3bfd importd: support SUSE style checksums supplementary (#5800)
some small changes to make the code look better
2017-04-25 20:37:07 -04:00
David Herrmann c0e7906d20 bus: report builtins in GetManagedObjects() (#5799)
We already report builtin interfaces with InterfacesAdded and InterfacesRemoved. However,
we never reported them in GetManagedObjects(). This might end up confusing callers that
want to use those interfaces (or simply rely on the interface count to be coherent).

Report the builtins for all objects that are queried.
2017-04-25 20:36:30 -04:00
Zbigniew Jędrzejewski-Szmek d482e676a6 Merge pull request #5803 from ssahani/util
config_parser: add util function config_parse_uint8
2017-04-25 20:28:38 -04:00
Michael Biebl 4ffab21849 Merge pull request #5805 from keszybz/apendv-man-rule
meson: add sd_bus_message_appendv alias to man list
2017-04-25 21:16:34 +02:00
Zbigniew Jędrzejewski-Szmek 82b4969045 meson: add sd_bus_message_appendv alias to man list
As generated by "nj update-man-rules".
2017-04-25 14:20:55 -04:00
Michal Koutný d9732d7803 core/device: Use JobRunningTimeoutSec= for device units
Device job timeouts should respect possible device job dependencies so we set
JobRunningTimeoutSec= by default.
2017-04-25 18:00:36 +02:00
Michal Koutný 4195077ab4 fstab-generator: Apply _netdev option also to device units
In case the device field of fstab record is an actual device (not an address)
apply same dependencies to the device unit as to the mount unit, i.e.

> After=network-online.target network.target
> Wants=network-online.targe

It makes sense to start the device expecting job only when network is actually
ready (consider e.g. iSCSI devices) since it is device's implicit dependency.

The eventual implementation should better obtain network flag from udev
database and would also take into account device hierarchy (see [1]).
This patch approximates that by taking the `_netdev` option as a hint from the
user both about the filesystem and underlying device. (For local devices with
network filesystems (e.g. ocfs2), this hint leads to unused dependencies.)

[1] https://lists.freedesktop.org/archives/systemd-devel/2014-October/024718.html
2017-04-25 18:00:36 +02:00
Michael Biebl 8b721196fd Merge pull request #5804 from ssahani/geneve
meson: add geneve to build system
2017-04-25 18:00:32 +02:00
Michal Koutný a2df3ea4ae job: add JobRunningTimeoutSec for JOB_RUNNING state
Unit.JobTimeoutSec starts when a job is enqueued in a transaction. The
introduced distinct Unit.JobRunningTimeoutSec starts only when the job starts
running (e.g. it groups all Exec* commands of a service or spans waiting for a
device period.)

Unit.JobRunningTimeoutSec is intended to be used by default instead of
Unit.JobTimeoutSec for device units where such behavior causes less confusion
(consider a job for a _netdev mount device, with this change the timeout will
start ticking only after the network is ready).
2017-04-25 18:00:29 +02:00
Susant Sahani 9dfed8dd92 meson: add geneve to build system
```
[107/1793] Compiling c object 'src/basic/basic@sta/log.c.o'
In file included from ../src/basic/log.c:44:0:
../src/basic/missing.h:762:6: warning: "HAVE_DECL_IFLA_GENEVE_LABEL" is not defined, evaluates to 0 [-Wundef]
^~~~~~~~~~~~~~~~~~~~~~~~~~~
[108/1793] Compiling c object 'src/basic/basic@sta/path-util.c.o'
In file included from ../src/basic/path-util.c:40:0:
../src/basic/missing.h:762:6: warning: "HAVE_DECL_IFLA_GENEVE_LABEL" is not defined, evaluates to 0 [-Wundef]
^~~~~~~~~~~~~~~~~~~~~~~~~~~

```
2017-04-25 20:30:34 +05:30
Susant Sahani 4c7bd9cf6b networkd: route add missing search for route object.
Probaly this happened during rebase.
2017-04-25 19:59:39 +05:30
Susant Sahani 3ded5bbfda networkd: replace geneve parsers with generic config_parse_uint8 2017-04-25 18:46:04 +05:30
Susant Sahani 134e24e136 config parser: Introduce config_parse_uint8 2017-04-25 18:46:04 +05:30
Evgeny Vereshchagin d5d5e06086 Merge pull request #5704 from keszybz/meson
meson: build systemd using meson
2017-04-25 16:10:15 +03:00
Zbigniew Jędrzejewski-Szmek 399e391fa6 nspawn: check cgroups after parsing options
Same justification as in previous commit.
2017-04-25 08:54:00 -04:00
Zbigniew Jędrzejewski-Szmek 6d9f40d5db cgtop: check cgroups after parsing options
We would try to determine controllers even if not necessary:
<mock-chroot><mock-chroot> sh-4.4# ./systemd-cgtop --help
Failed to determine supported controllers: No medium found
<mock-chroot><mock-chroot> sh-4.4# ./systemd-cgtop --version
Failed to determine supported controllers: No medium found

This broke check-help-systemd-cgtop under mock, but even apart
from that, the program should be able to print --version in any
circumstances.
2017-04-25 08:54:00 -04:00
Zbigniew Jędrzejewski-Szmek d730e2d164 meson: require newest meson and revert m4 patch
This reverts 78b68dcb55.
2017-04-25 08:49:58 -04:00
Zbigniew Jędrzejewski-Szmek 7572aa805c meson: use name arg so check result is reported 2017-04-25 08:49:16 -04:00
Zbigniew Jędrzejewski-Szmek 6e2afb1cab meson: fix checking of linker args
Previous checks did nothing, because cc.has_argument only does compilation,
without any linking. Unfortunately cc.links() cannot be used, because it does
not accept any options. Providing the test file as a static source is easiest,
even if not every elegant.

https://github.com/mesonbuild/meson/issues/1676
2017-04-25 08:49:16 -04:00
Zbigniew Jędrzejewski-Szmek b884196cc1 meson: also indent scripts with 8 spaces 2017-04-25 08:49:16 -04:00
Matija Skala caf222104a fix parenthesis in pager.c (#5798)
- result of dup2 should be compared against 0
- making parenthesis around comparisons just to be sure
2017-04-25 14:44:29 +02:00
Lennart Poettering c6c60780a4 Merge pull request #5752 from ssahani/geneve
networkd: Introduce geneve GEneric NEtwork Virtualization Encapsulation
2017-04-25 12:34:36 +02:00
Susant Sahani b5bf6f645e networkd: make IPv6 route preference configurable (#5700)
The work supports route preference configurable.
i.e. able to set low, medium and high.
2017-04-25 09:32:59 +02:00
Federico 19fe49f62c Export sd_bus_message_append_ap. It is renamed to sd_bus_message_appendv to follow systemd naming conventions. (#5753)
Moreover, man page for sd_bus_message_append is updated with reference to new exposed function.
Makefile-man is updated too, to reflect new alias.
2017-04-25 09:32:24 +02:00
Michal Sekletar f847b8b7df load-fragment: don't print error about incorrect syntax when IPv6 is disabled (#5791) 2017-04-25 09:31:52 +02:00
Amir Yalon 23656d2b95 docs: clarify ExecStop= implications for remaining processes (#5793) 2017-04-25 09:31:29 +02:00
Susant Sahani 6598e04641 networkd: Introduce GENEVE netdev
This work enables cration of geneve tunnel
2017-04-25 10:34:15 +05:30
Susant Sahani ca5e80712e sd-netlink: Add Geneve properties to netlink 2017-04-25 09:44:28 +05:30
Susant Sahani d0780ca905 Add Geneve netlink properties to missing.h 2017-04-25 09:43:41 +05:30
Zbigniew Jędrzejewski-Szmek dd6ab3df74 meson: add git-snapshot target
The output is systemd-<sha1abbrev>.tar.gz in source root.
2017-04-24 19:28:05 -04:00
Zbigniew Jędrzejewski-Szmek ad68714d5c meson: test-ns is manual, not just unsafe 2017-04-24 19:28:05 -04:00
Zbigniew Jędrzejewski-Szmek 5464ec8a8e meson: there is no smack library
Detection would always fail, so this was broken.
Treat this as a binary enable/disable option.
2017-04-24 19:28:04 -04:00
Zbigniew Jędrzejewski-Szmek 80c6fce81c meson: add forgotten tpm support 2017-04-24 19:28:04 -04:00
Zbigniew Jędrzejewski-Szmek 41afb5eb72 meson: use -f{function,data}-sections for optimized builds 2017-04-24 19:28:04 -04:00
Michael Biebl 0da6f39619 meson: allow static linking of systemd-hwdb
Various distros split udev and its helpers into a separate binary
package. In case of Debian this also includes systemd-hwdb.
In Debian, the udev package is not supposed to depend on systemd, so a
dependency on libsystemd-shared.so is not desired. Allow the
systemd-hwdb binary to be linked statically if link-udev-shared is set
to false.

Follow-up for 3a30f21ff8.
2017-04-24 19:25:33 -04:00
Zbigniew Jędrzejewski-Szmek 26bd4b7f9c meson: add forgotten parse_hwdb.py test 2017-04-24 19:25:33 -04:00
Michael Biebl 76c8741060 meson: fix gcrypt config option
Also detect libgpg-error. Require both to be present for HAVE_CRYPT,
even though libgpg-error is only used in src/resolve. If one is available,
the other should be too, so it doesn't seem worth the trouble to make two
separate conditions.
2017-04-24 19:25:33 -04:00
Zbigniew Jędrzejewski-Szmek 36f0387efc meson: add option to disable libacl support 2017-04-24 19:25:33 -04:00
Zbigniew Jędrzejewski-Szmek dc25d2adb5 meson: $DESTDIR might be undefined
This causes an error with -u. Just add an empty fallback.
2017-04-24 19:25:33 -04:00
Zbigniew Jędrzejewski-Szmek 6800fe7f06 meson: define gnu_efi_arch for the arch efi name, fix ldsdir detection
This fixes ldsdir detection under Debian.

v2:
- define gnu_efi_arch for the arch efi include directory name

  In the autotools naming convention, efi_arch and this directory always had
  the same name. But meson.cpu_family() uses a slightly different convention,
  so those two don't always match.
2017-04-24 19:24:36 -04:00
Zbigniew Jędrzejewski-Szmek bf79c7ab96 hwdb: add IBM USB Travel Mouse (MO32BO) (#5787)
Contributed by rderooy. Closes #5785.
2017-04-24 23:02:09 +02:00
tblume 697be0be15 importd: support SUSE style checksums (#5206)
In order to verify a pulled container or disk image, importd only supports
SHA256SUMS files with the detached signature in SHA256SUMS.gpg.
SUSE is using an inline signed file with the name of the image itself and the
suffix .sha256 instead.
This commit adds support for this type of signature files.

It is first attempted to pull the .sha256 file.
If this fails with error 404, the SHA256SUMS and SHA256SUMS.gpg files are
pulled and used for verification.
2017-04-24 20:37:11 +02:00
Lennart Poettering 8ea9aa9e88 Merge pull request #5354 from msekletar/issue-518
service: serialize information about currently executing command
2017-04-24 19:51:34 +02:00
Lennart Poettering fd63f36c02 update TODO 2017-04-24 18:48:10 +02:00
Ivan Shapovalov bd6bcce4d7 fstab-generator: do not skip Before= ordering for noauto mountpoints (#5547) 2017-04-24 18:38:53 +02:00
Michal Sekletar f934644424 sd-journal: return SD_JOURNAL_INVALIDATE only if journal files were actually deleted/moved (#5580)
When caller invokes sd_journal_open() we usually open at least one
directory with journal files. add_root_directory() function increments
current_invalidate_counter. After sd_journal_open() returns
current_invalidate_counter != last_invalidate_counter.

After caller waits for journal events (e.g. waits for new messages in
journal) then it usually calls sd_journal_process(). However, on first
call to sd_journal_process(), function determine_change() returns
SD_JOURNAL_INVALIDATE even though no journal files were
deleted/moved. This is because current_invalidate_counter !=
last_invalidate_counter.

After the fix we make sure counters has the same value before we begin
processing inotify events.
2017-04-24 18:33:12 +02:00
Matija Skala a45e7bb408 redirect stdout/stderr back when closing the pager (#5661) 2017-04-24 18:30:50 +02:00