Susant Sahani [Wed, 26 Apr 2017 10:29:46 +0000 (15:59 +0530)]
meson: add address label to build system
Susant Sahani [Tue, 25 Apr 2017 10:36:50 +0000 (16:06 +0530)]
networkd: add support for address label
IPv6 address labels are used for address selection; they are described in RFC 3484.
Precedence is managed by userspace, and only the label itself is stored in the kernel.
enp0s25.network
[Match]
Name=enp0s25
[Network]
DHCP=yes
Address = 2001:db8:f00:baa::b
[AddressLabel]
Label=199
Prefix=2001:db8:41::/64
[AddressLabel]
Label=11
Prefix=2001:db8:31::/64
[AddressLabel]
Label=123
Prefix=2001:db8:21::/64
[AddressLabel]
Label=124
Prefix=2001:db8:11::/64
[sus@maximus label]$ ip addrlabel list
prefix ::1/128 label 0
prefix ::/96 label 3
prefix ::ffff:0.0.0.0/96 label 4
prefix 2001:db8:41::/64 dev enp0s25 label 199
prefix 2001:db8:31::/64 dev enp0s25 label 11
prefix 2001:db8:21::/64 dev enp0s25 label 123
prefix 2001:db8:11::/64 dev enp0s25 label 124
prefix 2001::/32 label 6
prefix 2001:10::/28 label 7
prefix 3ffe::/16 label 12
prefix 2002::/16 label 2
prefix fec0::/10 label 11
prefix fc00::/7 label 5
prefix ::/0 label 1
Susant Sahani [Tue, 25 Apr 2017 10:36:12 +0000 (16:06 +0530)]
sd-netlink: add support for address label
Christian Brauner [Wed, 26 Apr 2017 04:18:10 +0000 (06:18 +0200)]
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.
tblume [Wed, 26 Apr 2017 00:37:07 +0000 (02:37 +0200)]
importd: support SUSE style checksums supplementary (#5800)
some small changes to make the code look better
David Herrmann [Wed, 26 Apr 2017 00:36:30 +0000 (02:36 +0200)]
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.
Zbigniew Jędrzejewski-Szmek [Wed, 26 Apr 2017 00:28:38 +0000 (20:28 -0400)]
Merge pull request #5803 from ssahani/util
config_parser: add util function config_parse_uint8
Michael Biebl [Tue, 25 Apr 2017 19:16:34 +0000 (21:16 +0200)]
Merge pull request #5805 from keszybz/apendv-man-rule
meson: add sd_bus_message_appendv alias to man list
Zbigniew Jędrzejewski-Szmek [Tue, 25 Apr 2017 18:20:55 +0000 (14:20 -0400)]
meson: add sd_bus_message_appendv alias to man list
As generated by "nj update-man-rules".
Michael Biebl [Tue, 25 Apr 2017 16:00:32 +0000 (18:00 +0200)]
Merge pull request #5804 from ssahani/geneve
meson: add geneve to build system
Susant Sahani [Tue, 25 Apr 2017 15:00:34 +0000 (20:30 +0530)]
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]
^~~~~~~~~~~~~~~~~~~~~~~~~~~
```
Susant Sahani [Tue, 25 Apr 2017 14:29:39 +0000 (19:59 +0530)]
networkd: route add missing search for route object.
Probaly this happened during rebase.
Susant Sahani [Tue, 25 Apr 2017 13:12:56 +0000 (18:42 +0530)]
networkd: replace geneve parsers with generic config_parse_uint8
Susant Sahani [Tue, 25 Apr 2017 13:11:50 +0000 (18:41 +0530)]
config parser: Introduce config_parse_uint8
Evgeny Vereshchagin [Tue, 25 Apr 2017 13:10:15 +0000 (16:10 +0300)]
Merge pull request #5704 from keszybz/meson
meson: build systemd using meson
Zbigniew Jędrzejewski-Szmek [Tue, 25 Apr 2017 12:49:58 +0000 (08:49 -0400)]
meson: require newest meson and revert m4 patch
This reverts
78b68dcb55.
Zbigniew Jędrzejewski-Szmek [Tue, 25 Apr 2017 01:46:40 +0000 (21:46 -0400)]
meson: use name arg so check result is reported
Zbigniew Jędrzejewski-Szmek [Tue, 25 Apr 2017 01:03:35 +0000 (21:03 -0400)]
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
Zbigniew Jędrzejewski-Szmek [Mon, 24 Apr 2017 23:40:02 +0000 (19:40 -0400)]
meson: also indent scripts with 8 spaces
Matija Skala [Tue, 25 Apr 2017 12:44:29 +0000 (14:44 +0200)]
fix parenthesis in pager.c (#5798)
- result of dup2 should be compared against 0
- making parenthesis around comparisons just to be sure
Lennart Poettering [Tue, 25 Apr 2017 10:34:36 +0000 (12:34 +0200)]
Merge pull request #5752 from ssahani/geneve
networkd: Introduce geneve GEneric NEtwork Virtualization Encapsulation
Susant Sahani [Tue, 25 Apr 2017 07:32:59 +0000 (13:02 +0530)]
networkd: make IPv6 route preference configurable (#5700)
The work supports route preference configurable.
i.e. able to set low, medium and high.
Federico [Tue, 25 Apr 2017 07:32:24 +0000 (09:32 +0200)]
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.
Michal Sekletar [Tue, 25 Apr 2017 07:31:52 +0000 (09:31 +0200)]
load-fragment: don't print error about incorrect syntax when IPv6 is disabled (#5791)
Amir Yalon [Tue, 25 Apr 2017 07:31:29 +0000 (10:31 +0300)]
docs: clarify ExecStop= implications for remaining processes (#5793)
Susant Sahani [Tue, 25 Apr 2017 04:15:05 +0000 (09:45 +0530)]
networkd: Introduce GENEVE netdev
This work enables cration of geneve tunnel
Susant Sahani [Tue, 25 Apr 2017 04:14:28 +0000 (09:44 +0530)]
sd-netlink: Add Geneve properties to netlink
Susant Sahani [Tue, 25 Apr 2017 04:13:41 +0000 (09:43 +0530)]
Add Geneve netlink properties to missing.h
Zbigniew Jędrzejewski-Szmek [Mon, 24 Apr 2017 23:28:05 +0000 (19:28 -0400)]
meson: add git-snapshot target
The output is systemd-<sha1abbrev>.tar.gz in source root.
Zbigniew Jędrzejewski-Szmek [Mon, 24 Apr 2017 23:28:05 +0000 (19:28 -0400)]
meson: test-ns is manual, not just unsafe
Zbigniew Jędrzejewski-Szmek [Mon, 24 Apr 2017 23:28:04 +0000 (19:28 -0400)]
meson: there is no smack library
Detection would always fail, so this was broken.
Treat this as a binary enable/disable option.
Zbigniew Jędrzejewski-Szmek [Mon, 24 Apr 2017 23:28:04 +0000 (19:28 -0400)]
meson: add forgotten tpm support
Zbigniew Jędrzejewski-Szmek [Mon, 24 Apr 2017 23:28:04 +0000 (19:28 -0400)]
meson: use -f{function,data}-sections for optimized builds
Michael Biebl [Fri, 21 Apr 2017 16:32:14 +0000 (18:32 +0200)]
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
3a30f21ff8ddbef5eae61d6e4305ec1cd2e4e041.
Zbigniew Jędrzejewski-Szmek [Mon, 24 Apr 2017 01:36:29 +0000 (21:36 -0400)]
meson: add forgotten parse_hwdb.py test
Michael Biebl [Fri, 21 Apr 2017 21:45:54 +0000 (23:45 +0200)]
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.
Zbigniew Jędrzejewski-Szmek [Fri, 21 Apr 2017 17:53:59 +0000 (13:53 -0400)]
meson: add option to disable libacl support
Zbigniew Jędrzejewski-Szmek [Thu, 20 Apr 2017 16:06:14 +0000 (12:06 -0400)]
meson: $DESTDIR might be undefined
This causes an error with -u. Just add an empty fallback.
Zbigniew Jędrzejewski-Szmek [Thu, 20 Apr 2017 02:57:52 +0000 (22:57 -0400)]
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.
Zbigniew Jędrzejewski-Szmek [Mon, 24 Apr 2017 21:02:09 +0000 (17:02 -0400)]
hwdb: add IBM USB Travel Mouse (MO32BO) (#5787)
Contributed by rderooy. Closes #5785.
tblume [Mon, 24 Apr 2017 18:37:11 +0000 (20:37 +0200)]
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.
Lennart Poettering [Mon, 24 Apr 2017 17:51:34 +0000 (19:51 +0200)]
Merge pull request #5354 from msekletar/issue-518
service: serialize information about currently executing command
Lennart Poettering [Mon, 24 Apr 2017 16:48:10 +0000 (18:48 +0200)]
update TODO
Ivan Shapovalov [Mon, 24 Apr 2017 16:38:53 +0000 (20:38 +0400)]
fstab-generator: do not skip Before= ordering for noauto mountpoints (#5547)
Michal Sekletar [Mon, 24 Apr 2017 16:33:12 +0000 (18:33 +0200)]
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.
Matija Skala [Mon, 24 Apr 2017 16:30:50 +0000 (18:30 +0200)]
redirect stdout/stderr back when closing the pager (#5661)
Danielle Church [Mon, 24 Apr 2017 16:23:35 +0000 (12:23 -0400)]
load-fragment: resolve specifiers in BindPaths/BindReadOnlyPaths (#5687)
Julian Mehne [Mon, 24 Apr 2017 14:56:40 +0000 (16:56 +0200)]
man: clarify udevadm monitor --tag-match/--filter-match (#5726)
--tag-match only filters tags, not properties
--tag-match only has an effect on udev events
--subsystem-match filters both event types
Michal Koutný [Mon, 24 Apr 2017 14:19:53 +0000 (16:19 +0200)]
man: systemd.journal-fields: Note about originator PID (#5724)
Zbigniew Jędrzejewski-Szmek [Thu, 20 Apr 2017 01:20:54 +0000 (21:20 -0400)]
meson: detect getrandom in sys/random.h, fall back to linux/random.h
This is analogous to commit
e84397d95c3da2b9722ff265843ad4a8874643d8.
Zbigniew Jędrzejewski-Szmek [Wed, 19 Apr 2017 20:14:16 +0000 (16:14 -0400)]
meson: check string.h not strings.h for explicit_bzero
I used strings.h because that's what explicit_bzero(3) says. But glibc defines
it in string.h. There are no other available implementations atm (musl does not
define it, bionic aliases it to memset in openbsd-compat.h, yikes). We also
include just string.h from the code. So just look for the function in string.h,
and if it ever appears in other places, we can change the detection and includes.
Zbigniew Jędrzejewski-Szmek [Wed, 19 Apr 2017 15:30:32 +0000 (11:30 -0400)]
meson: fix 'clean'
Zbigniew Jędrzejewski-Szmek [Wed, 19 Apr 2017 14:32:42 +0000 (10:32 -0400)]
meson: install the dbus aliases for resolve1 and network1 in /etc
This way when the units are disabled, their dbus activation is also disabled.
v2:
- fix the symlink location
Zbigniew Jędrzejewski-Szmek [Wed, 19 Apr 2017 01:52:30 +0000 (21:52 -0400)]
README: update with meson instructions
v2:
- call the project ninja-build and the executable ninja.
(/usr/bin/ninja-build is a fedora-ism, hopefully gone soon.)
Zbigniew Jędrzejewski-Szmek [Wed, 19 Apr 2017 01:00:46 +0000 (21:00 -0400)]
meson: add rule to regenerate man/rules/meson.build
Zbigniew Jędrzejewski-Szmek [Tue, 18 Apr 2017 23:11:54 +0000 (19:11 -0400)]
meson: add ln --relative check
Zbigniew Jędrzejewski-Szmek [Tue, 18 Apr 2017 21:14:48 +0000 (17:14 -0400)]
meson: use "sh -eu" and make .sh +x, .py -x
Shell scripts should be executable so that meson reports their
invocation succinctly (does not print 'sh' '-e').
Python scripts should not be executable so that meson does the
detection of the right python binary itself.
Add -u everywhere to catch potential errors.
Zbigniew Jędrzejewski-Szmek [Mon, 17 Apr 2017 23:48:20 +0000 (19:48 -0400)]
meson: use run_target instead of custom_target where appropriate
This way a fake output does not need to be specified.
Zbigniew Jędrzejewski-Szmek [Mon, 17 Apr 2017 23:33:10 +0000 (19:33 -0400)]
meson: add libblkid as libudev-core dep to fix include dir
Follow-up for
6b5cf3ea62.
v2:
- also link udevadm and systemd-udev statically if requested
v3:
- fix install_rpath for udevadm (Michael Biebl)
Zbigniew Jędrzejewski-Szmek [Mon, 17 Apr 2017 23:25:00 +0000 (19:25 -0400)]
meson: reindent all files with 8 spaces
The indentation for emacs'es meson-mode is added .dir-locals.
All files are reindented automatically, using the lasest meson-mode from git.
Indentation should now be fairly consistent.
Zbigniew Jędrzejewski-Szmek [Mon, 17 Apr 2017 17:22:28 +0000 (13:22 -0400)]
meson: use efi-includedir to look for header
This change mirrors
cba49f2deab481045408d5452ac8c84fc03bccd5.
Zbigniew Jędrzejewski-Szmek [Mon, 17 Apr 2017 16:07:12 +0000 (12:07 -0400)]
meson: allow optional static linking of shared code in udev helpers
This makes the helper binaries significantly bigger (in some cases, the final
size depends on link options and optimization level), and is only useful for
distributions which want to provide the option to install udev without systemd.
As the linking is improved, the difference between the columns might shrink,
but it's unlikely that linking libshared statically could ever be more
efficient.
E.g. with -O0, no -flto:
(static) (shared)
src/udev/ata_id 999176 85696
src/udev/cdrom_id 1024344 111656
src/udev/collect 990344 81280
src/udev/scsi_id 1023592 115656
src/udev/v4l_id 811736 17744
When linked dynamically, install_rpath must be specified, so add that.
Zbigniew Jędrzejewski-Szmek [Sun, 16 Apr 2017 16:04:46 +0000 (12:04 -0400)]
test-efi-create-disk.sh: allow running from separate build dir, hook up to meson
This allow test-efi-disk.img to be created under meson.
The invocation of qemu is not converted yet, in particular because the
command-line used in Makefile.am is outdated.
Zbigniew Jędrzejewski-Szmek [Sun, 16 Apr 2017 02:50:56 +0000 (22:50 -0400)]
meson: add dist-check-includes replacement
This is more-or-less the same as dist-check-includes. meson doesn't exactly
make it easy to call a compiler with a custom set of options. The tests
are included in the test listing.
Zbigniew Jędrzejewski-Szmek [Tue, 18 Apr 2017 21:28:14 +0000 (17:28 -0400)]
hwdb: use curl instead of wget, and regenerate patch after successful update
libcurl is already our build dependency, so using curl reduces the deps
a bit, and curl also has a more modern codebase.
Regenerating the patch makes it more likely that the patch will apply
in the future.
Also, update URLs which return 302 to the new location.
(Patch suggested by Igor Gnatenko.)
Zbigniew Jędrzejewski-Szmek [Sat, 15 Apr 2017 04:56:05 +0000 (00:56 -0400)]
meson: add journal-install and hwdb-update hooks
v2:
- ignore errors in chown/chmod/setfacl
- obey -Dadm-group=false, -Dwheel-group=false
- fix reversed condition for systemd-hwdb update hook
Zbigniew Jędrzejewski-Szmek [Sat, 15 Apr 2017 04:40:59 +0000 (00:40 -0400)]
meson: add hwdb/update target
Zbigniew Jędrzejewski-Szmek [Sat, 15 Apr 2017 04:16:23 +0000 (00:16 -0400)]
meson: add git-contrib target
Zbigniew Jędrzejewski-Szmek [Sat, 15 Apr 2017 04:07:57 +0000 (00:07 -0400)]
meson: add man/doc-sync target
Seems to work OK. It would be nicer to call it 'doc-sync' not 'man/doc-sync',
but OK.
Zbigniew Jędrzejewski-Szmek [Sat, 15 Apr 2017 00:10:28 +0000 (20:10 -0400)]
meson: add test-dlopen
test-dlopen is a very simple binary that is only linked with libc and
libdl. From it we do dlopen() on the nss and pam modules to check that they are
linked to all necessary libs.
(meson-compiled nss modules are linked to less libraries, for whatever reason.
I suspected that some deps are missing, but it turns out that my suspicions
weren't justified, and the modules load just fine. Let's keep the test though,
it is very quick, and might detect missing linkage in the future.)
Zbigniew Jędrzejewski-Szmek [Fri, 14 Apr 2017 23:49:15 +0000 (19:49 -0400)]
test-nss: fix loading of modules under meson
There is no .libs dirs under meson. Just try both paths.
Zbigniew Jędrzejewski-Szmek [Fri, 14 Apr 2017 22:49:47 +0000 (18:49 -0400)]
meson: eliminate libsystemd_journal_internal and use libsystemd_internal less
This simplifies things and leads to a smaller installation footprint.
libsystemd_internal and libsystemd_journal_internal are linked into
libystemd-shared and available to all programs linked to libsystemd-shared.
libsystemd_journal_internal is not needed anymore, and libsystemd-shared
is used everwhere. The few exceptions are: libsystemd.so, test-engine,
test-bus-error, and various loadable modules.
Zbigniew Jędrzejewski-Szmek [Fri, 14 Apr 2017 02:15:01 +0000 (22:15 -0400)]
meson: add rootprefix option (for Gentoo)
Zbigniew Jędrzejewski-Szmek [Fri, 14 Apr 2017 00:47:20 +0000 (20:47 -0400)]
meson: install test data
v2:
- do not install test-data if instal-tests=no
Zbigniew Jędrzejewski-Szmek [Fri, 14 Apr 2017 00:30:07 +0000 (20:30 -0400)]
meson: replace yes/no/auto with true/false/auto
This doesn't feel as natural, but is more consistent with the boolean options
which require true/false, and allows setting of options without knowing of
which type the option is.
Zbigniew Jędrzejewski-Szmek [Fri, 14 Apr 2017 00:17:04 +0000 (20:17 -0400)]
meson: fix condition for installation of .in units, 99-default.link
The condition to install in_units was calculated, but not used.
99-default.link should be installed uncoditionally.
Zbigniew Jędrzejewski-Szmek [Thu, 13 Apr 2017 23:59:21 +0000 (19:59 -0400)]
meson: skip index generation when lxml is not available
Zbigniew Jędrzejewski-Szmek [Thu, 13 Apr 2017 23:45:05 +0000 (19:45 -0400)]
meson: ima support
Zbigniew Jędrzejewski-Szmek [Thu, 13 Apr 2017 23:37:14 +0000 (19:37 -0400)]
meson: libxkbcommon support
Zbigniew Jędrzejewski-Szmek [Thu, 13 Apr 2017 15:52:05 +0000 (11:52 -0400)]
meson: recreate dist-check-help
Michael Biebl [Thu, 13 Apr 2017 14:30:56 +0000 (10:30 -0400)]
meson: use join_paths consistently
With -Dsplit-usr=true, we set rootprefix to /. This leads to //lib/systemd or
//lib/udev for various dir variables. Using join_paths() avoids this.
Zbigniew Jędrzejewski-Szmek [Thu, 13 Apr 2017 00:58:55 +0000 (20:58 -0400)]
meson: rework processing of unit files
Ideally, we would chain the m4 processing, .in substitutions, and file
installation so that the commands don't have to be repeated. Unfortunately
this does not seem currently possible, because custom_target() output cannot
be fed into install_data(), so it's necessary to use the 'install',
'install_dir' arguments to control installation. Nevertheless, rework the
rules to repeat less stuff and unify handling of conditions between the
different file types.
Zbigniew Jędrzejewski-Szmek [Thu, 13 Apr 2017 00:05:33 +0000 (20:05 -0400)]
meson: support (the removal of) lines with ##
Zbigniew Jędrzejewski-Szmek [Wed, 12 Apr 2017 23:54:33 +0000 (19:54 -0400)]
meson: fix a bunch of substitutions
This makes the diff -r output on autotools and meson installations
empty, except for binary files and ## comments.
Zbigniew Jędrzejewski-Szmek [Wed, 12 Apr 2017 23:09:26 +0000 (19:09 -0400)]
meson: properly conditionalize polkit installation
... including pkla installation on Debian.
v2:
- fix polkit-gobject-1 pkgconfig name
Zbigniew Jędrzejewski-Szmek [Wed, 12 Apr 2017 19:05:55 +0000 (15:05 -0400)]
meson: add support for building efi modules
This is a very straightforward conversion of the rules in Makefile.am.
Generated objects (on arm64) are identical.
The only difference in executed commands is that automake uses ld -m
elf_x86_64, without us specifying the -m option anywhere. I suspect that
using the default for the given linker should be OK, so it's fine to just
skip it.
Zbigniew Jędrzejewski-Szmek [Wed, 12 Apr 2017 17:08:47 +0000 (13:08 -0400)]
meson: specify a timeout of 90 s for tests which take a bit longer
Both test-hashmap and test-benchmark need 10-11 s here, but might time out
under load with the default meson timeout of 30 s.
Zbigniew Jędrzejewski-Szmek [Wed, 12 Apr 2017 16:36:20 +0000 (12:36 -0400)]
meson: disable bootctl without libblkid
bootctl uses blkid probe functions to find the ESP, hence it's useless without
it. Don't even try to build it if libblkid is unavailable.
Zbigniew Jędrzejewski-Szmek [Wed, 12 Apr 2017 16:14:30 +0000 (12:14 -0400)]
meson: fix compilation with -Dnetworkd=false, -Dkmod=no, -Dlibgcrypt=no
The tests are included under the conditional too, instead of specifying
'ENABLE_NETWORKD' in the test definition array, because libnetworkd_core
dependency is undefined if networkd is disabled.
Zbigniew Jędrzejewski-Szmek [Wed, 12 Apr 2017 16:02:30 +0000 (12:02 -0400)]
meson: replace $ORIGIN with rootlibdir everywhere
$ORIGIN does not work when /proc is not mounted. So the systemd binary cannot use
$ORIGIN. Use the full path everywhere for consistency.
Zbigniew Jędrzejewski-Szmek [Tue, 11 Apr 2017 14:25:34 +0000 (10:25 -0400)]
meson: make cpp invocations cross-compilation friendly
This implementation assumes that the arguments in compiler.cmd_array()
don't contain any spaces. Since we are only interested in compilation
on Linux, I think this is a safe assumption.
Solution suggested by Nirbheek Chauhan.
Zbigniew Jędrzejewski-Szmek [Mon, 10 Apr 2017 23:06:45 +0000 (19:06 -0400)]
meson: add a few forgotten substitutions
v2:
- a few more
Zbigniew Jędrzejewski-Szmek [Mon, 10 Apr 2017 22:13:00 +0000 (18:13 -0400)]
meson: specify rpath on all executables linking to libshared
(i.e. pretty much all of them). libtools does this automatically for us. It
would be great if meson did too. Otherwise, it would be nice to simply attach
the information about necessary rpath to the library object, and have it used
automatically for all users. Dunno, maybe there's already a way to do this.
I used '$ORIGIN' for stuff installed into libexecdir, since that's where
libshared ends up, and a full path for everything else. The advantage of
using $ORIGIN is that those binaries can be started from $DESTDIR, which can
sometimes be useful.
Zbigniew Jędrzejewski-Szmek [Mon, 10 Apr 2017 21:35:55 +0000 (17:35 -0400)]
meson: link test-lib{systemd,udev}-sym in the usual way
I tried to link to the right library by hand, because without
mesonbuid/meson#1545, libbasic.a is added to the link arguments. We want to
link the test with nothing but the library being tested. Doing the linking by
hand did achieve that, but it caused a bigger issue: meson didn't know about
the dependency on the library. And the dependency cannot be added using
link_depends, because "link_depends arguments must be strings...", and this
does not work with a compilation target. So just link in the usual way and
accept the overlinking (for now).
Zbigniew Jędrzejewski-Szmek [Mon, 10 Apr 2017 21:35:21 +0000 (17:35 -0400)]
meson: fix compilation of libsystemd
It uses libsystemd_journal_internal_sources, so we need to
make sure that audit_type-to-name.h is generated early enough.
Zbigniew Jędrzejewski-Szmek [Mon, 10 Apr 2017 21:11:10 +0000 (17:11 -0400)]
meson: update linking for fixed meson linking
With mesonbuid/meson#1545, meson does not propagate deps of a library
when linking with that library. That's of course the right thing to do,
but it exposes a bunch of missing deps.
This compiles with both meson-0.39.1 and meson-git + pr/1545.
Zbigniew Jędrzejewski-Szmek [Mon, 10 Apr 2017 19:20:42 +0000 (15:20 -0400)]
meson: add test-libudev-sym
This is slightly complicated by the fact that files('libudev.h') cannot be used
as an argument in custom_target command (string is required). This restriction
should be lifted in future versions of mesons, so this could be simplified.
Zbigniew Jędrzejewski-Szmek [Mon, 10 Apr 2017 18:13:40 +0000 (14:13 -0400)]
meson: add test-libsystemd-sym, fix linking of libsystemd
This is quite messy. I think libtool might have been using something
like -Wl,--whole-archive, but I don't think meson has support for that.
For now, just recompile all the sources for linking into libsystemd
directly. This should not matter much for efficiency, since it's a
few small files.
Zbigniew Jędrzejewski-Szmek [Mon, 10 Apr 2017 16:37:52 +0000 (12:37 -0400)]
meson: install systemd-sulogin-shell too
Zbigniew Jędrzejewski-Szmek [Mon, 10 Apr 2017 16:26:39 +0000 (12:26 -0400)]
meson: remove libnss_*.so symlinks after install