Systemd/src
Zbigniew Jędrzejewski-Szmek 5c23128dab meson: build systemd using meson
It's crucial that we can build systemd using VS2010!

... er, wait, no, that's not the official reason. We need to shed old systems
by requring python 3! Oh, no, it's something else. Maybe we need to throw out
345 years of knowlege accumulated in autotools? Whatever, this new thing is
cool and shiny, let's use it.

This is not complete, I'm throwing it out here for your amusement and critique.

- rules for sd-boot are missing. Those might be quite complicated.

- rules for tests are missing too. Those are probably quite simple and
  repetitive, but there's lots of them.

- it's likely that I didn't get all the conditions right, I only tested "full"
  compilation where most deps are provided and nothing is disabled.

- busname.target and all .busname units are skipped on purpose.

  Otherwise, installation into $DESTDIR has the same list of files and the
  autoconf install, except for .la files.

It'd be great if people had a careful look at all the library linking options.
I added stuff until things compiled, and in the end there's much less linking
then in the old system. But it seems that there's still a lot of unnecessary
deps.

meson has a `shared_module` statement, which sounds like something appropriate
for our nss and pam modules. Unfortunately, I couldn't get it to work. For the
nss modules, we need an .so version of '2', but `shared_module` disallows the
version argument. For the pam module, it also didn't work, I forgot the reason.

The handling of .m4 and .in and .m4.in files is rather awkward. It's likely
that this could be simplified. If make support is ever dropped, I think it'd
make sense to switch to a different templating system so that two different
languages and not required, which would make everything simpler yet.

v2:
- use get_pkgconfig_variable
- use sh not bash
- use add_project_arguments

v3:
- drop required:true and fix progs/prog typo

v4:
- use find_library('bz2')
- add TTY_GID definition
- define __SANE_USERSPACE_TYPES__
- use join_paths(prefix, ...) is used on all paths to make them all absolute

v5:
- replace all declare_dependency's with []
- add more conf.get guards around optional components

v6:
- drop -pipe, -Wall which are the default in meson
- use compiler.has_function() and compiler.has_header_symbol instead of the
  hand-rolled checks.
- fix duplication in 'liblibsystemd' library name
- use the right .sym file for pam_systemd
- rename 'compiler' to 'cc': shorter, and more idiomatic.

v7:
- use ENABLE_ENVIRONMENT_D not HAVE_ENVIRONMENT_D
- rename prefix to prefixdir, rootprefix to rootprefixdir
  ("prefix" is too common of a name and too easy to overwrite by mistake)
- wrap more stuff with conf.get('ENABLE...') == 1
- use rootprefix=='/' and rootbindir as install_dir, to fix paths under
  split-usr==true.

v8:
- use .split() also for src/coredump. Now everything is consistent ;)
- add rootlibdir option and use it on the libraries that require it

v9:
- indentation

v10:
- fix check for qrencode and libaudit

v11:
- unify handling of executable paths, provide options for all progs

  This makes the meson build behave slightly differently than the
  autoconf-based one, because we always first try to find the executable in the
  filesystem, and fall back to the default. I think different handling of
  loadkeys, setfont, and telinit was just a historical accident.

  In addition to checking in $PATH, also check /usr/sbin/, /sbin for programs.
  In Fedora $PATH includes /usr/sbin, (and /sbin is is a symlink to /usr/sbin),
  but in Debian, those directories are not included in the path.

  C.f. https://github.com/mesonbuild/meson/issues/1576.

- call all the options 'xxx-path' for clarity.
- sort man/rules/meson.build properly so it's stable
2017-04-23 21:47:26 -04:00
..
ac-power
activate tree-wide: set SA_RESTART for signal handlers we install 2016-12-01 12:41:17 +01:00
analyze meson: build systemd using meson 2017-04-23 21:47:26 -04:00
ask-password
backlight
basic meson: build systemd using meson 2017-04-23 21:47:26 -04:00
binfmt
boot Merge pull request #5708 from vcatechnology/arm-cross-compile 2017-04-17 15:49:06 +02:00
busctl Move busctl sources to src/busctl 2017-04-04 20:36:09 -04:00
cgls cgroup: change cg_unified() to possibly return errors again 2017-02-24 17:52:58 +01:00
cgroups-agent
cgtop cgtop: use PRIu64 to print uint64_t (#5544) 2017-03-07 07:47:18 +01:00
core meson: build systemd using meson 2017-04-23 21:47:26 -04:00
coredump meson: build systemd using meson 2017-04-23 21:47:26 -04:00
cryptsetup cryptsetup-generator: run cryptsetup service before swap unit (#5480) 2017-02-28 21:30:22 +01:00
dbus1-generator
debug-generator util-lib: various improvements to kernel command line parsing 2016-12-21 19:09:08 +01:00
delta tree-wide: replace all readdir cycles with FOREACH_DIRENT{,_ALL} (#4853) 2016-12-09 10:04:30 +01:00
detect-virt
dissect dissect: generate friendly error messages for more error conditions 2017-02-21 21:41:32 +01:00
environment-d-generator environment-generator: new generator to peruse environment.d 2017-02-20 18:49:14 -05:00
escape
firstboot copy: change the various copy_xyz() calls to take a unified flags parameter 2017-02-17 10:22:28 +01:00
fsck util-lib: various improvements to kernel command line parsing 2016-12-21 19:09:08 +01:00
fstab-generator fstab-generator: quiesce false-positive -Werror=format-nonliteral (#5336) 2017-02-13 20:58:22 -05:00
getty-generator
gpt-auto-generator build-sys: correct blkid.h includes 2017-04-06 14:33:02 +01:00
hibernate-resume util-lib: various improvements to kernel command line parsing 2016-12-21 19:09:08 +01:00
hostname meson: build systemd using meson 2017-04-23 21:47:26 -04:00
hwdb tree-wide: standardize on $(PACKAGE_VERSION) for the version string 2017-04-04 20:36:09 -04:00
import meson: build systemd using meson 2017-04-23 21:47:26 -04:00
initctl
journal meson: build systemd using meson 2017-04-23 21:47:26 -04:00
journal-remote meson: build systemd using meson 2017-04-23 21:47:26 -04:00
kernel-install meson: build systemd using meson 2017-04-23 21:47:26 -04:00
libsystemd meson: build systemd using meson 2017-04-23 21:47:26 -04:00
libsystemd-network meson: build systemd using meson 2017-04-23 21:47:26 -04:00
libudev meson: build systemd using meson 2017-04-23 21:47:26 -04:00
locale meson: build systemd using meson 2017-04-23 21:47:26 -04:00
login meson: build systemd using meson 2017-04-23 21:47:26 -04:00
machine meson: build systemd using meson 2017-04-23 21:47:26 -04:00
machine-id-setup machine-id-setup: --print --commit respects the --root option 2016-12-13 13:03:13 +00:00
modules-load util-lib: various improvements to kernel command line parsing 2016-12-21 19:09:08 +01:00
mount mount-tools: silence gcc warning about uninit var 2017-02-21 11:15:50 -05:00
network meson: build systemd using meson 2017-04-23 21:47:26 -04:00
notify
nspawn meson: build systemd using meson 2017-04-23 21:47:26 -04:00
nss-myhostname nss: fix error to ERANGE for nss calls with too little buffer space (#5365) 2017-02-16 21:29:09 +01:00
nss-mymachines nss: fix error to ERANGE for nss calls with too little buffer space (#5365) 2017-02-16 21:29:09 +01:00
nss-resolve nss-resolve: Fix assertion in ifindex_to_scopeid. (#5360) 2017-02-16 11:00:49 +01:00
nss-systemd nss: fix error to ERANGE for nss calls with too little buffer space (#5365) 2017-02-16 21:29:09 +01:00
path
quotacheck qutoacheck,gpt-auto-generator: trivial coding style improvements 2016-12-21 19:09:28 +01:00
random-seed
rc-local-generator rc-local-generator: drop duplicate definitions for rc.local 2017-04-19 19:27:01 -04:00
remount-fs tree-wide: always invoke setmntent() with "re" mode 2016-12-20 20:00:09 +01:00
reply-password treewide: replace homegrown memory_erase with explicit_bzero 2017-02-05 21:07:55 -05:00
resolve meson: build systemd using meson 2017-04-23 21:47:26 -04:00
rfkill
run run: also pin unit when we we are in --pty mode 2017-02-28 18:35:05 +01:00
shared meson: build systemd using meson 2017-04-23 21:47:26 -04:00
sleep Merge pull request #5131 from keszybz/environment-generators 2017-02-21 11:11:44 +01:00
socket-proxy socket-proxyd: fix --connections-max help message and docs (#5044) 2017-01-10 08:55:50 +01:00
stdio-bridge
sulogin-shell units: simplify rescue.service and emergency.service (#5623) 2017-03-22 23:37:06 -04:00
sysctl
system-update-generator system-update-generator: warn if the command line blocks updates (#5173) 2017-02-01 21:50:03 +01:00
systemctl build-sys: use a single ENABLE_LOGIND conditional 2017-04-04 20:36:09 -04:00
systemd meson: build systemd using meson 2017-04-23 21:47:26 -04:00
sysusers copy: change the various copy_xyz() calls to take a unified flags parameter 2017-02-17 10:22:28 +01:00
sysv-generator sysv-generator: Provides: $network should also pull network.target to transaction (#5652) 2017-03-30 11:12:50 +02:00
test test-exec-util: drop duplicate const 2017-04-21 12:05:55 -04:00
timedate meson: build systemd using meson 2017-04-23 21:47:26 -04:00
timesync meson: build systemd using meson 2017-04-23 21:47:26 -04:00
tmpfiles tmpfiles: downgrade error message when operation is not supported (#5692) 2017-04-10 13:22:18 +02:00
tty-ask-password-agent treewide: replace homegrown memory_erase with explicit_bzero 2017-02-05 21:07:55 -05:00
udev meson: build systemd using meson 2017-04-23 21:47:26 -04:00
update-done tree-wide: add man: to manpage references (#5402) 2017-02-20 18:45:35 -05:00
update-utmp
user-sessions
vconsole meson: build systemd using meson 2017-04-23 21:47:26 -04:00
veritysetup tree-wide: remove consecutive duplicate words in comments (#5148) 2017-01-24 21:45:30 -05:00
volatile-root fstab-generator: add support for volatile boots 2016-12-21 19:09:29 +01:00
.gitignore
Makefile