2013-01-08 04:27:18 +04:00
# -*- Mode: makefile; indent-tabs-mode: t -*-
2012-04-12 15:33:02 +04:00
#
2010-02-03 16:21:48 +03:00
# This file is part of systemd.
#
2012-04-03 23:24:46 +04:00
# Copyright 2010-2012 Lennart Poettering
# Copyright 2010-2012 Kay Sievers
2013-01-23 08:51:51 +04:00
# Copyright 2013 Zbigniew Jędrzejewski-Szmek
2013-10-15 03:41:47 +04:00
# Copyright 2013 David Strauss
2010-02-03 16:21:48 +03:00
#
# systemd is free software; you can redistribute it and/or modify it
2012-04-12 02:20:58 +04:00
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
2010-02-03 16:21:48 +03:00
# (at your option) any later version.
#
# systemd is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
2012-04-12 02:20:58 +04:00
# Lesser General Public License for more details.
2010-02-03 16:21:48 +03:00
#
2012-04-12 02:20:58 +04:00
# You should have received a copy of the GNU Lesser General Public License
2010-02-03 16:21:48 +03:00
# along with systemd; If not, see <http://www.gnu.org/licenses/>.
2012-04-03 23:24:46 +04:00
ACLOCAL_AMFLAGS = -I m4 ${ ACLOCAL_FLAGS }
AM_MAKEFLAGS = --no-print-directory
2012-12-01 13:37:52 +04:00
AUTOMAKE_OPTIONS = color-tests parallel-tests
2010-02-03 16:21:48 +03:00
2014-08-15 18:33:03 +04:00
GCC_COLORS ?= 'ooh, shiny!'
export GCC_COLORS
2012-04-03 23:24:46 +04:00
SUBDIRS = . po
2012-07-17 19:58:14 +04:00
# remove targets if the command fails
.DELETE_ON_ERROR :
2013-01-30 06:17:40 +04:00
# keep intermediate files
.SECONDARY :
2013-07-17 18:29:55 +04:00
# Keep the test-suite.log
2013-07-18 11:18:55 +04:00
.PRECIOUS : $( TEST_SUITE_LOG ) Makefile
2013-07-17 18:29:55 +04:00
2014-08-20 00:45:53 +04:00
LIBUDEV_CURRENT = 7
2016-07-25 22:49:47 +03:00
LIBUDEV_REVISION = 5
2014-08-20 00:45:53 +04:00
LIBUDEV_AGE = 6
2012-04-03 23:24:46 +04:00
2016-11-03 01:04:40 +03:00
LIBSYSTEMD_CURRENT = 17
2015-09-08 14:31:57 +03:00
LIBSYSTEMD_REVISION = 0
2016-11-03 01:04:40 +03:00
LIBSYSTEMD_AGE = 17
2014-06-11 17:30:28 +04:00
2010-06-02 02:35:58 +04:00
# Dirs of external packages
2010-06-07 06:14:39 +04:00
dbuspolicydir = @dbuspolicydir@
dbussessionservicedir = @dbussessionservicedir@
dbussystemservicedir = @dbussystemservicedir@
2010-06-22 01:27:18 +04:00
pamlibdir = @pamlibdir@
Add pam configuration to allow user sessions to work out of the box
systemd-logind will start user@.service. user@.service unit uses
PAM with service name 'systemd-user' to perform account and session
managment tasks. Previously, the name was 'systemd-shared', it is
now changed to 'systemd-user'.
Most PAM installations use one common setup for different callers.
Based on a quick poll, distributions fall into two camps: those that
have system-auth (Redhat, Fedora, CentOS, Arch, Gentoo, Mageia,
Mandriva), and those that have common-auth (Debian, Ubuntu, OpenSUSE).
Distributions that have system-auth have just one configuration file
that contains auth, password, account, and session blocks, and
distributions that have common-auth also have common-session,
common-password, and common-account. It is thus impossible to use one
configuration file which would work for everybody. systemd-user now
refers to system-auth, because it seems that the approach with one
file is more popular and also easier, so let's follow that.
2013-09-11 22:31:14 +04:00
pamconfdir = @pamconfdir@
2015-04-21 21:35:17 +03:00
pkgconfigdatadir = $( datadir) /pkgconfig
2011-07-26 23:44:37 +04:00
pkgconfiglibdir = $( libdir) /pkgconfig
2010-09-17 03:26:29 +04:00
polkitpolicydir = $( datadir) /polkit-1/actions
2016-11-18 18:17:01 +03:00
polkitrulesdir = $( datadir) /polkit-1/rules.d
polkitpkladir = $( localstatedir) /lib/polkit-1/localauthority/10-vendor.d
2013-03-04 00:32:49 +04:00
bashcompletiondir = @bashcompletiondir@
2013-07-25 09:57:05 +04:00
zshcompletiondir = @zshcompletiondir@
2013-06-27 18:30:12 +04:00
rpmmacrosdir = $( prefix) /lib/rpm/macros.d
2012-10-17 22:03:21 +04:00
sysvinitdir = $( SYSTEM_SYSVINIT_PATH)
2013-01-08 05:37:37 +04:00
sysvrcnddir = $( SYSTEM_SYSVRCND_PATH)
2012-10-17 22:03:21 +04:00
varlogdir = $( localstatedir) /log
2012-11-17 02:08:27 +04:00
systemdstatedir = $( localstatedir) /lib/systemd
catalogstatedir = $( systemdstatedir) /catalog
2015-01-09 23:23:48 +03:00
xinitrcdir = $( sysconfdir) /X11/xinit/xinitrc.d
2010-02-13 03:07:02 +03:00
2010-06-02 02:35:58 +04:00
# Our own, non-special dirs
2010-05-16 01:06:41 +04:00
pkgsysconfdir = $( sysconfdir) /systemd
2011-04-05 04:49:49 +04:00
userunitdir = $( prefix) /lib/systemd/user
2012-09-14 00:17:46 +04:00
userpresetdir = $( prefix) /lib/systemd/user-preset
2011-04-25 23:38:21 +04:00
tmpfilesdir = $( prefix) /lib/tmpfiles.d
sysusers: add minimal tool to reconstruct /etc/passwd and /etc/group from static files
systemd-sysusers is a tool to reconstruct /etc/passwd and /etc/group
from static definition files that take a lot of inspiration from
tmpfiles snippets. These snippets should carry information about system
users only. To make sure it is not misused for normal users these
snippets only allow configuring UID and gecos field for each user, but
do not allow configuration of the home directory or shell, which is
necessary for real login users.
The purpose of this tool is to enable state-less systems that can
populate /etc with the minimal files necessary, solely from static data
in /usr. systemd-sysuser is additive only, and will never override
existing users.
This tool will create these files directly, and not via some user
database abtsraction layer. This is appropriate as this tool is supposed
to run really early at boot, and is only useful for creating system
users, and system users cannot be stored in remote databases anyway.
The tool is also useful to be invoked from RPM scriptlets, instead of
useradd. This allows moving from imperative user descriptions in RPM to
declarative descriptions.
The UID/GID for a user/group to be created can either be chosen dynamic,
or fixed, or be read from the owner of a file in the file system, in
order to support reconstructing the correct IDs for files that shall be
owned by them.
This also adds a minimal user definition file, that should be
sufficient for most basic systems. Distributions are expected to patch
these files and augment the contents, for example with fixed UIDs for
the users where that's necessary.
2014-06-13 00:54:02 +04:00
sysusersdir = $( prefix) /lib/sysusers.d
2012-01-14 03:37:35 +04:00
sysctldir = $( prefix) /lib/sysctl.d
2014-07-01 01:09:42 +04:00
binfmtdir = $( prefix) /lib/binfmt.d
modulesloaddir = $( prefix) /lib/modules-load.d
2014-02-21 18:14:51 +04:00
networkdir = $( rootprefix) /lib/systemd/network
2011-07-15 00:50:01 +04:00
pkgincludedir = $( includedir) /systemd
2012-04-04 14:48:07 +04:00
systemgeneratordir = $( rootlibexecdir) /system-generators
2013-08-02 06:58:03 +04:00
usergeneratordir = $( prefix) /lib/systemd/user-generators
2012-04-04 14:48:07 +04:00
systemshutdowndir = $( rootlibexecdir) /system-shutdown
2012-05-05 04:06:58 +04:00
systemsleepdir = $( rootlibexecdir) /system-sleep
2012-04-04 14:48:07 +04:00
systemunitdir = $( rootprefix) /lib/systemd/system
2012-09-14 00:17:46 +04:00
systempresetdir = $( rootprefix) /lib/systemd/system-preset
2012-04-03 23:24:46 +04:00
udevlibexecdir = $( rootprefix) /lib/udev
2012-11-16 02:03:31 +04:00
udevhomedir = $( udevlibexecdir)
udevrulesdir = $( udevlibexecdir) /rules.d
udevhwdbdir = $( udevlibexecdir) /hwdb.d
catalogdir = $( prefix) /lib/systemd/catalog
2013-04-30 20:01:47 +04:00
kernelinstalldir = $( prefix) /lib/kernel/install.d
2015-04-07 21:54:02 +03:00
factory_etcdir = $( datadir) /factory/etc
factory_pamdir = $( datadir) /factory/etc/pam.d
2015-02-17 22:12:50 +03:00
bootlibdir = $( prefix) /lib/systemd/boot/efi
2010-06-02 02:35:58 +04:00
# And these are the special ones for /
2012-01-05 03:40:39 +04:00
rootprefix = @rootprefix@
rootbindir = $( rootprefix) /bin
rootlibexecdir = $( rootprefix) /lib/systemd
2010-04-13 07:18:12 +04:00
2011-12-31 09:02:42 +04:00
EXTRA_DIST =
2012-04-03 23:24:46 +04:00
BUILT_SOURCES =
2011-12-31 09:02:42 +04:00
INSTALL_EXEC_HOOKS =
UNINSTALL_EXEC_HOOKS =
INSTALL_DATA_HOOKS =
2012-11-17 02:08:27 +04:00
UNINSTALL_DATA_HOOKS =
2012-04-03 23:24:46 +04:00
DISTCLEAN_LOCAL_HOOKS =
2013-03-08 19:27:44 +04:00
CLEAN_LOCAL_HOOKS =
2011-12-31 12:17:48 +04:00
pkginclude_HEADERS =
2012-04-10 18:41:52 +04:00
noinst_LTLIBRARIES =
2011-12-31 20:06:09 +04:00
lib_LTLIBRARIES =
2016-06-25 05:14:25 +03:00
rootlibexec_LTLIBRARIES =
2012-04-03 23:24:46 +04:00
include_HEADERS =
2013-03-08 20:03:50 +04:00
noinst_DATA =
2015-04-21 21:35:17 +03:00
pkgconfigdata_DATA =
2011-12-31 20:06:09 +04:00
pkgconfiglib_DATA =
2013-02-14 01:56:43 +04:00
polkitpolicy_in_in_files =
2011-12-31 09:02:42 +04:00
polkitpolicy_in_files =
2012-07-28 06:43:38 +04:00
polkitpolicy_files =
2016-11-18 18:17:01 +03:00
polkitrules_files =
polkitpkla_files =
2012-01-22 21:20:42 +04:00
dist_udevrules_DATA =
2012-04-03 23:24:46 +04:00
nodist_udevrules_DATA =
2012-04-12 15:34:18 +04:00
dist_pkgsysconf_DATA =
2014-03-31 07:08:02 +04:00
nodist_pkgsysconf_DATA =
2012-04-12 15:34:18 +04:00
dist_dbuspolicy_DATA =
dist_dbussystemservice_DATA =
2014-09-04 01:34:29 +04:00
dist_systemunit_DATA_busnames =
2015-03-03 08:21:10 +03:00
dist_sysusers_DATA =
2012-04-12 21:00:28 +04:00
check_PROGRAMS =
2012-04-13 17:57:13 +04:00
check_DATA =
resolved: respond to local resolver requests on 127.0.0.53:53
In order to improve compatibility with local clients that speak DNS directly
(and do not use NSS or our bus API) listen locally on 127.0.0.53:53 and process
any queries made that way.
Note that resolved does not implement a full DNS server on this port, but
simply enough to allow normal, local clients to resolve RRs through resolved.
Specifically it does not implement queries without the RD bit set (these are
requests where recursive lookups are explicitly disabled), and neither queries
with DNSSEC DO set in combination with DNSSEC CD (i.e. DNSSEC lookups with
validation turned off). It also refuses zone transfers and obsolete RR types.
All lookups done this way will be rejected with a clean error code, so that the
client side can repeat the query with a reduced feature set.
The code will set the DNSSEC AD flag however, depending on whether the data
resolved has been validated (or comes from a local, trusted source).
Lookups made via this mechanisms are propagated to LLMNR and mDNS as necessary,
but this is only partially useful as DNS packets cannot carry IP scope data
(i.e. the ifindex), and hence link-local addresses returned cannot be used
properly (and given that LLMNR/mDNS are mostly about link-local communication
this is quite a limitation). Also, given that DNS tends to use IDNA for
non-ASCII names, while LLMNR/mDNS uses UTF-8 lookups cannot be mapped 1:1.
In general this should improve compatibility with clients bypassing NSS but
it is highly recommended for clients to instead use NSS or our native bus API.
This patch also beefs up the DnsStream logic, as it reuses the code for local
TCP listening. DnsStream now provides proper reference counting for its
objects.
In order to avoid feedback loops resolved will no silently ignore 127.0.0.53
specified as DNS server when reading configuration.
resolved listens on 127.0.0.53:53 instead of 127.0.0.1:53 in order to leave
the latter free for local, external DNS servers or forwarders.
This also changes the "etc.conf" tmpfiles snippet to create a symlink from
/etc/resolv.conf to /usr/lib/systemd/resolv.conf by default, thus making this
stub the default mode of operation if /etc is not populated.
2016-06-21 01:58:47 +03:00
dist_rootlibexec_DATA =
2013-04-18 16:40:24 +04:00
tests =
manual_tests =
2015-01-20 23:26:35 +03:00
TEST_EXTENSIONS = .py
PY_LOG_COMPILER = $( PYTHON)
2015-12-07 12:43:43 +03:00
DISABLE_HARD_ERRORS = yes
2013-04-18 16:40:24 +04:00
i f E N A B L E _ T E S T S
2016-02-27 02:39:20 +03:00
noinst_PROGRAMS = $( manual_tests) $( tests) $( unsafe_tests)
2013-04-18 16:40:24 +04:00
TESTS = $( tests)
2016-02-27 02:39:20 +03:00
i f E N A B L E _ U N S A F E _ T E S T S
TESTS += \
$( unsafe_tests)
e n d i f
2013-04-18 16:40:24 +04:00
e l s e
noinst_PROGRAMS =
TESTS =
e n d i f
2016-06-05 01:15:42 +03:00
AM_TESTS_ENVIRONMENT = \
export SYSTEMD_KBD_MODEL_MAP = $( abs_top_srcdir) /src/locale/kbd-model-map; \
export SYSTEMD_LANGUAGE_FALLBACK_MAP = $( abs_top_srcdir) /src/locale/language-fallback-map;
2016-02-03 00:10:36 +03:00
i f E N A B L E _ B A S H _ C O M P L E T I O N
dist_bashcompletion_DATA = $( dist_bashcompletion_data)
nodist_bashcompletion_DATA = $( nodist_bashcompletion_data)
e n d i f
i f E N A B L E _ Z S H _ C O M P L E T I O N
dist_zshcompletion_DATA = $( dist_zshcompletion_data)
nodist_zshcompletion_DATA = $( nodist_zshcompletion_data)
e n d i f
2012-04-17 01:32:22 +04:00
udevlibexec_PROGRAMS =
2015-09-06 02:22:14 +03:00
gperf_gperf_sources =
2016-09-20 22:24:45 +03:00
rootlib_LTLIBRARIES =
2011-12-31 09:02:42 +04:00
2015-03-03 16:33:15 +03:00
in_files = $( filter %.in,$( EXTRA_DIST) )
in_in_files = $( filter %.in.in, $( in_files) )
m4_files = $( filter %.m4,$( EXTRA_DIST) $( in_files:.m4.in= .m4) )
CLEANFILES = $( BUILT_SOURCES) \
2015-04-21 21:35:17 +03:00
$( pkgconfigdata_DATA) \
2015-03-03 16:33:15 +03:00
$( pkgconfiglib_DATA) \
2016-02-03 00:10:36 +03:00
$( nodist_bashcompletion_data) \
$( nodist_zshcompletion_data) \
2015-03-03 16:33:15 +03:00
$( in_files:.in= ) $( in_in_files:.in.in= ) \
$( m4_files:.m4= )
2014-01-26 20:36:04 +04:00
.PHONY : $( INSTALL_EXEC_HOOKS ) $( UNINSTALL_EXEC_HOOKS ) \
$( INSTALL_DATA_HOOKS) $( UNINSTALL_DATA_HOOKS) \
$( DISTCLEAN_LOCAL_HOOKS) $( CLEAN_LOCAL_HOOKS)
2010-02-03 16:21:48 +03:00
AM_CPPFLAGS = \
2010-09-21 23:25:44 +04:00
-include $( top_builddir) /config.h \
2013-05-04 20:31:28 +04:00
-DPKGSYSCONFDIR= \" $( pkgsysconfdir) \" \
2010-02-13 03:07:02 +03:00
-DSYSTEM_CONFIG_UNIT_PATH= \" $( pkgsysconfdir) /system\" \
2010-04-13 07:18:12 +04:00
-DSYSTEM_DATA_UNIT_PATH= \" $( systemunitdir) \" \
2010-04-07 17:35:01 +04:00
-DSYSTEM_SYSVINIT_PATH= \" $( SYSTEM_SYSVINIT_PATH) \" \
2010-04-07 17:39:28 +04:00
-DSYSTEM_SYSVRCND_PATH= \" $( SYSTEM_SYSVRCND_PATH) \" \
2010-11-16 00:12:41 +03:00
-DUSER_CONFIG_UNIT_PATH= \" $( pkgsysconfdir) /user\" \
-DUSER_DATA_UNIT_PATH= \" $( userunitdir) \" \
2014-03-31 07:08:02 +04:00
-DCERTIFICATE_ROOT= \" $( CERTIFICATEROOT) \" \
2013-03-29 04:17:24 +04:00
-DCATALOG_DATABASE= \" $( catalogstatedir) /database\" \
2010-11-11 05:04:45 +03:00
-DSYSTEMD_CGROUP_AGENT_PATH= \" $( rootlibexecdir) /systemd-cgroups-agent\" \
2012-02-10 02:25:57 +04:00
-DSYSTEMD_BINARY_PATH= \" $( rootlibexecdir) /systemd\" \
2015-05-24 23:33:35 +03:00
-DSYSTEMD_FSCK_PATH= \" $( rootlibexecdir) /systemd-fsck\" \
2010-10-07 15:24:41 +04:00
-DSYSTEMD_SHUTDOWN_BINARY_PATH= \" $( rootlibexecdir) /systemd-shutdown\" \
2012-05-05 04:06:58 +04:00
-DSYSTEMD_SLEEP_BINARY_PATH= \" $( rootlibexecdir) /systemd-sleep\" \
2010-06-18 22:01:01 +04:00
-DSYSTEMCTL_BINARY_PATH= \" $( rootbindir) /systemctl\" \
2010-10-26 07:29:39 +04:00
-DSYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH= \" $( rootbindir) /systemd-tty-ask-password-agent\" \
2011-04-04 00:09:25 +04:00
-DSYSTEMD_STDIO_BRIDGE_BINARY_PATH= \" $( bindir) /systemd-stdio-bridge\" \
2012-01-05 03:40:39 +04:00
-DROOTPREFIX= \" $( rootprefix) \" \
2013-11-13 07:05:16 +04:00
-DRANDOM_SEED_DIR= \" $( localstatedir) /lib/systemd/\" \
2013-09-18 02:28:35 +04:00
-DRANDOM_SEED= \" $( localstatedir) /lib/systemd/random-seed\" \
2010-11-08 07:02:45 +03:00
-DSYSTEMD_CRYPTSETUP_PATH= \" $( rootlibexecdir) /systemd-cryptsetup\" \
2010-11-11 23:28:33 +03:00
-DSYSTEM_GENERATOR_PATH= \" $( systemgeneratordir) \" \
2010-11-16 00:12:41 +03:00
-DUSER_GENERATOR_PATH= \" $( usergeneratordir) \" \
2011-02-15 02:30:11 +03:00
-DSYSTEM_SHUTDOWN_PATH= \" $( systemshutdowndir) \" \
2012-06-01 04:07:12 +04:00
-DSYSTEM_SLEEP_PATH= \" $( systemsleepdir) \" \
2011-12-31 06:59:54 +04:00
-DSYSTEMD_KBD_MODEL_MAP= \" $( pkgdatadir) /kbd-model-map\" \
2015-01-31 22:11:23 +03:00
-DSYSTEMD_LANGUAGE_FALLBACK_MAP= \" $( pkgdatadir) /language-fallback-map\" \
2012-06-10 19:23:43 +04:00
-DUDEVLIBEXECDIR= \" $( udevlibexecdir) \" \
2012-04-12 03:51:49 +04:00
-DPOLKIT_AGENT_BINARY_PATH= \" $( bindir) /pkttyagent\" \
2013-05-06 23:15:38 +04:00
-DQUOTACHECK= \" $( QUOTACHECK) \" \
2013-07-16 07:04:52 +04:00
-DKEXEC= \" $( KEXEC) \" \
2015-05-13 16:43:04 +03:00
-DMOUNT_PATH= \" $( MOUNT_PATH) \" \
-DUMOUNT_PATH= \" $( UMOUNT_PATH) \" \
2014-07-02 14:23:36 +04:00
-DLIBDIR= \" $( libdir) \" \
-DROOTLIBDIR= \" $( rootlibdir) \" \
2015-02-24 16:30:10 +03:00
-DROOTLIBEXECDIR= \" $( rootlibexecdir) \" \
2014-01-07 17:41:24 +04:00
-DTEST_DIR= \" $( abs_top_srcdir) /test\" \
2011-12-31 22:35:52 +04:00
-I $( top_srcdir) /src \
2015-06-09 15:27:33 +03:00
-I $( top_builddir) /src/basic \
-I $( top_srcdir) /src/basic \
2012-04-10 15:39:02 +04:00
-I $( top_srcdir) /src/shared \
2015-06-09 15:27:33 +03:00
-I $( top_builddir) /src/shared \
2013-10-17 05:18:36 +04:00
-I $( top_srcdir) /src/network \
2016-05-26 20:35:20 +03:00
-I $( top_srcdir) /src/locale \
2012-01-04 00:08:28 +04:00
-I $( top_srcdir) /src/login \
2012-04-12 16:40:20 +04:00
-I $( top_srcdir) /src/journal \
2015-03-16 20:14:18 +03:00
-I $( top_builddir) /src/journal \
2014-03-11 01:15:56 +04:00
-I $( top_srcdir) /src/timedate \
2014-04-28 16:45:42 +04:00
-I $( top_srcdir) /src/timesync \
2015-09-06 02:22:14 +03:00
-I $( top_srcdir) /src/nspawn \
2014-05-22 04:41:32 +04:00
-I $( top_srcdir) /src/resolve \
2014-08-02 03:37:16 +04:00
-I $( top_builddir) /src/resolve \
2012-04-03 23:24:46 +04:00
-I $( top_srcdir) /src/systemd \
2012-07-17 18:03:50 +04:00
-I $( top_builddir) /src/core \
2012-04-11 14:59:52 +04:00
-I $( top_srcdir) /src/core \
2012-04-14 21:31:18 +04:00
-I $( top_srcdir) /src/libudev \
2012-08-08 14:03:34 +04:00
-I $( top_srcdir) /src/udev \
udev: add network link configuration tool
This tool applies hardware specific settings to network devices before they
are announced via libudev.
Settings that will probably eventually be supported are MTU, Speed,
DuplexMode, WakeOnLan, MACAddress, MACAddressPolicy (e.g., 'hardware',
'synthetic' or 'random'), Name and NamePolicy (replacing our current
interface naming logic). This patch only introduces support for
Description, as a proof of concept.
Some of these settings may later be overriden by a network management
daemon/script. However, these tools should always listen and wait on libudev
before touching a device (listening on netlink is not enough). This is no
different from how things used to be, as we always supported changing the
network interface name from udev rules, which does not work if someone
has already started using it.
The tool is configured by .link files in /etc/net/links/ (with the usual
overriding logic in /run and /lib). The first (in lexicographical order)
matching .link file is applied to a given device, and all others are ignored.
The .link files contain a [Match] section with (currently) the keys
MACAddress, Driver, Type (see DEVTYPE in udevadm info) and Path (this
matches on the stable device path as exposed as ID_PATH, and not the
unstable DEVPATH). A .link file matches a given device if all of the
specified keys do. Currently the keys are treated as plain strings,
but some limited globbing may later be added to the keys where it
makes sense.
Example:
/etc/net/links/50-wireless.link
[Match]
MACAddress=98:f2:e4:42:c6:92
Path=pci-0000:02:00.0-bcma-0
Type=wlan
[Link]
Description=The wireless link
2013-10-26 02:34:01 +04:00
-I $( top_srcdir) /src/udev/net \
2013-07-10 18:02:24 +04:00
-I $( top_builddir) /src/udev \
2014-01-21 17:10:18 +04:00
-I $( top_srcdir) /src/libsystemd/sd-bus \
-I $( top_srcdir) /src/libsystemd/sd-event \
2015-06-09 15:27:33 +03:00
-I $( top_srcdir) /src/libsystemd/sd-login \
2015-06-12 17:31:33 +03:00
-I $( top_srcdir) /src/libsystemd/sd-netlink \
2014-08-12 04:33:37 +04:00
-I $( top_srcdir) /src/libsystemd/sd-network \
2014-12-03 19:02:34 +03:00
-I $( top_srcdir) /src/libsystemd/sd-hwdb \
2015-04-01 14:50:31 +03:00
-I $( top_srcdir) /src/libsystemd/sd-device \
2016-07-21 18:57:57 +03:00
-I $( top_srcdir) /src/libsystemd/sd-id128 \
2014-02-27 04:24:05 +04:00
-I $( top_srcdir) /src/libsystemd-network \
2012-08-08 14:03:34 +04:00
$( OUR_CPPFLAGS)
2010-02-03 16:21:48 +03:00
2012-08-08 14:26:27 +04:00
AM_CFLAGS = $( OUR_CFLAGS)
2012-08-08 14:03:34 +04:00
AM_LDFLAGS = $( OUR_LDFLAGS)
2012-03-19 20:20:42 +04:00
2013-01-06 08:47:47 +04:00
# ------------------------------------------------------------------------------
2013-01-23 07:24:54 +04:00
INSTALL_DIRS =
SHUTDOWN_TARGET_WANTS =
LOCAL_FS_TARGET_WANTS =
MULTI_USER_TARGET_WANTS =
2015-02-18 22:17:49 +03:00
GRAPHICAL_TARGET_WANTS =
RESCUE_TARGET_WANTS =
2013-01-23 07:24:54 +04:00
SYSINIT_TARGET_WANTS =
SOCKETS_TARGET_WANTS =
2013-12-03 07:27:03 +04:00
BUSNAMES_TARGET_WANTS =
2013-03-26 00:20:08 +04:00
TIMERS_TARGET_WANTS =
2014-01-07 16:20:22 +04:00
USER_SOCKETS_TARGET_WANTS =
2014-10-04 15:10:41 +04:00
USER_DEFAULT_TARGET_WANTS =
2014-01-07 16:20:22 +04:00
USER_BUSNAMES_TARGET_WANTS =
2013-01-23 07:24:54 +04:00
2013-01-23 08:51:51 +04:00
SYSTEM_UNIT_ALIASES =
USER_UNIT_ALIASES =
GENERAL_ALIASES =
2013-01-23 07:24:54 +04:00
install-target-wants-hook :
2014-01-07 16:20:22 +04:00
what = " $( SHUTDOWN_TARGET_WANTS) " && wants = shutdown.target && dir = $( systemunitdir) && $( add-wants)
what = " $( LOCAL_FS_TARGET_WANTS) " && wants = local-fs.target && dir = $( systemunitdir) && $( add-wants)
what = " $( MULTI_USER_TARGET_WANTS) " && wants = multi-user.target && dir = $( systemunitdir) && $( add-wants)
2015-02-18 22:17:49 +03:00
what = " $( GRAPHICAL_TARGET_WANTS) " && wants = graphical.target && dir = $( systemunitdir) && $( add-wants)
what = " $( RESCUE_TARGET_WANTS) " && wants = rescue.target && dir = $( systemunitdir) && $( add-wants)
2014-01-07 16:20:22 +04:00
what = " $( SYSINIT_TARGET_WANTS) " && wants = sysinit.target && dir = $( systemunitdir) && $( add-wants)
what = " $( SOCKETS_TARGET_WANTS) " && wants = sockets.target && dir = $( systemunitdir) && $( add-wants)
what = " $( TIMERS_TARGET_WANTS) " && wants = timers.target && dir = $( systemunitdir) && $( add-wants)
what = " $( SLICES_TARGET_WANTS) " && wants = slices.target && dir = $( systemunitdir) && $( add-wants)
what = " $( USER_SOCKETS_TARGET_WANTS) " && wants = sockets.target && dir = $( userunitdir) && $( add-wants)
2014-10-04 15:10:41 +04:00
what = " $( USER_DEFAULT_TARGET_WANTS) " && wants = default.target && dir = $( userunitdir) && $( add-wants)
2014-09-04 01:34:29 +04:00
install-busnames-target-wants-hook :
what = " $( BUSNAMES_TARGET_WANTS) " && wants = busnames.target && dir = $( systemunitdir) && $( add-wants)
2014-01-07 16:20:22 +04:00
what = " $( USER_BUSNAMES_TARGET_WANTS) " && wants = busnames.target && dir = $( userunitdir) && $( add-wants)
2013-01-23 07:24:54 +04:00
d e f i n e a d d - w a n t s
2013-01-24 06:41:30 +04:00
[ -z " $$ what " ] || ( \
2014-01-07 16:20:22 +04:00
dir = $( DESTDIR) $$ dir/$$ wants.wants && \
2013-01-24 06:41:30 +04:00
$( MKDIR_P) -m 0755 $$ dir && \
cd $$ dir && \
2013-01-23 07:24:54 +04:00
rm -f $$ what && \
2013-04-05 15:25:10 +04:00
for i in $$ what; do $( LN_S) ../$$ i . || exit $$ ? ; done )
2013-01-23 07:24:54 +04:00
e n d e f
install-directories-hook :
$( MKDIR_P) $( addprefix $( DESTDIR) ,$( INSTALL_DIRS) )
2013-01-23 08:51:51 +04:00
install-aliases-hook :
set -- $( SYSTEM_UNIT_ALIASES) && \
dir = $( systemunitdir) && $( install-aliases)
set -- $( USER_UNIT_ALIASES) && \
2014-03-03 20:10:16 +04:00
dir = $( userunitdir) && $( install-relative-aliases)
2013-01-23 08:51:51 +04:00
set -- $( GENERAL_ALIASES) && \
2014-03-03 20:10:16 +04:00
dir = && $( install-relative-aliases)
2013-01-23 08:51:51 +04:00
d e f i n e i n s t a l l - a l i a s e s
while [ -n " $$ 1 " ] ; do \
2013-05-07 22:38:51 +04:00
$( MKDIR_P) ` dirname $( DESTDIR) $$ dir/$$ 2` && \
2013-01-23 08:51:51 +04:00
rm -f $( DESTDIR) $$ dir/$$ 2 && \
2013-04-05 15:25:10 +04:00
$( LN_S) $$ 1 $( DESTDIR) $$ dir/$$ 2 && \
2013-01-23 08:51:51 +04:00
shift 2 || exit $$ ?; \
done
e n d e f
2014-03-03 20:10:16 +04:00
d e f i n e i n s t a l l - r e l a t i v e - a l i a s e s
while [ -n " $$ 1 " ] ; do \
$( MKDIR_P) ` dirname $( DESTDIR) $$ dir/$$ 2` && \
rm -f $( DESTDIR) $$ dir/$$ 2 && \
$( LN_S) --relative $( DESTDIR) $$ 1 $( DESTDIR) $$ dir/$$ 2 && \
shift 2 || exit $$ ?; \
done
e n d e f
2014-06-17 05:09:27 +04:00
install-touch-usr-hook :
touch -c $( DESTDIR) /$( prefix)
2013-01-23 07:24:54 +04:00
INSTALL_EXEC_HOOKS += \
install-target-wants-hook \
2013-01-23 08:51:51 +04:00
install-directories-hook \
2014-06-17 05:09:27 +04:00
install-aliases-hook \
install-touch-usr-hook
2013-01-23 07:24:54 +04:00
2014-09-04 01:34:29 +04:00
INSTALL_EXEC_HOOKS += \
install-busnames-target-wants-hook
2013-01-24 07:20:23 +04:00
# ------------------------------------------------------------------------------
AM_V_M4 = $( AM_V_M4_$( V) )
AM_V_M4_ = $( AM_V_M4_$( AM_DEFAULT_VERBOSITY) )
AM_V_M4_0 = @echo " M4 " $@ ;
2013-01-24 07:26:43 +04:00
AM_V_XSLT = $( AM_V_XSLT_$( V) )
AM_V_XSLT_ = $( AM_V_XSLT_$( AM_DEFAULT_VERBOSITY) )
AM_V_XSLT_0 = @echo " XSLT " $@ ;
2013-01-24 07:30:12 +04:00
AM_V_GPERF = $( AM_V_GPERF_$( V) )
AM_V_GPERF_ = $( AM_V_GPERF_$( AM_DEFAULT_VERBOSITY) )
AM_V_GPERF_0 = @echo " GPERF " $@ ;
2013-03-08 20:03:50 +04:00
AM_V_LN = $( AM_V_LN_$( V) )
AM_V_LN_ = $( AM_V_LN_$( AM_DEFAULT_VERBOSITY) )
AM_V_LN_0 = @echo " LN " $@ ;
2014-03-04 02:47:40 +04:00
AM_V_RM = $( AM_V_RM_$( V) )
AM_V_RM_ = $( AM_V_RM_$( AM_DEFAULT_VERBOSITY) )
AM_V_RM_0 = @echo " RM " $@ ;
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2010-06-02 02:35:58 +04:00
rootbin_PROGRAMS = \
2010-06-18 00:50:06 +04:00
systemctl \
2010-09-17 03:26:29 +04:00
systemd-notify \
2010-10-25 22:35:17 +04:00
systemd-ask-password \
2011-02-13 16:04:57 +03:00
systemd-tty-ask-password-agent \
2014-07-08 23:06:07 +04:00
systemd-machine-id-setup \
systemd-escape
2010-05-11 00:07:25 +04:00
2010-06-02 02:35:58 +04:00
bin_PROGRAMS = \
2011-03-12 03:03:13 +03:00
systemd-cgls \
2012-01-22 21:21:15 +04:00
systemd-cgtop \
2012-04-12 16:58:52 +04:00
systemd-nspawn \
2012-05-16 05:23:28 +04:00
systemd-detect-virt \
2013-02-22 20:02:06 +04:00
systemd-delta \
2013-06-28 06:12:58 +04:00
systemd-analyze \
2014-07-02 14:23:36 +04:00
systemd-run \
2016-08-06 01:32:46 +03:00
systemd-mount \
2015-01-17 20:01:01 +03:00
systemd-stdio-bridge \
2014-07-22 05:11:54 +04:00
systemd-path
2011-03-14 04:40:36 +03:00
2013-04-30 20:01:47 +04:00
dist_bin_SCRIPTS = \
2013-02-22 20:18:47 +04:00
src/kernel-install/kernel-install
2013-04-30 20:01:47 +04:00
dist_kernelinstall_SCRIPTS = \
src/kernel-install/50-depmod.install \
src/kernel-install/90-loaderentry.install
2013-02-28 06:48:34 +04:00
2010-06-02 02:35:58 +04:00
rootlibexec_PROGRAMS = \
2012-02-08 03:08:10 +04:00
systemd \
2010-04-05 00:53:42 +04:00
systemd-cgroups-agent \
2010-08-11 03:43:23 +04:00
systemd-initctl \
2010-10-07 15:24:41 +04:00
systemd-shutdown \
2012-04-24 18:42:42 +04:00
systemd-remount-fs \
2010-09-23 17:01:41 +04:00
systemd-reply-password \
2010-10-19 23:19:12 +04:00
systemd-fsck \
2010-11-18 23:52:26 +03:00
systemd-ac-power \
2012-05-05 04:06:58 +04:00
systemd-sysctl \
2013-10-18 04:40:26 +04:00
systemd-sleep \
update-done: add minimal tool to manage system updates for /etc and /var, if /usr has changed
In order to support offline updates to /usr, we need to be able to run
certain tasks on next boot-up to bring /etc and /var in line with the
updated /usr. Hence, let's devise a mechanism how we can detect whether
/etc or /var are not up-to-date with /usr anymore: we keep "touch
files" in /etc/.updated and /var/.updated that are mtime-compared with
/usr. This means:
Whenever the vendor OS tree in /usr is updated, and any services that
shall be executed at next boot shall be triggered, it is sufficient to
update the mtime of /usr itself. At next boot, if /etc/.updated and/or
/var/.updated is older than than /usr (or missing), we know we have to
run the update tools once. After that is completed we need to update the
mtime of these files to the one of /usr, to keep track that we made the
necessary updates, and won't repeat them on next reboot.
A subsequent commit adds a new ConditionNeedsUpdate= condition that
allows checking on boot whether /etc or /var are outdated and need
updating.
This is an early step to allow booting up with an empty /etc, with
automatic rebuilding of the necessary cache files or user databases
therein, as well as supporting later updates of /usr that then propagate
to /etc and /var again.
2014-06-13 14:43:49 +04:00
systemd-socket-proxyd \
2015-02-28 01:26:26 +03:00
systemd-update-done
2010-02-03 16:21:48 +03:00
2014-09-24 19:25:00 +04:00
i f H A V E _ U T M P
rootlibexec_PROGRAMS += \
systemd-update-utmp
e n d i f
2011-03-15 02:44:13 +03:00
systemgenerator_PROGRAMS = \
2012-05-22 21:23:33 +04:00
systemd-getty-generator \
2012-05-22 21:48:51 +04:00
systemd-fstab-generator \
2014-06-19 18:10:55 +04:00
systemd-system-update-generator \
2014-09-02 14:31:49 +04:00
systemd-debug-generator
2011-03-15 02:44:13 +03:00
2016-02-03 00:10:36 +03:00
dist_bashcompletion_data = \
2014-02-19 20:45:13 +04:00
shell-completion/bash/busctl \
2013-03-03 01:34:01 +04:00
shell-completion/bash/journalctl \
2013-04-24 18:44:44 +04:00
shell-completion/bash/systemd-analyze \
2014-03-05 02:16:30 +04:00
shell-completion/bash/systemd-cat \
2014-03-02 02:08:38 +04:00
shell-completion/bash/systemd-cgls \
2014-03-03 01:58:18 +04:00
shell-completion/bash/systemd-cgtop \
2014-02-19 01:20:26 +04:00
shell-completion/bash/systemd-delta \
2014-03-04 01:16:04 +04:00
shell-completion/bash/systemd-detect-virt \
2014-03-01 06:27:49 +04:00
shell-completion/bash/systemd-nspawn \
2015-11-21 10:10:21 +03:00
shell-completion/bash/systemd-path \
2013-09-13 03:35:59 +04:00
shell-completion/bash/systemd-run \
2013-07-26 04:33:51 +04:00
shell-completion/bash/udevadm \
shell-completion/bash/kernel-install
add bash completion for systemctl --system
I've been playing recently with systemd on Arch, and had much fun. But
soon, alas, my fingers started to ache from repeatedly writing
systemctl restart some-long-service.service. So, I wrote a completion
script. I figured other people may want to use it, so I prepared a
patch against systemd-git (attached).
There are some notes/disclaimers, however:
- It requires bash>=4.0, sed, grep and awk. A bash-completion package
is not strictly needed; sourcing the file is enough.
- It wouldn't work properly with --session, as I had no way to test it.
- It uses the output of systemctl list-units directly when that's
enough, but also runs systemctl show when completing on some verbs
(for example, to check for AllowIsolate=yes). This /may/ be somewhat
slow once there are many units, since it calls a dbus method on each
one. Is there a faster way to have that information?
- The code is perhaps a bit long and messy; honestly, I blame the tool ;)
One way to improve on the situation is to integrate some completion
code in systemctl itself, the way e.g. gdbus, gsettings and django do
it. This will allow for finer grained and faster completions, and it
won't be necessary to keep the verb/option tables in sync with some
other file. But it does mean adding all of this code in C. If this is
acceptable, I'll try to have a go at it.
Finally, a couple of completion tips I run into:
- If you alias systemctl to, say, sctl, you get completions on that
too by running to following command:
complete -F _systemctl sctl
- Add the following line to your .inputrc, to have the completion show
after only a single tab press:
set show-all-if-ambiguous on
It makes the shell quite more pleasant.
Hope it's good enough!
Ran
2010-11-09 02:03:27 +03:00
2016-02-03 00:10:36 +03:00
nodist_bashcompletion_data = \
2014-07-15 03:24:46 +04:00
shell-completion/bash/systemctl
2016-02-03 00:10:36 +03:00
dist_zshcompletion_data = \
2015-06-23 01:13:16 +03:00
shell-completion/zsh/_busctl \
2013-07-29 23:07:21 +04:00
shell-completion/zsh/_journalctl \
2013-07-29 23:10:39 +04:00
shell-completion/zsh/_udevadm \
2013-08-03 06:38:14 +04:00
shell-completion/zsh/_kernel-install \
2013-08-01 02:11:17 +04:00
shell-completion/zsh/_systemd-nspawn \
2013-07-29 23:12:55 +04:00
shell-completion/zsh/_systemd-analyze \
2013-10-31 00:57:44 +04:00
shell-completion/zsh/_systemd-run \
2013-08-12 21:41:18 +04:00
shell-completion/zsh/_sd_hosts_or_user_at_host \
2014-07-22 05:11:56 +04:00
shell-completion/zsh/_sd_outputmodes \
shell-completion/zsh/_sd_unit_files \
2013-08-15 07:09:14 +04:00
shell-completion/zsh/_systemd-delta \
2013-07-25 09:57:05 +04:00
shell-completion/zsh/_systemd
2016-02-03 00:10:36 +03:00
nodist_zshcompletion_data = \
2014-07-15 03:24:46 +04:00
shell-completion/zsh/_systemctl
EXTRA_DIST += \
shell-completion/bash/systemctl.in \
shell-completion/zsh/_systemctl.in
2013-06-02 12:54:44 +04:00
dist_sysctl_DATA = \
sysctl.d/50-default.conf
2011-04-02 03:08:31 +04:00
2010-05-16 01:06:41 +04:00
dist_systemunit_DATA = \
2011-03-18 06:59:05 +03:00
units/graphical.target \
units/multi-user.target \
2010-07-13 01:49:20 +04:00
units/emergency.target \
2010-10-29 06:09:36 +04:00
units/sysinit.target \
2010-06-04 20:43:40 +04:00
units/basic.target \
2010-05-17 03:34:36 +04:00
units/getty.target \
units/halt.target \
2010-10-14 02:57:52 +04:00
units/kexec.target \
2015-09-18 14:37:34 +03:00
units/exit.target \
2010-05-16 22:49:41 +04:00
units/local-fs.target \
2011-12-31 06:59:54 +04:00
units/local-fs-pre.target \
2013-03-14 16:12:10 +04:00
units/initrd.target \
2013-03-04 22:01:05 +04:00
units/initrd-fs.target \
2016-05-12 19:42:39 +03:00
units/initrd-root-device.target \
2013-03-14 16:12:10 +04:00
units/initrd-root-fs.target \
2011-06-15 00:01:44 +04:00
units/remote-fs.target \
2011-12-31 06:59:54 +04:00
units/remote-fs-pre.target \
2010-05-16 22:49:41 +04:00
units/network.target \
2014-06-11 13:33:02 +04:00
units/network-pre.target \
2013-03-29 00:18:58 +04:00
units/network-online.target \
2010-05-16 22:49:41 +04:00
units/nss-lookup.target \
2012-04-11 02:11:18 +04:00
units/nss-user-lookup.target \
2010-05-17 03:34:36 +04:00
units/poweroff.target \
units/reboot.target \
units/rescue.target \
2010-05-17 00:50:02 +04:00
units/rpcbind.target \
2011-04-06 21:18:11 +04:00
units/time-sync.target \
2010-05-16 22:49:41 +04:00
units/shutdown.target \
2010-10-14 05:07:36 +04:00
units/final.target \
2010-07-10 04:41:06 +04:00
units/umount.target \
2010-05-16 22:49:41 +04:00
units/sigpwr.target \
2012-05-05 04:06:58 +04:00
units/sleep.target \
2010-05-16 22:49:41 +04:00
units/sockets.target \
2013-03-26 00:20:08 +04:00
units/timers.target \
units/paths.target \
2012-05-05 04:06:58 +04:00
units/suspend.target \
2010-05-16 22:49:41 +04:00
units/swap.target \
2013-06-18 02:59:54 +04:00
units/slices.target \
units/system.slice \
2010-04-13 07:18:12 +04:00
units/systemd-initctl.socket \
2010-10-20 19:48:01 +04:00
units/syslog.socket \
2010-05-18 05:10:17 +04:00
units/dev-hugepages.mount \
units/dev-mqueue.mount \
2011-09-13 19:01:56 +04:00
units/sys-kernel-config.mount \
2010-05-18 05:10:17 +04:00
units/sys-kernel-debug.mount \
2011-09-22 05:00:04 +04:00
units/sys-fs-fuse-connections.mount \
2012-03-27 19:13:05 +04:00
units/tmp.mount \
2015-02-24 19:23:53 +03:00
units/var-lib-machines.mount \
2010-07-13 04:16:44 +04:00
units/printer.target \
2011-02-09 23:07:28 +03:00
units/sound.target \
2010-07-16 23:38:56 +04:00
units/bluetooth.target \
2010-09-21 17:07:43 +04:00
units/smartcard.target \
2010-10-26 06:40:32 +04:00
units/systemd-ask-password-wall.path \
2011-03-18 07:01:30 +03:00
units/systemd-ask-password-console.path \
2012-07-02 23:35:14 +04:00
units/systemd-udevd-control.socket \
units/systemd-udevd-kernel.socket \
2013-02-24 20:40:36 +04:00
units/system-update.target \
2014-12-31 19:02:12 +03:00
units/initrd-switch-root.target \
units/machines.target
2010-04-13 07:18:12 +04:00
2014-09-04 01:34:29 +04:00
dist_systemunit_DATA += \
$( dist_systemunit_DATA_busnames)
dist_systemunit_DATA_busnames += \
units/busnames.target
2010-06-24 06:22:22 +04:00
nodist_systemunit_DATA = \
2010-05-17 03:34:36 +04:00
units/getty@.service \
2010-08-25 05:09:57 +04:00
units/serial-getty@.service \
2012-04-22 04:15:22 +04:00
units/console-getty.service \
2013-10-31 04:25:44 +04:00
units/container-getty@.service \
units: add system-update-cleanup.service to guard against offline-update loops
Note: the name is "system-update-cleanup.service" rather than
"system-update-done.service", because it should not run normally, and also
because there's already "systemd-update-done.service", and having them named
so similarly would be confusing.
In https://bugzilla.redhat.com/show_bug.cgi?id=1395686 the system repeatedly
entered system-update.target on boot. Because of a packaging issue, the tool
that created the /system-update symlink could be installed without the service
unit that was supposed to perform the upgrade (and remove the symlink). In
fact, if there are no units in system-update.target, and /system-update symlink
is created, systemd always "hangs" in system-update.target. This is confusing
for users, because there's no feedback what is happening, and fixing this
requires starting an emergency shell somehow, and also knowing that the symlink
must be removed. We should be more resilient in this case, and remove the
symlink automatically ourselves, if there are no upgrade service to handle it.
This adds a service which is started after system-update.target is reached and
the symlink still exists. It nukes the symlink and reboots the machine. It
should subsequently boot into the default default.target.
This is a more general fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1395686 (the packaging issue was
already fixed).
2016-11-29 09:29:02 +03:00
units/system-update-cleanup.service \
2010-05-16 21:09:22 +04:00
units/systemd-initctl.service \
2012-04-24 18:42:42 +04:00
units/systemd-remount-fs.service \
2010-10-25 23:02:01 +04:00
units/systemd-ask-password-wall.service \
2010-11-18 07:22:25 +03:00
units/systemd-ask-password-console.service \
2010-11-18 23:52:26 +03:00
units/systemd-sysctl.service \
2012-04-04 08:22:21 +04:00
units/emergency.service \
2011-06-30 04:18:01 +04:00
units/rescue.service \
2012-04-03 23:24:46 +04:00
units/user@.service \
2012-06-25 16:24:56 +04:00
units/systemd-suspend.service \
units/systemd-halt.service \
units/systemd-poweroff.service \
units/systemd-reboot.service \
units/systemd-kexec.service \
2015-09-18 14:37:34 +03:00
units/systemd-exit.service \
2012-06-25 16:24:56 +04:00
units/systemd-fsck@.service \
units/systemd-fsck-root.service \
2014-11-24 12:12:06 +03:00
units/systemd-machine-id-commit.service \
2012-07-02 23:35:14 +04:00
units/systemd-udevd.service \
2012-04-17 01:32:22 +04:00
units/systemd-udev-trigger.service \
2012-06-07 18:03:33 +04:00
units/systemd-udev-settle.service \
2014-12-16 02:48:24 +03:00
units/systemd-hwdb-update.service \
2013-03-09 12:46:11 +04:00
units/debug-shell.service \
units/initrd-parse-etc.service \
units/initrd-cleanup.service \
units/initrd-udevadm-cleanup-db.service \
2013-04-30 04:11:37 +04:00
units/initrd-switch-root.service \
update-done: add minimal tool to manage system updates for /etc and /var, if /usr has changed
In order to support offline updates to /usr, we need to be able to run
certain tasks on next boot-up to bring /etc and /var in line with the
updated /usr. Hence, let's devise a mechanism how we can detect whether
/etc or /var are not up-to-date with /usr anymore: we keep "touch
files" in /etc/.updated and /var/.updated that are mtime-compared with
/usr. This means:
Whenever the vendor OS tree in /usr is updated, and any services that
shall be executed at next boot shall be triggered, it is sufficient to
update the mtime of /usr itself. At next boot, if /etc/.updated and/or
/var/.updated is older than than /usr (or missing), we know we have to
run the update tools once. After that is completed we need to update the
mtime of these files to the one of /usr, to keep track that we made the
necessary updates, and won't repeat them on next reboot.
A subsequent commit adds a new ConditionNeedsUpdate= condition that
allows checking on boot whether /etc or /var are outdated and need
updating.
This is an early step to allow booting up with an empty /etc, with
automatic rebuilding of the necessary cache files or user databases
therein, as well as supporting later updates of /usr that then propagate
to /etc and /var again.
2014-06-13 14:43:49 +04:00
units/systemd-nspawn@.service \
2015-02-28 01:26:26 +03:00
units/systemd-update-done.service
2010-05-16 01:06:41 +04:00
2014-09-24 19:25:00 +04:00
i f H A V E _ U T M P
nodist_systemunit_DATA += \
units/systemd-update-utmp.service \
units/systemd-update-utmp-runlevel.service
e n d i f
2010-11-16 00:12:41 +03:00
dist_userunit_DATA = \
2014-01-06 07:52:17 +04:00
units/user/basic.target \
2010-11-16 00:12:41 +03:00
units/user/default.target \
2016-07-25 23:01:35 +03:00
units/user/exit.target \
2016-08-02 15:56:45 +03:00
units/user/graphical-session.target \
2016-08-13 17:09:11 +03:00
units/user/graphical-session-pre.target \
units/user/bluetooth.target \
units/user/busnames.target \
units/user/paths.target \
units/user/printer.target \
units/user/shutdown.target \
units/user/smartcard.target \
units/user/sockets.target \
units/user/sound.target \
units/user/timers.target
2010-05-20 04:30:49 +04:00
2010-11-16 00:12:41 +03:00
nodist_userunit_DATA = \
2012-06-25 16:24:56 +04:00
units/user/systemd-exit.service
2010-05-17 04:17:22 +04:00
2014-06-17 03:14:44 +04:00
dist_systempreset_DATA = \
system-preset/90-systemd.preset
2011-12-31 09:02:42 +04:00
EXTRA_DIST += \
2010-05-17 03:34:36 +04:00
units/getty@.service.m4 \
2010-08-25 05:09:57 +04:00
units/serial-getty@.service.m4 \
2012-04-22 04:15:22 +04:00
units/console-getty.service.m4.in \
2013-10-31 04:25:44 +04:00
units/container-getty@.service.m4.in \
2014-08-31 07:59:37 +04:00
units/rescue.service.in \
units: add system-update-cleanup.service to guard against offline-update loops
Note: the name is "system-update-cleanup.service" rather than
"system-update-done.service", because it should not run normally, and also
because there's already "systemd-update-done.service", and having them named
so similarly would be confusing.
In https://bugzilla.redhat.com/show_bug.cgi?id=1395686 the system repeatedly
entered system-update.target on boot. Because of a packaging issue, the tool
that created the /system-update symlink could be installed without the service
unit that was supposed to perform the upgrade (and remove the symlink). In
fact, if there are no units in system-update.target, and /system-update symlink
is created, systemd always "hangs" in system-update.target. This is confusing
for users, because there's no feedback what is happening, and fixing this
requires starting an emergency shell somehow, and also knowing that the symlink
must be removed. We should be more resilient in this case, and remove the
symlink automatically ourselves, if there are no upgrade service to handle it.
This adds a service which is started after system-update.target is reached and
the symlink still exists. It nukes the symlink and reboots the machine. It
should subsequently boot into the default default.target.
This is a more general fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1395686 (the packaging issue was
already fixed).
2016-11-29 09:29:02 +03:00
units/system-update-cleanup.service.in \
2010-04-13 07:18:12 +04:00
units/systemd-initctl.service.in \
2012-04-24 18:42:42 +04:00
units/systemd-remount-fs.service.in \
2013-05-16 02:19:03 +04:00
units/systemd-update-utmp.service.in \
2010-08-11 06:38:55 +04:00
units/systemd-update-utmp-runlevel.service.in \
2010-10-25 23:02:01 +04:00
units/systemd-ask-password-wall.service.in \
2010-11-18 07:22:25 +03:00
units/systemd-ask-password-console.service.in \
2010-11-18 23:52:26 +03:00
units/systemd-sysctl.service.in \
2012-04-04 08:22:21 +04:00
units/emergency.service.in \
2012-06-25 16:24:56 +04:00
units/systemd-halt.service.in \
units/systemd-poweroff.service.in \
units/systemd-reboot.service.in \
units/systemd-kexec.service.in \
2015-09-18 14:37:34 +03:00
units/systemd-exit.service.in \
2012-06-25 16:24:56 +04:00
units/user/systemd-exit.service.in \
2012-06-25 15:47:45 +04:00
units/systemd-fsck@.service.in \
units/systemd-fsck-root.service.in \
2014-11-24 12:12:06 +03:00
units/systemd-machine-id-commit.service.in \
2014-12-09 14:17:24 +03:00
units/user@.service.m4.in \
2012-07-02 16:33:04 +04:00
units/debug-shell.service.in \
2012-06-25 16:24:56 +04:00
units/systemd-suspend.service.in \
2012-09-03 01:28:30 +04:00
units/quotaon.service.in \
2013-03-09 12:46:11 +04:00
units/initrd-parse-etc.service.in \
units/initrd-cleanup.service.in \
units/initrd-udevadm-cleanup-db.service.in \
units/initrd-switch-root.service.in \
update-done: add minimal tool to manage system updates for /etc and /var, if /usr has changed
In order to support offline updates to /usr, we need to be able to run
certain tasks on next boot-up to bring /etc and /var in line with the
updated /usr. Hence, let's devise a mechanism how we can detect whether
/etc or /var are not up-to-date with /usr anymore: we keep "touch
files" in /etc/.updated and /var/.updated that are mtime-compared with
/usr. This means:
Whenever the vendor OS tree in /usr is updated, and any services that
shall be executed at next boot shall be triggered, it is sufficient to
update the mtime of /usr itself. At next boot, if /etc/.updated and/or
/var/.updated is older than than /usr (or missing), we know we have to
run the update tools once. After that is completed we need to update the
mtime of these files to the one of /usr, to keep track that we made the
necessary updates, and won't repeat them on next reboot.
A subsequent commit adds a new ConditionNeedsUpdate= condition that
allows checking on boot whether /etc or /var are outdated and need
updating.
This is an early step to allow booting up with an empty /etc, with
automatic rebuilding of the necessary cache files or user databases
therein, as well as supporting later updates of /usr that then propagate
to /etc and /var again.
2014-06-13 14:43:49 +04:00
units/systemd-nspawn@.service.in \
2015-10-21 15:48:13 +03:00
units/systemd-update-done.service.in \
units/tmp.mount.m4
2010-04-10 20:51:07 +04:00
2013-01-05 00:48:47 +04:00
i f H A V E _ S Y S V _ C O M P A T
nodist_systemunit_DATA += \
units/rc-local.service \
units/halt-local.service
2011-03-08 21:47:29 +03:00
2011-12-02 13:18:46 +04:00
systemgenerator_PROGRAMS += \
2014-05-23 02:37:39 +04:00
systemd-sysv-generator \
2011-12-02 13:18:46 +04:00
systemd-rc-local-generator
2011-10-28 21:16:33 +04:00
e n d i f
2013-01-11 00:42:31 +04:00
EXTRA_DIST += \
2015-05-27 18:04:49 +03:00
src/systemctl/systemd-sysv-install.SKELETON \
2013-01-11 00:42:31 +04:00
units/rc-local.service.in \
units/halt-local.service.in
2016-08-13 08:55:16 +03:00
GENERAL_ALIASES += \
$( systemunitdir) /machines.target $( pkgsysconfdir) /system/multi-user.target.wants/machines.target
2010-06-18 01:33:21 +04:00
dist_doc_DATA = \
README \
2012-04-03 23:24:46 +04:00
NEWS \
2015-06-23 01:13:16 +03:00
CODING_STYLE \
2012-04-12 02:20:58 +04:00
LICENSE.LGPL2.1 \
2012-04-12 03:51:49 +04:00
LICENSE.GPL2 \
2014-03-01 16:44:47 +04:00
DISTRO_PORTING \
src/libsystemd/sd-bus/PORTING-DBUS1 \
src/libsystemd/sd-bus/DIFFERENCES \
2015-07-08 14:37:47 +03:00
src/libsystemd/sd-bus/GVARIANT-SERIALIZATION
EXTRA_DIST += \
2015-07-08 23:27:27 +03:00
README.md \
2015-06-23 01:13:16 +03:00
autogen.sh \
.dir-locals.el \
2015-11-23 13:26:43 +03:00
.editorconfig \
2015-06-23 01:13:16 +03:00
.vimrc \
.ycm_extra_conf.py \
.travis.yml \
.mailmap
2010-06-18 01:33:21 +04:00
2011-07-11 20:01:28 +04:00
@ I N T L T O O L _ P O L I C Y _ R U L E @
2011-04-16 04:02:54 +04:00
2012-04-10 18:02:09 +04:00
# ------------------------------------------------------------------------------
2013-02-03 07:38:33 +04:00
MANPAGES =
MANPAGES_ALIAS =
i n c l u d e M a k e f i l e - m a n . a m
2012-04-10 18:02:09 +04:00
2014-01-26 20:36:04 +04:00
.PHONY : man update -man -list
2013-06-12 21:40:54 +04:00
man : $( MANPAGES ) $( MANPAGES_ALIAS ) $( HTML_FILES ) $( HTML_ALIAS )
2012-04-10 18:02:09 +04:00
XML_FILES = \
${ patsubst %.1,%.xml, ${ patsubst %.3,%.xml, ${ patsubst %.5,%.xml, ${ patsubst %.7,%.xml, ${ patsubst %.8,%.xml, $( MANPAGES) } } } } }
2013-03-08 18:58:29 +04:00
HTML_FILES = \
${ XML_FILES : .xml=.html }
2013-03-08 20:03:50 +04:00
HTML_ALIAS = \
${ patsubst %.1,%.html, ${ patsubst %.3,%.html, ${ patsubst %.5,%.html, ${ patsubst %.7,%.html, ${ patsubst %.8,%.html, $( MANPAGES_ALIAS) } } } } }
2012-04-10 18:02:09 +04:00
i f E N A B L E _ M A N P A G E S
man_MANS = \
$( MANPAGES) \
$( MANPAGES_ALIAS)
2013-03-08 20:03:50 +04:00
noinst_DATA += \
$( HTML_FILES) \
2015-12-26 05:20:47 +03:00
$( HTML_ALIAS) \
docs/html/man
e n d i f
2012-07-13 23:53:44 +04:00
CLEANFILES += \
2013-03-08 18:58:29 +04:00
$( man_MANS) \
2013-03-08 20:03:50 +04:00
$( HTML_FILES) \
2015-12-26 05:20:47 +03:00
$( HTML_ALIAS) \
docs/html/man
2013-03-08 20:03:50 +04:00
docs/html/man :
$( AM_V_at) $( MKDIR_P) $( dir $@ )
$( AM_V_LN) $( LN_S) -f ../../man $@
2012-07-16 19:19:39 +04:00
2013-03-08 20:03:50 +04:00
man/index.html : man /systemd .index .html
$( AM_V_LN) $( LN_S) -f systemd.index.html $@
2015-12-26 05:20:47 +03:00
i f H A V E _ P Y T H O N
2013-02-07 10:10:21 +04:00
noinst_DATA += \
man/index.html
2015-12-26 05:20:47 +03:00
e n d i f
2013-02-07 10:10:21 +04:00
CLEANFILES += \
2013-03-08 19:27:44 +04:00
man/index.html
2013-02-07 10:10:21 +04:00
2015-06-30 16:56:44 +03:00
XML_GLOB = $( wildcard $( top_srcdir) /man/*.xml)
2013-01-26 19:47:16 +04:00
NON_INDEX_XML_FILES = $( filter-out man/systemd.index.xml,$( XML_FILES) )
build-sys: make SOURCE_XML_FILES array relative to $(top_srcdir)
When calling the build commands from another directory than the toplevel:
mkdir build
cd build
../configure [...]
... the compilation fails with the following error:
GEN man/systemd.directives.xml
Traceback (most recent call last):
File "../tools/make-directive-index.py", line 313, in make_page
_extract_directives(directive_groups, formatting, page)
File "../tools/make-directive-index.py", line 191, in _extract_directives
t = xml_parse(page)
File "/home/martin/upstream/systemd/tools/xml_helper.py", line 30, in xml_parse
doc = tree.parse(page, _parser)
File "lxml.etree.pyx", line 3301, in lxml.etree.parse (src/lxml/lxml.etree.c:72453)
File "parser.pxi", line 1791, in lxml.etree._parseDocument (src/lxml/lxml.etree.c:105915)
File "parser.pxi", line 1817, in lxml.etree._parseDocumentFromURL (src/lxml/lxml.etree.c:106214)
File "parser.pxi", line 1721, in lxml.etree._parseDocFromFile (src/lxml/lxml.etree.c:105213)
File "parser.pxi", line 1122, in lxml.etree._BaseParser._parseDocFromFile (src/lxml/lxml.etree.c:100163)
File "parser.pxi", line 580, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:94286)
File "parser.pxi", line 690, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:95722)
File "parser.pxi", line 618, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:94754)
OSError: Error reading file 'man/bootup.xml': failed to load external entity "man/bootup.xml"
That is because the file names in the XML_FILES array are not relative
to $(top_srcdir), and hence ../tools/make-directive-index.py is called
with non-existant arguments.
To fix this, call patsubst when generating SOURCE_XML_FILES from
NON_INDEX_XML_FILES.
2015-06-17 23:52:24 +03:00
SOURCE_XML_FILES = ${ patsubst %, $( top_srcdir) /%, $( filter-out man/systemd.directives.xml,$( NON_INDEX_XML_FILES) ) }
2013-02-03 07:47:47 +04:00
2015-06-30 16:56:44 +03:00
# This target should only be run manually. It recreates Makefile-man.am
# file in the source directory based on all man/*.xml files. Run it after
# adding, removing, or changing the conditional in a man page.
2015-11-12 15:31:32 +03:00
update-man-list : $( top_srcdir ) /tools /make -man -rules .py $( XML_GLOB ) man /custom -entities .ent
$( AM_V_GEN) $( PYTHON) $< $( XML_GLOB) > $( top_srcdir) /Makefile-man.tmp
2013-02-03 07:47:47 +04:00
$( AM_V_at) mv $( top_srcdir) /Makefile-man.tmp $( top_srcdir) /Makefile-man.am
@echo "Makefile-man.am has been regenerated"
2014-02-10 13:37:10 +04:00
man/systemd.index.xml : $( top_srcdir ) /tools /make -man -index .py $( NON_INDEX_XML_FILES )
2013-01-15 07:17:49 +04:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2013-03-29 22:22:27 +04:00
$( AM_V_GEN) $( PYTHON) $< $@ $( filter-out $<,$^)
2013-01-15 07:17:49 +04:00
2015-06-10 21:42:56 +03:00
man/systemd.directives.xml : $( top_srcdir ) /tools /make -directive -index .py man /custom -entities .ent $( SOURCE_XML_FILES )
2012-08-09 20:08:14 +04:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2015-06-10 21:42:56 +03:00
$( AM_V_GEN) $( PYTHON) $< $@ $( SOURCE_XML_FILES)
2012-08-09 20:08:14 +04:00
2013-03-08 18:58:29 +04:00
CLEANFILES += \
man/systemd.index.xml \
man/systemd.directives.xml
2012-04-10 18:02:09 +04:00
EXTRA_DIST += \
2015-06-23 01:13:16 +03:00
$( filter-out man/systemd.directives.xml man/systemd.index.xml,$( XML_FILES) ) \
2014-02-10 13:37:10 +04:00
tools/make-man-index.py \
2015-12-08 05:33:52 +03:00
tools/make-man-rules.py \
2014-02-10 13:37:10 +04:00
tools/make-directive-index.py \
2015-05-28 13:03:17 +03:00
tools/xml_helper.py \
2015-06-23 00:27:08 +03:00
man/glib-event-glue.c
2012-04-10 18:02:09 +04:00
# ------------------------------------------------------------------------------
2012-04-10 18:41:52 +04:00
noinst_LTLIBRARIES += \
2015-06-09 15:27:33 +03:00
libbasic.la
libbasic_la_SOURCES = \
src/basic/missing.h \
2016-03-17 20:26:13 +03:00
src/basic/missing_syscall.h \
2016-05-30 03:03:51 +03:00
src/basic/raw-clone.h \
2015-10-27 01:32:16 +03:00
src/basic/capability-util.c \
src/basic/capability-util.h \
2015-06-09 15:27:33 +03:00
src/basic/conf-files.c \
src/basic/conf-files.h \
2015-10-27 03:26:31 +03:00
src/basic/stdio-util.h \
2015-06-09 15:27:33 +03:00
src/basic/hostname-util.h \
src/basic/hostname-util.c \
src/basic/unit-name.c \
src/basic/unit-name.h \
src/basic/ioprio.h \
src/basic/securebits.h \
src/basic/special.h \
src/basic/list.h \
src/basic/unaligned.h \
src/basic/macro.h \
src/basic/def.h \
src/basic/sparse-endian.h \
src/basic/refcnt.h \
src/basic/util.c \
src/basic/util.h \
2015-10-25 16:08:25 +03:00
src/basic/io-util.c \
src/basic/io-util.h \
2015-10-24 23:58:24 +03:00
src/basic/string-util.c \
src/basic/string-util.h \
2015-10-25 15:14:12 +03:00
src/basic/fd-util.c \
src/basic/fd-util.h \
2015-10-26 18:18:16 +03:00
src/basic/parse-util.c \
src/basic/parse-util.h \
2015-10-26 00:32:30 +03:00
src/basic/user-util.c \
src/basic/user-util.h \
2015-10-26 21:40:43 +03:00
src/basic/rlimit-util.c \
src/basic/rlimit-util.h \
2015-10-26 22:07:55 +03:00
src/basic/dirent-util.c \
src/basic/dirent-util.h \
2015-10-26 22:26:23 +03:00
src/basic/xattr-util.c \
src/basic/xattr-util.h \
2015-10-26 22:39:23 +03:00
src/basic/chattr-util.c \
src/basic/chattr-util.h \
2015-10-27 02:06:29 +03:00
src/basic/proc-cmdline.c \
src/basic/proc-cmdline.h \
2015-10-26 23:16:26 +03:00
src/basic/fs-util.c \
src/basic/fs-util.h \
2015-10-27 02:40:25 +03:00
src/basic/syslog-util.c \
src/basic/syslog-util.h \
2015-10-27 00:01:44 +03:00
src/basic/stat-util.c \
src/basic/stat-util.h \
2015-10-26 20:44:13 +03:00
src/basic/mount-util.c \
src/basic/mount-util.h \
2015-10-26 18:41:43 +03:00
src/basic/hexdecoct.c \
src/basic/hexdecoct.h \
2015-10-27 03:48:17 +03:00
src/basic/glob-util.h \
src/basic/glob-util.c \
2015-10-22 21:12:31 +03:00
src/basic/extract-word.c \
src/basic/extract-word.h \
2015-10-23 19:52:53 +03:00
src/basic/escape.c \
src/basic/escape.h \
2015-09-30 22:50:22 +03:00
src/basic/cpu-set-util.c \
src/basic/cpu-set-util.h \
2015-06-09 15:27:33 +03:00
src/basic/lockfile-util.c \
src/basic/lockfile-util.h \
src/basic/path-util.c \
src/basic/path-util.h \
src/basic/time-util.c \
src/basic/time-util.h \
src/basic/locale-util.c \
src/basic/locale-util.h \
2015-10-27 01:20:41 +03:00
src/basic/umask-util.h \
2015-06-09 15:27:33 +03:00
src/basic/signal-util.c \
src/basic/signal-util.h \
2015-10-27 00:31:05 +03:00
src/basic/string-table.c \
src/basic/string-table.h \
2015-06-09 15:27:33 +03:00
src/basic/mempool.c \
src/basic/mempool.h \
src/basic/hashmap.c \
src/basic/hashmap.h \
2016-01-08 03:10:45 +03:00
src/basic/hash-funcs.c \
src/basic/hash-funcs.h \
2015-06-09 15:27:33 +03:00
src/basic/siphash24.c \
src/basic/siphash24.h \
src/basic/set.h \
src/basic/ordered-set.h \
2016-01-25 22:31:11 +03:00
src/basic/ordered-set.c \
2015-07-13 20:47:26 +03:00
src/basic/bitmap.c \
src/basic/bitmap.h \
2015-06-09 15:27:33 +03:00
src/basic/prioq.c \
src/basic/prioq.h \
2015-10-27 02:41:29 +03:00
src/basic/web-util.c \
src/basic/web-util.h \
2015-06-09 15:27:33 +03:00
src/basic/strv.c \
src/basic/strv.h \
src/basic/env-util.c \
src/basic/env-util.h \
src/basic/strbuf.c \
src/basic/strbuf.h \
src/basic/strxcpyx.c \
src/basic/strxcpyx.h \
src/basic/log.c \
src/basic/log.h \
src/basic/bus-label.c \
src/basic/bus-label.h \
src/basic/ratelimit.h \
src/basic/ratelimit.c \
src/basic/exit-status.c \
src/basic/exit-status.h \
src/basic/virt.c \
src/basic/virt.h \
2016-02-22 17:26:54 +03:00
src/basic/architecture.c \
src/basic/architecture.h \
2015-06-09 15:27:33 +03:00
src/basic/smack-util.c \
src/basic/smack-util.h \
src/basic/device-nodes.c \
src/basic/device-nodes.h \
src/basic/utf8.c \
src/basic/utf8.h \
src/basic/gunicode.c \
src/basic/gunicode.h \
src/basic/socket-util.c \
src/basic/socket-util.h \
src/basic/in-addr-util.c \
src/basic/in-addr-util.h \
src/basic/ether-addr-util.h \
2015-10-26 02:54:08 +03:00
src/basic/ether-addr-util.c \
2015-06-09 15:27:33 +03:00
src/basic/replace-var.c \
src/basic/replace-var.h \
src/basic/clock-util.c \
src/basic/clock-util.h \
src/basic/calendarspec.c \
src/basic/calendarspec.h \
src/basic/fileio.c \
src/basic/fileio.h \
src/basic/MurmurHash2.c \
src/basic/MurmurHash2.h \
src/basic/mkdir.c \
src/basic/mkdir.h \
src/basic/cgroup-util.c \
src/basic/cgroup-util.h \
src/basic/errno-list.c \
src/basic/errno-list.h \
src/basic/af-list.c \
src/basic/af-list.h \
src/basic/arphrd-list.c \
src/basic/arphrd-list.h \
src/basic/terminal-util.c \
src/basic/terminal-util.h \
src/basic/login-util.h \
src/basic/login-util.c \
src/basic/cap-list.c \
src/basic/cap-list.h \
2015-10-27 01:32:16 +03:00
src/basic/audit-util.c \
src/basic/audit-util.h \
2015-06-09 15:27:33 +03:00
src/basic/xml.c \
src/basic/xml.h \
src/basic/barrier.c \
src/basic/barrier.h \
src/basic/async.c \
src/basic/async.h \
src/basic/memfd-util.c \
src/basic/memfd-util.h \
src/basic/process-util.c \
src/basic/process-util.h \
src/basic/random-util.c \
src/basic/random-util.h \
src/basic/verbs.c \
src/basic/verbs.h \
src/basic/sigbus.c \
src/basic/sigbus.h \
src/basic/build.h \
src/basic/socket-label.c \
src/basic/label.c \
src/basic/label.h \
src/basic/btrfs-util.c \
src/basic/btrfs-util.h \
src/basic/btrfs-ctree.h \
src/basic/selinux-util.c \
src/basic/selinux-util.h \
src/basic/mkdir-label.c \
src/basic/fileio-label.c \
src/basic/fileio-label.h \
src/basic/rm-rf.c \
src/basic/rm-rf.h \
src/basic/copy.c \
2015-10-25 15:16:10 +03:00
src/basic/copy.h \
2015-10-27 05:01:06 +03:00
src/basic/alloc-util.h \
src/basic/alloc-util.c \
2016-11-07 18:14:59 +03:00
src/basic/format-util.h \
2015-11-27 21:21:15 +03:00
src/basic/nss-util.h
2015-06-09 15:27:33 +03:00
nodist_libbasic_la_SOURCES = \
src/basic/errno-from-name.h \
src/basic/errno-to-name.h \
src/basic/af-from-name.h \
src/basic/af-to-name.h \
src/basic/arphrd-from-name.h \
src/basic/arphrd-to-name.h \
src/basic/cap-from-name.h \
src/basic/cap-to-name.h
libbasic_la_CFLAGS = \
$( AM_CFLAGS) \
$( SELINUX_CFLAGS) \
$( CAP_CFLAGS) \
-pthread
libbasic_la_LIBADD = \
$( SELINUX_LIBS) \
$( CAP_LIBS) \
2015-06-13 21:35:37 +03:00
-lrt \
2015-06-09 15:27:33 +03:00
-lm
# -----------------------------------------------------------------------------
noinst_LTLIBRARIES += \
libshared.la
2010-06-18 02:44:57 +04:00
2015-06-09 15:27:33 +03:00
libshared_la_SOURCES = \
src/shared/output-mode.h \
2016-04-20 20:37:46 +03:00
src/shared/output-mode.c \
2015-06-09 15:27:33 +03:00
src/shared/gpt.h \
src/shared/udev-util.h \
2012-04-12 20:27:35 +04:00
src/shared/linux/auto_dev-ioctl.h \
2013-11-22 17:30:52 +04:00
src/shared/initreq.h \
2015-06-02 21:49:43 +03:00
src/shared/dns-domain.c \
src/shared/dns-domain.h \
2013-01-19 07:20:23 +04:00
src/shared/efivars.c \
src/shared/efivars.h \
2015-01-10 00:58:29 +03:00
src/shared/fstab-util.c \
src/shared/fstab-util.h \
2013-05-04 20:31:28 +04:00
src/shared/sleep-config.c \
src/shared/sleep-config.h \
2012-04-10 15:39:02 +04:00
src/shared/conf-parser.c \
src/shared/conf-parser.h \
2012-04-10 21:32:48 +04:00
src/shared/pager.c \
2012-04-10 21:42:07 +04:00
src/shared/pager.h \
2012-04-12 03:51:49 +04:00
src/shared/spawn-polkit-agent.c \
2012-05-07 23:06:55 +04:00
src/shared/spawn-polkit-agent.h \
2013-10-10 18:35:44 +04:00
src/shared/apparmor-util.c \
src/shared/apparmor-util.h \
src/shared/ima-util.c \
2013-10-30 21:58:59 +04:00
src/shared/ima-util.h \
src/shared/ptyfwd.c \
2013-11-02 05:13:48 +04:00
src/shared/ptyfwd.h \
2014-06-24 15:30:11 +04:00
src/shared/base-filesystem.c \
2014-07-11 01:33:55 +04:00
src/shared/base-filesystem.h \
2014-08-19 21:05:11 +04:00
src/shared/uid-range.c \
src/shared/uid-range.h \
2015-06-09 15:27:33 +03:00
src/shared/install.c \
src/shared/install.h \
src/shared/install-printf.c \
src/shared/install-printf.h \
src/shared/path-lookup.c \
src/shared/path-lookup.h \
src/shared/specifier.c \
src/shared/specifier.h \
2012-04-18 18:13:37 +04:00
src/shared/dev-setup.c \
2014-06-27 20:12:07 +04:00
src/shared/dev-setup.h \
src/shared/dropin.c \
src/shared/dropin.h \
2014-11-10 20:59:03 +03:00
src/shared/condition.c \
src/shared/condition.h \
2015-06-09 15:27:33 +03:00
src/shared/clean-ipc.c \
src/shared/clean-ipc.h \
2014-06-27 20:12:07 +04:00
src/shared/generator.h \
2015-01-11 02:25:31 +03:00
src/shared/generator.c \
2015-06-09 15:27:33 +03:00
src/shared/acpi-fpdt.h \
src/shared/acpi-fpdt.c \
src/shared/boot-timestamps.h \
src/shared/boot-timestamps.c \
src/shared/cgroup-show.c \
src/shared/cgroup-show.h \
src/shared/utmp-wtmp.h \
src/shared/watchdog.c \
src/shared/watchdog.h \
src/shared/spawn-ask-password-agent.c \
src/shared/spawn-ask-password-agent.h \
src/shared/ask-password-api.c \
src/shared/ask-password-api.h \
src/shared/switch-root.h \
src/shared/switch-root.c \
src/shared/import-util.c \
src/shared/import-util.h \
src/shared/sysctl-util.c \
src/shared/sysctl-util.h \
src/shared/bus-util.c \
src/shared/bus-util.h \
src/shared/logs-show.c \
src/shared/logs-show.h \
src/shared/machine-image.c \
src/shared/machine-image.h \
src/shared/machine-pool.c \
2016-01-05 19:25:10 +03:00
src/shared/machine-pool.h \
src/shared/resolve-util.c \
2016-04-08 19:54:05 +03:00
src/shared/resolve-util.h \
2016-04-20 16:28:28 +03:00
src/shared/bus-unit-util.c \
src/shared/bus-unit-util.h \
2016-06-09 19:55:16 +03:00
src/shared/vlan-util.h \
src/shared/vlan-util.c \
2016-04-08 19:54:05 +03:00
src/shared/tests.h \
2016-06-23 05:10:53 +03:00
src/shared/tests.c \
src/shared/fdset.c \
2016-11-02 05:25:19 +03:00
src/shared/fdset.h \
src/shared/nsflags.h \
src/shared/nsflags.c
2015-06-03 15:16:36 +03:00
i f H A V E _ U T M P
2015-06-09 15:27:33 +03:00
libshared_la_SOURCES += \
2015-06-03 15:16:36 +03:00
src/shared/utmp-wtmp.c
e n d i f
2012-04-10 23:54:31 +04:00
2015-06-09 15:27:33 +03:00
i f H A V E _ S E C C O M P
libshared_la_SOURCES += \
src/shared/seccomp-util.h \
src/shared/seccomp-util.c
e n d i f
i f H A V E _ A C L
libshared_la_SOURCES += \
src/shared/acl-util.c \
src/shared/acl-util.h
e n d i f
libshared_la_CFLAGS = \
2010-08-11 03:43:23 +04:00
$( AM_CFLAGS) \
2015-06-09 15:27:33 +03:00
$( ACL_CFLAGS) \
2015-06-13 21:35:37 +03:00
$( LIBIDN_CFLAGS) \
$( SECCOMP_CFLAGS)
2010-08-11 03:43:23 +04:00
2015-06-09 15:27:33 +03:00
libshared_la_LIBADD = \
libsystemd-internal.la \
2016-06-25 05:14:25 +03:00
libbasic.la \
2015-06-09 15:27:33 +03:00
libsystemd-journal-internal.la \
2015-06-14 21:02:40 +03:00
libudev-internal.la \
2015-06-09 15:27:33 +03:00
$( ACL_LIBS) \
2015-06-02 21:49:43 +03:00
$( LIBIDN_LIBS) \
2015-06-13 21:35:37 +03:00
$( SECCOMP_LIBS)
2012-04-10 15:39:02 +04:00
2016-06-25 05:14:25 +03:00
rootlibexec_LTLIBRARIES += \
libsystemd-shared.la
libsystemd_shared_la_SOURCES = \
$( libbasic_la_SOURCES) \
$( libshared_la_SOURCES) \
$( libsystemd_internal_la_SOURCES) \
$( libsystemd_journal_internal_la_SOURCES) \
$( libudev_internal_la_SOURCES)
libsystemd_shared_la_CFLAGS = \
$( AM_CFLAGS) \
$( libbasic_la_CFLAGS) \
$( libshared_la_CFLAGS) \
$( libsystemd_internal_la_CFLAGS) \
$( libsystemd_journal_internal_la_CFLAGS) \
$( libudev_internal_la_CFLAGS) \
$( ACL_CFLAGS) \
$( LIBIDN_CFLAGS) \
$( SECCOMP_CFLAGS) \
-fvisibility= default
# We can't use libshared_la_LIBADD here because it would
# pull in libsystemd*-internal.la
libsystemd_shared_la_LIBADD = \
$( libbasic_la_LIBADD) \
$( libsystemd_internal_la_LIBADD) \
$( libsystemd_journal_internal_la_LIBADD) \
$( libudev_internal_la_LIBADD) \
$( ACL_LIBS) \
$( LIBIDN_LIBS) \
$( SECCOMP_LIBS)
libsystemd_shared_la_LDFLAGS = \
$( AM_LDFLAGS) \
-release $( PACKAGE_VERSION)
2014-08-05 14:17:09 +04:00
# -----------------------------------------------------------------------------
2015-01-13 15:44:30 +03:00
i f H A V E _ L I B I P T C
noinst_LTLIBRARIES += \
2015-06-09 15:27:33 +03:00
libfirewall.la
2015-01-13 15:44:30 +03:00
2015-06-09 15:27:33 +03:00
libfirewall_la_SOURCES = \
2015-06-15 14:50:43 +03:00
src/shared/firewall-util.h \
src/shared/firewall-util.c
2015-01-13 15:44:30 +03:00
2015-06-09 15:27:33 +03:00
libfirewall_la_CFLAGS = \
2015-01-13 15:44:30 +03:00
$( AM_CFLAGS) \
$( LIBIPTC_CFLAGS)
2015-06-09 15:27:33 +03:00
libfirewall_la_LIBADD = \
2015-01-13 15:44:30 +03:00
$( LIBIPTC_LIBS)
e n d i f
# -----------------------------------------------------------------------------
2014-08-05 14:17:09 +04:00
i f E N A B L E _ L D C O N F I G
dist_systemunit_DATA += \
units/ldconfig.service
SYSINIT_TARGET_WANTS += \
ldconfig.service
e n d i f
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2012-04-10 18:41:52 +04:00
noinst_LTLIBRARIES += \
2015-06-09 15:27:33 +03:00
libcore.la
2012-04-10 18:41:52 +04:00
2015-06-09 15:27:33 +03:00
libcore_la_SOURCES = \
2012-04-11 14:59:52 +04:00
src/core/unit.c \
src/core/unit.h \
2012-09-18 13:27:56 +04:00
src/core/unit-printf.c \
src/core/unit-printf.h \
2012-04-11 14:59:52 +04:00
src/core/job.c \
src/core/job.h \
src/core/manager.c \
src/core/manager.h \
2012-04-20 01:54:11 +04:00
src/core/transaction.c \
src/core/transaction.h \
2012-04-11 14:59:52 +04:00
src/core/load-fragment.c \
src/core/load-fragment.h \
src/core/service.c \
src/core/service.h \
2013-12-03 02:30:19 +04:00
src/core/socket.c \
src/core/socket.h \
src/core/busname.c \
src/core/busname.h \
2014-12-23 20:36:04 +03:00
src/core/bus-policy.c \
src/core/bus-policy.h \
2012-04-11 14:59:52 +04:00
src/core/target.c \
src/core/target.h \
2013-12-03 02:30:19 +04:00
src/core/device.c \
src/core/device.h \
src/core/mount.c \
src/core/mount.h \
src/core/automount.c \
src/core/automount.h \
src/core/swap.c \
src/core/swap.h \
2012-04-11 14:59:52 +04:00
src/core/timer.c \
src/core/timer.h \
src/core/path.c \
src/core/path.h \
2013-06-17 23:33:26 +04:00
src/core/slice.c \
src/core/slice.h \
2013-07-01 02:03:57 +04:00
src/core/scope.c \
src/core/scope.h \
2012-04-11 14:59:52 +04:00
src/core/load-dropin.c \
src/core/load-dropin.h \
src/core/execute.c \
src/core/execute.h \
2016-07-14 13:37:28 +03:00
src/core/dynamic-user.c \
src/core/dynamic-user.h \
2012-07-20 01:47:10 +04:00
src/core/kill.c \
src/core/kill.h \
2012-04-11 14:59:52 +04:00
src/core/dbus.c \
src/core/dbus.h \
src/core/dbus-manager.c \
src/core/dbus-manager.h \
src/core/dbus-unit.c \
src/core/dbus-unit.h \
src/core/dbus-job.c \
src/core/dbus-job.h \
src/core/dbus-service.c \
src/core/dbus-service.h \
src/core/dbus-socket.c \
src/core/dbus-socket.h \
2013-12-03 02:30:19 +04:00
src/core/dbus-busname.c \
src/core/dbus-busname.h \
2012-04-11 14:59:52 +04:00
src/core/dbus-target.c \
src/core/dbus-target.h \
2013-12-03 02:30:19 +04:00
src/core/dbus-device.c \
src/core/dbus-device.h \
2012-04-11 14:59:52 +04:00
src/core/dbus-mount.c \
src/core/dbus-mount.h \
src/core/dbus-automount.c \
src/core/dbus-automount.h \
src/core/dbus-swap.c \
src/core/dbus-swap.h \
2013-12-03 02:30:19 +04:00
src/core/dbus-timer.c \
src/core/dbus-timer.h \
2012-04-11 14:59:52 +04:00
src/core/dbus-path.c \
src/core/dbus-path.h \
2013-06-17 23:33:26 +04:00
src/core/dbus-slice.c \
src/core/dbus-slice.h \
2013-07-01 02:03:57 +04:00
src/core/dbus-scope.c \
src/core/dbus-scope.h \
2013-06-27 06:14:27 +04:00
src/core/dbus-execute.c \
src/core/dbus-execute.h \
src/core/dbus-kill.c \
src/core/dbus-kill.h \
src/core/dbus-cgroup.c \
src/core/dbus-cgroup.h \
2012-04-11 14:59:52 +04:00
src/core/cgroup.c \
src/core/cgroup.h \
2012-09-07 00:23:11 +04:00
src/core/selinux-access.c \
src/core/selinux-access.h \
2012-04-11 14:59:52 +04:00
src/core/selinux-setup.c \
src/core/selinux-setup.h \
2013-03-07 23:06:58 +04:00
src/core/smack-setup.c \
src/core/smack-setup.h \
2012-04-11 14:59:52 +04:00
src/core/ima-setup.c \
src/core/ima-setup.h \
src/core/locale-setup.h \
src/core/locale-setup.c \
2012-04-12 16:22:48 +04:00
src/core/hostname-setup.c \
src/core/hostname-setup.h \
2012-04-12 20:16:14 +04:00
src/core/machine-id-setup.c \
src/core/machine-id-setup.h \
src/core/mount-setup.c \
src/core/mount-setup.h \
2014-11-14 19:58:32 +03:00
src/core/kmod-setup.c \
src/core/kmod-setup.h \
2012-04-12 20:16:14 +04:00
src/core/loopback-setup.h \
src/core/loopback-setup.c \
2012-04-11 14:59:52 +04:00
src/core/namespace.c \
src/core/namespace.h \
2012-07-13 16:41:57 +04:00
src/core/killall.h \
2012-07-17 06:17:53 +04:00
src/core/killall.c \
2012-10-03 01:40:09 +04:00
src/core/audit-fd.c \
2013-01-26 01:33:33 +04:00
src/core/audit-fd.h \
2014-03-04 00:23:12 +04:00
src/core/show-status.c \
2014-08-22 18:36:38 +04:00
src/core/show-status.h \
2016-10-20 16:27:37 +03:00
src/core/emergency-action.c \
src/core/emergency-action.h
2010-02-03 16:21:48 +03:00
2015-06-09 15:27:33 +03:00
nodist_libcore_la_SOURCES = \
2012-04-12 15:34:18 +04:00
src/core/load-fragment-gperf.c \
2013-11-22 17:30:52 +04:00
src/core/load-fragment-gperf-nulstr.c
2011-08-01 19:09:38 +04:00
2015-06-09 15:27:33 +03:00
libcore_la_CFLAGS = \
2010-06-18 02:44:57 +04:00
$( AM_CFLAGS) \
2010-08-11 03:43:23 +04:00
$( PAM_CFLAGS) \
2012-02-09 17:12:10 +04:00
$( AUDIT_CFLAGS) \
2013-01-26 01:33:33 +04:00
$( KMOD_CFLAGS) \
2014-02-20 19:19:44 +04:00
$( APPARMOR_CFLAGS) \
2015-06-15 19:36:51 +03:00
$( MOUNT_CFLAGS) \
$( SECCOMP_CFLAGS)
2010-06-18 02:44:57 +04:00
2015-06-09 15:27:33 +03:00
libcore_la_LIBADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2010-07-23 01:01:25 +04:00
$( PAM_LIBS) \
2011-07-28 06:02:32 +04:00
$( AUDIT_LIBS) \
2014-02-19 01:14:00 +04:00
$( KMOD_LIBS) \
2014-02-20 19:19:44 +04:00
$( APPARMOR_LIBS) \
2014-11-24 07:33:37 +03:00
$( MOUNT_LIBS)
2014-02-19 01:14:00 +04:00
2012-04-12 15:34:18 +04:00
src/core/load-fragment-gperf-nulstr.c : src /core /load -fragment -gperf .gperf
2012-07-31 01:57:50 +04:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
$( AM_V_GEN) $( AWK) 'BEGIN{ keywords=0 ; FS="," ; print "extern const char load_fragment_gperf_nulstr[];" ; print "const char load_fragment_gperf_nulstr[] ="} ; keyword==1 { print "\"" $$1 "\\0\"" } ; /%%/ { keyword=1} ; END { print ";" }' < $< > $@
2012-04-12 15:34:18 +04:00
2015-03-03 16:33:15 +03:00
gperf_gperf_m4_sources = \
2012-04-12 15:34:18 +04:00
src/core/load-fragment-gperf.gperf.m4
2015-03-03 16:33:15 +03:00
gperf_txt_sources = \
2015-06-09 15:27:33 +03:00
src/basic/errno-list.txt \
src/basic/af-list.txt \
src/basic/arphrd-list.txt \
src/basic/cap-list.txt
2012-07-17 06:17:53 +04:00
2012-07-17 10:30:38 +04:00
BUILT_SOURCES += \
2015-03-03 16:33:15 +03:00
$( gperf_gperf_m4_sources:-gperf.gperf.m4= -gperf.c) \
$( gperf_gperf_m4_sources:-gperf.gperf.m4= -gperf-nulstr.c) \
$( gperf_gperf_sources:-gperf.gperf= -gperf.c) \
$( gperf_txt_sources:-list.txt= -from-name.h) \
2015-10-14 07:52:41 +03:00
$( filter-out %keyboard-keys-to-name.h,$( gperf_txt_sources:-list.txt= -to-name.h) )
2015-03-03 16:33:15 +03:00
CLEANFILES += \
$( gperf_txt_sources:-list.txt= -from-name.gperf)
DISTCLEANFILES = \
$( gperf_txt_sources)
EXTRA_DIST += \
$( gperf_gperf_m4_sources) \
2015-05-25 12:18:18 +03:00
$( gperf_gperf_sources)
2015-03-03 16:33:15 +03:00
CLEANFILES += \
$( gperf_txt_sources)
2012-07-17 10:30:38 +04:00
2014-08-02 03:37:16 +04:00
%-from-name.gperf : %-list .txt
2015-05-21 22:54:53 +03:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2014-08-02 03:37:16 +04:00
$( AM_V_GEN) $( AWK) 'BEGIN{ print "struct $(notdir $*)_name { const char* name; int id; };"; print "%null-strings"; print "%%";} { printf "%s, %s\n", $$1, $$1 }' <$< >$@
2013-11-22 07:01:46 +04:00
2014-08-02 03:37:16 +04:00
%-from-name.h : %-from -name .gperf
2015-05-21 22:54:53 +03:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2014-08-02 03:37:16 +04:00
$( AM_V_GPERF) $( GPERF) -L ANSI-C -t --ignore-case -N lookup_$( notdir $* ) -H hash_$( notdir $* ) _name -p -C <$< >$@
2013-11-22 07:01:46 +04:00
2015-06-09 15:27:33 +03:00
src/basic/errno-list.txt :
2013-11-22 07:01:46 +04:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2014-08-12 03:41:42 +04:00
$( AM_V_GEN) $( CPP) $( CFLAGS) $( AM_CPPFLAGS) $( CPPFLAGS) -dM -include errno.h - </dev/null | $( AWK) '/^#define[ \t]+E[^ _]+[ \t]+/ { print $$2; }' >$@
2012-04-12 15:34:18 +04:00
2015-06-09 15:27:33 +03:00
src/basic/errno-to-name.h : src /basic /errno -list .txt
2015-05-21 22:54:53 +03:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2014-08-02 03:36:48 +04:00
$( AM_V_GEN) $( AWK) 'BEGIN{ print "static const char* const errno_names[] = { "} !/EDEADLOCK/ && !/EWOULDBLOCK/ && !/ENOTSUP/ { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' <$< >$@
2014-02-25 23:37:03 +04:00
2015-06-09 15:27:33 +03:00
src/basic/af-list.txt :
2014-02-25 23:37:03 +04:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2014-08-12 03:41:42 +04:00
$( AM_V_GEN) $( CPP) $( CFLAGS) $( AM_CPPFLAGS) $( CPPFLAGS) -dM -include sys/socket.h - </dev/null | grep -v AF_UNSPEC | grep -v AF_MAX | $( AWK) '/^#define[ \t]+AF_[^ \t]+[ \t]+PF_[^ \t]/ { print $$2; }' >$@
2014-02-25 23:37:03 +04:00
2015-06-09 15:27:33 +03:00
src/basic/af-to-name.h : src /basic /af -list .txt
2015-05-21 22:54:53 +03:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2014-08-02 03:36:48 +04:00
$( AM_V_GEN) $( AWK) 'BEGIN{ print "static const char* const af_names[] = { "} !/AF_FILE/ && !/AF_ROUTE/ && !/AF_LOCAL/ { printf "[%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' <$< >$@
2014-02-25 23:37:03 +04:00
2014-12-10 05:16:14 +03:00
2015-06-09 15:27:33 +03:00
src/basic/arphrd-list.txt :
2014-08-12 03:41:42 +04:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
$( AM_V_GEN) $( CPP) $( CFLAGS) $( AM_CPPFLAGS) $( CPPFLAGS) -dM -include net/if_arp.h - </dev/null | $( AWK) '/^#define[ \t]+ARPHRD_[^ \t]+[ \t]+[^ \t]/ { print $$2; }' | sed -e 's/ARPHRD_//' >$@
2015-06-09 15:27:33 +03:00
src/basic/arphrd-to-name.h : src /basic /arphrd -list .txt
2015-05-21 22:54:53 +03:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2014-08-12 03:41:42 +04:00
$( AM_V_GEN) $( AWK) 'BEGIN{ print "static const char* const arphrd_names[] = { "} !/CISCO/ { printf "[ARPHRD_%s] = \"%s\",\n", $$1, $$1 } END{print "};"}' <$< >$@
2015-06-09 15:27:33 +03:00
src/basic/arphrd-from-name.gperf : src /basic /arphrd -list .txt
2015-05-21 22:54:53 +03:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2014-08-12 03:41:42 +04:00
$( AM_V_GEN) $( AWK) 'BEGIN{ print "struct arphrd_name { const char* name; int id; };"; print "%null-strings"; print "%%";} { printf "%s, ARPHRD_%s\n", $$1, $$1 }' <$< >$@
2014-08-02 03:37:16 +04:00
2015-06-09 15:27:33 +03:00
src/basic/cap-list.txt :
2014-12-10 05:16:14 +03:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
$( AM_V_GEN) $( CPP) $( CFLAGS) $( AM_CPPFLAGS) $( CPPFLAGS) -dM -include linux/capability.h -include missing.h - </dev/null | $( AWK) '/^#define[ \t]+CAP_[A-Z_]+[ \t]+/ { print $$2; }' | grep -v CAP_LAST_CAP >$@
2015-06-09 15:27:33 +03:00
src/basic/cap-to-name.h : src /basic /cap -list .txt
2015-05-21 22:54:53 +03:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2014-12-12 20:37:25 +03:00
$( AM_V_GEN) $( AWK) 'BEGIN{ print "static const char* const capability_names[] = { "} { printf "[%s] = \"%s\",\n", $$1, tolower($$1) } END{print "};"}' <$< >$@
2014-12-10 05:16:14 +03:00
2015-06-09 15:27:33 +03:00
src/basic/cap-from-name.gperf : src /basic /cap -list .txt
2015-05-21 22:54:53 +03:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2014-12-10 05:16:14 +03:00
$( AM_V_GEN) $( AWK) 'BEGIN{ print "struct capability_name { const char* name; int id; };"; print "%null-strings"; print "%%";} { printf "%s, %s\n", $$1, $$1 }' <$< >$@
2015-06-09 15:27:33 +03:00
src/basic/cap-from-name.h : src /basic /cap -from -name .gperf
2015-05-21 22:54:53 +03:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2014-12-10 05:16:14 +03:00
$( AM_V_GPERF) $( GPERF) -L ANSI-C -t --ignore-case -N lookup_capability -H hash_capability_name -p -C <$< >$@
2015-06-18 14:41:09 +03:00
audit_list_includes = -include linux/audit.h -include missing.h
2015-03-16 20:14:18 +03:00
i f H A V E _ A U D I T
audit_list_includes += -include libaudit.h
e n d i f
src/journal/audit_type-list.txt :
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2015-06-18 14:41:09 +03:00
$( AM_V_GEN) $( CPP) $( CFLAGS) $( AM_CPPFLAGS) $( CPPFLAGS) -dM $( audit_list_includes) - </dev/null | grep -vE 'AUDIT_.*(FIRST|LAST)_' | $( SED) -r -n 's/^#define\s+AUDIT_(\w+)\s+([0-9]{4})\s*$$/\1\t\2/p' | sort -k2 >$@
2015-03-16 20:14:18 +03:00
src/journal/audit_type-to-name.h : src /journal /audit_type -list .txt
2015-05-21 22:54:53 +03:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2015-03-16 20:14:18 +03:00
$( AM_V_GEN) $( AWK) 'BEGIN{ print "const char *audit_type_to_string(int type) {\n\tswitch(type) {" } {printf " case AUDIT_%s: return \"%s\";\n", $$1, $$1 } END{ print " default: return NULL;\n\t}\n}\n" }' <$< >$@
2014-12-10 05:16:14 +03:00
2014-08-02 03:37:16 +04:00
src/resolve/dns_type-list.txt : src /resolve /dns -type .h
$( AM_V_at) $( MKDIR_P) $( dir $@ )
$( AM_V_GEN) $( SED) -n -r 's/.* DNS_TYPE_(\w+).*/\1/p' <$< >$@
src/resolve/dns_type-to-name.h : src /resolve /dns_type -list .txt
2015-05-21 22:54:53 +03:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2015-03-16 20:14:18 +03:00
$( AM_V_GEN) $( AWK) 'BEGIN{ print "const char *dns_type_to_string(int type) {\n\tswitch(type) {" } {printf " case DNS_TYPE_%s: return ", $$1; sub(/_/, "-"); printf "\"%s\";\n", $$1 } END{ print " default: return NULL;\n\t}\n}\n" }' <$< >$@
2014-08-02 03:37:16 +04:00
src/resolve/dns_type-from-name.gperf : src /resolve /dns_type -list .txt
2015-05-21 22:54:53 +03:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2014-08-02 03:37:16 +04:00
$( AM_V_GEN) $( AWK) 'BEGIN{ print "struct dns_type_name { const char* name; int id; };"; print "%null-strings"; print "%%";} { s=$$1; sub(/_/, "-", s); printf "%s, ", $$s; printf "DNS_TYPE_%s\n", $$1 }' <$< >$@
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2010-02-03 16:21:48 +03:00
systemd_SOURCES = \
2012-04-12 14:58:55 +04:00
src/core/main.c
2010-02-03 16:21:48 +03:00
2015-06-15 19:36:51 +03:00
systemd_CFLAGS = \
$( AM_CFLAGS) \
2015-06-01 14:48:01 +03:00
$( SECCOMP_CFLAGS) \
$( MOUNT_CFLAGS)
2015-06-15 19:36:51 +03:00
2010-02-03 16:21:48 +03:00
systemd_LDADD = \
2015-06-13 21:35:37 +03:00
libcore.la
2010-02-03 16:21:48 +03:00
2012-04-12 15:34:18 +04:00
dist_pkgsysconf_DATA += \
src/core/system.conf \
src/core/user.conf
dist_dbuspolicy_DATA += \
src/core/org.freedesktop.systemd1.conf
dist_dbussystemservice_DATA += \
src/core/org.freedesktop.systemd1.service
2013-02-14 01:56:43 +04:00
polkitpolicy_in_in_files += \
2012-04-12 15:34:18 +04:00
src/core/org.freedesktop.systemd1.policy.in.in
2015-04-21 21:35:17 +03:00
pkgconfigdata_DATA += \
2012-04-12 15:34:18 +04:00
src/core/systemd.pc
2012-06-22 00:14:17 +04:00
nodist_rpmmacros_DATA = \
src/core/macros.systemd
2016-04-04 17:42:58 +03:00
BUILT_SOURCES += \
src/core/triggers.systemd
2012-04-12 15:34:18 +04:00
EXTRA_DIST += \
2012-06-22 00:14:17 +04:00
src/core/systemd.pc.in \
2015-11-15 03:14:34 +03:00
src/core/macros.systemd.in \
src/core/triggers.systemd.in
2012-04-12 15:34:18 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2014-07-21 01:58:35 +04:00
2013-04-18 16:40:24 +04:00
manual_tests += \
2012-04-12 21:00:28 +04:00
test-ns \
test-cgroup \
test-install \
2015-08-22 00:04:14 +03:00
test-btrfs \
test-acd \
2016-01-26 17:02:31 +03:00
test-ipv4ll-manual \
test-ask-password-api
2015-01-16 17:16:05 +03:00
2016-02-27 02:39:20 +03:00
unsafe_tests = \
test-hostname \
test-ipcrm
2015-01-16 17:16:05 +03:00
i f H A V E _ L I B I P T C
manual_tests += \
2015-06-15 14:50:43 +03:00
test-firewall-util
2015-01-16 17:16:05 +03:00
e n d i f
2014-04-18 07:39:40 +04:00
i f H A V E _ K M O D
manual_tests += \
2015-06-12 17:31:33 +03:00
test-netlink-manual
2014-04-18 07:39:40 +04:00
e n d i f
2012-04-12 21:00:28 +04:00
2013-04-18 16:40:24 +04:00
tests += \
2016-02-26 17:10:48 +03:00
test-daemon \
test-log \
2016-02-26 17:00:33 +03:00
test-loopback \
2014-01-07 17:41:24 +04:00
test-engine \
2016-02-26 17:10:48 +03:00
test-watchdog \
2014-07-19 01:50:04 +04:00
test-cgroup-mask \
2012-04-13 15:21:20 +04:00
test-job-type \
2016-03-21 23:17:18 +03:00
test-env-util \
2013-02-09 04:39:44 +04:00
test-strbuf \
2012-07-13 15:50:39 +04:00
test-strv \
2014-11-05 23:27:01 +03:00
test-path \
2013-03-29 06:03:53 +04:00
test-path-util \
2013-02-11 00:56:03 +04:00
test-strxcpyx \
2015-10-03 19:41:02 +03:00
test-siphash24 \
2012-09-11 03:11:32 +04:00
test-unit-name \
2012-10-11 18:42:46 +04:00
test-unit-file \
2013-09-17 23:39:09 +04:00
test-utf8 \
2013-09-21 05:37:34 +04:00
test-ellipsize \
2013-02-07 00:15:23 +04:00
test-util \
2016-03-03 01:29:49 +03:00
test-cpu-set-util \
2016-03-03 00:44:04 +03:00
test-hexdecoct \
2016-03-03 01:10:11 +03:00
test-escape \
2016-03-03 01:19:55 +03:00
test-alloc-util \
2016-03-03 02:23:30 +03:00
test-proc-cmdline \
2016-03-03 02:28:29 +03:00
test-io-util \
2016-03-03 02:31:23 +03:00
test-glob-util \
2016-03-03 02:35:36 +03:00
test-xattr-util \
2016-03-03 02:14:18 +03:00
test-fs-util \
2016-03-03 01:23:55 +03:00
test-web-util \
2016-03-03 01:43:25 +03:00
test-stat-util \
2016-03-03 02:06:17 +03:00
test-fd-util \
2015-11-01 22:28:55 +03:00
test-string-util \
2015-10-28 17:57:11 +03:00
test-extract-word \
2015-10-28 18:14:50 +03:00
test-parse-util \
2015-10-26 01:20:05 +03:00
test-user-util \
2015-07-28 05:15:26 +03:00
test-hostname-util \
2015-04-10 20:10:00 +03:00
test-process-util \
2015-04-11 00:15:59 +03:00
test-terminal-util \
2015-01-09 07:29:33 +03:00
test-path-lookup \
shared: add generic IPC barrier
The "Barrier" object is a simple inter-process barrier implementation. It
allows placing synchronization points and waiting for the other side to
reach it. Additionally, it has an abortion-mechanism as second-layer
synchronization to send abortion-events asynchronously to the other side.
The API is usually used to synchronize processes during fork(). However,
it can be extended to pass state through execve() so you could synchronize
beyond execve().
Usually, it's used like this (error-handling replaced by assert() for
simplicity):
Barrier b;
r = barrier_init(&b);
assert_se(r >= 0);
pid = fork();
assert_se(pid >= 0);
if (pid == 0) {
barrier_set_role(&b, BARRIER_CHILD);
...do child post-setup...
if (CHILD_SETUP_FAILED)
exit(1);
...child setup done...
barrier_place(&b);
if (!barrier_sync(&b)) {
/* parent setup failed */
exit(1);
}
barrier_destroy(&b); /* redundant as execve() and exit() imply this */
/* parent & child setup successful */
execve(...);
}
barrier_set_role(&b, BARRIER_PARENT);
...do parent post-setup...
if (PARENT_SETUP_FAILED) {
barrier_abort(&b); /* send abortion event */
barrier_wait_abortion(&b); /* wait for child to abort (exit() implies abortion) */
barrier_destroy(&b);
...bail out...
}
...parent setup done...
barrier_place(&b);
if (!barrier_sync(&b)) {
...child setup failed... ;
barrier_destroy(&b);
...bail out...
}
barrier_destroy(&b);
...child setup successfull...
This is the most basic API. Using barrier_place() to place barriers and
barrier_sync() to perform a full synchronization between both processes.
barrier_abort() places an abortion barrier which superceeds any other
barriers, exit() (or barrier_destroy()) places an abortion-barrier that
queues behind existing barriers (thus *not* replacing existing barriers
unlike barrier_abort()).
This example uses hard-synchronization with wait_abortion(), sync() and
friends. These are all optional. Barriers are highly dynamic and can be
used for one-way synchronization or even no synchronization at all
(postponing it for later). The sync() call performs a full two-way
synchronization.
The API is documented and should be fairly self-explanatory. A test-suite
shows some special semantics regarding abortion, wait_next() and exit().
Internally, barriers use two eventfds and a pipe. The pipe is used to
detect exit()s of the remote side as eventfds do not allow that. The
eventfds are used to place barriers, one for each side. Barriers itself
are numbered, but the numbers are reused once both sides reached the same
barrier, thus you cannot address barriers by the index. Moreover, the
numbering is implicit and we only store a counter. This makes the
implementation itself very lightweight, which is probably negligible
considering that we need 3 FDs for a barrier..
Last but not least: This barrier implementation is quite heavy. It's
definitely not meant for fast IPC synchronization. However, it's very easy
to use. And given the *HUGE* overhead of fork(), the barrier-overhead
should be negligible.
2014-07-10 17:25:47 +04:00
test-barrier \
2014-01-26 08:35:28 +04:00
test-tmpfiles \
2013-10-23 04:39:18 +04:00
test-namespace \
2012-10-28 02:49:04 +04:00
test-date \
2012-11-15 01:20:17 +04:00
test-sleep \
2012-11-01 21:48:11 +04:00
test-replace-var \
2012-11-24 00:37:58 +04:00
test-sched-prio \
2012-12-23 14:23:59 +04:00
test-calendarspec \
2013-01-18 10:13:27 +04:00
test-strip-tab-ansi \
2013-03-21 05:42:28 +04:00
test-cgroup-util \
2015-01-10 00:58:29 +03:00
test-fstab-util \
2013-04-03 21:04:03 +04:00
test-prioq \
2013-04-04 00:58:41 +04:00
test-fileio \
2013-05-03 01:50:49 +04:00
test-time \
2016-02-26 13:25:22 +03:00
test-clock \
2013-06-26 15:43:16 +04:00
test-hashmap \
2014-10-01 17:32:16 +04:00
test-set \
2015-07-13 20:47:26 +03:00
test-bitmap \
2013-07-05 08:25:26 +04:00
test-list \
2014-11-01 16:04:17 +03:00
test-unaligned \
2013-09-18 20:12:04 +04:00
test-tables \
2013-12-28 06:03:50 +04:00
test-device-nodes \
2014-02-21 05:06:04 +04:00
test-xml \
2014-06-15 00:10:44 +04:00
test-architecture \
2014-06-15 00:10:45 +04:00
test-socket-util \
2014-06-20 06:07:05 +04:00
test-fdset \
2014-06-22 00:07:10 +04:00
test-conf-files \
2015-05-23 19:32:57 +03:00
test-conf-parser \
2014-06-22 00:07:11 +04:00
test-capability \
2014-06-23 23:28:22 +04:00
test-async \
2014-08-16 16:19:10 +04:00
test-ratelimit \
2014-11-06 16:19:05 +03:00
test-condition \
2014-09-19 16:50:53 +04:00
test-uid-range \
2014-10-30 00:28:50 +03:00
test-locale-util \
2014-11-11 22:05:40 +03:00
test-execute \
2014-12-10 05:16:14 +03:00
test-copy \
2014-12-30 22:57:53 +03:00
test-cap-list \
2014-12-20 06:59:51 +03:00
test-sigbus \
2015-06-02 21:49:43 +03:00
test-verbs \
2015-07-30 22:07:25 +03:00
test-af-list \
test-arphrd-list \
install: follow unit file symlinks in /usr, but not /etc when looking for [Install] data
Some distributions use alias unit files via symlinks in /usr to cover
for legacy service names. With this change we'll allow "systemctl
enable" on such aliases.
Previously, our rule was that symlinks are user configuration that
"systemctl enable" + "systemctl disable" creates and removes, while unit
files is where the instructions to do so are store. As a result of the
rule we'd never read install information through symlinks, since that
would mix enablement state with installation instructions.
Now, the new rule is that only symlinks inside of /etc are
configuration. Unit files, and symlinks in /usr are now valid for
installation instructions.
This patch is quite a rework of the whole install logic, and makes the
following addional changes:
- Adds a complete test "test-instal-root" that tests the install logic
pretty comprehensively.
- Never uses canonicalize_file_name(), because that's incompatible with
operation relative to a specific root directory.
- unit_file_get_state() is reworked to return a proper error, and
returns the state in a call-by-ref parameter. This cleans up confusion
between the enum type and errno-like errors.
- The new logic puts a limit on how long to follow unit file symlinks:
it will do so only for 64 steps at max.
- The InstallContext object's fields are renamed to will_process and
has_processed (will_install and has_installed) since they are also
used for deinstallation and all kinds of other operations.
- The root directory is always verified before use.
- install.c is reordered to place the exported functions together.
- Stricter rules are followed when traversing symlinks: the unit suffix
must say identical, and it's not allowed to link between regular units
and templated units.
- Various modernizations
- The "invalid" unit file state has been renamed to "bad", in order to
avoid confusion between UNIT_FILE_INVALID and
_UNIT_FILE_STATE_INVALID. Given that the state should normally not be
seen and is not documented this should not be a problematic change.
The new name is now documented however.
Fixes #1375, #1718, #1706
2015-10-08 23:31:56 +03:00
test-dns-domain \
2015-12-06 05:04:08 +03:00
test-install-root \
2016-01-27 00:34:46 +03:00
test-rlimit-util \
2016-03-01 17:17:03 +03:00
test-signal-util \
2016-03-01 19:52:03 +03:00
test-selinux \
test-sizeof
2012-11-01 21:48:11 +04:00
2015-11-28 08:04:40 +03:00
i f H A V E _ A C L
tests += \
test-acl-util
e n d i f
2016-10-21 22:48:10 +03:00
i f H A V E _ S E C C O M P
tests += \
test-seccomp
e n d i f
2012-11-01 21:48:11 +04:00
EXTRA_DIST += \
2014-07-29 19:54:57 +04:00
test/a.service \
test/basic.target \
test/b.service \
test/c.service \
test/daughter.service \
test/d.service \
2015-11-09 01:00:34 +03:00
test/end.service \
2014-07-29 19:54:57 +04:00
test/e.service \
test/f.service \
test/grandchild.service \
test/g.service \
test/hello-after-sleep.target \
test/hello.service \
test/h.service \
test/parent-deep.slice \
test/parent.slice \
2012-11-01 21:48:11 +04:00
test/sched_idle_bad.service \
test/sched_idle_ok.service \
test/sched_rr_bad.service \
2013-11-22 20:36:14 +04:00
test/sched_rr_change.service \
2014-07-29 19:54:57 +04:00
test/sched_rr_ok.service \
test/shutdown.target \
test/sleep.service \
test/sockets.target \
2013-11-22 20:36:14 +04:00
test/son.service \
2014-07-29 19:54:57 +04:00
test/sysinit.target \
test/testsuite.target \
test/timers.target \
2014-09-19 16:50:53 +04:00
test/unstoppable.service \
2015-10-30 20:12:31 +03:00
test/test-path/paths.target \
test/test-path/basic.target \
test/test-path/sysinit.target \
test/test-path/path-changed.service \
test/test-path/path-directorynotempty.service \
test/test-path/path-existsglob.service \
test/test-path/path-exists.service \
test/test-path/path-makedirectory.service \
test/test-path/path-modified.service \
test/test-path/path-mycustomunit.service \
test/test-path/path-service.service \
test/test-path/path-changed.path \
test/test-path/path-directorynotempty.path \
test/test-path/path-existsglob.path \
test/test-path/path-exists.path \
test/test-path/path-makedirectory.path \
test/test-path/path-modified.path \
test/test-path/path-unit.path \
2015-10-30 20:03:18 +03:00
test/test-execute/exec-environment-empty.service \
test/test-execute/exec-environment-multiple.service \
test/test-execute/exec-environment.service \
2015-11-08 21:37:05 +03:00
test/test-execute/exec-passenvironment-absent.service \
test/test-execute/exec-passenvironment-empty.service \
test/test-execute/exec-passenvironment-repeated.service \
test/test-execute/exec-passenvironment.service \
2015-10-30 20:03:18 +03:00
test/test-execute/exec-group.service \
2016-02-28 17:00:18 +03:00
test/test-execute/exec-group-nfsnobody.service \
2016-10-14 11:32:27 +03:00
test/test-execute/exec-supplementarygroups.service \
2016-10-17 11:06:18 +03:00
test/test-execute/exec-supplementarygroups-single-group.service \
test/test-execute/exec-supplementarygroups-single-group-user.service \
2016-10-24 13:38:53 +03:00
test/test-execute/exec-supplementarygroups-multiple-groups-default-group-user.service \
test/test-execute/exec-supplementarygroups-multiple-groups-withgid.service \
test/test-execute/exec-supplementarygroups-multiple-groups-withuid.service \
2016-11-03 00:59:41 +03:00
test/test-execute/exec-dynamicuser-fixeduser.service \
test/test-execute/exec-dynamicuser-fixeduser-one-supplementarygroup.service \
2016-11-03 01:02:28 +03:00
test/test-execute/exec-dynamicuser-supplementarygroups.service \
2015-10-30 20:03:18 +03:00
test/test-execute/exec-ignoresigpipe-no.service \
test/test-execute/exec-ignoresigpipe-yes.service \
test/test-execute/exec-personality-x86-64.service \
test/test-execute/exec-personality-x86.service \
test/test-execute/exec-personality-s390.service \
2016-08-02 17:22:56 +03:00
test/test-execute/exec-personality-ppc64.service \
test/test-execute/exec-personality-ppc64le.service \
test/test-execute/exec-personality-aarch64.service \
2015-10-30 20:03:18 +03:00
test/test-execute/exec-privatedevices-no.service \
test/test-execute/exec-privatedevices-yes.service \
2016-09-25 14:04:30 +03:00
test/test-execute/exec-privatedevices-no-capability-mknod.service \
test/test-execute/exec-privatedevices-yes-capability-mknod.service \
2016-10-07 20:17:34 +03:00
test/test-execute/exec-protectkernelmodules-no-capabilities.service \
test/test-execute/exec-protectkernelmodules-yes-capabilities.service \
2016-10-09 13:38:45 +03:00
test/test-execute/exec-protectkernelmodules-yes-mount-propagation.service \
2015-10-30 20:03:18 +03:00
test/test-execute/exec-privatetmp-no.service \
test/test-execute/exec-privatetmp-yes.service \
2016-09-25 20:24:25 +03:00
test/test-execute/exec-readonlypaths.service \
2016-09-25 20:50:25 +03:00
test/test-execute/exec-readonlypaths-mount-propagation.service \
test/test-execute/exec-readwritepaths-mount-propagation.service \
test/test-execute/exec-inaccessiblepaths-mount-propagation.service \
2016-02-23 17:33:20 +03:00
test/test-execute/exec-spec-interpolation.service \
2015-10-30 20:03:18 +03:00
test/test-execute/exec-systemcallerrornumber.service \
test/test-execute/exec-systemcallfilter-failing2.service \
test/test-execute/exec-systemcallfilter-failing.service \
test/test-execute/exec-systemcallfilter-not-failing2.service \
test/test-execute/exec-systemcallfilter-not-failing.service \
2016-01-30 19:26:39 +03:00
test/test-execute/exec-systemcallfilter-system-user.service \
2016-02-28 17:00:18 +03:00
test/test-execute/exec-systemcallfilter-system-user-nfsnobody.service \
2015-10-30 20:03:18 +03:00
test/test-execute/exec-user.service \
2016-02-28 17:00:18 +03:00
test/test-execute/exec-user-nfsnobody.service \
2015-10-30 20:03:18 +03:00
test/test-execute/exec-workingdirectory.service \
test/test-execute/exec-umask-0177.service \
test/test-execute/exec-umask-default.service \
test/test-execute/exec-privatenetwork-yes.service \
test/test-execute/exec-environmentfile.service \
test/test-execute/exec-oomscoreadjust-positive.service \
test/test-execute/exec-oomscoreadjust-negative.service \
test/test-execute/exec-ioschedulingclass-best-effort.service \
test/test-execute/exec-ioschedulingclass-idle.service \
test/test-execute/exec-ioschedulingclass-none.service \
test/test-execute/exec-ioschedulingclass-realtime.service \
test/test-execute/exec-capabilityboundingset-invert.service \
test/test-execute/exec-capabilityboundingset-merge.service \
test/test-execute/exec-capabilityboundingset-reset.service \
test/test-execute/exec-capabilityboundingset-simple.service \
2016-02-23 19:53:19 +03:00
test/test-execute/exec-capabilityambientset.service \
2016-02-28 17:00:18 +03:00
test/test-execute/exec-capabilityambientset-nfsnobody.service \
2016-02-23 19:53:19 +03:00
test/test-execute/exec-capabilityambientset-merge.service \
2016-02-28 17:00:18 +03:00
test/test-execute/exec-capabilityambientset-merge-nfsnobody.service \
2016-02-23 18:59:14 +03:00
test/test-execute/exec-runtimedirectory.service \
test/test-execute/exec-runtimedirectory-mode.service \
test/test-execute/exec-runtimedirectory-owner.service \
2016-02-28 17:00:18 +03:00
test/test-execute/exec-runtimedirectory-owner-nfsnobody.service \
2016-11-15 17:50:19 +03:00
test/test-execute/exec-restrict-namespaces-no.service \
test/test-execute/exec-restrict-namespaces-yes.service \
test/test-execute/exec-restrict-namespaces-mnt.service \
test/test-execute/exec-restrict-namespaces-mnt-blacklist.service \
2014-09-19 16:50:53 +04:00
test/bus-policy/hello.conf \
test/bus-policy/methods.conf \
test/bus-policy/ownerships.conf \
2014-11-26 22:22:22 +03:00
test/bus-policy/signals.conf \
2014-11-26 22:58:34 +03:00
test/bus-policy/check-own-rules.conf \
test/bus-policy/many-rules.conf \
test/bus-policy/test.conf
2014-09-19 16:50:53 +04:00
2012-04-13 15:21:20 +04:00
2013-07-18 10:30:06 +04:00
EXTRA_DIST += \
src/test/test-helper.h
2013-09-18 20:12:04 +04:00
test_device_nodes_SOURCES = \
src/test/test-device-nodes.c
test_device_nodes_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-09-18 20:12:04 +04:00
2010-02-03 16:21:48 +03:00
test_engine_SOURCES = \
2012-04-12 15:48:01 +04:00
src/test/test-engine.c
2010-02-03 16:21:48 +03:00
2014-02-22 21:47:28 +04:00
test_engine_CFLAGS = \
$( AM_CFLAGS) \
2015-06-01 14:48:01 +03:00
$( SECCOMP_CFLAGS) \
$( MOUNT_CFLAGS)
2014-02-22 21:47:28 +04:00
2012-04-10 18:02:09 +04:00
test_engine_LDADD = \
2015-06-13 21:35:37 +03:00
libcore.la
2010-02-03 16:21:48 +03:00
test_job_type_SOURCES = \
2012-04-12 15:48:01 +04:00
src/test/test-job-type.c
2010-02-03 16:21:48 +03:00
2014-02-22 21:47:28 +04:00
test_job_type_CFLAGS = \
$( AM_CFLAGS) \
2015-06-01 14:48:01 +03:00
$( SECCOMP_CFLAGS) \
$( MOUNT_CFLAGS)
2014-02-22 21:47:28 +04:00
2012-04-10 18:02:09 +04:00
test_job_type_LDADD = \
2015-06-13 21:35:37 +03:00
libcore.la
2010-02-03 16:21:48 +03:00
2010-04-22 00:15:06 +04:00
test_ns_SOURCES = \
2012-04-12 15:48:01 +04:00
src/test/test-ns.c
2010-04-22 00:15:06 +04:00
2014-02-22 21:47:28 +04:00
test_ns_CFLAGS = \
$( AM_CFLAGS) \
$( SECCOMP_CFLAGS)
2012-04-10 18:02:09 +04:00
test_ns_LDADD = \
2015-06-09 15:27:33 +03:00
libcore.la
2010-04-22 00:15:06 +04:00
2010-05-09 20:02:38 +04:00
test_loopback_SOURCES = \
2012-04-12 15:48:01 +04:00
src/test/test-loopback.c
2010-05-09 20:02:38 +04:00
2010-06-18 02:44:57 +04:00
test_loopback_LDADD = \
2015-06-09 15:27:33 +03:00
libcore.la
2010-06-18 02:44:57 +04:00
2010-08-19 05:02:22 +04:00
test_hostname_SOURCES = \
2012-04-12 15:48:01 +04:00
src/test/test-hostname.c
2010-08-19 05:02:22 +04:00
test_hostname_LDADD = \
2015-06-09 15:27:33 +03:00
libcore.la
2010-08-19 05:02:22 +04:00
2015-06-02 21:49:43 +03:00
test_dns_domain_SOURCES = \
src/test/test-dns-domain.c
test_dns_domain_LDADD = \
libsystemd-network.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-06-02 21:49:43 +03:00
2015-02-02 04:12:46 +03:00
2013-02-14 02:07:59 +04:00
i f E N A B L E _ E F I
2016-02-26 17:06:10 +03:00
tests += \
test-boot-timestamps
2013-02-14 02:07:59 +04:00
2016-02-26 17:06:10 +03:00
test_boot_timestamps_SOURCES = \
2013-09-24 02:23:35 +04:00
src/test/test-boot-timestamps.c
2013-01-19 07:20:23 +04:00
2016-02-26 17:06:10 +03:00
test_boot_timestamps_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-02-14 02:07:59 +04:00
e n d i f
2013-01-19 07:20:23 +04:00
2012-06-22 15:08:48 +04:00
test_unit_name_SOURCES = \
src/test/test-unit-name.c
2014-02-22 21:47:28 +04:00
test_unit_name_CFLAGS = \
$( AM_CFLAGS) \
2015-06-01 14:48:01 +03:00
$( SECCOMP_CFLAGS) \
$( MOUNT_CFLAGS)
2014-02-22 21:47:28 +04:00
2012-06-22 15:08:48 +04:00
test_unit_name_LDADD = \
2015-06-13 21:35:37 +03:00
libcore.la
2012-06-22 15:08:48 +04:00
2012-09-11 03:11:32 +04:00
test_unit_file_SOURCES = \
src/test/test-unit-file.c
2014-02-22 21:47:28 +04:00
test_unit_file_CFLAGS = \
$( AM_CFLAGS) \
2015-06-01 14:48:01 +03:00
$( SECCOMP_CFLAGS) \
$( MOUNT_CFLAGS)
2014-02-22 21:47:28 +04:00
2012-09-11 03:11:32 +04:00
test_unit_file_LDADD = \
2015-06-13 21:35:37 +03:00
libcore.la
2012-09-11 03:11:32 +04:00
2013-09-17 23:39:09 +04:00
test_utf8_SOURCES = \
src/test/test-utf8.c
test_utf8_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-09-17 23:39:09 +04:00
2014-06-22 00:07:10 +04:00
test_capability_SOURCES = \
src/test/test-capability.c
2016-06-25 05:14:25 +03:00
test_capability_CFLAGS = \
$( AM_CFLAGS) \
$( CAP_CFLAGS)
2014-06-22 00:07:10 +04:00
test_capability_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
$( CAP_LIBS)
2014-06-22 00:07:10 +04:00
2014-06-22 00:07:11 +04:00
test_async_SOURCES = \
src/test/test-async.c
test_async_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-06-22 00:07:11 +04:00
2014-10-12 20:05:10 +04:00
test_locale_util_SOURCES = \
src/test/test-locale-util.c
test_locale_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-10-12 20:05:10 +04:00
2014-10-30 00:28:50 +03:00
test_copy_SOURCES = \
src/test/test-copy.c
2016-06-25 05:14:25 +03:00
# Link statically to ensure file is large
2014-10-30 00:28:50 +03:00
test_copy_LDADD = \
2015-06-09 15:27:33 +03:00
libshared.la
2014-10-30 00:28:50 +03:00
2014-12-30 22:57:53 +03:00
test_sigbus_SOURCES = \
src/test/test-sigbus.c
test_sigbus_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-12-30 22:57:53 +03:00
2014-11-06 16:19:05 +03:00
test_condition_SOURCES = \
src/test/test-condition.c
2014-08-16 16:19:10 +04:00
2014-11-06 16:19:05 +03:00
test_condition_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-08-16 16:19:10 +04:00
2014-06-15 00:10:45 +04:00
test_fdset_SOURCES = \
src/test/test-fdset.c
test_fdset_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-06-15 00:10:45 +04:00
2015-01-10 00:58:29 +03:00
test_fstab_util_SOURCES = \
src/test/test-fstab-util.c
test_fstab_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-01-10 00:58:29 +03:00
2014-06-23 23:28:22 +04:00
test_ratelimit_SOURCES = \
src/test/test-ratelimit.c
test_ratelimit_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-06-23 23:28:22 +04:00
2013-02-07 00:15:23 +04:00
test_util_SOURCES = \
src/test/test-util.c
test_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-02-07 00:15:23 +04:00
2016-03-03 00:44:04 +03:00
test_hexdecoct_SOURCES = \
src/test/test-hexdecoct.c
test_hexdecoct_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-03-03 00:44:04 +03:00
2016-03-03 01:19:55 +03:00
test_alloc_util_SOURCES = \
src/test/test-alloc-util.c
test_alloc_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-03-03 01:19:55 +03:00
2016-03-03 02:35:36 +03:00
test_xattr_util_SOURCES = \
src/test/test-xattr-util.c
test_xattr_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-03-03 02:35:36 +03:00
2016-03-03 02:28:29 +03:00
test_io_util_SOURCES = \
src/test/test-io-util.c
test_io_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-03-03 02:28:29 +03:00
2016-03-03 02:31:23 +03:00
test_glob_util_SOURCES = \
src/test/test-glob-util.c
test_glob_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-03-03 02:31:23 +03:00
2016-03-03 02:14:18 +03:00
test_fs_util_SOURCES = \
src/test/test-fs-util.c
test_fs_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-03-03 02:14:18 +03:00
2016-03-03 02:23:30 +03:00
test_proc_cmdline_SOURCES = \
src/test/test-proc-cmdline.c
test_proc_cmdline_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-03-03 02:23:30 +03:00
2016-03-03 02:06:17 +03:00
test_fd_util_SOURCES = \
src/test/test-fd-util.c
test_fd_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-03-03 02:06:17 +03:00
2016-03-03 01:23:55 +03:00
test_web_util_SOURCES = \
src/test/test-web-util.c
test_web_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-03-03 01:23:55 +03:00
2016-03-03 01:29:49 +03:00
test_cpu_set_util_SOURCES = \
src/test/test-cpu-set-util.c
test_cpu_set_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-03-03 01:29:49 +03:00
2016-03-03 01:43:25 +03:00
test_stat_util_SOURCES = \
src/test/test-stat-util.c
test_stat_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-03-03 01:43:25 +03:00
2016-03-03 01:10:11 +03:00
test_escape_SOURCES = \
src/test/test-escape.c
test_escape_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-03-03 01:10:11 +03:00
2015-11-01 22:28:55 +03:00
test_string_util_SOURCES = \
src/test/test-string-util.c
test_string_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-11-01 22:28:55 +03:00
2015-10-28 17:57:11 +03:00
test_extract_word_SOURCES = \
src/test/test-extract-word.c
test_extract_word_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-10-28 17:57:11 +03:00
2015-10-28 18:14:50 +03:00
test_parse_util_SOURCES = \
src/test/test-parse-util.c
test_parse_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-10-28 18:14:50 +03:00
2015-10-26 01:20:05 +03:00
test_user_util_SOURCES = \
src/test/test-user-util.c
test_user_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-10-26 01:20:05 +03:00
2015-07-28 05:15:26 +03:00
test_hostname_util_SOURCES = \
src/test/test-hostname-util.c
test_hostname_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-07-28 05:15:26 +03:00
2015-04-10 20:10:00 +03:00
test_process_util_SOURCES = \
src/test/test-process-util.c
test_process_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-04-10 20:10:00 +03:00
2015-04-11 00:15:59 +03:00
test_terminal_util_SOURCES = \
src/test/test-terminal-util.c
test_terminal_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-04-11 00:15:59 +03:00
2015-01-09 07:29:33 +03:00
test_path_lookup_SOURCES = \
src/test/test-path-lookup.c
test_path_lookup_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-01-09 07:29:33 +03:00
2014-08-19 21:05:11 +04:00
test_uid_range_SOURCES = \
src/test/test-uid-range.c
test_uid_range_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-08-19 21:05:11 +04:00
2014-12-10 05:16:14 +03:00
test_cap_list_SOURCES = \
src/test/test-cap-list.c
2016-06-25 05:14:25 +03:00
test_cap_list_CFLAGS = \
$( AM_CFLAGS) \
$( CAP_CFLAGS)
2014-12-10 05:16:14 +03:00
test_cap_list_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
$( CAP_LIBS)
2014-12-10 05:16:14 +03:00
2014-06-15 00:10:44 +04:00
test_socket_util_SOURCES = \
src/test/test-socket-util.c
test_socket_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-06-15 00:10:44 +04:00
shared: add generic IPC barrier
The "Barrier" object is a simple inter-process barrier implementation. It
allows placing synchronization points and waiting for the other side to
reach it. Additionally, it has an abortion-mechanism as second-layer
synchronization to send abortion-events asynchronously to the other side.
The API is usually used to synchronize processes during fork(). However,
it can be extended to pass state through execve() so you could synchronize
beyond execve().
Usually, it's used like this (error-handling replaced by assert() for
simplicity):
Barrier b;
r = barrier_init(&b);
assert_se(r >= 0);
pid = fork();
assert_se(pid >= 0);
if (pid == 0) {
barrier_set_role(&b, BARRIER_CHILD);
...do child post-setup...
if (CHILD_SETUP_FAILED)
exit(1);
...child setup done...
barrier_place(&b);
if (!barrier_sync(&b)) {
/* parent setup failed */
exit(1);
}
barrier_destroy(&b); /* redundant as execve() and exit() imply this */
/* parent & child setup successful */
execve(...);
}
barrier_set_role(&b, BARRIER_PARENT);
...do parent post-setup...
if (PARENT_SETUP_FAILED) {
barrier_abort(&b); /* send abortion event */
barrier_wait_abortion(&b); /* wait for child to abort (exit() implies abortion) */
barrier_destroy(&b);
...bail out...
}
...parent setup done...
barrier_place(&b);
if (!barrier_sync(&b)) {
...child setup failed... ;
barrier_destroy(&b);
...bail out...
}
barrier_destroy(&b);
...child setup successfull...
This is the most basic API. Using barrier_place() to place barriers and
barrier_sync() to perform a full synchronization between both processes.
barrier_abort() places an abortion barrier which superceeds any other
barriers, exit() (or barrier_destroy()) places an abortion-barrier that
queues behind existing barriers (thus *not* replacing existing barriers
unlike barrier_abort()).
This example uses hard-synchronization with wait_abortion(), sync() and
friends. These are all optional. Barriers are highly dynamic and can be
used for one-way synchronization or even no synchronization at all
(postponing it for later). The sync() call performs a full two-way
synchronization.
The API is documented and should be fairly self-explanatory. A test-suite
shows some special semantics regarding abortion, wait_next() and exit().
Internally, barriers use two eventfds and a pipe. The pipe is used to
detect exit()s of the remote side as eventfds do not allow that. The
eventfds are used to place barriers, one for each side. Barriers itself
are numbered, but the numbers are reused once both sides reached the same
barrier, thus you cannot address barriers by the index. Moreover, the
numbering is implicit and we only store a counter. This makes the
implementation itself very lightweight, which is probably negligible
considering that we need 3 FDs for a barrier..
Last but not least: This barrier implementation is quite heavy. It's
definitely not meant for fast IPC synchronization. However, it's very easy
to use. And given the *HUGE* overhead of fork(), the barrier-overhead
should be negligible.
2014-07-10 17:25:47 +04:00
test_barrier_SOURCES = \
src/test/test-barrier.c
test_barrier_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
shared: add generic IPC barrier
The "Barrier" object is a simple inter-process barrier implementation. It
allows placing synchronization points and waiting for the other side to
reach it. Additionally, it has an abortion-mechanism as second-layer
synchronization to send abortion-events asynchronously to the other side.
The API is usually used to synchronize processes during fork(). However,
it can be extended to pass state through execve() so you could synchronize
beyond execve().
Usually, it's used like this (error-handling replaced by assert() for
simplicity):
Barrier b;
r = barrier_init(&b);
assert_se(r >= 0);
pid = fork();
assert_se(pid >= 0);
if (pid == 0) {
barrier_set_role(&b, BARRIER_CHILD);
...do child post-setup...
if (CHILD_SETUP_FAILED)
exit(1);
...child setup done...
barrier_place(&b);
if (!barrier_sync(&b)) {
/* parent setup failed */
exit(1);
}
barrier_destroy(&b); /* redundant as execve() and exit() imply this */
/* parent & child setup successful */
execve(...);
}
barrier_set_role(&b, BARRIER_PARENT);
...do parent post-setup...
if (PARENT_SETUP_FAILED) {
barrier_abort(&b); /* send abortion event */
barrier_wait_abortion(&b); /* wait for child to abort (exit() implies abortion) */
barrier_destroy(&b);
...bail out...
}
...parent setup done...
barrier_place(&b);
if (!barrier_sync(&b)) {
...child setup failed... ;
barrier_destroy(&b);
...bail out...
}
barrier_destroy(&b);
...child setup successfull...
This is the most basic API. Using barrier_place() to place barriers and
barrier_sync() to perform a full synchronization between both processes.
barrier_abort() places an abortion barrier which superceeds any other
barriers, exit() (or barrier_destroy()) places an abortion-barrier that
queues behind existing barriers (thus *not* replacing existing barriers
unlike barrier_abort()).
This example uses hard-synchronization with wait_abortion(), sync() and
friends. These are all optional. Barriers are highly dynamic and can be
used for one-way synchronization or even no synchronization at all
(postponing it for later). The sync() call performs a full two-way
synchronization.
The API is documented and should be fairly self-explanatory. A test-suite
shows some special semantics regarding abortion, wait_next() and exit().
Internally, barriers use two eventfds and a pipe. The pipe is used to
detect exit()s of the remote side as eventfds do not allow that. The
eventfds are used to place barriers, one for each side. Barriers itself
are numbered, but the numbers are reused once both sides reached the same
barrier, thus you cannot address barriers by the index. Moreover, the
numbering is implicit and we only store a counter. This makes the
implementation itself very lightweight, which is probably negligible
considering that we need 3 FDs for a barrier..
Last but not least: This barrier implementation is quite heavy. It's
definitely not meant for fast IPC synchronization. However, it's very easy
to use. And given the *HUGE* overhead of fork(), the barrier-overhead
should be negligible.
2014-07-10 17:25:47 +04:00
2014-01-26 08:35:28 +04:00
test_tmpfiles_SOURCES = \
src/test/test-tmpfiles.c
test_tmpfiles_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-01-26 08:35:28 +04:00
2013-10-23 04:39:18 +04:00
test_namespace_SOURCES = \
src/test/test-namespace.c
2014-12-20 06:59:51 +03:00
test_verbs_SOURCES = \
src/test/test-verbs.c
test_verbs_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-12-20 06:59:51 +03:00
install: follow unit file symlinks in /usr, but not /etc when looking for [Install] data
Some distributions use alias unit files via symlinks in /usr to cover
for legacy service names. With this change we'll allow "systemctl
enable" on such aliases.
Previously, our rule was that symlinks are user configuration that
"systemctl enable" + "systemctl disable" creates and removes, while unit
files is where the instructions to do so are store. As a result of the
rule we'd never read install information through symlinks, since that
would mix enablement state with installation instructions.
Now, the new rule is that only symlinks inside of /etc are
configuration. Unit files, and symlinks in /usr are now valid for
installation instructions.
This patch is quite a rework of the whole install logic, and makes the
following addional changes:
- Adds a complete test "test-instal-root" that tests the install logic
pretty comprehensively.
- Never uses canonicalize_file_name(), because that's incompatible with
operation relative to a specific root directory.
- unit_file_get_state() is reworked to return a proper error, and
returns the state in a call-by-ref parameter. This cleans up confusion
between the enum type and errno-like errors.
- The new logic puts a limit on how long to follow unit file symlinks:
it will do so only for 64 steps at max.
- The InstallContext object's fields are renamed to will_process and
has_processed (will_install and has_installed) since they are also
used for deinstallation and all kinds of other operations.
- The root directory is always verified before use.
- install.c is reordered to place the exported functions together.
- Stricter rules are followed when traversing symlinks: the unit suffix
must say identical, and it's not allowed to link between regular units
and templated units.
- Various modernizations
- The "invalid" unit file state has been renamed to "bad", in order to
avoid confusion between UNIT_FILE_INVALID and
_UNIT_FILE_STATE_INVALID. Given that the state should normally not be
seen and is not documented this should not be a problematic change.
The new name is now documented however.
Fixes #1375, #1718, #1706
2015-10-08 23:31:56 +03:00
test_install_root_SOURCES = \
src/test/test-install-root.c
test_install_root_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
install: follow unit file symlinks in /usr, but not /etc when looking for [Install] data
Some distributions use alias unit files via symlinks in /usr to cover
for legacy service names. With this change we'll allow "systemctl
enable" on such aliases.
Previously, our rule was that symlinks are user configuration that
"systemctl enable" + "systemctl disable" creates and removes, while unit
files is where the instructions to do so are store. As a result of the
rule we'd never read install information through symlinks, since that
would mix enablement state with installation instructions.
Now, the new rule is that only symlinks inside of /etc are
configuration. Unit files, and symlinks in /usr are now valid for
installation instructions.
This patch is quite a rework of the whole install logic, and makes the
following addional changes:
- Adds a complete test "test-instal-root" that tests the install logic
pretty comprehensively.
- Never uses canonicalize_file_name(), because that's incompatible with
operation relative to a specific root directory.
- unit_file_get_state() is reworked to return a proper error, and
returns the state in a call-by-ref parameter. This cleans up confusion
between the enum type and errno-like errors.
- The new logic puts a limit on how long to follow unit file symlinks:
it will do so only for 64 steps at max.
- The InstallContext object's fields are renamed to will_process and
has_processed (will_install and has_installed) since they are also
used for deinstallation and all kinds of other operations.
- The root directory is always verified before use.
- install.c is reordered to place the exported functions together.
- Stricter rules are followed when traversing symlinks: the unit suffix
must say identical, and it's not allowed to link between regular units
and templated units.
- Various modernizations
- The "invalid" unit file state has been renamed to "bad", in order to
avoid confusion between UNIT_FILE_INVALID and
_UNIT_FILE_STATE_INVALID. Given that the state should normally not be
seen and is not documented this should not be a problematic change.
The new name is now documented however.
Fixes #1375, #1718, #1706
2015-10-08 23:31:56 +03:00
2015-11-28 08:04:40 +03:00
test_acl_util_SOURCES = \
src/test/test-acl-util.c
test_acl_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-11-28 08:04:40 +03:00
2016-10-21 22:48:10 +03:00
test_seccomp_SOURCES = \
src/test/test-seccomp.c
test_seccomp_LDADD = \
2016-11-04 00:15:33 +03:00
libsystemd-shared.la \
$( SECCOMP_LIBS)
2016-10-21 22:48:10 +03:00
2013-10-23 04:39:18 +04:00
test_namespace_LDADD = \
2015-06-09 15:27:33 +03:00
libcore.la
2013-10-23 04:39:18 +04:00
2015-12-06 05:04:08 +03:00
test_rlimit_util_SOURCES = \
src/test/test-rlimit-util.c
test_rlimit_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-12-06 05:04:08 +03:00
2016-01-26 17:02:31 +03:00
test_ask_password_api_SOURCES = \
src/test/test-ask-password-api.c
test_ask_password_api_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-01-26 17:02:31 +03:00
2016-01-27 00:34:46 +03:00
test_signal_util_SOURCES = \
src/test/test-signal-util.c
test_signal_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-01-27 00:34:46 +03:00
2016-03-01 17:17:03 +03:00
test_selinux_SOURCES = \
src/test/test-selinux.c
test_selinux_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-03-01 17:17:03 +03:00
2016-03-01 19:52:03 +03:00
test_sizeof_SOURCES = \
src/test/test-sizeof.c
test_sizeof_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-03-01 19:52:03 +03:00
2014-10-15 13:00:46 +04:00
BUILT_SOURCES += \
src/test/test-hashmap-ordered.c
src/test/test-hashmap-ordered.c : src /test /test -hashmap -plain .c
$( AM_V_at) $( MKDIR_P) $( dir $@ )
$( AM_V_GEN) $( AWK) ' BEGIN { print "/* GENERATED FILE */\n#define ORDERED" } \
{ if ( !match( $$ 0, "^#include" ) ) \
gsub( /hashmap/, "ordered_hashmap" ) ; \
gsub( /HASHMAP/, "ORDERED_HASHMAP" ) ; \
gsub( /Hashmap/, "OrderedHashmap" ) ; \
print } ' <$< >$@
nodist_test_hashmap_SOURCES = \
src/test/test-hashmap-ordered.c
2013-05-03 01:50:49 +04:00
test_hashmap_SOURCES = \
2014-10-15 13:00:46 +04:00
src/test/test-hashmap.c \
src/test/test-hashmap-plain.c
2013-05-03 01:50:49 +04:00
test_hashmap_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-05-03 01:50:49 +04:00
2014-10-01 17:32:16 +04:00
test_set_SOURCES = \
src/test/test-set.c
test_set_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-10-01 17:32:16 +04:00
2015-07-13 20:47:26 +03:00
test_bitmap_SOURCES = \
src/test/test-bitmap.c
test_bitmap_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-07-13 20:47:26 +03:00
2013-12-28 06:03:50 +04:00
test_xml_SOURCES = \
src/test/test-xml.c
test_xml_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-12-28 06:03:50 +04:00
2013-06-26 15:43:16 +04:00
test_list_SOURCES = \
src/test/test-list.c
2014-11-09 00:05:29 +03:00
test_list_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-11-09 00:05:29 +03:00
2014-11-01 16:04:17 +03:00
test_unaligned_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-11-01 16:04:17 +03:00
test_unaligned_SOURCES = \
src/test/test-unaligned.c
2013-07-05 08:25:26 +04:00
test_tables_SOURCES = \
src/test/test-tables.c \
2014-07-10 06:29:24 +04:00
src/shared/test-tables.h \
src/journal/journald-server.c \
src/journal/journald-server.h
2013-07-05 08:25:26 +04:00
2014-07-18 01:53:59 +04:00
test_tables_CPPFLAGS = \
2016-02-12 17:25:27 +03:00
$( AM_CPPFLAGS)
2014-07-18 01:53:59 +04:00
2014-02-22 21:47:28 +04:00
test_tables_CFLAGS = \
$( AM_CFLAGS) \
2015-06-01 14:48:01 +03:00
$( SECCOMP_CFLAGS) \
$( MOUNT_CFLAGS)
2014-02-22 21:47:28 +04:00
2013-07-05 08:25:26 +04:00
test_tables_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la \
libcore.la \
2015-06-13 21:35:37 +03:00
libudev-core.la
2013-07-05 08:25:26 +04:00
2013-03-21 05:42:28 +04:00
test_prioq_SOURCES = \
src/test/test-prioq.c
test_prioq_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-03-21 05:42:28 +04:00
2013-04-03 21:04:03 +04:00
test_fileio_SOURCES = \
src/test/test-fileio.c
test_fileio_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-04-03 21:04:03 +04:00
2013-04-04 00:58:41 +04:00
test_time_SOURCES = \
src/test/test-time.c
test_time_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-04-04 00:58:41 +04:00
2016-02-26 13:25:22 +03:00
test_clock_SOURCES = \
src/test/test-clock.c
test_clock_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-02-26 13:25:22 +03:00
2014-02-21 05:06:04 +04:00
test_architecture_SOURCES = \
src/test/test-architecture.c
test_architecture_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-02-21 05:06:04 +04:00
2012-08-25 00:21:20 +04:00
test_log_SOURCES = \
src/test/test-log.c
test_log_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-08-25 00:21:20 +04:00
2014-03-14 04:38:19 +04:00
test_ipcrm_SOURCES = \
src/test/test-ipcrm.c
test_ipcrm_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-03-14 04:38:19 +04:00
2014-12-12 05:15:58 +03:00
test_btrfs_SOURCES = \
src/test/test-btrfs.c
test_btrfs_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-12-12 05:15:58 +03:00
2015-01-16 17:16:05 +03:00
i f H A V E _ L I B I P T C
2015-06-15 14:50:43 +03:00
test_firewall_util_SOURCES = \
src/test/test-firewall-util.c
2015-01-13 15:44:30 +03:00
2015-06-15 14:50:43 +03:00
test_firewall_util_CFLAGS = \
2015-01-13 15:44:30 +03:00
$( AM_CFLAGS) \
$( LIBIPTC_CFLAGS)
2015-06-15 14:50:43 +03:00
test_firewall_util_LDADD = \
2015-06-09 15:27:33 +03:00
libfirewall.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2015-01-13 15:44:30 +03:00
$( LIBIPTC_LIBS)
2015-01-16 17:16:05 +03:00
e n d i f
2015-01-13 15:44:30 +03:00
2015-06-12 17:31:33 +03:00
test_netlink_manual_SOURCES = \
src/test/test-netlink-manual.c
2014-03-25 12:43:30 +04:00
2015-06-12 17:31:33 +03:00
test_netlink_manual_CFLAGS = \
2014-04-14 17:14:14 +04:00
$( AM_CFLAGS) \
$( KMOD_CFLAGS)
2015-06-12 17:31:33 +03:00
test_netlink_manual_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2014-04-14 17:14:14 +04:00
$( KMOD_LIBS)
2014-03-25 12:43:30 +04:00
2013-09-21 05:37:34 +04:00
test_ellipsize_SOURCES = \
src/test/test-ellipsize.c
test_ellipsize_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-09-21 05:37:34 +04:00
2012-10-11 18:42:46 +04:00
test_date_SOURCES = \
src/test/test-date.c
test_date_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-10-11 18:42:46 +04:00
2012-10-28 02:49:04 +04:00
test_sleep_SOURCES = \
src/test/test-sleep.c
test_sleep_LDADD = \
2015-06-09 15:27:33 +03:00
libcore.la
2012-10-28 02:49:04 +04:00
2012-11-15 01:20:17 +04:00
test_replace_var_SOURCES = \
src/test/test-replace-var.c
test_replace_var_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-11-15 01:20:17 +04:00
2012-11-24 00:37:58 +04:00
test_calendarspec_SOURCES = \
src/test/test-calendarspec.c
test_calendarspec_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-11-24 00:37:58 +04:00
2012-12-23 14:23:59 +04:00
test_strip_tab_ansi_SOURCES = \
src/test/test-strip-tab-ansi.c
test_strip_tab_ansi_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-12-23 14:23:59 +04:00
2010-06-16 07:10:31 +04:00
test_daemon_SOURCES = \
2012-04-12 15:48:01 +04:00
src/test/test-daemon.c
2010-05-09 20:02:38 +04:00
2010-06-18 02:44:57 +04:00
test_daemon_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2010-06-18 02:44:57 +04:00
2010-06-22 01:27:18 +04:00
test_cgroup_SOURCES = \
2012-04-12 15:48:01 +04:00
src/test/test-cgroup.c
2010-06-22 01:27:18 +04:00
test_cgroup_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2010-06-22 01:27:18 +04:00
2013-11-11 13:03:31 +04:00
test_cgroup_mask_SOURCES = \
src/test/test-cgroup-mask.c
2013-12-11 01:30:46 +04:00
test_cgroup_mask_CPPFLAGS = \
2015-06-01 14:48:01 +03:00
$( AM_CPPFLAGS) \
$( MOUNT_CFLAGS)
2013-11-11 13:03:31 +04:00
2014-02-22 21:47:28 +04:00
test_cgroup_mask_CFLAGS = \
$( AM_CFLAGS) \
$( SECCOMP_CFLAGS)
2013-11-11 13:03:31 +04:00
test_cgroup_mask_LDADD = \
2015-06-13 21:35:37 +03:00
libcore.la
2013-11-11 13:03:31 +04:00
2013-01-18 10:13:27 +04:00
test_cgroup_util_SOURCES = \
src/test/test-cgroup-util.c
test_cgroup_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-01-18 10:13:27 +04:00
2016-03-21 23:17:18 +03:00
test_env_util_SOURCES = \
src/test/test-env-util.c
2010-07-21 04:57:35 +04:00
2016-03-21 23:17:18 +03:00
test_env_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2010-07-21 04:57:35 +04:00
2013-02-09 04:39:44 +04:00
test_strbuf_SOURCES = \
src/test/test-strbuf.c
test_strbuf_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-02-09 04:39:44 +04:00
2010-11-14 21:58:33 +03:00
test_strv_SOURCES = \
2012-04-12 15:48:01 +04:00
src/test/test-strv.c
2010-11-14 21:58:33 +03:00
test_strv_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2010-11-14 21:58:33 +03:00
2013-03-29 06:03:53 +04:00
test_path_util_SOURCES = \
src/test/test-path-util.c
test_path_util_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-03-29 06:03:53 +04:00
2014-11-05 23:27:01 +03:00
test_path_SOURCES = \
src/test/test-path.c
test_path_CFLAGS = \
2015-06-01 14:48:01 +03:00
$( AM_CFLAGS) \
$( MOUNT_CFLAGS)
2014-11-05 23:27:01 +03:00
test_path_LDADD = \
2015-06-09 15:27:33 +03:00
libcore.la
2014-11-05 23:27:01 +03:00
2014-11-11 22:05:40 +03:00
test_execute_SOURCES = \
src/test/test-execute.c
test_execute_CFLAGS = \
2015-06-01 14:48:01 +03:00
$( AM_CFLAGS) \
$( MOUNT_CFLAGS)
2014-11-11 22:05:40 +03:00
test_execute_LDADD = \
2015-06-09 15:27:33 +03:00
libcore.la
2014-11-11 22:05:40 +03:00
2015-10-03 19:41:02 +03:00
test_siphash24_SOURCES = \
src/test/test-siphash24.c
test_siphash24_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-10-03 19:41:02 +03:00
2013-02-11 00:56:03 +04:00
test_strxcpyx_SOURCES = \
src/test/test-strxcpyx.c
test_strxcpyx_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-02-11 00:56:03 +04:00
2011-07-22 06:21:18 +04:00
test_install_SOURCES = \
2012-04-12 15:48:01 +04:00
src/test/test-install.c
2011-07-22 06:21:18 +04:00
test_install_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-07-22 06:21:18 +04:00
2012-04-06 00:08:10 +04:00
test_watchdog_SOURCES = \
2012-04-12 15:48:01 +04:00
src/test/test-watchdog.c
2012-04-06 00:08:10 +04:00
test_watchdog_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-04-06 00:08:10 +04:00
2012-11-01 21:48:11 +04:00
test_sched_prio_SOURCES = \
src/test/test-sched-prio.c
2013-12-11 01:30:46 +04:00
test_sched_prio_CPPFLAGS = \
2015-06-01 14:48:01 +03:00
$( AM_CPPFLAGS) \
$( MOUNT_CFLAGS)
2012-11-01 21:48:11 +04:00
2014-02-22 21:47:28 +04:00
test_sched_prio_CFLAGS = \
$( AM_CFLAGS) \
$( SECCOMP_CFLAGS)
2012-11-01 21:48:11 +04:00
test_sched_prio_LDADD = \
2015-06-13 21:35:37 +03:00
libcore.la
2012-11-01 21:48:11 +04:00
2014-06-20 06:07:05 +04:00
test_conf_files_SOURCES = \
src/test/test-conf-files.c
test_conf_files_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-06-20 06:07:05 +04:00
2015-05-23 19:32:57 +03:00
test_conf_parser_SOURCES = \
src/test/test-conf-parser.c
test_conf_parser_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-05-23 19:32:57 +03:00
2015-07-30 22:07:25 +03:00
test_af_list_SOURCES = \
src/test/test-af-list.c
test_af_list_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-07-30 22:07:25 +03:00
test_arphrd_list_SOURCES = \
src/test/test-arphrd-list.c
test_arphrd_list_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-07-30 22:07:25 +03:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2013-03-28 17:54:06 +04:00
## .PHONY so it always rebuilds it
2014-01-26 20:36:04 +04:00
.PHONY : coverage lcov -run lcov -report coverage -sync
2013-03-28 17:54:06 +04:00
# run lcov from scratch, always
2014-06-23 23:28:23 +04:00
coverage : all
2013-03-28 17:54:06 +04:00
$( MAKE) lcov-run
$( MAKE) lcov-report
coverage_dir = coverage
coverage_opts = --base-directory $( srcdir) --directory $( builddir) --rc 'geninfo_adjust_src_path=$(abspath $(srcdir))=>$(abspath $(builddir))'
i f E N A B L E _ C O V E R A G E
# reset run coverage tests
lcov-run :
@rm -rf $( coverage_dir)
lcov $( coverage_opts) --zerocounters
-$( MAKE) check
# generate report based on current coverage data
lcov-report :
$( MKDIR_P) $( coverage_dir)
lcov $( coverage_opts) --compat-libtool --capture --no-external \
| sed 's|$(abspath $(builddir))|$(abspath $(srcdir))|' > $( coverage_dir) /.lcov.info
2014-11-09 00:33:02 +03:00
lcov --remove $( coverage_dir) /.lcov.info --output-file $( coverage_dir) /.lcov-clean.info 'test-*'
genhtml -t "systemd test coverage" -o $( coverage_dir) $( coverage_dir) /.lcov-clean.info
2013-03-28 17:54:06 +04:00
@echo " Coverage report generated in $( abs_builddir) / $( coverage_dir) /index.html "
# lcov doesn't work properly with vpath builds, make sure that bad
# output is not uploaded by mistake.
coverage-sync : coverage
test " $( builddir) " = " $( srcdir) "
rsync -rlv --delete --omit-dir-times coverage/ $( www_target) /coverage
e l s e
lcov-run lcov-report :
echo "Need to reconfigure with --enable-coverage"
e n d i f
# ------------------------------------------------------------------------------
2013-10-22 15:50:23 +04:00
systemd_analyze_SOURCES = \
2014-07-22 05:11:54 +04:00
src/analyze/analyze.c \
src/analyze/analyze-verify.c \
src/analyze/analyze-verify.h
2015-05-29 14:42:35 +03:00
systemd_analyze_CFLAGS = \
2014-07-22 05:11:54 +04:00
$( AM_CFLAGS) \
2015-06-01 14:48:01 +03:00
$( SECCOMP_CFLAGS) \
$( MOUNT_CFLAGS)
2013-10-22 15:50:23 +04:00
systemd_analyze_LDADD = \
2015-06-13 21:35:37 +03:00
libcore.la
2013-10-22 15:50:23 +04:00
# ------------------------------------------------------------------------------
2011-12-31 11:36:52 +04:00
systemd_initctl_SOURCES = \
2012-04-12 19:15:18 +04:00
src/initctl/initctl.c
2011-12-31 11:36:52 +04:00
systemd_initctl_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 11:36:52 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 11:36:52 +04:00
systemd_update_utmp_SOURCES = \
2012-04-12 19:15:18 +04:00
src/update-utmp/update-utmp.c
2011-12-31 11:36:52 +04:00
systemd_update_utmp_CFLAGS = \
$( AM_CFLAGS) \
$( AUDIT_CFLAGS)
systemd_update_utmp_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2011-12-31 11:36:52 +04:00
$( AUDIT_LIBS)
update-done: add minimal tool to manage system updates for /etc and /var, if /usr has changed
In order to support offline updates to /usr, we need to be able to run
certain tasks on next boot-up to bring /etc and /var in line with the
updated /usr. Hence, let's devise a mechanism how we can detect whether
/etc or /var are not up-to-date with /usr anymore: we keep "touch
files" in /etc/.updated and /var/.updated that are mtime-compared with
/usr. This means:
Whenever the vendor OS tree in /usr is updated, and any services that
shall be executed at next boot shall be triggered, it is sufficient to
update the mtime of /usr itself. At next boot, if /etc/.updated and/or
/var/.updated is older than than /usr (or missing), we know we have to
run the update tools once. After that is completed we need to update the
mtime of these files to the one of /usr, to keep track that we made the
necessary updates, and won't repeat them on next reboot.
A subsequent commit adds a new ConditionNeedsUpdate= condition that
allows checking on boot whether /etc or /var are outdated and need
updating.
This is an early step to allow booting up with an empty /etc, with
automatic rebuilding of the necessary cache files or user databases
therein, as well as supporting later updates of /usr that then propagate
to /etc and /var again.
2014-06-13 14:43:49 +04:00
# ------------------------------------------------------------------------------
systemd_update_done_SOURCES = \
src/update-done/update-done.c
systemd_update_done_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
update-done: add minimal tool to manage system updates for /etc and /var, if /usr has changed
In order to support offline updates to /usr, we need to be able to run
certain tasks on next boot-up to bring /etc and /var in line with the
updated /usr. Hence, let's devise a mechanism how we can detect whether
/etc or /var are not up-to-date with /usr anymore: we keep "touch
files" in /etc/.updated and /var/.updated that are mtime-compared with
/usr. This means:
Whenever the vendor OS tree in /usr is updated, and any services that
shall be executed at next boot shall be triggered, it is sufficient to
update the mtime of /usr itself. At next boot, if /etc/.updated and/or
/var/.updated is older than than /usr (or missing), we know we have to
run the update tools once. After that is completed we need to update the
mtime of these files to the one of /usr, to keep track that we made the
necessary updates, and won't repeat them on next reboot.
A subsequent commit adds a new ConditionNeedsUpdate= condition that
allows checking on boot whether /etc or /var are outdated and need
updating.
This is an early step to allow booting up with an empty /etc, with
automatic rebuilding of the necessary cache files or user databases
therein, as well as supporting later updates of /usr that then propagate
to /etc and /var again.
2014-06-13 14:43:49 +04:00
2012-04-11 04:04:46 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_shutdown_SOURCES = \
2012-04-12 16:18:36 +04:00
src/core/umount.c \
src/core/umount.h \
2012-04-12 20:16:14 +04:00
src/core/shutdown.c \
src/core/mount-setup.c \
2012-07-13 16:41:57 +04:00
src/core/mount-setup.h \
src/core/killall.h \
src/core/killall.c
2011-12-31 11:53:06 +04:00
2011-12-31 12:17:48 +04:00
systemd_shutdown_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 11:53:06 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2013-01-30 20:50:55 +04:00
i f H A V E _ K M O D
2011-12-31 12:17:48 +04:00
systemd_modules_load_SOURCES = \
2012-04-12 19:15:18 +04:00
src/modules-load/modules-load.c
2011-12-31 11:53:06 +04:00
2012-02-09 00:52:19 +04:00
systemd_modules_load_CFLAGS = \
2012-04-10 18:02:09 +04:00
$( AM_CFLAGS) \
2012-02-09 00:52:19 +04:00
$( KMOD_CFLAGS)
2011-12-31 12:17:48 +04:00
systemd_modules_load_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2012-02-09 00:52:19 +04:00
$( KMOD_LIBS)
2013-01-30 20:50:55 +04:00
rootlibexec_PROGRAMS += \
systemd-modules-load
nodist_systemunit_DATA += \
units/systemd-modules-load.service
2013-03-18 18:12:18 +04:00
2013-01-30 20:50:55 +04:00
SYSINIT_TARGET_WANTS += \
systemd-modules-load.service
2013-06-15 00:56:39 +04:00
i f E N A B L E _ T M P F I L E S
nodist_systemunit_DATA += \
units/kmod-static-nodes.service
SYSINIT_TARGET_WANTS += \
kmod-static-nodes.service
e n d i f
2012-11-20 04:24:32 +04:00
e n d i f
2011-12-31 11:53:06 +04:00
2013-01-30 20:50:55 +04:00
EXTRA_DIST += \
2014-05-22 04:06:17 +04:00
units/systemd-modules-load.service.in \
units/kmod-static-nodes.service.in
2013-01-30 20:50:55 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2013-06-02 12:54:44 +04:00
i f E N A B L E _ T M P F I L E S
2011-12-31 12:17:48 +04:00
systemd_tmpfiles_SOURCES = \
2013-12-12 20:42:45 +04:00
src/tmpfiles/tmpfiles.c
2011-12-31 11:53:06 +04:00
2016-06-25 05:14:25 +03:00
systemd_tmpfiles_CFLAGS = \
$( AM_CFLAGS) \
$( ACL_CFLAGS)
2011-12-31 12:17:48 +04:00
systemd_tmpfiles_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
$( ACL_LIBS)
2015-01-18 07:27:39 +03:00
2013-06-03 17:54:58 +04:00
rootbin_PROGRAMS += \
systemd-tmpfiles
dist_systemunit_DATA += \
units/systemd-tmpfiles-clean.timer
nodist_systemunit_DATA += \
units/systemd-tmpfiles-setup-dev.service \
units/systemd-tmpfiles-setup.service \
units/systemd-tmpfiles-clean.service
2014-08-27 19:45:41 +04:00
nodist_tmpfiles_DATA = \
2015-03-03 08:21:10 +03:00
tmpfiles.d/systemd.conf \
2014-08-27 19:45:41 +04:00
tmpfiles.d/etc.conf
2013-06-03 17:54:58 +04:00
dist_tmpfiles_DATA = \
2013-12-21 05:25:39 +04:00
tmpfiles.d/systemd-nologin.conf \
2013-06-03 17:54:58 +04:00
tmpfiles.d/tmp.conf \
2014-06-11 02:12:21 +04:00
tmpfiles.d/x11.conf \
2015-04-21 18:28:16 +03:00
tmpfiles.d/var.conf \
2015-06-15 20:24:43 +03:00
tmpfiles.d/home.conf \
2015-06-23 01:13:16 +03:00
tmpfiles.d/systemd-nspawn.conf \
tmpfiles.d/journal-nocow.conf
2013-06-03 17:54:58 +04:00
i f H A V E _ S Y S V _ C O M P A T
dist_tmpfiles_DATA += \
tmpfiles.d/legacy.conf
2013-06-02 12:54:44 +04:00
e n d i f
2011-12-31 11:53:06 +04:00
2013-06-03 17:54:58 +04:00
SYSINIT_TARGET_WANTS += \
systemd-tmpfiles-setup-dev.service \
systemd-tmpfiles-setup.service
2016-02-03 00:10:36 +03:00
dist_zshcompletion_data += \
2013-07-31 04:05:31 +04:00
shell-completion/zsh/_systemd-tmpfiles
2013-06-03 17:54:58 +04:00
TIMERS_TARGET_WANTS += \
systemd-tmpfiles-clean.timer
INSTALL_DIRS += \
$( tmpfilesdir) \
$( sysconfdir) /tmpfiles.d
e n d i f
EXTRA_DIST += \
2015-03-03 08:21:10 +03:00
tmpfiles.d/systemd.conf.m4 \
2014-08-27 19:45:41 +04:00
tmpfiles.d/etc.conf.m4 \
2013-06-03 17:54:58 +04:00
units/systemd-tmpfiles-setup-dev.service.in \
units/systemd-tmpfiles-setup.service.in \
units/systemd-tmpfiles-clean.service.in
sysusers: add minimal tool to reconstruct /etc/passwd and /etc/group from static files
systemd-sysusers is a tool to reconstruct /etc/passwd and /etc/group
from static definition files that take a lot of inspiration from
tmpfiles snippets. These snippets should carry information about system
users only. To make sure it is not misused for normal users these
snippets only allow configuring UID and gecos field for each user, but
do not allow configuration of the home directory or shell, which is
necessary for real login users.
The purpose of this tool is to enable state-less systems that can
populate /etc with the minimal files necessary, solely from static data
in /usr. systemd-sysuser is additive only, and will never override
existing users.
This tool will create these files directly, and not via some user
database abtsraction layer. This is appropriate as this tool is supposed
to run really early at boot, and is only useful for creating system
users, and system users cannot be stored in remote databases anyway.
The tool is also useful to be invoked from RPM scriptlets, instead of
useradd. This allows moving from imperative user descriptions in RPM to
declarative descriptions.
The UID/GID for a user/group to be created can either be chosen dynamic,
or fixed, or be read from the owner of a file in the file system, in
order to support reconstructing the correct IDs for files that shall be
owned by them.
This also adds a minimal user definition file, that should be
sufficient for most basic systems. Distributions are expected to patch
these files and augment the contents, for example with fixed UIDs for
the users where that's necessary.
2014-06-13 00:54:02 +04:00
# ------------------------------------------------------------------------------
i f E N A B L E _ S Y S U S E R S
systemd_sysusers_SOURCES = \
src/sysusers/sysusers.c
systemd_sysusers_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
sysusers: add minimal tool to reconstruct /etc/passwd and /etc/group from static files
systemd-sysusers is a tool to reconstruct /etc/passwd and /etc/group
from static definition files that take a lot of inspiration from
tmpfiles snippets. These snippets should carry information about system
users only. To make sure it is not misused for normal users these
snippets only allow configuring UID and gecos field for each user, but
do not allow configuration of the home directory or shell, which is
necessary for real login users.
The purpose of this tool is to enable state-less systems that can
populate /etc with the minimal files necessary, solely from static data
in /usr. systemd-sysuser is additive only, and will never override
existing users.
This tool will create these files directly, and not via some user
database abtsraction layer. This is appropriate as this tool is supposed
to run really early at boot, and is only useful for creating system
users, and system users cannot be stored in remote databases anyway.
The tool is also useful to be invoked from RPM scriptlets, instead of
useradd. This allows moving from imperative user descriptions in RPM to
declarative descriptions.
The UID/GID for a user/group to be created can either be chosen dynamic,
or fixed, or be read from the owner of a file in the file system, in
order to support reconstructing the correct IDs for files that shall be
owned by them.
This also adds a minimal user definition file, that should be
sufficient for most basic systems. Distributions are expected to patch
these files and augment the contents, for example with fixed UIDs for
the users where that's necessary.
2014-06-13 00:54:02 +04:00
2014-06-13 21:18:55 +04:00
rootbin_PROGRAMS += \
sysusers: add minimal tool to reconstruct /etc/passwd and /etc/group from static files
systemd-sysusers is a tool to reconstruct /etc/passwd and /etc/group
from static definition files that take a lot of inspiration from
tmpfiles snippets. These snippets should carry information about system
users only. To make sure it is not misused for normal users these
snippets only allow configuring UID and gecos field for each user, but
do not allow configuration of the home directory or shell, which is
necessary for real login users.
The purpose of this tool is to enable state-less systems that can
populate /etc with the minimal files necessary, solely from static data
in /usr. systemd-sysuser is additive only, and will never override
existing users.
This tool will create these files directly, and not via some user
database abtsraction layer. This is appropriate as this tool is supposed
to run really early at boot, and is only useful for creating system
users, and system users cannot be stored in remote databases anyway.
The tool is also useful to be invoked from RPM scriptlets, instead of
useradd. This allows moving from imperative user descriptions in RPM to
declarative descriptions.
The UID/GID for a user/group to be created can either be chosen dynamic,
or fixed, or be read from the owner of a file in the file system, in
order to support reconstructing the correct IDs for files that shall be
owned by them.
This also adds a minimal user definition file, that should be
sufficient for most basic systems. Distributions are expected to patch
these files and augment the contents, for example with fixed UIDs for
the users where that's necessary.
2014-06-13 00:54:02 +04:00
systemd-sysusers
2014-06-13 15:10:30 +04:00
nodist_systemunit_DATA += \
units/systemd-sysusers.service
SYSINIT_TARGET_WANTS += \
systemd-sysusers.service
2014-06-30 00:26:19 +04:00
nodist_sysusers_DATA = \
2015-03-03 08:21:10 +03:00
sysusers.d/systemd.conf \
2014-06-30 00:26:19 +04:00
sysusers.d/basic.conf
2015-12-09 04:32:22 +03:00
i f H A V E _ R E M O T E
nodist_sysusers_DATA += \
sysusers.d/systemd-remote.conf
e n d i f
2015-05-28 13:03:17 +03:00
INSTALL_DIRS += \
$( sysusersdir)
e n d i f
2014-06-13 01:22:27 +04:00
EXTRA_DIST += \
2014-06-13 15:10:30 +04:00
units/systemd-sysusers.service.in \
2015-03-03 08:21:10 +03:00
sysusers.d/systemd.conf.m4 \
2015-12-09 04:32:22 +03:00
sysusers.d/systemd-remote.conf.m4 \
2014-06-30 00:26:19 +04:00
sysusers.d/basic.conf.in
2014-06-13 01:22:27 +04:00
2014-07-29 18:44:04 +04:00
# ------------------------------------------------------------------------------
dist_factory_etc_DATA = \
factory/etc/nsswitch.conf
2014-09-26 01:12:03 +04:00
i f H A V E _ P A M
2014-07-29 18:44:04 +04:00
dist_factory_pam_DATA = \
factory/etc/pam.d/system-auth \
factory/etc/pam.d/other
2014-09-26 01:12:03 +04:00
e n d i f
2014-07-29 18:44:04 +04:00
2014-07-07 17:05:37 +04:00
# ------------------------------------------------------------------------------
i f E N A B L E _ F I R S T B O O T
systemd_firstboot_SOURCES = \
src/firstboot/firstboot.c
systemd_firstboot_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2014-07-07 17:05:37 +04:00
-lcrypt
rootbin_PROGRAMS += \
systemd-firstboot
nodist_systemunit_DATA += \
units/systemd-firstboot.service
2014-07-07 21:25:31 +04:00
SYSINIT_TARGET_WANTS += \
systemd-firstboot.service
2014-07-07 17:05:37 +04:00
e n d i f
2015-05-28 13:03:17 +03:00
EXTRA_DIST += \
units/systemd-firstboot.service.in
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_machine_id_setup_SOURCES = \
2012-04-12 19:53:19 +04:00
src/machine-id-setup/machine-id-setup-main.c \
2012-04-12 20:16:14 +04:00
src/core/machine-id-setup.c \
src/core/machine-id-setup.h
2011-12-31 11:53:06 +04:00
2011-12-31 12:17:48 +04:00
systemd_machine_id_setup_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 11:53:06 +04:00
2015-09-23 20:36:21 +03:00
SYSINIT_TARGET_WANTS += \
systemd-machine-id-commit.service
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_sysctl_SOURCES = \
2012-04-12 19:15:18 +04:00
src/sysctl/sysctl.c
2011-12-31 11:53:06 +04:00
2011-12-31 12:17:48 +04:00
systemd_sysctl_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 11:53:06 +04:00
2012-05-05 04:06:58 +04:00
# ------------------------------------------------------------------------------
systemd_sleep_SOURCES = \
src/sleep/sleep.c
systemd_sleep_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-05-05 04:06:58 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_fsck_SOURCES = \
2012-04-12 19:15:18 +04:00
src/fsck/fsck.c
2011-10-07 23:06:39 +04:00
2011-12-31 12:17:48 +04:00
systemd_fsck_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-21 05:40:59 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_ac_power_SOURCES = \
2012-04-12 19:15:18 +04:00
src/ac-power/ac-power.c
2010-04-05 00:53:42 +04:00
2011-12-31 12:17:48 +04:00
systemd_ac_power_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2010-04-05 00:53:42 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_detect_virt_SOURCES = \
2012-04-12 19:15:18 +04:00
src/detect-virt/detect-virt.c
2010-08-11 03:43:23 +04:00
2011-12-31 12:17:48 +04:00
systemd_detect_virt_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 11:36:52 +04:00
2012-10-10 00:25:32 +04:00
INSTALL_EXEC_HOOKS += \
systemd-detect-virt-install-hook
2012-05-16 05:23:28 +04:00
# ------------------------------------------------------------------------------
systemd_delta_SOURCES = \
src/delta/delta.c
systemd_delta_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-05-16 05:23:28 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_getty_generator_SOURCES = \
2012-04-12 19:15:18 +04:00
src/getty-generator/getty-generator.c
2010-08-16 17:37:52 +04:00
2011-12-31 12:17:48 +04:00
systemd_getty_generator_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 11:36:52 +04:00
2014-06-19 18:10:55 +04:00
# ------------------------------------------------------------------------------
systemd_debug_generator_SOURCES = \
src/debug-generator/debug-generator.c
systemd_debug_generator_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-06-19 18:10:55 +04:00
2012-05-22 21:23:33 +04:00
# ------------------------------------------------------------------------------
systemd_fstab_generator_SOURCES = \
src/fstab-generator/fstab-generator.c \
src/core/mount-setup.c
systemd_fstab_generator_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-05-22 21:23:33 +04:00
2012-05-22 21:48:51 +04:00
# ------------------------------------------------------------------------------
systemd_system_update_generator_SOURCES = \
src/system-update-generator/system-update-generator.c
systemd_system_update_generator_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-05-22 21:48:51 +04:00
2014-08-27 00:17:45 +04:00
# ------------------------------------------------------------------------------
2014-09-02 14:31:49 +04:00
i f E N A B L E _ H I B E R N A T E
systemgenerator_PROGRAMS += \
2014-09-09 01:40:51 +04:00
systemd-hibernate-resume-generator
2014-09-02 14:31:49 +04:00
rootlibexec_PROGRAMS += \
2014-09-09 01:40:51 +04:00
systemd-hibernate-resume
2014-09-02 14:31:49 +04:00
systemd_hibernate_resume_SOURCES = \
2014-09-09 01:40:51 +04:00
src/hibernate-resume/hibernate-resume.c
2014-09-02 14:31:49 +04:00
systemd_hibernate_resume_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-09-02 14:31:49 +04:00
2014-08-27 00:17:45 +04:00
systemd_hibernate_resume_generator_SOURCES = \
2014-09-04 23:40:00 +04:00
src/hibernate-resume/hibernate-resume-generator.c
2014-08-27 00:17:45 +04:00
systemd_hibernate_resume_generator_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-08-27 00:17:45 +04:00
2014-09-02 14:31:49 +04:00
dist_systemunit_DATA += \
2014-09-09 01:40:51 +04:00
units/hibernate.target \
units/hybrid-sleep.target
2014-09-02 14:31:49 +04:00
nodist_systemunit_DATA += \
2014-09-09 01:40:51 +04:00
units/systemd-hibernate.service \
units/systemd-hibernate-resume@.service \
units/systemd-hybrid-sleep.service
2014-09-02 14:31:49 +04:00
e n d i f
2015-05-28 13:03:17 +03:00
EXTRA_DIST += \
units/systemd-hibernate.service.in \
units/systemd-hibernate-resume@.service.in \
units/systemd-hybrid-sleep.service.in
2013-06-03 17:54:58 +04:00
# ------------------------------------------------------------------------------
2014-09-02 14:31:49 +04:00
i f E N A B L E _ E F I
2015-02-22 12:28:34 +03:00
i f H A V E _ B L K I D
2013-06-03 17:54:58 +04:00
bootctl_SOURCES = \
2015-02-08 19:18:30 +03:00
src/boot/bootctl.c
bootctl_CPPFLAGS = \
$( AM_CPPFLAGS) \
-DEFI_MACHINE_TYPE_NAME= \" $( EFI_MACHINE_TYPE_NAME) \" \
2015-02-17 22:12:50 +03:00
-DBOOTLIBDIR= \" $( bootlibdir) \"
2015-02-08 19:18:30 +03:00
bootctl_CFLAGS = \
$( AM_CFLAGS) \
$( BLKID_CFLAGS)
2013-06-03 17:54:58 +04:00
bootctl_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2015-02-08 19:18:30 +03:00
$( BLKID_LIBS)
2013-06-03 17:54:58 +04:00
bin_PROGRAMS += \
bootctl
2013-11-14 08:02:23 +04:00
2016-02-03 00:10:36 +03:00
dist_bashcompletion_data += \
2014-02-21 02:12:02 +04:00
shell-completion/bash/bootctl
2016-02-03 00:10:36 +03:00
dist_zshcompletion_data += \
2013-11-14 08:02:23 +04:00
shell-completion/zsh/_bootctl
2015-02-22 12:28:34 +03:00
e n d i f
2013-11-14 08:02:23 +04:00
2015-02-08 14:25:35 +03:00
# ------------------------------------------------------------------------------
2015-02-17 20:01:10 +03:00
i f H A V E _ G N U E F I
2015-02-08 14:25:35 +03:00
efi_cppflags = \
$( EFI_CPPFLAGS) \
-I$( top_builddir) -include config.h \
-I$( EFI_INC_DIR) /efi \
-I$( EFI_INC_DIR) /efi/$( EFI_ARCH) \
-DEFI_MACHINE_TYPE_NAME= \" $( EFI_MACHINE_TYPE_NAME) \"
efi_cflags = \
$( EFI_CFLAGS) \
-Wall \
-Wextra \
2015-02-26 03:55:32 +03:00
-std= gnu90 \
2015-02-08 14:25:35 +03:00
-nostdinc \
-ggdb -O0 \
-fpic \
-fshort-wchar \
-nostdinc \
-ffreestanding \
-fno-strict-aliasing \
-fno-stack-protector \
-Wsign-compare \
2015-04-11 11:23:22 +03:00
-Wno-missing-field-initializers
2015-02-08 14:25:35 +03:00
i f A R C H _ X 8 6 _ 6 4
efi_cflags += \
-mno-red-zone \
2015-04-11 11:23:22 +03:00
-mno-sse \
-mno-mmx \
2015-02-08 14:25:35 +03:00
-DEFI_FUNCTION_WRAPPER \
2015-02-26 03:55:32 +03:00
-DGNU_EFI_USE_MS_ABI
2015-02-08 14:25:35 +03:00
e n d i f
2015-04-11 11:23:22 +03:00
i f A R C H _ I A 3 2
efi_cflags += \
-mno-sse \
-mno-mmx
e n d i f
2015-02-08 14:25:35 +03:00
efi_ldflags = \
$( EFI_LDFLAGS) \
-T $( EFI_LDS_DIR) /elf_$( EFI_ARCH) _efi.lds \
-shared \
-Bsymbolic \
-nostdlib \
-znocombreloc \
-L $( EFI_LIB_DIR) \
$( EFI_LDS_DIR) /crt0-efi-$( EFI_ARCH) .o
2015-04-11 11:23:26 +03:00
# Aarch64 and ARM32 don't have an EFI capable objcopy. Use 'binary' instead,
# and add required symbols manually.
i f A R C H _ A A R C H 6 4
efi_ldflags += --defsym= EFI_SUBSYSTEM = 0xa
EFI_FORMAT = -O binary
e l s e
EFI_FORMAT = --target= efi-app-$( EFI_ARCH)
e n d i f
2015-05-25 12:18:17 +03:00
e n d i f
e n d i f
2015-04-11 11:23:26 +03:00
2015-02-08 14:25:35 +03:00
# ------------------------------------------------------------------------------
2015-02-17 22:12:50 +03:00
systemd_boot_headers = \
src/boot/efi/util.h \
src/boot/efi/console.h \
src/boot/efi/graphics.h \
2015-07-29 20:26:49 +03:00
src/boot/efi/pefile.h \
2016-02-03 19:39:24 +03:00
src/boot/efi/measure.h \
2015-07-29 20:26:49 +03:00
src/boot/efi/disk.h
2015-02-17 22:12:50 +03:00
systemd_boot_sources = \
src/boot/efi/util.c \
src/boot/efi/console.c \
src/boot/efi/graphics.c \
src/boot/efi/pefile.c \
2015-07-29 20:26:49 +03:00
src/boot/efi/disk.c \
2016-02-03 19:39:24 +03:00
src/boot/efi/measure.c \
2015-02-17 22:12:50 +03:00
src/boot/efi/boot.c
2015-05-25 12:18:17 +03:00
EXTRA_DIST += $( systemd_boot_sources) $( systemd_boot_headers)
2015-02-17 22:12:50 +03:00
systemd_boot_objects = $( addprefix $( top_builddir) /,$( systemd_boot_sources:.c= .o) )
systemd_boot_solib = $( top_builddir) /src/boot/efi/systemd_boot.so
systemd_boot = systemd-boot$( EFI_MACHINE_TYPE_NAME) .efi
2016-02-02 22:24:58 +03:00
i f E N A B L E _ E F I
i f H A V E _ G N U E F I
2015-02-17 22:12:50 +03:00
bootlib_DATA = $( systemd_boot)
$(top_builddir)/src/boot/efi/%.o : $( top_srcdir ) /src /boot /efi /%.c $( addprefix $ ( top_srcdir ) /,$ ( systemd_boot_headers ) )
@$( MKDIR_P) $( top_builddir) /src/boot/efi/
2015-02-08 14:25:35 +03:00
$( AM_V_CC) $( EFI_CC) $( efi_cppflags) $( efi_cflags) -c $< -o $@
2015-02-17 22:12:50 +03:00
$(systemd_boot_solib) : $( systemd_boot_objects )
$( AM_V_CCLD) $( LD) $( efi_ldflags) $( systemd_boot_objects) \
2015-02-08 14:25:35 +03:00
-o $@ -lefi -lgnuefi $( shell $( CC) -print-libgcc-file-name) ; \
nm -D -u $@ | grep ' U ' && exit 1 || :
2015-02-17 22:12:50 +03:00
$(systemd_boot) : $( systemd_boot_solib )
2015-04-08 23:33:54 +03:00
$( AM_V_GEN) $( OBJCOPY) -j .text -j .sdata -j .data -j .dynamic \
2015-04-11 11:23:26 +03:00
-j .dynsym -j .rel -j .rela -j .reloc $( EFI_FORMAT) $< $@
2015-05-25 12:18:17 +03:00
e n d i f
e n d i f
2015-02-08 14:25:35 +03:00
2016-02-02 22:24:58 +03:00
CLEANFILES += $( systemd_boot_objects) $( systemd_boot_solib) $( systemd_boot)
2015-02-08 14:25:35 +03:00
# ------------------------------------------------------------------------------
stub_headers = \
2015-02-17 22:12:50 +03:00
src/boot/efi/util.h \
src/boot/efi/pefile.h \
2015-07-29 20:26:49 +03:00
src/boot/efi/disk.h \
2015-02-26 20:33:37 +03:00
src/boot/efi/graphics.h \
2015-02-26 21:45:08 +03:00
src/boot/efi/splash.h \
2016-02-03 19:39:24 +03:00
src/boot/efi/measure.h \
2015-02-17 22:12:50 +03:00
src/boot/efi/linux.h
2015-02-08 14:25:35 +03:00
stub_sources = \
2015-02-17 22:12:50 +03:00
src/boot/efi/util.c \
src/boot/efi/pefile.c \
2015-07-29 20:26:49 +03:00
src/boot/efi/disk.c \
2015-02-26 20:33:37 +03:00
src/boot/efi/graphics.c \
2015-02-26 21:45:08 +03:00
src/boot/efi/splash.c \
2015-02-17 22:12:50 +03:00
src/boot/efi/linux.c \
2016-02-03 19:39:24 +03:00
src/boot/efi/measure.c \
2015-02-17 22:12:50 +03:00
src/boot/efi/stub.c
2015-02-08 14:25:35 +03:00
2015-06-23 01:13:16 +03:00
EXTRA_DIST += \
$( stub_sources) \
$( stub_headers) \
test/splash.bmp
2015-05-25 12:18:17 +03:00
2015-02-08 14:25:35 +03:00
stub_objects = $( addprefix $( top_builddir) /,$( stub_sources:.c= .o) )
2015-02-17 22:12:50 +03:00
stub_solib = $( top_builddir) /src/boot/efi/stub.so
2015-02-08 14:25:35 +03:00
stub = linux$( EFI_MACHINE_TYPE_NAME) .efi.stub
2016-02-02 22:24:58 +03:00
i f E N A B L E _ E F I
i f H A V E _ G N U E F I
2015-02-17 22:12:50 +03:00
bootlib_DATA += $( stub)
2015-02-08 14:25:35 +03:00
2015-02-17 22:12:50 +03:00
$(top_builddir)/src/boot/efi/%.o : $( top_srcdir ) /src /boot /efi /%.c $( addprefix $ ( top_srcdir ) /,$ ( stub_headers ) )
@$( MKDIR_P) $( top_builddir) /src/boot/efi/
2015-02-08 14:25:35 +03:00
$( AM_V_CC) $( EFI_CC) $( efi_cppflags) $( efi_cflags) -c $< -o $@
$(stub_solib) : $( stub_objects )
$( AM_V_CCLD) $( LD) $( efi_ldflags) $( stub_objects) \
-o $@ -lefi -lgnuefi $( shell $( CC) -print-libgcc-file-name) ; \
nm -D -u $@ | grep ' U ' && exit 1 || :
$(stub) : $( stub_solib )
2015-04-08 23:33:54 +03:00
$( AM_V_GEN) $( OBJCOPY) -j .text -j .sdata -j .data -j .dynamic \
2015-04-11 11:23:26 +03:00
-j .dynsym -j .rel -j .rela -j .reloc $( EFI_FORMAT) $< $@
2016-02-02 22:24:58 +03:00
e n d i f
e n d i f
CLEANFILES += $( stub_objects) $( stub_solib) $( stub)
2015-02-08 14:25:35 +03:00
# ------------------------------------------------------------------------------
CLEANFILES += test-efi-disk.img
2015-02-17 22:12:50 +03:00
test-efi-disk.img : $( systemd_boot ) $( stub ) test /test -efi -create -disk .sh
2015-02-08 14:25:35 +03:00
$( AM_V_GEN) test/test-efi-create-disk.sh
test-efi : test -efi -disk .img
$( QEMU) -machine accel = kvm -m 1024 -bios $( QEMU_BIOS) -snapshot test-efi-disk.img
2013-01-21 04:02:53 +04:00
2015-05-28 13:03:17 +03:00
EXTRA_DIST += test/test-efi-create-disk.sh
2013-08-13 12:13:45 +04:00
# ------------------------------------------------------------------------------
2013-09-07 20:25:07 +04:00
i f H A V E _ B L K I D
2013-08-13 12:13:45 +04:00
systemgenerator_PROGRAMS += \
systemd-gpt-auto-generator
systemd_gpt_auto_generator_SOURCES = \
2014-03-10 23:35:52 +04:00
src/gpt-auto-generator/gpt-auto-generator.c \
2015-06-09 15:27:33 +03:00
src/basic/blkid-util.h
2013-08-13 12:13:45 +04:00
systemd_gpt_auto_generator_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2013-08-13 12:13:45 +04:00
$( BLKID_LIBS)
systemd_gpt_auto_generator_CFLAGS = \
$( AM_CFLAGS) \
$( BLKID_CFLAGS)
2013-09-07 20:25:07 +04:00
e n d i f
2013-08-13 12:13:45 +04:00
2013-12-03 04:13:03 +04:00
# ------------------------------------------------------------------------------
2015-01-09 23:23:48 +03:00
dist_xinitrc_SCRIPTS = \
xorg/50-systemd-user.sh
2014-05-23 02:37:39 +04:00
# ------------------------------------------------------------------------------
systemd_sysv_generator_SOURCES = \
src/sysv-generator/sysv-generator.c
systemd_sysv_generator_LDADD = \
2015-06-09 15:27:33 +03:00
libcore.la
2014-05-23 02:37:39 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_rc_local_generator_SOURCES = \
2012-04-12 19:15:18 +04:00
src/rc-local-generator/rc-local-generator.c
2011-12-31 11:36:52 +04:00
2011-12-31 12:17:48 +04:00
systemd_rc_local_generator_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 11:36:52 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2012-04-24 18:42:42 +04:00
systemd_remount_fs_SOURCES = \
src/remount-fs/remount-fs.c \
2012-04-12 20:16:14 +04:00
src/core/mount-setup.c \
src/core/mount-setup.h
2011-12-31 10:40:31 +04:00
2012-04-24 18:42:42 +04:00
systemd_remount_fs_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 10:40:31 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_cgroups_agent_SOURCES = \
2012-04-12 19:15:18 +04:00
src/cgroups-agent/cgroups-agent.c
2011-04-16 04:02:54 +04:00
2011-12-31 12:17:48 +04:00
systemd_cgroups_agent_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-04-16 04:02:54 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2014-06-04 03:57:11 +04:00
systemd_escape_SOURCES = \
src/escape/escape.c
systemd_escape_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-06-04 03:57:11 +04:00
# -----------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemctl_SOURCES = \
2012-04-12 19:15:18 +04:00
src/systemctl/systemctl.c
2011-06-15 17:37:39 +04:00
2011-12-31 12:17:48 +04:00
systemctl_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-06-15 17:37:39 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_notify_SOURCES = \
2014-08-26 23:17:22 +04:00
src/notify/notify.c
2011-12-31 09:50:34 +04:00
2011-12-31 12:17:48 +04:00
systemd_notify_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 10:21:37 +04:00
2014-07-02 14:23:36 +04:00
# ------------------------------------------------------------------------------
systemd_path_SOURCES = \
src/path/path.c
systemd_path_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-07-02 14:23:36 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_ask_password_SOURCES = \
2012-04-12 19:15:18 +04:00
src/ask-password/ask-password.c
2011-12-31 10:21:37 +04:00
2011-12-31 12:17:48 +04:00
systemd_ask_password_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 10:21:37 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_reply_password_SOURCES = \
2012-04-12 19:15:18 +04:00
src/reply-password/reply-password.c
2011-12-31 10:21:37 +04:00
2011-12-31 12:17:48 +04:00
systemd_reply_password_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 09:50:34 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_cgls_SOURCES = \
2012-04-12 19:15:18 +04:00
src/cgls/cgls.c
2011-12-31 09:20:34 +04:00
2011-12-31 12:17:48 +04:00
systemd_cgls_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 09:20:34 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2012-01-22 21:21:15 +04:00
systemd_cgtop_SOURCES = \
2012-04-12 19:15:18 +04:00
src/cgtop/cgtop.c
2012-01-22 21:21:15 +04:00
systemd_cgtop_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-01-22 21:21:15 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_nspawn_SOURCES = \
2012-04-12 20:16:14 +04:00
src/nspawn/nspawn.c \
2015-09-06 02:22:14 +03:00
src/nspawn/nspawn-settings.c \
src/nspawn/nspawn-settings.h \
2015-09-07 16:59:52 +03:00
src/nspawn/nspawn-mount.c \
src/nspawn/nspawn-mount.h \
2015-09-07 18:43:45 +03:00
src/nspawn/nspawn-network.c \
src/nspawn/nspawn-network.h \
2015-09-07 17:52:24 +03:00
src/nspawn/nspawn-expose-ports.c \
src/nspawn/nspawn-expose-ports.h \
2015-09-07 19:25:04 +03:00
src/nspawn/nspawn-cgroup.c \
src/nspawn/nspawn-cgroup.h \
2016-05-26 23:42:29 +03:00
src/nspawn/nspawn-seccomp.c \
src/nspawn/nspawn-seccomp.h \
2015-09-07 19:36:05 +03:00
src/nspawn/nspawn-register.c \
src/nspawn/nspawn-register.h \
2015-09-07 19:42:14 +03:00
src/nspawn/nspawn-setuid.c \
src/nspawn/nspawn-setuid.h \
2016-02-03 22:32:06 +03:00
src/nspawn/nspawn-stub-pid1.c \
src/nspawn/nspawn-stub-pid1.h \
2016-04-20 23:53:39 +03:00
src/nspawn/nspawn-patch-uid.c \
src/nspawn/nspawn-patch-uid.h \
2012-04-12 20:16:14 +04:00
src/core/mount-setup.c \
src/core/mount-setup.h \
src/core/loopback-setup.c \
2016-07-21 19:53:40 +03:00
src/core/loopback-setup.h
2011-12-31 09:20:34 +04:00
2015-09-06 02:22:14 +03:00
nodist_systemd_nspawn_SOURCES = \
src/nspawn/nspawn-gperf.c
gperf_gperf_sources += \
src/nspawn/nspawn-gperf.gperf
2014-02-19 01:14:00 +04:00
systemd_nspawn_CFLAGS = \
$( AM_CFLAGS) \
2016-06-25 05:14:25 +03:00
$( ACL_CFLAGS) \
2015-06-15 19:36:51 +03:00
$( BLKID_CFLAGS) \
2016-06-25 05:14:25 +03:00
$( SECCOMP_CFLAGS) \
$( SELINUX_CFLAGS)
2014-02-19 01:14:00 +04:00
2011-12-31 12:17:48 +04:00
systemd_nspawn_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
$( ACL_LIBS) \
$( BLKID_LIBS) \
$( SECCOMP_LIBS) \
$( SELINUX_LIBS)
2014-02-20 19:07:08 +04:00
2015-01-13 15:51:51 +03:00
i f H A V E _ L I B I P T C
systemd_nspawn_LDADD += \
2015-06-09 15:27:33 +03:00
libfirewall.la
2015-01-13 15:51:51 +03:00
e n d i f
2016-04-20 23:53:39 +03:00
test_patch_uid_SOURCES = \
src/nspawn/nspawn-patch-uid.c \
src/nspawn/nspawn-patch-uid.h \
src/nspawn/test-patch-uid.c
2016-06-25 05:14:25 +03:00
test_patch_uid_CFLAGS = \
$( AM_CFLAGS) \
$( ACL_CFLAGS)
2016-04-20 23:53:39 +03:00
test_patch_uid_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
$( ACL_LIBS)
2016-04-20 23:53:39 +03:00
manual_tests += \
test-patch-uid
2013-06-28 06:12:58 +04:00
# ------------------------------------------------------------------------------
systemd_run_SOURCES = \
src/run/run.c
systemd_run_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-06-28 06:12:58 +04:00
2016-08-06 01:32:46 +03:00
# ------------------------------------------------------------------------------
systemd_mount_SOURCES = \
src/mount/mount-tool.c
systemd_mount_LDADD = \
libsystemd-shared.la
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2015-01-16 16:45:34 +03:00
systemd_stdio_bridge_SOURCES = \
2016-02-12 17:25:27 +03:00
src/stdio-bridge/stdio-bridge.c
2013-11-30 00:54:44 +04:00
2015-01-16 16:45:34 +03:00
systemd_stdio_bridge_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-12-13 23:29:35 +04:00
2012-04-10 15:39:02 +04:00
# ------------------------------------------------------------------------------
2011-12-31 12:17:48 +04:00
systemd_tty_ask_password_agent_SOURCES = \
2012-04-12 19:15:18 +04:00
src/tty-ask-password-agent/tty-ask-password-agent.c
2011-12-31 09:02:42 +04:00
2011-12-31 12:17:48 +04:00
systemd_tty_ask_password_agent_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 12:17:48 +04:00
2013-03-19 23:03:16 +04:00
# ------------------------------------------------------------------------------
2014-02-19 19:33:09 +04:00
libsystemd_internal_la_SOURCES = \
2013-03-31 20:15:59 +04:00
src/systemd/sd-bus.h \
src/systemd/sd-bus-protocol.h \
2013-10-09 05:39:57 +04:00
src/systemd/sd-bus-vtable.h \
2013-11-07 06:07:37 +04:00
src/systemd/sd-utf8.h \
2013-11-07 06:20:40 +04:00
src/systemd/sd-event.h \
2015-06-12 17:31:33 +03:00
src/systemd/sd-netlink.h \
2014-01-14 21:18:43 +04:00
src/systemd/sd-resolve.h \
2014-01-19 09:12:20 +04:00
src/systemd/sd-login.h \
2014-01-26 01:05:08 +04:00
src/systemd/sd-id128.h \
2014-02-18 21:50:11 +04:00
src/systemd/sd-daemon.h \
2014-07-02 14:23:36 +04:00
src/systemd/sd-path.h \
2014-08-12 04:12:05 +04:00
src/systemd/sd-network.h \
2014-12-03 19:02:34 +03:00
src/systemd/sd-hwdb.h \
2015-04-01 14:50:31 +03:00
src/systemd/sd-device.h \
2015-06-17 16:53:56 +03:00
src/libsystemd/libsystemd.sym \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/sd-bus.c \
src/libsystemd/sd-bus/bus-control.c \
src/libsystemd/sd-bus/bus-control.h \
src/libsystemd/sd-bus/bus-error.c \
src/libsystemd/sd-bus/bus-error.h \
2014-12-10 21:00:46 +03:00
src/libsystemd/sd-bus/bus-common-errors.h \
src/libsystemd/sd-bus/bus-common-errors.c \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/bus-internal.c \
src/libsystemd/sd-bus/bus-internal.h \
src/libsystemd/sd-bus/bus-socket.c \
src/libsystemd/sd-bus/bus-socket.h \
src/libsystemd/sd-bus/bus-kernel.c \
src/libsystemd/sd-bus/bus-kernel.h \
src/libsystemd/sd-bus/bus-container.c \
src/libsystemd/sd-bus/bus-container.h \
src/libsystemd/sd-bus/bus-message.c \
src/libsystemd/sd-bus/bus-message.h \
src/libsystemd/sd-bus/bus-creds.c \
src/libsystemd/sd-bus/bus-creds.h \
src/libsystemd/sd-bus/bus-signature.c \
src/libsystemd/sd-bus/bus-signature.h \
src/libsystemd/sd-bus/bus-type.c \
src/libsystemd/sd-bus/bus-type.h \
src/libsystemd/sd-bus/bus-match.c \
src/libsystemd/sd-bus/bus-match.h \
src/libsystemd/sd-bus/bus-bloom.c \
src/libsystemd/sd-bus/bus-bloom.h \
src/libsystemd/sd-bus/bus-introspect.c \
src/libsystemd/sd-bus/bus-introspect.h \
src/libsystemd/sd-bus/bus-objects.c \
src/libsystemd/sd-bus/bus-objects.h \
src/libsystemd/sd-bus/bus-gvariant.c \
src/libsystemd/sd-bus/bus-gvariant.h \
src/libsystemd/sd-bus/bus-convenience.c \
2014-03-03 04:33:45 +04:00
src/libsystemd/sd-bus/bus-track.c \
src/libsystemd/sd-bus/bus-track.h \
2014-05-15 03:15:30 +04:00
src/libsystemd/sd-bus/bus-slot.c \
src/libsystemd/sd-bus/bus-slot.h \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/bus-protocol.h \
src/libsystemd/sd-bus/kdbus.h \
2015-06-09 15:27:33 +03:00
src/libsystemd/sd-bus/bus-dump.c \
src/libsystemd/sd-bus/bus-dump.h \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-utf8/sd-utf8.c \
src/libsystemd/sd-event/sd-event.c \
2015-06-12 17:31:33 +03:00
src/libsystemd/sd-netlink/sd-netlink.c \
src/libsystemd/sd-netlink/netlink-internal.h \
src/libsystemd/sd-netlink/netlink-message.c \
2015-06-13 22:10:39 +03:00
src/libsystemd/sd-netlink/netlink-socket.c \
src/libsystemd/sd-netlink/rtnl-message.c \
2015-06-12 17:31:33 +03:00
src/libsystemd/sd-netlink/netlink-types.h \
src/libsystemd/sd-netlink/netlink-types.c \
src/libsystemd/sd-netlink/netlink-util.h \
src/libsystemd/sd-netlink/netlink-util.c \
src/libsystemd/sd-netlink/local-addresses.h \
src/libsystemd/sd-netlink/local-addresses.c \
2014-01-26 01:05:08 +04:00
src/libsystemd/sd-id128/sd-id128.c \
2016-07-21 18:57:57 +03:00
src/libsystemd/sd-id128/id128-util.h \
src/libsystemd/sd-id128/id128-util.c \
2014-02-18 21:50:11 +04:00
src/libsystemd/sd-daemon/sd-daemon.c \
2014-07-02 14:23:36 +04:00
src/libsystemd/sd-login/sd-login.c \
2014-08-12 04:12:05 +04:00
src/libsystemd/sd-path/sd-path.c \
src/libsystemd/sd-network/sd-network.c \
2014-08-12 18:58:56 +04:00
src/libsystemd/sd-network/network-util.h \
2014-12-03 19:02:34 +03:00
src/libsystemd/sd-network/network-util.c \
src/libsystemd/sd-hwdb/sd-hwdb.c \
src/libsystemd/sd-hwdb/hwdb-util.h \
2015-04-06 22:44:30 +03:00
src/libsystemd/sd-hwdb/hwdb-internal.h \
2015-04-01 14:50:31 +03:00
src/libsystemd/sd-device/device-internal.h \
src/libsystemd/sd-device/device-util.h \
2015-04-14 17:22:39 +03:00
src/libsystemd/sd-device/device-enumerator.c \
src/libsystemd/sd-device/device-enumerator-private.h \
2015-04-01 14:50:31 +03:00
src/libsystemd/sd-device/sd-device.c \
src/libsystemd/sd-device/device-private.c \
2015-06-14 13:46:07 +03:00
src/libsystemd/sd-device/device-private.h \
tree-wide: expose "p"-suffix unref calls in public APIs to make gcc cleanup easy
GLIB has recently started to officially support the gcc cleanup
attribute in its public API, hence let's do the same for our APIs.
With this patch we'll define an xyz_unrefp() call for each public
xyz_unref() call, to make it easy to use inside a
__attribute__((cleanup())) expression. Then, all code is ported over to
make use of this.
The new calls are also documented in the man pages, with examples how to
use them (well, I only added docs where the _unref() call itself already
had docs, and the examples, only cover sd_bus_unrefp() and
sd_event_unrefp()).
This also renames sd_lldp_free() to sd_lldp_unref(), since that's how we
tend to call our destructors these days.
Note that this defines no public macro that wraps gcc's attribute and
makes it easier to use. While I think it's our duty in the library to
make our stuff easy to use, I figure it's not our duty to make gcc's own
features easy to use on its own. Most likely, client code which wants to
make use of this should define its own:
#define _cleanup_(function) __attribute__((cleanup(function)))
Or similar, to make the gcc feature easier to use.
Making this logic public has the benefit that we can remove three header
files whose only purpose was to define these functions internally.
See #2008.
2015-11-27 21:13:45 +03:00
src/libsystemd/sd-resolve/sd-resolve.c
2014-01-13 20:30:51 +04:00
2014-02-22 01:21:50 +04:00
libsystemd_internal_la_LIBADD = \
2014-04-29 17:44:31 +04:00
-lresolv
2014-02-19 19:33:09 +04:00
noinst_LTLIBRARIES += \
2015-06-14 13:46:07 +03:00
libsystemd-internal.la
2014-02-19 19:33:09 +04:00
EXTRA_DIST += \
2014-02-19 23:16:31 +04:00
src/libsystemd/libsystemd.pc.in \
2014-02-19 19:33:09 +04:00
src/libsystemd/sd-bus/DIFFERENCES \
2014-02-19 23:16:31 +04:00
src/libsystemd/sd-bus/GVARIANT-SERIALIZATION
2014-02-19 19:33:09 +04:00
2016-06-25 05:10:37 +03:00
libsystemd_la_SOURCES =
2014-02-19 19:33:09 +04:00
2014-01-13 20:30:51 +04:00
libsystemd_la_LDFLAGS = \
2013-11-06 11:33:42 +04:00
$( AM_LDFLAGS) \
2014-01-17 16:43:25 +04:00
-version-info $( LIBSYSTEMD_CURRENT) :$( LIBSYSTEMD_REVISION) :$( LIBSYSTEMD_AGE) \
2015-06-17 16:53:56 +03:00
-Wl,--version-script= $( top_srcdir) /src/libsystemd/libsystemd.sym
2013-11-06 11:33:42 +04:00
2014-02-19 19:33:09 +04:00
libsystemd_la_LIBADD = \
2016-06-25 05:10:37 +03:00
libsystemd-internal.la \
libbasic.la \
libsystemd-journal-internal.la
2014-02-19 19:33:09 +04:00
2013-11-07 06:27:58 +04:00
pkgconfiglib_DATA += \
2014-01-13 20:30:51 +04:00
src/libsystemd/libsystemd.pc
2013-11-07 06:27:58 +04:00
2014-01-26 01:05:08 +04:00
pkginclude_HEADERS += \
2015-05-22 15:32:51 +03:00
src/systemd/sd-bus.h \
src/systemd/sd-bus-protocol.h \
src/systemd/sd-bus-vtable.h \
2015-05-25 14:35:14 +03:00
src/systemd/sd-event.h \
2014-01-26 01:05:08 +04:00
src/systemd/sd-login.h \
2014-02-19 05:24:57 +04:00
src/systemd/sd-id128.h \
src/systemd/sd-daemon.h
2016-09-24 15:17:30 +03:00
rootlib_LTLIBRARIES += \
2014-01-13 20:30:51 +04:00
libsystemd.la
2013-03-19 23:03:16 +04:00
2013-04-18 16:40:24 +04:00
tests += \
2013-03-19 23:03:16 +04:00
test-bus-marshal \
2013-03-21 01:56:25 +04:00
test-bus-signature \
2015-04-29 18:08:18 +03:00
test-bus-benchmark \
2013-03-30 18:21:06 +04:00
test-bus-chat \
2014-01-14 23:26:37 +04:00
test-bus-cleanup \
2013-03-31 18:16:37 +04:00
test-bus-server \
2013-04-12 02:26:12 +04:00
test-bus-match \
2013-05-10 16:34:57 +04:00
test-bus-kernel \
2013-05-20 02:21:56 +04:00
test-bus-kernel-bloom \
2013-10-09 04:37:10 +04:00
test-bus-zero-copy \
test-bus-introspect \
2013-10-10 06:40:28 +04:00
test-bus-objects \
2013-11-22 07:01:46 +04:00
test-bus-error \
2013-11-28 20:50:02 +04:00
test-bus-creds \
2013-12-05 05:46:54 +04:00
test-bus-gvariant \
2016-08-22 17:13:19 +03:00
test-bus-track \
2014-01-13 22:12:16 +04:00
test-event \
2015-06-12 17:31:33 +03:00
test-netlink \
2014-12-03 23:42:58 +03:00
test-local-addresses \
2014-01-14 21:18:43 +04:00
test-resolve
2013-03-21 01:56:25 +04:00
2013-11-08 19:52:24 +04:00
bin_PROGRAMS += \
2013-03-21 01:56:25 +04:00
busctl
2013-03-19 23:03:16 +04:00
test_bus_marshal_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/test-bus-marshal.c
2013-03-19 23:03:16 +04:00
test_bus_marshal_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2013-03-19 23:03:16 +04:00
$( GLIB_LIBS) \
2014-11-11 18:13:59 +03:00
$( DBUS_LIBS)
2013-03-19 23:03:16 +04:00
test_bus_marshal_CFLAGS = \
$( AM_CFLAGS) \
$( GLIB_CFLAGS) \
2014-11-11 18:13:59 +03:00
$( DBUS_CFLAGS)
2013-03-19 23:03:16 +04:00
test_bus_signature_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/test-bus-signature.c
2013-03-19 23:03:16 +04:00
test_bus_signature_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-03-19 23:03:16 +04:00
2013-03-21 01:56:25 +04:00
test_bus_chat_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/test-bus-chat.c
2013-03-21 01:56:25 +04:00
test_bus_chat_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-03-21 01:56:25 +04:00
2014-01-14 23:26:37 +04:00
test_bus_cleanup_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/test-bus-cleanup.c
2014-01-14 23:26:37 +04:00
2014-02-22 21:47:28 +04:00
test_bus_cleanup_CFLAGS = \
$( AM_CFLAGS) \
$( SECCOMP_CFLAGS)
2014-01-14 23:26:37 +04:00
test_bus_cleanup_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-01-14 23:26:37 +04:00
2016-08-22 17:13:19 +03:00
test_bus_track_SOURCES = \
src/libsystemd/sd-bus/test-bus-track.c
test_bus_track_CFLAGS = \
$( AM_CFLAGS) \
$( SECCOMP_CFLAGS)
test_bus_track_LDADD = \
libsystemd-shared.la
2013-03-30 18:21:06 +04:00
test_bus_server_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/test-bus-server.c
2013-03-30 18:21:06 +04:00
test_bus_server_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-03-30 18:21:06 +04:00
2013-10-09 04:37:10 +04:00
test_bus_objects_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/test-bus-objects.c
2013-10-09 04:37:10 +04:00
test_bus_objects_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-10-09 04:37:10 +04:00
2013-11-22 07:01:46 +04:00
test_bus_error_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/test-bus-error.c
2013-11-22 07:01:46 +04:00
2016-06-25 05:14:25 +03:00
# Link statically because this test uses BUS_ERROR_MAP_ELF_REGISTER
2013-11-22 07:01:46 +04:00
test_bus_error_LDADD = \
2015-06-09 15:27:33 +03:00
libshared.la
2013-11-22 07:01:46 +04:00
2013-12-05 05:46:54 +04:00
test_bus_gvariant_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/test-bus-gvariant.c
2013-12-05 05:46:54 +04:00
test_bus_gvariant_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2014-11-11 18:13:59 +03:00
$( GLIB_LIBS)
2013-12-05 05:46:54 +04:00
test_bus_gvariant_CFLAGS = \
$( AM_CFLAGS) \
$( GLIB_CFLAGS)
2013-11-28 20:50:02 +04:00
test_bus_creds_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/test-bus-creds.c
2013-11-28 20:50:02 +04:00
test_bus_creds_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-11-28 20:50:02 +04:00
2013-03-31 18:16:37 +04:00
test_bus_match_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/test-bus-match.c
2013-03-31 18:16:37 +04:00
test_bus_match_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-04-12 02:26:12 +04:00
test_bus_kernel_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/test-bus-kernel.c
2013-04-12 02:26:12 +04:00
test_bus_kernel_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-03-31 18:16:37 +04:00
2013-05-20 02:21:56 +04:00
test_bus_kernel_bloom_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/test-bus-kernel-bloom.c
2013-05-20 02:21:56 +04:00
test_bus_kernel_bloom_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-05-20 02:21:56 +04:00
2015-04-29 18:08:18 +03:00
test_bus_benchmark_SOURCES = \
src/libsystemd/sd-bus/test-bus-benchmark.c
2013-05-22 18:02:21 +04:00
2015-04-29 18:08:18 +03:00
test_bus_benchmark_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-05-22 18:02:21 +04:00
2013-05-15 21:45:05 +04:00
test_bus_zero_copy_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/test-bus-zero-copy.c
2013-05-15 21:45:05 +04:00
test_bus_zero_copy_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-05-15 21:45:05 +04:00
2013-10-09 04:37:10 +04:00
test_bus_introspect_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-bus/test-bus-introspect.c
2013-10-09 04:37:10 +04:00
test_bus_introspect_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-10-09 04:37:10 +04:00
2013-10-10 06:40:28 +04:00
test_event_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-event/test-event.c
2013-10-10 06:40:28 +04:00
test_event_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-10-10 06:40:28 +04:00
2015-06-12 17:31:33 +03:00
test_netlink_SOURCES = \
src/libsystemd/sd-netlink/test-netlink.c
2014-01-13 23:14:44 +04:00
2015-06-12 17:31:33 +03:00
test_netlink_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-01-13 23:14:44 +04:00
2014-12-03 23:42:58 +03:00
test_local_addresses_SOURCES = \
2015-06-12 17:31:33 +03:00
src/libsystemd/sd-netlink/test-local-addresses.c
2014-12-03 23:42:58 +03:00
test_local_addresses_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-12-03 23:42:58 +03:00
2014-01-14 21:18:43 +04:00
test_resolve_SOURCES = \
2014-01-21 17:10:18 +04:00
src/libsystemd/sd-resolve/test-resolve.c
2014-01-14 00:03:28 +04:00
2014-01-14 21:18:43 +04:00
test_resolve_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-01-14 00:03:28 +04:00
2013-03-21 01:56:25 +04:00
busctl_SOURCES = \
2014-11-19 18:42:21 +03:00
src/libsystemd/sd-bus/busctl.c \
src/libsystemd/sd-bus/busctl-introspect.c \
src/libsystemd/sd-bus/busctl-introspect.h
2013-03-21 01:56:25 +04:00
busctl_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-03-21 01:56:25 +04:00
2014-01-21 02:40:30 +04:00
# ------------------------------------------------------------------------------
noinst_LTLIBRARIES += \
2014-02-27 04:24:05 +04:00
libsystemd-network.la
2014-01-21 02:40:30 +04:00
2014-05-14 03:35:20 +04:00
libsystemd_network_la_CFLAGS = \
$( AM_CFLAGS) \
$( KMOD_CFLAGS)
2014-02-27 04:24:05 +04:00
libsystemd_network_la_SOURCES = \
2014-01-21 02:40:30 +04:00
src/systemd/sd-dhcp-client.h \
2014-05-24 20:48:41 +04:00
src/systemd/sd-dhcp-server.h \
2014-02-27 04:24:05 +04:00
src/systemd/sd-dhcp-lease.h \
2014-02-28 19:10:20 +04:00
src/systemd/sd-ipv4ll.h \
2015-08-21 13:50:31 +03:00
src/systemd/sd-ipv4acd.h \
2015-10-15 20:25:31 +03:00
src/systemd/sd-ndisc.h \
2014-08-12 04:12:05 +04:00
src/systemd/sd-dhcp6-client.h \
src/systemd/sd-dhcp6-lease.h \
2014-12-24 02:03:21 +03:00
src/systemd/sd-lldp.h \
2014-02-27 04:24:05 +04:00
src/libsystemd-network/sd-dhcp-client.c \
2014-05-24 20:48:41 +04:00
src/libsystemd-network/sd-dhcp-server.c \
2014-02-27 04:24:05 +04:00
src/libsystemd-network/dhcp-network.c \
src/libsystemd-network/dhcp-option.c \
src/libsystemd-network/dhcp-packet.c \
src/libsystemd-network/dhcp-internal.h \
2014-05-24 20:48:41 +04:00
src/libsystemd-network/dhcp-server-internal.h \
2014-02-27 04:24:05 +04:00
src/libsystemd-network/dhcp-protocol.h \
src/libsystemd-network/dhcp-lease-internal.h \
2014-02-28 19:10:20 +04:00
src/libsystemd-network/sd-dhcp-lease.c \
src/libsystemd-network/sd-ipv4ll.c \
2015-08-21 13:50:31 +03:00
src/libsystemd-network/sd-ipv4acd.c \
2015-08-18 16:37:43 +03:00
src/libsystemd-network/arp-util.h \
src/libsystemd-network/arp-util.c \
2014-03-22 00:38:14 +04:00
src/libsystemd-network/network-internal.c \
2014-06-19 16:38:55 +04:00
src/libsystemd-network/network-internal.h \
2015-10-15 20:25:31 +03:00
src/libsystemd-network/sd-ndisc.c \
network: beef up ipv6 RA support considerably
This reworks sd-ndisc and networkd substantially to support IPv6 RA much more
comprehensively. Since the API is extended quite a bit networkd has been ported
over too, and the patch is not as straight-forward as one could wish. The
rework includes:
- Support for DNSSL, RDNSS and RA routing options in sd-ndisc and networkd. Two
new configuration options have been added to networkd to make this
configurable.
- sd-ndisc now exposes an sd_ndisc_router object that encapsulates a full RA
message, and has direct, friendly acessor functions for the singleton RA
properties, as well as an iterative interface to iterate through known and
unsupported options. The router object may either be retrieved from the wire,
or generated from raw data. In many ways the sd-ndisc API now matches the
sd-lldp API, except that no implicit database of seen data is kept. (Note
that sd-ndisc actually had a half-written, but unused implementaiton of such
a store, which is removed now.)
- sd-ndisc will now collect the reception timestamps of RA, which is useful to
make sd_ndisc_router fully descriptive of what it covers.
Fixes: #1079
2016-06-02 21:38:12 +03:00
src/libsystemd-network/ndisc-internal.h \
src/libsystemd-network/ndisc-router.h \
src/libsystemd-network/ndisc-router.c \
2015-10-16 19:09:10 +03:00
src/libsystemd-network/icmp6-util.h \
src/libsystemd-network/icmp6-util.c \
2014-06-19 16:39:35 +04:00
src/libsystemd-network/sd-dhcp6-client.c \
2014-06-19 16:38:55 +04:00
src/libsystemd-network/dhcp6-internal.h \
2014-06-19 22:59:36 +04:00
src/libsystemd-network/dhcp6-protocol.h \
2014-06-19 16:39:20 +04:00
src/libsystemd-network/dhcp6-network.c \
2014-06-19 16:39:35 +04:00
src/libsystemd-network/dhcp6-option.c \
src/libsystemd-network/dhcp6-lease-internal.h \
2014-11-23 07:16:36 +03:00
src/libsystemd-network/sd-dhcp6-lease.c \
2015-01-22 00:25:20 +03:00
src/libsystemd-network/dhcp-identifier.h \
src/libsystemd-network/dhcp-identifier.c \
2016-02-22 23:55:22 +03:00
src/libsystemd-network/lldp-internal.h \
2014-11-23 07:16:36 +03:00
src/libsystemd-network/lldp-network.h \
src/libsystemd-network/lldp-network.c \
sd-lldp: rework sd-lldp API
This reworks the sd-lldp substantially, simplifying things on one hand, and
extending the logic a bit on the other.
Specifically:
- Besides the sd_lldp object only one other object is maintained now,
sd_lldp_neighbor. It's used both as storage for literal LLDP packets, and for
maintainging info about peers in the database. Separation between packet, TLV
and chassis data is not maintained anymore. This should be a major
simplification.
- The sd-lldp API has been extended so that a couple of per-neighbor fields may
be queried directly, without iterating through the object. Other fields that
may appear multiple times, OTOH have to be iterated through.
- The maximum number of entries in the neighbor database is now configurable
during runtime.
- The generation of callbacks from sd_lldp objects is more restricted:
callbacks are only invoked when actual data changed.
- The TTL information is now hooked with a timer event, so that removals from
the neighbor database due to TTLs now result in a callback event.
- Querying LLDP neighbor database will now return a strictly ordered array, to
guarantee stability.
- A "capabilities" mask may now be configured, that selects what type of LLDP
neighbor data is collected. This may be used to restrict collection of LLDP
info about routers instead of all neighbors. This is now exposed via
networkd's LLDP= setting.
- sd-lldp's API to serialize the collected data to text files has been removed.
Instead, there's now an API to extract the raw binary data from LLDP neighbor
objects, as well as one to convert this raw binary data back to an LLDP
neighbor object. networkd will save this raw binary data to /run now, and the
client side can simply parse the information.
- support for parsing the more exotic TLVs has been removed, since we are not
using that. Instead there are now APIs to extract the raw data from TLVs.
Given how easy it is to parse the TLVs clients should do so now directly
instead of relying on our APIs for that.
- A lot of the APIs that parse out LLDP strings have been simplified so that
they actually return strings, instead of char arrays with a length. To deal
with possibly dangerous characters the strings are escaped if needed.
- APIs to extract and format the chassis and port IDs as strings has been
added.
- lldp.h has been simplified a lot. The enums are anonymous now, since they
were never used as enums, but simply as constants. Most definitions we don't
actually use ourselves have eben removed.
2016-02-19 19:58:52 +03:00
src/libsystemd-network/lldp-neighbor.h \
src/libsystemd-network/lldp-neighbor.c \
2014-11-23 07:16:36 +03:00
src/libsystemd-network/sd-lldp.c
2014-02-27 04:24:05 +04:00
libsystemd_network_la_LIBADD = \
2014-05-14 03:35:20 +04:00
$( KMOD_LIBS)
2014-01-21 02:40:30 +04:00
test_dhcp_option_SOURCES = \
2014-02-27 04:24:05 +04:00
src/libsystemd-network/dhcp-protocol.h \
src/libsystemd-network/dhcp-internal.h \
src/libsystemd-network/test-dhcp-option.c
2014-01-21 02:40:30 +04:00
test_dhcp_option_LDADD = \
2014-02-27 04:24:05 +04:00
libsystemd-network.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-01-21 02:40:30 +04:00
test_dhcp_client_SOURCES = \
src/systemd/sd-dhcp-client.h \
2014-02-27 04:24:05 +04:00
src/libsystemd-network/dhcp-protocol.h \
src/libsystemd-network/dhcp-internal.h \
src/libsystemd-network/test-dhcp-client.c
2014-01-21 02:40:30 +04:00
test_dhcp_client_LDADD = \
2014-02-27 04:24:05 +04:00
libsystemd-network.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-01-21 02:40:30 +04:00
2014-05-24 20:48:41 +04:00
test_dhcp_server_SOURCES = \
src/libsystemd-network/test-dhcp-server.c
test_dhcp_server_LDADD = \
libsystemd-network.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-05-24 20:48:41 +04:00
2014-04-27 23:58:26 +04:00
test_ipv4ll_SOURCES = \
2014-05-22 04:06:17 +04:00
src/systemd/sd-ipv4ll.h \
2015-08-18 16:37:43 +03:00
src/libsystemd-network/arp-util.h \
2014-05-22 04:06:17 +04:00
src/libsystemd-network/test-ipv4ll.c
2014-04-27 23:58:26 +04:00
test_ipv4ll_LDADD = \
2014-05-22 04:06:17 +04:00
libsystemd-network.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-04-27 23:58:26 +04:00
2015-08-22 00:04:14 +03:00
test_ipv4ll_manual_SOURCES = \
src/systemd/sd-ipv4ll.h \
src/libsystemd-network/test-ipv4ll-manual.c
test_ipv4ll_manual_LDADD = \
libsystemd-network.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-08-22 00:04:14 +03:00
test_acd_SOURCES = \
src/systemd/sd-ipv4acd.h \
src/libsystemd-network/test-acd.c
test_acd_LDADD = \
libsystemd-network.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-08-22 00:04:14 +03:00
2015-10-15 20:25:31 +03:00
test_ndisc_rs_SOURCES = \
2014-06-19 16:38:59 +04:00
src/systemd/sd-dhcp6-client.h \
2015-10-15 20:25:31 +03:00
src/systemd/sd-ndisc.h \
2015-10-16 19:09:10 +03:00
src/libsystemd-network/icmp6-util.h \
2015-10-15 20:25:31 +03:00
src/libsystemd-network/test-ndisc-rs.c \
2015-01-22 00:25:20 +03:00
src/libsystemd-network/dhcp-identifier.h \
src/libsystemd-network/dhcp-identifier.c
2014-06-19 16:38:59 +04:00
2015-10-15 20:25:31 +03:00
test_ndisc_rs_LDADD = \
2014-06-19 16:38:59 +04:00
libsystemd-network.la \
2015-06-09 15:27:33 +03:00
libudev.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-06-19 16:38:59 +04:00
2014-06-19 16:39:12 +04:00
test_dhcp6_client_SOURCES = \
src/systemd/sd-dhcp6-client.h \
2014-06-19 16:39:20 +04:00
src/libsystemd-network/dhcp6-internal.h \
2015-01-22 00:25:20 +03:00
src/libsystemd-network/test-dhcp6-client.c \
src/libsystemd-network/dhcp-identifier.h \
src/libsystemd-network/dhcp-identifier.c
2014-06-19 16:39:12 +04:00
test_dhcp6_client_LDADD = \
libsystemd-network.la \
2015-06-09 15:27:33 +03:00
libudev.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-06-19 16:39:12 +04:00
2014-11-23 07:16:36 +03:00
test_lldp_SOURCES = \
2015-06-09 15:27:33 +03:00
src/libsystemd-network/test-lldp.c
2014-11-23 07:16:36 +03:00
test_lldp_LDADD = \
libsystemd-network.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-11-23 07:16:36 +03:00
2014-01-21 02:40:30 +04:00
tests += \
test-dhcp-option \
2014-04-27 23:58:26 +04:00
test-dhcp-client \
2014-05-24 20:48:41 +04:00
test-dhcp-server \
2014-06-19 16:38:59 +04:00
test-ipv4ll \
2015-10-15 20:25:31 +03:00
test-ndisc-rs \
2014-11-23 07:16:36 +03:00
test-dhcp6-client \
test-lldp
2014-01-21 02:40:30 +04:00
2012-04-03 23:24:46 +04:00
# ------------------------------------------------------------------------------
include_HEADERS += \
2012-04-13 20:24:39 +04:00
src/libudev/libudev.h
2012-04-03 23:24:46 +04:00
2016-09-24 15:17:30 +03:00
rootlib_LTLIBRARIES += \
2012-04-03 23:24:46 +04:00
libudev.la
libudev_la_SOURCES = \
2013-11-12 04:32:34 +04:00
src/libudev/libudev.sym \
2012-04-13 20:24:39 +04:00
src/libudev/libudev-private.h \
2015-04-01 14:55:20 +03:00
src/libudev/libudev-device-internal.h \
2012-04-13 20:24:39 +04:00
src/libudev/libudev.c \
src/libudev/libudev-list.c \
src/libudev/libudev-util.c \
src/libudev/libudev-device.c \
2015-04-01 14:55:20 +03:00
src/libudev/libudev-device-private.c \
2012-04-13 20:24:39 +04:00
src/libudev/libudev-enumerate.c \
src/libudev/libudev-monitor.c \
2012-10-27 22:59:01 +04:00
src/libudev/libudev-queue.c \
src/libudev/libudev-hwdb.c
2012-04-03 23:24:46 +04:00
libudev_la_LDFLAGS = \
$( AM_LDFLAGS) \
2012-05-16 00:57:58 +04:00
-version-info $( LIBUDEV_CURRENT) :$( LIBUDEV_REVISION) :$( LIBUDEV_AGE) \
-Wl,--version-script= $( top_srcdir) /src/libudev/libudev.sym
2012-04-03 23:24:46 +04:00
2012-04-16 22:27:44 +04:00
libudev_la_LIBADD = \
2016-06-25 05:14:25 +03:00
libsystemd-internal.la \
libbasic.la
2012-04-16 22:27:44 +04:00
2012-04-03 23:24:46 +04:00
pkgconfiglib_DATA += \
2012-04-13 20:24:39 +04:00
src/libudev/libudev.pc
2012-04-03 23:24:46 +04:00
EXTRA_DIST += \
2013-11-12 04:32:34 +04:00
src/libudev/libudev.pc.in
2012-04-03 23:24:46 +04:00
2012-04-10 18:41:52 +04:00
# ------------------------------------------------------------------------------
noinst_LTLIBRARIES += \
2013-11-07 17:59:16 +04:00
libudev-internal.la
2012-04-10 18:41:52 +04:00
2013-11-07 17:59:16 +04:00
libudev_internal_la_SOURCES = \
2015-04-01 14:55:20 +03:00
$( libudev_la_SOURCES)
2012-04-10 18:41:52 +04:00
2012-04-03 23:24:46 +04:00
# ------------------------------------------------------------------------------
2013-02-03 07:48:38 +04:00
INSTALL_DIRS += \
2014-12-16 02:48:24 +03:00
$( sysconfdir) /udev/rules.d
2012-04-03 23:24:46 +04:00
2013-10-28 23:11:10 +04:00
dist_network_DATA = \
2014-02-22 01:44:42 +04:00
network/99-default.link \
2014-05-17 23:32:13 +04:00
network/80-container-host0.network \
2016-05-06 22:03:40 +03:00
network/80-container-ve.network \
network/80-container-vz.network
2013-10-28 03:19:59 +04:00
2012-04-03 23:24:46 +04:00
dist_udevrules_DATA += \
rules/50-udev-default.rules \
2015-03-12 18:09:46 +03:00
rules/60-block.rules \
2013-11-03 16:01:20 +04:00
rules/60-drm.rules \
2015-03-19 07:19:58 +03:00
rules/60-evdev.rules \
2012-04-03 23:24:46 +04:00
rules/60-persistent-storage-tape.rules \
rules/60-persistent-input.rules \
rules/60-persistent-alsa.rules \
rules/60-persistent-storage.rules \
2015-03-12 19:44:58 +03:00
rules/60-serial.rules \
2012-09-17 01:31:11 +04:00
rules/64-btrfs.rules \
2015-01-29 04:51:05 +03:00
rules/70-mouse.rules \
2016-07-01 04:10:33 +03:00
rules/70-touchpad.rules \
2012-04-03 23:24:46 +04:00
rules/75-net-description.rules \
rules/78-sound-card.rules \
2015-03-12 18:34:18 +03:00
rules/80-net-setup-link.rules
2012-04-03 23:24:46 +04:00
2014-03-04 19:23:41 +04:00
nodist_udevrules_DATA += \
rules/99-systemd.rules
2012-04-03 23:24:46 +04:00
udevconfdir = $( sysconfdir) /udev
dist_udevconf_DATA = \
src/udev/udev.conf
2015-04-22 15:05:24 +03:00
pkgconfigdata_DATA += \
2012-04-03 23:24:46 +04:00
src/udev/udev.pc
EXTRA_DIST += \
rules/99-systemd.rules.in \
src/udev/udev.pc.in
EXTRA_DIST += \
2012-07-02 23:35:14 +04:00
units/systemd-udevd.service.in \
2012-04-17 01:32:22 +04:00
units/systemd-udev-trigger.service.in \
2014-12-16 02:48:24 +03:00
units/systemd-udev-settle.service.in
2012-04-03 23:24:46 +04:00
2013-01-23 07:24:54 +04:00
SOCKETS_TARGET_WANTS += \
systemd-udevd-control.socket \
systemd-udevd-kernel.socket
2014-06-13 15:10:30 +04:00
2013-01-23 07:24:54 +04:00
SYSINIT_TARGET_WANTS += \
systemd-udevd.service \
2014-12-16 02:48:24 +03:00
systemd-udev-trigger.service
2012-04-03 23:24:46 +04:00
2013-03-11 10:17:39 +04:00
rootbin_PROGRAMS += \
2012-04-03 23:24:46 +04:00
udevadm
2012-04-17 01:32:22 +04:00
rootlibexec_PROGRAMS += \
systemd-udevd
2012-04-03 23:24:46 +04:00
2012-04-10 18:41:52 +04:00
noinst_LTLIBRARIES += \
libudev-core.la
2015-03-03 16:33:15 +03:00
src/udev/keyboard-keys-list.txt :
2013-07-10 18:02:24 +04:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2015-10-13 19:20:34 +03:00
$( AM_V_GEN) $( CPP) $( CFLAGS) $( AM_CPPFLAGS) $( CPPFLAGS) -dM -include linux/input.h - < /dev/null | $( AWK) '/^#define[ \t]+KEY_[^ ]+[ \t]+[0-9K]/ { if ($$2 != "KEY_MAX") { print $$2 } }' > $@
2013-07-10 18:02:24 +04:00
2015-03-03 16:33:15 +03:00
src/udev/keyboard-keys-from-name.gperf : src /udev /keyboard -keys -list .txt
2013-07-10 18:02:24 +04:00
$( AM_V_GEN) $( AWK) 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print tolower(substr($$1 ,5)) ", " $$1 }' < $< > $@
2013-11-30 03:16:49 +04:00
src/udev/keyboard-keys-from-name.h : src /udev /keyboard -keys -from -name .gperf
2013-07-10 18:02:24 +04:00
$( AM_V_GPERF) $( GPERF) -L ANSI-C -t -N keyboard_lookup_key -H hash_key_name -p -C < $< > $@
2015-03-03 16:33:15 +03:00
gperf_txt_sources += \
src/udev/keyboard-keys-list.txt
2012-04-10 18:41:52 +04:00
libudev_core_la_SOURCES = \
2012-04-03 23:24:46 +04:00
src/udev/udev.h \
src/udev/udev-event.c \
src/udev/udev-watch.c \
src/udev/udev-node.c \
src/udev/udev-rules.c \
src/udev/udev-ctrl.c \
src/udev/udev-builtin.c \
2012-09-17 01:31:11 +04:00
src/udev/udev-builtin-btrfs.c \
2012-04-03 23:24:46 +04:00
src/udev/udev-builtin-hwdb.c \
src/udev/udev-builtin-input_id.c \
2013-07-10 18:02:24 +04:00
src/udev/udev-builtin-keyboard.c \
2012-11-09 15:37:40 +04:00
src/udev/udev-builtin-net_id.c \
2013-10-28 23:20:59 +04:00
src/udev/udev-builtin-net_setup_link.c \
2012-04-03 23:24:46 +04:00
src/udev/udev-builtin-path_id.c \
udev: add network link configuration tool
This tool applies hardware specific settings to network devices before they
are announced via libudev.
Settings that will probably eventually be supported are MTU, Speed,
DuplexMode, WakeOnLan, MACAddress, MACAddressPolicy (e.g., 'hardware',
'synthetic' or 'random'), Name and NamePolicy (replacing our current
interface naming logic). This patch only introduces support for
Description, as a proof of concept.
Some of these settings may later be overriden by a network management
daemon/script. However, these tools should always listen and wait on libudev
before touching a device (listening on netlink is not enough). This is no
different from how things used to be, as we always supported changing the
network interface name from udev rules, which does not work if someone
has already started using it.
The tool is configured by .link files in /etc/net/links/ (with the usual
overriding logic in /run and /lib). The first (in lexicographical order)
matching .link file is applied to a given device, and all others are ignored.
The .link files contain a [Match] section with (currently) the keys
MACAddress, Driver, Type (see DEVTYPE in udevadm info) and Path (this
matches on the stable device path as exposed as ID_PATH, and not the
unstable DEVPATH). A .link file matches a given device if all of the
specified keys do. Currently the keys are treated as plain strings,
but some limited globbing may later be added to the keys where it
makes sense.
Example:
/etc/net/links/50-wireless.link
[Match]
MACAddress=98:f2:e4:42:c6:92
Path=pci-0000:02:00.0-bcma-0
Type=wlan
[Link]
Description=The wireless link
2013-10-26 02:34:01 +04:00
src/udev/udev-builtin-usb_id.c \
src/udev/net/link-config.h \
2013-10-26 20:54:16 +04:00
src/udev/net/link-config.c \
src/udev/net/ethtool-util.h \
src/udev/net/ethtool-util.c
2012-04-03 23:24:46 +04:00
2013-07-10 18:02:24 +04:00
nodist_libudev_core_la_SOURCES = \
src/udev/keyboard-keys-from-name.h \
udev: add network link configuration tool
This tool applies hardware specific settings to network devices before they
are announced via libudev.
Settings that will probably eventually be supported are MTU, Speed,
DuplexMode, WakeOnLan, MACAddress, MACAddressPolicy (e.g., 'hardware',
'synthetic' or 'random'), Name and NamePolicy (replacing our current
interface naming logic). This patch only introduces support for
Description, as a proof of concept.
Some of these settings may later be overriden by a network management
daemon/script. However, these tools should always listen and wait on libudev
before touching a device (listening on netlink is not enough). This is no
different from how things used to be, as we always supported changing the
network interface name from udev rules, which does not work if someone
has already started using it.
The tool is configured by .link files in /etc/net/links/ (with the usual
overriding logic in /run and /lib). The first (in lexicographical order)
matching .link file is applied to a given device, and all others are ignored.
The .link files contain a [Match] section with (currently) the keys
MACAddress, Driver, Type (see DEVTYPE in udevadm info) and Path (this
matches on the stable device path as exposed as ID_PATH, and not the
unstable DEVPATH). A .link file matches a given device if all of the
specified keys do. Currently the keys are treated as plain strings,
but some limited globbing may later be added to the keys where it
makes sense.
Example:
/etc/net/links/50-wireless.link
[Match]
MACAddress=98:f2:e4:42:c6:92
Path=pci-0000:02:00.0-bcma-0
Type=wlan
[Link]
Description=The wireless link
2013-10-26 02:34:01 +04:00
src/udev/net/link-config-gperf.c
2013-07-10 18:02:24 +04:00
2015-09-06 02:22:14 +03:00
gperf_gperf_sources += \
udev: add network link configuration tool
This tool applies hardware specific settings to network devices before they
are announced via libudev.
Settings that will probably eventually be supported are MTU, Speed,
DuplexMode, WakeOnLan, MACAddress, MACAddressPolicy (e.g., 'hardware',
'synthetic' or 'random'), Name and NamePolicy (replacing our current
interface naming logic). This patch only introduces support for
Description, as a proof of concept.
Some of these settings may later be overriden by a network management
daemon/script. However, these tools should always listen and wait on libudev
before touching a device (listening on netlink is not enough). This is no
different from how things used to be, as we always supported changing the
network interface name from udev rules, which does not work if someone
has already started using it.
The tool is configured by .link files in /etc/net/links/ (with the usual
overriding logic in /run and /lib). The first (in lexicographical order)
matching .link file is applied to a given device, and all others are ignored.
The .link files contain a [Match] section with (currently) the keys
MACAddress, Driver, Type (see DEVTYPE in udevadm info) and Path (this
matches on the stable device path as exposed as ID_PATH, and not the
unstable DEVPATH). A .link file matches a given device if all of the
specified keys do. Currently the keys are treated as plain strings,
but some limited globbing may later be added to the keys where it
makes sense.
Example:
/etc/net/links/50-wireless.link
[Match]
MACAddress=98:f2:e4:42:c6:92
Path=pci-0000:02:00.0-bcma-0
Type=wlan
[Link]
Description=The wireless link
2013-10-26 02:34:01 +04:00
src/udev/net/link-config-gperf.gperf
2013-07-10 18:02:24 +04:00
2012-04-10 18:41:52 +04:00
libudev_core_la_CFLAGS = \
2012-04-10 18:02:09 +04:00
$( AM_CFLAGS) \
2012-04-03 23:24:46 +04:00
$( BLKID_CFLAGS) \
$( KMOD_CFLAGS)
2012-04-10 18:41:52 +04:00
libudev_core_la_LIBADD = \
2014-03-22 00:38:14 +04:00
libsystemd-network.la \
2015-06-09 15:27:33 +03:00
libshared.la \
2012-04-03 23:24:46 +04:00
$( BLKID_LIBS) \
$( KMOD_LIBS)
2012-11-20 04:24:32 +04:00
i f H A V E _ K M O D
libudev_core_la_SOURCES += \
src/udev/udev-builtin-kmod.c
2013-03-18 18:12:18 +04:00
dist_udevrules_DATA += \
rules/80-drivers.rules
2012-11-20 04:24:32 +04:00
e n d i f
2012-11-16 04:17:18 +04:00
i f H A V E _ B L K I D
libudev_core_la_SOURCES += \
src/udev/udev-builtin-blkid.c
e n d i f
2012-04-09 18:37:54 +04:00
i f H A V E _ A C L
2012-04-10 18:41:52 +04:00
libudev_core_la_SOURCES += \
2012-04-09 18:37:54 +04:00
src/udev/udev-builtin-uaccess.c \
2012-04-13 14:34:35 +04:00
src/login/logind-acl.c \
2014-03-17 21:28:30 +04:00
src/libsystemd/sd-login/sd-login.c \
src/systemd/sd-login.h
2012-04-09 18:37:54 +04:00
e n d i f
2012-04-17 01:32:22 +04:00
systemd_udevd_SOURCES = \
2012-04-09 18:37:54 +04:00
src/udev/udevd.c
2012-04-03 23:24:46 +04:00
2012-04-17 01:32:22 +04:00
systemd_udevd_LDADD = \
2016-06-25 05:14:25 +03:00
libudev-core.la \
libbasic.la
2012-04-03 23:24:46 +04:00
udevadm_SOURCES = \
src/udev/udevadm.c \
src/udev/udevadm-info.c \
src/udev/udevadm-control.c \
src/udev/udevadm-monitor.c \
2012-10-22 20:23:08 +04:00
src/udev/udevadm-hwdb.c \
2012-04-03 23:24:46 +04:00
src/udev/udevadm-settle.c \
src/udev/udevadm-trigger.c \
src/udev/udevadm-test.c \
2014-11-26 03:39:19 +03:00
src/udev/udevadm-test-builtin.c \
src/udev/udevadm-util.c \
src/udev/udevadm-util.h
2012-04-03 23:24:46 +04:00
udevadm_LDADD = \
2016-06-25 05:14:25 +03:00
libudev-core.la \
libbasic.la
2012-04-03 23:24:46 +04:00
2014-12-16 02:48:24 +03:00
# ------------------------------------------------------------------------------
2014-12-19 13:47:30 +03:00
i f E N A B L E _ H W D B
2014-12-16 02:48:24 +03:00
INSTALL_DIRS += \
$( sysconfdir) /udev/hwdb.d
systemd_hwdb_SOURCES = \
src/libsystemd/sd-hwdb/hwdb-internal.h \
src/hwdb/hwdb.c
systemd_hwdb_LDADD = \
2015-06-09 15:27:33 +03:00
libshared.la
2014-12-16 02:48:24 +03:00
rootbin_PROGRAMS += \
systemd-hwdb
dist_udevhwdb_DATA = \
hwdb/20-pci-vendor-model.hwdb \
hwdb/20-pci-classes.hwdb \
hwdb/20-usb-vendor-model.hwdb \
hwdb/20-usb-classes.hwdb \
hwdb/20-sdio-vendor-model.hwdb \
hwdb/20-sdio-classes.hwdb \
hwdb/20-bluetooth-vendor-product.hwdb \
hwdb/20-acpi-vendor.hwdb \
hwdb/20-OUI.hwdb \
hwdb/20-net-ifname.hwdb \
2015-03-19 07:19:58 +03:00
hwdb/60-evdev.hwdb \
2014-12-16 02:48:24 +03:00
hwdb/60-keyboard.hwdb \
2015-01-28 07:05:01 +03:00
hwdb/70-mouse.hwdb \
2016-07-01 04:10:33 +03:00
hwdb/70-pointingstick.hwdb \
hwdb/70-touchpad.hwdb
2014-12-16 02:48:24 +03:00
SYSINIT_TARGET_WANTS += \
systemd-hwdb-update.service
2012-11-16 20:58:31 +04:00
# Update hwdb on installation. Do not bother if installing
# in DESTDIR, since this is likely for packaging purposes.
hwdb-update-hook :
2014-12-16 02:48:24 +03:00
-test -n " $( DESTDIR) " || $( rootbindir) /systemd-hwdb update
2012-11-16 20:58:31 +04:00
INSTALL_DATA_HOOKS += \
hwdb-update-hook
2012-11-17 02:10:13 +04:00
hwdb-remove-hook :
2013-02-08 00:53:10 +04:00
-test -n " $( DESTDIR) " || rm -f /etc/udev/hwdb.bin
2014-12-19 13:47:30 +03:00
e n d i f
2012-11-17 02:10:13 +04:00
2015-05-28 13:03:17 +03:00
EXTRA_DIST += \
units/systemd-hwdb-update.service.in \
hwdb/ids-update.pl \
hwdb/sdio.ids
2012-04-03 23:24:46 +04:00
# ------------------------------------------------------------------------------
2015-12-13 09:51:33 +03:00
i f E N A B L E _ T E S T S
2012-04-12 21:25:41 +04:00
TESTS += \
2016-11-24 13:29:42 +03:00
test/udev-test.pl \
test/hwdb-test.sh
2015-01-20 23:26:35 +03:00
i f H A V E _ P Y T H O N
TESTS += \
2016-08-05 22:07:41 +03:00
test/rule-syntax-check.py \
hwdb/parse_hwdb.py
2015-03-03 18:36:47 +03:00
i f H A V E _ S Y S V _ C O M P A T
TESTS += \
2015-06-23 00:27:08 +03:00
test/sysv-generator-test.py
2015-01-20 23:26:35 +03:00
e n d i f
2015-03-03 18:36:47 +03:00
e n d i f
2015-12-13 09:51:33 +03:00
e n d i f
2012-04-03 23:24:46 +04:00
2016-03-02 05:44:08 +03:00
tests += \
test-libudev
2013-04-18 16:40:24 +04:00
manual_tests += \
2012-04-03 23:24:46 +04:00
test-udev
test_libudev_SOURCES = \
2012-04-14 21:31:18 +04:00
src/test/test-libudev.c
2012-04-03 23:24:46 +04:00
test_libudev_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-04-03 23:24:46 +04:00
test_udev_SOURCES = \
2012-07-16 00:10:46 +04:00
src/test/test-udev.c
2012-04-03 23:24:46 +04:00
test_udev_LDADD = \
2014-11-06 04:02:13 +03:00
libudev-core.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2012-04-16 19:21:22 +04:00
$( BLKID_LIBS) \
2016-06-25 05:14:25 +03:00
$( KMOD_LIBS) \
-lrt
2012-04-03 23:24:46 +04:00
2015-12-13 09:51:33 +03:00
i f E N A B L E _ T E S T S
2012-04-13 17:57:13 +04:00
check_DATA += \
2012-04-14 21:31:18 +04:00
test/sys
2015-12-13 09:51:33 +03:00
e n d i f
2012-04-03 23:24:46 +04:00
# packed sysfs test tree
2016-04-08 16:53:03 +03:00
test/sys : test /sys .tar .xz
-rm -rf test/sys
2012-07-31 01:57:50 +04:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
$( AM_V_GEN) tar -C test/ -xJf $( top_srcdir) /test/sys.tar.xz
2016-04-08 16:53:03 +03:00
-touch test/sys
2012-04-03 23:24:46 +04:00
test-sys-distclean :
2012-04-14 21:31:18 +04:00
-rm -rf test/sys
2012-04-03 23:24:46 +04:00
DISTCLEAN_LOCAL_HOOKS += test-sys-distclean
EXTRA_DIST += \
2012-04-14 21:31:18 +04:00
test/sys.tar.xz \
test/udev-test.pl \
2016-11-24 13:29:42 +03:00
test/hwdb-test.sh \
2015-01-20 18:08:05 +03:00
test/rule-syntax-check.py \
test/sysv-generator-test.py \
2016-08-05 22:07:41 +03:00
test/mocks/fsck \
hwdb/parse_hwdb.py
2015-01-20 18:08:05 +03:00
2012-04-03 23:24:46 +04:00
# ------------------------------------------------------------------------------
ata_id_SOURCES = \
src/udev/ata_id/ata_id.c
ata_id_LDADD = \
2015-06-09 15:27:33 +03:00
libshared.la
2012-04-03 23:24:46 +04:00
udevlibexec_PROGRAMS += \
ata_id
# ------------------------------------------------------------------------------
cdrom_id_SOURCES = \
src/udev/cdrom_id/cdrom_id.c
cdrom_id_LDADD = \
2015-06-09 15:27:33 +03:00
libshared.la
2012-04-03 23:24:46 +04:00
udevlibexec_PROGRAMS += \
cdrom_id
dist_udevrules_DATA += \
2012-04-14 22:10:03 +04:00
rules/60-cdrom_id.rules
2012-04-03 23:24:46 +04:00
# ------------------------------------------------------------------------------
collect_SOURCES = \
src/udev/collect/collect.c
collect_LDADD = \
2015-06-09 15:27:33 +03:00
libshared.la
2012-04-03 23:24:46 +04:00
udevlibexec_PROGRAMS += \
collect
# ------------------------------------------------------------------------------
scsi_id_SOURCES = \
src/udev/scsi_id/scsi_id.c \
src/udev/scsi_id/scsi_serial.c \
src/udev/scsi_id/scsi.h \
src/udev/scsi_id/scsi_id.h
scsi_id_LDADD = \
2015-06-09 15:27:33 +03:00
libshared.la
2012-04-03 23:24:46 +04:00
udevlibexec_PROGRAMS += \
scsi_id
EXTRA_DIST += \
src/udev/scsi_id/README
# ------------------------------------------------------------------------------
v4l_id_SOURCES = \
src/udev/v4l_id/v4l_id.c
v4l_id_LDADD = \
2015-06-09 15:27:33 +03:00
libshared.la
2012-04-03 23:24:46 +04:00
udevlibexec_PROGRAMS += \
v4l_id
dist_udevrules_DATA += \
2012-04-14 22:10:03 +04:00
rules/60-persistent-v4l.rules
2012-04-03 23:24:46 +04:00
# ------------------------------------------------------------------------------
mtd_probe_SOURCES = \
src/udev/mtd_probe/mtd_probe.c \
src/udev/mtd_probe/mtd_probe.h \
src/udev/mtd_probe/probe_smartmedia.c
dist_udevrules_DATA += \
2012-04-14 22:10:03 +04:00
rules/75-probe_mtd.rules
2012-04-03 23:24:46 +04:00
udevlibexec_PROGRAMS += \
mtd_probe
2011-12-31 12:17:48 +04:00
# ------------------------------------------------------------------------------
test_id128_SOURCES = \
2012-04-12 15:48:01 +04:00
src/test/test-id128.c
2011-12-31 12:05:56 +04:00
2011-12-31 12:17:48 +04:00
test_id128_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 12:05:56 +04:00
2013-04-18 16:40:24 +04:00
tests += \
2012-04-13 15:21:20 +04:00
test-id128
2013-02-23 20:52:04 +04:00
# ------------------------------------------------------------------------------
2016-02-12 06:11:33 +03:00
bin_PROGRAMS += \
systemd-socket-activate
2013-02-23 20:52:04 +04:00
2016-02-12 06:11:33 +03:00
systemd_socket_activate_SOURCES = \
2013-02-23 20:52:04 +04:00
src/activate/activate.c
2016-02-12 06:11:33 +03:00
systemd_socket_activate_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-02-23 20:52:04 +04:00
2011-12-31 12:17:48 +04:00
# ------------------------------------------------------------------------------
systemd_journald_SOURCES = \
src/journal/journald.c \
2012-11-12 20:29:07 +04:00
src/journal/journald-server.h
2012-01-04 23:40:04 +04:00
2011-12-31 12:17:48 +04:00
systemd_journald_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 09:02:42 +04:00
2012-01-14 02:17:54 +04:00
systemd_cat_SOURCES = \
2012-01-16 16:49:08 +04:00
src/journal/cat.c
2012-01-14 02:17:54 +04:00
systemd_cat_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2012-01-14 02:17:54 +04:00
2016-03-18 13:34:51 +03:00
i f H A V E _ L I B C U R L
rootlibexec_PROGRAMS += \
systemd-journal-upload
systemd_journal_upload_SOURCES = \
src/journal-remote/journal-upload.h \
src/journal-remote/journal-upload.c \
src/journal-remote/journal-upload-journal.c
systemd_journal_upload_CFLAGS = \
$( AM_CFLAGS) \
$( LIBCURL_CFLAGS)
systemd_journal_upload_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2016-03-18 13:34:51 +03:00
$( LIBCURL_LIBS)
nodist_systemunit_DATA += \
units/systemd-journal-upload.service
nodist_pkgsysconf_DATA += \
src/journal-remote/journal-upload.conf
e n d i f
EXTRA_DIST += \
units/systemd-journal-upload.service.in \
src/journal-remote/journal-upload.conf.in
2014-03-15 23:58:03 +04:00
i f H A V E _ M I C R O H T T P D
rootlibexec_PROGRAMS += \
systemd-journal-remote
2012-11-02 02:08:03 +04:00
systemd_journal_remote_SOURCES = \
2014-03-26 06:30:24 +04:00
src/journal-remote/journal-remote-parse.h \
src/journal-remote/journal-remote-parse.c \
src/journal-remote/journal-remote-write.h \
src/journal-remote/journal-remote-write.c \
2014-07-02 08:15:37 +04:00
src/journal-remote/journal-remote.h \
2014-03-26 06:30:24 +04:00
src/journal-remote/journal-remote.c
2012-11-02 02:08:03 +04:00
systemd_journal_remote_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2012-11-02 02:08:03 +04:00
2014-03-15 23:58:03 +04:00
systemd_journal_remote_SOURCES += \
2014-03-26 06:30:24 +04:00
src/journal-remote/microhttpd-util.h \
src/journal-remote/microhttpd-util.c
2014-03-15 23:58:03 +04:00
systemd_journal_remote_CFLAGS = \
$( AM_CFLAGS) \
$( MICROHTTPD_CFLAGS)
systemd_journal_remote_LDADD += \
$( MICROHTTPD_LIBS)
2014-11-26 11:17:50 +03:00
i f E N A B L E _ T M P F I L E S
dist_tmpfiles_DATA += \
tmpfiles.d/systemd-remote.conf
e n d i f
2014-03-15 23:58:03 +04:00
i f H A V E _ G N U T L S
systemd_journal_remote_LDADD += \
$( GNUTLS_LIBS)
2015-10-16 02:24:47 +03:00
e n d i f
2014-03-31 07:08:02 +04:00
# systemd-journal-remote make sense mostly with full crypto stack
dist_systemunit_DATA += \
units/systemd-journal-remote.socket
nodist_systemunit_DATA += \
units/systemd-journal-remote.service
journal-remote-install-hook : journal -install -hook
-$( MKDIR_P) $( DESTDIR) /var/log/journal/remote
-chown 0:0 $( DESTDIR) /var/log/journal/remote
-chmod 755 $( DESTDIR) /var/log/journal/remote
INSTALL_EXEC_HOOKS += journal-remote-install-hook
nodist_pkgsysconf_DATA += \
src/journal-remote/journal-remote.conf
EXTRA_DIST += \
2015-05-28 13:03:17 +03:00
units/systemd-journal-remote.service.in \
2015-06-23 01:13:16 +03:00
src/journal-remote/journal-remote.conf.in \
src/journal-remote/log-generator.py
2014-03-15 23:58:03 +04:00
e n d i f
2013-10-20 18:58:04 +04:00
# using _CFLAGS = in the conditional below would suppress AM_CFLAGS
journalctl_CFLAGS = \
$( AM_CFLAGS)
2013-10-20 17:53:05 +04:00
2012-03-26 22:58:47 +04:00
journalctl_SOURCES = \
2012-04-12 03:51:49 +04:00
src/journal/journalctl.c
2011-12-31 09:02:42 +04:00
2012-03-26 22:58:47 +04:00
journalctl_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2016-02-01 12:44:58 +03:00
libudev-core.la
2013-03-22 18:35:26 +04:00
2012-08-21 00:02:19 +04:00
i f H A V E _ Q R E N C O D E
journalctl_SOURCES += \
src/journal/journal-qrcode.c \
src/journal/journal-qrcode.h
2013-10-20 17:53:05 +04:00
journalctl_CFLAGS += \
2012-08-21 00:02:19 +04:00
$( QRENCODE_CFLAGS)
journalctl_LDADD += \
$( QRENCODE_LIBS)
e n d i f
2011-12-31 12:17:48 +04:00
test_journal_SOURCES = \
2012-07-13 02:29:26 +04:00
src/journal/test-journal.c
2011-12-31 09:02:42 +04:00
2011-12-31 12:17:48 +04:00
test_journal_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2011-07-12 00:29:45 +04:00
2012-04-02 21:24:30 +04:00
test_journal_send_SOURCES = \
src/journal/test-journal-send.c
test_journal_send_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2012-04-02 21:24:30 +04:00
2012-10-13 13:31:54 +04:00
test_journal_syslog_SOURCES = \
2012-11-12 20:29:07 +04:00
src/journal/test-journal-syslog.c
2012-10-13 13:31:54 +04:00
test_journal_syslog_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2012-10-13 13:31:54 +04:00
2012-07-13 02:29:26 +04:00
test_journal_match_SOURCES = \
src/journal/test-journal-match.c
test_journal_match_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2012-07-13 02:29:26 +04:00
2012-10-26 05:24:03 +04:00
test_journal_enum_SOURCES = \
src/journal/test-journal-enum.c
test_journal_enum_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2012-10-26 05:24:03 +04:00
2012-07-13 02:29:26 +04:00
test_journal_stream_SOURCES = \
src/journal/test-journal-stream.c
test_journal_stream_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2012-07-13 02:29:26 +04:00
2013-11-27 04:01:53 +04:00
test_journal_flush_SOURCES = \
src/journal/test-journal-flush.c
test_journal_flush_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2013-11-27 04:01:53 +04:00
2013-08-02 19:01:10 +04:00
test_journal_init_SOURCES = \
src/journal/test-journal-init.c
test_journal_init_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2013-08-02 19:01:10 +04:00
2012-08-15 03:54:09 +04:00
test_journal_verify_SOURCES = \
src/journal/test-journal-verify.c
test_journal_verify_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2012-08-15 03:54:09 +04:00
2013-06-07 08:50:21 +04:00
test_journal_interleaving_SOURCES = \
src/journal/test-journal-interleaving.c
test_journal_interleaving_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2013-06-07 08:50:21 +04:00
2012-09-21 22:52:23 +04:00
test_mmap_cache_SOURCES = \
src/journal/test-mmap-cache.c
test_mmap_cache_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2012-09-21 22:52:23 +04:00
2012-11-16 02:03:31 +04:00
test_catalog_SOURCES = \
src/journal/test-catalog.c
2013-12-11 01:30:46 +04:00
test_catalog_CPPFLAGS = \
$( AM_CPPFLAGS) \
2016-06-26 18:43:37 +03:00
-DCATALOG_DIR= \" $( abs_top_builddir) /catalog\"
2013-07-18 10:30:06 +04:00
2012-11-16 02:03:31 +04:00
test_catalog_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2012-11-16 02:03:31 +04:00
2014-06-24 22:42:29 +04:00
test_compress_SOURCES = \
src/journal/test-compress.c
test_compress_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
i f H A V E _ L Z 4
test_compress_LDADD += \
-llz4
e n d i f
2014-06-24 22:42:29 +04:00
compress: add benchmark-style test
This is useful to test the behaviour of the compressor for various buffer
sizes.
Time is limited to a minute per compression, since otherwise, when LZ4
takes more than a second which is necessary to reduce the noise, XZ
takes more than 10 minutes.
% build/test-compress-benchmark (without time limit)
XZ: compressed & decompressed 2535300963 bytes in 794.57s (3.04MiB/s), mean compresion 99.95%, skipped 3570 bytes
LZ4: compressed & decompressed 2535303543 bytes in 1.56s (1550.07MiB/s), mean compresion 99.60%, skipped 990 bytes
% build/test-compress-benchmark (with time limit)
XZ: compressed & decompressed 174321481 bytes in 60.02s (2.77MiB/s), mean compresion 99.76%, skipped 3570 bytes
LZ4: compressed & decompressed 2535303543 bytes in 1.63s (1480.83MiB/s), mean compresion 99.60%, skipped 990 bytes
It appears that there's a bug in lzma_end where it leaks 32 bytes.
2014-07-05 22:29:56 +04:00
test_compress_benchmark_SOURCES = \
src/journal/test-compress-benchmark.c
test_compress_benchmark_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
compress: add benchmark-style test
This is useful to test the behaviour of the compressor for various buffer
sizes.
Time is limited to a minute per compression, since otherwise, when LZ4
takes more than a second which is necessary to reduce the noise, XZ
takes more than 10 minutes.
% build/test-compress-benchmark (without time limit)
XZ: compressed & decompressed 2535300963 bytes in 794.57s (3.04MiB/s), mean compresion 99.95%, skipped 3570 bytes
LZ4: compressed & decompressed 2535303543 bytes in 1.56s (1550.07MiB/s), mean compresion 99.60%, skipped 990 bytes
% build/test-compress-benchmark (with time limit)
XZ: compressed & decompressed 174321481 bytes in 60.02s (2.77MiB/s), mean compresion 99.76%, skipped 3570 bytes
LZ4: compressed & decompressed 2535303543 bytes in 1.63s (1480.83MiB/s), mean compresion 99.60%, skipped 990 bytes
It appears that there's a bug in lzma_end where it leaks 32 bytes.
2014-07-05 22:29:56 +04:00
2015-04-14 17:29:03 +03:00
test_audit_type_SOURCES = \
src/journal/test-audit-type.c
test_audit_type_LDADD = \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2015-04-14 17:29:03 +03:00
2015-06-09 15:27:33 +03:00
libjournal_core_la_SOURCES = \
2012-11-12 20:29:07 +04:00
src/journal/journald-kmsg.c \
src/journal/journald-kmsg.h \
src/journal/journald-syslog.c \
src/journal/journald-syslog.h \
src/journal/journald-stream.c \
src/journal/journald-stream.h \
src/journal/journald-server.c \
src/journal/journald-server.h \
src/journal/journald-console.c \
src/journal/journald-console.h \
2014-03-14 03:38:15 +04:00
src/journal/journald-wall.c \
src/journal/journald-wall.h \
2012-11-12 20:29:07 +04:00
src/journal/journald-native.c \
src/journal/journald-native.h \
2014-11-03 22:58:24 +03:00
src/journal/journald-audit.c \
src/journal/journald-audit.h \
2012-11-12 20:29:07 +04:00
src/journal/journald-rate-limit.c \
src/journal/journald-rate-limit.h \
src/journal/journal-internal.h
2012-01-04 22:36:45 +04:00
2015-06-09 15:27:33 +03:00
nodist_libjournal_core_la_SOURCES = \
2013-11-07 17:59:16 +04:00
src/journal/journald-gperf.c
2012-08-13 22:31:10 +04:00
2015-06-09 15:27:33 +03:00
libjournal_core_la_LIBADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-08-13 22:31:10 +04:00
2013-11-07 17:59:16 +04:00
noinst_LTLIBRARIES += \
2015-06-09 15:27:33 +03:00
libjournal-core.la
2011-05-24 01:55:06 +04:00
2014-02-22 20:58:05 +04:00
journal-install-hook :
-$( MKDIR_P) $( DESTDIR) /var/log/journal
-chown 0:0 $( DESTDIR) /var/log/journal
-chmod 755 $( DESTDIR) /var/log/journal
-setfacl -nm g:adm:rx,d:g:adm:rx $( DESTDIR) /var/log/journal/
-setfacl -nm g:wheel:rx,d:g:wheel:rx $( DESTDIR) /var/log/journal/
2013-02-23 20:52:04 +04:00
2014-02-22 20:58:05 +04:00
journal-uninstall-hook :
2014-03-31 07:08:02 +04:00
-rmdir $( DESTDIR) /var/log/journal/remote
2014-02-22 20:58:05 +04:00
-rmdir $( DESTDIR) /var/log/journal/
INSTALL_EXEC_HOOKS += journal-install-hook
UNINSTALL_EXEC_HOOKS += journal-uninstall-hook
# ------------------------------------------------------------------------------
2012-11-16 20:58:31 +04:00
# Update catalog on installation. Do not bother if installing
2012-11-16 14:00:49 +04:00
# in DESTDIR, since this is likely for packaging purposes.
catalog-update-hook :
2012-11-17 02:08:27 +04:00
-test -n " $( DESTDIR) " || $( rootbindir) /journalctl --update-catalog
2012-11-16 14:00:49 +04:00
2012-11-16 16:53:32 +04:00
INSTALL_DATA_HOOKS += \
2012-11-16 14:00:49 +04:00
catalog-update-hook
2012-11-17 02:08:27 +04:00
catalog-remove-hook :
-test -n " $( DESTDIR) " || rm -f $( catalogstatedir) /database
UNINSTALL_DATA_HOOKS += \
catalog-remove-hook
2013-04-18 16:40:24 +04:00
tests += \
2012-07-15 17:48:26 +04:00
test-journal \
2016-03-02 05:50:41 +03:00
test-journal-enum \
2012-10-13 13:31:54 +04:00
test-journal-send \
test-journal-syslog \
2012-07-13 15:50:39 +04:00
test-journal-match \
2012-08-15 03:54:09 +04:00
test-journal-stream \
2013-08-02 19:01:10 +04:00
test-journal-init \
2012-09-24 12:19:23 +04:00
test-journal-verify \
2013-06-07 08:50:21 +04:00
test-journal-interleaving \
2013-11-27 04:01:53 +04:00
test-journal-flush \
2013-03-29 04:17:24 +04:00
test-mmap-cache \
2015-04-14 17:29:03 +03:00
test-catalog \
test-audit-type
2012-07-13 15:50:39 +04:00
2014-07-11 18:42:06 +04:00
i f H A V E _ C O M P R E S S I O N
compress: add benchmark-style test
This is useful to test the behaviour of the compressor for various buffer
sizes.
Time is limited to a minute per compression, since otherwise, when LZ4
takes more than a second which is necessary to reduce the noise, XZ
takes more than 10 minutes.
% build/test-compress-benchmark (without time limit)
XZ: compressed & decompressed 2535300963 bytes in 794.57s (3.04MiB/s), mean compresion 99.95%, skipped 3570 bytes
LZ4: compressed & decompressed 2535303543 bytes in 1.56s (1550.07MiB/s), mean compresion 99.60%, skipped 990 bytes
% build/test-compress-benchmark (with time limit)
XZ: compressed & decompressed 174321481 bytes in 60.02s (2.77MiB/s), mean compresion 99.76%, skipped 3570 bytes
LZ4: compressed & decompressed 2535303543 bytes in 1.63s (1480.83MiB/s), mean compresion 99.60%, skipped 990 bytes
It appears that there's a bug in lzma_end where it leaks 32 bytes.
2014-07-05 22:29:56 +04:00
tests += \
test-compress \
test-compress-benchmark
2014-07-11 18:42:06 +04:00
e n d i f
2014-06-24 22:42:29 +04:00
2011-12-31 12:17:48 +04:00
pkginclude_HEADERS += \
2012-01-05 19:01:58 +04:00
src/systemd/sd-journal.h \
2013-10-16 19:00:13 +04:00
src/systemd/sd-messages.h \
src/systemd/_sd-common.h
2011-12-31 09:02:42 +04:00
2014-02-19 19:33:09 +04:00
libsystemd_journal_internal_la_SOURCES = \
src/journal/sd-journal.c \
src/systemd/sd-journal.h \
src/systemd/_sd-common.h \
src/journal/journal-file.c \
src/journal/journal-file.h \
src/journal/journal-vacuum.c \
src/journal/journal-vacuum.h \
src/journal/journal-verify.c \
src/journal/journal-verify.h \
src/journal/lookup3.c \
src/journal/lookup3.h \
src/journal/journal-send.c \
src/journal/journal-def.h \
src/journal/compress.h \
src/journal/catalog.c \
src/journal/catalog.h \
src/journal/mmap-cache.c \
2015-01-11 02:25:31 +03:00
src/journal/mmap-cache.h \
2015-03-16 20:14:18 +03:00
src/journal/compress.c \
src/journal/audit-type.h \
2016-03-28 00:33:54 +03:00
src/journal/audit-type.c \
src/shared/gcrypt-util.h \
src/shared/gcrypt-util.c
2015-05-25 12:18:18 +03:00
nodist_libsystemd_journal_internal_la_SOURCES = \
2015-03-16 20:14:18 +03:00
src/journal/audit_type-to-name.h
gperf_txt_sources += \
src/journal/audit_type-list.txt
2014-02-19 19:33:09 +04:00
# using _CFLAGS = in the conditional below would suppress AM_CFLAGS
2014-06-17 21:26:14 +04:00
libsystemd_journal_internal_la_CFLAGS = \
2014-02-19 19:33:09 +04:00
$( AM_CFLAGS)
2015-06-03 15:16:36 +03:00
libsystemd_journal_internal_la_LIBADD =
2014-02-19 19:33:09 +04:00
2014-07-04 06:42:22 +04:00
i f H A V E _ X Z
2014-02-19 19:33:09 +04:00
libsystemd_journal_internal_la_CFLAGS += \
$( XZ_CFLAGS)
libsystemd_journal_internal_la_LIBADD += \
$( XZ_LIBS)
e n d i f
2014-07-04 06:42:22 +04:00
i f H A V E _ L Z 4
libsystemd_journal_internal_la_LIBADD += \
-llz4
e n d i f
2014-02-19 19:33:09 +04:00
i f H A V E _ G C R Y P T
libsystemd_journal_internal_la_SOURCES += \
src/journal/journal-authenticate.c \
src/journal/journal-authenticate.h \
src/journal/fsprg.c \
2016-03-28 00:33:54 +03:00
src/journal/fsprg.h
2014-02-19 19:33:09 +04:00
libsystemd_journal_internal_la_LIBADD += \
$( GCRYPT_LIBS)
2014-02-19 21:30:14 +04:00
# fsprg.c is a drop-in file using void pointer arithmetic
2014-02-19 19:33:09 +04:00
libsystemd_journal_internal_la_CFLAGS += \
$( GCRYPT_CFLAGS) \
-Wno-pointer-arith
e n d i f
2011-12-31 09:02:42 +04:00
2012-07-12 02:06:24 +04:00
noinst_LTLIBRARIES += \
libsystemd-journal-internal.la
2011-12-31 12:17:48 +04:00
rootlibexec_PROGRAMS += \
2014-03-15 23:58:03 +04:00
systemd-journald
2010-10-07 15:24:41 +04:00
2011-12-31 12:17:48 +04:00
rootbin_PROGRAMS += \
2012-03-26 22:58:47 +04:00
journalctl
2010-10-07 15:24:41 +04:00
2012-01-14 02:17:54 +04:00
bin_PROGRAMS += \
2012-01-16 16:49:08 +04:00
systemd-cat
2012-01-14 02:17:54 +04:00
2011-12-31 12:17:48 +04:00
dist_systemunit_DATA += \
2014-06-04 18:37:02 +04:00
units/systemd-journald.socket \
2014-11-03 22:58:24 +03:00
units/systemd-journald-dev-log.socket \
units/systemd-journald-audit.socket
2010-10-07 15:24:41 +04:00
2011-12-31 12:17:48 +04:00
nodist_systemunit_DATA += \
2012-07-11 04:41:16 +04:00
units/systemd-journald.service \
2014-06-13 15:10:30 +04:00
units/systemd-journal-flush.service \
units/systemd-journal-catalog-update.service
2010-08-19 04:03:03 +04:00
2012-01-04 23:40:04 +04:00
dist_pkgsysconf_DATA += \
2012-03-31 01:18:33 +04:00
src/journal/journald.conf
2012-01-04 23:40:04 +04:00
2016-06-26 18:43:37 +03:00
nodist_catalog_DATA = \
2016-05-11 10:02:04 +03:00
catalog/systemd.bg.catalog \
2015-06-15 00:13:43 +03:00
catalog/systemd.be.catalog \
catalog/systemd.be@latin.catalog \
2013-12-03 05:29:10 +04:00
catalog/systemd.fr.catalog \
catalog/systemd.it.catalog \
2014-09-28 01:30:15 +04:00
catalog/systemd.pl.catalog \
2015-01-12 02:11:42 +03:00
catalog/systemd.pt_BR.catalog \
2014-09-28 01:30:15 +04:00
catalog/systemd.ru.catalog \
2015-10-28 10:23:58 +03:00
catalog/systemd.zh_CN.catalog \
2015-06-10 17:39:44 +03:00
catalog/systemd.zh_TW.catalog \
2012-11-16 02:03:31 +04:00
catalog/systemd.catalog
2016-06-26 18:43:37 +03:00
EXTRA_DIST += \
$( nodist_catalog_DATA:.catalog= .catalog.in)
# Note that we don't use @@ for replacement markers here, but %%. This is
# because the catalog uses @@ already for its runtime replacement handling and
# we don't want to conflict with that.
catalog/%.catalog : catalog /%.catalog .in
$( AM_V_GEN) $( MKDIR_P) $( dir $@ ) && \
$( SED) -e 's~%SUPPORT_URL%~$(SUPPORT_URL)~' < $< > $@
2013-01-23 07:24:54 +04:00
SOCKETS_TARGET_WANTS += \
2014-06-04 18:37:02 +04:00
systemd-journald.socket \
2014-11-03 22:58:24 +03:00
systemd-journald-dev-log.socket \
systemd-journald-audit.socket
2014-06-04 18:37:02 +04:00
2013-01-23 07:24:54 +04:00
SYSINIT_TARGET_WANTS += \
systemd-journald.service \
2014-06-13 15:10:30 +04:00
systemd-journal-flush.service \
systemd-journal-catalog-update.service
2010-09-28 04:34:02 +04:00
2011-12-31 12:17:48 +04:00
EXTRA_DIST += \
2012-01-04 23:40:04 +04:00
units/systemd-journald.service.in \
2012-07-11 04:41:16 +04:00
units/systemd-journal-flush.service.in \
2015-03-03 16:33:15 +03:00
units/systemd-journal-catalog-update.service.in
2012-01-04 23:40:04 +04:00
2015-03-03 16:33:15 +03:00
gperf_gperf_sources += \
src/journal/journald-gperf.gperf
2010-09-28 04:34:02 +04:00
2013-01-30 21:01:23 +04:00
# ------------------------------------------------------------------------------
2012-09-28 02:46:32 +04:00
i f H A V E _ M I C R O H T T P D
gatewayddocumentrootdir = $( pkgdatadir) /gatewayd
rootlibexec_PROGRAMS += \
systemd-journal-gatewayd
systemd_journal_gatewayd_SOURCES = \
2014-03-26 06:30:24 +04:00
src/journal-remote/journal-gatewayd.c \
src/journal-remote/microhttpd-util.h \
src/journal-remote/microhttpd-util.c
2012-09-28 02:46:32 +04:00
systemd_journal_gatewayd_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2012-09-28 02:46:32 +04:00
$( MICROHTTPD_LIBS)
2012-11-29 02:08:35 +04:00
i f H A V E _ G N U T L S
systemd_journal_gatewayd_LDADD += \
$( GNUTLS_LIBS)
e n d i f
2012-09-28 02:46:32 +04:00
systemd_journal_gatewayd_CFLAGS = \
$( AM_CFLAGS) \
$( MICROHTTPD_CFLAGS)
2013-12-11 01:30:46 +04:00
systemd_journal_gatewayd_CPPFLAGS = \
$( AM_CPPFLAGS) \
-DDOCUMENT_ROOT= \" $( gatewayddocumentrootdir) \"
2012-09-28 02:46:32 +04:00
dist_systemunit_DATA += \
units/systemd-journal-gatewayd.socket
nodist_systemunit_DATA += \
units/systemd-journal-gatewayd.service
dist_gatewayddocumentroot_DATA = \
2014-03-26 06:30:24 +04:00
src/journal-remote/browse.html
2012-09-28 02:46:32 +04:00
e n d i f
2012-10-13 15:13:50 +04:00
EXTRA_DIST += \
units/systemd-journal-gatewayd.service.in
2013-10-15 03:41:47 +04:00
# ------------------------------------------------------------------------------
2013-10-18 04:40:26 +04:00
systemd_socket_proxyd_SOURCES = \
src/socket-proxy/socket-proxyd.c
2013-10-15 03:41:47 +04:00
2013-10-18 04:40:26 +04:00
systemd_socket_proxyd_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-10-15 03:41:47 +04:00
2012-01-16 16:49:08 +04:00
# ------------------------------------------------------------------------------
2012-01-14 03:37:35 +04:00
i f E N A B L E _ C O R E D U M P
systemd_coredump_SOURCES = \
2016-02-07 20:36:57 +03:00
src/coredump/coredump.c \
src/coredump/coredump-vacuum.c \
src/coredump/coredump-vacuum.h
2012-01-14 03:37:35 +04:00
2016-06-25 05:14:25 +03:00
systemd_coredump_CFLAGS = \
$( AM_CFLAGS) \
$( ACL_CFLAGS)
2012-01-14 03:37:35 +04:00
systemd_coredump_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
$( ACL_LIBS)
2012-05-31 00:25:01 +04:00
2014-06-19 14:07:12 +04:00
i f H A V E _ E L F U T I L S
systemd_coredump_SOURCES += \
2016-02-07 20:36:57 +03:00
src/coredump/stacktrace.c \
src/coredump/stacktrace.h
2014-06-19 14:07:12 +04:00
systemd_coredump_LDADD += \
$( ELFUTILS_LIBS)
e n d i f
2016-02-08 23:16:08 +03:00
nodist_systemunit_DATA += \
units/systemd-coredump@.service
dist_systemunit_DATA += \
units/systemd-coredump.socket
SOCKETS_TARGET_WANTS += \
systemd-coredump.socket
2012-01-14 03:37:35 +04:00
rootlibexec_PROGRAMS += \
2012-01-16 16:49:08 +04:00
systemd-coredump
2012-01-14 03:37:35 +04:00
2014-06-19 00:02:18 +04:00
dist_pkgsysconf_DATA += \
2016-02-07 20:36:57 +03:00
src/coredump/coredump.conf
2014-06-19 00:02:18 +04:00
2014-06-19 15:46:01 +04:00
coredumpctl_SOURCES = \
2016-02-07 20:36:57 +03:00
src/coredump/coredumpctl.c
2013-03-05 02:20:16 +04:00
2014-06-19 15:46:01 +04:00
coredumpctl_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-03-05 02:20:16 +04:00
bin_PROGRAMS += \
2014-06-19 15:46:01 +04:00
coredumpctl
2013-03-05 02:20:16 +04:00
2014-06-27 20:57:24 +04:00
manual_tests += \
test-coredump-vacuum
test_coredump_vacuum_SOURCES = \
2016-02-07 20:36:57 +03:00
src/coredump/test-coredump-vacuum.c \
src/coredump/coredump-vacuum.c \
src/coredump/coredump-vacuum.h
2014-06-27 20:57:24 +04:00
test_coredump_vacuum_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-06-27 20:57:24 +04:00
2016-02-03 00:10:36 +03:00
dist_bashcompletion_data += \
2014-06-19 15:46:01 +04:00
shell-completion/bash/coredumpctl
2013-03-05 02:20:16 +04:00
2016-02-03 00:10:36 +03:00
dist_zshcompletion_data += \
2014-06-19 15:46:01 +04:00
shell-completion/zsh/_coredumpctl
2013-07-29 23:09:10 +04:00
2015-03-03 08:21:10 +03:00
nodist_sysctl_DATA = \
2013-03-15 18:54:35 +04:00
sysctl.d/50-coredump.conf
2012-01-14 03:37:35 +04:00
2012-01-16 16:49:08 +04:00
CLEANFILES += \
2013-03-15 18:54:35 +04:00
sysctl.d/50-coredump.conf
2012-01-14 03:37:35 +04:00
e n d i f
2012-07-28 06:43:38 +04:00
EXTRA_DIST += \
2016-02-08 23:16:08 +03:00
sysctl.d/50-coredump.conf.in \
units/systemd-coredump@.service.in
2012-07-28 06:43:38 +04:00
2011-12-31 12:17:48 +04:00
# ------------------------------------------------------------------------------
i f E N A B L E _ B I N F M T
systemd_binfmt_SOURCES = \
src/binfmt/binfmt.c
systemd_binfmt_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2010-10-19 23:19:12 +04:00
2011-12-31 12:17:48 +04:00
rootlibexec_PROGRAMS += \
systemd-binfmt
2011-03-04 23:53:19 +03:00
2011-12-31 12:17:48 +04:00
dist_systemunit_DATA += \
units/proc-sys-fs-binfmt_misc.automount \
units/proc-sys-fs-binfmt_misc.mount
2011-03-04 23:53:19 +03:00
2011-12-31 12:17:48 +04:00
nodist_systemunit_DATA += \
units/systemd-binfmt.service
2011-03-04 23:53:19 +03:00
2013-01-23 07:24:54 +04:00
INSTALL_DIRS += \
$( prefix) /lib/binfmt.d \
$( sysconfdir) /binfmt.d
2010-11-18 23:52:26 +03:00
2013-01-23 07:24:54 +04:00
SYSINIT_TARGET_WANTS += \
systemd-binfmt.service \
proc-sys-fs-binfmt_misc.automount
2010-11-18 23:52:26 +03:00
2012-07-28 06:43:38 +04:00
e n d i f
2010-11-18 23:52:26 +03:00
2011-12-31 12:17:48 +04:00
EXTRA_DIST += \
units/systemd-binfmt.service.in
2010-10-19 23:19:12 +04:00
2011-12-31 22:35:52 +04:00
# ------------------------------------------------------------------------------
i f E N A B L E _ V C O N S O L E
systemd_vconsole_setup_SOURCES = \
src/vconsole/vconsole-setup.c
systemd_vconsole_setup_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 22:35:52 +04:00
rootlibexec_PROGRAMS += \
systemd-vconsole-setup
2014-11-29 08:35:38 +03:00
nodist_udevrules_DATA += \
2014-11-05 16:30:52 +03:00
src/vconsole/90-vconsole.rules
2015-03-03 16:33:15 +03:00
nodist_systemunit_DATA += \
units/systemd-vconsole-setup.service
2012-07-28 06:43:38 +04:00
e n d i f
2011-12-31 22:35:52 +04:00
EXTRA_DIST += \
2014-11-29 08:35:38 +03:00
src/vconsole/90-vconsole.rules.in \
2011-12-31 22:35:52 +04:00
units/systemd-vconsole-setup.service.in
2012-01-02 20:07:00 +04:00
# ------------------------------------------------------------------------------
i f E N A B L E _ Q U O T A C H E C K
rootlibexec_PROGRAMS += \
systemd-quotacheck
nodist_systemunit_DATA += \
2012-06-25 15:47:45 +04:00
units/systemd-quotacheck.service
2012-01-02 20:07:00 +04:00
systemd_quotacheck_SOURCES = \
2012-04-12 19:15:18 +04:00
src/quotacheck/quotacheck.c
2012-01-02 20:07:00 +04:00
systemd_quotacheck_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-01-02 20:07:00 +04:00
e n d i f
2012-07-28 06:43:38 +04:00
EXTRA_DIST += \
units/systemd-quotacheck.service.in
2012-09-03 01:28:30 +04:00
nodist_systemunit_DATA += \
units/quotaon.service
2012-01-02 20:07:00 +04:00
# ------------------------------------------------------------------------------
i f E N A B L E _ R A N D O M S E E D
rootlibexec_PROGRAMS += \
systemd-random-seed
nodist_systemunit_DATA += \
2013-05-16 00:38:51 +04:00
units/systemd-random-seed.service
2012-01-02 20:07:00 +04:00
systemd_random_seed_SOURCES = \
2012-04-12 19:15:18 +04:00
src/random-seed/random-seed.c
2012-01-02 20:07:00 +04:00
systemd_random_seed_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-01-02 20:07:00 +04:00
2013-01-23 07:24:54 +04:00
SYSINIT_TARGET_WANTS += \
2013-05-16 00:38:51 +04:00
systemd-random-seed.service
2012-06-25 14:13:17 +04:00
2012-01-02 20:07:00 +04:00
e n d i f
2012-07-28 06:43:38 +04:00
EXTRA_DIST += \
2013-05-16 00:38:51 +04:00
units/systemd-random-seed.service.in
2012-07-28 06:43:38 +04:00
2013-08-14 03:57:02 +04:00
# ------------------------------------------------------------------------------
i f E N A B L E _ B A C K L I G H T
rootlibexec_PROGRAMS += \
systemd-backlight
nodist_systemunit_DATA += \
units/systemd-backlight@.service
systemd_backlight_SOURCES = \
src/backlight/backlight.c
systemd_backlight_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-08-14 03:57:02 +04:00
e n d i f
EXTRA_DIST += \
units/systemd-backlight@.service.in
2013-10-14 06:31:49 +04:00
# ------------------------------------------------------------------------------
i f E N A B L E _ R F K I L L
rootlibexec_PROGRAMS += \
systemd-rfkill
nodist_systemunit_DATA += \
2015-10-01 15:32:48 +03:00
units/systemd-rfkill.service
dist_systemunit_DATA += \
units/systemd-rfkill.socket
2013-10-14 06:31:49 +04:00
systemd_rfkill_SOURCES = \
src/rfkill/rfkill.c
systemd_rfkill_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-10-14 06:31:49 +04:00
e n d i f
EXTRA_DIST += \
2015-10-01 15:32:48 +03:00
units/systemd-rfkill.service.in
2013-10-14 06:31:49 +04:00
2011-12-31 22:59:09 +04:00
# ------------------------------------------------------------------------------
i f H A V E _ L I B C R Y P T S E T U P
rootlibexec_PROGRAMS += \
systemd-cryptsetup
systemgenerator_PROGRAMS += \
systemd-cryptsetup-generator
dist_systemunit_DATA += \
2014-06-18 02:07:56 +04:00
units/cryptsetup.target \
units/cryptsetup-pre.target
2011-12-31 22:59:09 +04:00
systemd_cryptsetup_SOURCES = \
2012-04-12 16:40:20 +04:00
src/cryptsetup/cryptsetup.c
2011-12-31 22:59:09 +04:00
systemd_cryptsetup_CFLAGS = \
$( AM_CFLAGS) \
2012-04-03 23:24:46 +04:00
$( LIBCRYPTSETUP_CFLAGS)
2011-12-31 22:59:09 +04:00
systemd_cryptsetup_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2012-04-10 23:54:31 +04:00
$( LIBCRYPTSETUP_LIBS)
2011-12-31 22:59:09 +04:00
systemd_cryptsetup_generator_SOURCES = \
2012-04-12 03:51:49 +04:00
src/cryptsetup/cryptsetup-generator.c
2011-12-31 22:59:09 +04:00
systemd_cryptsetup_generator_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-31 22:59:09 +04:00
2013-01-23 07:24:54 +04:00
SYSINIT_TARGET_WANTS += \
cryptsetup.target
2012-06-27 14:19:35 +04:00
2011-12-31 22:59:09 +04:00
e n d i f
2011-12-31 12:17:48 +04:00
# ------------------------------------------------------------------------------
i f E N A B L E _ H O S T N A M E D
systemd_hostnamed_SOURCES = \
2012-04-12 16:40:20 +04:00
src/hostname/hostnamed.c
2011-12-31 12:17:48 +04:00
systemd_hostnamed_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2010-10-19 23:19:12 +04:00
2011-12-31 12:17:48 +04:00
rootlibexec_PROGRAMS += \
systemd-hostnamed
2010-10-19 23:19:12 +04:00
2011-12-31 12:17:48 +04:00
nodist_systemunit_DATA += \
units/systemd-hostnamed.service
2010-10-08 00:38:40 +04:00
2014-09-04 01:34:29 +04:00
dist_systemunit_DATA_busnames += \
2013-12-03 07:27:03 +04:00
units/org.freedesktop.hostname1.busname
2011-12-31 12:17:48 +04:00
dist_dbuspolicy_DATA += \
src/hostname/org.freedesktop.hostname1.conf
2010-11-08 08:31:09 +03:00
2011-12-31 12:17:48 +04:00
dist_dbussystemservice_DATA += \
src/hostname/org.freedesktop.hostname1.service
2010-11-08 08:31:09 +03:00
2012-07-28 06:43:38 +04:00
polkitpolicy_files += \
src/hostname/org.freedesktop.hostname1.policy
2010-11-08 08:31:09 +03:00
2013-01-23 08:51:51 +04:00
SYSTEM_UNIT_ALIASES += \
systemd-hostnamed.service dbus-org.freedesktop.hostname1.service
2011-12-31 12:17:48 +04:00
2013-12-03 07:27:03 +04:00
BUSNAMES_TARGET_WANTS += \
org.freedesktop.hostname1.busname
2012-10-17 23:23:30 +04:00
hostnamectl_SOURCES = \
src/hostname/hostnamectl.c
hostnamectl_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-10-17 23:23:30 +04:00
bin_PROGRAMS += \
hostnamectl
2016-02-03 00:10:36 +03:00
dist_bashcompletion_data += \
2013-03-03 01:34:01 +04:00
shell-completion/bash/hostnamectl
2016-02-03 00:10:36 +03:00
dist_zshcompletion_data += \
2013-07-29 23:05:48 +04:00
shell-completion/zsh/_hostnamectl
2015-08-06 03:10:02 +03:00
e n d i f
2012-07-28 06:43:38 +04:00
2013-12-17 04:36:59 +04:00
polkitpolicy_in_files += \
src/hostname/org.freedesktop.hostname1.policy.in
EXTRA_DIST += \
2016-11-22 10:05:18 +03:00
units/systemd-hostnamed.service.in
2013-12-17 04:36:59 +04:00
# ------------------------------------------------------------------------------
2014-09-04 01:34:29 +04:00
dist_systemunit_DATA_busnames += \
2014-03-17 14:41:21 +04:00
units/org.freedesktop.systemd1.busname
2013-12-17 05:43:38 +04:00
BUSNAMES_TARGET_WANTS += \
2014-03-17 14:41:21 +04:00
org.freedesktop.systemd1.busname
2013-11-30 03:45:53 +04:00
2011-12-31 12:17:48 +04:00
# ------------------------------------------------------------------------------
i f E N A B L E _ L O C A L E D
systemd_localed_SOURCES = \
2016-05-26 20:35:20 +03:00
src/locale/localed.c \
src/locale/keymap-util.c \
src/locale/keymap-util.h
2011-12-31 12:17:48 +04:00
systemd_localed_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2016-04-14 03:24:58 +03:00
-ldl
2014-11-24 17:12:42 +03:00
systemd_localed_CFLAGS = \
$( AM_CFLAGS) \
$( XKBCOMMON_CFLAGS)
2011-02-21 23:48:59 +03:00
2011-12-31 12:17:48 +04:00
nodist_systemunit_DATA += \
units/systemd-localed.service
2011-02-21 23:48:59 +03:00
2014-09-04 01:34:29 +04:00
dist_systemunit_DATA_busnames += \
2013-12-03 07:27:03 +04:00
units/org.freedesktop.locale1.busname
2011-12-31 12:17:48 +04:00
rootlibexec_PROGRAMS += \
systemd-localed
2011-02-21 23:48:59 +03:00
2011-12-31 12:17:48 +04:00
dist_dbuspolicy_DATA += \
src/locale/org.freedesktop.locale1.conf
2010-11-08 07:02:45 +03:00
2011-12-31 12:17:48 +04:00
dist_dbussystemservice_DATA += \
src/locale/org.freedesktop.locale1.service
2010-11-08 07:02:45 +03:00
2012-07-28 06:43:38 +04:00
polkitpolicy_files += \
src/locale/org.freedesktop.locale1.policy
2010-11-08 07:02:45 +03:00
2013-01-23 08:51:51 +04:00
SYSTEM_UNIT_ALIASES += \
systemd-localed.service dbus-org.freedesktop.locale1.service
2011-03-15 02:44:13 +03:00
2013-12-03 07:27:03 +04:00
BUSNAMES_TARGET_WANTS += \
org.freedesktop.locale1.busname
2015-06-23 01:13:16 +03:00
dist_pkgdata_DATA = \
2015-01-31 22:11:23 +03:00
src/locale/kbd-model-map \
src/locale/language-fallback-map
2012-01-02 19:50:03 +04:00
2016-05-29 00:53:00 +03:00
test_keymap_util_SOURCES = \
src/locale/test-keymap-util.c \
src/locale/keymap-util.c \
src/locale/keymap-util.h
test_keymap_util_LDADD = \
2016-07-04 01:32:48 +03:00
libsystemd-shared.la \
2016-05-29 00:53:00 +03:00
-ldl
tests += \
test-keymap-util
2012-10-19 06:55:49 +04:00
localectl_SOURCES = \
src/locale/localectl.c
localectl_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-10-19 06:55:49 +04:00
bin_PROGRAMS += \
localectl
2016-02-03 00:10:36 +03:00
dist_bashcompletion_data += \
2013-03-03 01:34:01 +04:00
shell-completion/bash/localectl
2016-02-03 00:10:36 +03:00
dist_zshcompletion_data += \
2013-07-29 23:08:07 +04:00
shell-completion/zsh/_localectl
2015-08-06 03:10:02 +03:00
e n d i f
2011-03-15 02:44:13 +03:00
2014-01-26 20:36:04 +04:00
.PHONY : update -kbd -model -map
2012-07-28 06:43:38 +04:00
polkitpolicy_in_files += \
src/locale/org.freedesktop.locale1.policy.in
EXTRA_DIST += \
units/systemd-localed.service.in
2011-12-31 12:17:48 +04:00
# ------------------------------------------------------------------------------
i f E N A B L E _ T I M E D A T E D
systemd_timedated_SOURCES = \
2012-04-12 16:40:20 +04:00
src/timedate/timedated.c
2011-03-15 02:44:13 +03:00
2011-12-31 12:17:48 +04:00
systemd_timedated_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2011-12-02 13:18:46 +04:00
2011-12-31 12:17:48 +04:00
rootlibexec_PROGRAMS += \
systemd-timedated
2011-12-02 13:18:46 +04:00
2011-12-31 12:17:48 +04:00
dist_dbussystemservice_DATA += \
src/timedate/org.freedesktop.timedate1.service
2010-10-08 00:38:40 +04:00
2011-12-31 12:17:48 +04:00
dist_dbuspolicy_DATA += \
src/timedate/org.freedesktop.timedate1.conf
2010-10-08 00:38:40 +04:00
2011-12-31 12:17:48 +04:00
nodist_systemunit_DATA += \
units/systemd-timedated.service
2010-08-19 04:03:03 +04:00
2014-09-04 01:34:29 +04:00
dist_systemunit_DATA_busnames += \
2013-12-03 07:27:03 +04:00
units/org.freedesktop.timedate1.busname
2012-07-28 06:43:38 +04:00
polkitpolicy_files += \
src/timedate/org.freedesktop.timedate1.policy
2010-09-16 02:36:41 +04:00
2013-01-23 08:51:51 +04:00
SYSTEM_UNIT_ALIASES += \
systemd-timedated.service dbus-org.freedesktop.timedate1.service
2010-08-20 05:26:15 +04:00
2013-12-03 07:27:03 +04:00
BUSNAMES_TARGET_WANTS += \
org.freedesktop.timedate1.busname
2012-10-17 04:50:09 +04:00
timedatectl_SOURCES = \
src/timedate/timedatectl.c
timedatectl_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-10-17 04:50:09 +04:00
bin_PROGRAMS += \
timedatectl
2013-03-03 01:34:01 +04:00
2016-02-03 00:10:36 +03:00
dist_bashcompletion_data += \
2013-03-03 01:34:01 +04:00
shell-completion/bash/timedatectl
2013-07-29 23:09:48 +04:00
2016-02-03 00:10:36 +03:00
dist_zshcompletion_data += \
2013-07-29 23:09:48 +04:00
shell-completion/zsh/_timedatectl
2012-07-28 06:43:38 +04:00
e n d i f
polkitpolicy_in_files += \
src/timedate/org.freedesktop.timedate1.policy.in
2012-06-26 00:56:45 +04:00
2011-12-31 12:17:48 +04:00
EXTRA_DIST += \
units/systemd-timedated.service.in
2010-08-20 05:26:15 +04:00
2013-01-30 21:01:23 +04:00
# ------------------------------------------------------------------------------
2014-04-28 16:45:42 +04:00
i f E N A B L E _ T I M E S Y N C D
systemd_timesyncd_SOURCES = \
2014-05-06 19:02:11 +04:00
src/timesync/timesyncd.c \
2014-08-12 18:58:56 +04:00
src/timesync/timesyncd-manager.c \
src/timesync/timesyncd-manager.h \
src/timesync/timesyncd-conf.c \
src/timesync/timesyncd-conf.h \
src/timesync/timesyncd-server.c \
src/timesync/timesyncd-server.h
2014-05-06 19:02:11 +04:00
nodist_systemd_timesyncd_SOURCES = \
src/timesync/timesyncd-gperf.c
2014-04-28 16:45:42 +04:00
systemd_timesyncd_LDADD = \
2014-05-07 17:26:47 +04:00
libsystemd-network.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
-lm
2014-04-28 16:45:42 +04:00
2014-04-29 10:57:51 +04:00
rootlibexec_PROGRAMS += \
2014-04-28 16:45:42 +04:00
systemd-timesyncd
2014-04-29 10:57:51 +04:00
nodist_systemunit_DATA += \
units/systemd-timesyncd.service
2014-06-25 16:43:57 +04:00
GENERAL_ALIASES += \
2014-07-18 08:33:52 +04:00
$( systemunitdir) /systemd-timesyncd.service $( pkgsysconfdir) /system/sysinit.target.wants/systemd-timesyncd.service
2014-06-25 16:43:57 +04:00
2014-05-06 19:02:11 +04:00
nodist_pkgsysconf_DATA += \
src/timesync/timesyncd.conf
2015-12-04 08:48:09 +03:00
e n d i f
gperf_gperf_sources += \
src/timesync/timesyncd-gperf.gperf
2014-05-06 19:02:11 +04:00
EXTRA_DIST += \
2015-12-04 08:48:09 +03:00
units/systemd-timesyncd.service.in \
2014-05-06 19:02:11 +04:00
src/timesync/timesyncd.conf.in
2014-04-28 16:45:42 +04:00
2016-03-04 18:50:45 +03:00
# ------------------------------------------------------------------------------
test_nss_SOURCES = \
src/test/test-nss.c
test_nss_LDADD = \
libsystemd-internal.la \
2016-06-25 05:14:25 +03:00
libbasic.la \
2016-03-04 18:50:45 +03:00
-ldl
2016-04-07 16:02:12 +03:00
manual_tests += \
2016-03-04 18:50:45 +03:00
test-nss
2016-07-14 20:19:49 +03:00
# ------------------------------------------------------------------------------
libnss_systemd_la_SOURCES = \
src/nss-systemd/nss-systemd.sym \
src/nss-systemd/nss-systemd.c
libnss_systemd_la_LDFLAGS = \
$( AM_LDFLAGS) \
-module \
-export-dynamic \
-avoid-version \
-shared \
-shrext .so.2 \
-Wl,--version-script= $( top_srcdir) /src/nss-systemd/nss-systemd.sym
libnss_systemd_la_LIBADD = \
libsystemd-internal.la \
libbasic.la
2016-09-20 22:24:45 +03:00
rootlib_LTLIBRARIES += \
2016-07-14 20:19:49 +03:00
libnss_systemd.la
2014-04-28 16:45:42 +04:00
# ------------------------------------------------------------------------------
2013-01-30 21:01:23 +04:00
i f H A V E _ M Y H O S T N A M E
libnss_myhostname_la_SOURCES = \
2014-07-10 22:38:07 +04:00
src/nss-myhostname/nss-myhostname.sym \
2014-07-10 23:01:25 +04:00
src/nss-myhostname/nss-myhostname.c
2013-01-30 21:01:23 +04:00
libnss_myhostname_la_LDFLAGS = \
$( AM_LDFLAGS) \
-module \
-export-dynamic \
-avoid-version \
-shared \
2014-07-10 22:38:07 +04:00
-shrext .so.2 \
-Wl,--version-script= $( top_srcdir) /src/nss-myhostname/nss-myhostname.sym
2013-01-30 21:01:23 +04:00
2014-04-14 14:46:09 +04:00
libnss_myhostname_la_LIBADD = \
2016-06-25 05:14:25 +03:00
libsystemd-internal.la \
libbasic.la
2014-04-14 14:46:09 +04:00
2016-09-20 22:24:45 +03:00
rootlib_LTLIBRARIES += \
2013-01-30 21:01:23 +04:00
libnss_myhostname.la
e n d i f
2013-07-02 05:47:23 +04:00
# ------------------------------------------------------------------------------
i f E N A B L E _ M A C H I N E D
systemd_machined_SOURCES = \
src/machine/machined.c \
2013-07-05 08:25:26 +04:00
src/machine/machined.h
systemd_machined_LDADD = \
2015-06-09 15:27:33 +03:00
libmachine-core.la
2013-07-05 08:25:26 +04:00
rootlibexec_PROGRAMS += \
systemd-machined
2015-06-09 15:27:33 +03:00
libmachine_core_la_SOURCES = \
2013-07-02 05:47:23 +04:00
src/machine/machine.c \
src/machine/machine.h \
2014-12-19 20:42:50 +03:00
src/machine/machined-dbus.c \
2014-12-19 22:43:18 +03:00
src/machine/machine-dbus.c \
2014-12-30 02:22:33 +03:00
src/machine/machine-dbus.h \
2014-12-27 03:57:03 +03:00
src/machine/image-dbus.c \
2016-04-29 20:14:52 +03:00
src/machine/image-dbus.h \
src/machine/operation.c \
src/machine/operation.h
2013-07-02 05:47:23 +04:00
2015-06-09 15:27:33 +03:00
libmachine_core_la_LIBADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-07-02 05:47:23 +04:00
2013-07-05 08:25:26 +04:00
noinst_LTLIBRARIES += \
2015-06-09 15:27:33 +03:00
libmachine-core.la
2013-07-02 05:47:23 +04:00
machinectl_SOURCES = \
src/machine/machinectl.c
machinectl_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-07-02 05:47:23 +04:00
rootbin_PROGRAMS += \
machinectl
2013-07-05 08:25:26 +04:00
test_machine_tables_SOURCES = \
src/machine/test-machine-tables.c
test_machine_tables_LDADD = \
2015-06-09 15:27:33 +03:00
libmachine-core.la
2013-07-05 08:25:26 +04:00
tests += \
test-machine-tables
2013-07-02 05:47:23 +04:00
nodist_systemunit_DATA += \
units/systemd-machined.service
dist_systemunit_DATA += \
2014-09-04 01:34:29 +04:00
units/machine.slice
dist_systemunit_DATA_busnames += \
2013-12-03 07:27:03 +04:00
units/org.freedesktop.machine1.busname
2013-07-02 05:47:23 +04:00
dist_dbussystemservice_DATA += \
src/machine/org.freedesktop.machine1.service
dist_dbuspolicy_DATA += \
src/machine/org.freedesktop.machine1.conf
2014-12-23 23:28:22 +03:00
polkitpolicy_files += \
src/machine/org.freedesktop.machine1.policy
2016-02-03 00:10:36 +03:00
dist_bashcompletion_data += \
shell-completion/bash/machinectl
dist_zshcompletion_data += \
2014-03-10 18:17:31 +04:00
shell-completion/zsh/_machinectl \
shell-completion/zsh/_sd_machines
2013-07-29 23:13:29 +04:00
2013-07-02 05:47:23 +04:00
SYSTEM_UNIT_ALIASES += \
systemd-machined.service dbus-org.freedesktop.machine1.service
2013-12-03 07:27:03 +04:00
BUSNAMES_TARGET_WANTS += \
org.freedesktop.machine1.busname
2014-07-11 05:15:21 +04:00
libnss_mymachines_la_SOURCES = \
src/nss-mymachines/nss-mymachines.sym \
src/nss-mymachines/nss-mymachines.c
libnss_mymachines_la_LDFLAGS = \
$( AM_LDFLAGS) \
-module \
-export-dynamic \
-avoid-version \
-shared \
-shrext .so.2 \
-Wl,--version-script= $( top_srcdir) /src/nss-mymachines/nss-mymachines.sym
libnss_mymachines_la_LIBADD = \
2016-06-25 05:14:25 +03:00
libsystemd-internal.la \
libbasic.la
2014-07-11 05:15:21 +04:00
2016-09-20 22:24:45 +03:00
rootlib_LTLIBRARIES += \
2014-07-11 05:15:21 +04:00
libnss_mymachines.la
2014-12-19 03:59:52 +03:00
2015-01-22 05:57:15 +03:00
e n d i f
2015-06-09 15:01:06 +03:00
polkitpolicy_in_files += \
src/machine/org.freedesktop.machine1.policy.in
2015-05-28 13:03:17 +03:00
EXTRA_DIST += \
units/systemd-machined.service.in
2015-01-22 05:57:15 +03:00
# ------------------------------------------------------------------------------
i f E N A B L E _ I M P O R T D
2014-12-19 03:59:52 +03:00
i f H A V E _ L I B C U R L
2015-01-20 17:06:34 +03:00
i f H A V E _ X Z
i f H A V E _ Z L I B
2015-01-21 15:43:55 +03:00
i f H A V E _ B Z I P 2
2015-01-20 17:06:34 +03:00
i f H A V E _ G C R Y P T
2014-12-19 03:59:52 +03:00
2015-01-22 05:57:15 +03:00
rootlibexec_PROGRAMS += \
systemd-importd \
2015-03-05 02:56:08 +03:00
systemd-pull \
2015-03-09 19:55:07 +03:00
systemd-import \
systemd-export
2014-12-19 03:59:52 +03:00
2015-01-22 05:57:15 +03:00
systemd_importd_SOURCES = \
2015-01-22 19:34:54 +03:00
src/import/importd.c
2015-01-22 05:57:15 +03:00
systemd_importd_CFLAGS = \
$( AM_CFLAGS) \
2015-03-05 02:56:08 +03:00
-D SYSTEMD_PULL_PATH = \" $( rootlibexecdir) /systemd-pull\" \
2015-03-09 19:55:07 +03:00
-D SYSTEMD_IMPORT_PATH = \" $( rootlibexecdir) /systemd-import\" \
-D SYSTEMD_EXPORT_PATH = \" $( rootlibexecdir) /systemd-export\"
2015-01-22 05:57:15 +03:00
systemd_importd_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-01-22 05:57:15 +03:00
2015-01-22 19:34:54 +03:00
systemd_pull_SOURCES = \
src/import/pull.c \
2015-03-04 19:07:12 +03:00
src/import/pull-raw.c \
src/import/pull-raw.h \
src/import/pull-tar.c \
src/import/pull-tar.h \
src/import/pull-job.c \
src/import/pull-job.h \
src/import/pull-common.c \
src/import/pull-common.h \
2015-03-05 02:56:08 +03:00
src/import/import-common.c \
src/import/import-common.h \
2015-03-04 20:53:37 +03:00
src/import/import-compress.c \
src/import/import-compress.h \
2014-12-19 03:59:52 +03:00
src/import/curl-util.c \
src/import/curl-util.h \
2015-01-16 22:07:25 +03:00
src/import/qcow2-util.c \
src/import/qcow2-util.h
2014-12-19 03:59:52 +03:00
2015-01-22 19:34:54 +03:00
systemd_pull_CFLAGS = \
2014-12-19 03:59:52 +03:00
$( AM_CFLAGS) \
2015-01-16 20:42:17 +03:00
$( LIBCURL_CFLAGS) \
2015-01-16 22:07:25 +03:00
$( XZ_CFLAGS) \
2015-01-20 17:06:34 +03:00
$( ZLIB_CFLAGS) \
2015-01-21 05:01:13 +03:00
$( GCRYPT_CFLAGS) \
-D VENDOR_KEYRING_PATH = \" $( rootlibexecdir) /import-pubring.gpg\" \
-D USER_KEYRING_PATH = \" $( pkgsysconfdir) /import-pubring.gpg\"
2014-12-19 03:59:52 +03:00
2015-01-22 19:34:54 +03:00
systemd_pull_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2015-01-16 20:42:17 +03:00
$( LIBCURL_LIBS) \
2015-01-16 22:07:25 +03:00
$( XZ_LIBS) \
2015-01-20 17:06:34 +03:00
$( ZLIB_LIBS) \
2015-01-21 15:43:55 +03:00
-lbz2 \
2015-01-20 17:06:34 +03:00
$( GCRYPT_LIBS)
2015-01-16 22:07:25 +03:00
2015-03-05 02:56:08 +03:00
systemd_import_SOURCES = \
src/import/import.c \
src/import/import-raw.c \
src/import/import-raw.h \
src/import/import-tar.c \
src/import/import-tar.h \
src/import/import-common.c \
src/import/import-common.h \
src/import/import-compress.c \
src/import/import-compress.h \
src/import/qcow2-util.c \
src/import/qcow2-util.h
systemd_import_CFLAGS = \
$( AM_CFLAGS) \
$( XZ_CFLAGS) \
$( ZLIB_CFLAGS)
systemd_import_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2015-03-05 02:56:08 +03:00
$( XZ_LIBS) \
$( ZLIB_LIBS) \
-lbz2
2015-03-09 19:55:07 +03:00
systemd_export_SOURCES = \
src/import/export.c \
src/import/export-tar.c \
src/import/export-tar.h \
src/import/export-raw.c \
src/import/export-raw.h \
src/import/import-common.c \
src/import/import-common.h \
src/import/import-compress.c \
src/import/import-compress.h
systemd_export_CFLAGS = \
$( AM_CFLAGS) \
$( XZ_CFLAGS) \
$( ZLIB_CFLAGS)
systemd_export_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2015-03-09 19:55:07 +03:00
$( XZ_LIBS) \
$( ZLIB_LIBS) \
-lbz2
resolved: respond to local resolver requests on 127.0.0.53:53
In order to improve compatibility with local clients that speak DNS directly
(and do not use NSS or our bus API) listen locally on 127.0.0.53:53 and process
any queries made that way.
Note that resolved does not implement a full DNS server on this port, but
simply enough to allow normal, local clients to resolve RRs through resolved.
Specifically it does not implement queries without the RD bit set (these are
requests where recursive lookups are explicitly disabled), and neither queries
with DNSSEC DO set in combination with DNSSEC CD (i.e. DNSSEC lookups with
validation turned off). It also refuses zone transfers and obsolete RR types.
All lookups done this way will be rejected with a clean error code, so that the
client side can repeat the query with a reduced feature set.
The code will set the DNSSEC AD flag however, depending on whether the data
resolved has been validated (or comes from a local, trusted source).
Lookups made via this mechanisms are propagated to LLMNR and mDNS as necessary,
but this is only partially useful as DNS packets cannot carry IP scope data
(i.e. the ifindex), and hence link-local addresses returned cannot be used
properly (and given that LLMNR/mDNS are mostly about link-local communication
this is quite a limitation). Also, given that DNS tends to use IDNA for
non-ASCII names, while LLMNR/mDNS uses UTF-8 lookups cannot be mapped 1:1.
In general this should improve compatibility with clients bypassing NSS but
it is highly recommended for clients to instead use NSS or our native bus API.
This patch also beefs up the DnsStream logic, as it reuses the code for local
TCP listening. DnsStream now provides proper reference counting for its
objects.
In order to avoid feedback loops resolved will no silently ignore 127.0.0.53
specified as DNS server when reading configuration.
resolved listens on 127.0.0.53:53 instead of 127.0.0.1:53 in order to leave
the latter free for local, external DNS servers or forwarders.
This also changes the "etc.conf" tmpfiles snippet to create a symlink from
/etc/resolv.conf to /usr/lib/systemd/resolv.conf by default, thus making this
stub the default mode of operation if /etc is not populated.
2016-06-21 01:58:47 +03:00
dist_rootlibexec_DATA += \
2015-01-22 05:57:15 +03:00
src/import/import-pubring.gpg
nodist_systemunit_DATA += \
units/systemd-importd.service
dist_systemunit_DATA_busnames += \
units/org.freedesktop.import1.busname
BUSNAMES_TARGET_WANTS += \
org.freedesktop.import1.busname
SYSTEM_UNIT_ALIASES += \
systemd-importd.service dbus-org.freedesktop.import1.service
dist_dbussystemservice_DATA += \
src/import/org.freedesktop.import1.service
dist_dbuspolicy_DATA += \
src/import/org.freedesktop.import1.conf
polkitpolicy_files += \
src/import/org.freedesktop.import1.policy
2015-01-16 22:07:25 +03:00
manual_tests += \
test-qcow2
test_qcow2_SOURCES = \
src/import/test-qcow2.c \
src/import/qcow2-util.c \
src/import/qcow2-util.h
test_qcow2_CFLAGS = \
$( AM_CFLAGS) \
$( ZLIB_CFLAGS)
test_qcow2_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2015-01-16 22:07:25 +03:00
$( ZLIB_LIBS)
2015-01-21 05:01:13 +03:00
2014-12-19 03:59:52 +03:00
e n d i f
2015-01-20 17:06:34 +03:00
e n d i f
e n d i f
e n d i f
2015-01-21 15:43:55 +03:00
e n d i f
2014-12-19 03:59:52 +03:00
2013-07-02 05:47:23 +04:00
e n d i f
2015-06-09 15:01:06 +03:00
polkitpolicy_in_files += \
src/import/org.freedesktop.import1.policy.in
2015-05-28 13:03:17 +03:00
EXTRA_DIST += \
2015-12-02 23:20:37 +03:00
units/systemd-importd.service.in
2015-05-28 13:03:17 +03:00
2014-05-19 00:10:48 +04:00
# ------------------------------------------------------------------------------
i f E N A B L E _ R E S O L V E D
2015-12-02 23:20:37 +03:00
2016-01-31 08:10:42 +03:00
basic_dns_sources = \
src/resolve/resolved-dns-dnssec.c \
src/resolve/resolved-dns-dnssec.h \
src/resolve/resolved-dns-packet.c \
src/resolve/resolved-dns-packet.h \
src/resolve/resolved-dns-rr.c \
src/resolve/resolved-dns-rr.h \
src/resolve/resolved-dns-answer.c \
src/resolve/resolved-dns-answer.h \
src/resolve/resolved-dns-question.c \
src/resolve/resolved-dns-question.h \
src/resolve/dns-type.c \
src/resolve/dns-type.h
2014-05-19 00:10:48 +04:00
systemd_resolved_SOURCES = \
src/resolve/resolved.c \
2014-07-16 02:26:02 +04:00
src/resolve/resolved-manager.c \
2014-08-01 18:14:59 +04:00
src/resolve/resolved-manager.h \
2014-08-01 18:04:12 +04:00
src/resolve/resolved-conf.c \
src/resolve/resolved-conf.h \
2015-11-24 18:55:30 +03:00
src/resolve/resolved-resolv-conf.c \
src/resolve/resolved-resolv-conf.h \
2014-07-16 02:26:02 +04:00
src/resolve/resolved-bus.c \
2014-08-01 18:14:59 +04:00
src/resolve/resolved-bus.h \
2014-07-16 02:26:02 +04:00
src/resolve/resolved-link.h \
src/resolve/resolved-link.c \
2016-01-19 20:32:42 +03:00
src/resolve/resolved-link-bus.c \
src/resolve/resolved-link-bus.h \
2015-07-10 22:02:38 +03:00
src/resolve/resolved-llmnr.h \
src/resolve/resolved-llmnr.c \
2015-07-10 22:48:13 +03:00
src/resolve/resolved-mdns.h \
src/resolve/resolved-mdns.c \
2014-08-14 03:00:15 +04:00
src/resolve/resolved-def.h \
2016-01-31 08:10:42 +03:00
$( basic_dns_sources) \
2014-07-16 02:26:02 +04:00
src/resolve/resolved-dns-query.h \
src/resolve/resolved-dns-query.c \
2016-01-21 00:06:26 +03:00
src/resolve/resolved-dns-synthesize.h \
src/resolve/resolved-dns-synthesize.c \
2014-07-31 19:46:40 +04:00
src/resolve/resolved-dns-transaction.h \
src/resolve/resolved-dns-transaction.c \
2014-07-16 02:26:02 +04:00
src/resolve/resolved-dns-scope.h \
src/resolve/resolved-dns-scope.c \
src/resolve/resolved-dns-server.h \
src/resolve/resolved-dns-server.c \
2015-11-24 23:12:51 +03:00
src/resolve/resolved-dns-search-domain.h \
src/resolve/resolved-dns-search-domain.c \
2014-07-17 21:38:37 +04:00
src/resolve/resolved-dns-cache.h \
2014-07-29 16:24:02 +04:00
src/resolve/resolved-dns-cache.c \
src/resolve/resolved-dns-zone.h \
src/resolve/resolved-dns-zone.c \
src/resolve/resolved-dns-stream.h \
2014-08-02 03:37:16 +04:00
src/resolve/resolved-dns-stream.c \
2015-12-03 20:31:24 +03:00
src/resolve/resolved-dns-trust-anchor.h \
src/resolve/resolved-dns-trust-anchor.c \
resolved: respond to local resolver requests on 127.0.0.53:53
In order to improve compatibility with local clients that speak DNS directly
(and do not use NSS or our bus API) listen locally on 127.0.0.53:53 and process
any queries made that way.
Note that resolved does not implement a full DNS server on this port, but
simply enough to allow normal, local clients to resolve RRs through resolved.
Specifically it does not implement queries without the RD bit set (these are
requests where recursive lookups are explicitly disabled), and neither queries
with DNSSEC DO set in combination with DNSSEC CD (i.e. DNSSEC lookups with
validation turned off). It also refuses zone transfers and obsolete RR types.
All lookups done this way will be rejected with a clean error code, so that the
client side can repeat the query with a reduced feature set.
The code will set the DNSSEC AD flag however, depending on whether the data
resolved has been validated (or comes from a local, trusted source).
Lookups made via this mechanisms are propagated to LLMNR and mDNS as necessary,
but this is only partially useful as DNS packets cannot carry IP scope data
(i.e. the ifindex), and hence link-local addresses returned cannot be used
properly (and given that LLMNR/mDNS are mostly about link-local communication
this is quite a limitation). Also, given that DNS tends to use IDNA for
non-ASCII names, while LLMNR/mDNS uses UTF-8 lookups cannot be mapped 1:1.
In general this should improve compatibility with clients bypassing NSS but
it is highly recommended for clients to instead use NSS or our native bus API.
This patch also beefs up the DnsStream logic, as it reuses the code for local
TCP listening. DnsStream now provides proper reference counting for its
objects.
In order to avoid feedback loops resolved will no silently ignore 127.0.0.53
specified as DNS server when reading configuration.
resolved listens on 127.0.0.53:53 instead of 127.0.0.1:53 in order to leave
the latter free for local, external DNS servers or forwarders.
This also changes the "etc.conf" tmpfiles snippet to create a symlink from
/etc/resolv.conf to /usr/lib/systemd/resolv.conf by default, thus making this
stub the default mode of operation if /etc is not populated.
2016-06-21 01:58:47 +03:00
src/resolve/resolved-dns-stub.h \
src/resolve/resolved-dns-stub.c \
2016-01-22 14:24:20 +03:00
src/resolve/resolved-etc-hosts.h \
src/resolve/resolved-etc-hosts.c \
2016-01-29 02:24:27 +03:00
src/shared/gcrypt-util.c \
src/shared/gcrypt-util.h
2014-05-21 01:31:59 +04:00
2014-05-19 00:10:48 +04:00
nodist_systemd_resolved_SOURCES = \
2015-05-25 12:18:18 +03:00
src/resolve/dns_type-from-name.h \
src/resolve/dns_type-to-name.h \
2014-05-19 00:10:48 +04:00
src/resolve/resolved-gperf.c
2016-06-25 05:14:25 +03:00
systemd_resolved_CFLAGS = \
$( AM_CFLAGS) \
$( GCRYPT_CFLAGS)
2014-05-19 00:10:48 +04:00
systemd_resolved_LDADD = \
2014-05-22 04:41:32 +04:00
libsystemd-network.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
$( GCRYPT_LIBS) \
-lm
2014-05-19 00:10:48 +04:00
rootlibexec_PROGRAMS += \
systemd-resolved
nodist_systemunit_DATA += \
units/systemd-resolved.service
2014-09-04 01:34:29 +04:00
dist_systemunit_DATA_busnames += \
2014-07-16 05:48:10 +04:00
units/org.freedesktop.resolve1.busname
2014-07-16 05:39:09 +04:00
dist_dbuspolicy_DATA += \
src/resolve/org.freedesktop.resolve1.conf
dist_dbussystemservice_DATA += \
src/resolve/org.freedesktop.resolve1.service
2014-07-16 05:48:10 +04:00
SYSTEM_UNIT_ALIASES += \
systemd-resolved.service dbus-org.freedesktop.resolve1.service
BUSNAMES_TARGET_WANTS += \
org.freedesktop.resolve1.busname
2014-05-19 00:10:48 +04:00
GENERAL_ALIASES += \
$( systemunitdir) /systemd-resolved.service $( pkgsysconfdir) /system/multi-user.target.wants/systemd-resolved.service
nodist_pkgsysconf_DATA += \
src/resolve/resolved.conf
2014-07-16 05:31:30 +04:00
libnss_resolve_la_SOURCES = \
src/nss-resolve/nss-resolve.sym \
src/nss-resolve/nss-resolve.c
libnss_resolve_la_LDFLAGS = \
$( AM_LDFLAGS) \
-module \
-export-dynamic \
-avoid-version \
-shared \
-shrext .so.2 \
-Wl,--version-script= $( top_srcdir) /src/nss-resolve/nss-resolve.sym
libnss_resolve_la_LIBADD = \
2015-11-23 23:56:47 +03:00
libsystemd-internal.la \
2016-06-25 05:14:25 +03:00
libbasic.la \
2015-10-13 21:06:04 +03:00
-ldl
2014-07-16 05:31:30 +04:00
2016-09-20 22:24:45 +03:00
rootlib_LTLIBRARIES += \
2014-07-16 05:31:30 +04:00
libnss_resolve.la
2016-01-21 00:10:00 +03:00
systemd_resolve_SOURCES = \
src/resolve/resolve-tool.c \
2016-01-31 08:10:42 +03:00
$( basic_dns_sources) \
2016-01-29 02:24:27 +03:00
src/shared/gcrypt-util.c \
src/shared/gcrypt-util.h
2015-05-25 12:18:18 +03:00
2016-01-21 00:10:00 +03:00
nodist_systemd_resolve_SOURCES = \
2014-08-02 03:37:16 +04:00
src/resolve/dns_type-from-name.h \
src/resolve/dns_type-to-name.h
2014-07-17 00:55:23 +04:00
2016-06-25 05:14:25 +03:00
systemd_resolve_CFLAGS = \
$( AM_CFLAGS) \
$( GCRYPT_CFLAGS)
2016-01-21 00:10:00 +03:00
systemd_resolve_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
$( GCRYPT_LIBS) \
-lm
2014-07-17 00:55:23 +04:00
2016-01-29 16:45:41 +03:00
bin_PROGRAMS += \
2016-01-21 00:10:00 +03:00
systemd-resolve
2014-07-17 00:55:23 +04:00
2016-02-17 02:17:01 +03:00
dist_bashcompletion_data += \
shell-completion/bash/systemd-resolve
dist_zshcompletion_data += \
shell-completion/zsh/_systemd-resolve
2015-12-02 23:20:37 +03:00
tests += \
2016-02-18 11:39:38 +03:00
test-dns-packet \
test-resolve-tables \
2015-12-02 23:20:37 +03:00
test-dnssec
2016-01-15 04:24:39 +03:00
manual_tests += \
test-dnssec-complex
2016-01-31 08:10:42 +03:00
test_resolve_tables_SOURCES = \
src/resolve/test-resolve-tables.c \
src/resolve/dns_type-from-name.h \
src/resolve/dns_type-to-name.h \
$( basic_dns_sources) \
src/shared/test-tables.h
2016-06-25 05:14:25 +03:00
test_resolve_tables_CFLAGS = \
$( AM_CFLAGS) \
$( GCRYPT_CFLAGS)
2016-01-31 08:10:42 +03:00
test_resolve_tables_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
$( GCRYPT_LIBS) \
-lm
2016-01-31 08:10:42 +03:00
test_dns_packet_SOURCES = \
src/resolve/test-dns-packet.c \
$( basic_dns_sources)
2016-02-11 17:18:32 +03:00
test_dns_packet_CPPFLAGS = \
$( AM_CPPFLAGS) \
-DRESOLVE_TEST_DIR= \" $( abs_top_srcdir) /src/resolve/test-data\"
2016-06-25 05:14:25 +03:00
test_dns_packet_CFLAGS = \
$( AM_CFLAGS) \
$( GCRYPT_CFLAGS)
2016-01-31 08:10:42 +03:00
test_dns_packet_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
$( GCRYPT_LIBS) \
-lm
2016-01-31 08:10:42 +03:00
EXTRA_DIST += \
src/resolve/test-data/_openpgpkey.fedoraproject.org.pkts \
src/resolve/test-data/fedoraproject.org.pkts \
src/resolve/test-data/gandi.net.pkts \
src/resolve/test-data/google.com.pkts \
src/resolve/test-data/root.pkts \
src/resolve/test-data/sw1a1aa-sw1a2aa-sw1a2ab-sw1a2ac.find.me.uk.pkts \
src/resolve/test-data/teamits.com.pkts \
2016-02-01 00:23:00 +03:00
src/resolve/test-data/zbyszek@fedoraproject.org.pkts \
src/resolve/test-data/_443._tcp.fedoraproject.org.pkts \
2016-02-02 05:35:44 +03:00
src/resolve/test-data/kyhwana.org.pkts \
src/resolve/test-data/fake-caa.pkts
2016-01-31 08:10:42 +03:00
2015-12-02 23:20:37 +03:00
test_dnssec_SOURCES = \
src/resolve/test-dnssec.c \
2016-01-31 08:10:42 +03:00
$( basic_dns_sources)
2015-12-02 23:20:37 +03:00
2016-06-25 05:14:25 +03:00
test_dnssec_CFLAGS = \
$( AM_CFLAGS) \
$( GCRYPT_CFLAGS)
2015-12-02 23:20:37 +03:00
test_dnssec_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
$( GCRYPT_LIBS) \
-lm
2015-12-02 23:20:37 +03:00
2016-01-15 04:24:39 +03:00
test_dnssec_complex_SOURCES = \
src/resolve/test-dnssec-complex.c \
src/resolve/dns-type.c \
src/resolve/dns-type.h
test_dnssec_complex_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2016-01-15 04:24:39 +03:00
2015-12-02 23:20:37 +03:00
e n d i f
2014-05-19 00:10:48 +04:00
2015-12-07 07:31:34 +03:00
gperf_txt_sources += \
src/resolve/dns_type-list.txt
gperf_gperf_sources += \
src/resolve/resolved-gperf.gperf
2015-05-28 13:03:17 +03:00
EXTRA_DIST += \
2015-12-02 23:20:37 +03:00
units/systemd-resolved.service.m4.in \
src/resolve/resolved.conf.in
2015-05-28 13:03:17 +03:00
resolved: respond to local resolver requests on 127.0.0.53:53
In order to improve compatibility with local clients that speak DNS directly
(and do not use NSS or our bus API) listen locally on 127.0.0.53:53 and process
any queries made that way.
Note that resolved does not implement a full DNS server on this port, but
simply enough to allow normal, local clients to resolve RRs through resolved.
Specifically it does not implement queries without the RD bit set (these are
requests where recursive lookups are explicitly disabled), and neither queries
with DNSSEC DO set in combination with DNSSEC CD (i.e. DNSSEC lookups with
validation turned off). It also refuses zone transfers and obsolete RR types.
All lookups done this way will be rejected with a clean error code, so that the
client side can repeat the query with a reduced feature set.
The code will set the DNSSEC AD flag however, depending on whether the data
resolved has been validated (or comes from a local, trusted source).
Lookups made via this mechanisms are propagated to LLMNR and mDNS as necessary,
but this is only partially useful as DNS packets cannot carry IP scope data
(i.e. the ifindex), and hence link-local addresses returned cannot be used
properly (and given that LLMNR/mDNS are mostly about link-local communication
this is quite a limitation). Also, given that DNS tends to use IDNA for
non-ASCII names, while LLMNR/mDNS uses UTF-8 lookups cannot be mapped 1:1.
In general this should improve compatibility with clients bypassing NSS but
it is highly recommended for clients to instead use NSS or our native bus API.
This patch also beefs up the DnsStream logic, as it reuses the code for local
TCP listening. DnsStream now provides proper reference counting for its
objects.
In order to avoid feedback loops resolved will no silently ignore 127.0.0.53
specified as DNS server when reading configuration.
resolved listens on 127.0.0.53:53 instead of 127.0.0.1:53 in order to leave
the latter free for local, external DNS servers or forwarders.
This also changes the "etc.conf" tmpfiles snippet to create a symlink from
/etc/resolv.conf to /usr/lib/systemd/resolv.conf by default, thus making this
stub the default mode of operation if /etc is not populated.
2016-06-21 01:58:47 +03:00
dist_rootlibexec_DATA += \
src/resolve/resolv.conf
2013-10-17 05:18:36 +04:00
# ------------------------------------------------------------------------------
2013-11-13 00:43:17 +04:00
i f E N A B L E _ N E T W O R K D
2013-10-17 05:18:36 +04:00
rootlibexec_PROGRAMS += \
systemd-networkd
systemd_networkd_SOURCES = \
2014-02-27 02:16:34 +04:00
src/network/networkd.c
systemd_networkd_LDADD = \
2015-06-13 21:35:37 +03:00
libnetworkd-core.la
2014-02-27 02:16:34 +04:00
2015-01-13 15:47:08 +03:00
i f H A V E _ L I B I P T C
systemd_networkd_LDADD += \
2015-06-09 15:27:33 +03:00
libfirewall.la
2015-01-13 15:47:08 +03:00
e n d i f
2014-02-27 02:16:34 +04:00
noinst_LTLIBRARIES += \
2015-06-09 15:27:33 +03:00
libnetworkd-core.la
2014-02-27 02:16:34 +04:00
2015-06-09 15:27:33 +03:00
libnetworkd_core_la_CFLAGS = \
2014-06-02 23:50:50 +04:00
$( AM_CFLAGS)
2014-05-14 03:35:20 +04:00
2015-06-09 15:27:33 +03:00
libnetworkd_core_la_SOURCES = \
networkd-wait-online: improve interoptability and enable by default
To make sure we don't delay boot on systems where (some) network links are managed by someone else
we don't block if something else has successfully brought up a link.
We will still block until all links we are aware of that are managed by networkd have been
configured, but if no such links exist, and someone else have configured a link sufficiently
that it has a carrier, it may be that the link is ready so we should no longer block.
Note that in all likelyhood the link is not ready (no addresses/routes configured),
so whatever network managment daemon configured it should provide a similar wait-online
service to block network-online.target until it is ready.
The aim is to block as long as we know networking is not fully configured, but no longer. This
will allow systemd-networkd-wait-online.service to be enabled on any system, even if we don't
know whether networkd is the main/only network manager.
Even in the case networking is fully configured by networkd, the default behavior may not be
sufficient: if two links need to be configured, but the first is fully configured before the
second one appears we will assume the network is up. To work around that, we allow specifying
specific devices to wait for before considering the network up.
This unit is enabled by default, just like systemd-networkd, but will only be pulled in if
anyone pulls in network-online.target.
2014-04-23 19:42:55 +04:00
src/libsystemd-network/network-internal.h \
2016-11-13 04:01:19 +03:00
src/network/netdev/netdev.h \
src/network/netdev/netdev.c \
src/network/netdev/vrf.h \
src/network/netdev/vrf.c \
src/network/netdev/tunnel.h \
src/network/netdev/tunnel.c \
src/network/netdev/veth.h \
src/network/netdev/veth.c \
src/network/netdev/vxlan.h \
src/network/netdev/vxlan.c \
src/network/netdev/vlan.h \
src/network/netdev/vlan.c \
src/network/netdev/macvlan.h \
src/network/netdev/macvlan.c \
src/network/netdev/ipvlan.h \
src/network/netdev/ipvlan.c \
src/network/netdev/dummy.h \
src/network/netdev/dummy.c \
src/network/netdev/tuntap.h \
src/network/netdev/tuntap.c \
src/network/netdev/bond.h \
src/network/netdev/bond.c \
src/network/netdev/bridge.h \
src/network/netdev/bridge.c \
src/network/netdev/vcan.h \
src/network/netdev/vcan.c \
2016-11-13 06:59:06 +03:00
src/network/networkd-manager.h \
src/network/networkd-manager.c \
src/network/networkd-manager-bus.c \
src/network/networkd-conf.h \
src/network/networkd-conf.c \
src/network/networkd-link.h \
src/network/networkd-link.c \
2015-02-04 13:44:37 +03:00
src/network/networkd-link-bus.c \
2014-08-06 17:54:03 +04:00
src/network/networkd-ipv4ll.c \
2014-08-08 14:12:17 +04:00
src/network/networkd-dhcp4.c \
2014-12-10 17:17:34 +03:00
src/network/networkd-dhcp6.c \
network: beef up ipv6 RA support considerably
This reworks sd-ndisc and networkd substantially to support IPv6 RA much more
comprehensively. Since the API is extended quite a bit networkd has been ported
over too, and the patch is not as straight-forward as one could wish. The
rework includes:
- Support for DNSSL, RDNSS and RA routing options in sd-ndisc and networkd. Two
new configuration options have been added to networkd to make this
configurable.
- sd-ndisc now exposes an sd_ndisc_router object that encapsulates a full RA
message, and has direct, friendly acessor functions for the singleton RA
properties, as well as an iterative interface to iterate through known and
unsupported options. The router object may either be retrieved from the wire,
or generated from raw data. In many ways the sd-ndisc API now matches the
sd-lldp API, except that no implicit database of seen data is kept. (Note
that sd-ndisc actually had a half-written, but unused implementaiton of such
a store, which is removed now.)
- sd-ndisc will now collect the reception timestamps of RA, which is useful to
make sd_ndisc_router fully descriptive of what it covers.
Fixes: #1079
2016-06-02 21:38:12 +03:00
src/network/networkd-ndisc.h \
2015-10-16 22:09:15 +03:00
src/network/networkd-ndisc.c \
2015-08-27 14:59:06 +03:00
src/network/networkd-network.h \
2013-10-17 05:18:36 +04:00
src/network/networkd-network.c \
2015-02-08 15:27:56 +03:00
src/network/networkd-network-bus.c \
2015-08-27 14:59:06 +03:00
src/network/networkd-address.h \
2013-10-17 05:18:36 +04:00
src/network/networkd-address.c \
2015-08-27 14:59:06 +03:00
src/network/networkd-route.h \
2013-10-17 05:18:36 +04:00
src/network/networkd-route.c \
2015-08-27 14:59:06 +03:00
src/network/networkd-fdb.h \
2014-12-17 18:35:36 +03:00
src/network/networkd-fdb.c \
2016-06-01 16:18:21 +03:00
src/network/networkd-brvlan.h \
src/network/networkd-brvlan.c \
2015-08-27 14:59:06 +03:00
src/network/networkd-address-pool.h \
src/network/networkd-address-pool.c \
src/network/networkd-util.h \
2016-02-21 16:14:08 +03:00
src/network/networkd-util.c \
src/network/networkd-lldp-tx.h \
src/network/networkd-lldp-tx.c
2013-10-17 05:18:36 +04:00
2015-06-09 15:27:33 +03:00
nodist_libnetworkd_core_la_SOURCES = \
2016-03-31 02:33:55 +03:00
src/network/networkd-gperf.c \
2014-02-20 22:56:50 +04:00
src/network/networkd-network-gperf.c \
2016-11-13 04:01:19 +03:00
src/network/netdev/netdev-gperf.c
2013-10-17 05:18:36 +04:00
2015-06-09 15:27:33 +03:00
libnetworkd_core_la_LIBADD = \
2014-02-27 04:24:05 +04:00
libsystemd-network.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-10-17 05:18:36 +04:00
2014-02-28 04:02:01 +04:00
rootlibexec_PROGRAMS += \
systemd-networkd-wait-online
2014-05-14 03:35:20 +04:00
systemd_networkd_wait_online_CFLAGS = \
2014-06-02 23:50:50 +04:00
$( AM_CFLAGS)
2014-05-14 03:35:20 +04:00
2014-02-28 04:02:01 +04:00
systemd_networkd_wait_online_SOURCES = \
networkd-wait-online: improve interoptability and enable by default
To make sure we don't delay boot on systems where (some) network links are managed by someone else
we don't block if something else has successfully brought up a link.
We will still block until all links we are aware of that are managed by networkd have been
configured, but if no such links exist, and someone else have configured a link sufficiently
that it has a carrier, it may be that the link is ready so we should no longer block.
Note that in all likelyhood the link is not ready (no addresses/routes configured),
so whatever network managment daemon configured it should provide a similar wait-online
service to block network-online.target until it is ready.
The aim is to block as long as we know networking is not fully configured, but no longer. This
will allow systemd-networkd-wait-online.service to be enabled on any system, even if we don't
know whether networkd is the main/only network manager.
Even in the case networking is fully configured by networkd, the default behavior may not be
sufficient: if two links need to be configured, but the first is fully configured before the
second one appears we will assume the network is up. To work around that, we allow specifying
specific devices to wait for before considering the network up.
This unit is enabled by default, just like systemd-networkd, but will only be pulled in if
anyone pulls in network-online.target.
2014-04-23 19:42:55 +04:00
src/libsystemd-network/network-internal.h \
2016-11-13 03:29:28 +03:00
src/network/wait-online/link.h \
src/network/wait-online/link.c \
src/network/wait-online/manager.h \
src/network/wait-online/manager.c \
src/network/wait-online/wait-online.c
networkd-wait-online: improve interoptability and enable by default
To make sure we don't delay boot on systems where (some) network links are managed by someone else
we don't block if something else has successfully brought up a link.
We will still block until all links we are aware of that are managed by networkd have been
configured, but if no such links exist, and someone else have configured a link sufficiently
that it has a carrier, it may be that the link is ready so we should no longer block.
Note that in all likelyhood the link is not ready (no addresses/routes configured),
so whatever network managment daemon configured it should provide a similar wait-online
service to block network-online.target until it is ready.
The aim is to block as long as we know networking is not fully configured, but no longer. This
will allow systemd-networkd-wait-online.service to be enabled on any system, even if we don't
know whether networkd is the main/only network manager.
Even in the case networking is fully configured by networkd, the default behavior may not be
sufficient: if two links need to be configured, but the first is fully configured before the
second one appears we will assume the network is up. To work around that, we allow specifying
specific devices to wait for before considering the network up.
This unit is enabled by default, just like systemd-networkd, but will only be pulled in if
anyone pulls in network-online.target.
2014-04-23 19:42:55 +04:00
2014-02-28 04:02:01 +04:00
systemd_networkd_wait_online_LDADD = \
2014-04-29 18:26:09 +04:00
libsystemd-network.la \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2014-02-28 04:02:01 +04:00
2014-08-12 03:41:42 +04:00
rootbin_PROGRAMS += \
networkctl
networkctl_SOURCES = \
src/network/networkctl.c
networkctl_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la \
2014-08-12 03:41:42 +04:00
libsystemd-network.la
2016-02-03 00:10:36 +03:00
dist_bashcompletion_data += \
2015-11-19 19:41:41 +03:00
shell-completion/bash/networkctl
2016-11-29 21:00:38 +03:00
dist_zshcompletion_data += \
shell-completion/zsh/_networkctl
2016-04-30 01:46:53 +03:00
test_networkd_conf_SOURCES = \
src/network/test-networkd-conf.c
test_networkd_conf_LDADD = \
libnetworkd-core.la
2013-10-17 05:18:36 +04:00
test_network_SOURCES = \
2014-02-27 02:16:34 +04:00
src/network/test-network.c
2013-10-17 05:18:36 +04:00
test_network_LDADD = \
2015-06-13 21:35:37 +03:00
libnetworkd-core.la
2013-10-17 05:18:36 +04:00
2015-01-13 15:47:08 +03:00
i f H A V E _ L I B I P T C
test_network_LDADD += \
2015-06-09 15:27:33 +03:00
libfirewall.la
2015-01-13 15:47:08 +03:00
e n d i f
2014-07-10 06:29:24 +04:00
test_network_tables_SOURCES = \
src/network/test-network-tables.c \
src/shared/test-tables.h
test_network_tables_LDADD = \
2015-06-09 15:27:33 +03:00
libnetworkd-core.la \
2014-07-10 06:29:24 +04:00
libudev-core.la
2015-01-16 17:35:42 +03:00
i f H A V E _ L I B I P T C
test_network_tables_LDADD += \
2015-06-09 15:27:33 +03:00
libfirewall.la
2015-01-16 17:35:42 +03:00
e n d i f
2013-12-11 21:14:52 +04:00
tests += \
2016-04-30 01:46:53 +03:00
test-networkd-conf \
2014-07-10 06:29:24 +04:00
test-network \
test-network-tables
2013-10-17 05:18:36 +04:00
2015-02-03 06:59:22 +03:00
dist_systemunit_DATA += \
units/systemd-networkd.socket
2014-05-16 21:44:22 +04:00
nodist_systemunit_DATA += \
units/systemd-networkd.service \
units/systemd-networkd-wait-online.service
2015-02-04 13:44:37 +03:00
dist_systemunit_DATA_busnames += \
units/org.freedesktop.network1.busname
dist_dbussystemservice_DATA += \
src/network/org.freedesktop.network1.service
dist_dbuspolicy_DATA += \
src/network/org.freedesktop.network1.conf
2014-05-16 21:44:22 +04:00
GENERAL_ALIASES += \
2015-02-02 00:13:26 +03:00
$( systemunitdir) /systemd-networkd.socket $( pkgsysconfdir) /system/sockets.target.wants/systemd-networkd.socket \
2014-05-16 21:44:22 +04:00
$( systemunitdir) /systemd-networkd.service $( pkgsysconfdir) /system/multi-user.target.wants/systemd-networkd.service \
2014-06-09 16:48:21 +04:00
$( systemunitdir) /systemd-networkd-wait-online.service $( pkgsysconfdir) /system/network-online.target.wants/systemd-networkd-wait-online.service
2014-05-16 21:44:22 +04:00
2015-02-08 21:43:01 +03:00
SYSTEM_UNIT_ALIASES += \
systemd-networkd.service dbus-org.freedesktop.network1.service
BUSNAMES_TARGET_WANTS += \
org.freedesktop.network1.busname
2016-11-22 10:05:18 +03:00
polkitrules_files += \
src/network/systemd-networkd.rules
polkitpkla_files += \
src/network/systemd-networkd.pkla
2015-12-04 08:48:09 +03:00
e n d i f
2015-03-03 16:33:15 +03:00
gperf_gperf_sources += \
2016-03-31 02:33:55 +03:00
src/network/networkd-gperf.gperf \
2014-02-20 22:56:50 +04:00
src/network/networkd-network-gperf.gperf \
2016-11-13 04:01:19 +03:00
src/network/netdev/netdev-gperf.gperf
2015-03-03 16:33:15 +03:00
EXTRA_DIST += \
2016-11-22 10:05:18 +03:00
src/network/systemd-networkd.rules \
src/network/systemd-networkd.pkla \
2015-05-15 23:59:24 +03:00
units/systemd-networkd.service.m4.in \
2015-11-17 20:30:50 +03:00
units/systemd-networkd-wait-online.service.in \
test/networkd-test.py
2013-10-17 05:18:36 +04:00
2011-12-31 12:17:48 +04:00
# ------------------------------------------------------------------------------
i f E N A B L E _ L O G I N D
systemd_logind_SOURCES = \
src/login/logind.c \
2013-07-05 08:25:26 +04:00
src/login/logind.h
nodist_systemd_logind_SOURCES = \
src/login/logind-gperf.c
systemd_logind_LDADD = \
2015-06-09 15:27:33 +03:00
liblogind-core.la
2013-07-05 08:25:26 +04:00
2015-06-09 15:27:33 +03:00
liblogind_core_la_SOURCES = \
2013-09-25 19:04:41 +04:00
src/login/logind-core.c \
2011-12-31 12:17:48 +04:00
src/login/logind-device.c \
2012-04-11 05:15:34 +04:00
src/login/logind-device.h \
2012-05-30 17:01:51 +04:00
src/login/logind-button.c \
src/login/logind-button.h \
2012-12-24 01:32:48 +04:00
src/login/logind-action.c \
src/login/logind-action.h \
2011-12-31 12:17:48 +04:00
src/login/logind-seat.c \
2012-04-11 05:15:34 +04:00
src/login/logind-seat.h \
2011-12-31 12:17:48 +04:00
src/login/logind-session.c \
2012-04-11 05:15:34 +04:00
src/login/logind-session.h \
logind: introduce session-devices
A session-device is a device that is bound to a seat and used by a
session-controller to run the session. This currently includes DRM, fbdev
and evdev devices. A session-device can be created via RequestDevice() on
the dbus API of the session. You can drop it via ReleaseDevice() again.
Once the session is destroyed or you drop control of the session, all
session-devices are automatically destroyed.
Session devices follow the session "active" state. A device can be
active/running or inactive/paused. Whenever a session is not the active
session, no session-device of it can be active. That is, if a session is
not in foreground, all session-devices are paused.
Whenever a session becomes active, all devices are resumed/activated by
logind. If it fails, a device may stay paused.
With every session-device you request, you also get a file-descriptor
back. logind keeps a copy of this fd and uses kernel specific calls to
pause/resume the file-descriptors. For example, a DRM fd is muted
by logind as long as a given session is not active. Hence, the fd of the
application is also muted. Once the session gets active, logind unmutes
the fd and the application will get DRM access again.
This, however, requires kernel support. DRM devices provide DRM-Master for
synchronization, evdev devices have EVIOCREVOKE (pending on
linux-input-ML). fbdev devices do not provide such synchronization methods
(and never will).
Note that for evdev devices, we call EVIOCREVOKE once a session gets
inactive. However, this cannot be undone (the fd is still valid but mostly
unusable). So we reopen a new fd once the session is activated and send it
together with the ResumeDevice() signal.
With this infrastructure in place, compositors can now run without
CAP_SYS_ADMIN (that is, without being root). They use RequestControl() to
acquire a session and listen for devices via udev_monitor. For every
device they want to open, they call RequestDevice() on logind. This
returns a fd which they can use now. They no longer have to open the
devices themselves or call any privileged ioctls. This is all done by
logind.
Session-switches are still bound to VTs. Hence, compositors will get
notified via the usual VT mechanisms and can cleanup their state. Once the
VT switch is acknowledged as usual, logind will get notified via sysfs and
pause the old-session's devices and resume the devices of the new session.
To allow using this infrastructure with systems without VTs, we provide
notification signals. logind sends PauseDevice("force") dbus signals to
the current session controller for every device that it pauses. And it
sends ResumeDevice signals for every device that it resumes. For
seats with VTs this is sent _after_ the VT switch is acknowledged. Because
the compositor already acknowledged that it cleaned-up all devices.
However, for seats without VTs, this is used to notify the active
compositor that the session is about to be deactivated. That is, logind
sends PauseDevice("force") for each active device and then performs the
session-switch. The session-switch changes the "Active" property of the
session which can be monitored by the compositor. The new session is
activated and the ResumeDevice events are sent.
For seats without VTs, this is a forced session-switch. As this is not
backwards-compatible (xserver actually crashes, weston drops the related
devices, ..) we also provide an acknowledged session-switch. Note that
this is never used for sessions with VTs. You use the acknowledged
VT-switch on these seats.
An acknowledged session switch sends PauseDevice("pause") instead of
PauseDevice("force") to the active session. It schedules a short timeout
and waits for the session to acknowledge each of them with
PauseDeviceComplete(). Once all are acknowledged, or the session ran out
of time, a PauseDevice("force") is sent for all remaining active devices
and the session switch is performed.
Note that this is only partially implemented, yet, as we don't allow
multi-session without VTs, yet. A follow up commit will hook it up and
implemented the acknowledgements+timeout.
The implementation is quite simple. We use major/minor exclusively to
identify devices on the bus. On RequestDevice() we retrieve the
udev_device from the major/minor and search for an existing "Device"
object. If no exists, we create it. This guarantees us that we are
notified whenever the device changes seats or is removed.
We create a new SessionDevice object and link it to the related Session
and Device. Session->devices is a hashtable to lookup SessionDevice
objects via major/minor. Device->session_devices is a linked list so we
can release all linked session-devices once a device vanishes.
Now we only have to hook this up in seat_set_active() so we correctly
change device states during session-switches. As mentioned earlier, these
are forced state-changes as VTs are currently used exclusively for
multi-session implementations.
Everything else are hooks to release all session-devices once the
controller changes or a session is closed or removed.
2013-09-18 01:39:04 +04:00
src/login/logind-session-device.c \
src/login/logind-session-device.h \
2011-12-31 12:17:48 +04:00
src/login/logind-user.c \
2012-04-11 05:15:34 +04:00
src/login/logind-user.h \
2012-04-16 18:47:33 +04:00
src/login/logind-inhibit.c \
src/login/logind-inhibit.h \
2013-11-20 00:12:59 +04:00
src/login/logind-dbus.c \
2012-04-11 05:15:34 +04:00
src/login/logind-session-dbus.c \
src/login/logind-seat-dbus.c \
2011-12-31 12:17:48 +04:00
src/login/logind-user-dbus.c \
2015-04-22 18:20:42 +03:00
src/login/logind-utmp.c \
2014-03-17 21:28:30 +04:00
src/login/logind-acl.h
2010-03-31 18:29:55 +04:00
2015-06-09 15:27:33 +03:00
liblogind_core_la_LIBADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-04-10 16:53:38 +04:00
2013-09-25 19:04:41 +04:00
i f H A V E _ A C L
2015-06-09 15:27:33 +03:00
liblogind_core_la_SOURCES += \
2013-09-25 19:04:41 +04:00
src/login/logind-acl.c
e n d i f
2013-07-05 08:25:26 +04:00
noinst_LTLIBRARIES += \
2015-06-09 15:27:33 +03:00
liblogind-core.la
2010-08-21 05:57:47 +04:00
2011-12-31 12:17:48 +04:00
rootlibexec_PROGRAMS += \
2015-02-25 21:47:26 +03:00
systemd-logind
2011-12-31 12:17:48 +04:00
2012-03-26 22:58:47 +04:00
loginctl_SOURCES = \
2011-12-31 12:17:48 +04:00
src/login/loginctl.c \
2014-12-23 21:19:11 +03:00
src/login/sysfs-show.h \
2012-04-12 03:51:49 +04:00
src/login/sysfs-show.c
2010-06-18 02:44:57 +04:00
2012-03-26 22:58:47 +04:00
loginctl_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2010-06-15 04:51:55 +04:00
2011-12-31 12:17:48 +04:00
rootbin_PROGRAMS += \
2012-03-26 22:58:47 +04:00
loginctl
2016-02-03 00:10:36 +03:00
dist_bashcompletion_data += \
2013-03-03 01:34:01 +04:00
shell-completion/bash/loginctl
2016-02-03 00:10:36 +03:00
dist_zshcompletion_data += \
2013-07-29 23:12:15 +04:00
shell-completion/zsh/_loginctl \
shell-completion/zsh/_systemd-inhibit
2013-07-29 23:03:43 +04:00
2012-05-05 02:34:48 +04:00
systemd_inhibit_SOURCES = \
src/login/inhibit.c
systemd_inhibit_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-05-05 02:34:48 +04:00
rootbin_PROGRAMS += \
systemd-inhibit
2011-12-31 12:17:48 +04:00
test_login_SOURCES = \
2014-03-17 21:28:30 +04:00
src/libsystemd/sd-login/test-login.c
2011-12-31 12:17:48 +04:00
test_login_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2010-06-18 00:50:06 +04:00
2013-09-16 20:04:20 +04:00
test_login_shared_SOURCES = \
src/login/test-login-shared.c
test_login_shared_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2013-09-16 20:04:20 +04:00
2012-04-16 18:47:33 +04:00
test_inhibit_SOURCES = \
src/login/test-inhibit.c
test_inhibit_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2012-04-16 18:47:33 +04:00
2013-07-05 08:25:26 +04:00
test_login_tables_SOURCES = \
src/login/test-login-tables.c
test_login_tables_LDADD = \
2015-06-09 15:27:33 +03:00
liblogind-core.la
2013-07-05 08:25:26 +04:00
2013-04-18 16:40:24 +04:00
manual_tests += \
2012-04-16 18:47:33 +04:00
test-login \
test-inhibit
2010-09-17 03:26:29 +04:00
2013-07-05 08:25:26 +04:00
tests += \
2013-09-16 20:04:20 +04:00
test-login-tables \
test-login-shared
2013-07-05 08:25:26 +04:00
2011-12-31 12:17:48 +04:00
i f H A V E _ P A M
pam_systemd_la_SOURCES = \
2014-06-21 17:45:49 +04:00
src/login/pam_systemd.sym \
2014-06-21 17:44:14 +04:00
src/login/pam_systemd.c
2010-09-23 17:01:41 +04:00
2011-12-31 12:17:48 +04:00
pam_systemd_la_CFLAGS = \
$( AM_CFLAGS) \
2015-06-17 08:23:31 +03:00
$( PAM_CFLAGS)
2010-09-23 17:01:41 +04:00
2011-12-31 12:17:48 +04:00
pam_systemd_la_LDFLAGS = \
2012-04-11 05:29:31 +04:00
$( AM_LDFLAGS) \
2011-12-31 12:17:48 +04:00
-module \
-export-dynamic \
-avoid-version \
-shared \
2014-06-21 17:45:49 +04:00
-Wl,--version-script= $( top_srcdir) /src/login/pam_systemd.sym
2011-12-31 12:17:48 +04:00
pam_systemd_la_LIBADD = \
2015-06-09 15:27:33 +03:00
libshared.la \
2012-04-12 20:29:20 +04:00
$( PAM_LIBS)
2010-09-23 17:01:41 +04:00
2011-12-31 12:17:48 +04:00
pamlib_LTLIBRARIES = \
pam_systemd.la
Add pam configuration to allow user sessions to work out of the box
systemd-logind will start user@.service. user@.service unit uses
PAM with service name 'systemd-user' to perform account and session
managment tasks. Previously, the name was 'systemd-shared', it is
now changed to 'systemd-user'.
Most PAM installations use one common setup for different callers.
Based on a quick poll, distributions fall into two camps: those that
have system-auth (Redhat, Fedora, CentOS, Arch, Gentoo, Mageia,
Mandriva), and those that have common-auth (Debian, Ubuntu, OpenSUSE).
Distributions that have system-auth have just one configuration file
that contains auth, password, account, and session blocks, and
distributions that have common-auth also have common-session,
common-password, and common-account. It is thus impossible to use one
configuration file which would work for everybody. systemd-user now
refers to system-auth, because it seems that the approach with one
file is more popular and also easier, so let's follow that.
2013-09-11 22:31:14 +04:00
2016-10-12 17:56:27 +03:00
i f E N A B L E _ P A M _ C O N F I G
Add pam configuration to allow user sessions to work out of the box
systemd-logind will start user@.service. user@.service unit uses
PAM with service name 'systemd-user' to perform account and session
managment tasks. Previously, the name was 'systemd-shared', it is
now changed to 'systemd-user'.
Most PAM installations use one common setup for different callers.
Based on a quick poll, distributions fall into two camps: those that
have system-auth (Redhat, Fedora, CentOS, Arch, Gentoo, Mageia,
Mandriva), and those that have common-auth (Debian, Ubuntu, OpenSUSE).
Distributions that have system-auth have just one configuration file
that contains auth, password, account, and session blocks, and
distributions that have common-auth also have common-session,
common-password, and common-account. It is thus impossible to use one
configuration file which would work for everybody. systemd-user now
refers to system-auth, because it seems that the approach with one
file is more popular and also easier, so let's follow that.
2013-09-11 22:31:14 +04:00
dist_pamconf_DATA = \
src/login/systemd-user
2016-10-12 17:56:27 +03:00
e n d i f
2015-02-28 01:26:26 +03:00
2015-09-17 18:15:28 +03:00
EXTRA_DIST += \
src/login/systemd-user.m4
2011-12-31 12:17:48 +04:00
e n d i f
2010-09-23 17:01:41 +04:00
2011-12-31 12:17:48 +04:00
nodist_systemunit_DATA += \
2015-02-25 21:47:26 +03:00
units/systemd-logind.service
2013-06-20 08:20:55 +04:00
dist_systemunit_DATA += \
2014-09-04 01:34:29 +04:00
units/user.slice
dist_systemunit_DATA_busnames += \
2013-12-03 07:27:03 +04:00
units/org.freedesktop.login1.busname
2011-03-14 04:40:36 +03:00
2011-12-31 12:17:48 +04:00
dist_dbussystemservice_DATA += \
src/login/org.freedesktop.login1.service
2011-03-14 04:40:36 +03:00
2011-12-31 12:17:48 +04:00
dist_dbuspolicy_DATA += \
src/login/org.freedesktop.login1.conf
2011-03-14 04:40:36 +03:00
2016-04-12 05:51:31 +03:00
nodist_pkgsysconf_DATA += \
2012-03-31 01:18:33 +04:00
src/login/logind.conf
2011-03-12 03:03:13 +03:00
2012-07-28 06:43:38 +04:00
polkitpolicy_files += \
src/login/org.freedesktop.login1.policy
2010-06-16 03:58:50 +04:00
2013-01-23 07:24:54 +04:00
INSTALL_DIRS += \
$( systemdstatedir)
MULTI_USER_TARGET_WANTS += \
2015-02-25 21:47:26 +03:00
systemd-logind.service
2013-01-23 07:24:54 +04:00
2013-01-23 08:51:51 +04:00
SYSTEM_UNIT_ALIASES += \
systemd-logind.service dbus-org.freedesktop.login1.service
2010-09-17 03:26:29 +04:00
2013-12-03 07:27:03 +04:00
BUSNAMES_TARGET_WANTS += \
org.freedesktop.login1.busname
2011-12-31 12:17:48 +04:00
dist_udevrules_DATA += \
2012-04-10 21:57:23 +04:00
src/login/70-uaccess.rules \
2012-05-30 17:01:51 +04:00
src/login/70-power-switch.rules
2012-01-22 21:20:42 +04:00
nodist_udevrules_DATA += \
2012-05-31 03:19:11 +04:00
src/login/71-seat.rules \
2012-01-22 21:20:42 +04:00
src/login/73-seat-late.rules
2011-07-15 01:06:31 +04:00
2012-07-28 06:43:38 +04:00
e n d i f
polkitpolicy_in_files += \
src/login/org.freedesktop.login1.policy.in
2015-03-03 16:33:15 +03:00
gperf_gperf_sources += \
src/login/logind-gperf.gperf
2011-12-31 12:17:48 +04:00
EXTRA_DIST += \
2012-05-31 03:19:11 +04:00
src/login/71-seat.rules.in \
2012-01-22 21:20:42 +04:00
src/login/73-seat-late.rules.in \
2016-04-12 05:51:31 +03:00
units/systemd-logind.service.in \
src/login/logind.conf.in
2011-12-31 12:17:48 +04:00
# ------------------------------------------------------------------------------
2015-02-28 01:26:26 +03:00
i f H A V E _ P A M
systemd_user_sessions_SOURCES = \
src/user-sessions/user-sessions.c
systemd_user_sessions_LDADD = \
2016-06-25 05:14:25 +03:00
libsystemd-shared.la
2015-02-28 01:26:26 +03:00
rootlibexec_PROGRAMS += \
systemd-user-sessions
nodist_systemunit_DATA += \
units/systemd-user-sessions.service
MULTI_USER_TARGET_WANTS += \
systemd-user-sessions.service
e n d i f
2015-05-28 13:03:17 +03:00
EXTRA_DIST += \
units/systemd-user-sessions.service.in
2015-02-28 01:26:26 +03:00
# ------------------------------------------------------------------------------
2015-06-23 01:13:16 +03:00
EXTRA_DIST += \
test/Makefile \
test/README.testsuite \
test/TEST-01-BASIC \
test/TEST-01-BASIC/Makefile \
test/TEST-01-BASIC/test.sh \
test/TEST-02-CRYPTSETUP \
test/TEST-02-CRYPTSETUP/Makefile \
test/TEST-02-CRYPTSETUP/test.sh \
test/TEST-03-JOBS \
test/TEST-03-JOBS/Makefile \
test/TEST-03-JOBS/test-jobs.sh \
test/TEST-03-JOBS/test.sh \
2015-11-17 14:21:23 +03:00
test/TEST-04-JOURNAL/Makefile \
test/TEST-04-JOURNAL/test-journal.sh \
test/TEST-04-JOURNAL/test.sh \
2015-11-28 19:47:56 +03:00
test/TEST-05-RLIMITS/Makefile \
test/TEST-05-RLIMITS/test-rlimits.sh \
test/TEST-05-RLIMITS/test.sh \
2016-02-10 21:13:14 +03:00
test/TEST-06-SELINUX/Makefile \
test/TEST-06-SELINUX/test-selinux-checks.sh \
test/TEST-06-SELINUX/test.sh \
test/TEST-06-SELINUX/systemd_test.te \
test/TEST-06-SELINUX/systemd_test.if \
2015-11-23 20:56:45 +03:00
test/TEST-07-ISSUE-1981/Makefile \
test/TEST-07-ISSUE-1981/test-segfault.sh \
test/TEST-07-ISSUE-1981/test.sh \
2016-05-01 19:30:53 +03:00
test/TEST-08-ISSUE-2730/Makefile \
test/TEST-08-ISSUE-2730/test.sh \
test/TEST-09-ISSUE-2691/Makefile \
test/TEST-09-ISSUE-2691/test.sh \
2016-05-02 11:57:19 +03:00
test/TEST-10-ISSUE-2467/Makefile \
test/TEST-10-ISSUE-2467/test.sh \
2016-05-03 12:43:22 +03:00
test/TEST-11-ISSUE-3166/Makefile \
test/TEST-11-ISSUE-3166/test.sh \
2016-05-07 00:05:59 +03:00
test/TEST-12-ISSUE-3171/Makefile \
test/TEST-12-ISSUE-3171/test.sh \
2016-10-14 21:42:46 +03:00
test/TEST-13-NSPAWN-SMOKE/Makefile \
test/TEST-13-NSPAWN-SMOKE/create-busybox-container \
test/TEST-13-NSPAWN-SMOKE/test.sh \
2015-06-23 01:13:16 +03:00
test/test-functions
EXTRA_DIST += \
test/loopy2.service \
test/loopy3.service \
test/loopy4.service \
test/loopy.service \
test/loopy.service.d \
test/loopy.service.d/compat.conf
2015-02-28 01:26:26 +03:00
2012-09-13 06:01:18 +04:00
# ------------------------------------------------------------------------------
2013-03-29 21:59:51 +04:00
substitutions = \
2016-11-08 11:36:41 +03:00
'|rootlibdir=$(rootlibdir)|' \
2013-03-29 21:59:51 +04:00
'|rootlibexecdir=$(rootlibexecdir)|' \
'|rootbindir=$(rootbindir)|' \
'|bindir=$(bindir)|' \
'|SYSTEMCTL=$(rootbindir)/systemctl|' \
'|SYSTEMD_NOTIFY=$(rootbindir)/systemd-notify|' \
'|pkgsysconfdir=$(pkgsysconfdir)|' \
'|SYSTEM_CONFIG_UNIT_PATH=$(pkgsysconfdir)/system|' \
'|USER_CONFIG_UNIT_PATH=$(pkgsysconfdir)/user|' \
'|pkgdatadir=$(pkgdatadir)|' \
'|systemunitdir=$(systemunitdir)|' \
'|userunitdir=$(userunitdir)|' \
'|systempresetdir=$(systempresetdir)|' \
'|userpresetdir=$(userpresetdir)|' \
'|udevhwdbdir=$(udevhwdbdir)|' \
'|udevrulesdir=$(udevrulesdir)|' \
'|catalogdir=$(catalogdir)|' \
'|tmpfilesdir=$(tmpfilesdir)|' \
sysusers: add minimal tool to reconstruct /etc/passwd and /etc/group from static files
systemd-sysusers is a tool to reconstruct /etc/passwd and /etc/group
from static definition files that take a lot of inspiration from
tmpfiles snippets. These snippets should carry information about system
users only. To make sure it is not misused for normal users these
snippets only allow configuring UID and gecos field for each user, but
do not allow configuration of the home directory or shell, which is
necessary for real login users.
The purpose of this tool is to enable state-less systems that can
populate /etc with the minimal files necessary, solely from static data
in /usr. systemd-sysuser is additive only, and will never override
existing users.
This tool will create these files directly, and not via some user
database abtsraction layer. This is appropriate as this tool is supposed
to run really early at boot, and is only useful for creating system
users, and system users cannot be stored in remote databases anyway.
The tool is also useful to be invoked from RPM scriptlets, instead of
useradd. This allows moving from imperative user descriptions in RPM to
declarative descriptions.
The UID/GID for a user/group to be created can either be chosen dynamic,
or fixed, or be read from the owner of a file in the file system, in
order to support reconstructing the correct IDs for files that shall be
owned by them.
This also adds a minimal user definition file, that should be
sufficient for most basic systems. Distributions are expected to patch
these files and augment the contents, for example with fixed UIDs for
the users where that's necessary.
2014-06-13 00:54:02 +04:00
'|sysusersdir=$(sysusersdir)|' \
2013-03-29 21:59:51 +04:00
'|sysctldir=$(sysctldir)|' \
2013-08-02 06:58:03 +04:00
'|systemgeneratordir=$(systemgeneratordir)|' \
'|usergeneratordir=$(usergeneratordir)|' \
2014-03-31 07:08:02 +04:00
'|CERTIFICATEROOT=$(CERTIFICATEROOT)|' \
2013-03-29 21:59:51 +04:00
'|PACKAGE_VERSION=$(PACKAGE_VERSION)|' \
'|PACKAGE_NAME=$(PACKAGE_NAME)|' \
'|PACKAGE_URL=$(PACKAGE_URL)|' \
2013-11-13 07:05:16 +04:00
'|RANDOM_SEED_DIR=$(localstatedir)/lib/systemd/|' \
2013-09-18 02:28:35 +04:00
'|RANDOM_SEED=$(localstatedir)/lib/systemd/random-seed|' \
2013-03-29 21:59:51 +04:00
'|prefix=$(prefix)|' \
'|exec_prefix=$(exec_prefix)|' \
'|libdir=$(libdir)|' \
'|includedir=$(includedir)|' \
'|VERSION=$(VERSION)|' \
'|rootprefix=$(rootprefix)|' \
'|udevlibexecdir=$(udevlibexecdir)|' \
'|SUSHELL=$(SUSHELL)|' \
2015-01-23 20:35:20 +03:00
'|SULOGIN=$(SULOGIN)|' \
2013-03-29 21:59:51 +04:00
'|DEBUGTTY=$(DEBUGTTY)|' \
'|KILL=$(KILL)|' \
2013-06-15 00:56:39 +04:00
'|KMOD=$(KMOD)|' \
2015-05-27 12:38:20 +03:00
'|MOUNT_PATH=$(MOUNT_PATH)|' \
'|UMOUNT_PATH=$(UMOUNT_PATH)|' \
2013-07-12 13:14:54 +04:00
'|MKDIR_P=$(MKDIR_P)|' \
2013-03-29 21:59:51 +04:00
'|QUOTAON=$(QUOTAON)|' \
'|QUOTACHECK=$(QUOTACHECK)|' \
'|SYSTEM_SYSVINIT_PATH=$(sysvinitdir)|' \
'|VARLOGDIR=$(varlogdir)|' \
'|RC_LOCAL_SCRIPT_PATH_START=$(RC_LOCAL_SCRIPT_PATH_START)|' \
'|RC_LOCAL_SCRIPT_PATH_STOP=$(RC_LOCAL_SCRIPT_PATH_STOP)|' \
'|PYTHON=$(PYTHON)|' \
2014-05-16 21:44:22 +04:00
'|NTP_SERVERS=$(NTP_SERVERS)|' \
2014-05-21 04:31:22 +04:00
'|DNS_SERVERS=$(DNS_SERVERS)|' \
2016-02-15 20:40:02 +03:00
'|DEFAULT_DNSSEC_MODE=$(DEFAULT_DNSSEC_MODE)|' \
2016-04-12 05:51:31 +03:00
'|KILL_USER_PROCESSES=$(KILL_USER_PROCESSES)|' \
2014-05-21 04:31:22 +04:00
'|systemuidmax=$(SYSTEM_UID_MAX)|' \
2014-06-13 01:22:27 +04:00
'|systemgidmax=$(SYSTEM_GID_MAX)|' \
2014-07-01 01:09:42 +04:00
'|TTY_GID=$(TTY_GID)|' \
'|systemsleepdir=$(systemsleepdir)|' \
2015-06-17 17:36:46 +03:00
'|systemshutdowndir=$(systemshutdowndir)|' \
2014-07-01 01:09:42 +04:00
'|binfmtdir=$(binfmtdir)|' \
'|modulesloaddir=$(modulesloaddir)|'
2013-03-29 21:59:51 +04:00
2010-05-17 03:34:36 +04:00
SED_PROCESS = \
2010-05-18 01:02:28 +04:00
$( AM_V_GEN) $( MKDIR_P) $( dir $@ ) && \
2013-03-29 21:59:51 +04:00
$( SED) $( subst '|,-e ' s| @,$( subst = ,\@ | ,$( subst | ',|g' ,$( substitutions) ) ) ) \
2012-07-17 19:58:14 +04:00
< $< > $@
2010-04-13 07:18:12 +04:00
2013-11-30 03:16:49 +04:00
units/% : units /%.in
2010-05-17 03:34:36 +04:00
$( SED_PROCESS)
2013-11-30 03:16:49 +04:00
man/% : man /%.in
2010-05-17 03:34:36 +04:00
$( SED_PROCESS)
2012-01-14 03:37:35 +04:00
2013-11-30 03:16:49 +04:00
sysctl.d/% : sysctl .d /%.in
2012-01-14 03:37:35 +04:00
$( SED_PROCESS)
2010-05-17 03:34:36 +04:00
2013-11-30 03:16:49 +04:00
%.pc : %.pc .in
2010-06-22 01:27:18 +04:00
$( SED_PROCESS)
2014-03-31 07:08:02 +04:00
%.conf : %.conf .in
$( SED_PROCESS)
2015-11-15 03:14:34 +03:00
src/core/%.systemd : src /core /%.systemd .in
2012-06-22 00:14:17 +04:00
$( SED_PROCESS)
2013-11-30 03:16:49 +04:00
src/%.policy.in : src /%.policy .in .in
2011-03-12 03:15:30 +03:00
$( SED_PROCESS)
2014-07-15 03:24:46 +04:00
shell-completion/% : shell -completion /%.in
$( SED_PROCESS)
2013-11-30 03:16:49 +04:00
%.rules : %.rules .in
2011-06-29 06:14:43 +04:00
$( SED_PROCESS)
2014-05-06 19:02:11 +04:00
%.conf : %.conf .in
$( SED_PROCESS)
2013-11-30 03:16:49 +04:00
%.sh : %.sh .in
2012-04-03 23:24:46 +04:00
$( SED_PROCESS)
$( AM_V_GEN) chmod +x $@
2011-08-01 02:43:05 +04:00
src/%.c : src /%.gperf
2012-07-31 01:57:50 +04:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2013-01-24 07:30:12 +04:00
$( AM_V_GPERF) $( GPERF) < $< > $@
2011-08-01 02:43:05 +04:00
2015-12-10 05:18:35 +03:00
src/% : src /%.m 4 $( top_builddir ) /config .status
2012-07-31 01:57:50 +04:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2013-01-24 07:20:23 +04:00
$( AM_V_M4) $( M4) -P $( M4_DEFINES) < $< > $@
2011-08-01 02:43:05 +04:00
2015-12-10 05:18:35 +03:00
sysusers.d/% : sysusers .d /%.m 4 $( top_builddir ) /config .status
2014-11-28 17:59:59 +03:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
$( AM_V_M4) $( M4) -P $( M4_DEFINES) < $< > $@
2015-12-10 05:18:35 +03:00
tmpfiles.d/% : tmpfiles .d /%.m 4 $( top_builddir ) /config .status
2014-08-27 19:45:41 +04:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
$( AM_V_M4) $( M4) -P $( M4_DEFINES) < $< > $@
2015-12-10 05:18:35 +03:00
units/% : units /%.m 4 $( top_builddir ) /config .status
2013-12-27 21:08:04 +04:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2013-01-30 06:18:19 +04:00
$( AM_V_M4) $( M4) -P $( M4_DEFINES) -DFOR_SYSTEM= 1 < $< > $@
2010-05-17 03:34:36 +04:00
2015-12-10 05:18:35 +03:00
units/user/% : units /user /%.m 4 $( top_builddir ) /config .status
2013-12-27 21:08:04 +04:00
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2013-01-30 06:18:19 +04:00
$( AM_V_M4) $( M4) -P $( M4_DEFINES) -DFOR_USER= 1 < $< > $@
2010-05-16 23:12:12 +04:00
2013-02-14 01:56:43 +04:00
i f E N A B L E _ P O L K I T
2014-07-04 22:43:14 +04:00
nodist_polkitpolicy_DATA = \
2012-07-28 06:43:38 +04:00
$( polkitpolicy_files) \
2012-04-12 15:34:18 +04:00
$( polkitpolicy_in_in_files:.policy.in.in= .policy)
2016-11-18 18:17:01 +03:00
polkitrules_DATA = $( polkitrules_files)
polkitpkla_DATA = $( polkitpkla_files)
2013-02-14 01:56:43 +04:00
e n d i f
2012-04-12 15:34:18 +04:00
EXTRA_DIST += \
$( polkitpolicy_in_files) \
$( polkitpolicy_in_in_files)
2013-01-30 21:14:44 +04:00
# ------------------------------------------------------------------------------
2015-05-30 01:59:22 +03:00
man/custom-entities.ent : configure .ac
2013-03-29 22:22:27 +04:00
$( AM_V_GEN) $( MKDIR_P) $( dir $@ )
$( AM_V_GEN) ( echo '<?xml version="1.0" encoding="utf-8" ?>' && \
2014-02-12 09:55:38 +04:00
printf '$(subst ' | ,<!ENTITY ,$( subst = , " , $( subst | ',">\n,$(substitutions))))' ) \
2013-03-29 22:22:27 +04:00
> $@ # '
2015-05-30 01:59:22 +03:00
CLEANFILES += \
2013-03-29 22:22:27 +04:00
man/custom-entities.ent
2010-06-23 04:26:15 +04:00
XSLTPROC_FLAGS = \
--nonet \
2014-02-12 09:55:38 +04:00
--xinclude \
2012-04-14 20:05:06 +04:00
--stringparam man.output.quietly 1 \
2012-07-13 23:54:03 +04:00
--stringparam funcsynopsis.style ansi \
--stringparam man.authors.section.enabled 0 \
2013-03-13 07:57:09 +04:00
--stringparam man.copyright.section.enabled 0 \
2013-03-29 22:22:27 +04:00
--stringparam systemd.version $( VERSION) \
--path '$(builddir)/man:$(srcdir)/man'
2010-06-23 04:26:15 +04:00
2016-01-26 02:54:31 +03:00
XSLT = $( if $( XSLTPROC) , $( XSLTPROC) , xsltproc)
2010-05-18 00:45:52 +04:00
XSLTPROC_PROCESS_MAN = \
2016-01-26 02:54:31 +03:00
$( AM_V_XSLT) $( XSLT) -o $@ $( XSLTPROC_FLAGS) $( srcdir) /man/custom-man.xsl $<
2010-05-16 01:06:41 +04:00
2010-05-18 00:45:52 +04:00
XSLTPROC_PROCESS_HTML = \
2016-01-26 02:54:31 +03:00
$( AM_V_XSLT) $( XSLT) -o $@ $( XSLTPROC_FLAGS) $( srcdir) /man/custom-html.xsl $<
2010-05-16 01:06:41 +04:00
2013-03-29 22:22:27 +04:00
man/%.1 : man /%.xml man /custom -man .xsl man /custom -entities .ent
2010-06-23 02:31:54 +04:00
$( XSLTPROC_PROCESS_MAN)
2013-03-29 22:22:27 +04:00
man/%.3 : man /%.xml man /custom -man .xsl man /custom -entities .ent
2010-06-23 03:49:57 +04:00
$( XSLTPROC_PROCESS_MAN)
2013-03-29 22:22:27 +04:00
man/%.5 : man /%.xml man /custom -man .xsl man /custom -entities .ent
2010-05-18 00:45:52 +04:00
$( XSLTPROC_PROCESS_MAN)
2013-03-29 22:22:27 +04:00
man/%.7 : man /%.xml man /custom -man .xsl man /custom -entities .ent
2010-05-18 00:45:52 +04:00
$( XSLTPROC_PROCESS_MAN)
2013-03-29 22:22:27 +04:00
man/%.8 : man /%.xml man /custom -man .xsl man /custom -entities .ent
2010-06-23 02:31:54 +04:00
$( XSLTPROC_PROCESS_MAN)
2013-03-29 22:22:27 +04:00
man/%.html : man /%.xml man /custom -html .xsl man /custom -entities .ent
2010-05-18 00:45:52 +04:00
$( XSLTPROC_PROCESS_HTML)
2013-03-08 20:03:50 +04:00
d e f i n e h t m l - a l i a s
2013-03-13 08:55:32 +04:00
$( AM_V_LN) $( LN_S) -f $( notdir $<) $@
2013-03-08 20:03:50 +04:00
e n d e f
2013-03-13 21:24:06 +04:00
EXTRA_DIST += \
man/custom-html.xsl \
man/custom-man.xsl
2013-01-30 21:14:44 +04:00
# ------------------------------------------------------------------------------
2012-10-17 22:03:21 +04:00
i f H A V E _ S Y S V _ C O M P A T
sysvinit_DATA = \
docs/sysvinit/README
varlog_DATA = \
docs/var-log/README
docs/sysvinit/README : docs /sysvinit /README .in
$( SED_PROCESS)
docs/var-log/README : docs /var -log /README .in
$( SED_PROCESS)
2012-10-22 19:20:18 +04:00
CLEANFILES += \
docs/sysvinit/README \
docs/var-log/README
2012-10-17 22:03:21 +04:00
e n d i f
2013-01-11 00:42:31 +04:00
EXTRA_DIST += \
docs/sysvinit/README.in \
docs/var-log/README.in
2013-01-23 07:24:54 +04:00
SOCKETS_TARGET_WANTS += \
2015-04-23 18:30:23 +03:00
systemd-initctl.socket
2013-01-23 07:24:54 +04:00
2014-09-24 19:25:00 +04:00
i f H A V E _ U T M P
2013-01-24 06:41:30 +04:00
i f H A V E _ S Y S V _ C O M P A T
2015-02-18 22:17:49 +03:00
MULTI_USER_TARGET_WANTS += \
2013-01-23 07:24:54 +04:00
systemd-update-utmp-runlevel.service
2015-02-18 22:17:49 +03:00
GRAPHICAL_TARGET_WANTS += \
2013-01-23 07:24:54 +04:00
systemd-update-utmp-runlevel.service
2015-02-18 22:17:49 +03:00
RESCUE_TARGET_WANTS += \
2013-01-23 07:24:54 +04:00
systemd-update-utmp-runlevel.service
2013-01-24 06:41:30 +04:00
e n d i f
update-done: add minimal tool to manage system updates for /etc and /var, if /usr has changed
In order to support offline updates to /usr, we need to be able to run
certain tasks on next boot-up to bring /etc and /var in line with the
updated /usr. Hence, let's devise a mechanism how we can detect whether
/etc or /var are not up-to-date with /usr anymore: we keep "touch
files" in /etc/.updated and /var/.updated that are mtime-compared with
/usr. This means:
Whenever the vendor OS tree in /usr is updated, and any services that
shall be executed at next boot shall be triggered, it is sufficient to
update the mtime of /usr itself. At next boot, if /etc/.updated and/or
/var/.updated is older than than /usr (or missing), we know we have to
run the update tools once. After that is completed we need to update the
mtime of these files to the one of /usr, to keep track that we made the
necessary updates, and won't repeat them on next reboot.
A subsequent commit adds a new ConditionNeedsUpdate= condition that
allows checking on boot whether /etc or /var are outdated and need
updating.
This is an early step to allow booting up with an empty /etc, with
automatic rebuilding of the necessary cache files or user databases
therein, as well as supporting later updates of /usr that then propagate
to /etc and /var again.
2014-06-13 14:43:49 +04:00
2013-05-16 02:19:03 +04:00
SYSINIT_TARGET_WANTS += \
2014-09-24 19:25:00 +04:00
systemd-update-utmp.service
e n d i f
SYSINIT_TARGET_WANTS += \
2014-08-05 14:17:09 +04:00
systemd-update-done.service
update-done: add minimal tool to manage system updates for /etc and /var, if /usr has changed
In order to support offline updates to /usr, we need to be able to run
certain tasks on next boot-up to bring /etc and /var in line with the
updated /usr. Hence, let's devise a mechanism how we can detect whether
/etc or /var are not up-to-date with /usr anymore: we keep "touch
files" in /etc/.updated and /var/.updated that are mtime-compared with
/usr. This means:
Whenever the vendor OS tree in /usr is updated, and any services that
shall be executed at next boot shall be triggered, it is sufficient to
update the mtime of /usr itself. At next boot, if /etc/.updated and/or
/var/.updated is older than than /usr (or missing), we know we have to
run the update tools once. After that is completed we need to update the
mtime of these files to the one of /usr, to keep track that we made the
necessary updates, and won't repeat them on next reboot.
A subsequent commit adds a new ConditionNeedsUpdate= condition that
allows checking on boot whether /etc or /var are outdated and need
updating.
This is an early step to allow booting up with an empty /etc, with
automatic rebuilding of the necessary cache files or user databases
therein, as well as supporting later updates of /usr that then propagate
to /etc and /var again.
2014-06-13 14:43:49 +04:00
2013-01-23 07:24:54 +04:00
LOCAL_FS_TARGET_WANTS += \
systemd-remount-fs.service \
2015-02-24 19:23:53 +03:00
tmp.mount \
var-lib-machines.mount
update-done: add minimal tool to manage system updates for /etc and /var, if /usr has changed
In order to support offline updates to /usr, we need to be able to run
certain tasks on next boot-up to bring /etc and /var in line with the
updated /usr. Hence, let's devise a mechanism how we can detect whether
/etc or /var are not up-to-date with /usr anymore: we keep "touch
files" in /etc/.updated and /var/.updated that are mtime-compared with
/usr. This means:
Whenever the vendor OS tree in /usr is updated, and any services that
shall be executed at next boot shall be triggered, it is sufficient to
update the mtime of /usr itself. At next boot, if /etc/.updated and/or
/var/.updated is older than than /usr (or missing), we know we have to
run the update tools once. After that is completed we need to update the
mtime of these files to the one of /usr, to keep track that we made the
necessary updates, and won't repeat them on next reboot.
A subsequent commit adds a new ConditionNeedsUpdate= condition that
allows checking on boot whether /etc or /var are outdated and need
updating.
This is an early step to allow booting up with an empty /etc, with
automatic rebuilding of the necessary cache files or user databases
therein, as well as supporting later updates of /usr that then propagate
to /etc and /var again.
2014-06-13 14:43:49 +04:00
2013-01-23 07:24:54 +04:00
MULTI_USER_TARGET_WANTS += \
getty.target \
2015-02-28 01:26:26 +03:00
systemd-ask-password-wall.path
update-done: add minimal tool to manage system updates for /etc and /var, if /usr has changed
In order to support offline updates to /usr, we need to be able to run
certain tasks on next boot-up to bring /etc and /var in line with the
updated /usr. Hence, let's devise a mechanism how we can detect whether
/etc or /var are not up-to-date with /usr anymore: we keep "touch
files" in /etc/.updated and /var/.updated that are mtime-compared with
/usr. This means:
Whenever the vendor OS tree in /usr is updated, and any services that
shall be executed at next boot shall be triggered, it is sufficient to
update the mtime of /usr itself. At next boot, if /etc/.updated and/or
/var/.updated is older than than /usr (or missing), we know we have to
run the update tools once. After that is completed we need to update the
mtime of these files to the one of /usr, to keep track that we made the
necessary updates, and won't repeat them on next reboot.
A subsequent commit adds a new ConditionNeedsUpdate= condition that
allows checking on boot whether /etc or /var are outdated and need
updating.
This is an early step to allow booting up with an empty /etc, with
automatic rebuilding of the necessary cache files or user databases
therein, as well as supporting later updates of /usr that then propagate
to /etc and /var again.
2014-06-13 14:43:49 +04:00
2013-01-23 07:24:54 +04:00
SYSINIT_TARGET_WANTS += \
dev-hugepages.mount \
dev-mqueue.mount \
sys-kernel-config.mount \
sys-kernel-debug.mount \
sys-fs-fuse-connections.mount \
systemd-sysctl.service \
systemd-ask-password-console.path
2013-06-02 12:54:44 +04:00
2013-01-24 06:41:30 +04:00
i f H A V E _ S Y S V _ C O M P A T
2013-01-23 08:51:51 +04:00
SYSTEM_UNIT_ALIASES += \
poweroff.target runlevel0.target \
rescue.target runlevel1.target \
multi-user.target runlevel2.target \
multi-user.target runlevel3.target \
multi-user.target runlevel4.target \
graphical.target runlevel5.target \
2013-01-24 06:41:30 +04:00
reboot.target runlevel6.target
e n d i f
2013-01-30 21:14:44 +04:00
2013-01-24 06:41:30 +04:00
SYSTEM_UNIT_ALIASES += \
2013-01-23 08:51:51 +04:00
graphical.target default.target \
reboot.target ctrl-alt-del.target \
getty@.service autovt@.service
GENERAL_ALIASES += \
$( systemunitdir) /remote-fs.target $( pkgsysconfdir) /system/multi-user.target.wants/remote-fs.target \
$( systemunitdir) /getty@.service $( pkgsysconfdir) /system/getty.target.wants/getty@tty1.service \
$( pkgsysconfdir) /user $( sysconfdir) /xdg/systemd/user \
2014-03-03 20:10:16 +04:00
$( dbussystemservicedir) /org.freedesktop.systemd1.service $( dbussessionservicedir) /org.freedesktop.systemd1.service
2013-01-23 08:51:51 +04:00
2013-01-24 06:41:30 +04:00
i f H A V E _ S Y S V _ C O M P A T
2013-01-23 08:51:51 +04:00
INSTALL_DIRS += \
$( systemunitdir) /runlevel1.target.wants \
$( systemunitdir) /runlevel2.target.wants \
$( systemunitdir) /runlevel3.target.wants \
$( systemunitdir) /runlevel4.target.wants \
2013-01-24 06:41:30 +04:00
$( systemunitdir) /runlevel5.target.wants
e n d i f
2013-01-30 21:14:44 +04:00
2013-01-24 06:41:30 +04:00
INSTALL_DIRS += \
2013-01-23 08:51:51 +04:00
$( prefix) /lib/modules-load.d \
$( sysconfdir) /modules-load.d \
2013-10-28 23:11:10 +04:00
$( prefix) /lib/systemd/network \
$( sysconfdir) /systemd/network \
2013-01-23 08:51:51 +04:00
$( prefix) /lib/sysctl.d \
$( sysconfdir) /sysctl.d \
2013-03-26 04:00:14 +04:00
$( prefix) /lib/kernel/install.d \
$( sysconfdir) /kernel/install.d \
2013-01-23 08:51:51 +04:00
$( systemshutdowndir) \
$( systemsleepdir) \
$( systemgeneratordir) \
$( usergeneratordir) \
\
$( userunitdir) \
$( pkgsysconfdir) /system \
$( pkgsysconfdir) /system/multi-user.target.wants \
$( pkgsysconfdir) /system/getty.target.wants \
$( pkgsysconfdir) /user \
$( dbussessionservicedir) \
$( sysconfdir) /xdg/systemd
2011-02-08 20:47:32 +03:00
2011-12-31 12:17:48 +04:00
install-exec-hook : $( INSTALL_EXEC_HOOKS )
2011-12-31 09:02:42 +04:00
2012-11-17 02:08:27 +04:00
uninstall-hook : $( UNINSTALL_DATA_HOOKS ) $( UNINSTALL_EXEC_HOOKS )
2011-07-15 03:31:06 +04:00
2013-01-23 08:51:51 +04:00
install-data-hook : $( INSTALL_DATA_HOOKS )
2011-07-15 03:31:06 +04:00
2012-04-03 23:24:46 +04:00
distclean-local : $( DISTCLEAN_LOCAL_HOOKS )
2013-03-08 19:27:44 +04:00
clean-local : $( CLEAN_LOCAL_HOOKS )
2012-04-17 01:32:22 +04:00
rm -rf $( abs_srcdir) /install-tree
2012-12-03 23:15:22 +04:00
rm -f $( abs_srcdir) /hwdb/usb.ids $( abs_srcdir) /hwdb/pci.ids $( abs_srcdir) /hwdb/oui.txt \
2013-03-22 01:16:55 +04:00
$( abs_srcdir) /hwdb/iab.txt
2012-04-17 01:32:22 +04:00
2010-05-16 01:06:41 +04:00
DISTCHECK_CONFIGURE_FLAGS = \
2010-06-07 21:40:25 +04:00
--with-dbuspolicydir= $$ dc_install_base/$( dbuspolicydir) \
--with-dbussessionservicedir= $$ dc_install_base/$( dbussessionservicedir) \
--with-dbussystemservicedir= $$ dc_install_base/$( dbussystemservicedir) \
2013-03-04 00:32:49 +04:00
--with-bashcompletiondir= $$ dc_install_base/$( bashcompletiondir) \
2013-07-25 09:57:05 +04:00
--with-zshcompletiondir= $$ dc_install_base/$( zshcompletiondir) \
2010-06-22 01:27:18 +04:00
--with-pamlibdir= $$ dc_install_base/$( pamlibdir) \
Add pam configuration to allow user sessions to work out of the box
systemd-logind will start user@.service. user@.service unit uses
PAM with service name 'systemd-user' to perform account and session
managment tasks. Previously, the name was 'systemd-shared', it is
now changed to 'systemd-user'.
Most PAM installations use one common setup for different callers.
Based on a quick poll, distributions fall into two camps: those that
have system-auth (Redhat, Fedora, CentOS, Arch, Gentoo, Mageia,
Mandriva), and those that have common-auth (Debian, Ubuntu, OpenSUSE).
Distributions that have system-auth have just one configuration file
that contains auth, password, account, and session blocks, and
distributions that have common-auth also have common-session,
common-password, and common-account. It is thus impossible to use one
configuration file which would work for everybody. systemd-user now
refers to system-auth, because it seems that the approach with one
file is more popular and also easier, so let's follow that.
2013-09-11 22:31:14 +04:00
--with-pamconfdir= $$ dc_install_base/$( pamconfdir) \
2012-04-03 23:24:46 +04:00
--with-rootprefix= $$ dc_install_base \
2014-02-19 23:52:48 +04:00
--enable-compat-libs
2012-04-17 19:03:38 +04:00
2012-11-20 21:19:44 +04:00
i f H A V E _ S Y S V _ C O M P A T
DISTCHECK_CONFIGURE_FLAGS += \
--with-sysvinit-path= $$ dc_install_base/$( sysvinitdir) \
2013-01-08 05:37:37 +04:00
--with-sysvrcnd-path= $$ dc_install_base/$( sysvrcnddir)
2013-01-11 00:43:20 +04:00
e l s e
DISTCHECK_CONFIGURE_FLAGS += \
--with-sysvinit-path= \
--with-sysvrcnd-path=
2012-11-20 21:19:44 +04:00
e n d i f
2015-05-29 08:39:53 +03:00
i f E N A B L E _ S P L I T _ U S R
DISTCHECK_CONFIGURE_FLAGS += \
--enable-split-usr
e l s e
DISTCHECK_CONFIGURE_FLAGS += \
--disable-split-usr
e n d i f
2015-12-08 05:33:52 +03:00
.PHONY : dist -check -help
2015-01-28 05:22:26 +03:00
dist-check-help : $( rootbin_PROGRAMS ) $( bin_PROGRAMS )
for i in $( abspath $^) ; do \
if $$ i --help | grep -v 'default:' | grep -E -q '.{80}.' ; then \
echo " $( basename $$ i) --help output is too wide: " ; \
$$ i --help | awk 'length > 80' | grep -E --color= yes '.{80}' ; \
exit 1; \
fi ; done
2016-03-11 21:33:43 +03:00
include_compilers = " $( CC) " " $( CC) -ansi " " $( CC) -std=iso9899:1990 "
public_headers = $( filter-out src/systemd/_sd-common.h, $( pkginclude_HEADERS) $( include_HEADERS) )
.PHONY : dist -check -includes
dist-check-includes : $( public_headers )
@res= 0; \
for i in $( abspath $^) ; do \
for cc in $( include_compilers) ; do \
echo " $$ cc -o/dev/null -c -x c -include " $$ i" - </dev/null" ; \
$$ cc -o/dev/null -c -x c -include " $$ i " - </dev/null || res = 1; \
done ; \
done ; exit $$ res
2014-01-26 20:36:04 +04:00
.PHONY : hwdb -update
2012-10-22 20:23:08 +04:00
hwdb-update :
2013-01-02 23:48:24 +04:00
( cd $( top_srcdir) /hwdb && \
2015-08-26 19:37:16 +03:00
wget -O usb.ids 'http://www.linux-usb.org/usb.ids' && \
wget -O pci.ids 'http://pci-ids.ucw.cz/v2.2/pci.ids' && \
2015-11-14 11:54:17 +03:00
wget -O ma-large.txt 'http://standards.ieee.org/develop/regauth/oui/oui.txt' && \
wget -O ma-medium.txt 'http://standards.ieee.org/develop/regauth/oui28/mam.txt' && \
wget -O ma-small.txt 'http://standards.ieee.org/develop/regauth/oui36/oui36.txt' && \
2015-05-20 02:35:02 +03:00
wget -O pnp_id_registry.html 'http://www.uefi.org/uefi-pnp-export' && \
wget -O acpi_id_registry.html 'http://www.uefi.org/uefi-acpi-export' && \
./ids-update.pl && \
./acpi-update.py > 20-acpi-vendor.hwdb.base && \
patch -p0 -o- 20-acpi-vendor.hwdb.base < 20-acpi-vendor.hwdb.patch > 20-acpi-vendor.hwdb )
2012-10-22 20:23:08 +04:00
2015-07-15 16:36:54 +03:00
.PHONY : built -sources
built-sources : $( BUILT_SOURCES )
2014-03-26 16:06:46 +04:00
.PHONY : git -tag
git-tag :
git tag -s " v $( VERSION) " -m " systemd $( VERSION) "
2015-06-23 00:08:55 +03:00
.PHONY : git -tar
git-tar :
2015-07-29 16:02:27 +03:00
git archive --format= tar --prefix= systemd-$( VERSION) / HEAD | gzip > systemd-$( VERSION) .tar.gz
2015-06-23 00:08:55 +03:00
2014-03-26 16:06:46 +04:00
www_target = www.freedesktop.org:/srv/www.freedesktop.org/www/software/systemd
2010-07-09 06:56:45 +04:00
2014-01-26 20:36:04 +04:00
.PHONY : doc -sync
2015-07-29 19:50:32 +03:00
doc-sync : all
2013-05-03 07:54:00 +04:00
rsync -rlv --delete-excluded --include= "*.html" --exclude= "*" --omit-dir-times man/ $( www_target) /man/
2012-04-14 01:50:52 +04:00
2014-01-26 20:36:04 +04:00
.PHONY : install -tree
2012-04-17 01:32:22 +04:00
install-tree : all
rm -rf $( abs_srcdir) /install-tree
2013-02-21 21:10:08 +04:00
$( MAKE) install DESTDIR = $( abs_srcdir) /install-tree
2012-04-17 01:32:22 +04:00
tree $( abs_srcdir) /install-tree
2013-10-09 06:02:54 +04:00
# Let's run all tests of the test suite, but under valgrind. Let's
2016-01-07 13:01:45 +03:00
# exclude perl/python/shell scripts we have in there
2014-01-26 20:36:04 +04:00
.PHONY : valgrind -tests
2013-10-09 06:02:54 +04:00
valgrind-tests : $( TESTS )
2016-01-07 13:01:45 +03:00
$( AM_V_GEN) for f in $( filter-out %.pl %.py, $^) ; do \
2016-07-03 18:19:38 +03:00
if $( LIBTOOL) --mode= execute file $$ f | grep -q shell; then \
2014-01-01 05:19:58 +04:00
echo -e " $$ {x}Skipping non-binary $$ f " ; else \
2013-12-31 21:51:46 +04:00
echo -e " $$ {x}Running $$ f " ; \
2015-12-29 10:11:53 +03:00
$( LIBTOOL) --mode= execute valgrind -q --leak-check= full --max-stackframe= 5242880 --error-exitcode= 55 $( builddir) /$$ f ; fi ; \
2013-12-31 21:51:46 +04:00
x = "\n\n" ; \
2013-11-07 20:26:01 +04:00
done
2013-11-13 04:02:28 +04:00
exported-% : %
2014-06-21 18:50:11 +04:00
$( AM_V_GEN) $( NM) -g --defined-only $( builddir) /.libs/$( <:.la= .so) 2>& 1 /dev/null | grep " T " | cut -d" " -f3 > $@
2013-11-13 04:02:28 +04:00
exported : $( addprefix exported -, $ ( lib_LTLIBRARIES ) )
2015-06-23 22:32:38 +03:00
$( AM_V_GEN) sort -u $^ > $@
2013-11-11 02:51:22 +04:00
2014-01-26 20:36:04 +04:00
.PHONY : check -api -docs
2013-11-11 02:51:22 +04:00
check-api-docs : exported man
2013-11-11 07:17:25 +04:00
$( AM_V_GEN) for symbol in ` cat exported` ; do \
2013-11-07 20:26:01 +04:00
if test -f $( builddir) /man/$$ symbol.html ; then \
echo " Symbol $$ symbol() is documented. " ; \
else \
echo " ‣ Symbol $$ symbol() lacks documentation. " ; \
fi ; \
2013-11-11 07:17:25 +04:00
done
2013-11-08 19:52:42 +04:00
OBJECT_VARIABLES := $( filter %_OBJECTS,$( .VARIABLES) )
ALL_OBJECTS := $( foreach v,$( OBJECT_VARIABLES) ,$( $( v) ) )
2013-11-09 17:00:33 +04:00
undefined defined : $( ALL_OBJECTS )
2013-11-08 19:52:42 +04:00
$( AM_V_GEN) for f in $( ALL_OBJECTS) ; do \
2014-06-21 18:50:11 +04:00
$( NM) -g --$@ -only ` echo $( builddir) /" $$ f " | sed -e 's,\([^/]*\).lo$$,.libs/\1.o,' ` ; \
2013-11-09 17:00:33 +04:00
done | cut -c 20- | cut -d @ -f 1 | sort -u > $@
2013-11-08 19:52:42 +04:00
CLEANFILES += \
defined \
undefined
2014-01-26 20:36:04 +04:00
.PHONY : check -api -unused
2013-11-11 02:51:22 +04:00
check-api-unused : defined undefined exported
( cat exported undefined ) | sort -u | diff -u - defined | grep ^+ | grep -v ^+++ | cut -c2-
2013-11-11 07:17:25 +04:00
2014-02-10 13:37:11 +04:00
.PHONY : check -includes
check-includes : $( top_srcdir ) /tools /check -includes .pl
$( AM_V_GEN) find * -name '*.[hcS]' -type f -print | sort -u \
| xargs $( top_srcdir) /tools/check-includes.pl
EXTRA_DIST += \
$( top_srcdir) /tools/check-includes.pl
2013-11-11 07:17:25 +04:00
# Stupid test that everything purported to be exported really is
d e f i n e g e n e r a t e - s y m - t e s t
$( AM_V_at) $( MKDIR_P) $( dir $@ )
2013-11-16 07:38:12 +04:00
$( AM_V_at) printf '#include <stdio.h>\n' > $@
$( AM_V_at) printf '#include "%s"\n' $( notdir $( filter %.h, $^) ) >> $@
$( AM_V_at) printf 'void* functions[] = {\n' >> $@
$( AM_V_GEN) sed -r -n 's/^ +([a-zA-Z0-9_]+);/\1,/p' $< >> $@
$( AM_V_at) printf '};\nint main(void) {\n' >> $@
$( AM_V_at) printf 'unsigned i; for (i=0;i<sizeof(functions)/sizeof(void*);i++) printf("%%p\\n", functions[i]);\n' >> $@
$( AM_V_at) printf 'return 0; }\n' >> $@
2013-11-11 07:17:25 +04:00
e n d e f
2014-01-13 20:30:51 +04:00
test-libsystemd-sym.c : \
2014-02-19 23:16:31 +04:00
$( top_builddir) /src/libsystemd/libsystemd.sym \
2014-02-19 19:33:09 +04:00
src/systemd/sd-journal.h \
src/systemd/sd-daemon.h \
src/systemd/sd-login.h \
src/systemd/sd-bus.h \
2014-04-29 17:44:31 +04:00
src/systemd/sd-utf8.h \
2014-07-11 05:13:24 +04:00
src/systemd/sd-resolve.h \
2015-05-22 15:32:51 +03:00
src/systemd/sd-path.h \
src/systemd/sd-event.h
2013-11-11 07:17:25 +04:00
$( generate-sym-test)
2014-02-19 19:33:09 +04:00
test-libudev-sym.c : \
src/libudev/libudev.sym \
src/udev/udev.h
$( generate-sym-test)
2015-06-23 01:13:16 +03:00
nodist_test_libsystemd_sym_SOURCES = \
2014-02-19 19:33:09 +04:00
test-libsystemd-sym.c
test_libsystemd_sym_LDADD = \
libsystemd.la
2015-06-23 01:13:16 +03:00
nodist_test_libudev_sym_SOURCES = \
2014-02-19 19:33:09 +04:00
test-libudev-sym.c
2014-04-13 09:35:50 +04:00
test_libudev_sym_CFLAGS = \
$( AM_CFLAGS) \
-Wno-deprecated-declarations
2014-02-19 19:33:09 +04:00
test_libudev_sym_LDADD = \
libudev.la
BUILT_SOURCES += \
2015-06-23 01:13:16 +03:00
test-libsystemd-sym.c \
test-libudev-sym.c
CLEANFILES += \
test-libsystemd-sym.c \
test-libudev-sym.c
2014-02-19 19:33:09 +04:00
tests += \
test-libsystemd-sym \
test-libudev-sym
2014-01-22 15:28:43 +04:00
.PHONY : cppcheck
2013-12-16 03:04:40 +04:00
cppcheck :
2013-12-25 22:00:12 +04:00
cppcheck --enable= all -q $( top_srcdir)
2013-11-24 17:56:56 +04:00
# Used to extract compile flags for YCM.
print-% :
@echo $( $* )
2014-02-24 21:34:12 +04:00
git-contrib :
2016-10-02 15:52:52 +03:00
@git shortlog -s ` git describe --abbrev= 0` .. | cut -c8- | sed 's/ / /g' | awk '{ print $$0 "," }' | sort -u
2014-10-15 03:31:23 +04:00
EXTRA_DIST += \
tools/gdb-sd_dump_hashmaps.py
2015-01-21 05:01:13 +03:00
list-keys :
gpg --verbose --no-options --no-default-keyring --no-auto-key-locate --batch --trust-model= always --keyring= $( srcdir) /src/import/import-pubring.gpg --list-keys
add-key :
gpg --verbose --no-options --no-default-keyring --no-auto-key-locate --batch --trust-model= always --keyring= $( srcdir) /src/import/import-pubring.gpg --import -