platform/upstream/systemd.git
5 years agoDisable tools/choose-default-locale.sh when cross compiling
James Hilliard [Sat, 5 Jan 2019 03:28:59 +0000 (11:28 +0800)]
Disable tools/choose-default-locale.sh when cross compiling

5 years agoMerge pull request #11317 from filbranden/docs1
Zbigniew Jędrzejewski-Szmek [Thu, 3 Jan 2019 17:38:57 +0000 (18:38 +0100)]
Merge pull request #11317 from filbranden/docs1

Improvements to systemd.io generation

5 years agoMerge pull request #11244 from yuwata/revert-udev-changes
Zbigniew Jędrzejewski-Szmek [Thu, 3 Jan 2019 15:28:30 +0000 (16:28 +0100)]
Merge pull request #11244 from yuwata/revert-udev-changes

udev: revert bind/unbind patch and one more

5 years agoMerge pull request #11250 from yuwata/dhcp-coding-style-fixes
Zbigniew Jędrzejewski-Szmek [Thu, 3 Jan 2019 14:12:12 +0000 (15:12 +0100)]
Merge pull request #11250 from yuwata/dhcp-coding-style-fixes

dhcp,network: trivial coding style fixes

5 years agolibudev-util: make util_replace_whitespace() read only len characters
Yu Watanabe [Tue, 25 Dec 2018 03:56:48 +0000 (12:56 +0900)]
libudev-util: make util_replace_whitespace() read only len characters

This effectively reverts df8ba4fa0e8be1ff7899d08a4b6be0196c8405a0.

Fixes #11264.

5 years agoPass separate dev_t var to device_path_parse_major_minor
YunQiang Su [Tue, 25 Dec 2018 11:01:17 +0000 (19:01 +0800)]
Pass separate dev_t var to device_path_parse_major_minor

MIPS/O32's st_rdev member of struct stat is unsigned long, which
is 32bit, while dev_t is defined as 64bit, which make some problems
in device_path_parse_major_minor.

Don't pass st.st_rdev, st_mode to device_path_parse_major_minor,
while pass 2 seperate variables. The result of stat is alos copied
out into these 2 variables. Fixes: #11247

5 years agoMerge pull request #11273 from pseyfert/zsh-debugger-completion
Zbigniew Jędrzejewski-Szmek [Thu, 3 Jan 2019 14:00:26 +0000 (15:00 +0100)]
Merge pull request #11273 from pseyfert/zsh-debugger-completion

zsh/coredumpctl: additional completions

5 years agohwdb: Add Lenovo IdeaPad D330 accel mount matrix
howl [Tue, 25 Dec 2018 22:09:52 +0000 (23:09 +0100)]
hwdb: Add Lenovo IdeaPad D330 accel mount matrix

I have the fhd screen with pentium without lte model. Don't know if other models could differ in the accelerometer.

5 years agopo: update Italian translation
Daniele Medri [Wed, 2 Jan 2019 12:52:26 +0000 (13:52 +0100)]
po: update Italian translation

5 years agosleep: install default sleep.conf
Yu Watanabe [Wed, 2 Jan 2019 17:32:57 +0000 (02:32 +0900)]
sleep: install default sleep.conf

Closes #11310.

5 years agotest-json: check absolute and relative difference in floating point test
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 21:49:53 +0000 (22:49 +0100)]
test-json: check absolute and relative difference in floating point test

The test fails under valgrind, so there was an exception for valgrind.
Unfortunately that check only works when valgrind-devel headers are
available during build. But it is possible to have just valgrind installed,
or simply install it after the build, and then "valgrind test-json" would
fail.

It also seems that even without valgrind, this fails on some arm32 CPUs.
Let's do the usual-style test for absolute and relative differences.

5 years agoMerge pull request #11230 from keszybz/version-string-alt
Yu Watanabe [Thu, 3 Jan 2019 12:33:55 +0000 (21:33 +0900)]
Merge pull request #11230 from keszybz/version-string-alt

Generate version string from git describe (alternative approach)

5 years agoman: update color of journal logs in DEBUG level
Yu Watanabe [Wed, 2 Jan 2019 21:21:17 +0000 (06:21 +0900)]
man: update color of journal logs in DEBUG level

Fixes #11303.

5 years agocgroup: s/cgroups? ?v?([0-9])/cgroup v\1/gI
Chris Down [Wed, 2 Jan 2019 20:15:15 +0000 (20:15 +0000)]
cgroup: s/cgroups? ?v?([0-9])/cgroup v\1/gI

Nitpicky, but we've used a lot of random spacings and names in the past,
but we're trying to be completely consistent on "cgroup vN" now.

Generated by `fd -0 | xargs -0 -n1 sed -ri --follow-symlinks 's/cgroups?  ?v?([0-9])/cgroup v\1/gI'`.

I manually ignored places where it's not appropriate to replace (eg.
"cgroup2" fstype and in src/shared/linux).

5 years agoMerge pull request #11274 from yuwata/fix-11272
Yu Watanabe [Wed, 2 Jan 2019 23:29:26 +0000 (08:29 +0900)]
Merge pull request #11274 from yuwata/fix-11272

network: set link state configuring before setting addresses

5 years agodocs: generate index.md in Jekyll
Filipe Brandenburger [Wed, 2 Jan 2019 22:20:39 +0000 (14:20 -0800)]
docs: generate index.md in Jekyll

This uses a {% for %} loop in Jekyll to render the page, from the "title"
information in the Front Matter of the actual page files.

This also makes `make-index-md` build rule unnecessary, since generation is
done by the template engine itself.

Tested this by running Jekyll locally.

5 years agodocs: add a "front matter" snippet to our markdown pages
Filipe Brandenburger [Wed, 2 Jan 2019 22:16:34 +0000 (14:16 -0800)]
docs: add a "front matter" snippet to our markdown pages

It turns out Jekyll (the engine behind GitHub Pages) requires that pages
include a "Front Matter" snippet of YAML at the top for proper rendering.

Omitting it will still render the pages, but including it opens up new
possibilities, such as using a {% for %} loop to generate index.md instead of
requiring a separate script.

I'm hoping this will also fix the issue with some of the pages (notably
CODE_OF_CONDUCT.html) not being available under systemd.io

Tested locally by rendering the website with Jekyll. Before this change, the
*.md files were kept unchanged (so not sure how that even works?!), after this
commit, proper *.html files were generated from it.

5 years agoDocs: Add Missing Space Between Words
Alex Mayer [Wed, 2 Jan 2019 17:53:47 +0000 (12:53 -0500)]
Docs: Add Missing Space Between Words

5 years agotest-network: disable DNS function of dnsmasq
Yu Watanabe [Wed, 26 Dec 2018 22:31:26 +0000 (23:31 +0100)]
test-network: disable DNS function of dnsmasq

5 years agotest-network: drop unused variable
Yu Watanabe [Wed, 26 Dec 2018 22:30:35 +0000 (23:30 +0100)]
test-network: drop unused variable

5 years agotest: fix neighbor address
Yu Watanabe [Wed, 26 Dec 2018 22:16:20 +0000 (23:16 +0100)]
test: fix neighbor address

5 years agonetwork: set *_configured flags to false before requesting addresses or freinds
Yu Watanabe [Sun, 30 Dec 2018 13:08:10 +0000 (22:08 +0900)]
network: set *_configured flags to false before requesting addresses or freinds

Fixes #11272.

5 years agonetwork: rename link_set_routing_policy_rule() to link_request_set_routing_policy_rule()
Yu Watanabe [Sun, 30 Dec 2018 13:10:32 +0000 (22:10 +0900)]
network: rename link_set_routing_policy_rule() to link_request_set_routing_policy_rule()

For consistency to other functions.

5 years agonetwork: do not ignore errors on link_request_set_neighbors() and link_set_routing_po...
Yu Watanabe [Sun, 30 Dec 2018 13:07:23 +0000 (22:07 +0900)]
network: do not ignore errors on link_request_set_neighbors() and link_set_routing_policy()

5 years agoudevadm: add a workaround for dracut
Zbigniew Jędrzejewski-Szmek [Wed, 2 Jan 2019 09:26:16 +0000 (10:26 +0100)]
udevadm: add a workaround for dracut

Also add a comment, so we don't fall into the same trap again.

5 years agoMerge pull request #11291 from yuwata/fix-11259
Zbigniew Jędrzejewski-Szmek [Wed, 2 Jan 2019 08:36:01 +0000 (09:36 +0100)]
Merge pull request #11291 from yuwata/fix-11259

meson: check whether C.UTF-8 exists or not and use it if exists

5 years agohwdb/sdio.ids: add BCM43438 + minor rewording of class name
Burt P [Sun, 30 Dec 2018 03:49:49 +0000 (21:49 -0600)]
hwdb/sdio.ids: add BCM43438 + minor rewording of class name

* BCM43438 is used in the Raspberry Pi 3 B and B+
  https://www.raspberrypi.org/products/raspberry-pi-3-model-b/
  "BCM43438 wireless LAN and Bluetooth Low Energy (BLE) on board"
* With this minor change to "C 00", each class name could be prefixed
  with "Is a" and still make sense.

Signed-off-by: Burt P <pburt0@gmail.com>
5 years agoMerge pull request #11297 from yuwata/fix-11295
Zbigniew Jędrzejewski-Szmek [Wed, 2 Jan 2019 07:19:27 +0000 (08:19 +0100)]
Merge pull request #11297 from yuwata/fix-11295

ask-password: fix assertion

5 years agotest: add test for sending/receiving an invalid device
Yu Watanabe [Sat, 22 Dec 2018 18:28:28 +0000 (03:28 +0900)]
test: add test for sending/receiving an invalid device

5 years agoRevert "udevd: configure a child process name for worker processes"
Yu Watanabe [Sat, 22 Dec 2018 10:49:47 +0000 (19:49 +0900)]
Revert "udevd: configure a child process name for worker processes"

This reverts commit 49f3ee7e74c714f55aab395c080b1099fc17f7fd.

5 years agoRevert "sd-device: ignore bind/unbind events for now"
Yu Watanabe [Tue, 1 Jan 2019 19:00:14 +0000 (04:00 +0900)]
Revert "sd-device: ignore bind/unbind events for now"

This reverts commit 56c886dc7ed5b2bb0882ba85136f4070545bfc1b.

Fixes #11277 and #11299.

5 years agomeson: check whether C.UTF-8 exists or not and use it if exists
Yu Watanabe [Sat, 29 Dec 2018 13:00:07 +0000 (22:00 +0900)]
meson: check whether C.UTF-8 exists or not and use it if exists

If C.UTF-8 does not exist, then fallback to en_US.UTF-8 or C.

5 years agozsh/coredumpctl: don't print warnings from completion function
Paul Seyfert [Mon, 31 Dec 2018 20:27:09 +0000 (21:27 +0100)]
zsh/coredumpctl: don't print warnings from completion function

5 years agosd-device: fix segfault when error occurs in device_new_from_{nulstr,strv}()
Yu Watanabe [Sat, 22 Dec 2018 18:06:47 +0000 (03:06 +0900)]
sd-device: fix segfault when error occurs in device_new_from_{nulstr,strv}()

As devpath may not be set yet.

When debug logging is enabled, log_device_*() calls
sd_device_get_sysname(). So, we should not assume that devpath is always
set.

Fixes #11258.

5 years agoask-password-api: do not call ask_password_keyring() if keyname == NULL
Yu Watanabe [Sun, 30 Dec 2018 12:13:43 +0000 (21:13 +0900)]
ask-password-api: do not call ask_password_keyring() if keyname == NULL

Fixes #11295.

5 years agoask-password: make ask_password_keyring() static
Yu Watanabe [Sun, 30 Dec 2018 12:09:41 +0000 (21:09 +0900)]
ask-password: make ask_password_keyring() static

5 years agoImprove kernel-install support for initrd files. (#11281)
ikelos [Sat, 29 Dec 2018 19:01:10 +0000 (19:01 +0000)]
Improve kernel-install support for initrd files. (#11281)

The current support in kernel-install for initrd images doesn't copy
over the initrd file or allow a means for it to be specified (it
requires a specific filename in a particular directory).

This patchset adds support for (optionally) providing the name of
initial ramdisk file to copied over and used by kernel-install.

5 years agoMake default locale a compile time option
Dave Reisner [Fri, 28 Dec 2018 12:38:36 +0000 (07:38 -0500)]
Make default locale a compile time option

Default to a locale that's guaranteed to exist everywhere, but let
distros override this with something more exotic if they choose to.

Closes #11259.

5 years agobuild: don't include shared's "serialize.h" in basic's "time-util.c"
Thomas Haller [Fri, 28 Dec 2018 16:14:01 +0000 (17:14 +0100)]
build: don't include shared's "serialize.h" in basic's "time-util.c"

"src/basic/time-util.c" is part of src/basic and should not include
"src/shared/serialize.h". It is one of the few cases where this
is done. Also, it's not even required.

5 years agoReplace 'older then' with 'older than'
Jani Uusitalo [Fri, 28 Dec 2018 18:35:46 +0000 (20:35 +0200)]
Replace 'older then' with 'older than'

5 years agoudev-event: do not read stdout or stderr if the pipefd is not created
Yu Watanabe [Tue, 25 Dec 2018 15:36:55 +0000 (00:36 +0900)]
udev-event: do not read stdout or stderr if the pipefd is not created

Fixes #11255.

5 years agoswitch-root: fix error message
Yu Watanabe [Tue, 25 Dec 2018 04:10:18 +0000 (13:10 +0900)]
switch-root: fix error message

Fixes #11261.

5 years agocore: free lines after reading them
Evgeny Vereshchagin [Sun, 23 Dec 2018 14:01:03 +0000 (15:01 +0100)]
core: free lines after reading them

Closes https://github.com/systemd/systemd/issues/11251.

5 years agoDo not start server if it is already runnning (#11245)
rogerjames99 [Fri, 28 Dec 2018 06:34:43 +0000 (06:34 +0000)]
Do not start server if it is already runnning (#11245)

5 years agomeson: use cross compilation compatible c++ check
James Hilliard [Thu, 27 Dec 2018 01:16:20 +0000 (09:16 +0800)]
meson: use cross compilation compatible c++ check

5 years agozsh/coredumpctl: offer --quiet
Paul Seyfert [Wed, 26 Dec 2018 13:02:06 +0000 (14:02 +0100)]
zsh/coredumpctl: offer --quiet

5 years agozsh/coredumpctl: offer --directory option
Paul Seyfert [Tue, 25 Dec 2018 21:57:23 +0000 (22:57 +0100)]
zsh/coredumpctl: offer --directory option

After `-D <TAB>` and `--directory=<TAB>` _directories is called to
suggest directories.

5 years agozsh/coredumpctl: complete argument for --debugger=
Paul Seyfert [Tue, 25 Dec 2018 18:30:50 +0000 (19:30 +0100)]
zsh/coredumpctl: complete argument for --debugger=

This way external commands (i.e. executables in the PATH) are suggested
at --debugger=<TAB>. Upon starting a path (e.g. --debugger=/<TAB> or
--debugger=./<TAB>), filenames of executables are completed.

5 years agonetwork: fix indentation
Yu Watanabe [Sat, 22 Dec 2018 22:59:54 +0000 (07:59 +0900)]
network: fix indentation

5 years agodhcp: drop unnecessary brackets
Yu Watanabe [Sat, 22 Dec 2018 22:59:20 +0000 (07:59 +0900)]
dhcp: drop unnecessary brackets

5 years agodhcp: use cast-to-bool for pointers
Yu Watanabe [Sat, 22 Dec 2018 22:58:58 +0000 (07:58 +0900)]
dhcp: use cast-to-bool for pointers

5 years agodhcp: fix indentation
Yu Watanabe [Sat, 22 Dec 2018 22:57:28 +0000 (07:57 +0900)]
dhcp: fix indentation

5 years agocore: support %j in unit dependency resolution
Patrick Williams [Thu, 20 Dec 2018 14:59:18 +0000 (08:59 -0600)]
core: support %j in unit dependency resolution

Commit 250e9fadbcc0ca90e697d7efb40855b054ed3b8f introduced
support for %j/%J specifier in unit files.  The function
unit_name_printf is used in unit dependency resolution,
such as Wants / After directives, but was missing support
for the %j.  Add to allow directives such as:

    [Unit]
    Wants=bar-%j.target

Fixes: systemd/systemd#11217
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
5 years agoNEWS: add one more name and adjust location v240
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 18:52:16 +0000 (19:52 +0100)]
NEWS: add one more name and adjust location

5 years agoMerge pull request #11239 from poettering/news-v240-final
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 18:49:54 +0000 (19:49 +0100)]
Merge pull request #11239 from poettering/news-v240-final

NEWS and build system bump for 240

5 years agotree-wide: use assert_se() for signal operations with constants
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 08:20:15 +0000 (09:20 +0100)]
tree-wide: use assert_se() for signal operations with constants

Continuation of a3ebe5eb620e49f0d24082876cafc7579261e64f:
in other places we sometimes use assert_se(), and sometimes normal error
handling. sigfillset and sigaddset can only fail if mask is NULL (which cannot
happen if we are passing in a reference), or if the signal number is invalid
(which really shouldn't happen when we are using a constant like SIGCHLD. If
SIGCHLD is invalid, we have a bigger problem). So let's simplify things and
always use assert_se() in those cases.

In sigset_add_many() we could conceivably pass an invalid signal, so let's keep
normal error handling here. The caller can do assert_se() around the
sigprocmask_many() call if appropriate.

'>= 0' is used for consistency with the rest of the codebase.

5 years agoMerge pull request #11206 from cdown/cgroup_no_v1
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 18:48:51 +0000 (19:48 +0100)]
Merge pull request #11206 from cdown/cgroup_no_v1

cgroup: Imply systemd.unified_cgroup_hierarchy=1 on cgroup_no_v1=all

5 years agosd-device: ignore bind/unbind events for now
Dmitry Torokhov [Sun, 9 Dec 2018 19:59:34 +0000 (11:59 -0800)]
sd-device: ignore bind/unbind events for now

Until systemd/udev are ready for the new events and do not flush entire
device state on each new event received, we should ignore them.

5 years agoRevert "sleep: offer hibernation only if the kernel image still exists"
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 10:01:34 +0000 (11:01 +0100)]
Revert "sleep: offer hibernation only if the kernel image still exists"

This reverts commit edda44605f06a41fb86b7ab8128dcf99161d2344.

The kernel explicitly supports resuming with a different kernel than the one
used before hibernation. If this is something that shouldn't be supported, the
place to change this is in the kernel. We shouldn't censor something that this
exclusively in the kernel's domain.

People might be using this to switch kernels without restaring programs, and
we'd break this functionality for them.

Also, even if resuming with a different kernel was a bad idea, we don't really
prevent that with this check, since most users have more than one kernel and
can freely pick a different one from the menu. So this only affected the corner
case where the kernel has been removed, but there is no reason to single it
out.

5 years agoMerge pull request #11050 from poettering/resolved-domain-route
Lennart Poettering [Fri, 21 Dec 2018 17:03:58 +0000 (18:03 +0100)]
Merge pull request #11050 from poettering/resolved-domain-route

resolved: beef up domain routing

5 years agoMerge pull request #11210 from thom311/dhcp-set-client-id-no-inval
Lennart Poettering [Fri, 21 Dec 2018 17:00:42 +0000 (18:00 +0100)]
Merge pull request #11210 from thom311/dhcp-set-client-id-no-inval

dhcp: don't enforce hardware address length for sd_dhcp_client_set_client_id()

5 years agotree-wide: make new/new0/malloc_multiply/reallocarray safe for size 0
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 09:21:41 +0000 (10:21 +0100)]
tree-wide: make new/new0/malloc_multiply/reallocarray safe for size 0

All underlying glibc calls are free to return NULL if the size argument
is 0. We most often call those functions with a fixed argument, or at least
something which obviously cannot be zero, but it's too easy to forget.

E.g. coverity complains about "rows = new0(JsonVariant*, n_rows-1);" in
format-table.c There is an assert that n_rows > 0, so we could hit this
corner case here. Let's simplify callers and make those functions "safe".

CID #1397035.

The compiler is mostly able to optimize this away:
$ size build{,-opt}/src/shared/libsystemd-shared-239.so
(before)
   text    data     bss     dec     hex filename
2643329  580940    3112 3227381  313ef5 build/src/shared/libsystemd-shared-239.so     (-O0 -g)
2170013  578588    3089 2751690  29fcca build-opt/src/shared/libsystemd-shared-239.so (-03 -flto -g)
(after)
   text    data     bss     dec     hex filename
2644017  580940    3112 3228069  3141a5 build/src/shared/libsystemd-shared-239.so
2170765  578588    3057 2752410  29ff9a build-opt/src/shared/libsystemd-shared-239.so

5 years agoanalyze: add assert to verify we are not dividing by 0
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 07:20:41 +0000 (08:20 +0100)]
analyze: add assert to verify we are not dividing by 0

CID #1397051.

5 years agoudevadm: add two more assertions
Yu Watanabe [Fri, 21 Dec 2018 07:12:45 +0000 (16:12 +0900)]
udevadm: add two more assertions

Suggested by Coverity.

Closes CID#1397033 and CID#1395708.

5 years agoNEWS: prepare for v240
Lennart Poettering [Fri, 21 Dec 2018 14:02:11 +0000 (15:02 +0100)]
NEWS: prepare for v240

5 years agobuild-sys: bump package/library versions
Lennart Poettering [Fri, 21 Dec 2018 13:58:49 +0000 (14:58 +0100)]
build-sys: bump package/library versions

5 years agocgroup: Add NEWS entry for cgroup_no_v1=all implying unified usage
Chris Down [Fri, 21 Dec 2018 13:07:45 +0000 (13:07 +0000)]
cgroup: Add NEWS entry for cgroup_no_v1=all implying unified usage

5 years agocgroup: Imply systemd.unified_cgroup_hierarchy=1 on cgroup_no_v1=all
Chris Down [Wed, 19 Dec 2018 03:33:53 +0000 (03:33 +0000)]
cgroup: Imply systemd.unified_cgroup_hierarchy=1 on cgroup_no_v1=all

cgroup_no_v1=all doesn't make a whole lot of sense with legacy hierarchy
(where we use v1 hierarchy for everything), or hybrid hierarchy (where
we still use v1 hierarchy for resource control).

Right now we have to tell people to add both cgroup_no_v1=all and
systemd.unified_cgroup_hierarchy=1 to get the desired behaviour,
however in reality it's hard to imagine any situation where someone
passes cgroup_no_v1=all but *doesn't* want to use the unified cgroup
hierarchy.

Make it so that cgroup_no_v1=all produces intuitive behaviour in systemd
by default, although it can still be disabled by passing
systemd.unified_cgroup_hierarchy=0 explicitly.

5 years agomeson: use /bin/bash for script
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 06:09:23 +0000 (07:09 +0100)]
meson: use /bin/bash for script

It seems -o pipefail does not work on Ubunut. /bin/sh is most likely resolved
to dash.

5 years agomeson: declare version.h as dep for fuzzers
Zbigniew Jędrzejewski-Szmek [Thu, 20 Dec 2018 21:33:24 +0000 (22:33 +0100)]
meson: declare version.h as dep for fuzzers

This is supposed an error when building fuzzers for sanitization (that is a
nested build with the sanitization options):

In file included from ../../../../src/basic/util.c:21:0:
../../../../src/basic/build.h:4:21: fatal error: version.h: No such file or directory
 #include "version.h"
                     ^
compilation terminated.

Internally we do 'ninja -C test/fuzz/sanitize-address-fuzzers fuzzers'.
I'm not quite sure why version.h is not built in this case. But declaring
version_h as the dependency forces it to be built and solves the issue.

It would be better to define the dependency on individual exe's, but this
doesn't work:

meson.build:2884:8: ERROR:  Argument is of an unacceptable type 'CustomTarget'.
Must be either an external dependency (returned by find_library() or
dependency()) or an internal dependency (returned by declare_dependency()).

Let's treat this a hack for another hack, which the nested build is.

5 years agomeson: simplify handling of pkgconfigdatadir=no, pkgconfiglibdir=no
Zbigniew Jędrzejewski-Szmek [Thu, 20 Dec 2018 20:31:32 +0000 (21:31 +0100)]
meson: simplify handling of pkgconfigdatadir=no, pkgconfiglibdir=no

The idea was that those vars could be configured to 'no' to not install the .pc
files, or they could be set to '', and then they would be built but not
installed. This was inherited from the autoconf build system. This couldn't
work because '' is replaced by the default value. Also, having this level of
control doesn't seem necessary, since creating those files is very
quick. Skipping with 'no' was implemented only for systemd.pc and not the other
.pc files. Let's simplify things and skip installation if the target dir
is configured as 'no' for all .pc files.

5 years agomeson: allow setting the version string during configuration
Zbigniew Jędrzejewski-Szmek [Wed, 19 Dec 2018 12:33:09 +0000 (13:33 +0100)]
meson: allow setting the version string during configuration

This will be useful when building distro packages, because we can set the
version string to the rpm/dpkg/whatever version string, and getter reports
from end users.

5 years agomeson-vcs-tag: add work-around for git bug
Zbigniew Jędrzejewski-Szmek [Wed, 19 Dec 2018 12:25:07 +0000 (13:25 +0100)]
meson-vcs-tag: add work-around for git bug

5 years agomeson: generate version tag from git
Zbigniew Jędrzejewski-Szmek [Thu, 20 Dec 2018 19:35:25 +0000 (20:35 +0100)]
meson: generate version tag from git

$ build/systemctl --version
systemd 239-3555-g6178cbb5b5
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN +PCRE2 default-hierarchy=hybrid
$ git tag v240 -m 'v240'
$ ninja -C build
ninja: Entering directory `build'
[76/76] Linking target fuzz-unit-file.
$ build/systemctl --version
systemd 240
+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN +PCRE2 default-hierarchy=hybrid

This is very useful during development, because a precise version string is
embedded in the build product and displayed during boot, so we don't have to
guess answers for questions like "did I just boot the latest version or the one
from before?".

This change creates an overhead for "noop" builds. On my laptop, 'ninja -C
build' that does nothing goes from 0.1 to 0.5 s. It would be nice to avoid
this, but I think that <1 s is still acceptable.

Fixes #7183.

PACKAGE_VERSION is renamed to GIT_VERSION, to make it obvious that this is the
more dynamically changing version string.

Why save to a file? It would be easy to generate the version tag using
run_command(), but we want to go through a file so that stuff gets rebuilt when
this file changes. If we just defined an variable in meson, ninja wouldn't know
it needs to rebuild things.

5 years agoudev: modernize ctrl_send and use PROJECT_VERSION
Zbigniew Jędrzejewski-Szmek [Fri, 21 Dec 2018 12:36:26 +0000 (13:36 +0100)]
udev: modernize ctrl_send and use PROJECT_VERSION

PROJECT_VERSION is used in preparation for future changes. Let's simplify the
code by using structured initialization. If the string written to .version ever
became to long, the compiler will truncate it and tell us:

../src/udev/udev-ctrl.c: In function ‘ctrl_send’:
../src/udev/udev-ctrl.c:221:28: warning: initializer-string for array of chars is too long
                 .version = "udev-" STRINGIFY(R_VERSION),
                            ^~~~~~~
../src/udev/udev-ctrl.c:221:28: note: (near initialization for ‘ctrl_msg_wire.version’)

No functional change.

5 years agoman: document new systemd-resolved.service(8) routing features in more detail
Lennart Poettering [Tue, 4 Dec 2018 15:09:11 +0000 (16:09 +0100)]
man: document new systemd-resolved.service(8) routing features in more detail

5 years agoman: split long section in systemd-resolved.service man page into three
Lennart Poettering [Tue, 4 Dec 2018 15:08:40 +0000 (16:08 +0100)]
man: split long section in systemd-resolved.service man page into three

Also, do some minor updating.

5 years agoresolved: read DNS default route option from networkd
Lennart Poettering [Tue, 4 Dec 2018 12:48:28 +0000 (13:48 +0100)]
resolved: read DNS default route option from networkd

5 years agosd-network: add new API sd_network_link_get_dns_default_route()
Lennart Poettering [Tue, 4 Dec 2018 12:47:53 +0000 (13:47 +0100)]
sd-network: add new API sd_network_link_get_dns_default_route()

This simply reads from networkd's state files whether a link shall be
used as DNS default route.

5 years agonetworkd: permit DNS "DefaultRoute" configuration in .network files
Lennart Poettering [Tue, 4 Dec 2018 14:34:04 +0000 (15:34 +0100)]
networkd: permit DNS "DefaultRoute" configuration in .network files

5 years agonetworkd: small simplification
Lennart Poettering [Tue, 4 Dec 2018 14:34:37 +0000 (15:34 +0100)]
networkd: small simplification

5 years agoresolvectl: add support for reading/writing per-link 'default-route' boolean
Lennart Poettering [Tue, 4 Dec 2018 12:29:41 +0000 (13:29 +0100)]
resolvectl: add support for reading/writing per-link 'default-route' boolean

5 years agoresolvectl: minor whitespace fix
Lennart Poettering [Tue, 4 Dec 2018 12:30:14 +0000 (13:30 +0100)]
resolvectl: minor whitespace fix

5 years agoresolved: add bus API to set per-link "default route" boolean
Lennart Poettering [Tue, 4 Dec 2018 12:10:11 +0000 (13:10 +0100)]
resolved: add bus API to set per-link "default route" boolean

5 years agoresolved: add an explicit way to configure whether a link is useful as default route
Lennart Poettering [Tue, 4 Dec 2018 11:40:07 +0000 (12:40 +0100)]
resolved: add an explicit way to configure whether a link is useful as default route

Previously, we'd use a link as "default" route depending on whether
there are route-only domains defined on it or not. (If there are, it
would not be used as default route, if there aren't it would.)

Let's make this explicit and add a link variable controlling this. The
variable is not changeable from the outside yet, but subsequent commits
are supposed to add that.

Note that making this configurable adds a certain amount of redundancy,
as there are now two ways to ensure a link does not receive "default"
lookup (i.e. DNS queries matching no configured route):

1. By ensuring that at least one other link configures a route on it
   (for example by add "." to its search list)

2. By setting this new boolean to false.

But this is exactly what is intended with this patch: that there is an
explicit way to configure on the link itself whether it receives
'default' traffic, rather than require this to be configured on other
links.

The variable added is a tri-state: if true, the link is suitable for
recieving "default" traffic. If false, the link is not suitable for it.
If unset (i.e. negative) the original logic of "has this route-only
routes" is used, to ensure compatibility with the status quo ante.

5 years agoresolved: rework dns_server_limited_domains(), replace by dns_scope_has_route_only_do...
Lennart Poettering [Tue, 4 Dec 2018 11:08:18 +0000 (12:08 +0100)]
resolved: rework dns_server_limited_domains(), replace by dns_scope_has_route_only_domains()

The function dns_server_limited_domains() was very strange as it
enumerate the domains associated with a DnsScope object to determine
whether any "route-only" domains, but did so as a function associated
with a DnsServer object.

Let's clear this up, and replace it by a function associated with a
DnsScope instead. This makes more sense philosphically and allows us to
reduce the loops through which we need to jump to determine whether a
scope is suitable for default routing a bit.

5 years agoresolved: bind .local domains to mDNS with DNS_SCOPE_YES, similar LLMNR
Lennart Poettering [Mon, 3 Dec 2018 21:27:19 +0000 (22:27 +0100)]
resolved: bind .local domains to mDNS with DNS_SCOPE_YES, similar LLMNR

Previously, we'd return DNS_SCOPE_MAYBE for all domain lookups matching
LLMNR or mDNS. Let's upgrade this to DNS_SCOPE_YES, to make the binding
stronger.

The effect of this is that even if "local" is defined as routing domain
on some iface, we'll still lookup domains in local via mDNS — if mDNS is
turned on. This should not be limiting, as people who don't want such
lookups should turn off mDNS altogether, as it is useless if nothing is
routed to it.

This also has the nice benefit that mDNS/LLMR continue to work if people
use "~." as routing domain on some interface.

Similar for LLMNR and single label names.

Similar also for the link local IPv4 and IPv6 reverse lookups.

Fixes: #10125

5 years agoresolved: rework how we determine which scope to send a query to
Lennart Poettering [Mon, 3 Dec 2018 15:25:00 +0000 (16:25 +0100)]
resolved: rework how we determine which scope to send a query to

Fixes: #10830 #9825 #9472

5 years agoresolved: add comment, explaining when Scope variables are copied from Link
Lennart Poettering [Tue, 4 Dec 2018 12:00:19 +0000 (13:00 +0100)]
resolved: add comment, explaining when Scope variables are copied from Link

5 years agoresolved: rename_DNS_SCOPE_INVALID → _DNS_SCOPE_MATCH_INVALID
Lennart Poettering [Mon, 3 Dec 2018 21:26:46 +0000 (22:26 +0100)]
resolved: rename_DNS_SCOPE_INVALID → _DNS_SCOPE_MATCH_INVALID

The _INVALID and _MAX enum fields should always use the full name of
thenum.

5 years agoresolved: check dns_over_tls_mode in link_needs_save()
Lennart Poettering [Tue, 4 Dec 2018 12:49:03 +0000 (13:49 +0100)]
resolved: check dns_over_tls_mode in link_needs_save()

This was forgotten when DoT was added.

5 years agoresolved: use structured initialization for DnsScope
Lennart Poettering [Tue, 4 Dec 2018 12:31:29 +0000 (13:31 +0100)]
resolved: use structured initialization for DnsScope

5 years agohwdb: update database
Zbigniew Jędrzejewski-Szmek [Thu, 20 Dec 2018 15:37:31 +0000 (16:37 +0100)]
hwdb: update database

I looked over the diff, and it seems it's only additions and fixes, no removals.
The diff for the source files is much bigger, but it seems that the sorting
code is working well.

5 years agomeson: define PROJECT_VERSION as the "bare" project version
Zbigniew Jędrzejewski-Szmek [Wed, 19 Dec 2018 10:23:42 +0000 (11:23 +0100)]
meson: define PROJECT_VERSION as the "bare" project version

Let's not use atoi() if we can simply provide the project version as a number.

In C code, this is the numerical project version. In substitutions in other
files, this is just the bare substitution.

The "PACKAGE_" prefix is from autotools, and is strange. We call systemd a
"project", and "package" is something that distros build. Let's rename.

PACKAGE_URL is renamed to PROJECT_URL for the same reasons and for consistency.

(This leave PACKAGE_VERSION as the stringified define for C code.)

5 years agoNEWS: mention DynamicUser= is disabled for networkd, resolved and timesyncd
Yu Watanabe [Thu, 20 Dec 2018 18:27:26 +0000 (03:27 +0900)]
NEWS: mention DynamicUser= is disabled for networkd, resolved and timesyncd

Which was disabled by #10117.

5 years agotests: explicitly enable user namespaces for TEST-13-NSPAWN-SMOKE
Frantisek Sumsal [Sat, 15 Dec 2018 19:22:31 +0000 (20:22 +0100)]
tests: explicitly enable user namespaces for TEST-13-NSPAWN-SMOKE

5 years agohwdb: Add accelerometer orientation quirk for the PoV TAB-P1006W-232-3G
Hans de Goede [Thu, 20 Dec 2018 15:08:46 +0000 (16:08 +0100)]
hwdb: Add accelerometer orientation quirk for the PoV TAB-P1006W-232-3G

Add accelerometer orientation quirk for the Point of View TAB-P1006W-232-3G
tablet.

5 years agoMerge pull request #11223 from poettering/read-line-0x00-0xff
Lennart Poettering [Thu, 20 Dec 2018 13:53:23 +0000 (14:53 +0100)]
Merge pull request #11223 from poettering/read-line-0x00-0xff

fileio: fix read_one_line() when reading bytes > 0x7F

5 years agohwdb: Add support for HP ProBook 645 wifi and slash key (#11207)
Jeremy Su [Thu, 20 Dec 2018 12:58:02 +0000 (20:58 +0800)]
hwdb: Add support for HP ProBook 645 wifi and slash key (#11207)

hwdb: Add support for HP ProBook 645 wifi and slash key

5 years agoMerge pull request #11222 from keszybz/tmpfiles-crash
Lennart Poettering [Thu, 20 Dec 2018 12:57:16 +0000 (13:57 +0100)]
Merge pull request #11222 from keszybz/tmpfiles-crash

tmpfiles: fix crash with NULL in arg_root and other fixes and tests