diff options
390 files changed, 5803 insertions, 1937 deletions
diff --git a/.gitconfig b/.gitconfig new file mode 100644 index 0000000000..3cbab41487 --- /dev/null +++ b/.gitconfig @@ -0,0 +1,50 @@ +# -*- Mode: Conf -*- + +[remote "r-systemd"] + url = https://github.com/systemd/systemd.git + tagopt = --no-tags + fetch = +refs/heads/*:refs/remotes/r-systemd/* + fetch = +refs/tags/*:refs/tags/systemd/* +[branch "systemd/master"] + remote = r-systemd + merge = refs/heads/master + +[remote "r-elogind"] + url = https://github.com/wingo/elogind.git + tagopt = --no-tags + fetch = +refs/heads/*:refs/remotes/r-elogind/* + fetch = +refs/tags/*:refs/tags/elogind/* +[branch "elogind/master"] + remote = r-elogind + merge = refs/heads/master + +[remote "r-eudev"] + url = https://github.com/gentoo/eudev.git + tagopt = --no-tags + fetch = +refs/heads/*:refs/remotes/r-eudev/* + fetch = +refs/tags/*:refs/tags/eudev/* +[branch "eudev/master"] + remote = r-eudev + merge = refs/heads/master + +[remote "r-parabola"] + url = https://git.parabola.nu/~lukeshu/systemd.git + pushUrl = ssh://git@git.parabola.nu/~git/~lukeshu/systemd.git + fetch = +refs/heads/*:refs/remotes/r-parabola/* +[branch "systemd/parabola"] + remote = r-parabola + merge = refs/heads/systemd/parabola +[branch "notsystemd/premove"] + remote = r-parabola + merge = refs/heads/notsystemd/premove +[branch "notsystemd/postmove"] + remote = r-parabola + merge = refs/heads/notsystemd/postmove +[branch "notsystemd/master"] + remote = r-parabola + merge = refs/heads/notsystemd/postmove + +[remote "r-autothing"] + url = git://lukeshu.com/autothing + tagopt = --no-tags + fetch = +refs/heads/*:refs/remotes/r-autothing/* diff --git a/.gitignore b/.gitignore index 37eb20c4b5..b6d9dfa397 100644 --- a/.gitignore +++ b/.gitignore @@ -27,7 +27,9 @@ /bootctl /build-aux/* !/build-aux/Makefile* +!/build-aux/write-atomic !/build-aux/write-ifchanged +!/build-aux/no-builtin-variables.mk /busctl /cdrom_id /collect @@ -304,8 +306,12 @@ config.status configure stamp-* .tmp* +.var* /autoconf.mk /automake.mk.in /automake.mk /config.mk /gnustandards.mk +/gitfiles.mk +Makefile-man.mk +*-gperf.c diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000..babbfd4050 --- /dev/null +++ b/Makefile @@ -0,0 +1,48 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +nested.subdirs += src + +# intltoolize +files.src.gen += m4/intltool.m4 +files.src.gen += po/Makefile.in.in +# autoreconf +files.src.gen += aclocal.m4 +files.src.gen += automake.mk.in +files.src.gen += build-aux/compile +files.src.gen += build-aux/config.guess +files.src.gen += build-aux/config.sub +files.src.gen += build-aux/install-sh +files.src.gen += build-aux/ltmain.sh +files.src.gen += build-aux/missing +files.src.gen += m4/libtool.m4 +files.src.gen += m4/ltoptions.m4 +files.src.gen += m4/ltsugar.m4 +files.src.gen += m4/ltversion.m4 +files.src.gen += m4/lt~obsolete.m4 +files.src.gen += config.h.in +files.src.gen += configure + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/autoconf.mk.in b/autoconf.mk.in new file mode 100644 index 0000000000..031dab17d9 --- /dev/null +++ b/autoconf.mk.in @@ -0,0 +1,41 @@ +top_builddir = $(topoutdir) +top_srcdir = $(topsrcdir) + +PACKAGE = @PACKAGE@ +VERSION = @VERSION@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_URL = @PACKAGE_URL@ + +ACLOCAL = @ACLOCAL@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +FGREP = @FGREP@# Requires AC_PROG_FGREP +GPERF = @GPERF@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LIBTOOL = @LIBTOOL@ +M4 = @M4@ +M4_DEFINES = @M4_DEFINES@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@# Requires AC_PROG_MKDIR_P +MSGFMT = @MSGFMT@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJCOPY = @OBJCOPY@ +OBJDUMP = @OBJDUMP@ +STRINGS = @STRINGS@ +STRIP = @STRIP@ +XGETTEXT = @XGETTEXT@ + +INSTALL_SCRIPT = @INSTALL_SCRIPT@# Requires AC_PROG_INSTALL +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ diff --git a/automake.mk.am b/automake.mk.am new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/automake.mk.am diff --git a/build-aux/Makefile.README.txt b/build-aux/Makefile.README.txt new file mode 100644 index 0000000000..e06ba523d4 --- /dev/null +++ b/build-aux/Makefile.README.txt @@ -0,0 +1,164 @@ +Luke's AutoMake +=============== + +Yo, this document is incomplete. It describes the magical +automake.{head,tail}.mk Makefiles and how to use them, kinda. + +I wrote a "clone" of automake. I say clone, because it works +differently. Yeah, I need a new name for it. + +High-level overview +------------------- + +Now, what this does for you is: + +It makes it _easy_ to write non-recursive Makefiles--and ones that are +similar to plain recursive Makefiles, at that! (search for the paper +"Recursive Make Considered Harmful") As harmful as recursive make is, +it's historically been difficult to to write non-recursive Makefiles. +This makes it easy. + +It also makes it easy to follow the GNU standards for your makefiles: +it takes care of this entire table of .PHONY targets for you: + +| this | and this | are aliases for this | +|------+------------------+--------------------------------------------------------| +| all | build | $(outdir)/build | +| | install | $(outdir)/install | +| | uninstall | $(outdir)/uninstall | +| | mostlyclean | $(outdir)/mostlyclean | +| | clean | $(outdir)/clean | +| | distclean | $(outdir)/distclean | +| | maintainer-clean | $(outdir)/maintainer-clean | +| | check | $(outdir)/check (not implemented for you) | +| | dist | $(topoutdir)/$(PACKAGE)-$(VERSION).tar.gz (not .PHONY) | + +(You are still responsible for implementing the `$(outdir)/check` +target in each of your Makefiles.) + +What you have to do is: + +In each source directory, you write a `Makefile`, very similarly to if +you were writing for plain GNU Make, with + + topoutdir ?= ... + topsrcdir ?= ... + include $(topsrcdir)/build-aux/Makefile.head.mk + + # your makefile + + include $(topsrcdir)/build-aux/Makefile.tail.mk + +And in the top-level source directory, Write your own helper makefiles +that get included: + - `common.once.head.mk`: before parsing any of your Makefiles + - `common.each.head.mk`: before parsing each of your Makefiles + - `common.each.tail.mk`: after parsing each of your Makefiles + - `common.each.tail.mk`: after parsing all of your Makefiles + +The `common.*.mk` makefiles are nice for including generic pattern +rules and variables that aren't specific to a directory. + +You're probably thinking that this sounds too good to be true! +Unfortunately, there are two major deviations from writing a plain +recursive Makefile: + + 1. all targets and prerequisites (including .PHONY targets!) need to + be prefixed with + `$(srcdir)`/`$(outdir)`/`$(topsrcdir)`/`$(topoutdir)`. + * sub-gotcha: this means that if a pattern rule has a + prerequisite that may be in srcdir or outdir, then it must be + specified twice, once for each case. + 2. if a prerequisite is in a directory "owned" by another Makefile, + you must filter the pathname through `am_path`: + `$(call am_path,YOUR_PATH)`. Further, that path must NOT contain + a `..` segment; if you need to refer to a sibling directory, do it + relative to `$(topoutdir)` or `$(topsrcdir)`. + +Telling automake about your program +----------------------------------- + +You tell automake what to do for you by setting some variables. They +are all prefixed with `am_`; this prefix may be changed by editing the +`_am` variable at the top of `automake.head.mk`. + +The exception to this is the `am_path` variable, which is a macro that +is used to make a list of filenames relative to the appropriate +directory, because unlike normal GNU (Auto)Make, `$(outdir)` isn't +nescessarily equal to `.`. See above. + +There are several commands that generate files; simply record the list +of files that each command generates as the following variable +variables: + +| Variable | Create Command | Delete Command | Description | Relative to | +|--------------+----------------+-----------------------------+-----------------------------------+-------------| +| am_src_files | emacs | rm -rf . | Files that the developer writes | srcdir | +| am_gen_files | ??? | make maintainer-clean | Files the developer compiles | srcdir | +| am_cfg_files | ./configure | make distclean | Users' compile-time configuration | outdir | +| am_out_files | make all | make mostlyclean/make clean | Files the user compiles | outdir | +| am_sys_files | make install | make uninstall | Files the user installs | DESTDIR | + +In addition, there are two more variables that control not how files +are created, but how they are deleted: + +| Variable | Affected command | Description | Relative to | +|----------------+------------------+------------------------------------------------+-------------| +| am_clean_files | make clean | A list of things to `rm` in addition to the | outdir | +| | | files in `$(am_out_files)`. (Example: `*.o`) | | +|----------------+------------------+------------------------------------------------+-------------| +| am_slow_files | make mostlyclean | A list of things that (as an exception) should | outdir | +| | | _not_ be deleted. (otherwise, `mostlyclean` | | +| | | is the same as `clean`) | | + +Finally, there are two variables that express the relationships +between directories: + +| Variable | Description | +|------------+---------------------------------------------------------| +| am_subdirs | A list of other directories (containing Makefiles) that | +| | may be considered "children" of this | +| | directory/Makefile; building a phony target in this | +| | directory should also build it in the subdirectory. | +| | They are not necesarily actually subdirectories of this | +| | directory in the filesystem. | +|------------+---------------------------------------------------------| +| am_depdirs | A list of other directories (containing Makefiles) that | +| | contain or generate files that are dependencies of | +| | targets in this directory. They are not necesarily | +| | actually subdirectories of this directory in the | +| | filesystem. Except for files that are dependencies of | +| | files in this directory, things in the dependency | +| | directory will not be built. | + +Tips, notes +----------- + +I like to have the first (non-comment) line in a Makefile be: + + include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk + +(adjusting the number of `../` sequences as nescessary). Then, my +(user-editable) `config.mk` is of the form: + + ifeq ($(topsrcdir),) + topoutdir := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) + topsrcdir := $(topoutdir) + + # your configuration + + endif + +If the package has a `./configure` script, then I have it modifiy +topsrcdir as necessary, as well as modifying whatever other parts of +the configuration. All of the configuration lives in `config.mk`; +`./configure` doesn't modify any `Makefile`s, it just generates +`config.mk`, and copies (or (sym?)link?) every `$(srcdir)/Makefile` to +`$(outdir)/Makefile`. + +---- +Copyright (C) 2016 Luke Shumaker + +This documentation file is placed into the public domain. If that is +not possible in your legal system, I grant you permission to use it in +absolutely every way that I can legally grant to you. diff --git a/build-aux/Makefile.each.head/.gitignore b/build-aux/Makefile.each.head/.gitignore new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/build-aux/Makefile.each.head/.gitignore diff --git a/build-aux/Makefile.each.head/00-am.mk b/build-aux/Makefile.each.head/00-am.mk new file mode 100644 index 0000000000..dbd57445da --- /dev/null +++ b/build-aux/Makefile.each.head/00-am.mk @@ -0,0 +1,4 @@ +$(eval $(foreach v,$(foreach p,$(am.primaries),am.sys_$p am.out_$p am.check_$p),$v ?=$(at.nl))) +am.CFLAGS ?= +am.CPPFLAGS ?= +am.subdirs ?= diff --git a/build-aux/Makefile.each.head/00-dist.mk b/build-aux/Makefile.each.head/00-dist.mk new file mode 100644 index 0000000000..924d79aa7c --- /dev/null +++ b/build-aux/Makefile.each.head/00-dist.mk @@ -0,0 +1,23 @@ +# Copyright (C) 2015-2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +mod.dist.depends += files + +ifeq ($(outdir),$(topoutdir)) +files.out.int += $(addprefix $(dist.pkgname)-*,$(dist.exts) .tar /) .tmp.$(dist.pkgname)-*/ +endif + +$(outdir)/dist: $(addprefix $(topoutdir)/$(dist.pkgname)-$(dist.version),$(dist.exts)) +.PHONY: $(outdir)/dist diff --git a/build-aux/Makefile.each.head/00-files.mk b/build-aux/Makefile.each.head/00-files.mk new file mode 100644 index 0000000000..c4820cfb1f --- /dev/null +++ b/build-aux/Makefile.each.head/00-files.mk @@ -0,0 +1,32 @@ +# Copyright (C) 2015-2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +files.src.src ?= +files.src.int ?= +files.src.cfg ?= +files.src.gen ?= + +files.out.slow ?= +files.out.int ?= +files.out.cfg ?= + +# define files.out.$(group) files.sys.$(group) for every files.group +$(eval $(foreach t,$(files.groups),files.out.$t ?=$(at.nl)files.sys.$t ?=$(at.nl))) + +# define files.src, files.out, and files.sys aggregates +$(eval \ + files.src = $$(sort $(foreach _files.v,$(filter files.src.%,$(.VARIABLES)),$$($(_files.v))))$(at.nl)\ + files.out = $$(sort $(foreach _files.v,$(filter files.out.%,$(.VARIABLES)),$$($(_files.v))))$(at.nl)\ + files.sys = $$(sort $(foreach _files.v,$(filter files.sys.%,$(.VARIABLES)),$$($(_files.v))))) diff --git a/build-aux/Makefile.each.head/00-gitfiles.mk b/build-aux/Makefile.each.head/00-gitfiles.mk new file mode 100644 index 0000000000..b872912015 --- /dev/null +++ b/build-aux/Makefile.each.head/00-gitfiles.mk @@ -0,0 +1,20 @@ +# Copyright (C) 2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +ifeq ($(abspath $(topsrcdir)),$(abspath $(srcdir))) +files.src.gen += $(gitfiles.file) +endif + +files.src.src += $(_gitfiles.dir.src) diff --git a/build-aux/Makefile.each.head/00-nested.mk b/build-aux/Makefile.each.head/00-nested.mk new file mode 100644 index 0000000000..4325825353 --- /dev/null +++ b/build-aux/Makefile.each.head/00-nested.mk @@ -0,0 +1,16 @@ +# Copyright (C) 2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +nested.subdirs ?= diff --git a/build-aux/Makefile.each.head/00-sd.mk b/build-aux/Makefile.each.head/00-sd.mk new file mode 100644 index 0000000000..43d1625245 --- /dev/null +++ b/build-aux/Makefile.each.head/00-sd.mk @@ -0,0 +1,6 @@ +sd.CFLAGS ?= +sd.CPPFLAGS ?= +sd.LDFLAGS ?= +sd.LIBTOOLFLAGS ?= + +sd.sed_files ?= diff --git a/build-aux/Makefile.each.tail/.gitignore b/build-aux/Makefile.each.tail/.gitignore new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/build-aux/Makefile.each.tail/.gitignore diff --git a/build-aux/Makefile.each.tail/00-dist.mk b/build-aux/Makefile.each.tail/00-dist.mk new file mode 100644 index 0000000000..df363b54df --- /dev/null +++ b/build-aux/Makefile.each.tail/00-dist.mk @@ -0,0 +1 @@ +_dist.files := $(strip $(_dist.files) $(_files.src)) diff --git a/build-aux/Makefile.each.tail/00-mod.mk b/build-aux/Makefile.each.tail/00-mod.mk new file mode 100644 index 0000000000..dc1a2fe07c --- /dev/null +++ b/build-aux/Makefile.each.tail/00-mod.mk @@ -0,0 +1,41 @@ +# Copyright (C) 2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +$(outdir)/at-variables $(outdir)/at-variables-local: _mod.VARIABLES := $(filter-out $(call quote.pattern,$(_at.VARIABLES)),$(.VARIABLES)) +$(outdir)/at-variables-global: + @printf '%s\n' $(call quote.shell-each,$(sort $(.VARIABLES))) +$(outdir)/at-variables-local: + @printf '%s\n' $(call quote.shell-each,$(sort $(_mod.VARIABLES))) +$(outdir)/at-variables $(outdir)/at-values: + @printf '%s\n' $(call quote.shell-each,$(sort $(.VARIABLES),$(_mod.VARIABLES))) +$(outdir)/at-variables/%: + @printf '%s\n' $(call quote.shell,$($*)) +$(outdir)/at-values/%: + @printf '%s\n' $(call quote.shell,$(value $*)) +.PHONY: $(addprefix $(outdir)/, at-variables-global at-variables-local at-variables at-values) +at.targets += $(addprefix $(outdir)/, at-variables-global at-variables-local at-variables at-values at-variables/% at-values/%) + +$(outdir)/at-modules: + @printf 'Autothing modules used in this project:\n' + @printf ' - %s\n' $(foreach _mod.tmp,$(_mod.modules),$(call quote.shell,$(_mod.tmp) $(mod.$(_mod.tmp).description)))|column -t -s $$'\t' +$(addprefix $(outdir)/at-modules/,$(_mod.modules)): $(outdir)/at-modules/%: + @printf 'Name : %s\n' $(call quote.shell,$*) + @printf 'Description : %s\n' $(call quote.shell,$(mod.$*.description)) + @echo 'Contains Files :' $(call quote.shell-each,$(call at.relto,$(topsrcdir),$(sort $(mod.$*.files) $(wildcard $(topsrcdir)/build-aux/Makefile.*/??-$*.mk)))) + @echo 'Depends on :' $(mod.$*.depends) + +$(outdir)/at-noop: +.PHONY: $(outdir)/at-noop +at.targets += $(outdir)/at-noop diff --git a/build-aux/Makefile.each.tail/00-var.mk b/build-aux/Makefile.each.tail/00-var.mk new file mode 100644 index 0000000000..c2fd9d7001 --- /dev/null +++ b/build-aux/Makefile.each.tail/00-var.mk @@ -0,0 +1,22 @@ +# Copyright (C) 2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +mod.var.depends += quote write-ifchanged + +$(outdir)/.var.%: _var.FORCE + @printf '%s' $(call quote.shell,$($*)) | sed 's/^/#/' | $(WRITE_IFCHANGED) $@ +-include $(wildcard $(outdir)/.var.*) + +at.targets += $(addprefix $(outdir)/,.var.%) diff --git a/build-aux/Makefile.each.tail/10-files.mk b/build-aux/Makefile.each.tail/10-files.mk new file mode 100644 index 0000000000..8ab187b401 --- /dev/null +++ b/build-aux/Makefile.each.tail/10-files.mk @@ -0,0 +1,57 @@ +# Copyright (C) 2015-2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# Add some more defaults to the *_files variables + +$(eval \ + $(foreach _files.var,$(filter files.src files.src.%,$(.VARIABLES)),\ + _$(_files.var) = $$(call at.addprefix,$$(srcdir),$$($(_files.var)))$(at.nl))\ + $(foreach _files.var,$(filter files.out files.out.%,$(.VARIABLES)),\ + _$(_files.var) = $$(call at.addprefix,$$(outdir),$$($(_files.var)))$(at.nl))\ + $(foreach _files.var,$(filter files.sys files.sys.%,$(.VARIABLES)),\ + _$(_files.var) = $$(addprefix $$(DESTDIR),$$($(_files.var)))$(at.nl))) + +_files.all = $(_files.src) $(_files.out) $(_files.sys) + +at.targets += $(subst *,%,$(_files.all)) + +# Creative targets +$(outdir)/$(files.generate): $(_files.src.gen) $(_files.src.cfg) +$(outdir)/install: $(_files.sys.$(files.default)) +$(outdir)/installdirs: $(sort $(dir $(_files.sys))) +$(eval \ + $(foreach _files.g,$(files.groups),\ + $$(outdir)/$(_files.g): $$(_files.out.$(_files.g))$(at.nl))\ + $(foreach _files.g,$(filter-out $(files.default),$(files.groups)),\ + $$(outdir)/install-$(_files.g): $$(_files.sys.$(_files.g)))$(at.nl)) + +# Destructive targets +_files.uninstall = $(_files.sys) +_files.mostlyclean = $(filter-out $(_files.out.slow) $(_files.out.cfg),$(_files.out)) +_files.clean = $(filter-out $(_files.out.cfg),$(_files.out)) +_files.distclean = $(_files.out) +$(addprefix $(outdir)/,uninstall mostlyclean clean distclean): %: %-hook + $(RM) -- $(sort $(filter-out %/,$(_files.$(@F)))) + $(RM) -r -- $(sort $(filter %/,$(_files.$(@F)))) + $(RMDIR_P) -- $(sort $(dir $(_files.$(@F)))) +_files.maintainer-clean = $(filter-out $(_files.src.cfg) $(_files.src.src),$(_files.src)) +_files.$(files.vcsclean) = $(filter-out $(_files.src.src),$(_files.src)) +$(addprefix $(outdir)/,maintainer-clean $(files.vcsclean)): $(outdir)/%: $(outdir)/distclean $(outdir)/%-hook + @echo 'This command is intended for maintainers to use; it' + @echo 'deletes files that may need special tools to rebuild.' + $(RM) -- $(sort $(filter-out %/,$(_files.$(@F)))) + $(RM) -r -- $(sort $(filter %/,$(_files.$(@F)))) + $(RMDIR_P) -- $(sort $(dir $(_files.$(@F)))) +$(foreach t,uninstall mostlyclean clean distclean maintainer-clean $(files.vcsclean), $(outdir)/$t-hook):: +.PHONY: $(foreach t,uninstall mostlyclean clean distclean maintainer-clean $(files.vcsclean), $(outdir)/$t-hook) diff --git a/build-aux/Makefile.each.tail/10-nested.mk b/build-aux/Makefile.each.tail/10-nested.mk new file mode 100644 index 0000000000..5e5a40b921 --- /dev/null +++ b/build-aux/Makefile.each.tail/10-nested.mk @@ -0,0 +1,20 @@ +# Copyright (C) 2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +$(eval $(foreach _tmp.nested,$(nested.targets),\ + $$(outdir)/$(_tmp.nested): $$(addsuffix /$(_tmp.nested),$$(call at.addprefix,$$(outdir),$$(nested.subdirs)))$(at.nl))) +.PHONY: $(addprefix $(outdir)/,$(nested.targets)) + +at.subdirs += $(nested.subdirs) diff --git a/build-aux/Makefile.each.tail/50-sd.mk b/build-aux/Makefile.each.tail/50-sd.mk new file mode 100644 index 0000000000..9de3a86e90 --- /dev/null +++ b/build-aux/Makefile.each.tail/50-sd.mk @@ -0,0 +1,110 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. + +mod.sd.depends += files am lt + +-include $(wildcard $(outdir)/$(DEPDIR)/*.P*) + +files.out.int += *.o *.lo *.so .deps/ .libs/ +files.out.int += *-list.txt +files.out.int += *-from-name.gperf +files.out.int += *-from-name.h +files.out.int += *-to-name.h +files.out.int += *-gperf.c + +$(outdir)/%.o : $(srcdir)/%.c $(topoutdir)/config.h | $(outdir)/$(DEPDIR); $(AM_V_CC)$(sd.COMPILE) -c -o $@ $< +$(outdir)/%.o : $(outdir)/%.c $(topoutdir)/config.h | $(outdir)/$(DEPDIR); $(AM_V_CC)$(sd.COMPILE) -c -o $@ $< +$(outdir)/%.lo: $(srcdir)/%.c $(topoutdir)/config.h | $(outdir)/$(DEPDIR); $(AM_V_CC)$(sd.LTCOMPILE) -c -o $@ $< +$(outdir)/%.lo: $(outdir)/%.c $(topoutdir)/config.h | $(outdir)/$(DEPDIR); $(AM_V_CC)$(sd.LTCOMPILE) -c -o $@ $< + +$(outdir)/$(DEPDIR): + $(AM_V_at)$(MKDIR_P) $@ + +$(outdir)/%.la: + @if test $(words $(lt.lib.files.all)) = 0; then echo 'Cannot link library with no dependencies: $@' >&2; exit 1; fi + $(AM_V_CCLD)$(sd.LINK) $(if $(lt.lib.rpath),-rpath $(lt.lib.rpath)) $(lt.lib.files.ld) + $(AM_V_at)$(lt.lib.post) +$(addprefix $(outdir)/,$(am.out_PROGRAMS)): $(outdir)/%: + @if test $(words $(lt.exe.files.all)) = 0; then echo 'Cannot link executable with no dependencies: $@' >&2; exit 1; fi + $(AM_V_CCLD)$(sd.LINK) $(lt.exe.files.ld) + +# Stupid test that everything purported to be exported really is +$(outdir)/test-lib%-sym.c: $(srcdir)/lib%.sym + $(AM_V_GEN){\ + printf '#include <stdio.h>\n' && \ + printf '#include "%s"\n' $(notdir $(filter %.h, $^)) && \ + printf 'void* functions[] = {\n' && \ + sed -r -n 's/^ +([a-zA-Z0-9_]+);/\1,/p' $< && \ + printf '};\nint main(void) {\n' && \ + printf 'unsigned i; for (i=0;i<sizeof(functions)/sizeof(void*);i++) printf("%%p\\n", functions[i]);\n' && \ + printf 'return 0; }\n' && \ + :; } > $@ + +_sd.files_in = $(foreach f,$(files.sys),$(if $(filter $1,$(patsubst %/,%,$(dir $f))),$(DESTDIR)$f)) + +$(outdir)/%-from-name.gperf: $(outdir)/%-list.txt + $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct $(notdir $*)_name { const char* name; int id; };"; print "%null-strings"; print "%%";} { printf "%s, %s\n", $$1, $$1 }' <$< >$@ + +$(outdir)/%-from-name.h: $(outdir)/%-from-name.gperf + $(AM_V_GPERF)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_$(notdir $*) -H hash_$(notdir $*)_name -p -C <$< >$@ + +ifeq ($(sd.sed_files),) +EXTRA_DIST ?= +sd.sed_files += $(notdir $(patsubst %.in,%,$(filter %.in,$(EXTRA_DIST)))) +endif +ifneq ($(sd.sed_files),) +$(addprefix $(outdir)/,$(sd.sed_files)): $(outdir)/%: $(srcdir)/%.in + $(sd.SED_PROCESS) +endif + +#$(outdir)/%.sh: $(srcdir)/%.sh.in +# $(SED_PROCESS) +# $(AM_V_GEN)chmod +x $@ + +$(outdir)/%.c: $(srcdir)/%.gperf + $(AM_V_GPERF)$(GPERF) < $< > $@ +$(outdir)/%.c: $(outdir)/%.gperf + $(AM_V_GPERF)$(GPERF) < $< > $@ + +$(outdir)/%: $(srcdir)/%.m4 $(top_builddir)/config.status + $(AM_V_M4)$(M4) -P $(M4_DEFINES) < $< > $@ +$(outdir)/%: $(outdir)/%.m4 $(top_builddir)/config.status + $(AM_V_M4)$(M4) -P $(M4_DEFINES) < $< > $@ + +$(outdir)/%.1: $(srcdir)/%.xml $(topsrcdir)/man/custom-man.xsl $(topoutdir)/man/custom-entities.ent + $(sd.XSLTPROC_PROCESS_MAN) + +$(outdir)/%.3: $(srcdir)/%.xml $(topsrcdir)/man/custom-man.xsl $(topoutdir)/man/custom-entities.ent + $(sd.XSLTPROC_PROCESS_MAN) + +$(outdir)/%.5: $(srcdir)/%.xml $(topsrcdir)/man/custom-man.xsl $(topoutdir)/man/custom-entities.ent + $(sd.XSLTPROC_PROCESS_MAN) + +$(outdir)/%.7: $(srcdir)/%.xml $(topsrcdir)/man/custom-man.xsl $(topoutdir)/man/custom-entities.ent + $(sd.XSLTPROC_PROCESS_MAN) + +$(outdir)/%.8: $(srcdir)/%.xml $(topsrcdir)/man/custom-man.xsl $(topoutdir)/man/custom-entities.ent + $(sd.XSLTPROC_PROCESS_MAN) + +$(outdir)/%.html: $(srcdir)/%.xml $(topsrcdir)/man/custom-html.xsl $(topoutdir)/man/custom-entities.ent + $(sd.XSLTPROC_PROCESS_HTML) diff --git a/build-aux/Makefile.each.tail/60-am.mk b/build-aux/Makefile.each.tail/60-am.mk new file mode 100644 index 0000000000..302fccc091 --- /dev/null +++ b/build-aux/Makefile.each.tail/60-am.mk @@ -0,0 +1,83 @@ +mod.am.depends += files + +rootbin_PROGRAMS ?= +bin_PROGRAMS ?= +dist_bin_SCRIPTS ?= +bashcompletion_DATA ?= +zshcompletion_DATA ?= +dist_bashcompletion_DATA := $(sort $(bashcompletion_DATA) $(rootbin_PROGRAMS) $(bin_PROGRAMS) $(dist_bin_SCRIPTS)) +dist_zshcompletion_DATA := $(sort $(zshcompletion_DATA) $(addprefix _,$(rootbin_PROGRAMS) $(bin_PROGRAMS) $(dist_bin_SCRIPTS))) + +man_MANS ?= +_am.man_MANS := $(man_MANS) +undefine man_MANS +man0_MANS += $(foreach _am.tmp,$(_am.man_MANS),$(if $(findstring .0,$(suffix $(_am.tmp))),$(_am.tmp))) +man1_MANS += $(foreach _am.tmp,$(_am.man_MANS),$(if $(findstring .1,$(suffix $(_am.tmp))),$(_am.tmp))) +man2_MANS += $(foreach _am.tmp,$(_am.man_MANS),$(if $(findstring .2,$(suffix $(_am.tmp))),$(_am.tmp))) +man3_MANS += $(foreach _am.tmp,$(_am.man_MANS),$(if $(findstring .3,$(suffix $(_am.tmp))),$(_am.tmp))) +man4_MANS += $(foreach _am.tmp,$(_am.man_MANS),$(if $(findstring .4,$(suffix $(_am.tmp))),$(_am.tmp))) +man5_MANS += $(foreach _am.tmp,$(_am.man_MANS),$(if $(findstring .5,$(suffix $(_am.tmp))),$(_am.tmp))) +man6_MANS += $(foreach _am.tmp,$(_am.man_MANS),$(if $(findstring .6,$(suffix $(_am.tmp))),$(_am.tmp))) +man7_MANS += $(foreach _am.tmp,$(_am.man_MANS),$(if $(findstring .7,$(suffix $(_am.tmp))),$(_am.tmp))) +man8_MANS += $(foreach _am.tmp,$(_am.man_MANS),$(if $(findstring .8,$(suffix $(_am.tmp))),$(_am.tmp))) +man9_MANS += $(foreach _am.tmp,$(_am.man_MANS),$(if $(findstring .9,$(suffix $(_am.tmp))),$(_am.tmp))) +manl_MANS += $(foreach _am.tmp,$(_am.man_MANS),$(if $(findstring .l,$(suffix $(_am.tmp))),$(_am.tmp))) +mann_MANS += $(foreach _am.tmp,$(_am.man_MANS),$(if $(findstring .n,$(suffix $(_am.tmp))),$(_am.tmp))) + +$(eval \ + $(foreach p,$(am.primaries) ,$(call _am.per_primary,$p)$(at.nl))) +$(eval \ + $(foreach f,$(am.out_PROGRAMS) ,$(call _am.per_PROGRAM,$f,$(call am.file2var,$f))$(at.nl))\ + $(foreach f,$(am.out_LTLIBRARIES),$(call _am.per_LTLIBRARY,$f,$(call am.file2var,$f))$(at.nl))\ + $(foreach d,$(am.sys2dirs) ,$(call _am.per_directory,$d)$(at.nl))) + +$(DESTDIR)$(includedir)/%.h: $(srcdir)/include/%.h + @$(NORMAL_INSTALL) + $(am.INSTALL) + +$(DESTDIR)$(sysusersdir)/%.conf: $(srcdir)/%.sysusers + @$(NORMAL_INSTALL) + $(am.INSTALL) +$(DESTDIR)$(sysusersdir)/%.conf: $(outdir)/%.sysusers + @$(NORMAL_INSTALL) + $(am.INSTALL) + +$(DESTDIR)$(sysctldir)/%.conf: $(srcdir)/%.sysctl + @$(NORMAL_INSTALL) + $(am.INSTALL) +$(DESTDIR)$(sysctldir)/%.conf: $(outdir)/%.sysctl + @$(NORMAL_INSTALL) + $(am.INSTALL) + +$(DESTDIR)$(tmpfilesdir)/%.conf: $(srcdir)/%.tmpfiles + @$(NORMAL_INSTALL) + $(am.INSTALL) +$(DESTDIR)$(tmpfilesdir)/%.conf: $(outdir)/%.tmpfiles + @$(NORMAL_INSTALL) + $(am.INSTALL) + +$(DESTDIR)$(pamconfdir)/%: $(srcdir)/%.pam + @$(NORMAL_INSTALL) + $(am.INSTALL) +$(DESTDIR)$(pamconfdir)/%: $(outdir)/%.pam + @$(NORMAL_INSTALL) + $(am.INSTALL) + +$(DESTDIR)$(bashcompletiondir)/%: $(srcdir)/%.completion.bash + @$(NORMAL_INSTALL) + $(am.INSTALL) +$(DESTDIR)$(bashcompletiondir)/%: $(outdir)/%.completion.bash + @$(NORMAL_INSTALL) + $(am.INSTALL) + +$(DESTDIR)$(zshcompletiondir)/_%: $(srcdir)/%.completion.zsh + @$(NORMAL_INSTALL) + $(am.INSTALL) +$(DESTDIR)$(zshcompletiondir)/_%: $(outdir)/%.completion.zsh + @$(NORMAL_INSTALL) + $(am.INSTALL) + +at.subdirs += $(am.subdirs) +files.sys.all += $(foreach p,$(am.primaries),$(am.sys_$p)) +files.out.all += $(foreach p,$(am.primaries),$(am.out_$p)) +files.out.check += $(foreach p,$(am.primaries),$(am.check_$p)) diff --git a/build-aux/Makefile.each.tail/70-sd.mk b/build-aux/Makefile.each.tail/70-sd.mk new file mode 100644 index 0000000000..9acce2f55a --- /dev/null +++ b/build-aux/Makefile.each.tail/70-sd.mk @@ -0,0 +1,58 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. + +mod.sd.depends += files write-atomic + +_sd.man_xml = $(foreach _sd.tmp,$(filter %.xml,$(files.src.src)),$(if $(findstring /,$(_sd.tmp)),,$(_sd.tmp))) + +ifneq ($(_sd.man_xml),) +#$(info $(outdir)/_sd.man_xml: «$(_sd.man_xml)») + +$(srcdir)/Makefile-man.mk: $(topsrcdir)/tools/make-man-rules.py $(topsrcdir)/tools/xml_helper.py $(topsrcdir)/man/custom-entities.ent.in $(outdir)/.var._sd.man_xml $(call at.addprefix,$(srcdir),$(_sd.man_xml)) + $(AM_V_GEN)$(PYTHON) $< $(filter %.xml,$^) | $(WRITE_ATOMIC) $@ +files.src.gen += Makefile-man.mk + +sd.MANPAGES = +sd.MANPAGES_ALIAS = +-include $(srcdir)/Makefile-man.mk + +_sd.XML_FILES = \ + ${patsubst %.1,%.xml,${patsubst %.3,%.xml,${patsubst %.5,%.xml,${patsubst %.7,%.xml,${patsubst %.8,%.xml,$(sd.MANPAGES)}}}}} +sd.HTML_FILES = \ + ${_sd.XML_FILES:.xml=.html} +sd.HTML_ALIAS = \ + ${patsubst %.1,%.html,${patsubst %.3,%.html,${patsubst %.5,%.html,${patsubst %.7,%.html,${patsubst %.8,%.html,$(sd.MANPAGES_ALIAS)}}}}} + +ifneq ($(ENABLE_MANPAGES),) +man_MANS = \ + $(sd.MANPAGES) \ + $(sd.MANPAGES_ALIAS) + +noinst_DATA += \ + $(sd.HTML_FILES) \ + $(sd.HTML_ALIAS) +endif # ENABLE_MANPAGES + +at.subdirs += $(abspath $(topoutdir)/man) + +endif # _sd.man_xml diff --git a/build-aux/Makefile.head.mk b/build-aux/Makefile.head.mk new file mode 100644 index 0000000000..c2ce3075b2 --- /dev/null +++ b/build-aux/Makefile.head.mk @@ -0,0 +1,118 @@ +# Copyright (C) 2015-2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +_at.MAKEFILE_LIST ?= +_at.MAKEFILE_LIST := $(strip $(_at.MAKEFILE_LIST) $(abspath $(lastword $(filter-out %.mk,$(MAKEFILE_LIST))))) + +# This bit only gets evaluated once, at the very beginning +ifeq ($(origin _at.NO_ONCE),undefined) + +# Internal functions ################################################### + +# These 4 functions are all $(call _at.func,parent,child) +_at.is_strict_subdir = $(filter $(abspath $1)/%,$(abspath $2)) +_at.is_subdir = $(filter $(abspath $1)/%,$(abspath $2)/.) +_at.relbase = $(strip \ + $(if $(call _at.is_subdir,$1,$2), \ + $(patsubst %/.,$(patsubst $(abspath $1)/%,%,$(abspath $2)/.)), \ + $(abspath $2))) +_at.relto = $(strip \ + $(if $(call _at.is_subdir,$1,$2), \ + $(patsubst %/.,%,$(patsubst $(abspath $1)/%,%,$(abspath $2)/.)), \ + ../$(call _at.relto,$(dir $1),$2))) + +# These 3 functions only take one operand; we define public multi-operand +# versions below. +_at.path = $(strip \ + $(if $(call _at.is_subdir,$(topoutdir),$1), \ + $(patsubst %/.,%,$(topoutdir)/$(call _at.relto,.,$1)), \ + $(if $(call _at.is_subdir,$(topsrcdir),$1), \ + $(patsubst %/.,%,$(topsrcdir)/$(call _at.relto,$(topsrcdir),$1)), \ + $(abspath $1)))) +_at.out2src = $(call _at.path,$(if $(call _at.is_subdir,$(topoutdir),$1),$(topsrcdir)/$(call _at.path,$1),$1)) +_at.addprefix = $(call _at.path,$(if $(filter-out /%,$2),$1/$2,$2)) + +_at.rest = $(wordlist 2,$(words $1),$1) +_at.reverse = $(if $1,$(call _at.reverse,$(_at.rest))) $(firstword $1) + +_at.target_variable = $(_at.target_variable.$(flavor $2)) +_at.target_variable.recursive = $1: private $2 = $(subst $(at.nl),$$(at.nl),$(value $2)) +_at.target_variable.simple = $1: private $2 := $$($2) + +_at.quote-pattern = $(subst %,\%,$(subst \,\\,$1)) + +# Sanity checking ###################################################### +ifeq ($(filter undefine,$(.FEATURES)),) +$(error Autothing: We need a version of Make that supports 'undefine') +endif +ifeq ($(topsrcdir),) +$(error Autothing: topsrcdir must be set (and non-empty) before including Makefile.head.mk) +endif +ifeq ($(topoutdir),) +$(error Autothing: topoutdir must be set (and non-empty) before including Makefile.head.mk) +endif +ifneq ($(call _at.is_strict_subdir,$(topoutdir),$(topsrcdir)),) +$(error Autothing: topsrcdir=$(topsrcdir) must not be a subdirectory of topoutdir=$(topoutdir)) +endif + +# External provisions ################################################## + +# These 4 functions are all $(call _at.func,parent,child) +at.is_subdir = $(_at.is_subdir) +at.is_strict_subdir = $(_at.is_strict_subdir) +#at.relbase = $(if $2,$(shell realpath -sm --relative-base=$1 -- $2)) +at.relbase = $(foreach _at.tmp,$2,$(call _at.relbase,$1,$(_at.tmp))) +#at.relto = $(if $2,$(shell realpath -sm --relative-to=$1 -- $2)) +at.relto = $(foreach _at.tmp,$2,$(call _at.relto,$1,$(_at.tmp))) + +at.path = $(foreach _at.tmp,$1,$(call _at.path,$(_at.tmp))) +at.out2src = $(foreach _at.tmp,$1,$(call _at.out2src,$(_at.tmp))) +at.addprefix = $(foreach _at.tmp,$2,$(call _at.addprefix,$1,$(_at.tmp))) + +define at.nl + + +endef + +# External configuration ############################################### +at.Makefile ?= Makefile + +# Include modules ###################################################### +include $(sort $(wildcard $(topsrcdir)/build-aux/Makefile.once.head/*.mk)) +_at.tmp_targets = +_at.tmp_subdirs = +_at.VARIABLES = +_at.VARIABLES := $(.VARIABLES) + +endif # _at.NO_ONCE + +# This bit gets evaluated for each Makefile + +outdir := $(call _at.path,$(dir $(lastword $(_at.MAKEFILE_LIST)))) +ifeq ($(call _at.is_subdir,$(topoutdir),$(outdir)),) +$(error Autothing: not a subdirectory of topoutdir=$(topoutdir): $(outdir)) +endif + +# Don't use at.out2src because we *know* that $(outdir) is inside $(topoutdir), +# and has already had $(_at.path) called on it. +srcdir := $(call _at.path,$(topsrcdir)/$(outdir)) +ifeq ($(call _at.is_subdir,$(topsrcdir),$(srcdir)),) +$(error Autothing: not a subdirectory of topsrcdir=$(topsrcdir): $(srcdir)) +endif + +at.subdirs = +at.targets = + +include $(sort $(wildcard $(topsrcdir)/build-aux/Makefile.each.head/*.mk)) diff --git a/build-aux/Makefile.once.head/.gitignore b/build-aux/Makefile.once.head/.gitignore new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/build-aux/Makefile.once.head/.gitignore diff --git a/build-aux/Makefile.once.head/00-gitfiles.mk b/build-aux/Makefile.once.head/00-gitfiles.mk new file mode 100644 index 0000000000..b17b63aa09 --- /dev/null +++ b/build-aux/Makefile.once.head/00-gitfiles.mk @@ -0,0 +1,32 @@ +# Copyright (C) 2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +mod.gitfiles.description = Automatically populate files.src.src from git +mod.gitfiles.depends += files nested write-ifchanged quote + +gitfiles.file ?= gitfiles.mk + +_gitfiles.all = +-include $(topsrcdir)/$(gitfiles.file) + +ifneq ($(wildcard $(topsrcdir)/.git),) +$(topsrcdir)/$(gitfiles.file): _gitfiles.FORCE + @(cd $(@D) && git ls-files -z) | sed -z -e 's/\$$/\$$$$/g' -e 's/\n/$$(at.nl)/g' | xargs -r0 printf '_gitfiles.all+=%s\n' | $(WRITE_IFCHANGED) $@ +.PHONY: _gitfiles.FORCE +endif + +_gitfiles.dir = $(call at.relto,$(topsrcdir),$(srcdir)) +_gitfiles.dir.all = $(patsubst $(_gitfiles.dir)/%,%,$(filter $(_gitfiles.dir)/%,$(_gitfiles.all))) +_gitfiles.dir.src = $(filter-out $(addsuffix /%,$(nested.subdirs)),$(_gitfiles.dir.all)) diff --git a/build-aux/Makefile.once.head/00-quote.mk b/build-aux/Makefile.once.head/00-quote.mk new file mode 100644 index 0000000000..9fce401b94 --- /dev/null +++ b/build-aux/Makefile.once.head/00-quote.mk @@ -0,0 +1,29 @@ +# Copyright (C) 2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +mod.quote.description = Macros to quote tricky strings + +_quote.backslash = $(if $1,$(call _quote.backslash,$(wordlist 2,$(words $1),$1),$(subst $(firstword $1),\$(firstword $1),$2)),$2) + +quote.var = $(subst $(at.nl),\$(at.nl),$(subst $$,$$$$,$1)) +quote.pattern = $(call _quote.backslash, \ % ,$1) +quote.ere = $(call _quote.backslash, \ ^ . [ $$ ( ) | * + ? { ,$1) +quote.bre = $(call _quote.backslash, \ ^ . [ $$ * ,$1) + +quote.shell-each = $(foreach _quote.tmp,$1,$(call quote.shell,$(_quote.tmp))) + +# I put this as the last line in the file because it confuses Emacs syntax +# highlighting and makes the remainder of the file difficult to edit. +quote.shell = $(subst $(at.nl),'$$'\n'','$(subst ','\'',$1)') diff --git a/build-aux/Makefile.once.head/00-var.mk b/build-aux/Makefile.once.head/00-var.mk new file mode 100644 index 0000000000..d1e537ef34 --- /dev/null +++ b/build-aux/Makefile.once.head/00-var.mk @@ -0,0 +1,18 @@ +# Copyright (C) 2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +mod.var.description = Depend on the values of variables + +.PHONY: _var.FORCE diff --git a/build-aux/Makefile.once.head/10-dist.mk b/build-aux/Makefile.once.head/10-dist.mk new file mode 100644 index 0000000000..e139096576 --- /dev/null +++ b/build-aux/Makefile.once.head/10-dist.mk @@ -0,0 +1,44 @@ +# Copyright (C) 2015-2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +mod.dist.description = `dist` target for distribution tarballs + +# Developer configuration + +dist.exts ?= .tar.gz +dist.pkgname ?= $(firstword $(PACKAGE_TARNAME) $(PACKAGE) $(PACKAGE_NAME)) +dist.version ?= $(firstword $(PACKAGE_VERSION) $(VERSION)) + +ifeq ($(dist.pkgname),) +$(error Autothing module: dist: dist.pkgname must be set) +endif +ifeq ($(dist.version),) +$(error Autothing module: dist: dist.version must be set) +endif + +_dist.files = + +# User configuration + +CP ?= cp +GZIP ?= gzip +MKDIR ?= mkdir +MKDIR_P ?= mkdir -p +MV ?= mv +RM ?= rm -f +TAR ?= tar + +GZIPFLAGS ?= $(GZIP_ENV) +GZIP_ENV ?= --best diff --git a/build-aux/Makefile.once.head/10-files.mk b/build-aux/Makefile.once.head/10-files.mk new file mode 100644 index 0000000000..54417356ee --- /dev/null +++ b/build-aux/Makefile.once.head/10-files.mk @@ -0,0 +1,40 @@ +# Copyright (C) 2015-2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +mod.files.description = Keeping track of groups of files +mod.files.depends += nested + +files.groups ?= all +files.default ?= all +files.vcsclean ?= files.vcsclean +files.generate ?= files.generate + +.DEFAULT_GOAL = $(files.default) + +# Standard creative PHONY targets +nested.targets += $(files.generate) +nested.targets += install installdirs +nested.targets += $(foreach g,$(files.groups),$g) +nested.targets += $(foreach g,$(filter-out $(files.default),$(files.groups)),install-$g install-$gdirs) +# Standard destructive PHONY targets +nested.targets += uninstall mostlyclean clean distclean maintainer-clean + +# User configuration + +DESTDIR ?= + +RM ?= rm -f +RMDIR_P ?= rmdir -p --ignore-fail-on-non-empty +TRUE ?= true diff --git a/build-aux/Makefile.once.head/10-gnuconf.mk b/build-aux/Makefile.once.head/10-gnuconf.mk new file mode 100644 index 0000000000..c07cfb5cf3 --- /dev/null +++ b/build-aux/Makefile.once.head/10-gnuconf.mk @@ -0,0 +1,188 @@ +# Copyright (C) 2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# This file is based on §7.2 "Makefile Conventions" of the release of +# the GNU Coding Standards dated July 25, 2016. + +mod.gnuconf.description = GNU standard configuration variables + +gnuconf.pkgname ?= $(firstword $(PACKAGE_TARNAME) $(PACKAGE) $(PACKAGE_NAME)) +ifeq ($(gnuconf.pkgname),) +$(error Autothing module: gnuconf: gnuconf.pkgname must be set) +endif + +# 7.2.2: Utilities in Makefiles +# ----------------------------- + +# It's ok to hard-code these commands in rules, but who wants to +# memorize the list of what's ok? +AWK ?= awk +CAT ?= cat +CMP ?= cmp +CP ?= cp +DIFF ?= diff +ECHO ?= echo +EGREP ?= egrep +EXPR ?= expr +FALSE ?= false +GREP ?= grep +INSTALL_INFO ?= install-info +LN ?= ln +LS ?= ls +MKDIR ?= mkdir +MV ?= mv +PRINTF ?= printf +PWD ?= pwd +RM ?= rm +RMDIR ?= rmdir +SED ?= sed +SLEEP ?= sleep +SORT ?= sort +TAR ?= tar +TEST ?= test +TOUCH ?= touch +TR ?= tr +TRUE ?= true + +# 7.2.2: Utilities in Makefiles/7.2.3: Variables for Specifying Commands +# ---------------------------------------------------------------------- + +# Standard user-configurable programs. +# +# The list of programs here is specified in §7.2.2, but the associated FLAGS +# variables are specified in §7.2.3. I found it cleaner to list them together. +AR ?= ar +ARFLAGS ?= +BISON ?= bison +BISONFLAGS ?= +CC ?= cc +CFLAGS ?= # CFLAGS instead of CCFLAGS +FLEX ?= flex +FLEXFLAGS ?= +INSTALL ?= install +# There is no INSTALLFLAGS[0] +LD ?= ld +LDFLAGS ?= +LDCONFIG ?= ldconfig # TODO[1] +LDCONFIGFLAGS ?= +LEX ?= lex +LFLAGS ?= # LFLAGS instead of LEXFLAGS +#MAKE +MAKEINFO ?= makeinfo +MAKEINFOFLAGS ?= +RANLIB ?= ranlib # TODO[1] +RANLIBFLAGS ?= +TEXI2DVI ?= texi2dvi +TEXI2DVIFLAGS ?= +YACC ?= yacc +YFLAGS ?= # YFLAGS instead of YACCFLAGS + +LN_S ?= ln -s # TODO[2] + +CHGRP ?= chgrp +CHGRPFLAGS ?= +CHMOD ?= chmod +CHMODFLAGS ?= +CHOWN ?= chown +CHOWNFLAGS ?= +MKNOD ?= mknod +MKNODFLAGS ?= + +# [0]: There is no INSTALLFLAGS because it would be inconsistent with how the +# standards otherwise recommend using $(INSTALL); with INSTALL_PROGRAM and +# INSTALL_DATA; which are specified in a way precluding the use of +# INSTALLFLAGS. To have the variable, but to ignore it in the common case +# would be confusing. +# +# [1]: The RANLIB and LDCONFIG variables need some extra smarts; §7.2.2 says: +# +# > When you use ranlib or ldconfig, you should make sure nothing bad +# > happens if the system does not have the program in question. Arrange +# > to ignore an error from that command, and print a message before the +# > command to tell the user that failure of this command does not mean a +# > problem. (The Autoconf ‘AC_PROG_RANLIB’ macro can help with this.) +# +# [2]: The LN_S variable isn't standard, but we have it here as an (incomplete) +# stub to help support this bit of §7.2.2: +# +# > If you use symbolic links, you should implement a fallback for +# > systems that don’t have symbolic links. + +# 7.2.3: Variables for Specifying Commands +# ---------------------------------------- + +INSTALL_PROGRAM ?= $(INSTALL) +INSTALL_DATA ?= ${INSTALL} -m 644 + +# 7.2.5: Variables for Installation Directories +# --------------------------------------------- + +# Root for the installation +prefix ?= /usr/local +exec_prefix ?= $(prefix) +# Executable programs +bindir ?= $(exec_prefix)/bin +sbindir ?= $(exec_prefix)/sbin +libexecdir ?= $(exec_prefix)/libexec +# Data files +datarootdir ?= $(prefix)/share +datadir ?= $(datarootdir) +sysconfdir ?= $(prefix)/etc +sharedstatedir ?= $(prefix)/com +localstatedir ?= $(prefix)/var +runstatedir ?= $(localstatedir)/run +# Specific types of files +includedir ?= $(prefix)/include +oldincludedir ?= /usr/include +docdir ?= $(datarootdir)/doc/$(gnuconf.pkgname) +infodir ?= $(datarootdir)/info +htmldir ?= $(docdir) +dvidir ?= $(docdir) +pdfdir ?= $(docdir) +psdir ?= $(docdir) +libdir ?= $(exec_prefix)/lib +lispdir ?= $(datarootdir)/emacs/site-lisp +localedir ?= $(datarootdir)/locale + +mandir ?= $(datarootdir)/man +man1dir ?= $(mandir)/man1 +man2dir ?= $(mandir)/man2 +man3dir ?= $(mandir)/man3 +man4dir ?= $(mandir)/man4 +man5dir ?= $(mandir)/man5 +man6dir ?= $(mandir)/man6 +man7dir ?= $(mandir)/man7 +man8dir ?= $(mandir)/man8 + +manext ?= .1 +man1ext ?= .1 +man2ext ?= .2 +man3ext ?= .3 +man4ext ?= .4 +man5ext ?= .5 +man6ext ?= .6 +man7ext ?= .7 +man8ext ?= .8 + +# 7.2.7: Install Command Categories +# --------------------------------- + +PRE_INSTALL ?= +POST_INSTALL ?= +NORMAL_INSTALL ?= + +PRE_UNINSTALL ?= +POST_UNINSTALL ?= +NORMAL_UNINSTALL ?= diff --git a/build-aux/Makefile.once.head/10-lt.mk b/build-aux/Makefile.once.head/10-lt.mk new file mode 100644 index 0000000000..355a5b4343 --- /dev/null +++ b/build-aux/Makefile.once.head/10-lt.mk @@ -0,0 +1,21 @@ +mod.lt.description = (systemd) Easy handling of libtool dependencies +mod.lt.deps += files quote + +_lt.patsubst-all = $(if $1,$(call _lt.patsubst-all,$(wordlist 2,$(words $1),$1),$2,$(patsubst $(firstword $1),$2,$3)),$3) +_lt.unLIBPATTERNS = $(foreach _lt.tmp,$1,$(if $(filter $(.LIBPATTERNS),$(notdir $(_lt.tmp))),$(call _lt.patsubst-all,$(.LIBPATTERNS),-l%,$(notdir $(_lt.tmp))),$(_lt.tmp))) +_lt.rest = $(wordlist 2,$(words $1),$1) +_lt.dedup = $(if $1,$(if $(filter $(firstword $1),$(call _lt.rest,$1)),,$(firstword $1) )$(call _lt.dedup,$(call _lt.rest,$1))) +_lt.dependency_libs = $(foreach _lt.tmp,$1,$(_lt.tmp)$(if $(filter %.la,$(_lt.tmp)), $(shell . $(_lt.tmp); echo $$dependency_libs))) + + lt.lib.rpath = $(dir $(patsubst $(DESTDIR)%,%,$(filter %/$(@F),$(files.sys)))) + lt.lib.files.all = $(filter %.lo %.la -l%,$(call _lt.unLIBPATTERNS,$^)) + lt.lib.files.ld = $(strip $(if $(lt.lib.rpath),\ + $(lt.lib.files.all),\ + $(filter-out %.la,$(lt.lib.files.all)))) +_lt.lib.files.dep = $(strip $(call _lt.dedup,$(filter %.la -l%,$(call _lt.dependency_libs,$(lt.lib.files.all))))) + lt.lib.post = $(strip $(if $(lt.lib.rpath),\ + true,\ + sed -i 's|^dependency_libs=.*|dependency_libs='\''$(_lt.lib.files.dep)'\''|' $@)) + +lt.exe.files.all = $(filter %.o %.la -l%,$(call _lt.unLIBPATTERNS,$^)) +lt.exe.files.ld = $(lt.exe.files.all) diff --git a/build-aux/Makefile.once.head/10-nested.mk b/build-aux/Makefile.once.head/10-nested.mk new file mode 100644 index 0000000000..af9fdf7d8a --- /dev/null +++ b/build-aux/Makefile.once.head/10-nested.mk @@ -0,0 +1,18 @@ +# Copyright (C) 2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +mod.nested.description = Easy nested .PHONY targets + +nested.targets ?= diff --git a/build-aux/Makefile.once.head/10-write-atomic.mk b/build-aux/Makefile.once.head/10-write-atomic.mk new file mode 100644 index 0000000000..f099ae285f --- /dev/null +++ b/build-aux/Makefile.once.head/10-write-atomic.mk @@ -0,0 +1,4 @@ +mod.write-atomic.description = `write-atomic` auxiliary build script +mod.write-atomic.files += $(topsrcdir)/build-aux/write-atomic + +WRITE_ATOMIC ?= $(topsrcdir)/build-aux/write-atomic diff --git a/build-aux/Makefile.once.head/10-write-ifchanged.mk b/build-aux/Makefile.once.head/10-write-ifchanged.mk new file mode 100644 index 0000000000..b0a5ac478f --- /dev/null +++ b/build-aux/Makefile.once.head/10-write-ifchanged.mk @@ -0,0 +1,4 @@ +mod.write-ifchanged.description = `write-ifchanged` auxiliary build script +mod.write-ifchanged.files += $(topsrcdir)/build-aux/write-ifchanged + +WRITE_IFCHANGED ?= $(topsrcdir)/build-aux/write-ifchanged diff --git a/build-aux/Makefile.once.head/20-sd.mk b/build-aux/Makefile.once.head/20-sd.mk new file mode 100644 index 0000000000..3c4d6bfd5c --- /dev/null +++ b/build-aux/Makefile.once.head/20-sd.mk @@ -0,0 +1,251 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. + +mod.sd.description = (systemd) shared build rules +mod.sd.depends += am + +TESTS ?= + +# Make behavior +SHELL = bash -o pipefail + +.DELETE_ON_ERROR: +.SECONDARY: + +# Autoconf +OUR_CPPFLAGS += -MT $@ -MD -MP -MF $(@D)/$(DEPDIR)/$(basename $(@F)).P$(patsubst .%,%,$(suffix $(@F))) +OUR_CPPFLAGS += -include $(topoutdir)/config.h +OUR_CPPFLAGS += $(sort -I$(@D) $(if $(<D),-I$(<D) -I$(call at.out2src,$(<D)))) + +# +sd.ALL_CFLAGS = $(strip $(OUR_CFLAGS) $(am.CFLAGS) $(sd.CFLAGS) $(CFLAGS) ) +sd.ALL_CPPFLAGS = $(strip $(OUR_CPPFLAGS) $(am.CPPFLAGS) $(sd.CPPFLAGS) $(CPPFLAGS) ) +sd.ALL_LDFLAGS = $(strip $(OUR_LDFLAGS) $(am.LDFLAGS) $(sd.LDFLAGS) $(LDFLAGS) ) +sd.ALL_LIBTOOLFLAGS = $(strip $(OUR_LIBTOOLFLAGS) $(sd.LIBTOOLFLAGS) $(LIBTOOLFLAGS) ) + +sd.COMPILE = $(CC) $(sd.ALL_CPPFLAGS) $(sd.ALL_CFLAGS) +sd.LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(sd.ALL_LIBTOOLFLAGS) --mode=compile $(CC) $(sd.ALL_CPPFLAGS) $(sd.ALL_CFLAGS) +sd.LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(sd.ALL_LIBTOOLFLAGS) --mode=link $(CCLD) $(sd.ALL_CFLAGS) $(sd.ALL_LDFLAGS) -o $@ + +CC ?= c99 +CCLD ?= c99 +LIBTOOL ?= libtool + +V ?= + +AM_V_at ?= $(AM_V_at_$(V)) +AM_V_at_ ?= $(AM_V_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at_0 ?= @ +AM_V_at_1 ?= + +AM_V_M4 ?= $(AM_V_M4_$(V)) +AM_V_M4_ ?= $(AM_V_M4_$(AM_DEFAULT_VERBOSITY)) +AM_V_M4_0 ?= @echo " M4 " $@; +AM_V_M4_1 ?= + +AM_V_XSLT ?= $(AM_V_XSLT_$(V)) +AM_V_XSLT_ ?= $(AM_V_XSLT_$(AM_DEFAULT_VERBOSITY)) +AM_V_XSLT_0 ?= @echo " XSLT " $@; +AM_V_XSLT_1 ?= + +AM_V_GPERF ?= $(AM_V_GPERF_$(V)) +AM_V_GPERF_ ?= $(AM_V_GPERF_$(AM_DEFAULT_VERBOSITY)) +AM_V_GPERF_0 ?= @echo " GPERF " $@; +AM_V_GPERF_1 ?= + +AM_V_LN ?= $(AM_V_LN_$(V)) +AM_V_LN_ ?= $(AM_V_LN_$(AM_DEFAULT_VERBOSITY)) +AM_V_LN_0 ?= @echo " LN " $@; +AM_V_LN_1 ?= + +AM_V_RM ?= $(AM_V_RM_$(V)) +AM_V_RM_ ?= $(AM_V_RM_$(AM_DEFAULT_VERBOSITY)) +AM_V_RM_0 ?= @echo " RM " $@; +AM_V_RM_1 ?= + +AM_V_CC ?= $(AM_V_CC_$(V)) +AM_V_CC_ ?= $(AM_V_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC_0 ?= @echo " CC " $@; +AM_V_CC_1 ?= + +AM_V_CCLD ?= $(AM_V_CCLD_$(V)) +AM_V_CCLD_ ?= $(AM_V_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD_0 ?= @echo " CCLD " $@; +AM_V_CCLD_1 ?= + +AM_V_EFI_CC ?= $(AM_V_EFI_CC_$(V)) +AM_V_EFI_CC_ ?= $(AM_V_EFI_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_EFI_CC_0 ?= @echo " EFI_CC " $@; +AM_V_EFI_CC_1 ?= + +AM_V_EFI_CCLD ?= $(AM_V_EFI_CCLD_$(V)) +AM_V_EFI_CCLD_ ?= $(AM_V_EFI_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_EFI_CCLD_0 ?= @echo " EFI_CCLD" $@; +AM_V_EFI_CCLD_1 ?= + +AM_V_P ?= $(AM_V_P_$(V)) +AM_V_P_ ?= $(AM_V_P_$(AM_DEFAULT_VERBOSITY)) +AM_V_P_0 ?= false +AM_V_P_1 ?= : + +AM_V_GEN ?= $(AM_V_GEN_$(V)) +AM_V_GEN_ ?= $(AM_V_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN_0 ?= @echo " GEN " $@; +AM_V_GEN_1 ?= + +INTLTOOL_V_MERGE ?= $(INTLTOOL_V_MERGE_$(V)) +INTLTOOL_V_MERGE_OPTIONS ?= $(intltool_v_merge_options_$(V)) +INTLTOOL_V_MERGE_ ?= $(INTLTOOL_V_MERGE_$(AM_DEFAULT_VERBOSITY)) +INTLTOOL_V_MERGE_0 ?= @echo " ITMRG " $@; +INTLTOOL_V_MERGE_1 ?= + +am.INSTALL_PROGRAMS = $(AM_V_PROG)$(LIBTOOL) $(AM_V_lt) --tag=CC $(sd.ALL_LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $< $@ +am.INSTALL_SCRIPTS = $(AM_V_SCRIPT)$(INSTALL_SCRIPT) $< $@ +am.INSTALL_LTLIBRARIES = $(AM_V_LIB)$(LIBTOOL) $(AM_V_lt) --tag=CC $(sd.ALL_LIBTOOLFLAGS) --mode=install $(INSTALL) $< $@ +am.INSTALL_DATA = $(AM_V_DATA)$(INSTALL_DATA) $< $@ +am.INSTALL_HEADERS = $(AM_V_HEADER)$(INSTALL_DATA) $< $@ +am.INSTALL_MANS = $(AM_V_MAN)$(INSTALL_DATA) $< $@ + +AM_V_lt ?= $(AM_V_lt_$(V)) +AM_V_lt_ ?= $(AM_V_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt_0 ?= --silent +AM_V_lt_1 ?= + +AM_V_PROG ?= $(AM_V_PROG_$(V)) +AM_V_PROG_ ?= $(AM_V_PROG_$(AM_DEFAULT_VERBOSITY)) +AM_V_PROG_0 ?= @echo " PROG " $@; +AM_V_PROG_1 ?= + +AM_V_SCRIPT ?= $(AM_V_SCRIPT_$(V)) +AM_V_SCRIPT_ ?= $(AM_V_SCRIPT_$(AM_DEFAULT_VERBOSITY)) +AM_V_SCRIPT_0 ?= @echo " SCRIPT " $@; +AM_V_SCRIPT_1 ?= + +AM_V_LIB ?= $(AM_V_LIB_$(V)) +AM_V_LIB_ ?= $(AM_V_LIB_$(AM_DEFAULT_VERBOSITY)) +AM_V_LIB_0 ?= @echo " LIB " $@; +AM_V_LIB_1 ?= + +AM_V_DATA ?= $(AM_V_DATA_$(V)) +AM_V_DATA_ ?= $(AM_V_DATA_$(AM_DEFAULT_VERBOSITY)) +AM_V_DATA_0 ?= @echo " DATA " $@; +AM_V_DATA_1 ?= + +AM_V_HEADER ?= $(AM_V_HEADER_$(V)) +AM_V_HEADER_ ?= $(AM_V_HEADER_$(AM_DEFAULT_VERBOSITY)) +AM_V_HEADER_0 ?= @echo " HEADER " $@; +AM_V_HEADER_1 ?= + +AM_V_MAN ?= $(AM_V_MAN_$(V)) +AM_V_MAN_ ?= $(AM_V_MAN_$(AM_DEFAULT_VERBOSITY)) +AM_V_MAN_0 ?= @echo " MAN " $@; +AM_V_MAN_1 ?= + +sd.substitutions = \ + '|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)|' \ + '|sysusersdir=$(sysusersdir)|' \ + '|sysctldir=$(sysctldir)|' \ + '|systemgeneratordir=$(systemgeneratordir)|' \ + '|usergeneratordir=$(usergeneratordir)|' \ + '|CERTIFICATEROOT=$(CERTIFICATEROOT)|' \ + '|PACKAGE_VERSION=$(PACKAGE_VERSION)|' \ + '|PACKAGE_NAME=$(PACKAGE_NAME)|' \ + '|PACKAGE_URL=$(PACKAGE_URL)|' \ + '|RANDOM_SEED_DIR=$(localstatedir)/lib/systemd/|' \ + '|RANDOM_SEED=$(localstatedir)/lib/systemd/random-seed|' \ + '|prefix=$(prefix)|' \ + '|exec_prefix=$(exec_prefix)|' \ + '|libdir=$(libdir)|' \ + '|includedir=$(includedir)|' \ + '|VERSION=$(VERSION)|' \ + '|rootprefix=$(rootprefix)|' \ + '|udevlibexecdir=$(udevlibexecdir)|' \ + '|SUSHELL=$(SUSHELL)|' \ + '|SULOGIN=$(SULOGIN)|' \ + '|DEBUGTTY=$(DEBUGTTY)|' \ + '|KILL=$(KILL)|' \ + '|KMOD=$(KMOD)|' \ + '|MOUNT_PATH=$(MOUNT_PATH)|' \ + '|UMOUNT_PATH=$(UMOUNT_PATH)|' \ + '|MKDIR_P=$(MKDIR_P)|' \ + '|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)|' \ + '|NTP_SERVERS=$(NTP_SERVERS)|' \ + '|DNS_SERVERS=$(DNS_SERVERS)|' \ + '|DEFAULT_DNSSEC_MODE=$(DEFAULT_DNSSEC_MODE)|' \ + '|KILL_USER_PROCESSES=$(KILL_USER_PROCESSES)|' \ + '|systemuidmax=$(SYSTEM_UID_MAX)|' \ + '|systemgidmax=$(SYSTEM_GID_MAX)|' \ + '|TTY_GID=$(TTY_GID)|' \ + '|systemsleepdir=$(systemsleepdir)|' \ + '|systemshutdowndir=$(systemshutdowndir)|' \ + '|binfmtdir=$(binfmtdir)|' \ + '|modulesloaddir=$(modulesloaddir)|' + +sd.substitution_keys := $(subst |,,$(shell printf '%s\n' $(sd.substitutions) | cut -d= -f1)) + +sd.SED_PROCESS = \ + $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ + $(SED) $(subst '|,-e 's|@,$(subst =,\@|,$(subst |',|g',$(sd.substitutions)))) \ + < $< > $@ + +sd.XSLTPROC_FLAGS = \ + --nonet \ + --xinclude \ + --stringparam man.output.quietly 1 \ + --stringparam funcsynopsis.style ansi \ + --stringparam man.authors.section.enabled 0 \ + --stringparam man.copyright.section.enabled 0 \ + --stringparam systemd.version $(VERSION) \ + --path '$(outdir):$(srcdir):$(topoutdir)/man:$(topsrcdir)/man' + +sd.XSLT = $(if $(XSLTPROC), $(XSLTPROC), xsltproc) +sd.XSLTPROC_PROCESS_MAN = \ + $(AM_V_XSLT)$(sd.XSLT) -o $@ $(sd.XSLTPROC_FLAGS) $(srcdir)/man/custom-man.xsl $< + +sd.XSLTPROC_PROCESS_HTML = \ + $(AM_V_XSLT)$(sd.XSLT) -o $@ $(sd.XSLTPROC_FLAGS) $(srcdir)/man/custom-html.xsl $< + +sd.html-alias = \ + $(AM_V_LN)$(LN_S) -f $(notdir $<) $@ diff --git a/build-aux/Makefile.once.head/20-systemd.mk b/build-aux/Makefile.once.head/20-systemd.mk deleted file mode 100644 index 3f55d88234..0000000000 --- a/build-aux/Makefile.once.head/20-systemd.mk +++ /dev/null @@ -1,186 +0,0 @@ -# -*- Mode: makefile; indent-tabs-mode: t -*- -# -# This file is part of systemd. -# -# Copyright 2010-2012 Lennart Poettering -# Copyright 2010-2012 Kay Sievers -# Copyright 2013 Zbigniew Jędrzejewski-Szmek -# Copyright 2013 David Strauss -# Copyright 2016 Luke Shumaker -# -# systemd is free software; you can redistribute it and/or modify it -# 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 -# (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 -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with systemd; If not, see <http://www.gnu.org/licenses/>. -include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk -include $(topsrcdir)/build-aux/Makefile.head.mk - -ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} -AM_MAKEFLAGS = --no-print-directory -AUTOMAKE_OPTIONS = color-tests parallel-tests - -GCC_COLORS ?= 'ooh, shiny!' -export GCC_COLORS - -SUBDIRS = . po - -# remove targets if the command fails -.DELETE_ON_ERROR: - -# keep intermediate files -.SECONDARY: - -# Keep the test-suite.log -.PRECIOUS: $(TEST_SUITE_LOG) Makefile - -V ?= - -AM_V_M4 = $(AM_V_M4_$(V)) -AM_V_M4_ = $(AM_V_M4_$(AM_DEFAULT_VERBOSITY)) -AM_V_M4_0 = @echo " M4 " $@; -AM_V_M4_1 = - -AM_V_XSLT = $(AM_V_XSLT_$(V)) -AM_V_XSLT_ = $(AM_V_XSLT_$(AM_DEFAULT_VERBOSITY)) -AM_V_XSLT_0 = @echo " XSLT " $@; -AM_V_XSLT_1 = - -AM_V_GPERF = $(AM_V_GPERF_$(V)) -AM_V_GPERF_ = $(AM_V_GPERF_$(AM_DEFAULT_VERBOSITY)) -AM_V_GPERF_0 = @echo " GPERF " $@; -AM_V_GPERF_1 = - -AM_V_LN = $(AM_V_LN_$(V)) -AM_V_LN_ = $(AM_V_LN_$(AM_DEFAULT_VERBOSITY)) -AM_V_LN_0 = @echo " LN " $@; -AM_V_LN_1 = - -AM_V_RM = $(AM_V_RM_$(V)) -AM_V_RM_ = $(AM_V_RM_$(AM_DEFAULT_VERBOSITY)) -AM_V_RM_0 = @echo " RM " $@; -AM_V_RM_1 = - -AM_V_CC = $(AM_V_CC_$(V)) -AM_V_CC_ = $(AM_V_CC_$(AM_DEFAULT_VERBOSITY)) -AM_V_CC_0 = @echo " CC " $@; -AM_V_CC_1 = - -AM_V_CCLD = $(AM_V_CCLD_$(V)) -AM_V_CCLD_ = $(AM_V_CCLD_$(AM_DEFAULT_VERBOSITY)) -AM_V_CCLD_0 = @echo " CCLD " $@; -AM_V_CCLD_1 = - -AM_V_P = $(AM_V_P_$(V)) -AM_V_P_ = $(AM_V_P_$(AM_DEFAULT_VERBOSITY)) -AM_V_P_0 = false -AM_V_P_1 = : - -AM_V_GEN = $(AM_V_GEN_$(V)) -AM_V_GEN_ = $(AM_V_GEN_$(AM_DEFAULT_VERBOSITY)) -AM_V_GEN_0 = @echo " GEN " $@; -AM_V_GEN_1 = - -AM_V_at = $(AM_V_at_$(V)) -AM_V_at_ = $(AM_V_at_$(AM_DEFAULT_VERBOSITY)) -AM_V_at_0 = @ -AM_V_at_1 = - -AM_V_lt = $(AM_V_lt_$(V)) -AM_V_lt_ = $(AM_V_lt_$(AM_DEFAULT_VERBOSITY)) -AM_V_lt_0 = --silent -AM_V_lt_1 = - -INTLTOOL_V_MERGE = $(INTLTOOL_V_MERGE_$(V)) -INTLTOOL_V_MERGE_OPTIONS = $(intltool_v_merge_options_$(V)) -INTLTOOL_V_MERGE_ = $(INTLTOOL_V_MERGE_$(AM_DEFAULT_VERBOSITY)) -INTLTOOL_V_MERGE_0 = @echo " ITMRG " $@; -INTLTOOL_V_MERGE_1 = - -substitutions = \ - '|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)|' \ - '|sysusersdir=$(sysusersdir)|' \ - '|sysctldir=$(sysctldir)|' \ - '|systemgeneratordir=$(systemgeneratordir)|' \ - '|usergeneratordir=$(usergeneratordir)|' \ - '|CERTIFICATEROOT=$(CERTIFICATEROOT)|' \ - '|PACKAGE_VERSION=$(PACKAGE_VERSION)|' \ - '|PACKAGE_NAME=$(PACKAGE_NAME)|' \ - '|PACKAGE_URL=$(PACKAGE_URL)|' \ - '|RANDOM_SEED_DIR=$(localstatedir)/lib/systemd/|' \ - '|RANDOM_SEED=$(localstatedir)/lib/systemd/random-seed|' \ - '|prefix=$(prefix)|' \ - '|exec_prefix=$(exec_prefix)|' \ - '|libdir=$(libdir)|' \ - '|includedir=$(includedir)|' \ - '|VERSION=$(VERSION)|' \ - '|rootprefix=$(rootprefix)|' \ - '|udevlibexecdir=$(udevlibexecdir)|' \ - '|SUSHELL=$(SUSHELL)|' \ - '|SULOGIN=$(SULOGIN)|' \ - '|DEBUGTTY=$(DEBUGTTY)|' \ - '|KILL=$(KILL)|' \ - '|KMOD=$(KMOD)|' \ - '|MOUNT_PATH=$(MOUNT_PATH)|' \ - '|UMOUNT_PATH=$(UMOUNT_PATH)|' \ - '|MKDIR_P=$(MKDIR_P)|' \ - '|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)|' \ - '|NTP_SERVERS=$(NTP_SERVERS)|' \ - '|DNS_SERVERS=$(DNS_SERVERS)|' \ - '|DEFAULT_DNSSEC_MODE=$(DEFAULT_DNSSEC_MODE)|' \ - '|KILL_USER_PROCESSES=$(KILL_USER_PROCESSES)|' \ - '|systemuidmax=$(SYSTEM_UID_MAX)|' \ - '|systemgidmax=$(SYSTEM_GID_MAX)|' \ - '|TTY_GID=$(TTY_GID)|' \ - '|systemsleepdir=$(systemsleepdir)|' \ - '|systemshutdowndir=$(systemshutdowndir)|' \ - '|binfmtdir=$(binfmtdir)|' \ - '|modulesloaddir=$(modulesloaddir)|' - -SED_PROCESS = \ - $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ - $(SED) $(subst '|,-e 's|@,$(subst =,\@|,$(subst |',|g',$(substitutions)))) \ - < $< > $@ - -# Stupid test that everything purported to be exported really is -define generate-sym-test - $(AM_V_at)$(MKDIR_P) $(dir $@) - $(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' >> $@ -endef - -include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/build-aux/Makefile.once.head/30-am.mk b/build-aux/Makefile.once.head/30-am.mk new file mode 100644 index 0000000000..3663e07093 --- /dev/null +++ b/build-aux/Makefile.once.head/30-am.mk @@ -0,0 +1,113 @@ +mod.am.description = (systemd) Automake-to-Autothing magic +mod.am.depends += gnuconf + +am.sys2out_DATA = \ + $(notdir \ + $(patsubst $(pamconfdir)/%,%.pam,\ + $(patsubst $(tmpfilesdir)/%.conf,%.tmpfiles,\ + $(patsubst $(sysusersdir)/%.conf,%.sysusers,\ + $(patsubst $(sysctldir)/%.conf,%.sysctl,\ + $(patsubst $(bashcompletiondir)/%,%.completion.bash,\ + $(patsubst $(zshcompletiondir)/_%,%.completion.zsh,\ + $1))))))) +am.sys2out_HEADERS = $(abspath $(addprefix $(srcdir)/include/,$(notdir $1))) + +am.var_PROGRAMS = $1_SOURCES nodist_$1_SOURCES $1_CFLAGS $1_CPPFLAGS $1_LDFLAGS $1_LDADD +am.var_LTLIBRARIES = $1_SOURCES nodist_$1_SOURCES $1_CFLAGS $1_CPPFLAGS $1_LDFLAGS $1_LIBADD + +# So these are reasonable defaults, to keep my sanity. They get overridden by +# `libtool`/`AM_V_*`-aware versions in `*-sd.mk` +am.INSTALL_PROGRAMS ?= $(INSTALL_PROGRAM) $< $@ +am.INSTALL_SCRIPTS ?= $(INSTALL) $< $@ +am.INSTALL_LTLIBRARIES ?= $(INSTALL) $< $@ +am.INSTALL_DATA ?= $(INSTALL_DATA) $< $@ +am.INSTALL_HEADERS ?= $(INSTALL_DATA) $< $@ +am.INSTALL_MANS ?= $(INSTALL_DATA) $< $@ + +am.LDFLAGS = + +######################################################################## + +# this list of primaries is based on the Automake 1.15 manual +am.primaries ?= PROGRAMS LIBRARIES LTLIBRARIES LISP PYTHON JAVA SCRIPTS DATA HEADERS MANS TEXINFOS +$(eval $(foreach p,$(am.primaries),am.sys2out_$p ?= $$(notdir $$1)$(at.nl))) + +am.primary2dirs = $(filter $(patsubst %dir,%,$(filter %dir,$(.VARIABLES))),\ + $(patsubst nodist_%,%,$(patsubst dist_%,%,$(patsubst %_$1,%,$(filter %_$1,$(.VARIABLES)))))) +am.sys2dirs = $(sort $(patsubst %/,%,$(dir $(foreach p,$(am.primaries),$(am.sys_$p))))) + +am.file2var = $(subst -,_,$(subst .,_,$1)) +am.file2sources = $(addprefix $(srcdir)/,$(notdir $($(am.file2var)_SOURCES))) +am.file2sources += $(addprefix $(outdir)/,$(notdir $(nodist_$(am.file2var)_SOURCES))) +am.file2.o = $(patsubst $(srcdir)/%,$(outdir)/%,$(patsubst %.c,%.o ,$(filter %.c,$(am.file2sources)))) +am.file2.lo = $(patsubst %.o,%.lo,$(am.file2.o)) +am.file2lib = $(foreach l, $($(am.file2var)_$2),$(if $(filter lib%.la,$l), $($(l:.la=).DEPENDS) , $l )) +am.file2cpp = $(foreach l,$1 $($(am.file2var)_$2),$(if $(filter lib%.la,$l), $($(l:.la=).CPPFLAGS) , )) + +define _am.per_primary +$(foreach d,$(call am.primary2dirs,$1),$d_$1 ?=$(at.nl)dist_$d_$1 ?=$(at.nl)nodist_$d_$1 ?=$(at.nl)) +noinst_$1 ?= +check_$1 ?= + +am.sys_$1 := $(foreach d,$(call am.primary2dirs,$1),$$(addprefix $$($ddir)/,$$(notdir $$($d_$1) $$(dist_$d_$1) $$(nodist_$d_$1)))) +am.out_$1 := $$(call am.sys2out_$1,$(foreach d,$(call am.primary2dirs,$1),$$(addprefix $$($ddir)/,$$(notdir $$($d_$1) $$(nodist_$d_$1) ))) $$(noinst_$1)) +am.check_$1 := $$(check_$1) +$(foreach d,$(call am.primary2dirs,$1),undefine $d_$1$(at.nl)undefine dist_$d_$1$(at.nl)undefine nodist_$d_$1$(at.nl)) +undefine noinst_$1 +undefine check_$1 +$$(addprefix $$(DESTDIR),$$(am.sys_$1)): private am.INSTALL = $$(am.INSTALL_$1) +endef +######################################################################## +# TODO: I'm not in love with how _am.per_PROGRAM figures out am.subdirs +# $1 = filename +# $2 = varname +define _am.per_PROGRAM +$(foreach var,_am.depends $(call am.var_PROGRAMS,$2),$(var) ?=$(at.nl)) +_am.depends += $$(call at.path,$$(call am.file2.o,$1) $$(call am.file2lib,$1,LDADD)) +am.CPPFLAGS += $$($2_CPPFLAGS) $$(call am.file2cpp,$1,LDADD) +am.CFLAGS += $$($2_CFLAGS) +$$(outdir)/$1: private am.LDFLAGS := $$($2_LDFLAGS) +$$(outdir)/$1: $$(_am.depends) +am.subdirs := $$(sort $$(am.subdirs)\ + $$(filter-out $$(abspath $$(srcdir)),\ + $$(abspath $$(dir $$(filter-out -l% /%,$$(_am.depends)))))) +am.CPPFLAGS := $$(am.CPPFLAGS) +am.CFLAGS := $$(am.CFLAGS) +$(foreach var,_am.depends $(call am.var_LTLIBRARIES,$2),undefine $(var)$(at.nl)) +endef +######################################################################## +# TODO: I'm not in love with how _am.per_LTLIBRARY figures out am.subdirs +# $1 = filename +# $2 = varname +define _am.per_LTLIBRARY +$(foreach var,_am.depends $(call am.var_LTLIBRARIES,$2),$(var) ?=$(at.nl)) +_am.depends += $$(call at.path,$$(call am.file2.lo,$1) $$(call am.file2lib,$1,LIBADD)) +am.CPPFLAGS += $$($2_CPPFLAGS) $$(call am.file2cpp,$1,LIBADD) +am.CFLAGS += $$($2_CFLAGS) +$$(outdir)/$1: private am.LDFLAGS := $$($2_LDFLAGS) +$$(outdir)/$1: $$(_am.depends) +am.subdirs := $$(sort $$(am.subdirs)\ + $$(filter-out $$(abspath $$(srcdir)),\ + $$(abspath $$(dir $$(filter-out -l% /%,$$(_am.depends)))))) +am.CPPFLAGS := $$(am.CPPFLAGS) +am.CFLAGS := $$(am.CFLAGS) +$(foreach var,_am.depends $(call am.var_LTLIBRARIES,$2),undefine $(var)$(at.nl)) +endef +######################################################################## +define _am.per_directory +$$(DESTDIR)$1/%: $$(outdir)/% + @$$(NORMAL_INSTALL) + $$(am.INSTALL) +$$(DESTDIR)$1/%: $$(srcdir)/% + @$$(NORMAL_INSTALL) + $$(am.INSTALL) +endef +######################################################################## +define _am.per_include_directory +$$(DESTDIR)$1/%: $$(outdir)/include/% + @$$(NORMAL_INSTALL) + $$(am.INSTALL) +$$(DESTDIR)$1/%: $$(srcdir)/include/% + @$$(NORMAL_INSTALL) + $$(am.INSTALL) +endef diff --git a/build-aux/Makefile.once.head/zz-mod.mk b/build-aux/Makefile.once.head/zz-mod.mk new file mode 100644 index 0000000000..732f1e169d --- /dev/null +++ b/build-aux/Makefile.once.head/zz-mod.mk @@ -0,0 +1,36 @@ +# Copyright (C) 2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +mod.mod.description = Display information about Autothing modules +mod.mod.depends += quote + +# The trickery that is _mod.empty/_mod.space is from §6.2 of the GNU Make +# manual, "The Two Flavors of Variables". +_mod.empty := +_mod.space := $(_mod.empty) # +undefine _mod.empty +# _mod.rest is equivalent to GMSL rest. +_mod.rest = $(wordlist 2,$(words $1),$1) + +_mod.file2mod = $(foreach _mod.tmp,$(patsubst %.mk,%,$(notdir $1)),$(subst $(_mod.space),-,$(call _mod.rest,$(subst -, ,$(_mod.tmp))))) + +_mod.modules := $(sort $(call _mod.file2mod,$(wildcard $(topsrcdir)/build-aux/Makefile.*/??-*.mk))) +undefine _mod.rest +undefine _mod.file2mod + +$(eval $(foreach _mod.tmp,$(_mod.modules),\ + mod.$(_mod.tmp).description ?=$(at.nl)\ + mod.$(_mod.tmp).depends ?=$(at.nl)\ + mod.$(_mod.tmp).files ?=$(at.nl))) diff --git a/build-aux/Makefile.once.tail/.gitignore b/build-aux/Makefile.once.tail/.gitignore new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/build-aux/Makefile.once.tail/.gitignore diff --git a/build-aux/Makefile.once.tail/00-dist.mk b/build-aux/Makefile.once.tail/00-dist.mk new file mode 100644 index 0000000000..3fbe0c4012 --- /dev/null +++ b/build-aux/Makefile.once.tail/00-dist.mk @@ -0,0 +1,27 @@ +# Copyright (C) 2015-2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +_dist.copyfile = $(MKDIR_P) $(dir $2) && $(CP) -T $1 $2 +_dist.addfile = $(call _dist.copyfile,$3,$2/$(call at.relto,$1,$3)) +$(topoutdir)/$(dist.pkgname)-$(dist.version): $(_dist.files) + $(RM) -r $@ $(@D)/.tmp.$(@F) + $(MKDIR) $(@D)/.tmp.$(@F) + $(foreach f,$^,$(call _dist.addfile,$(topsrcdir),$(@D)/.tmp.$(@F),$f)$(at.nl)) + $(MV) $(@D)/.tmp.$(@F) $@ || $(RM) -r $(@D)/.tmp.$(@F) + +$(topoutdir)/$(dist.pkgname)-$(dist.version).tar: %.tar: % + $(TAR) cf $@ -C $(<D) $(<F) +$(topoutdir)/$(dist.pkgname)-$(dist.version).tar.gz: %.gz: % + $(GZIP) $(GZIPFLAGS) < $< > $@ diff --git a/build-aux/Makefile.once.tail/20-systemd.mk b/build-aux/Makefile.once.tail/10-sd.mk index 7455244e3c..228d4d0db7 100644 --- a/build-aux/Makefile.once.tail/20-systemd.mk +++ b/build-aux/Makefile.once.tail/10-sd.mk @@ -20,8 +20,24 @@ # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see <http://www.gnu.org/licenses/>. -include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk -include $(topsrcdir)/build-aux/Makefile.head.mk + +_sd.autogen_files = aclocal.m4 automake.mk.in config.h.in configure po/Makefile.in.in +# `$*`/`%` had better be $(topsrcdir), but we can't enforce that +$(addprefix %/,$(_sd.autogen_files)): %/configure.ac %/autogen.sh + cd $(topsrcdir) && ./autogen.sh + +config_files = config.mk automake.mk autoconf.mk gnustandards.mk po/Makefile.in +config_headers = config.h +config_commands = depfiles libtool po/stamp-it +$(topoutdir)/config.status: $(topsrcdir)/configure + cd $(topoutdir) && ./config.status --recheck +$(addprefix $(topoutdir)/,$(config_files)): $(topoutdir)/%: $(topoutdir)/config.status $(topsrcdir)/%.in + cd $(topoutdir) && ./config.status --file=$* +$(addprefix $(topoutdir)/,$(config_headers)): $(topoutdir)/%: $(topoutdir)/%.stamp +$(foreach f,$(config_headers),$(topoutdir)/$f.stamp): $(topoutdir)/%.stamp: $(topoutdir)/config.status $(topsrcdir)/%.in + cd $(topoutdir) && ./config.status --header=$* + test -f $(topoutdir)/$* + touch $@ # Let's run all tests of the test suite, but under valgrind. Let's # exclude perl/python/shell scripts we have in there @@ -35,21 +51,21 @@ valgrind-tests: $(TESTS) x="\n\n"; \ done -exported-%: % - $(AM_V_GEN)$(NM) -g --defined-only $(builddir)/.libs/$(<:.la=.so) 2>&1 /dev/null | grep " T " | cut -d" " -f3 > $@ +# exported-%: % +# $(AM_V_GEN)$(NM) -g --defined-only $(builddir)/.libs/$(<:.la=.so) 2>&1 /dev/null | grep " T " | cut -d" " -f3 > $@ -exported: $(addprefix exported-, $(lib_LTLIBRARIES)) - $(AM_V_GEN)sort -u $^ > $@ +# exported: $(addprefix exported-, $(lib_LTLIBRARIES)) +# $(AM_V_GEN)sort -u $^ > $@ -.PHONY: check-api-docs -check-api-docs: exported man - $(AM_V_GEN)for symbol in `cat exported` ; do \ - if test -f $(builddir)/man/$$symbol.html ; then \ - echo " Symbol $$symbol() is documented." ; \ - else \ - echo "‣ Symbol $$symbol() lacks documentation." ; \ - fi ; \ - done +# .PHONY: check-api-docs +# check-api-docs: exported man +# $(AM_V_GEN)for symbol in `cat exported` ; do \ +# if test -f $(builddir)/man/$$symbol.html ; then \ +# echo " Symbol $$symbol() is documented." ; \ +# else \ +# echo "‣ Symbol $$symbol() lacks documentation." ; \ +# fi ; \ +# done OBJECT_VARIABLES:=$(filter %_OBJECTS,$(.VARIABLES)) ALL_OBJECTS:=$(foreach v,$(OBJECT_VARIABLES),$($(v))) @@ -94,4 +110,3 @@ 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 - -include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/build-aux/Makefile.tail.mk b/build-aux/Makefile.tail.mk new file mode 100644 index 0000000000..2e4adc611b --- /dev/null +++ b/build-aux/Makefile.tail.mk @@ -0,0 +1,40 @@ +# Copyright (C) 2015-2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# This bit gets evaluated for each Makefile processed + +include $(call _at.reverse,$(sort $(wildcard $(topsrcdir)/build-aux/Makefile.each.tail/*.mk))) + +_at.tmp_targets := $(at.targets) +_at.tmp_subdirs := $(call at.addprefix,$(outdir),$(at.subdirs)) + +# Clean the environment +$(eval \ + $(foreach _at.tmp_variable,$(filter-out $(call _at.quote-pattern,_at.tmp_variable $(_at.VARIABLES)),$(.VARIABLES)),\ + $(call _at.target_variable,$(_at.tmp_targets),$(_at.tmp_variable))$(at.nl)\ + undefine $(_at.tmp_variable)$(at.nl))) + +# Recurse +$(foreach _at.NO_ONCE,y,\ + $(foreach _at.tmp,$(call at.path,$(addsuffix /$(at.Makefile),$(_at.tmp_subdirs))),\ + $(if $(filter-out $(_at.MAKEFILE_LIST),$(abspath $(_at.tmp))),\ + $(eval include $(_at.tmp))))) + +# This bit only gets evaluated once, after all of the other Makefiles are read +ifeq ($(origin _at.NO_ONCE),undefined) + +include $(call _at.reverse,$(sort $(wildcard $(topsrcdir)/build-aux/Makefile.once.tail/*.mk))) + +endif # _at.NO_ONCE diff --git a/build-aux/write-atomic b/build-aux/write-atomic new file mode 100755 index 0000000000..efb2551f9f --- /dev/null +++ b/build-aux/write-atomic @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +# Copyright (C) 2015-2016 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +outfile=$1 +tmpfile="$(dirname "$outfile")/.tmp${outfile##*/}" + +cat > "$tmpfile" || { r=$?; rm -f "$tmpfile"; exit $r; } +mv -f "$tmpfile" "$outfile" diff --git a/build-aux/write-ifchanged b/build-aux/write-ifchanged new file mode 100755 index 0000000000..185ceb0039 --- /dev/null +++ b/build-aux/write-ifchanged @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +# Copyright (C) 2015 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +outfile=$1 +tmpfile="$(dirname "$outfile")/.tmp${outfile##*/}" + +cat > "$tmpfile" || exit $? +if cmp -s "$tmpfile" "$outfile"; then + rm -f "$tmpfile" || : +else + mv -f "$tmpfile" "$outfile" +fi diff --git a/config.mk.in b/config.mk.in index de6b9dad89..25d338215f 100644 --- a/config.mk.in +++ b/config.mk.in @@ -20,8 +20,34 @@ # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see <http://www.gnu.org/licenses/>. -include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk -include $(topsrcdir)/build-aux/Makefile.head.mk + +ifeq ($(origin topsrcdir),undefined) +topoutdir := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST)))) +topsrcdir := $(topoutdir)/@top_srcdir@ + +.LIBPATTERNS = lib%.so lib%.a + +include $(topoutdir)/gnustandards.mk +include $(topoutdir)/autoconf.mk + +CCLD = $(CC) + +OUR_CPPFLAGS = @OUR_CPPFLAGS@ +OUR_CFLAGS = @OUR_CFLAGS@ +OUR_LDFLAGS = @OUR_LDFLAGS@ +OUR_LIBTOOLFLAGS = + +AM_CPPFLAGS = +AM_CFLAGS = +AM_LDFLAGS = +AM_LIBTOOLFLAGS = + +EFI_CPPFLAGS = +EFI_CFLAGS = +EFI_LDFLAGS = + +SYSTEM_SYSVINIT_PATH = @SYSTEM_SYSVINIT_PATH@ +SYSTEM_SYSVRCND_PATH = @SYSTEM_SYSVRCND_PATH@ # Dirs of external packages dbuspolicydir=@dbuspolicydir@ @@ -73,5 +99,277 @@ bootlibdir = $(prefix)/lib/systemd/boot/efi rootprefix=@rootprefix@ rootbindir=$(rootprefix)/bin rootlibexecdir=$(rootprefix)/lib/systemd +rootlibdir=@rootlibdir@ + +# Libraries we provide +libbasic.CPPFLAGS = -I$(topsrcdir)/src/libbasic/include -I$(topoutdir)/src/libbasic/include +libbasic.DEPENDS = $(topoutdir)/src/libbasic/src/libbasic.la +libfirewall.CPPFLAGS = -I$(topsrcdir)/src/libfirewall +libfirewall.DEPENDS = $(topoutdir)/src/libfirewall/libfirewall.la +libshared.CPPFLAGS = -I$(topsrcdir)/src/libshared/include $(libsystemd-internal.CPPFLAGS) -I$(topsrcdir)/src/libudev/src +libshared.DEPENDS = $(topoutdir)/src/libshared/src/libshared.la + +libsystemd-internal.CPPFLAGS = -I$(topsrcdir)/src/libsystemd/src -I$(topoutdir)/src/libsystemd/src $(libsystemd.CPPFLAGS) $(libbasic.CPPFLAGS) +libsystemd-internal.DEPENDS = $(topoutdir)/src/libsystemd/src/libsystemd-internal.la +libsystemd-network.CPPFLAGS = -I$(topsrcdir)/src/libsystemd-network/include +libsystemd-network.DEPENDS = $(topoutdir)/src/libsystemd-network/src/libsystemd-network.la +libsystemd.CPPFLAGS = -I$(topsrcdir)/src/libsystemd/include +libsystemd.DEPENDS = $(topoutdir)/src/libsystemd/libsystemd.la + +libudev.CPPFLAGS = -I$(topsrcdir)/src/libudev/include +libudev.DEPENDS = $(topoutdir)/src/libudev/src/libudev.la +libudev-internal.CPPFLAGS = -I$(topsrcdir)/src/libudev/src $(libudev.CPPFLAGS) $(libbasic.CPPFLAGS) +libudev-internal.DEPENDS = $(topoutdir)/src/libudev/src/libudev-internal.la +# -core libs +libcore.CPPFLAGS = -I$(topsrcdir)/src/grp-system/libcore $(libshared.CPPFLAGS) +libcore.DEPENDS = $(topoutdir)/src/grp-system/libcore/libcore.la +#libbus-proxy-core.CPPFLAGS = +#libbus-proxy-core.DEPENDS = +libjournal-core.CPPFLAGS = -I$(topsrcdir)/src/grp-journal/libjournal-core $(libsystemd-internal.CPPFLAGS) $(libbasic.CPPFLAGS) +libjournal-core.DEPENDS = $(topoutdir)/src/grp-journal/libjournal-core/libjournal-core.la +#liblogind-core.CPPFLAGS = +#liblogind-core.DEPENDS = +libmachine-core.CPPFLAGS = -I$(topsrcdir)/src/grp-machine/libmachine-core/include +libmachine-core.DEPENDS = $(topoutdir)/src/grp-machine/libmachine-core/src/libmachine-core.la +libnetworkd-core.CPPFLAGS = -I$(topsrcdir)/src/grp-network/libnetworkd-core $(libsystemd-internal.CPPFLAGS) $(libsystemd-network.CPPFLAGS) $(libshared.CPPFLAGS) $(libudev-internal.CPPFLAGS) +libnetworkd-core.DEPENDS = $(topoutdir)/src/grp-network/libnetworkd-core/libnetworkd-core.la +libudev-core.CPPFLAGS = -I$(topoutdir)/src/grp-udev/libudev-core $(libsystemd-network.CPPFLAGS) $(libshared.CPPFLAGS) +libudev-core.DEPENDS = $(topoutdir)/src/grp-udev/libudev-core/libudev-core.la +libbasic-dns.CPPFLAGS = -I$(topoutdir)/src/grp-resolve/libbasic-dns -I$(topsrcdir)/src/grp-resolve/libbasic-dns +libbasic-dns.DEPENDS = $(topoutdir)/src/grp-resolve/libbasic-dns/libbasic-dns.la +libimport.CPPFLAGS = -I$(topsrcdir)/src/grp-machine/grp-import/libimport +libimport.DEPENDS = $(topoutdir)/src/grp-machine/grp-import/libimport/libimport.la +# NSS modules +libnss_myhostname.CPPFLAGS = +libnss_myhostname.DEPENDS = +libnss_mymachines.CPPFLAGS = +libnss_mymachines.DEPENDS = +libnss_resolve.CPPFLAGS = +libnss_resolve.DEPENDS = + +# Libraries we use +HAVE_ACL = @HAVE_ACL_TRUE@1 + ACL_CFLAGS = #XXX + ACL_LIBS = @ACL_LIBS@ +HAVE_APPARMOR = @HAVE_APPARMOR_TRUE@1 + APPARMOR_CFLAGS = @APPARMOR_CFLAGS@ + APPARMOR_LIBS = @APPARMOR_LIBS@ +HAVE_AUDIT = @HAVE_AUDIT_TRUE@1 + AUDIT_CFLAGS = #XXX + AUDIT_LIBS = @AUDIT_LIBS@ +HAVE_BLKID = @HAVE_BLKID_TRUE@1 + BLKID_CFLAGS = @BLKID_CFLAGS@ + BLKID_LIBS = @BLKID_LIBS@ +HAVE_BZIP2 = @HAVE_BZIP2_TRUE@1 + BZIP2_CFLAGS = #XXX + BZIP2_LIBS = -lbz2 #XXX +HAVE_CAP = 1 #XXX + CAP_CFLAGS = #XXX + CAP_LIBS = @CAP_LIBS@ +HAVE_DBUS = @HAVE_DBUS_TRUE@1 + DBUS_CFLAGS = @DBUS_CFLAGS@ + DBUS_LIBS = @DBUS_LIBS@ +HAVE_ELFUTILS = @HAVE_ELFUTILS_TRUE@1 + ELFUTILS_CFLAGS = #XXX + ELFUTILS_LIBS = @ELFUTILS_LIBS@ +HAVE_GCRYPT = @HAVE_GCRYPT_TRUE@1 + GCRYPT_CFLAGS = @GCRYPT_CFLAGS@ + GCRYPT_LIBS = @GCRYPT_LIBS@ +HAVE_GNUTLS = @HAVE_GNUTLS_TRUE@1 + GNUTLS_CFLAGS = @GNUTLS_CFLAGS@ + GNUTLS_LIBS = @GNUTLS_LIBS@ +HAVE_GPG_ERROR = 1 #XXX + GPG_ERROR_CFLAGS = @GPG_ERROR_CFLAGS@ + GPG_ERROR_LIBS = @GPG_ERROR_LIBS@ +HAVE_GPG_ERROR_MT = 1 #XXX + GPG_ERROR_MT_CFLAGS = @GPG_ERROR_MT_CFLAGS@ + GPG_ERROR_MT_LIBS = @GPG_ERROR_MT_LIBS@ +HAVE_KMOD = @HAVE_KMOD_TRUE@1 + KMOD_CFLAGS = @KMOD_CFLAGS@ + KMOD_LIBS = @KMOD_LIBS@ +HAVE_LIBCRYPTSETUP = @HAVE_LIBCRYPTSETUP_TRUE@1 + LIBCRYPTSETUP_CFLAGS = @LIBCRYPTSETUP_CFLAGS@ + LIBCRYPTSETUP_LIBS = @LIBCRYPTSETUP_LIBS@ +HAVE_LIBCURL = @HAVE_LIBCURL_TRUE@1 + LIBCURL_CFLAGS = @LIBCURL_CFLAGS@ + LIBCURL_LIBS = @LIBCURL_LIBS@ +HAVE_LIBGCRYPT = 1 #XXX + LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@ + LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@ +HAVE_LIBIDN = @HAVE_LIBIDN_TRUE@1 + LIBIDN_CFLAGS = @LIBIDN_CFLAGS@ + LIBIDN_LIBS = @LIBIDN_LIBS@ +HAVE_LIBIPTC = @HAVE_LIBIPTC_TRUE@1 + LIBIPTC_CFLAGS = @LIBIPTC_CFLAGS@ + LIBIPTC_LIBS = @LIBIPTC_LIBS@ +HAVE_LZ4 = @HAVE_LZ4_TRUE@1 + LZ4_CFLAGS = @LZ4_CFLAGS@ + LZ4_LIBS = @LZ4_LIBS@ +HAVE_MICROHTTPD = @HAVE_MICROHTTPD_TRUE@1 + MICROHTTPD_CFLAGS = @MICROHTTPD_CFLAGS@ + MICROHTTPD_LIBS = @MICROHTTPD_LIBS@ +HAVE_MOUNT = 1 #XXX + MOUNT_CFLAGS = @MOUNT_CFLAGS@ + MOUNT_LIBS = @MOUNT_LIBS@ +HAVE_PAM = @HAVE_PAM_TRUE@1 + PAM_CFLAGS = #XXX + PAM_LIBS = @PAM_LIBS@ +HAVE_QRENCODE = @HAVE_QRENCODE_TRUE@1 + QRENCODE_CFLAGS = @QRENCODE_CFLAGS@ + QRENCODE_LIBS = @QRENCODE_LIBS@ +HAVE_SECCOMP = @HAVE_SECCOMP_TRUE@1 + SECCOMP_CFLAGS = @SECCOMP_CFLAGS@ + SECCOMP_LIBS = @SECCOMP_LIBS@ +HAVE_SELINUX = @HAVE_SELINUX_TRUE@1 + SELINUX_CFLAGS = @SELINUX_CFLAGS@ + SELINUX_LIBS = @SELINUX_LIBS@ +HAVE_XKBCOMMON = @HAVE_XKBCOMMON_TRUE@1 + XKBCOMMON_CFLAGS = @XKBCOMMON_CFLAGS@ + XKBCOMMON_LIBS = @XKBCOMMON_LIBS@ +HAVE_XZ = @HAVE_XZ_TRUE@1 + XZ_CFLAGS = @XZ_CFLAGS@ + XZ_LIBS = @XZ_LIBS@ +HAVE_ZLIB = @HAVE_ZLIB_TRUE@1 + ZLIB_CFLAGS = @ZLIB_CFLAGS@ + ZLIB_LIBS = @ZLIB_LIBS@ + +# Other stuff +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ + +ARCH_AARCH64 = @ARCH_AARCH64_TRUE@1 +ARCH_IA32 = @ARCH_IA32_TRUE@1 +ARCH_X86_64 = @ARCH_X86_64_TRUE@1 + +DEFAULT_DNSSEC_MODE = @DEFAULT_DNSSEC_MODE@ +KILL_USER_PROCESSES = @KILL_USER_PROCESSES@ + +ENABLE_BACKLIGHT = @ENABLE_BACKLIGHT_TRUE@1 +ENABLE_BASH_COMPLETION = @ENABLE_BASH_COMPLETION_TRUE@1 +ENABLE_BINFMT = @ENABLE_BINFMT_TRUE@1 +ENABLE_BOOTCHART = @ENABLE_BOOTCHART_TRUE@1 +ENABLE_COMPAT_LIBS = @ENABLE_COMPAT_LIBS_TRUE@1 +ENABLE_COREDUMP = @ENABLE_COREDUMP_TRUE@1 +ENABLE_COVERAGE = @ENABLE_COVERAGE_TRUE@1 +ENABLE_EFI = @ENABLE_EFI_TRUE@1 +ENABLE_FIRSTBOOT = @ENABLE_FIRSTBOOT_TRUE@1 +ENABLE_HIBERNATE = @ENABLE_HIBERNATE_TRUE@1 +ENABLE_HOSTNAMED = @ENABLE_HOSTNAMED_TRUE@1 +ENABLE_HWDB = @ENABLE_HWDB_TRUE@1 +ENABLE_IMPORTD = @ENABLE_IMPORTD_TRUE@1 +ENABLE_LDCONFIG = @ENABLE_LDCONFIG_TRUE@1 +ENABLE_LOCALED = @ENABLE_LOCALED_TRUE@1 +ENABLE_LOGIND = @ENABLE_LOGIND_TRUE@1 +ENABLE_MACHINED = @ENABLE_MACHINED_TRUE@1 +ENABLE_MANPAGES = @ENABLE_MANPAGES_TRUE@1 +ENABLE_NETWORKD = @ENABLE_NETWORKD_TRUE@1 +ENABLE_POLKIT = @ENABLE_POLKIT_TRUE@1 +ENABLE_QUOTACHECK = @ENABLE_QUOTACHECK_TRUE@1 +ENABLE_RANDOMSEED = @ENABLE_RANDOMSEED_TRUE@1 +ENABLE_RESOLVED = @ENABLE_RESOLVED_TRUE@1 +ENABLE_RFKILL = @ENABLE_RFKILL_TRUE@1 +ENABLE_SPLIT_USR = @ENABLE_SPLIT_USR_TRUE@1 +ENABLE_SYSUSERS = @ENABLE_SYSUSERS_TRUE@1 +ENABLE_TESTS = @ENABLE_TESTS_TRUE@1 +ENABLE_TIMEDATED = @ENABLE_TIMEDATED_TRUE@1 +ENABLE_TIMESYNCD = @ENABLE_TIMESYNCD_TRUE@1 +ENABLE_TMPFILES = @ENABLE_TMPFILES_TRUE@1 +ENABLE_VCONSOLE = @ENABLE_VCONSOLE_TRUE@1 +ENABLE_ZSH_COMPLETION = @ENABLE_ZSH_COMPLETION_TRUE@1 + +HAVE_COMPRESSION = @HAVE_COMPRESSION_TRUE@1 +HAVE_GNUEFI = @HAVE_GNUEFI_TRUE@1 +HAVE_MYHOSTNAME = @HAVE_MYHOSTNAME_TRUE@1 +HAVE_PYTHON = @HAVE_PYTHON_TRUE@1 +HAVE_REMOTE = @HAVE_REMOTE_TRUE@1 +HAVE_SMACK = @HAVE_SMACK_TRUE@1 +HAVE_SYSV_COMPAT = @HAVE_SYSV_COMPAT_TRUE@1 +HAVE_UTMP = @HAVE_UTMP_TRUE@1 + +LIBTOOLFLAGS = + +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ + +INSTALL = install -D + +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@ +INTLTOOL_MERGE = @INTLTOOL_MERGE@ +INTLTOOL_PERL = @INTLTOOL_PERL@ +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@ +GMSGFMT = @GMSGFMT@ +KBD_LOADKEYS = @KBD_LOADKEYS@ +KBD_SETFONT = @KBD_SETFONT@ +KEXEC = @KEXEC@ +KILL = @KILL@ +KMOD = @KMOD@ +LD = @LD@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +PKG_CONFIG = @PKG_CONFIG@ +PYTHON = @PYTHON@ +QEMU = @QEMU@ +QUOTACHECK = @QUOTACHECK@ +QUOTAON = @QUOTAON@ +SETCAP = @SETCAP@ +SULOGIN = @SULOGIN@ +SUSHELL = @SUSHELL@ +UMOUNT_PATH = @UMOUNT_PATH@ +XSLTPROC = @XSLTPROC@ +MOUNT_PATH = @MOUNT_PATH@ + +AMTAR = @AMTAR@ +CCDEPMODE = @CCDEPMODE@ +CERTIFICATEROOT = @CERTIFICATEROOT@ +DEBUGTTY = @DEBUGTTY@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DNS_SERVERS = @DNS_SERVERS@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +EFI_ARCH = @EFI_ARCH@ +EFI_CC = @EFI_CC@ +EFI_INC_DIR = @EFI_INC_DIR@ +EFI_LDS_DIR = @EFI_LDS_DIR@ +EFI_LIB_DIR = @EFI_LIB_DIR@ +EFI_MACHINE_TYPE_NAME = @EFI_MACHINE_TYPE_NAME@ +EXEEXT = @EXEEXT@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +NMEDIT = @NMEDIT@ +NTP_SERVERS = @NTP_SERVERS@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ + +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +QEMU_BIOS = @QEMU_BIOS@ +RC_LOCAL_SCRIPT_PATH_START = @RC_LOCAL_SCRIPT_PATH_START@ +RC_LOCAL_SCRIPT_PATH_STOP = @RC_LOCAL_SCRIPT_PATH_STOP@ +SYSTEM_GID_MAX = @SYSTEM_GID_MAX@ +SYSTEM_UID_MAX = @SYSTEM_UID_MAX@ +TELINIT = @TELINIT@ +TTY_GID = @TTY_GID@ +USE_NLS = @USE_NLS@ + +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ -include $(topsrcdir)/build-aux/Makefile.tail.mk +endif diff --git a/configure.ac b/configure.ac index 329861a291..f08d1e991e 100644 --- a/configure.ac +++ b/configure.ac @@ -25,7 +25,7 @@ AC_INIT([systemd], [systemd], [http://www.freedesktop.org/wiki/Software/systemd]) -AC_CONFIG_SRCDIR([src/core/main.c]) +AC_CONFIG_SRCDIR([src/grp-system/systemd/main.c]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_AUX_DIR([build-aux]) @@ -86,11 +86,16 @@ GETTEXT_PACKAGE=systemd AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [systemd]) +AC_PROG_AWK +AC_PROG_GREP +AC_PROG_EGREP +AC_PROG_FGREP +AC_PROG_INSTALL AC_PROG_MKDIR_P +AC_PROG_LEX AC_PROG_LN_S AC_PROG_SED -AC_PROG_GREP -AC_PROG_AWK +AC_PROG_YACC AC_PATH_PROG([M4], [m4]) @@ -1564,11 +1569,24 @@ AC_SUBST([rootprefix], [$with_rootprefix]) AC_SUBST([rootlibdir], [$with_rootlibdir]) AC_CONFIG_FILES([ - Makefile + config.mk + automake.mk + autoconf.mk + gnustandards.mk po/Makefile.in ]) -AC_OUTPUT +AC_OUTPUT([], [], [ +if test "$srcdir" != .; then + { + find "$srcdir" -name Makefile -printf '%P\n' + find "$srcdir" -name subdir.mk -printf '%P\n' + } | while read -r filename; do + mkdir -p "\$(dirname "\$filename")" + ln -srfT "$srcdir/\$filename" "\$filename" + done +fi +]) AC_MSG_RESULT([ $PACKAGE_NAME $VERSION @@ -1647,6 +1665,7 @@ AC_MSG_RESULT([ tests: ${enable_tests} prefix: ${prefix} + exec_prefix: ${exec_prefix} rootprefix: ${with_rootprefix} sysconf dir: ${sysconfdir} datarootdir: ${datarootdir} diff --git a/discard.mk b/discard.mk index 42759a0d3b..3ac08a6621 100644 --- a/discard.mk +++ b/discard.mk @@ -513,32 +513,11 @@ EXTRA_DIST += \ # ------------------------------------------------------------------------------ -MANPAGES = -MANPAGES_ALIAS = - include Makefile-man.am .PHONY: man update-man-list man: $(MANPAGES) $(MANPAGES_ALIAS) $(HTML_FILES) $(HTML_ALIAS) -XML_FILES = \ - ${patsubst %.1,%.xml,${patsubst %.3,%.xml,${patsubst %.5,%.xml,${patsubst %.7,%.xml,${patsubst %.8,%.xml,$(MANPAGES)}}}}} -HTML_FILES = \ - ${XML_FILES:.xml=.html} -HTML_ALIAS = \ - ${patsubst %.1,%.html,${patsubst %.3,%.html,${patsubst %.5,%.html,${patsubst %.7,%.html,${patsubst %.8,%.html,$(MANPAGES_ALIAS)}}}}} - -ifneq ($(ENABLE_MANPAGES),) -man_MANS = \ - $(MANPAGES) \ - $(MANPAGES_ALIAS) - -noinst_DATA += \ - $(HTML_FILES) \ - $(HTML_ALIAS) \ - docs/html/man -endif # ENABLE_MANPAGES - CLEANFILES += \ $(man_MANS) \ $(HTML_FILES) \ @@ -564,14 +543,6 @@ XML_GLOB = $(wildcard $(top_srcdir)/man/*.xml) NON_INDEX_XML_FILES = $(filter-out man/systemd.index.xml,$(XML_FILES)) SOURCE_XML_FILES = ${patsubst %,$(top_srcdir)/%,$(filter-out man/systemd.directives.xml,$(NON_INDEX_XML_FILES))} -# 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. -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 - $(AM_V_at)mv $(top_srcdir)/Makefile-man.tmp $(top_srcdir)/Makefile-man.am - @echo "Makefile-man.am has been regenerated" - $(outdir)/systemd.index.xml: $(top_srcdir)/tools/make-man-index.py $(NON_INDEX_XML_FILES) $(AM_V_at)$(MKDIR_P) $(dir $@) $(AM_V_GEN)$(PYTHON) $< $@ $(filter-out $<,$^) @@ -864,81 +835,14 @@ EXTRA_DIST += \ $(polkitpolicy_in_in_files) # ------------------------------------------------------------------------------ -$(outdir)/custom-entities.ent: configure.ac - $(AM_V_GEN)$(MKDIR_P) $(dir $@) - $(AM_V_GEN)(echo '<?xml version="1.0" encoding="utf-8" ?>' && \ - printf '$(subst '|,<!ENTITY ,$(subst =, ",$(subst |',">\n,$(substitutions))))') \ - > $@ # ' - CLEANFILES += \ man/custom-entities.ent -XSLTPROC_FLAGS = \ - --nonet \ - --xinclude \ - --stringparam man.output.quietly 1 \ - --stringparam funcsynopsis.style ansi \ - --stringparam man.authors.section.enabled 0 \ - --stringparam man.copyright.section.enabled 0 \ - --stringparam systemd.version $(VERSION) \ - --path '$(builddir)/man:$(srcdir)/man' - -XSLT = $(if $(XSLTPROC), $(XSLTPROC), xsltproc) -XSLTPROC_PROCESS_MAN = \ - $(AM_V_XSLT)$(XSLT) -o $@ $(XSLTPROC_FLAGS) $(srcdir)/man/custom-man.xsl $< - -XSLTPROC_PROCESS_HTML = \ - $(AM_V_XSLT)$(XSLT) -o $@ $(XSLTPROC_FLAGS) $(srcdir)/man/custom-html.xsl $< - -$(outdir)/%.1: man/%.xml man/custom-man.xsl man/custom-entities.ent - $(XSLTPROC_PROCESS_MAN) - -$(outdir)/%.3: man/%.xml man/custom-man.xsl man/custom-entities.ent - $(XSLTPROC_PROCESS_MAN) - -$(outdir)/%.5: man/%.xml man/custom-man.xsl man/custom-entities.ent - $(XSLTPROC_PROCESS_MAN) - -$(outdir)/%.7: man/%.xml man/custom-man.xsl man/custom-entities.ent - $(XSLTPROC_PROCESS_MAN) - -$(outdir)/%.8: man/%.xml man/custom-man.xsl man/custom-entities.ent - $(XSLTPROC_PROCESS_MAN) - -$(outdir)/%.html: man/%.xml man/custom-html.xsl man/custom-entities.ent - $(XSLTPROC_PROCESS_HTML) - -define html-alias - $(AM_V_LN)$(LN_S) -f $(notdir $<) $@ -endef - EXTRA_DIST += \ man/custom-html.xsl \ man/custom-man.xsl # ------------------------------------------------------------------------------ -ifneq ($(HAVE_SYSV_COMPAT),) -sysvinit_DATA = \ - docs/sysvinit/README - -varlog_DATA = \ - docs/var-log/README - -$(outdir)/README: docs/sysvinit/README.in - $(SED_PROCESS) - -$(outdir)/README: docs/var-log/README.in - $(SED_PROCESS) - -CLEANFILES += \ - docs/sysvinit/README \ - docs/var-log/README -endif # HAVE_SYSV_COMPAT - -EXTRA_DIST += \ - docs/sysvinit/README.in \ - docs/var-log/README.in - SOCKETS_TARGET_WANTS += \ systemd-initctl.socket diff --git a/gnustandards.mk.in b/gnustandards.mk.in new file mode 100644 index 0000000000..9c0dced485 --- /dev/null +++ b/gnustandards.mk.in @@ -0,0 +1,138 @@ +# 7.2.2: Utilities in Makefiles +# ----------------------------- + +# It's ok to hard-code these commands in rules, but who wants to +# memorize the list of what's ok? +AWK = @AWK@# Requires AC_PROG_AWK +CAT = cat +CMP = cmp +CP = cp +DIFF = diff +ECHO = echo +EGREP = @EGREP@# Requires AC_PROG_EGREP +EXPR = expr +FALSE = false +GREP = @GREP@# Requires AC_PROG_GREP +INSTALL_INFO = install-info +LN = ln +LS = ls +MKDIR = mkdir +MV = mv +PRINTF = printf +PWD = pwd +RM = rm -f +RMDIR = rmdir +SED = sed +SLEEP = sleep +SORT = sort +TAR = tar +TEST = test +TOUCH = touch +TR = tr +TRUE = true + +# These must be user-configurable +AR = @AR@ +ARFLAGS = +BISON = bison +BISONFLAGS = +CC = @CC@ +CCFLAGS = $(CFLAGS) +FLEX = flex +FLEXFLAGS = +INSTALL = @INSTALL@# Requires AC_PROG_INSTALL +#INSTALLFLAGS = +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LDCONFIG = ldconfig +LDCONFIGFLAGS = +LEX = @LEX@ +LEXLIB = @LEXLIB@ +LEXFLAGS = $(LFLAGS) +#MAKE +MAKEINFO = @MAKEINFO@ +MAKEINFOFLAGS = +RANLIB = @RANLIB@ +RANLIBFLAGS = +TEXI2DVI = texi2dvi +TEXI2DVIFLAGS = +YACC = @YACC@ +YACCFLAGS = $(YFLAGS) + +CFLAGS = @CFLAGS@ +LFLAGS = +YFLAGS = @YFLAGS@ + +LN_S = @LN_S@ + +CHGRP = chgrp +CHMOD = chmod +CHOWN = chown +MKNOD = mknod + +# 7.2.3 Variables for Specifying Commands +# --------------------------------------- + +INSTALL_PROGRAM = @INSTALL_PROGRAM@# Requires AC_PROG_INSTALL +INSTALL_DATA = @INSTALL_DATA@# Requires AC_PROG_INSTALL + +# 7.2.5 Variables for Installation Directories +# -------------------------------------------- + +# Root for the installation +prefix = @prefix@ +exec_prefix = @exec_prefix@ +# Executable programs +bindir = @bindir@ +sbindir = @sbindir@ +libexecdir = @libexecdir@ +# Data files +datarootdir = @datarootdir@ +datadir = @datadir@ +sysconfdir = @sysconfdir@ +sharedstatedir = @sharedstatedir@ +localstatedir = @localstatedir@ +runstatedir = $(localstatedir)/run# Requires Autoconf 2.70+ +# Specific types of files +includedir = @includedir@ +oldincludedir = @oldincludedir@ +docdir = @docdir@ +infodir = @infodir@ +htmldir = @htmldir@ +dvidir = @dvidir@ +pdfdir = @pdfdir@ +psdir = @psdir@ +libdir = @libdir@ +lispdir = $(datarootdir)/emacs/site-lisp# Requires manual configure.ac support +localedir = @localedir@ + +mandir = @mandir@ +man1dir = $(mandir)/man1 +man2dir = $(mandir)/man2 +man3dir = $(mandir)/man3 +man4dir = $(mandir)/man4 +man5dir = $(mandir)/man5 +man6dir = $(mandir)/man6 +man7dir = $(mandir)/man7 +man8dir = $(mandir)/man8 + +manext = .1 +man1ext = .1 +man2ext = .2 +man3ext = .3 +man4ext = .4 +man5ext = .5 +man6ext = .6 +man7ext = .7 +man8ext = .8 + +# 7.2.7: Install Command Categories +# --------------------------------- + +PRE_INSTALL = +POST_INSTALL = +NORMAL_INSTALL = + +PRE_UNINSTALL = +POST_UNINSTALL = +NORMAL_UNINSTALL = diff --git a/man/.gitignore b/man/.gitignore index d928e5a83f..1e3a647575 100644 --- a/man/.gitignore +++ b/man/.gitignore @@ -3,3 +3,4 @@ /*.[13578] /*.html /custom-entities.ent +/custom-entities.ent.in diff --git a/man/Makefile b/man/Makefile new file mode 100644 index 0000000000..87dee0b725 --- /dev/null +++ b/man/Makefile @@ -0,0 +1,33 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +$(srcdir)/custom-entities.ent.in: $(outdir)/.var.sd.substitution_keys + $(AM_V_GEN)(echo '<?xml version="1.0" encoding="utf-8" ?>' && \ + printf '<!ENTITY %s "@%s@">\n' $(foreach v,$(sd.substitution_keys),$v $v)) \ + > $@ +files.src.gen += custom-entities.ent.in +sd.sed_files += custom-entities.ent + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/Makefile b/src/Makefile index b84e6076a0..905d11d803 100644 --- a/src/Makefile +++ b/src/Makefile @@ -23,5 +23,47 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk +nested.subdirs += busctl +nested.subdirs += grp-boot +nested.subdirs += grp-coredump +nested.subdirs += grp-hostname +nested.subdirs += grp-initprogs +nested.subdirs += grp-journal +nested.subdirs += grp-locale +nested.subdirs += grp-login +nested.subdirs += grp-machine +nested.subdirs += grp-network +nested.subdirs += grp-resolve +nested.subdirs += grp-system +nested.subdirs += grp-timedate +nested.subdirs += grp-udev +nested.subdirs += grp-utils +nested.subdirs += libbasic +nested.subdirs += libfirewall +nested.subdirs += libshared +nested.subdirs += libsystemd +nested.subdirs += libsystemd-network +nested.subdirs += libudev +nested.subdirs += nss-myhostname +nested.subdirs += systemd-ask-password +nested.subdirs += systemd-cgls +nested.subdirs += systemd-cgroups-agent +nested.subdirs += systemd-cgtop +nested.subdirs += systemd-cryptsetup +nested.subdirs += systemd-dbus1-generator +nested.subdirs += systemd-debug-generator +nested.subdirs += systemd-getty-generator +nested.subdirs += systemd-gpt-auto-generator +nested.subdirs += systemd-initctl +nested.subdirs += systemd-machine-id-setup +nested.subdirs += systemd-nspawn +nested.subdirs += systemd-rc-local-generator +nested.subdirs += systemd-remount-fs +nested.subdirs += systemd-reply-password +nested.subdirs += systemd-socket-proxyd +nested.subdirs += systemd-stdio-bridge +nested.subdirs += systemd-system-update-generator +nested.subdirs += systemd-timesyncd +nested.subdirs += systemd-tty-ask-password-agent include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/busctl/busctl-introspect.h b/src/busctl/busctl-introspect.h index d922e352db..3dd1df4e47 100644 --- a/src/busctl/busctl-introspect.h +++ b/src/busctl/busctl-introspect.h @@ -20,6 +20,7 @@ ***/ #include <stdbool.h> +#include <stdint.h> typedef struct XMLIntrospectOps { int (*on_path)(const char *path, void *userdata); diff --git a/src/grp-boot/Makefile b/src/grp-boot/Makefile index 922d8a32d3..6f46e5e035 100644 --- a/src/grp-boot/Makefile +++ b/src/grp-boot/Makefile @@ -23,6 +23,6 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -at.subdirs += bootctl systemd-boot +nested.subdirs += bootctl systemd-boot kernel-install include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-boot/bootctl/Makefile b/src/grp-boot/bootctl/Makefile index 84253d2387..a983e32a9f 100644 --- a/src/grp-boot/bootctl/Makefile +++ b/src/grp-boot/bootctl/Makefile @@ -51,4 +51,5 @@ dist_zshcompletion_data += \ shell-completion/zsh/_bootctl endif # HAVE_BLKID endif # ENABLE_EFI + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-boot/systemd-boot/Makefile b/src/grp-boot/systemd-boot/Makefile index 5b53fdc7e4..9766e1bb82 100644 --- a/src/grp-boot/systemd-boot/Makefile +++ b/src/grp-boot/systemd-boot/Makefile @@ -25,6 +25,7 @@ include $(topsrcdir)/build-aux/Makefile.head.mk ifneq ($(ENABLE_EFI),) ifneq ($(HAVE_GNUEFI),) +# ------------------------------------------------------------------------------ efi_cppflags = \ $(EFI_CPPFLAGS) \ -I$(top_builddir) -include config.h \ @@ -81,9 +82,18 @@ EFI_FORMAT = -O binary else EFI_FORMAT = --target=efi-app-$(EFI_ARCH) endif # ARCH_AARCH64 -endif # HAVE_GNUEFI -endif # ENABLE_EFI +$(outdir)/%.o: $(srcdir)/%.c + $(AM_V_EFI_CC)$(EFI_CC) $(efi_cppflags) $(efi_cflags) -c $< -o $@ + +$(outdir)/%.so: + @if test $(words $^) = 0; then echo 'Cannot link EFI library with no dependencies: $@' >&2; exit 1; fi + $(AM_V_EFI_CCLD)$(LD) $(efi_ldflags) $^ -o $@ -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name) + $(AM_V_at)! { nm -D -u $@ | grep ' U '; } + +# These next 2 are the same rule +$(outdir)/%$(EFI_MACHINE_TYPE_NAME).efi : $(outdir)/%.so; $(AM_V_GEN)$(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .reloc $(EFI_FORMAT) $< $@ +$(outdir)/%$(EFI_MACHINE_TYPE_NAME).efi.stub: $(outdir)/%.so; $(AM_V_GEN)$(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel -j .rela -j .reloc $(EFI_FORMAT) $< $@ # ------------------------------------------------------------------------------ systemd_boot_headers = \ src/boot/efi/util.h \ @@ -102,33 +112,9 @@ systemd_boot_sources = \ src/boot/efi/measure.c \ src/boot/efi/boot.c -EXTRA_DIST += $(systemd_boot_sources) $(systemd_boot_headers) - -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 - -ifneq ($(ENABLE_EFI),) -ifneq ($(HAVE_GNUEFI),) -bootlib_DATA = $(systemd_boot) - -$(outdir)/%.o: $(top_srcdir)/src/boot/efi/%.c $(addprefix $(top_srcdir)/,$(systemd_boot_headers)) - @$(MKDIR_P) $(top_builddir)/src/boot/efi/ - $(AM_V_CC)$(EFI_CC) $(efi_cppflags) $(efi_cflags) -c $< -o $@ - -$(systemd_boot_solib): $(systemd_boot_objects) - $(AM_V_CCLD)$(LD) $(efi_ldflags) $(systemd_boot_objects) \ - -o $@ -lefi -lgnuefi $(shell $(CC) -print-libgcc-file-name); \ - nm -D -u $@ | grep ' U ' && exit 1 || : - -$(systemd_boot): $(systemd_boot_solib) - $(AM_V_GEN)$(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic \ - -j .dynsym -j .rel -j .rela -j .reloc $(EFI_FORMAT) $< $@ -endif # HAVE_GNUEFI -endif # ENABLE_EFI - -CLEANFILES += $(systemd_boot_objects) $(systemd_boot_solib) $(systemd_boot) - +bootlib_DATA += $(systemd_boot) +$(outdir)/systemd-boot.so: $(addprefix $(outdir)/,$(notdir $(systemd_boot_sources:.c=.o))) # ------------------------------------------------------------------------------ stub_headers = \ src/boot/efi/util.h \ @@ -149,46 +135,18 @@ stub_sources = \ src/boot/efi/measure.c \ src/boot/efi/stub.c -EXTRA_DIST += \ - $(stub_sources) \ - $(stub_headers) \ - test/splash.bmp - -stub_objects = $(addprefix $(top_builddir)/,$(stub_sources:.c=.o)) -stub_solib = $(top_builddir)/src/boot/efi/stub.so stub = linux$(EFI_MACHINE_TYPE_NAME).efi.stub - -ifneq ($(ENABLE_EFI),) -ifneq ($(HAVE_GNUEFI),) bootlib_DATA += $(stub) - -$(outdir)/%.o: $(top_srcdir)/src/boot/efi/%.c $(addprefix $(top_srcdir)/,$(stub_headers)) - @$(MKDIR_P) $(top_builddir)/src/boot/efi/ - $(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) - $(AM_V_GEN)$(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic \ - -j .dynsym -j .rel -j .rela -j .reloc $(EFI_FORMAT) $< $@ -endif # HAVE_GNUEFI -endif # ENABLE_EFI - -CLEANFILES += $(stub_objects) $(stub_solib) $(stub) - - +$(outdir)/linux.so: $(addprefix $(outdir)/,$(notdir $(stub_sources:.c=.o))) # ------------------------------------------------------------------------------ -CLEANFILES += test-efi-disk.img - -test-efi-disk.img: $(systemd_boot) $(stub) test/test-efi-create-disk.sh - $(AM_V_GEN)test/test-efi-create-disk.sh +$(outdir)/test-efi-disk.img: $(outdir)/$(systemd_boot) $(outdir)/$(stub) $(srcdir)/test-efi-create-disk.sh + $(AM_V_GEN)$(@D)/test-efi-create-disk.sh -test-efi: test-efi-disk.img +test-efi: $(outdir)/test-efi-disk.img $(QEMU) -machine accel=kvm -m 1024 -bios $(QEMU_BIOS) -snapshot test-efi-disk.img -EXTRA_DIST += test/test-efi-create-disk.sh - +files.out.int += test-efi-disk.img +# ------------------------------------------------------------------------------ +endif # HAVE_GNUEFI +endif # ENABLE_EFI include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-boot/systemd-boot/console.h b/src/grp-boot/systemd-boot/console.h index 3fe0ce5ec4..887995a9cc 100644 --- a/src/grp-boot/systemd-boot/console.h +++ b/src/grp-boot/systemd-boot/console.h @@ -16,6 +16,8 @@ #ifndef __SDBOOT_CONSOLE_H #define __SDBOOT_CONSOLE_H +#include <efi.h> + #define EFI_SHIFT_STATE_VALID 0x80000000 #define EFI_RIGHT_CONTROL_PRESSED 0x00000004 #define EFI_LEFT_CONTROL_PRESSED 0x00000008 diff --git a/src/grp-boot/systemd-boot/disk.h b/src/grp-boot/systemd-boot/disk.h index af91a9c674..5804b8881a 100644 --- a/src/grp-boot/systemd-boot/disk.h +++ b/src/grp-boot/systemd-boot/disk.h @@ -15,5 +15,7 @@ #ifndef __SDBOOT_DISK_H #define __SDBOOT_DISK_H +#include <efi.h> + EFI_STATUS disk_get_part_uuid(EFI_HANDLE *handle, CHAR16 uuid[37]); #endif diff --git a/src/grp-boot/systemd-boot/graphics.h b/src/grp-boot/systemd-boot/graphics.h index cf48e647e7..d8e5adfcd8 100644 --- a/src/grp-boot/systemd-boot/graphics.h +++ b/src/grp-boot/systemd-boot/graphics.h @@ -18,5 +18,7 @@ #ifndef __SDBOOT_GRAPHICS_H #define __SDBOOT_GRAPHICS_H +#include <efi.h> + EFI_STATUS graphics_mode(BOOLEAN on); #endif diff --git a/src/grp-boot/systemd-boot/linux.h b/src/grp-boot/systemd-boot/linux.h index d9e6ed7955..b87a7f0d38 100644 --- a/src/grp-boot/systemd-boot/linux.h +++ b/src/grp-boot/systemd-boot/linux.h @@ -15,6 +15,8 @@ #ifndef __SDBOOT_kernel_H #define __SDBOOT_kernel_H +#include <efi.h> + EFI_STATUS linux_exec(EFI_HANDLE *image, CHAR8 *cmdline, UINTN cmdline_size, UINTN linux_addr, diff --git a/src/grp-boot/systemd-boot/measure.h b/src/grp-boot/systemd-boot/measure.h index a2cfe817d0..ddd686a8fd 100644 --- a/src/grp-boot/systemd-boot/measure.h +++ b/src/grp-boot/systemd-boot/measure.h @@ -13,6 +13,8 @@ #ifndef __SDBOOT_MEASURE_H #define __SDBOOT_MEASURE_H +#include <efi.h> + #ifndef SD_TPM_PCR #define SD_TPM_PCR 8 #endif diff --git a/src/grp-boot/systemd-boot/pefile.h b/src/grp-boot/systemd-boot/pefile.h index 2e445ede17..bc2d73fea9 100644 --- a/src/grp-boot/systemd-boot/pefile.h +++ b/src/grp-boot/systemd-boot/pefile.h @@ -15,6 +15,8 @@ #ifndef __SDBOOT_PEFILE_H #define __SDBOOT_PEFILE_H +#include <efi.h> + EFI_STATUS pefile_locate_sections(EFI_FILE *dir, CHAR16 *path, CHAR8 **sections, UINTN *addrs, UINTN *offsets, UINTN *sizes); #endif diff --git a/src/grp-boot/systemd-boot/splash.h b/src/grp-boot/systemd-boot/splash.h index 09b543fb47..362ff22643 100644 --- a/src/grp-boot/systemd-boot/splash.h +++ b/src/grp-boot/systemd-boot/splash.h @@ -16,5 +16,7 @@ #ifndef __SDBOOT_SPLASH_H #define __SDBOOT_SPLASH_H +#include <efi.h> + EFI_STATUS graphics_splash(UINT8 *content, UINTN len, const EFI_GRAPHICS_OUTPUT_BLT_PIXEL *background); #endif diff --git a/src/grp-boot/systemd-boot/util.h b/src/grp-boot/systemd-boot/util.h index e673cdf9a0..e2da8b3fee 100644 --- a/src/grp-boot/systemd-boot/util.h +++ b/src/grp-boot/systemd-boot/util.h @@ -22,7 +22,7 @@ #define ELEMENTSOF(x) (sizeof(x)/sizeof((x)[0])) static inline const CHAR16 *yes_no(BOOLEAN b) { - return b ? L"yes" : L"no"; + return b ? (CHAR16*)L"yes" : (CHAR16*)L"no"; } EFI_STATUS parse_boolean(CHAR8 *v, BOOLEAN *b); diff --git a/src/grp-coredump/Makefile b/src/grp-coredump/Makefile index 2e604d7b86..811efb5af5 100644 --- a/src/grp-coredump/Makefile +++ b/src/grp-coredump/Makefile @@ -23,6 +23,6 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -at.subdirs += coredumpctl systemd-coredump +nested.subdirs += coredumpctl systemd-coredump include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-coredump/systemd-coredump/.gitignore b/src/grp-coredump/systemd-coredump/.gitignore new file mode 100644 index 0000000000..768e3d4d9f --- /dev/null +++ b/src/grp-coredump/systemd-coredump/.gitignore @@ -0,0 +1 @@ +/50-coredump.sysctl diff --git a/src/grp-coredump/systemd-coredump/Makefile b/src/grp-coredump/systemd-coredump/Makefile index bc71db120e..108186488c 100644 --- a/src/grp-coredump/systemd-coredump/Makefile +++ b/src/grp-coredump/systemd-coredump/Makefile @@ -75,7 +75,10 @@ CLEANFILES += \ endif # ENABLE_COREDUMP EXTRA_DIST += \ - sysctl.d/50-coredump.conf.in \ + sysctl.d/50-coredump.sysctl.in \ units/systemd-coredump@.service.in +sd.CPPFLAGS += -I$(topsrcdir)/src/grp-journal/libjournal-core +sd.CPPFLAGS += -DPKGSYSCONFDIR=\"$(pkgsysconfdir)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-coredump/systemd-coredump/coredump.c b/src/grp-coredump/systemd-coredump/coredump.c index 999de63900..8f291e6bd8 100644 --- a/src/grp-coredump/systemd-coredump/coredump.c +++ b/src/grp-coredump/systemd-coredump/coredump.c @@ -28,39 +28,39 @@ #include <elfutils/libdwfl.h> #endif -#include "sd-journal.h" -#include "sd-login.h" -#include "sd-daemon.h" - -#include "acl-util.h" -#include "alloc-util.h" -#include "capability-util.h" -#include "cgroup-util.h" -#include "compress.h" -#include "conf-parser.h" -#include "copy.h" +#include <systemd/sd-journal.h> +#include <systemd/sd-login.h> +#include <systemd/sd-daemon.h> + +#include "shared/acl-util.h" +#include "basic/alloc-util.h" +#include "basic/capability-util.h" +#include "basic/cgroup-util.h" +#include "sd-journal/compress.h" +#include "shared/conf-parser.h" +#include "basic/copy.h" #include "coredump-vacuum.h" -#include "dirent-util.h" -#include "escape.h" -#include "fd-util.h" -#include "fileio.h" -#include "fs-util.h" -#include "io-util.h" +#include "basic/dirent-util.h" +#include "basic/escape.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" +#include "basic/fs-util.h" +#include "basic/io-util.h" #include "journald-native.h" -#include "log.h" -#include "macro.h" -#include "missing.h" -#include "mkdir.h" -#include "parse-util.h" -#include "process-util.h" -#include "socket-util.h" -#include "special.h" +#include "basic/log.h" +#include "basic/macro.h" +#include "basic/missing.h" +#include "basic/mkdir.h" +#include "basic/parse-util.h" +#include "basic/process-util.h" +#include "basic/socket-util.h" +#include "basic/special.h" #include "stacktrace.h" -#include "string-table.h" -#include "string-util.h" -#include "strv.h" -#include "user-util.h" -#include "util.h" +#include "basic/string-table.h" +#include "basic/string-util.h" +#include "basic/strv.h" +#include "basic/user-util.h" +#include "basic/util.h" /* The maximum size up to which we process coredumps */ #define PROCESS_SIZE_MAX ((uint64_t) (2LLU*1024LLU*1024LLU*1024LLU)) diff --git a/src/grp-coredump/systemd-coredump/systemd-coredump.tmpfiles b/src/grp-coredump/systemd-coredump/systemd-coredump.tmpfiles new file mode 100644 index 0000000000..02b052583d --- /dev/null +++ b/src/grp-coredump/systemd-coredump/systemd-coredump.tmpfiles @@ -0,0 +1,10 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (at your option) any later version. + +# See tmpfiles.d(5) for details + +d /var/lib/systemd/coredump 0755 root root 3d diff --git a/src/grp-hostname/Makefile b/src/grp-hostname/Makefile index 911188454c..319c1d2c8e 100644 --- a/src/grp-hostname/Makefile +++ b/src/grp-hostname/Makefile @@ -23,57 +23,6 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -ifneq ($(ENABLE_HOSTNAMED),) -systemd_hostnamed_SOURCES = \ - src/hostname/hostnamed.c - -systemd_hostnamed_LDADD = \ - libshared.la - -rootlibexec_PROGRAMS += \ - systemd-hostnamed - -nodist_systemunit_DATA += \ - units/systemd-hostnamed.service - -dist_systemunit_DATA_busnames += \ - units/org.freedesktop.hostname1.busname - -dist_dbuspolicy_DATA += \ - src/hostname/org.freedesktop.hostname1.conf - -dist_dbussystemservice_DATA += \ - src/hostname/org.freedesktop.hostname1.service - -polkitpolicy_files += \ - src/hostname/org.freedesktop.hostname1.policy - -SYSTEM_UNIT_ALIASES += \ - systemd-hostnamed.service dbus-org.freedesktop.hostname1.service - -BUSNAMES_TARGET_WANTS += \ - org.freedesktop.hostname1.busname - -hostnamectl_SOURCES = \ - src/hostname/hostnamectl.c - -hostnamectl_LDADD = \ - libshared.la - -bin_PROGRAMS += \ - hostnamectl - -dist_bashcompletion_data += \ - shell-completion/bash/hostnamectl - -dist_zshcompletion_data += \ - shell-completion/zsh/_hostnamectl -endif # ENABLE_HOSTNAMED - -polkitpolicy_in_files += \ - src/hostname/org.freedesktop.hostname1.policy.in - -EXTRA_DIST += \ - units/systemd-hostnamed.service.in +nested.subdirs += systemd-hostnamed hostnamectl include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-hostname/hostnamectl/Makefile b/src/grp-hostname/hostnamectl/Makefile new file mode 100644 index 0000000000..f684bde523 --- /dev/null +++ b/src/grp-hostname/hostnamectl/Makefile @@ -0,0 +1,45 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +ifneq ($(ENABLE_HOSTNAMED),) + +hostnamectl_SOURCES = \ + src/hostname/hostnamectl.c + +hostnamectl_LDADD = \ + libshared.la + +bin_PROGRAMS += \ + hostnamectl + +dist_bashcompletion_data += \ + shell-completion/bash/hostnamectl + +dist_zshcompletion_data += \ + shell-completion/zsh/_hostnamectl + +endif + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-hostname/systemd-hostnamed/Makefile b/src/grp-hostname/systemd-hostnamed/Makefile new file mode 100644 index 0000000000..171bce55a4 --- /dev/null +++ b/src/grp-hostname/systemd-hostnamed/Makefile @@ -0,0 +1,65 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +ifneq ($(ENABLE_HOSTNAMED),) +systemd_hostnamed_SOURCES = \ + src/hostname/hostnamed.c + +systemd_hostnamed_LDADD = \ + libshared.la + +rootlibexec_PROGRAMS += \ + systemd-hostnamed + +nodist_systemunit_DATA += \ + units/systemd-hostnamed.service + +dist_systemunit_DATA_busnames += \ + units/org.freedesktop.hostname1.busname + +dist_dbuspolicy_DATA += \ + src/hostname/org.freedesktop.hostname1.conf + +dist_dbussystemservice_DATA += \ + src/hostname/org.freedesktop.hostname1.service + +polkitpolicy_files += \ + src/hostname/org.freedesktop.hostname1.policy + +SYSTEM_UNIT_ALIASES += \ + systemd-hostnamed.service dbus-org.freedesktop.hostname1.service + +BUSNAMES_TARGET_WANTS += \ + org.freedesktop.hostname1.busname + +endif # ENABLE_HOSTNAMED + +polkitpolicy_in_files += \ + src/hostname/org.freedesktop.hostname1.policy.in + +EXTRA_DIST += \ + units/systemd-hostnamed.service.in + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/build-aux/Makefile.each.tail/20-systemd.mk b/src/grp-initprogs/Makefile index 72dbec6714..2cf2214e2a 100644 --- a/build-aux/Makefile.each.tail/20-systemd.mk +++ b/src/grp-initprogs/Makefile @@ -23,27 +23,22 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -%-from-name.gperf: %-list.txt - $(AM_V_at)$(MKDIR_P) $(dir $@) - $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct $(notdir $*)_name { const char* name; int id; };"; print "%null-strings"; print "%%";} { printf "%s, %s\n", $$1, $$1 }' <$< >$@ - -%-from-name.h: %-from-name.gperf - $(AM_V_at)$(MKDIR_P) $(dir $@) - $(AM_V_GPERF)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_$(notdir $*) -H hash_$(notdir $*)_name -p -C <$< >$@ - -$(outdir)/%: sysctl.d/%.in - $(SED_PROCESS) - -%.sh: %.sh.in - $(SED_PROCESS) - $(AM_V_GEN)chmod +x $@ - -$(outdir)/%.c: src/%.gperf - $(AM_V_at)$(MKDIR_P) $(dir $@) - $(AM_V_GPERF)$(GPERF) < $< > $@ - -$(outdir)/%: src/%.m4 $(top_builddir)/config.status - $(AM_V_at)$(MKDIR_P) $(dir $@) - $(AM_V_M4)$(M4) -P $(M4_DEFINES) < $< > $@ +nested.subdirs += grp-sleep +nested.subdirs += systemd-backlight +nested.subdirs += systemd-binfmt +nested.subdirs += systemd-detect-virt +nested.subdirs += systemd-firstboot +nested.subdirs += systemd-fsck +nested.subdirs += systemd-modules-load +nested.subdirs += systemd-quotacheck +nested.subdirs += systemd-random-seed +nested.subdirs += systemd-rfkill +nested.subdirs += systemd-sysctl +nested.subdirs += systemd-sysusers +nested.subdirs += systemd-tmpfiles +nested.subdirs += systemd-update-done +nested.subdirs += systemd-update-utmp +nested.subdirs += systemd-user-sessions +nested.subdirs += systemd-vconsole-setup include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-initprogs/grp-sleep/Makefile b/src/grp-initprogs/grp-sleep/Makefile new file mode 100644 index 0000000000..5a3a87d2bf --- /dev/null +++ b/src/grp-initprogs/grp-sleep/Makefile @@ -0,0 +1,30 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +nested.subdirs += systemd-hibernate-resume +nested.subdirs += systemd-hibernate-resume-generator +nested.subdirs += systemd-sleep + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-initprogs/grp-sleep/systemd-hibernate-resume-generator/Makefile b/src/grp-initprogs/grp-sleep/systemd-hibernate-resume-generator/Makefile new file mode 100644 index 0000000000..8c0eba2b1a --- /dev/null +++ b/src/grp-initprogs/grp-sleep/systemd-hibernate-resume-generator/Makefile @@ -0,0 +1,40 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +ifneq ($(ENABLE_HIBERNATE),) +systemgenerator_PROGRAMS += \ + systemd-hibernate-resume-generator + +systemd_hibernate_resume_generator_SOURCES = \ + src/hibernate-resume/hibernate-resume-generator.c + +systemd_hibernate_resume_generator_LDADD = \ + libshared.la + +endif # ENABLE_HIBERNATE + +sd.CPPFLAGS += -DSYSTEM_DATA_UNIT_PATH=\"$(systemunitdir)\" + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-initprogs/grp-sleep/systemd-hibernate-resume/Makefile b/src/grp-initprogs/grp-sleep/systemd-hibernate-resume/Makefile index 4a5590dbf5..3b41b82e4b 100644 --- a/src/grp-initprogs/grp-sleep/systemd-hibernate-resume/Makefile +++ b/src/grp-initprogs/grp-sleep/systemd-hibernate-resume/Makefile @@ -24,8 +24,6 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk ifneq ($(ENABLE_HIBERNATE),) -systemgenerator_PROGRAMS += \ - systemd-hibernate-resume-generator rootlibexec_PROGRAMS += \ systemd-hibernate-resume @@ -36,25 +34,12 @@ systemd_hibernate_resume_SOURCES = \ systemd_hibernate_resume_LDADD = \ libshared.la -systemd_hibernate_resume_generator_SOURCES = \ - src/hibernate-resume/hibernate-resume-generator.c - -systemd_hibernate_resume_generator_LDADD = \ - libshared.la - -dist_systemunit_DATA += \ - units/hibernate.target \ - units/hybrid-sleep.target - nodist_systemunit_DATA += \ - units/systemd-hibernate.service \ - units/systemd-hibernate-resume@.service \ - units/systemd-hybrid-sleep.service + units/systemd-hibernate-resume@.service + endif # ENABLE_HIBERNATE EXTRA_DIST += \ - units/systemd-hibernate.service.in \ - units/systemd-hibernate-resume@.service.in \ - units/systemd-hybrid-sleep.service.in + units/systemd-hibernate-resume@.service.in include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-initprogs/grp-sleep/systemd-sleep/Makefile b/src/grp-initprogs/grp-sleep/systemd-sleep/Makefile index db103f05c9..ca484794a0 100644 --- a/src/grp-initprogs/grp-sleep/systemd-sleep/Makefile +++ b/src/grp-initprogs/grp-sleep/systemd-sleep/Makefile @@ -30,4 +30,29 @@ systemd_sleep_SOURCES = \ systemd_sleep_LDADD = \ libshared.la +ifneq ($(ENABLE_HIBERNATE),) + +dist_systemunit_DATA += \ + units/hibernate.target \ + units/hybrid-sleep.target + +nodist_systemunit_DATA += \ + units/systemd-hibernate.service \ + units/systemd-hybrid-sleep.service + +endif # ENABLE_HIBERNATE + +dist_systemunit_DATA += \ + units/suspend.target \ + +nodist_systemunit_DATA += \ + units/systemd-suspend.service \ + +EXTRA_DIST += \ + units/systemd-suspend.service.in \ + units/systemd-hibernate.service.in \ + units/systemd-hybrid-sleep.service.in + +sd.CPPFLAGS += -DSYSTEM_SLEEP_PATH=\"$(systemsleepdir)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-initprogs/grp-sleep/systemd-sleep/systemd-sleep.xml b/src/grp-initprogs/grp-sleep/systemd-sleep/systemd-sleep.xml index a8beb86f4d..efd97eb671 100644 --- a/src/grp-initprogs/grp-sleep/systemd-sleep/systemd-sleep.xml +++ b/src/grp-initprogs/grp-sleep/systemd-sleep/systemd-sleep.xml @@ -26,7 +26,7 @@ xmlns:xi="http://www.w3.org/2001/XInclude"> <refentryinfo> - <title>systemd-suspend.service</title> + <title>systemd-sleep</title> <productname>systemd</productname> <authorgroup> @@ -40,7 +40,7 @@ </refentryinfo> <refmeta> - <refentrytitle>systemd-suspend.service</refentrytitle> + <refentrytitle>systemd-sleep</refentrytitle> <manvolnum>8</manvolnum> </refmeta> diff --git a/src/grp-initprogs/systemd-firstboot/systemd-firstboot.completion.bash b/src/grp-initprogs/systemd-firstboot/systemd-firstboot.completion.bash new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/src/grp-initprogs/systemd-firstboot/systemd-firstboot.completion.bash diff --git a/src/grp-initprogs/systemd-firstboot/systemd-firstboot.completion.zsh b/src/grp-initprogs/systemd-firstboot/systemd-firstboot.completion.zsh new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/src/grp-initprogs/systemd-firstboot/systemd-firstboot.completion.zsh diff --git a/src/grp-initprogs/systemd-quotacheck/Makefile b/src/grp-initprogs/systemd-quotacheck/Makefile index 4220946f39..076d33a587 100644 --- a/src/grp-initprogs/systemd-quotacheck/Makefile +++ b/src/grp-initprogs/systemd-quotacheck/Makefile @@ -38,9 +38,12 @@ systemd_quotacheck_LDADD = \ endif # ENABLE_QUOTACHECK EXTRA_DIST += \ + units/quotaon.service.in \ units/systemd-quotacheck.service.in nodist_systemunit_DATA += \ units/quotaon.service +sd.CPPFLAGS += -DQUOTACHECK=\"$(QUOTACHECK)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-initprogs/systemd-random-seed/Makefile b/src/grp-initprogs/systemd-random-seed/Makefile index 56d1af7431..489a8ab007 100644 --- a/src/grp-initprogs/systemd-random-seed/Makefile +++ b/src/grp-initprogs/systemd-random-seed/Makefile @@ -44,4 +44,7 @@ endif # ENABLE_RANDOMSEED EXTRA_DIST += \ units/systemd-random-seed.service.in +sd.CPPFLAGS += -DRANDOM_SEED_DIR=\"$(localstatedir)/lib/systemd/\" +sd.CPPFLAGS += -DRANDOM_SEED=\"$(localstatedir)/lib/systemd/random-seed\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-initprogs/systemd-sysusers/.gitignore b/src/grp-initprogs/systemd-sysusers/.gitignore deleted file mode 100644 index c065034d29..0000000000 --- a/src/grp-initprogs/systemd-sysusers/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/basic.conf -/systemd.conf -/systemd-remote.conf diff --git a/src/grp-initprogs/systemd-sysusers/Makefile b/src/grp-initprogs/systemd-sysusers/Makefile index 4753ca75d0..9339b9fd8b 100644 --- a/src/grp-initprogs/systemd-sysusers/Makefile +++ b/src/grp-initprogs/systemd-sysusers/Makefile @@ -40,22 +40,14 @@ SYSINIT_TARGET_WANTS += \ systemd-sysusers.service nodist_sysusers_DATA = \ - sysusers.d/systemd.conf \ sysusers.d/basic.conf -ifneq ($(HAVE_REMOTE),) -nodist_sysusers_DATA += \ - sysusers.d/systemd-remote.conf -endif # HAVE_REMOTE - INSTALL_DIRS += \ $(sysusersdir) endif # ENABLE_SYSUSERS EXTRA_DIST += \ units/systemd-sysusers.service.in \ - sysusers.d/systemd.conf.m4 \ - sysusers.d/systemd-remote.conf.m4 \ - sysusers.d/basic.conf.in + sysusers.d/basic.sysusers.in include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-initprogs/systemd-sysusers/systemd-sysusers.completion.bash b/src/grp-initprogs/systemd-sysusers/systemd-sysusers.completion.bash new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/src/grp-initprogs/systemd-sysusers/systemd-sysusers.completion.bash diff --git a/src/grp-initprogs/systemd-sysusers/systemd-sysusers.completion.zsh b/src/grp-initprogs/systemd-sysusers/systemd-sysusers.completion.zsh new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/src/grp-initprogs/systemd-sysusers/systemd-sysusers.completion.zsh diff --git a/src/grp-initprogs/systemd-tmpfiles/Makefile b/src/grp-initprogs/systemd-tmpfiles/Makefile index d12c910883..de085fa334 100644 --- a/src/grp-initprogs/systemd-tmpfiles/Makefile +++ b/src/grp-initprogs/systemd-tmpfiles/Makefile @@ -42,7 +42,6 @@ nodist_systemunit_DATA += \ units/systemd-tmpfiles-clean.service nodist_tmpfiles_DATA = \ - tmpfiles.d/systemd.conf \ tmpfiles.d/etc.conf dist_tmpfiles_DATA = \ @@ -50,9 +49,7 @@ dist_tmpfiles_DATA = \ tmpfiles.d/tmp.conf \ tmpfiles.d/x11.conf \ tmpfiles.d/var.conf \ - tmpfiles.d/home.conf \ - tmpfiles.d/systemd-nspawn.conf \ - tmpfiles.d/journal-nocow.conf + tmpfiles.d/home.conf ifneq ($(HAVE_SYSV_COMPAT),) dist_tmpfiles_DATA += \ @@ -75,8 +72,7 @@ INSTALL_DIRS += \ endif # ENABLE_TMPFILES EXTRA_DIST += \ - tmpfiles.d/systemd.conf.m4 \ - tmpfiles.d/etc.conf.m4 \ + tmpfiles.d/etc.tmpfiles.m4 \ units/systemd-tmpfiles-setup-dev.service.in \ units/systemd-tmpfiles-setup.service.in \ units/systemd-tmpfiles-clean.service.in diff --git a/src/grp-initprogs/systemd-tmpfiles/tmpfiles.c b/src/grp-initprogs/systemd-tmpfiles/tmpfiles.c index c674bf1226..f865b9cc3e 100644 --- a/src/grp-initprogs/systemd-tmpfiles/tmpfiles.c +++ b/src/grp-initprogs/systemd-tmpfiles/tmpfiles.c @@ -2179,7 +2179,7 @@ static int read_config_file(const char *fn, bool ignore_enoent) { Iterator iterator; unsigned v = 0; Item *i; - int r; + int r = 0; assert(fn); diff --git a/src/grp-initprogs/systemd-update-utmp/update-utmp.c b/src/grp-initprogs/systemd-update-utmp/update-utmp.c index 8ae4a8a833..69264c3a26 100644 --- a/src/grp-initprogs/systemd-update-utmp/update-utmp.c +++ b/src/grp-initprogs/systemd-update-utmp/update-utmp.c @@ -25,18 +25,18 @@ #include <libaudit.h> #endif -#include "sd-bus.h" - -#include "alloc-util.h" -#include "bus-error.h" -#include "bus-util.h" -#include "formats-util.h" -#include "log.h" -#include "macro.h" -#include "special.h" -#include "unit-name.h" -#include "util.h" -#include "utmp-wtmp.h" +#include <systemd/sd-bus.h> + +#include "basic/alloc-util.h" +#include "sd-bus/bus-error.h" +#include "shared/bus-util.h" +#include "basic/formats-util.h" +#include "basic/log.h" +#include "basic/macro.h" +#include "basic/special.h" +#include "basic/unit-name.h" +#include "basic/util.h" +#include "shared/utmp-wtmp.h" typedef struct Context { sd_bus *bus; diff --git a/src/grp-journal/.gitignore b/src/grp-journal/.gitignore index c3fea7424f..c9bd45a7be 100644 --- a/src/grp-journal/.gitignore +++ b/src/grp-journal/.gitignore @@ -1 +1,5 @@ +/journald-gperf.c +/libsystemd-journal.pc +/audit_type-list.txt +/audit_type-*-name.* /README diff --git a/src/grp-journal/Makefile b/src/grp-journal/Makefile index fcefb81581..f42ecedcc8 100644 --- a/src/grp-journal/Makefile +++ b/src/grp-journal/Makefile @@ -167,4 +167,25 @@ tests += \ test-compress-benchmark endif # HAVE_COMPRESSION +dist_tmpfiles_DATA = \ + tmpfiles.d/journal-nocow.conf + +nested.subdirs += journalctl systemd-journald libjournal-core +nested.subdirs += systemd-cat +#nested.subdirs += grp-remote + +ifneq ($(HAVE_SYSV_COMPAT),) +varlog_DATA = \ + docs/var-log/README + +CLEANFILES += \ + docs/var-log/README +endif # HAVE_SYSV_COMPAT + +EXTRA_DIST += \ + docs/var-log/README.in + +dist_systempreset_DATA = \ + 90-journald.preset + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-journal/grp-remote/Makefile b/src/grp-journal/grp-remote/Makefile index 4a18cd13bb..b1415ad6d3 100644 --- a/src/grp-journal/grp-remote/Makefile +++ b/src/grp-journal/grp-remote/Makefile @@ -20,74 +20,11 @@ # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see <http://www.gnu.org/licenses/>. -include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk +include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -ifneq ($(ENABLE_IMPORTD),) - -ifneq ($(HAVE_LIBCURL),) -ifneq ($(HAVE_XZ),) -ifneq ($(HAVE_ZLIB),) -ifneq ($(HAVE_BZIP2),) -ifneq ($(HAVE_GCRYPT),) - -dist_rootlibexec_DATA = \ - 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 - -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 = \ - libshared.la \ - $(ZLIB_LIBS) - -endif # HAVE_GCRYPT -endif # HAVE_BZIP2 -endif # HAVE_ZLIB -endif # HAVE_XZ -endif # HAVE_LIBCURL - -endif # ENABLE_IMPORTD - -polkitpolicy_in_files += \ - src/import/org.freedesktop.import1.policy.in - -EXTRA_DIST += \ - units/systemd-importd.service.in - - -at.subdirs += systemd-journa-gatewayd -at.subdirs += systemd-journa-remote -at.subdirs += systemd-journa-upload +nested.subdirs += systemd-journal-gatewayd +nested.subdirs += systemd-journal-remote +nested.subdirs += systemd-journal-upload include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-journal/grp-remote/microhttpd-util.c b/src/grp-journal/grp-remote/microhttpd-util.c index c65c43186f..99d6f32a2a 100644 --- a/src/grp-journal/grp-remote/microhttpd-util.c +++ b/src/grp-journal/grp-remote/microhttpd-util.c @@ -27,13 +27,13 @@ #include <gnutls/x509.h> #endif -#include "alloc-util.h" -#include "log.h" -#include "macro.h" +#include "basic/alloc-util.h" +#include "basic/log.h" +#include "basic/macro.h" #include "microhttpd-util.h" -#include "string-util.h" -#include "strv.h" -#include "util.h" +#include "basic/string-util.h" +#include "basic/strv.h" +#include "basic/util.h" void microhttpd_logger(void *arg, const char *fmt, va_list ap) { char *f; diff --git a/src/grp-journal/grp-remote/systemd-journal-gatewayd/Makefile b/src/grp-journal/grp-remote/systemd-journal-gatewayd/Makefile index 2003240fbe..b3c2e450e5 100644 --- a/src/grp-journal/grp-remote/systemd-journal-gatewayd/Makefile +++ b/src/grp-journal/grp-remote/systemd-journal-gatewayd/Makefile @@ -20,7 +20,7 @@ # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see <http://www.gnu.org/licenses/>. -include $(dir $(lastword $(MAKEFILE_LIST)))/../../../../config.mk +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk ifneq ($(HAVE_MICROHTTPD),) @@ -60,6 +60,9 @@ nodist_systemunit_DATA += \ dist_gatewayddocumentroot_DATA = \ src/journal-remote/browse.html +dist_sysusers_DATA += \ + sysusers.d/systemd-journal-gatewayd.conf + endif # HAVE_MICROHTTPD EXTRA_DIST += \ diff --git a/src/grp-journal/grp-remote/systemd-journal-gatewayd/journal-gatewayd.c b/src/grp-journal/grp-remote/systemd-journal-gatewayd/journal-gatewayd.c index e265027a04..2e21f9ecb7 100644 --- a/src/grp-journal/grp-remote/systemd-journal-gatewayd/journal-gatewayd.c +++ b/src/grp-journal/grp-remote/systemd-journal-gatewayd/journal-gatewayd.c @@ -27,21 +27,21 @@ #include <string.h> #include <unistd.h> -#include "sd-bus.h" -#include "sd-daemon.h" -#include "sd-journal.h" - -#include "alloc-util.h" -#include "bus-util.h" -#include "fd-util.h" -#include "fileio.h" -#include "hostname-util.h" -#include "log.h" -#include "logs-show.h" +#include <systemd/sd-bus.h> +#include <systemd/sd-daemon.h> +#include <systemd/sd-journal.h> + +#include "basic/alloc-util.h" +#include "shared/bus-util.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" +#include "basic/hostname-util.h" +#include "basic/log.h" +#include "shared/logs-show.h" #include "microhttpd-util.h" -#include "parse-util.h" -#include "sigbus.h" -#include "util.h" +#include "basic/parse-util.h" +#include "basic/sigbus.h" +#include "basic/util.h" #define JOURNAL_WAIT_TIMEOUT (10*USEC_PER_SEC) diff --git a/src/grp-journal/grp-remote/systemd-journal-gatewayd/systemd-journal-gatewayd.sysusers b/src/grp-journal/grp-remote/systemd-journal-gatewayd/systemd-journal-gatewayd.sysusers index 379be0852e..a60fcf4d42 100644 --- a/src/grp-journal/grp-remote/systemd-journal-gatewayd/systemd-journal-gatewayd.sysusers +++ b/src/grp-journal/grp-remote/systemd-journal-gatewayd/systemd-journal-gatewayd.sysusers @@ -5,4 +5,5 @@ # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. +m4_ifdef(`HAVE_MICROHTTPD', u systemd-journal-gateway - "systemd Journal Gateway" diff --git a/src/grp-journal/grp-remote/systemd-journal-remote/Makefile b/src/grp-journal/grp-remote/systemd-journal-remote/Makefile index b387eae386..7a9d9b19df 100644 --- a/src/grp-journal/grp-remote/systemd-journal-remote/Makefile +++ b/src/grp-journal/grp-remote/systemd-journal-remote/Makefile @@ -20,7 +20,7 @@ # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see <http://www.gnu.org/licenses/>. -include $(dir $(lastword $(MAKEFILE_LIST)))/../../../../config.mk +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk ifneq ($(HAVE_MICROHTTPD),) @@ -63,15 +63,15 @@ endif # HAVE_GNUTLS dist_systemunit_DATA += \ units/systemd-journal-remote.socket +dist_sysusers_DATA += \ + sysusers.d/systemd-journal-remote.conf + 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 +files.sys.all += /var/log/journal/remote +$(DESTDIR)/var/log/journal/remote: + $(MKDIR_P) $@ nodist_pkgsysconf_DATA += \ src/journal-remote/journal-remote.conf diff --git a/src/grp-journal/grp-remote/systemd-journal-remote/journal-remote.c b/src/grp-journal/grp-remote/systemd-journal-remote/journal-remote.c index 35a1e55f9e..6ea7adabb0 100644 --- a/src/grp-journal/grp-remote/systemd-journal-remote/journal-remote.c +++ b/src/grp-journal/grp-remote/systemd-journal-remote/journal-remote.c @@ -31,27 +31,27 @@ #include <gnutls/gnutls.h> #endif -#include "sd-daemon.h" - -#include "alloc-util.h" -#include "conf-parser.h" -#include "def.h" -#include "escape.h" -#include "fd-util.h" -#include "fileio.h" +#include <systemd/sd-daemon.h> + +#include "basic/alloc-util.h" +#include "shared/conf-parser.h" +#include "basic/def.h" +#include "basic/escape.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" #include "journal-file.h" #include "journal-remote-write.h" #include "journal-remote.h" #include "journald-native.h" -#include "macro.h" -#include "parse-util.h" -#include "signal-util.h" -#include "socket-util.h" -#include "stat-util.h" -#include "stdio-util.h" -#include "string-table.h" -#include "string-util.h" -#include "strv.h" +#include "basic/macro.h" +#include "basic/parse-util.h" +#include "basic/signal-util.h" +#include "basic/socket-util.h" +#include "basic/stat-util.h" +#include "basic/stdio-util.h" +#include "basic/string-table.h" +#include "basic/string-util.h" +#include "basic/strv.h" #define REMOTE_JOURNAL_PATH "/var/log/journal/remote" diff --git a/src/grp-journal/grp-remote/systemd-journal-upload/Makefile b/src/grp-journal/grp-remote/systemd-journal-upload/Makefile index 4a92997441..845a3a566d 100644 --- a/src/grp-journal/grp-remote/systemd-journal-upload/Makefile +++ b/src/grp-journal/grp-remote/systemd-journal-upload/Makefile @@ -20,7 +20,7 @@ # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see <http://www.gnu.org/licenses/>. -include $(dir $(lastword $(MAKEFILE_LIST)))/../../../../config.mk +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk ifneq ($(HAVE_LIBCURL),) @@ -45,7 +45,11 @@ nodist_systemunit_DATA += \ nodist_pkgsysconf_DATA += \ src/journal-remote/journal-upload.conf -endif + +dist_sysusers_DATA += \ + sysusers.d/systemd-journal-upload.conf + +endif # HAVE_LIBCURL EXTRA_DIST += \ units/systemd-journal-upload.service.in \ diff --git a/src/grp-journal/grp-remote/systemd-journal-upload/journal-upload.h b/src/grp-journal/grp-remote/systemd-journal-upload/journal-upload.h index 2decc7b22e..9eeb8d2123 100644 --- a/src/grp-journal/grp-remote/systemd-journal-upload/journal-upload.h +++ b/src/grp-journal/grp-remote/systemd-journal-upload/journal-upload.h @@ -1,5 +1,6 @@ #pragma once +#include <curl/curl.h> #include <inttypes.h> #include <systemd/sd-event.h> diff --git a/src/grp-journal/journalctl/Makefile b/src/grp-journal/journalctl/Makefile index c3cdb6b27a..a7aa51403e 100644 --- a/src/grp-journal/journalctl/Makefile +++ b/src/grp-journal/journalctl/Makefile @@ -23,6 +23,9 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk +rootbin_PROGRAMS += \ + journalctl + # using _CFLAGS = in the conditional below would suppress AM_CFLAGS journalctl_CFLAGS = \ $(AM_CFLAGS) @@ -46,4 +49,18 @@ journalctl_LDADD += \ $(QRENCODE_LIBS) endif # HAVE_QRENCODE +nodist_systemunit_DATA += \ + units/systemd-journal-flush.service \ + units/systemd-journal-catalog-update.service + +SYSINIT_TARGET_WANTS += \ + systemd-journal-flush.service \ + systemd-journal-catalog-update.service + +EXTRA_DIST += \ + units/systemd-journal-flush.service.in \ + units/systemd-journal-catalog-update.service.in + +sd.CPPFLAGS += -DCATALOG_DATABASE=\"$(catalogstatedir)/database\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-journal/libjournal-core/.gitignore b/src/grp-journal/libjournal-core/.gitignore deleted file mode 100644 index 04d5852547..0000000000 --- a/src/grp-journal/libjournal-core/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/journald-gperf.c -/libsystemd-journal.pc -/audit_type-list.txt -/audit_type-*-name.* diff --git a/src/grp-journal/libjournal-core/Makefile b/src/grp-journal/libjournal-core/Makefile index d55aebfb49..997fcf0468 100644 --- a/src/grp-journal/libjournal-core/Makefile +++ b/src/grp-journal/libjournal-core/Makefile @@ -53,4 +53,6 @@ libjournal_core_la_LIBADD = \ noinst_LTLIBRARIES += \ libjournal-core.la +sd.CPPFLAGS += -DPKGSYSCONFDIR=\"$(pkgsysconfdir)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-journal/libjournal-core/journald-gperf.c b/src/grp-journal/libjournal-core/journald-gperf.c new file mode 100644 index 0000000000..3da66da54f --- /dev/null +++ b/src/grp-journal/libjournal-core/journald-gperf.c @@ -0,0 +1,175 @@ +/* ANSI-C code produced by gperf version 3.0.4 */ +/* Command-line: gperf */ +/* Computed positions: -k'9,18' */ + +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) +/* The character set is not based on ISO-646. */ +#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." +#endif + + +#include <stddef.h> +#include <string.h> +#include <sys/socket.h> + +#include "shared/conf-parser.h" + +#include "journald-server.h" + +#define TOTAL_KEYWORDS 28 +#define MIN_WORD_LENGTH 12 +#define MAX_WORD_LENGTH 28 +#define MIN_HASH_VALUE 12 +#define MAX_HASH_VALUE 53 +/* maximum key range = 42, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned int +journald_gperf_hash (register const char *str, register unsigned int len) +{ + static const unsigned char asso_values[] = + { + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 10, 0, 54, 54, + 0, 54, 54, 0, 54, 20, 54, 0, 54, 54, + 54, 54, 5, 0, 30, 20, 54, 15, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 15, 54, 0, + 54, 25, 54, 54, 54, 25, 54, 54, 54, 54, + 54, 20, 10, 54, 54, 54, 0, 54, 15, 54, + 0, 5, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 54, 54, 54, 54 + }; + register int hval = len; + + switch (hval) + { + default: + hval += asso_values[(unsigned char)str[17]]; + /*FALLTHROUGH*/ + case 17: + case 16: + case 15: + case 14: + case 13: + case 12: + case 11: + case 10: + case 9: + hval += asso_values[(unsigned char)str[8]]; + break; + } + return hval; +} + +#ifdef __GNUC__ +__inline +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ +__attribute__ ((__gnu_inline__)) +#endif +#endif +const struct ConfigPerfItem * +journald_gperf_lookup (register const char *str, register unsigned int len) +{ + static const struct ConfigPerfItem wordlist[] = + { + {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0}, + {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0}, + {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0}, + {"Journal.Seal", config_parse_bool, 0, offsetof(Server, seal)}, + {(char*)0}, {(char*)0}, + {"Journal.Storage", config_parse_storage, 0, offsetof(Server, storage)}, + {"Journal.Compress", config_parse_bool, 0, offsetof(Server, compress)}, + {"Journal.SplitMode", config_parse_split_mode, 0, offsetof(Server, split_mode)}, + {"Journal.MaxFileSec", config_parse_sec, 0, offsetof(Server, max_file_usec)}, + {(char*)0}, + {"Journal.MaxLevelKMsg", config_parse_log_level, 0, offsetof(Server, max_level_kmsg)}, + {"Journal.MaxLevelStore", config_parse_log_level, 0, offsetof(Server, max_level_store)}, + {"Journal.SystemMaxFiles", config_parse_uint64, 0, offsetof(Server, system_metrics.n_max_files)}, + {"Journal.ForwardToSyslog", config_parse_bool, 0, offsetof(Server, forward_to_syslog)}, + {"Journal.ForwardToConsole", config_parse_bool, 0, offsetof(Server, forward_to_console)}, + {"Journal.SystemMaxFileSize", config_parse_iec_uint64, 0, offsetof(Server, system_metrics.max_size)}, + {"Journal.RuntimeMaxUse", config_parse_iec_uint64, 0, offsetof(Server, runtime_metrics.max_use)}, + {"Journal.MaxLevelSyslog", config_parse_log_level, 0, offsetof(Server, max_level_syslog)}, + {"Journal.RuntimeMaxFiles", config_parse_uint64, 0, offsetof(Server, runtime_metrics.n_max_files)}, + {(char*)0}, + {"Journal.RateLimitInterval", config_parse_sec, 0, offsetof(Server, rate_limit_interval)}, + {"Journal.RuntimeMaxFileSize", config_parse_iec_uint64, 0, offsetof(Server, runtime_metrics.max_size)}, + {"Journal.SystemKeepFree", config_parse_iec_uint64, 0, offsetof(Server, system_metrics.keep_free)}, + {"Journal.RateLimitIntervalSec",config_parse_sec, 0, offsetof(Server, rate_limit_interval)}, + {(char*)0}, + {"Journal.MaxLevelWall", config_parse_log_level, 0, offsetof(Server, max_level_wall)}, + {"Journal.ForwardToWall", config_parse_bool, 0, offsetof(Server, forward_to_wall)}, + {"Journal.RateLimitBurst", config_parse_unsigned, 0, offsetof(Server, rate_limit_burst)}, + {"Journal.SyncIntervalSec", config_parse_sec, 0, offsetof(Server, sync_interval_usec)}, + {(char*)0}, + {"Journal.SystemMaxUse", config_parse_iec_uint64, 0, offsetof(Server, system_metrics.max_use)}, + {"Journal.ForwardToKMsg", config_parse_bool, 0, offsetof(Server, forward_to_kmsg)}, + {(char*)0}, + {"Journal.MaxLevelConsole", config_parse_log_level, 0, offsetof(Server, max_level_console)}, + {(char*)0}, + {"Journal.TTYPath", config_parse_path, 0, offsetof(Server, tty_path)}, + {(char*)0}, {(char*)0}, + {"Journal.MaxRetentionSec", config_parse_sec, 0, offsetof(Server, max_retention_usec)}, + {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0}, + {"Journal.RuntimeKeepFree", config_parse_iec_uint64, 0, offsetof(Server, runtime_metrics.keep_free)} + }; + + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register int key = journald_gperf_hash (str, len); + + if (key <= MAX_HASH_VALUE && key >= 0) + { + register const char *s = wordlist[key].section_and_lvalue; + + if (s && *str == *s && !strcmp (str + 1, s + 1)) + return &wordlist[key]; + } + } + return 0; +} diff --git a/src/grp-journal/libjournal-core/journald-gperf.gperf b/src/grp-journal/libjournal-core/journald-gperf.gperf index 7fecd7a964..f64cd871fe 100644 --- a/src/grp-journal/libjournal-core/journald-gperf.gperf +++ b/src/grp-journal/libjournal-core/journald-gperf.gperf @@ -1,7 +1,7 @@ %{ #include <stddef.h> #include <sys/socket.h> -#include "conf-parser.h" +#include "shared/conf-parser.h" #include "journald-server.h" %} struct ConfigPerfItem; diff --git a/src/grp-journal/libjournal-core/journald-server.c b/src/grp-journal/libjournal-core/journald-server.c index 8f82d2a838..4dca4b02b3 100644 --- a/src/grp-journal/libjournal-core/journald-server.c +++ b/src/grp-journal/libjournal-core/journald-server.c @@ -26,29 +26,44 @@ #include <sys/statvfs.h> #include <linux/sockios.h> -#include "libudev.h" -#include "sd-daemon.h" -#include "sd-journal.h" -#include "sd-messages.h" - -#include "acl-util.h" -#include "alloc-util.h" -#include "audit-util.h" -#include "cgroup-util.h" -#include "conf-parser.h" -#include "dirent-util.h" -#include "extract-word.h" -#include "fd-util.h" -#include "fileio.h" -#include "formats-util.h" -#include "fs-util.h" -#include "hashmap.h" -#include "hostname-util.h" -#include "io-util.h" -#include "journal-authenticate.h" -#include "journal-file.h" -#include "journal-internal.h" -#include "journal-vacuum.h" +#include <libudev.h> +#include <systemd/sd-daemon.h> +#include <systemd/sd-journal.h> +#include <systemd/sd-messages.h> + +#include "basic/alloc-util.h" +#include "basic/audit-util.h" +#include "basic/cgroup-util.h" +#include "basic/dirent-util.h" +#include "basic/extract-word.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" +#include "basic/formats-util.h" +#include "basic/fs-util.h" +#include "basic/hashmap.h" +#include "basic/hostname-util.h" +#include "basic/io-util.h" +#include "basic/log.h" +#include "basic/missing.h" +#include "basic/mkdir.h" +#include "basic/parse-util.h" +#include "basic/proc-cmdline.h" +#include "basic/process-util.h" +#include "basic/rm-rf.h" +#include "basic/selinux-util.h" +#include "basic/signal-util.h" +#include "basic/socket-util.h" +#include "basic/stdio-util.h" +#include "basic/string-table.h" +#include "basic/string-util.h" +#include "basic/user-util.h" +#include "sd-journal/journal-authenticate.h" +#include "sd-journal/journal-file.h" +#include "sd-journal/journal-internal.h" +#include "sd-journal/journal-vacuum.h" +#include "shared/acl-util.h" +#include "shared/conf-parser.h" + #include "journald-audit.h" #include "journald-kmsg.h" #include "journald-native.h" @@ -56,20 +71,6 @@ #include "journald-server.h" #include "journald-stream.h" #include "journald-syslog.h" -#include "missing.h" -#include "mkdir.h" -#include "parse-util.h" -#include "proc-cmdline.h" -#include "process-util.h" -#include "rm-rf.h" -#include "selinux-util.h" -#include "signal-util.h" -#include "socket-util.h" -#include "stdio-util.h" -#include "string-table.h" -#include "string-util.h" -#include "user-util.h" -#include "log.h" #define USER_JOURNALS_MAX 1024 diff --git a/src/grp-journal/libjournal-core/journald-stream.c b/src/grp-journal/libjournal-core/journald-stream.c index 4ad16ee41c..4b0062bc9a 100644 --- a/src/grp-journal/libjournal-core/journald-stream.c +++ b/src/grp-journal/libjournal-core/journald-stream.c @@ -24,28 +24,28 @@ #include <selinux/selinux.h> #endif -#include "sd-daemon.h" -#include "sd-event.h" - -#include "alloc-util.h" -#include "dirent-util.h" -#include "escape.h" -#include "fd-util.h" -#include "fileio.h" -#include "io-util.h" +#include <systemd/sd-daemon.h> +#include <systemd/sd-event.h> + +#include "basic/alloc-util.h" +#include "basic/dirent-util.h" +#include "basic/escape.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" +#include "basic/io-util.h" #include "journald-console.h" #include "journald-kmsg.h" #include "journald-server.h" #include "journald-stream.h" #include "journald-syslog.h" #include "journald-wall.h" -#include "mkdir.h" -#include "parse-util.h" -#include "selinux-util.h" -#include "socket-util.h" -#include "stdio-util.h" -#include "string-util.h" -#include "syslog-util.h" +#include "basic/mkdir.h" +#include "basic/parse-util.h" +#include "basic/selinux-util.h" +#include "basic/socket-util.h" +#include "basic/stdio-util.h" +#include "basic/string-util.h" +#include "basic/syslog-util.h" #define STDOUT_STREAMS_MAX 4096 diff --git a/src/grp-journal/libjournal-core/test-compress.c b/src/grp-journal/libjournal-core/test-compress.c index 68c9a4d76c..8cd098cabc 100644 --- a/src/grp-journal/libjournal-core/test-compress.c +++ b/src/grp-journal/libjournal-core/test-compress.c @@ -21,13 +21,13 @@ #include <lz4.h> #endif -#include "alloc-util.h" +#include "basic/alloc-util.h" #include "compress.h" -#include "fd-util.h" -#include "fileio.h" -#include "macro.h" -#include "random-util.h" -#include "util.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" +#include "basic/macro.h" +#include "basic/random-util.h" +#include "basic/util.h" #ifdef HAVE_XZ # define XZ_OK 0 diff --git a/src/grp-journal/systemd-cat/Makefile b/src/grp-journal/systemd-cat/Makefile new file mode 100644 index 0000000000..a6d7eee6ea --- /dev/null +++ b/src/grp-journal/systemd-cat/Makefile @@ -0,0 +1,36 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +systemd_cat_SOURCES = \ + src/journal/cat.c + +systemd_cat_LDADD = \ + libjournal-core.la + + +bin_PROGRAMS += \ + systemd-cat + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-journal/systemd-journald/Makefile b/src/grp-journal/systemd-journald/Makefile index 755e2d2c36..62f19aa1b8 100644 --- a/src/grp-journal/systemd-journald/Makefile +++ b/src/grp-journal/systemd-journald/Makefile @@ -31,36 +31,22 @@ systemd_journald_LDADD = \ libjournal-core.la \ libshared.la -systemd_cat_SOURCES = \ - src/journal/cat.c - -systemd_cat_LDADD = \ - libjournal-core.la - - rootlibexec_PROGRAMS += \ systemd-journald -rootbin_PROGRAMS += \ - journalctl - -bin_PROGRAMS += \ - systemd-cat - dist_systemunit_DATA += \ units/systemd-journald.socket \ units/systemd-journald-dev-log.socket \ units/systemd-journald-audit.socket nodist_systemunit_DATA += \ - units/systemd-journald.service \ - units/systemd-journal-flush.service \ - units/systemd-journal-catalog-update.service + units/systemd-journald.service dist_pkgsysconf_DATA += \ src/journal/journald.conf -dist_catalog_DATA = \ +# TODO +_dist_catalog_DATA = \ catalog/systemd.bg.catalog \ catalog/systemd.be.catalog \ catalog/systemd.be@latin.catalog \ @@ -79,14 +65,10 @@ SOCKETS_TARGET_WANTS += \ systemd-journald-audit.socket SYSINIT_TARGET_WANTS += \ - systemd-journald.service \ - systemd-journal-flush.service \ - systemd-journal-catalog-update.service + systemd-journald.service EXTRA_DIST += \ - units/systemd-journald.service.in \ - units/systemd-journal-flush.service.in \ - units/systemd-journal-catalog-update.service.in + units/systemd-journald.service.in gperf_gperf_sources += \ src/journal/journald-gperf.gperf diff --git a/src/grp-journal/systemd-journald/systemd-journald.tmpfiles.m4 b/src/grp-journal/systemd-journald/systemd-journald.tmpfiles.m4 index 2cd58e9121..2e8bd8cbef 100644 --- a/src/grp-journal/systemd-journald/systemd-journald.tmpfiles.m4 +++ b/src/grp-journal/systemd-journald/systemd-journald.tmpfiles.m4 @@ -7,21 +7,6 @@ # See tmpfiles.d(5) for details -d /run/user 0755 root root - -F! /run/utmp 0664 root utmp - - -d /run/systemd/ask-password 0755 root root - -d /run/systemd/seats 0755 root root - -d /run/systemd/sessions 0755 root root - -d /run/systemd/users 0755 root root - -d /run/systemd/machines 0755 root root - -d /run/systemd/shutdown 0755 root root - -m4_ifdef(`ENABLE_NETWORKD', -d /run/systemd/netif 0755 systemd-network systemd-network - -d /run/systemd/netif/links 0755 systemd-network systemd-network - -d /run/systemd/netif/leases 0755 systemd-network systemd-network - -)m4_dnl - d /run/log 0755 root root - z /run/log/journal 2755 root systemd-journal - - @@ -68,6 +53,3 @@ a+ /var/log/journal/%m - - - - d:group:wheel:r-x a+ /var/log/journal/%m - - - - group:wheel:r-x a+ /var/log/journal/%m/system.journal - - - - group:wheel:r-- '')')')m4_dnl - -d /var/lib/systemd 0755 root root - -d /var/lib/systemd/coredump 0755 root root 3d diff --git a/src/grp-locale/Makefile b/src/grp-locale/Makefile index b34c066ec2..6dc11dc2d8 100644 --- a/src/grp-locale/Makefile +++ b/src/grp-locale/Makefile @@ -23,68 +23,6 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -ifneq ($(ENABLE_LOCALED),) -systemd_localed_SOURCES = \ - src/locale/localed.c - -systemd_localed_LDADD = \ - libshared.la \ - -ldl - -systemd_localed_CFLAGS = \ - $(AM_CFLAGS) \ - $(XKBCOMMON_CFLAGS) - -nodist_systemunit_DATA += \ - units/systemd-localed.service - -dist_systemunit_DATA_busnames += \ - units/org.freedesktop.locale1.busname - -rootlibexec_PROGRAMS += \ - systemd-localed - -dist_dbuspolicy_DATA += \ - src/locale/org.freedesktop.locale1.conf - -dist_dbussystemservice_DATA += \ - src/locale/org.freedesktop.locale1.service - -polkitpolicy_files += \ - src/locale/org.freedesktop.locale1.policy - -SYSTEM_UNIT_ALIASES += \ - systemd-localed.service dbus-org.freedesktop.locale1.service - -BUSNAMES_TARGET_WANTS += \ - org.freedesktop.locale1.busname - -dist_pkgdata_DATA = \ - src/locale/kbd-model-map \ - src/locale/language-fallback-map - -localectl_SOURCES = \ - src/locale/localectl.c - -localectl_LDADD = \ - libshared.la - -bin_PROGRAMS += \ - localectl - -dist_bashcompletion_data += \ - shell-completion/bash/localectl - -dist_zshcompletion_data += \ - shell-completion/zsh/_localectl -endif # ENABLE_LOCALED - -.PHONY: update-kbd-model-map - -polkitpolicy_in_files += \ - src/locale/org.freedesktop.locale1.policy.in - -EXTRA_DIST += \ - units/systemd-localed.service.in +nested.subdirs += systemd-localed localectl include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-locale/localectl/Makefile b/src/grp-locale/localectl/Makefile new file mode 100644 index 0000000000..d0023df124 --- /dev/null +++ b/src/grp-locale/localectl/Makefile @@ -0,0 +1,45 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +ifneq ($(ENABLE_LOCALED),) + +localectl_SOURCES = \ + src/locale/localectl.c + +localectl_LDADD = \ + libshared.la + +bin_PROGRAMS += \ + localectl + +dist_bashcompletion_data += \ + shell-completion/bash/localectl + +dist_zshcompletion_data += \ + shell-completion/zsh/_localectl + +endif # ENABLE_LOCALED + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-locale/systemd-localed/.gitignore b/src/grp-locale/systemd-localed/.gitignore index b1e0ba755e..6d9d6089c0 100644 --- a/src/grp-locale/systemd-localed/.gitignore +++ b/src/grp-locale/systemd-localed/.gitignore @@ -1 +1 @@ -org.freedesktop.locale1.policy +/org.freedesktop.locale1.policy diff --git a/src/grp-locale/systemd-localed/Makefile b/src/grp-locale/systemd-localed/Makefile new file mode 100644 index 0000000000..de38bb8576 --- /dev/null +++ b/src/grp-locale/systemd-localed/Makefile @@ -0,0 +1,79 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +ifneq ($(ENABLE_LOCALED),) +systemd_localed_SOURCES = \ + src/locale/localed.c + +systemd_localed_LDADD = \ + libshared.la \ + -ldl + +systemd_localed_CFLAGS = \ + $(AM_CFLAGS) \ + $(XKBCOMMON_CFLAGS) + +nodist_systemunit_DATA += \ + units/systemd-localed.service + +dist_systemunit_DATA_busnames += \ + units/org.freedesktop.locale1.busname + +rootlibexec_PROGRAMS += \ + systemd-localed + +dist_dbuspolicy_DATA += \ + src/locale/org.freedesktop.locale1.conf + +dist_dbussystemservice_DATA += \ + src/locale/org.freedesktop.locale1.service + +polkitpolicy_files += \ + src/locale/org.freedesktop.locale1.policy + +SYSTEM_UNIT_ALIASES += \ + systemd-localed.service dbus-org.freedesktop.locale1.service + +BUSNAMES_TARGET_WANTS += \ + org.freedesktop.locale1.busname + +dist_pkgdata_DATA = \ + src/locale/kbd-model-map \ + src/locale/language-fallback-map + +endif # ENABLE_LOCALED + +.PHONY: update-kbd-model-map + +polkitpolicy_in_files += \ + src/locale/org.freedesktop.locale1.policy.in + +EXTRA_DIST += \ + units/systemd-localed.service.in + +sd.CPPFLAGS += -DSYSTEMD_KBD_MODEL_MAP=\"$(pkgdatadir)/kbd-model-map\" +sd.CPPFLAGS += -DSYSTEMD_LANGUAGE_FALLBACK_MAP=\"$(pkgdatadir)/language-fallback-map\" + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-locale/systemd-localed/localed.c b/src/grp-locale/systemd-localed/localed.c index 3b22a582ac..7bb7f1cf34 100644 --- a/src/grp-locale/systemd-localed/localed.c +++ b/src/grp-locale/systemd-localed/localed.c @@ -27,24 +27,24 @@ #include <dlfcn.h> #endif -#include "sd-bus.h" - -#include "alloc-util.h" -#include "bus-error.h" -#include "bus-message.h" -#include "bus-util.h" -#include "def.h" -#include "env-util.h" -#include "fd-util.h" -#include "fileio-label.h" -#include "fileio.h" -#include "locale-util.h" -#include "mkdir.h" -#include "path-util.h" -#include "selinux-util.h" -#include "strv.h" -#include "user-util.h" -#include "util.h" +#include <systemd/sd-bus.h> + +#include "basic/alloc-util.h" +#include "basic/def.h" +#include "basic/env-util.h" +#include "basic/fd-util.h" +#include "basic/fileio-label.h" +#include "basic/fileio.h" +#include "basic/locale-util.h" +#include "basic/mkdir.h" +#include "basic/path-util.h" +#include "basic/selinux-util.h" +#include "basic/strv.h" +#include "basic/user-util.h" +#include "basic/util.h" +#include "sd-bus/bus-error.h" +#include "sd-bus/bus-message.h" +#include "shared/bus-util.h" enum { /* We don't list LC_ALL here on purpose. People should be diff --git a/src/grp-login/Makefile b/src/grp-login/Makefile index 381d653166..be6adc4880 100644 --- a/src/grp-login/Makefile +++ b/src/grp-login/Makefile @@ -56,60 +56,9 @@ tests += \ test-login-tables \ test-login-shared - -nodist_systemunit_DATA += \ - units/systemd-logind.service - -dist_systemunit_DATA += \ - units/user.slice - -dist_systemunit_DATA_busnames += \ - units/org.freedesktop.login1.busname - -dist_dbussystemservice_DATA += \ - src/login/org.freedesktop.login1.service - -dist_dbuspolicy_DATA += \ - src/login/org.freedesktop.login1.conf - -nodist_pkgsysconf_DATA += \ - src/login/logind.conf - -polkitpolicy_files += \ - src/login/org.freedesktop.login1.policy - -INSTALL_DIRS += \ - $(systemdstatedir) - -MULTI_USER_TARGET_WANTS += \ - systemd-logind.service - -SYSTEM_UNIT_ALIASES += \ - systemd-logind.service dbus-org.freedesktop.login1.service - -BUSNAMES_TARGET_WANTS += \ - org.freedesktop.login1.busname - -dist_udevrules_DATA += \ - src/login/70-uaccess.rules \ - src/login/70-power-switch.rules - -nodist_udevrules_DATA += \ - src/login/71-seat.rules \ - src/login/73-seat-late.rules +nested.subdirs += loginctl systemd-logind +nested.subdirs += pam_systemd systemd-inhibit endif # ENABLE_LOGIND -polkitpolicy_in_files += \ - src/login/org.freedesktop.login1.policy.in - -gperf_gperf_sources += \ - src/login/logind-gperf.gperf - -EXTRA_DIST += \ - src/login/71-seat.rules.in \ - src/login/73-seat-late.rules.in \ - units/systemd-logind.service.in \ - src/login/logind.conf.in - include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-login/systemd-logind/Makefile b/src/grp-login/systemd-logind/Makefile index b4da812a3e..18b18a1683 100644 --- a/src/grp-login/systemd-logind/Makefile +++ b/src/grp-login/systemd-logind/Makefile @@ -23,17 +23,7 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -systemd_logind_SOURCES = \ - src/login/logind.c \ - src/login/logind.h - -nodist_systemd_logind_SOURCES = \ - src/login/logind-gperf.c - -systemd_logind_LDADD = \ - liblogind-core.la - -liblogind_core_la_SOURCES = \ +_liblogind_core_la_SOURCES = \ src/login/logind-core.c \ src/login/logind-device.c \ src/login/logind-device.h \ @@ -58,18 +48,81 @@ liblogind_core_la_SOURCES = \ src/login/logind-utmp.c \ src/login/logind-acl.h -liblogind_core_la_LIBADD = \ - libshared.la - ifneq ($(HAVE_ACL),) -liblogind_core_la_SOURCES += \ +_liblogind_core_la_SOURCES += \ src/login/logind-acl.c endif # HAVE_ACL -noinst_LTLIBRARIES += \ - liblogind-core.la +systemd_logind_SOURCES = \ + $(_liblogind_core_la_SOURCES) \ + src/login/logind.c \ + src/login/logind.h + +nodist_systemd_logind_SOURCES = \ + src/login/logind-gperf.c + +systemd_logind_LDADD = \ + libshared.la rootlibexec_PROGRAMS += \ systemd-logind + +nodist_systemunit_DATA += \ + units/systemd-logind.service + +dist_systemunit_DATA += \ + units/user.slice + +dist_systemunit_DATA_busnames += \ + units/org.freedesktop.login1.busname + +dist_dbussystemservice_DATA += \ + src/login/org.freedesktop.login1.service + +dist_dbuspolicy_DATA += \ + src/login/org.freedesktop.login1.conf + +nodist_pkgsysconf_DATA += \ + src/login/logind.conf + +polkitpolicy_files += \ + src/login/org.freedesktop.login1.policy + +INSTALL_DIRS += \ + $(systemdstatedir) + +MULTI_USER_TARGET_WANTS += \ + systemd-logind.service + +SYSTEM_UNIT_ALIASES += \ + systemd-logind.service dbus-org.freedesktop.login1.service + +BUSNAMES_TARGET_WANTS += \ + org.freedesktop.login1.busname + +dist_udevrules_DATA += \ + src/login/70-uaccess.rules \ + src/login/70-power-switch.rules + +nodist_udevrules_DATA += \ + src/login/71-seat.rules \ + src/login/73-seat-late.rules + + +polkitpolicy_in_files += \ + src/login/org.freedesktop.login1.policy.in + +gperf_gperf_sources += \ + src/login/logind-gperf.gperf + +EXTRA_DIST += \ + src/login/71-seat.rules.in \ + src/login/73-seat-late.rules.in \ + units/systemd-logind.service.in \ + src/login/logind.conf.in + +sd.CPPFLAGS += -DPKGSYSCONFDIR=\"$(pkgsysconfdir)\" +sd.CPPFLAGS += -DKEXEC=\"$(KEXEC)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-login/systemd-logind/logind-action.h b/src/grp-login/systemd-logind/logind-action.h index fb40ae48d2..39ba3cf0f6 100644 --- a/src/grp-login/systemd-logind/logind-action.h +++ b/src/grp-login/systemd-logind/logind-action.h @@ -33,9 +33,10 @@ typedef enum HandleAction { _HANDLE_ACTION_INVALID = -1 } HandleAction; -#include "logind-inhibit.h" #include "logind.h" +#include "logind-inhibit.h" + int manager_handle_action( Manager *m, InhibitWhat inhibit_key, diff --git a/src/grp-login/systemd-logind/logind-core.c b/src/grp-login/systemd-logind/logind-core.c index 13ea97ae0d..1d6475f8d7 100644 --- a/src/grp-login/systemd-logind/logind-core.c +++ b/src/grp-login/systemd-logind/logind-core.c @@ -30,12 +30,11 @@ #include "basic/strv.h" #include "basic/terminal-util.h" #include "basic/user-util.h" +#include "logind.h" #include "sd-bus/bus-error.h" #include "shared/bus-util.h" #include "shared/udev-util.h" -#include "logind.h" - int manager_add_device(Manager *m, const char *sysfs, bool master, Device **_device) { Device *d; diff --git a/src/grp-login/systemd-logind/logind-dbus.c b/src/grp-login/systemd-logind/logind-dbus.c index 282ba64a3d..cb51e43a5c 100644 --- a/src/grp-login/systemd-logind/logind-dbus.c +++ b/src/grp-login/systemd-logind/logind-dbus.c @@ -41,6 +41,7 @@ #include "basic/terminal-util.h" #include "basic/unit-name.h" #include "basic/user-util.h" +#include "logind.h" #include "sd-bus/bus-common-errors.h" #include "sd-bus/bus-error.h" #include "shared/bus-util.h" @@ -49,8 +50,6 @@ #include "shared/udev-util.h" #include "shared/utmp-wtmp.h" -#include "logind.h" - int manager_get_session_from_creds(Manager *m, sd_bus_message *message, const char *name, sd_bus_error *error, Session **ret) { _cleanup_(sd_bus_creds_unrefp) sd_bus_creds *creds = NULL; Session *session; diff --git a/src/grp-login/systemd-logind/logind-gperf.c b/src/grp-login/systemd-logind/logind-gperf.c new file mode 100644 index 0000000000..9cac645686 --- /dev/null +++ b/src/grp-login/systemd-logind/logind-gperf.c @@ -0,0 +1,144 @@ +/* ANSI-C code produced by gperf version 3.0.4 */ +/* Command-line: gperf */ +/* Computed positions: -k'10' */ + +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) +/* The character set is not based on ISO-646. */ +#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>." +#endif + + +#include <stddef.h> +#include "shared/conf-parser.h" +#include "logind.h" +#include <string.h> + +#define TOTAL_KEYWORDS 23 +#define MIN_WORD_LENGTH 14 +#define MAX_WORD_LENGTH 33 +#define MIN_HASH_VALUE 14 +#define MAX_HASH_VALUE 44 +/* maximum key range = 31, duplicates = 0 */ + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned int +logind_gperf_hash (register const char *str, register unsigned int len) +{ + static const unsigned char asso_values[] = + { + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 0, 0, 45, 45, 45, 20, 45, 45, 15, 45, + 45, 10, 0, 45, 0, 0, 0, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45 + }; + return len + asso_values[(unsigned char)str[9]]; +} + +#ifdef __GNUC__ +__inline +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ +__attribute__ ((__gnu_inline__)) +#endif +#endif +const struct ConfigPerfItem * +logind_gperf_lookup (register const char *str, register unsigned int len) +{ + static const struct ConfigPerfItem wordlist[] = + { + {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0}, + {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0}, + {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0}, + {(char*)0}, {(char*)0}, + {"Login.NAutoVTs", config_parse_unsigned, 0, offsetof(Manager, n_autovts)}, + {"Login.ReserveVT", config_parse_unsigned, 0, offsetof(Manager, reserve_vt)}, + {"Login.IdleAction", config_parse_handle_action, 0, offsetof(Manager, idle_action)}, + {"Login.SessionsMax", config_parse_uint64, 0, offsetof(Manager, sessions_max)}, + {"Login.UserTasksMax", config_parse_uint64, 0, offsetof(Manager, user_tasks_max)}, + {"Login.IdleActionSec", config_parse_sec, 0, offsetof(Manager, idle_action_usec)}, + {"Login.HandlePowerKey", config_parse_handle_action, 0, offsetof(Manager, handle_power_key)}, + {"Login.HandleLidSwitch", config_parse_handle_action, 0, offsetof(Manager, handle_lid_switch)}, + {"Login.HandleSuspendKey", config_parse_handle_action, 0, offsetof(Manager, handle_suspend_key)}, + {"Login.HoldoffTimeoutSec", config_parse_sec, 0, offsetof(Manager, holdoff_timeout_usec)}, + {"Login.HandleHibernateKey", config_parse_handle_action, 0, offsetof(Manager, handle_hibernate_key)}, + {"Login.RemoveIPC", config_parse_bool, 0, offsetof(Manager, remove_ipc)}, + {"Login.RuntimeDirectorySize", config_parse_tmpfs_size, 0, offsetof(Manager, runtime_dir_size)}, + {"Login.HandleLidSwitchDocked", config_parse_handle_action, 0, offsetof(Manager, handle_lid_switch_docked)}, + {(char*)0}, + {"Login.PowerKeyIgnoreInhibited", config_parse_bool, 0, offsetof(Manager, power_key_ignore_inhibited)}, + {"Login.LidSwitchIgnoreInhibited", config_parse_bool, 0, offsetof(Manager, lid_switch_ignore_inhibited)}, + {"Login.SuspendKeyIgnoreInhibited", config_parse_bool, 0, offsetof(Manager, suspend_key_ignore_inhibited)}, + {(char*)0}, + {"Login.HibernateKeyIgnoreInhibited", config_parse_bool, 0, offsetof(Manager, hibernate_key_ignore_inhibited)}, + {"Login.KillOnlyUsers", config_parse_strv, 0, offsetof(Manager, kill_only_users)}, + {(char*)0}, {(char*)0}, + {"Login.KillExcludeUsers", config_parse_strv, 0, offsetof(Manager, kill_exclude_users)}, + {"Login.KillUserProcesses", config_parse_bool, 0, offsetof(Manager, kill_user_processes)}, + {"Login.InhibitorsMax", config_parse_uint64, 0, offsetof(Manager, inhibitors_max)}, + {(char*)0}, {(char*)0}, {(char*)0}, {(char*)0}, + {"Login.InhibitDelayMaxSec", config_parse_sec, 0, offsetof(Manager, inhibit_delay_max)} + }; + + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register int key = logind_gperf_hash (str, len); + + if (key <= MAX_HASH_VALUE && key >= 0) + { + register const char *s = wordlist[key].section_and_lvalue; + + if (s && *str == *s && !strcmp (str + 1, s + 1)) + return &wordlist[key]; + } + } + return 0; +} diff --git a/src/grp-login/systemd-logind/logind-gperf.gperf b/src/grp-login/systemd-logind/logind-gperf.gperf index 6bd08adc05..6d5c484439 100644 --- a/src/grp-login/systemd-logind/logind-gperf.gperf +++ b/src/grp-login/systemd-logind/logind-gperf.gperf @@ -1,6 +1,6 @@ %{ #include <stddef.h> -#include "conf-parser.h" +#include "shared/conf-parser.h" #include "logind.h" %} struct ConfigPerfItem; diff --git a/src/grp-login/systemd-logind/logind-seat-dbus.c b/src/grp-login/systemd-logind/logind-seat-dbus.c index e4febe1ab5..fbebe6fcff 100644 --- a/src/grp-login/systemd-logind/logind-seat-dbus.c +++ b/src/grp-login/systemd-logind/logind-seat-dbus.c @@ -25,11 +25,11 @@ #include "basic/strv.h" #include "basic/user-util.h" #include "basic/util.h" +#include "logind.h" #include "sd-bus/bus-common-errors.h" #include "shared/bus-util.h" #include "logind-seat.h" -#include "logind.h" static int property_get_active_session( sd_bus *bus, diff --git a/src/grp-login/systemd-logind/logind-session-dbus.c b/src/grp-login/systemd-logind/logind-session-dbus.c index f79f9b5003..76228d4474 100644 --- a/src/grp-login/systemd-logind/logind-session-dbus.c +++ b/src/grp-login/systemd-logind/logind-session-dbus.c @@ -26,12 +26,12 @@ #include "basic/signal-util.h" #include "basic/strv.h" #include "basic/util.h" +#include "logind.h" #include "sd-bus/bus-common-errors.h" #include "shared/bus-util.h" #include "logind-session-device.h" #include "logind-session.h" -#include "logind.h" static int property_get_user( sd_bus *bus, diff --git a/src/grp-login/systemd-logind/logind-session.h b/src/grp-login/systemd-logind/logind-session.h index 976046d847..23ff6576c9 100644 --- a/src/grp-login/systemd-logind/logind-session.h +++ b/src/grp-login/systemd-logind/logind-session.h @@ -19,12 +19,12 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +typedef struct Session Session; +typedef enum KillWho KillWho; + #include "basic/list.h" #include "basic/login-util.h" -typedef enum KillWho KillWho; -typedef struct Session Session; - #include "logind-user.h" typedef enum SessionState { diff --git a/src/grp-login/systemd-logind/logind-user-dbus.c b/src/grp-login/systemd-logind/logind-user-dbus.c index 57d1c857e6..d82ced605e 100644 --- a/src/grp-login/systemd-logind/logind-user-dbus.c +++ b/src/grp-login/systemd-logind/logind-user-dbus.c @@ -25,10 +25,10 @@ #include "basic/signal-util.h" #include "basic/strv.h" #include "basic/user-util.h" +#include "logind.h" #include "shared/bus-util.h" #include "logind-user.h" -#include "logind.h" static int property_get_display( sd_bus *bus, diff --git a/src/grp-login/systemd-logind/logind-utmp.c b/src/grp-login/systemd-logind/logind-utmp.c index 1e97083f78..c5dc137d61 100644 --- a/src/grp-login/systemd-logind/logind-utmp.c +++ b/src/grp-login/systemd-logind/logind-utmp.c @@ -31,13 +31,12 @@ #include "basic/strv.h" #include "basic/unit-name.h" #include "basic/user-util.h" +#include "logind.h" #include "sd-bus/bus-common-errors.h" #include "sd-bus/bus-error.h" #include "shared/bus-util.h" #include "shared/utmp-wtmp.h" -#include "logind.h" - _const_ static usec_t when_wall(usec_t n, usec_t elapse) { usec_t left; diff --git a/src/grp-machine/Makefile b/src/grp-machine/Makefile index 7412341233..c5225e44b5 100644 --- a/src/grp-machine/Makefile +++ b/src/grp-machine/Makefile @@ -23,7 +23,8 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -at.subdirs += machinectl systemd-machined -at.subdirs += nss-mymachines +nested.subdirs += machinectl systemd-machined +nested.subdirs += nss-mymachines +nested.subdirs += grp-import include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-machine/grp-import/Makefile b/src/grp-machine/grp-import/Makefile new file mode 100644 index 0000000000..b996bd4c19 --- /dev/null +++ b/src/grp-machine/grp-import/Makefile @@ -0,0 +1,48 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +ifneq ($(ENABLE_IMPORTD),) + +ifneq ($(HAVE_LIBCURL),) +ifneq ($(HAVE_XZ),) +ifneq ($(HAVE_ZLIB),) +ifneq ($(HAVE_BZIP2),) +ifneq ($(HAVE_GCRYPT),) + +nested.subdirs += libimport +nested.subdirs += systemd-export +nested.subdirs += systemd-import +nested.subdirs += systemd-importd +nested.subdirs += systemd-pull + +endif # HAVE_GCRYPT +endif # HAVE_BZIP2 +endif # HAVE_ZLIB +endif # HAVE_XZ +endif # HAVE_LIBCURL + +endif # ENABLE_IMPORTD + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-machine/grp-import/libimport/Makefile b/src/grp-machine/grp-import/libimport/Makefile new file mode 100644 index 0000000000..5691d0bba1 --- /dev/null +++ b/src/grp-machine/grp-import/libimport/Makefile @@ -0,0 +1,51 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +noinst_LTLIBRARIES += libimport.la + +libimport_la_SOURCES = \ + qcow2-util.c \ + import-common.c \ + import-compress.c + +libimport_la_LIBADD += libbasic.la + +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 = \ + libshared.la \ + $(ZLIB_LIBS) + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-machine/grp-import/libimport/import-common.h b/src/grp-machine/grp-import/libimport/import-common.h index 07d3250e71..3abd62e8c3 100644 --- a/src/grp-machine/grp-import/libimport/import-common.h +++ b/src/grp-machine/grp-import/libimport/import-common.h @@ -19,6 +19,8 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <sys/types.h> + int import_make_read_only_fd(int fd); int import_make_read_only(const char *path); diff --git a/src/grp-machine/grp-import/systemd-export/Makefile b/src/grp-machine/grp-import/systemd-export/Makefile index f6e15987a5..f8fcbc3cca 100644 --- a/src/grp-machine/grp-import/systemd-export/Makefile +++ b/src/grp-machine/grp-import/systemd-export/Makefile @@ -30,11 +30,7 @@ systemd_export_SOURCES = \ 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 + src/import/export-raw.h systemd_export_CFLAGS = \ $(AM_CFLAGS) \ @@ -44,6 +40,7 @@ systemd_export_CFLAGS = \ systemd_export_LDADD = \ libshared.la \ + libimport.la \ $(XZ_LIBS) \ $(ZLIB_LIBS) \ $(BZIP2_LIBS) diff --git a/src/grp-machine/grp-import/systemd-export/export-raw.c b/src/grp-machine/grp-import/systemd-export/export-raw.c index db06e11b87..1e3f6e034e 100644 --- a/src/grp-machine/grp-import/systemd-export/export-raw.c +++ b/src/grp-machine/grp-import/systemd-export/export-raw.c @@ -25,18 +25,18 @@ #include <libgen.h> #undef basename -#include "sd-daemon.h" +#include <systemd/sd-daemon.h> -#include "alloc-util.h" -#include "btrfs-util.h" -#include "copy.h" +#include "basic/alloc-util.h" +#include "basic/btrfs-util.h" +#include "basic/copy.h" #include "export-raw.h" -#include "fd-util.h" -#include "fileio.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" #include "import-common.h" -#include "ratelimit.h" -#include "string-util.h" -#include "util.h" +#include "basic/ratelimit.h" +#include "basic/string-util.h" +#include "basic/util.h" #define COPY_BUFFER_SIZE (16*1024) diff --git a/src/grp-machine/grp-import/systemd-export/export-raw.h b/src/grp-machine/grp-import/systemd-export/export-raw.h index cf34d512bc..00f6931d7b 100644 --- a/src/grp-machine/grp-import/systemd-export/export-raw.h +++ b/src/grp-machine/grp-import/systemd-export/export-raw.h @@ -25,6 +25,7 @@ #include "import-compress.h" typedef struct RawExport RawExport; + typedef void (*RawExportFinished)(RawExport *export, int error, void *userdata); int raw_export_new(RawExport **export, sd_event *event, RawExportFinished on_finished, void *userdata); diff --git a/src/grp-machine/grp-import/systemd-export/export-tar.h b/src/grp-machine/grp-import/systemd-export/export-tar.h index c048a6d642..9efde8931d 100644 --- a/src/grp-machine/grp-import/systemd-export/export-tar.h +++ b/src/grp-machine/grp-import/systemd-export/export-tar.h @@ -25,6 +25,7 @@ #include "import-compress.h" typedef struct TarExport TarExport; + typedef void (*TarExportFinished)(TarExport *export, int error, void *userdata); int tar_export_new(TarExport **export, sd_event *event, TarExportFinished on_finished, void *userdata); diff --git a/src/grp-machine/grp-import/systemd-import/Makefile b/src/grp-machine/grp-import/systemd-import/Makefile index e117efc68a..06fd01fcd7 100644 --- a/src/grp-machine/grp-import/systemd-import/Makefile +++ b/src/grp-machine/grp-import/systemd-import/Makefile @@ -29,13 +29,7 @@ systemd_import_SOURCES = \ 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 + src/import/import-tar.h systemd_import_CFLAGS = \ $(AM_CFLAGS) \ @@ -45,6 +39,7 @@ systemd_import_CFLAGS = \ systemd_import_LDADD = \ libshared.la \ + libimport.la \ $(XZ_LIBS) \ $(ZLIB_LIBS) \ $(BZIP2_LIBS) diff --git a/src/grp-machine/grp-import/systemd-import/import-raw.c b/src/grp-machine/grp-import/systemd-import/import-raw.c index 55a6d044ab..658c912f88 100644 --- a/src/grp-machine/grp-import/systemd-import/import-raw.c +++ b/src/grp-machine/grp-import/systemd-import/import-raw.c @@ -37,11 +37,11 @@ #include "basic/rm-rf.h" #include "basic/string-util.h" #include "basic/util.h" -#include "import-common.h" -#include "import-compress.h" #include "qcow2-util.h" #include "shared/machine-pool.h" +#include "import-common.h" +#include "import-compress.h" #include "import-raw.h" struct RawImport { diff --git a/src/grp-machine/grp-import/systemd-import/import-raw.h b/src/grp-machine/grp-import/systemd-import/import-raw.h index ae7e0b017d..61ec8cc91e 100644 --- a/src/grp-machine/grp-import/systemd-import/import-raw.h +++ b/src/grp-machine/grp-import/systemd-import/import-raw.h @@ -25,6 +25,7 @@ #include "shared/import-util.h" typedef struct RawImport RawImport; + typedef void (*RawImportFinished)(RawImport *import, int error, void *userdata); int raw_import_new(RawImport **import, sd_event *event, const char *image_root, RawImportFinished on_finished, void *userdata); diff --git a/src/grp-machine/grp-import/systemd-import/import-tar.c b/src/grp-machine/grp-import/systemd-import/import-tar.c index 0d61b5f01d..f66a7e7e4c 100644 --- a/src/grp-machine/grp-import/systemd-import/import-tar.c +++ b/src/grp-machine/grp-import/systemd-import/import-tar.c @@ -37,11 +37,11 @@ #include "basic/rm-rf.h" #include "basic/string-util.h" #include "basic/util.h" -#include "import-common.h" -#include "import-compress.h" #include "qcow2-util.h" #include "shared/machine-pool.h" +#include "import-common.h" +#include "import-compress.h" #include "import-tar.h" struct TarImport { diff --git a/src/grp-machine/grp-import/systemd-import/import-tar.h b/src/grp-machine/grp-import/systemd-import/import-tar.h index b5012f1ea4..35a08fcfc5 100644 --- a/src/grp-machine/grp-import/systemd-import/import-tar.h +++ b/src/grp-machine/grp-import/systemd-import/import-tar.h @@ -25,6 +25,7 @@ #include "shared/import-util.h" typedef struct TarImport TarImport; + typedef void (*TarImportFinished)(TarImport *import, int error, void *userdata); int tar_import_new(TarImport **import, sd_event *event, const char *image_root, TarImportFinished on_finished, void *userdata); diff --git a/src/grp-machine/grp-import/systemd-importd/Makefile b/src/grp-machine/grp-import/systemd-importd/Makefile index 0070c48d05..1f5bae1267 100644 --- a/src/grp-machine/grp-import/systemd-importd/Makefile +++ b/src/grp-machine/grp-import/systemd-importd/Makefile @@ -36,4 +36,34 @@ systemd_importd_CFLAGS = \ systemd_importd_LDADD = \ libshared.la +dist_rootlibexec_DATA = \ + 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 + +polkitpolicy_in_files += \ + src/import/org.freedesktop.import1.policy.in + +EXTRA_DIST += \ + units/systemd-importd.service.in + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-machine/grp-import/systemd-pull/Makefile b/src/grp-machine/grp-import/systemd-pull/Makefile index 31a90fc90f..1ee9fa25de 100644 --- a/src/grp-machine/grp-import/systemd-pull/Makefile +++ b/src/grp-machine/grp-import/systemd-pull/Makefile @@ -34,14 +34,8 @@ systemd_pull_SOURCES = \ src/import/pull-job.h \ src/import/pull-common.c \ src/import/pull-common.h \ - src/import/import-common.c \ - src/import/import-common.h \ - src/import/import-compress.c \ - src/import/import-compress.h \ src/import/curl-util.c \ - src/import/curl-util.h \ - src/import/qcow2-util.c \ - src/import/qcow2-util.h + src/import/curl-util.h systemd_pull_CFLAGS = \ $(AM_CFLAGS) \ @@ -54,6 +48,7 @@ systemd_pull_CFLAGS = \ -D USER_KEYRING_PATH=\"$(pkgsysconfdir)/import-pubring.gpg\" systemd_pull_LDADD = \ + libimport.la \ libshared.la \ $(LIBCURL_LIBS) \ $(XZ_LIBS) \ diff --git a/src/grp-machine/grp-import/systemd-pull/pull-job.h b/src/grp-machine/grp-import/systemd-pull/pull-job.h index 296e32bd09..d8308e4046 100644 --- a/src/grp-machine/grp-import/systemd-pull/pull-job.h +++ b/src/grp-machine/grp-import/systemd-pull/pull-job.h @@ -22,11 +22,11 @@ #include <gcrypt.h> #include "basic/macro.h" -#include "import-compress.h" - #include "curl-util.h" +#include "import-compress.h" typedef struct PullJob PullJob; + typedef void (*PullJobFinished)(PullJob *job); typedef int (*PullJobOpenDisk)(PullJob *job); typedef int (*PullJobHeader)(PullJob *job, const char *header, size_t sz); diff --git a/src/grp-machine/grp-import/systemd-pull/pull-raw.c b/src/grp-machine/grp-import/systemd-pull/pull-raw.c index 9602915a1f..59257d6a0c 100644 --- a/src/grp-machine/grp-import/systemd-pull/pull-raw.c +++ b/src/grp-machine/grp-import/systemd-pull/pull-raw.c @@ -41,11 +41,11 @@ #include "basic/utf8.h" #include "basic/util.h" #include "basic/web-util.h" +#include "curl-util.h" #include "import-common.h" #include "qcow2-util.h" #include "shared/import-util.h" -#include "curl-util.h" #include "pull-common.h" #include "pull-job.h" #include "pull-raw.h" diff --git a/src/grp-machine/grp-import/systemd-pull/pull-raw.h b/src/grp-machine/grp-import/systemd-pull/pull-raw.h index 93032edf09..47ed499c12 100644 --- a/src/grp-machine/grp-import/systemd-pull/pull-raw.h +++ b/src/grp-machine/grp-import/systemd-pull/pull-raw.h @@ -25,6 +25,7 @@ #include "shared/import-util.h" typedef struct RawPull RawPull; + typedef void (*RawPullFinished)(RawPull *pull, int error, void *userdata); int raw_pull_new(RawPull **pull, sd_event *event, const char *image_root, RawPullFinished on_finished, void *userdata); diff --git a/src/grp-machine/grp-import/systemd-pull/pull-tar.c b/src/grp-machine/grp-import/systemd-pull/pull-tar.c index 121ca31dbd..e6031db0ed 100644 --- a/src/grp-machine/grp-import/systemd-pull/pull-tar.c +++ b/src/grp-machine/grp-import/systemd-pull/pull-tar.c @@ -39,10 +39,10 @@ #include "basic/utf8.h" #include "basic/util.h" #include "basic/web-util.h" +#include "curl-util.h" #include "import-common.h" #include "shared/import-util.h" -#include "curl-util.h" #include "pull-common.h" #include "pull-job.h" #include "pull-tar.h" diff --git a/src/grp-machine/grp-import/systemd-pull/pull-tar.h b/src/grp-machine/grp-import/systemd-pull/pull-tar.h index 81797fa359..a2850fee9e 100644 --- a/src/grp-machine/grp-import/systemd-pull/pull-tar.h +++ b/src/grp-machine/grp-import/systemd-pull/pull-tar.h @@ -25,6 +25,7 @@ #include "shared/import-util.h" typedef struct TarPull TarPull; + typedef void (*TarPullFinished)(TarPull *pull, int error, void *userdata); int tar_pull_new(TarPull **pull, sd_event *event, const char *image_root, TarPullFinished on_finished, void *userdata); diff --git a/src/grp-machine/systemd-machined/Makefile b/src/grp-machine/systemd-machined/Makefile index 98d7a58d92..182b52edd2 100644 --- a/src/grp-machine/systemd-machined/Makefile +++ b/src/grp-machine/systemd-machined/Makefile @@ -23,17 +23,7 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -systemd_machined_SOURCES = \ - src/machine/machined.c \ - src/machine/machined.h - -systemd_machined_LDADD = \ - libmachine-core.la - -rootlibexec_PROGRAMS += \ - systemd-machined - -libmachine_core_la_SOURCES = \ +_libmachine_core_la_SOURCES = \ src/machine/machine.c \ src/machine/machine.h \ src/machine/machined-dbus.c \ @@ -44,20 +34,18 @@ libmachine_core_la_SOURCES = \ src/machine/operation.c \ src/machine/operation.h -libmachine_core_la_LIBADD = \ - libshared.la - -noinst_LTLIBRARIES += \ - libmachine-core.la - -test_machine_tables_SOURCES = \ - src/machine/test-machine-tables.c +systemd_machined_SOURCES = \ + $(_libmachine_core_la_SOURCES) \ + src/machine/machined.c \ + src/machine/machined.h -test_machine_tables_LDADD = \ - libmachine-core.la +systemd_machined_LDADD = \ + libsystemd-internal.la \ + libshared.la \ + libbasic.la -tests += \ - test-machine-tables +rootlibexec_PROGRAMS += \ + systemd-machined nodist_systemunit_DATA += \ units/systemd-machined.service @@ -90,4 +78,11 @@ polkitpolicy_in_files += \ EXTRA_DIST += \ units/systemd-machined.service.in +test_machine_tables_SOURCES = \ + $(_libmachine_core_la_SOURCES) \ + src/machine/test-machine-tables.c + +tests += \ + test-machine-tables + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-machine/systemd-machined/machine-dbus.c b/src/grp-machine/systemd-machined/machine-dbus.c index 7b9aa66d63..95f2084455 100644 --- a/src/grp-machine/systemd-machined/machine-dbus.c +++ b/src/grp-machine/systemd-machined/machine-dbus.c @@ -28,28 +28,29 @@ #include <libgen.h> #undef basename -#include "alloc-util.h" -#include "bus-common-errors.h" -#include "bus-internal.h" -#include "bus-label.h" -#include "bus-util.h" -#include "copy.h" -#include "env-util.h" -#include "fd-util.h" -#include "fileio.h" -#include "formats-util.h" -#include "fs-util.h" -#include "in-addr-util.h" -#include "local-addresses.h" +#include "basic/alloc-util.h" +#include "basic/bus-label.h" +#include "basic/copy.h" +#include "basic/env-util.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" +#include "basic/formats-util.h" +#include "basic/fs-util.h" +#include "basic/in-addr-util.h" +#include "basic/mkdir.h" +#include "basic/path-util.h" +#include "basic/process-util.h" +#include "basic/signal-util.h" +#include "basic/strv.h" +#include "basic/terminal-util.h" +#include "basic/user-util.h" +#include "sd-bus/bus-common-errors.h" +#include "sd-bus/bus-internal.h" +#include "sd-netlink/local-addresses.h" +#include "shared/bus-util.h" + #include "machine-dbus.h" #include "machine.h" -#include "mkdir.h" -#include "path-util.h" -#include "process-util.h" -#include "signal-util.h" -#include "strv.h" -#include "terminal-util.h" -#include "user-util.h" static int property_get_id( sd_bus *bus, diff --git a/src/grp-machine/systemd-machined/machine.h b/src/grp-machine/systemd-machined/machine.h index e93f0cf222..cba0311c23 100644 --- a/src/grp-machine/systemd-machined/machine.h +++ b/src/grp-machine/systemd-machined/machine.h @@ -19,10 +19,10 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ -#include "basic/list.h" - -typedef enum KillWho KillWho; typedef struct Machine Machine; +typedef enum KillWho KillWho; + +#include "basic/list.h" #include "machined.h" #include "operation.h" diff --git a/src/grp-network/Makefile b/src/grp-network/Makefile index 7cbd9142d0..7502fcbdde 100644 --- a/src/grp-network/Makefile +++ b/src/grp-network/Makefile @@ -23,7 +23,8 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -dist_network_DATA = \ +# TODO +_dist_network_DATA = \ network/99-default.link \ network/80-container-host0.network \ network/80-container-ve.network \ @@ -65,33 +66,6 @@ tests += \ test-network \ test-network-tables -dist_systemunit_DATA += \ - units/systemd-networkd.socket - -nodist_systemunit_DATA += \ - units/systemd-networkd.service \ - units/systemd-networkd-wait-online.service - -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 - -GENERAL_ALIASES += \ - $(systemunitdir)/systemd-networkd.socket $(pkgsysconfdir)/system/sockets.target.wants/systemd-networkd.socket \ - $(systemunitdir)/systemd-networkd.service $(pkgsysconfdir)/system/multi-user.target.wants/systemd-networkd.service \ - $(systemunitdir)/systemd-networkd-wait-online.service $(pkgsysconfdir)/system/network-online.target.wants/systemd-networkd-wait-online.service - -SYSTEM_UNIT_ALIASES += \ - systemd-networkd.service dbus-org.freedesktop.network1.service - -BUSNAMES_TARGET_WANTS += \ - org.freedesktop.network1.busname - endif # ENABLE_NETWORKD gperf_gperf_sources += \ @@ -99,9 +73,12 @@ gperf_gperf_sources += \ src/network/networkd-network-gperf.gperf \ src/network/networkd-netdev-gperf.gperf -EXTRA_DIST += \ - units/systemd-networkd.service.m4.in \ - units/systemd-networkd-wait-online.service.in \ - test/networkd-test.py +dist_systempreset_DATA = \ + 90-networkd.preset + +nested.subdirs += libnetworkd-core +nested.subdirs += networkctl +nested.subdirs += systemd-networkd +nested.subdirs += systemd-networkd-wait-online include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-network/libnetworkd-core/Makefile b/src/grp-network/libnetworkd-core/Makefile index 53d65460f2..4375a4d4f3 100644 --- a/src/grp-network/libnetworkd-core/Makefile +++ b/src/grp-network/libnetworkd-core/Makefile @@ -88,6 +88,10 @@ nodist_libnetworkd_core_la_SOURCES = \ libnetworkd_core_la_LIBADD = \ libsystemd-network.la \ + libsystemd-internal.la \ + libfirewall.la \ libshared.la +sd.CPPFLAGS += -DPKGSYSCONFDIR=\"$(pkgsysconfdir)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-network/libnetworkd-core/networkd-gperf.gperf b/src/grp-network/libnetworkd-core/networkd-gperf.gperf index 3fdfe74955..e1e2a687e6 100644 --- a/src/grp-network/libnetworkd-core/networkd-gperf.gperf +++ b/src/grp-network/libnetworkd-core/networkd-gperf.gperf @@ -1,6 +1,6 @@ %{ #include <stddef.h> -#include "conf-parser.h" +#include "shared/conf-parser.h" #include "networkd-conf.h" %} struct ConfigPerfItem; diff --git a/src/grp-network/libnetworkd-core/networkd-netdev-gperf.gperf b/src/grp-network/libnetworkd-core/networkd-netdev-gperf.gperf index ba04bb0165..cfbff05578 100644 --- a/src/grp-network/libnetworkd-core/networkd-netdev-gperf.gperf +++ b/src/grp-network/libnetworkd-core/networkd-netdev-gperf.gperf @@ -1,7 +1,7 @@ %{ #include <stddef.h> -#include "conf-parser.h" -#include "network-internal.h" +#include "shared/conf-parser.h" +#include "systemd-network/network-internal.h" #include "networkd-netdev-bond.h" #include "networkd-netdev-ipvlan.h" #include "networkd-netdev-macvlan.h" diff --git a/src/grp-network/libnetworkd-core/networkd-network-gperf.gperf b/src/grp-network/libnetworkd-core/networkd-network-gperf.gperf index 03e4e3b39f..50e5d1c19e 100644 --- a/src/grp-network/libnetworkd-core/networkd-network-gperf.gperf +++ b/src/grp-network/libnetworkd-core/networkd-network-gperf.gperf @@ -1,9 +1,9 @@ %{ #include <stddef.h> -#include "conf-parser.h" +#include "shared/conf-parser.h" #include "networkd.h" #include "networkd-conf.h" -#include "network-internal.h" +#include "systemd-network/network-internal.h" %} struct ConfigPerfItem; %null_strings diff --git a/src/grp-network/systemd-networkd-wait-online/Makefile b/src/grp-network/systemd-networkd-wait-online/Makefile index 12aa13c48f..8d1870c862 100644 --- a/src/grp-network/systemd-networkd-wait-online/Makefile +++ b/src/grp-network/systemd-networkd-wait-online/Makefile @@ -41,4 +41,13 @@ systemd_networkd_wait_online_LDADD = \ libsystemd-network.la \ libshared.la +nodist_systemunit_DATA += \ + units/systemd-networkd-wait-online.service + +GENERAL_ALIASES += \ + $(systemunitdir)/systemd-networkd-wait-online.service $(pkgsysconfdir)/system/network-online.target.wants/systemd-networkd-wait-online.service + +EXTRA_DIST += \ + units/systemd-networkd-wait-online.service.in + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-network/systemd-networkd/Makefile b/src/grp-network/systemd-networkd/Makefile index 8b7e44062b..d6ef3bb91d 100644 --- a/src/grp-network/systemd-networkd/Makefile +++ b/src/grp-network/systemd-networkd/Makefile @@ -30,6 +30,7 @@ systemd_networkd_SOURCES = \ src/network/networkd.c systemd_networkd_LDADD = \ + libbasic.la \ libnetworkd-core.la ifneq ($(HAVE_LIBIPTC),) @@ -37,4 +38,33 @@ systemd_networkd_LDADD += \ libfirewall.la endif # HAVE_LIBIPTC +dist_systemunit_DATA += \ + units/systemd-networkd.socket + +nodist_systemunit_DATA += \ + units/systemd-networkd.service + +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 + +GENERAL_ALIASES += \ + $(systemunitdir)/systemd-networkd.socket $(pkgsysconfdir)/system/sockets.target.wants/systemd-networkd.socket \ + $(systemunitdir)/systemd-networkd.service $(pkgsysconfdir)/system/multi-user.target.wants/systemd-networkd.service + +SYSTEM_UNIT_ALIASES += \ + systemd-networkd.service dbus-org.freedesktop.network1.service + +BUSNAMES_TARGET_WANTS += \ + org.freedesktop.network1.busname + +EXTRA_DIST += \ + units/systemd-networkd.service.m4.in \ + test/networkd-test.py + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-network/systemd-networkd/systemd-networkd.tmpfiles b/src/grp-network/systemd-networkd/systemd-networkd.tmpfiles new file mode 100644 index 0000000000..24197555ee --- /dev/null +++ b/src/grp-network/systemd-networkd/systemd-networkd.tmpfiles @@ -0,0 +1,12 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (at your option) any later version. + +# See tmpfiles.d(5) for details + +d /run/systemd/netif 0755 systemd-network systemd-network - +d /run/systemd/netif/links 0755 systemd-network systemd-network - +d /run/systemd/netif/leases 0755 systemd-network systemd-network - diff --git a/src/grp-resolve/90-resolved.preset b/src/grp-resolve/90-resolved.preset index c5a5063cc1..6033cd7ccc 100644 --- a/src/grp-resolve/90-resolved.preset +++ b/src/grp-resolve/90-resolved.preset @@ -5,7 +5,4 @@ # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. -# These ones should be enabled by default, even if distributions -# generally follow a default-off policy. - enable systemd-resolved.service diff --git a/src/grp-resolve/Makefile b/src/grp-resolve/Makefile index ae0c5a2466..849af75af5 100644 --- a/src/grp-resolve/Makefile +++ b/src/grp-resolve/Makefile @@ -23,6 +23,10 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -at.subdirs += systemd-resolved nss-resolve +dist_systempreset_DATA = \ + 90-resolved.preset + +nested.subdirs += libbasic-dns +nested.subdirs += systemd-resolved systemd-resolve nss-resolve include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-resolve/libbasic-dns/Makefile b/src/grp-resolve/libbasic-dns/Makefile new file mode 100644 index 0000000000..3c9fe3e783 --- /dev/null +++ b/src/grp-resolve/libbasic-dns/Makefile @@ -0,0 +1,115 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +$(outdir)/dns_type-list.txt: $(srcdir)/dns-type.h + $(AM_V_GEN)$(SED) -n -r 's/.* DNS_TYPE_(\w+).*/\1/p' <$< >$@ + +$(outdir)/dns_type-to-name.h: $(outdir)/dns_type-list.txt + $(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" }' <$< >$@ + +$(outdir)/dns_type-from-name.gperf: $(outdir)/dns_type-list.txt + $(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 }' <$< >$@ + +basic_dns_sources = +libbasic_dns_la_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 + + +tests += \ + test-dns-packet \ + test-resolve-tables \ + test-dnssec + +manual_tests += \ + test-dnssec-complex + +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 + +test_resolve_tables_LDADD = \ + libbasic-dns.la \ + libshared.la + +test_dns_packet_SOURCES = \ + src/resolve/test-dns-packet.c \ + $(basic_dns_sources) + +test_dns_packet_CPPFLAGS = \ + $(AM_CPPFLAGS) \ + -DRESOLVE_TEST_DIR=\"$(abs_top_srcdir)/src/resolve/test-data\" + +test_dns_packet_LDADD = \ + libbasic-dns.la \ + libshared.la + +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 \ + src/resolve/test-data/zbyszek@fedoraproject.org.pkts \ + src/resolve/test-data/_443._tcp.fedoraproject.org.pkts \ + src/resolve/test-data/kyhwana.org.pkts \ + src/resolve/test-data/fake-caa.pkts + +test_dnssec_SOURCES = \ + src/resolve/test-dnssec.c \ + $(basic_dns_sources) + +test_dnssec_LDADD = \ + libbasic-dns.la \ + libshared.la + +test_dnssec_complex_SOURCES = \ + src/resolve/test-dnssec-complex.c \ + src/resolve/dns-type.c \ + src/resolve/dns-type.h + +test_dnssec_complex_LDADD = \ + libshared.la + +noinst_LTLIBRARIES = libbasic-dns.la +libbasic_dns_la_LIBADD = libshared.la +$(outdir)/dns-type.lo: $(outdir)/dns_type-from-name.h $(outdir)/dns_type-to-name.h + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-resolve/libbasic-dns/resolved-dns-dnssec.c b/src/grp-resolve/libbasic-dns/resolved-dns-dnssec.c index a54aed3a63..39afbada25 100644 --- a/src/grp-resolve/libbasic-dns/resolved-dns-dnssec.c +++ b/src/grp-resolve/libbasic-dns/resolved-dns-dnssec.c @@ -21,13 +21,13 @@ #include <gcrypt.h> #endif -#include "alloc-util.h" -#include "dns-domain.h" -#include "gcrypt-util.h" -#include "hexdecoct.h" +#include "basic/alloc-util.h" +#include "shared/dns-domain.h" +#include "shared/gcrypt-util.h" +#include "basic/hexdecoct.h" #include "resolved-dns-dnssec.h" #include "resolved-dns-packet.h" -#include "string-table.h" +#include "basic/string-table.h" #define VERIFY_RRS_MAX 256 #define MAX_KEY_SIZE (32*1024) diff --git a/src/grp-resolve/libbasic-dns/resolved-dns-dnssec.h b/src/grp-resolve/libbasic-dns/resolved-dns-dnssec.h index b73cc24100..81879e287f 100644 --- a/src/grp-resolve/libbasic-dns/resolved-dns-dnssec.h +++ b/src/grp-resolve/libbasic-dns/resolved-dns-dnssec.h @@ -19,11 +19,11 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ -#include "shared/dns-domain.h" - typedef enum DnssecResult DnssecResult; typedef enum DnssecVerdict DnssecVerdict; +#include "shared/dns-domain.h" + #include "resolved-dns-answer.h" #include "resolved-dns-rr.h" diff --git a/src/grp-resolve/systemd-resolve/Makefile b/src/grp-resolve/systemd-resolve/Makefile new file mode 100644 index 0000000000..46322830ac --- /dev/null +++ b/src/grp-resolve/systemd-resolve/Makefile @@ -0,0 +1,52 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +basic_dns_sources = + +systemd_resolve_SOURCES = \ + src/resolve/resolve-tool.c \ + $(basic_dns_sources) \ + src/shared/gcrypt-util.c \ + src/shared/gcrypt-util.h + +nodist_systemd_resolve_SOURCES = \ + src/resolve/dns_type-from-name.h \ + src/resolve/dns_type-to-name.h + +systemd_resolve_LDADD = \ + libshared.la + +bin_PROGRAMS += \ + systemd-resolve + +dist_bashcompletion_data += \ + shell-completion/bash/systemd-resolve + +dist_zshcompletion_data += \ + shell-completion/zsh/_systemd-resolve + +systemd_resolve_LDADD += libbasic-dns.la + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-resolve/systemd-resolve/gcrypt-util.c b/src/grp-resolve/systemd-resolve/gcrypt-util.c new file mode 120000 index 0000000000..5b2fae92e2 --- /dev/null +++ b/src/grp-resolve/systemd-resolve/gcrypt-util.c @@ -0,0 +1 @@ +../../libshared/src/gcrypt-util.c
\ No newline at end of file diff --git a/src/grp-resolve/systemd-resolve/gcrypt-util.h b/src/grp-resolve/systemd-resolve/gcrypt-util.h new file mode 120000 index 0000000000..e1ad70b84f --- /dev/null +++ b/src/grp-resolve/systemd-resolve/gcrypt-util.h @@ -0,0 +1 @@ +../../libshared/include/shared/gcrypt-util.h
\ No newline at end of file diff --git a/src/grp-resolve/systemd-resolve/resolve-tool.c b/src/grp-resolve/systemd-resolve/resolve-tool.c index dee23289b3..d9f28576b7 100644 --- a/src/grp-resolve/systemd-resolve/resolve-tool.c +++ b/src/grp-resolve/systemd-resolve/resolve-tool.c @@ -28,12 +28,13 @@ #include "basic/in-addr-util.h" #include "basic/parse-util.h" #include "basic/terminal-util.h" -#include "resolved-def.h" -#include "resolved-dns-packet.h" #include "sd-bus/bus-error.h" #include "shared/bus-util.h" #include "shared/gcrypt-util.h" +#include "resolved-def.h" +#include "resolved-dns-packet.h" + #define DNS_CALL_TIMEOUT_USEC (45*USEC_PER_SEC) static int arg_family = AF_UNSPEC; diff --git a/src/grp-resolve/systemd-resolved/Makefile b/src/grp-resolve/systemd-resolved/Makefile index e18b1b3d90..7a2cff2f2e 100644 --- a/src/grp-resolve/systemd-resolved/Makefile +++ b/src/grp-resolve/systemd-resolved/Makefile @@ -23,34 +23,7 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk - -$(outdir)/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' <$< >$@ - -$(outdir)/dns_type-to-name.h: src/resolve/dns_type-list.txt - $(AM_V_at)$(MKDIR_P) $(dir $@) - $(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" }' <$< >$@ - -$(outdir)/dns_type-from-name.gperf: src/resolve/dns_type-list.txt - $(AM_V_at)$(MKDIR_P) $(dir $@) - $(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 }' <$< >$@ - -ifneq ($(ENABLE_RESOLVED),) - -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 +basic_dns_sources = systemd_resolved_SOURCES = \ src/resolve/resolved.c \ @@ -133,87 +106,6 @@ GENERAL_ALIASES += \ nodist_pkgsysconf_DATA += \ src/resolve/resolved.conf -systemd_resolve_SOURCES = \ - src/resolve/resolve-tool.c \ - $(basic_dns_sources) \ - src/shared/gcrypt-util.c \ - src/shared/gcrypt-util.h - -nodist_systemd_resolve_SOURCES = \ - src/resolve/dns_type-from-name.h \ - src/resolve/dns_type-to-name.h - -systemd_resolve_LDADD = \ - libshared.la - -bin_PROGRAMS += \ - systemd-resolve - -dist_bashcompletion_data += \ - shell-completion/bash/systemd-resolve - -dist_zshcompletion_data += \ - shell-completion/zsh/_systemd-resolve - -tests += \ - test-dns-packet \ - test-resolve-tables \ - test-dnssec - -manual_tests += \ - test-dnssec-complex - -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 - -test_resolve_tables_LDADD = \ - libshared.la - -test_dns_packet_SOURCES = \ - src/resolve/test-dns-packet.c \ - $(basic_dns_sources) - -test_dns_packet_CPPFLAGS = \ - $(AM_CPPFLAGS) \ - -DRESOLVE_TEST_DIR=\"$(abs_top_srcdir)/src/resolve/test-data\" - -test_dns_packet_LDADD = \ - libshared.la - -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 \ - src/resolve/test-data/zbyszek@fedoraproject.org.pkts \ - src/resolve/test-data/_443._tcp.fedoraproject.org.pkts \ - src/resolve/test-data/kyhwana.org.pkts \ - src/resolve/test-data/fake-caa.pkts - -test_dnssec_SOURCES = \ - src/resolve/test-dnssec.c \ - $(basic_dns_sources) - -test_dnssec_LDADD = \ - libshared.la - -test_dnssec_complex_SOURCES = \ - src/resolve/test-dnssec-complex.c \ - src/resolve/dns-type.c \ - src/resolve/dns-type.h - -test_dnssec_complex_LDADD = \ - libshared.la - -endif # ENABLE_RESOLVED - gperf_txt_sources += \ src/resolve/dns_type-list.txt @@ -224,4 +116,8 @@ EXTRA_DIST += \ units/systemd-resolved.service.m4.in \ src/resolve/resolved.conf.in +systemd_resolved_LDADD += libbasic-dns.la + +sd.CPPFLAGS += -DPKGSYSCONFDIR=\"$(pkgsysconfdir)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-resolve/systemd-resolved/gcrypt-util.c b/src/grp-resolve/systemd-resolved/gcrypt-util.c new file mode 120000 index 0000000000..5b2fae92e2 --- /dev/null +++ b/src/grp-resolve/systemd-resolved/gcrypt-util.c @@ -0,0 +1 @@ +../../libshared/src/gcrypt-util.c
\ No newline at end of file diff --git a/src/grp-resolve/systemd-resolved/gcrypt-util.h b/src/grp-resolve/systemd-resolved/gcrypt-util.h new file mode 120000 index 0000000000..e1ad70b84f --- /dev/null +++ b/src/grp-resolve/systemd-resolved/gcrypt-util.h @@ -0,0 +1 @@ +../../libshared/include/shared/gcrypt-util.h
\ No newline at end of file diff --git a/src/grp-resolve/systemd-resolved/resolved-bus.c b/src/grp-resolve/systemd-resolved/resolved-bus.c index 1454e1f5f4..31c6999743 100644 --- a/src/grp-resolve/systemd-resolved/resolved-bus.c +++ b/src/grp-resolve/systemd-resolved/resolved-bus.c @@ -18,12 +18,12 @@ ***/ #include "basic/alloc-util.h" -#include "resolved-def.h" #include "sd-bus/bus-common-errors.h" #include "shared/bus-util.h" #include "shared/dns-domain.h" #include "resolved-bus.h" +#include "resolved-def.h" #include "resolved-dns-synthesize.h" #include "resolved-link-bus.h" diff --git a/src/grp-resolve/systemd-resolved/resolved-dns-cache.c b/src/grp-resolve/systemd-resolved/resolved-dns-cache.c index 33e0582d98..8ef2048c49 100644 --- a/src/grp-resolve/systemd-resolved/resolved-dns-cache.c +++ b/src/grp-resolve/systemd-resolved/resolved-dns-cache.c @@ -22,11 +22,11 @@ #include "basic/af-list.h" #include "basic/alloc-util.h" #include "basic/string-util.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-packet.h" #include "shared/dns-domain.h" +#include "resolved-dns-answer.h" #include "resolved-dns-cache.h" +#include "resolved-dns-packet.h" /* Never cache more than 4K entries. RFC 1536, Section 5 suggests to * leave DNS caches unbounded, but that's crazy. */ diff --git a/src/grp-resolve/systemd-resolved/resolved-dns-query.c b/src/grp-resolve/systemd-resolved/resolved-dns-query.c index 7b9282a69d..f512748f8d 100644 --- a/src/grp-resolve/systemd-resolved/resolved-dns-query.c +++ b/src/grp-resolve/systemd-resolved/resolved-dns-query.c @@ -20,10 +20,10 @@ #include "basic/alloc-util.h" #include "basic/hostname-util.h" #include "basic/string-util.h" -#include "dns-type.h" #include "sd-netlink/local-addresses.h" #include "shared/dns-domain.h" +#include "dns-type.h" #include "resolved-dns-query.h" #include "resolved-dns-synthesize.h" #include "resolved-etc-hosts.h" diff --git a/src/grp-resolve/systemd-resolved/resolved-dns-query.h b/src/grp-resolve/systemd-resolved/resolved-dns-query.h index 4a127930bd..86d861ce76 100644 --- a/src/grp-resolve/systemd-resolved/resolved-dns-query.h +++ b/src/grp-resolve/systemd-resolved/resolved-dns-query.h @@ -23,12 +23,12 @@ #include <systemd/sd-bus.h> #include "basic/set.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-question.h" typedef struct DnsQuery DnsQuery; typedef struct DnsQueryCandidate DnsQueryCandidate; +#include "resolved-dns-answer.h" +#include "resolved-dns-question.h" #include "resolved-dns-search-domain.h" #include "resolved-dns-stream.h" diff --git a/src/grp-resolve/systemd-resolved/resolved-dns-scope.h b/src/grp-resolve/systemd-resolved/resolved-dns-scope.h index af1d01f694..293e2bdf37 100644 --- a/src/grp-resolve/systemd-resolved/resolved-dns-scope.h +++ b/src/grp-resolve/systemd-resolved/resolved-dns-scope.h @@ -20,15 +20,17 @@ ***/ #include "basic/list.h" -#include "resolved-dns-dnssec.h" -#include "resolved-dns-packet.h" typedef struct DnsScope DnsScope; #include "resolved-dns-cache.h" +#include "resolved-dns-dnssec.h" +#include "resolved-dns-packet.h" #include "resolved-dns-server.h" +#include "resolved-dns-stream.h" #include "resolved-dns-zone.h" #include "resolved-link.h" +#include "resolved-manager.h" typedef enum DnsScopeMatch { DNS_SCOPE_NO, diff --git a/src/grp-resolve/systemd-resolved/resolved-dns-server.h b/src/grp-resolve/systemd-resolved/resolved-dns-server.h index 2855c97faa..bfbf692c64 100644 --- a/src/grp-resolve/systemd-resolved/resolved-dns-server.h +++ b/src/grp-resolve/systemd-resolved/resolved-dns-server.h @@ -23,16 +23,6 @@ typedef struct DnsServer DnsServer; -typedef enum DnsServerType { - DNS_SERVER_SYSTEM, - DNS_SERVER_FALLBACK, - DNS_SERVER_LINK, -} DnsServerType; -#define _DNS_SERVER_TYPE_MAX (DNS_SERVER_LINK + 1) - -const char* dns_server_type_to_string(DnsServerType i) _const_; -DnsServerType dns_server_type_from_string(const char *s) _pure_; - typedef enum DnsServerFeatureLevel { DNS_SERVER_FEATURE_LEVEL_TCP, DNS_SERVER_FEATURE_LEVEL_UDP, @@ -52,6 +42,16 @@ int dns_server_feature_level_from_string(const char *s) _pure_; #include "resolved-link.h" #include "resolved-manager.h" +typedef enum DnsServerType { + DNS_SERVER_SYSTEM, + DNS_SERVER_FALLBACK, + DNS_SERVER_LINK, +} DnsServerType; +#define _DNS_SERVER_TYPE_MAX (DNS_SERVER_LINK + 1) + +const char* dns_server_type_to_string(DnsServerType i) _const_; +DnsServerType dns_server_type_from_string(const char *s) _pure_; + struct DnsServer { Manager *manager; diff --git a/src/grp-resolve/systemd-resolved/resolved-dns-stream.h b/src/grp-resolve/systemd-resolved/resolved-dns-stream.h index e610986833..a47b2ab3ed 100644 --- a/src/grp-resolve/systemd-resolved/resolved-dns-stream.h +++ b/src/grp-resolve/systemd-resolved/resolved-dns-stream.h @@ -20,11 +20,12 @@ ***/ #include "basic/socket-util.h" -#include "resolved-dns-packet.h" typedef struct DnsStream DnsStream; +#include "resolved-dns-packet.h" #include "resolved-dns-transaction.h" +#include "resolved-manager.h" struct DnsStream { Manager *manager; diff --git a/src/grp-resolve/systemd-resolved/resolved-dns-synthesize.h b/src/grp-resolve/systemd-resolved/resolved-dns-synthesize.h index 2309105068..5d829bb2e7 100644 --- a/src/grp-resolve/systemd-resolved/resolved-dns-synthesize.h +++ b/src/grp-resolve/systemd-resolved/resolved-dns-synthesize.h @@ -21,7 +21,6 @@ #include "resolved-dns-answer.h" #include "resolved-dns-question.h" - #include "resolved-manager.h" int dns_synthesize_ifindex(int ifindex); diff --git a/src/grp-resolve/systemd-resolved/resolved-dns-transaction.h b/src/grp-resolve/systemd-resolved/resolved-dns-transaction.h index eaece91533..9783488200 100644 --- a/src/grp-resolve/systemd-resolved/resolved-dns-transaction.h +++ b/src/grp-resolve/systemd-resolved/resolved-dns-transaction.h @@ -19,6 +19,8 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <systemd/sd-event.h> + typedef struct DnsTransaction DnsTransaction; typedef enum DnsTransactionState DnsTransactionState; typedef enum DnsTransactionSource DnsTransactionSource; diff --git a/src/grp-resolve/systemd-resolved/resolved-dns-trust-anchor.c b/src/grp-resolve/systemd-resolved/resolved-dns-trust-anchor.c index c9f221d425..b7c0b08fba 100644 --- a/src/grp-resolve/systemd-resolved/resolved-dns-trust-anchor.c +++ b/src/grp-resolve/systemd-resolved/resolved-dns-trust-anchor.c @@ -29,9 +29,9 @@ #include "basic/set.h" #include "basic/string-util.h" #include "basic/strv.h" -#include "resolved-dns-dnssec.h" #include "shared/dns-domain.h" +#include "resolved-dns-dnssec.h" #include "resolved-dns-trust-anchor.h" static const char trust_anchor_dirs[] = CONF_PATHS_NULSTR("dnssec-trust-anchors.d"); diff --git a/src/grp-resolve/systemd-resolved/resolved-dns-trust-anchor.h b/src/grp-resolve/systemd-resolved/resolved-dns-trust-anchor.h index ee5cda0748..193e4a6923 100644 --- a/src/grp-resolve/systemd-resolved/resolved-dns-trust-anchor.h +++ b/src/grp-resolve/systemd-resolved/resolved-dns-trust-anchor.h @@ -20,11 +20,12 @@ ***/ #include "basic/hashmap.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-rr.h" typedef struct DnsTrustAnchor DnsTrustAnchor; +#include "resolved-dns-answer.h" +#include "resolved-dns-rr.h" + /* This contains a fixed database mapping domain names to DS or DNSKEY records. */ struct DnsTrustAnchor { diff --git a/src/grp-resolve/systemd-resolved/resolved-dns-zone.c b/src/grp-resolve/systemd-resolved/resolved-dns-zone.c index 3d5bc9ea82..192811fc17 100644 --- a/src/grp-resolve/systemd-resolved/resolved-dns-zone.c +++ b/src/grp-resolve/systemd-resolved/resolved-dns-zone.c @@ -20,9 +20,9 @@ #include "basic/alloc-util.h" #include "basic/list.h" #include "basic/string-util.h" -#include "resolved-dns-packet.h" #include "shared/dns-domain.h" +#include "resolved-dns-packet.h" #include "resolved-dns-zone.h" /* Never allow more than 1K entries */ diff --git a/src/grp-resolve/systemd-resolved/resolved-etc-hosts.h b/src/grp-resolve/systemd-resolved/resolved-etc-hosts.h index e68d87417e..047443a896 100644 --- a/src/grp-resolve/systemd-resolved/resolved-etc-hosts.h +++ b/src/grp-resolve/systemd-resolved/resolved-etc-hosts.h @@ -21,7 +21,6 @@ #include "resolved-dns-answer.h" #include "resolved-dns-question.h" - #include "resolved-manager.h" void manager_etc_hosts_flush(Manager *m); diff --git a/src/grp-resolve/systemd-resolved/resolved-gperf.gperf b/src/grp-resolve/systemd-resolved/resolved-gperf.gperf index 82f26215df..5d1c209c35 100644 --- a/src/grp-resolve/systemd-resolved/resolved-gperf.gperf +++ b/src/grp-resolve/systemd-resolved/resolved-gperf.gperf @@ -1,6 +1,6 @@ %{ #include <stddef.h> -#include "conf-parser.h" +#include "shared/conf-parser.h" #include "resolved-conf.h" %} struct ConfigPerfItem; diff --git a/src/grp-resolve/systemd-resolved/resolved-link.h b/src/grp-resolve/systemd-resolved/resolved-link.h index 53a5f597ef..8aa270cfd6 100644 --- a/src/grp-resolve/systemd-resolved/resolved-link.h +++ b/src/grp-resolve/systemd-resolved/resolved-link.h @@ -23,12 +23,13 @@ #include "basic/in-addr-util.h" #include "basic/ratelimit.h" -#include "resolved-dns-rr.h" #include "shared/resolve-util.h" typedef struct Link Link; typedef struct LinkAddress LinkAddress; +#include "resolved-dns-rr.h" +#include "resolved-dns-scope.h" #include "resolved-dns-search-domain.h" #include "resolved-dns-server.h" #include "resolved-manager.h" diff --git a/src/grp-resolve/systemd-resolved/resolved-manager.c b/src/grp-resolve/systemd-resolved/resolved-manager.c index b82c2569bf..a326823c3a 100644 --- a/src/grp-resolve/systemd-resolved/resolved-manager.c +++ b/src/grp-resolve/systemd-resolved/resolved-manager.c @@ -34,7 +34,6 @@ #include "basic/string-table.h" #include "basic/string-util.h" #include "basic/utf8.h" -#include "sd-netlink/netlink-util.h" #include "shared/dns-domain.h" #include "systemd-network/network-internal.h" diff --git a/src/grp-system/Makefile b/src/grp-system/Makefile index ea8b031596..d97f45afcd 100644 --- a/src/grp-system/Makefile +++ b/src/grp-system/Makefile @@ -23,6 +23,11 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -at.subdirs += systemctl systemd +dist_systempreset_DATA = \ + 90-systemd.preset + +nested.subdirs += systemctl systemd systemd-shutdown +nested.subdirs += libcore +nested.subdirs += grp-utils include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-system/grp-utils/Makefile b/src/grp-system/grp-utils/Makefile new file mode 100644 index 0000000000..2c8cc75a7c --- /dev/null +++ b/src/grp-system/grp-utils/Makefile @@ -0,0 +1,32 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +nested.subdirs += systemd-analyze +nested.subdirs += systemd-delta +nested.subdirs += systemd-fstab-generator +nested.subdirs += systemd-run +nested.subdirs += systemd-sysv-generator + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-system/grp-utils/systemd-fstab-generator/fstab-generator.c b/src/grp-system/grp-utils/systemd-fstab-generator/fstab-generator.c index 307941bb95..49c8487935 100644 --- a/src/grp-system/grp-utils/systemd-fstab-generator/fstab-generator.c +++ b/src/grp-system/grp-utils/systemd-fstab-generator/fstab-generator.c @@ -39,10 +39,11 @@ #include "basic/unit-name.h" #include "basic/util.h" #include "basic/virt.h" -#include "mount-setup.h" #include "shared/fstab-util.h" #include "shared/generator.h" +#include "mount-setup.h" + static const char *arg_dest = "/tmp"; static bool arg_fstab_enabled = true; static char *arg_root_what = NULL; diff --git a/src/grp-system/grp-utils/systemd-fstab-generator/mount-setup.c b/src/grp-system/grp-utils/systemd-fstab-generator/mount-setup.c new file mode 120000 index 0000000000..7f7ff15b46 --- /dev/null +++ b/src/grp-system/grp-utils/systemd-fstab-generator/mount-setup.c @@ -0,0 +1 @@ +../../libcore/mount-setup.c
\ No newline at end of file diff --git a/src/grp-system/grp-utils/systemd-fstab-generator/mount-setup.h b/src/grp-system/grp-utils/systemd-fstab-generator/mount-setup.h new file mode 120000 index 0000000000..50721d8bfc --- /dev/null +++ b/src/grp-system/grp-utils/systemd-fstab-generator/mount-setup.h @@ -0,0 +1 @@ +../../libcore/mount-setup.h
\ No newline at end of file diff --git a/src/grp-system/grp-utils/systemd-sysv-generator/Makefile b/src/grp-system/grp-utils/systemd-sysv-generator/Makefile index 10dd75abc6..dfb065af90 100644 --- a/src/grp-system/grp-utils/systemd-sysv-generator/Makefile +++ b/src/grp-system/grp-utils/systemd-sysv-generator/Makefile @@ -29,4 +29,10 @@ systemd_sysv_generator_SOURCES = \ systemd_sysv_generator_LDADD = \ libcore.la +sysvinit_DATA = \ + docs/sysvinit/README + +EXTRA_DIST += \ + docs/sysvinit/README.in \ + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-system/libcore/Makefile b/src/grp-system/libcore/Makefile index cbf4916c13..1f19355412 100644 --- a/src/grp-system/libcore/Makefile +++ b/src/grp-system/libcore/Makefile @@ -163,8 +163,13 @@ libcore_la_LIBADD = \ $(APPARMOR_LIBS) \ $(MOUNT_LIBS) -$(outdir)/load-fragment-gperf-nulstr.c: src/core/load-fragment-gperf.gperf - $(AM_V_at)$(MKDIR_P) $(dir $@) +$(outdir)/load-fragment-gperf-nulstr.c: $(outdir)/load-fragment-gperf.gperf $(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 ";" }' < $< > $@ +sd.CPPFLAGS += -I$(topsrcdir)/src/libudev/src +sd.CPPFLAGS += -DMOUNT_PATH=\"$(MOUNT_PATH)\" +sd.CPPFLAGS += -DUMOUNT_PATH=\"$(UMOUNT_PATH)\" +sd.CPPFLAGS += -DSYSTEMD_CGROUP_AGENT_PATH=\"$(libexecdir)/systemd-cgroups-agent\" +sd.CPPFLAGS += -DSYSTEMD_BINARY_PATH=\"$(libexecdir)/systemd\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-system/libcore/audit-fd.c b/src/grp-system/libcore/audit-fd.c index 76afe3fe15..8ea525eda3 100644 --- a/src/grp-system/libcore/audit-fd.c +++ b/src/grp-system/libcore/audit-fd.c @@ -27,9 +27,9 @@ #include <libaudit.h> #include <stdbool.h> -#include "fd-util.h" -#include "log.h" -#include "util.h" +#include "basic/fd-util.h" +#include "basic/log.h" +#include "basic/util.h" static bool initialized = false; static int audit_fd; diff --git a/src/grp-system/libcore/busname.h b/src/grp-system/libcore/busname.h index aa7f0ecb1b..95a356bddc 100644 --- a/src/grp-system/libcore/busname.h +++ b/src/grp-system/libcore/busname.h @@ -20,7 +20,6 @@ ***/ typedef struct BusName BusName; -typedef struct BusNamePolicy BusNamePolicy; #include "bus-policy.h" #include "unit.h" diff --git a/src/grp-system/libcore/cgroup.h b/src/grp-system/libcore/cgroup.h index abc780b5d5..36699fb21b 100644 --- a/src/grp-system/libcore/cgroup.h +++ b/src/grp-system/libcore/cgroup.h @@ -115,7 +115,6 @@ struct CGroupContext { bool delegate; }; -#include "cgroup-util.h" #include "unit.h" void cgroup_context_init(CGroupContext *c); diff --git a/src/grp-system/libcore/dbus-automount.h b/src/grp-system/libcore/dbus-automount.h index 7b51eb973a..d1168c8188 100644 --- a/src/grp-system/libcore/dbus-automount.h +++ b/src/grp-system/libcore/dbus-automount.h @@ -19,5 +19,6 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <systemd/sd-bus.h> extern const sd_bus_vtable bus_automount_vtable[]; diff --git a/src/grp-system/libcore/dbus-busname.h b/src/grp-system/libcore/dbus-busname.h index 8643d1a404..c6aa90a424 100644 --- a/src/grp-system/libcore/dbus-busname.h +++ b/src/grp-system/libcore/dbus-busname.h @@ -19,5 +19,6 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <systemd/sd-bus.h> extern const sd_bus_vtable bus_busname_vtable[]; diff --git a/src/grp-system/libcore/dbus-execute.c b/src/grp-system/libcore/dbus-execute.c index 06943c6365..b5530d945e 100644 --- a/src/grp-system/libcore/dbus-execute.c +++ b/src/grp-system/libcore/dbus-execute.c @@ -23,28 +23,28 @@ #include <seccomp.h> #endif -#include "af-list.h" -#include "alloc-util.h" -#include "bus-util.h" -#include "capability-util.h" +#include "basic/af-list.h" +#include "basic/alloc-util.h" +#include "shared/bus-util.h" +#include "basic/capability-util.h" #include "dbus-execute.h" -#include "env-util.h" +#include "basic/env-util.h" #include "execute.h" -#include "fd-util.h" -#include "fileio.h" -#include "ioprio.h" -#include "missing.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" +#include "basic/ioprio.h" +#include "basic/missing.h" #include "namespace.h" -#include "parse-util.h" -#include "path-util.h" -#include "process-util.h" -#include "rlimit-util.h" +#include "basic/parse-util.h" +#include "basic/path-util.h" +#include "basic/process-util.h" +#include "basic/rlimit-util.h" #ifdef HAVE_SECCOMP -#include "seccomp-util.h" +#include "shared/seccomp-util.h" #endif -#include "strv.h" -#include "syslog-util.h" -#include "utf8.h" +#include "basic/strv.h" +#include "basic/syslog-util.h" +#include "basic/utf8.h" BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput); diff --git a/src/grp-system/libcore/dbus-path.h b/src/grp-system/libcore/dbus-path.h index d3c19e0c2b..f24b1d5d3d 100644 --- a/src/grp-system/libcore/dbus-path.h +++ b/src/grp-system/libcore/dbus-path.h @@ -19,6 +19,6 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ - +#include <systemd/sd-bus.h> extern const sd_bus_vtable bus_path_vtable[]; diff --git a/src/grp-system/libcore/device.h b/src/grp-system/libcore/device.h index 184a1a349b..60d5122966 100644 --- a/src/grp-system/libcore/device.h +++ b/src/grp-system/libcore/device.h @@ -21,6 +21,8 @@ typedef struct Device Device; +#include "unit.h" + typedef enum DeviceFound { DEVICE_NOT_FOUND = 0, DEVICE_FOUND_UDEV = 1, diff --git a/src/grp-system/libcore/execute.c b/src/grp-system/libcore/execute.c index 5eb3f13695..e7628bceb3 100644 --- a/src/grp-system/libcore/execute.c +++ b/src/grp-system/libcore/execute.c @@ -49,55 +49,55 @@ #include <sys/apparmor.h> #endif -#include "sd-messages.h" +#include <systemd/sd-messages.h> -#include "af-list.h" -#include "alloc-util.h" +#include "basic/af-list.h" +#include "basic/alloc-util.h" #ifdef HAVE_APPARMOR -#include "apparmor-util.h" +#include "shared/apparmor-util.h" #endif -#include "async.h" -#include "barrier.h" -#include "cap-list.h" -#include "capability-util.h" -#include "def.h" -#include "env-util.h" -#include "errno-list.h" +#include "basic/async.h" +#include "basic/barrier.h" +#include "basic/cap-list.h" +#include "basic/capability-util.h" +#include "basic/def.h" +#include "basic/env-util.h" +#include "basic/errno-list.h" #include "execute.h" -#include "exit-status.h" -#include "fd-util.h" -#include "fileio.h" -#include "formats-util.h" -#include "fs-util.h" -#include "glob-util.h" -#include "io-util.h" -#include "ioprio.h" -#include "log.h" -#include "macro.h" -#include "missing.h" -#include "mkdir.h" +#include "basic/exit-status.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" +#include "basic/formats-util.h" +#include "basic/fs-util.h" +#include "basic/glob-util.h" +#include "basic/io-util.h" +#include "basic/ioprio.h" +#include "basic/log.h" +#include "basic/macro.h" +#include "basic/missing.h" +#include "basic/mkdir.h" #include "namespace.h" -#include "parse-util.h" -#include "path-util.h" -#include "process-util.h" -#include "rlimit-util.h" -#include "rm-rf.h" +#include "basic/parse-util.h" +#include "basic/path-util.h" +#include "basic/process-util.h" +#include "basic/rlimit-util.h" +#include "basic/rm-rf.h" #ifdef HAVE_SECCOMP -#include "seccomp-util.h" +#include "shared/seccomp-util.h" #endif -#include "securebits.h" -#include "selinux-util.h" -#include "signal-util.h" -#include "smack-util.h" -#include "string-table.h" -#include "string-util.h" -#include "strv.h" -#include "syslog-util.h" -#include "terminal-util.h" +#include "basic/securebits.h" +#include "basic/selinux-util.h" +#include "basic/signal-util.h" +#include "basic/smack-util.h" +#include "basic/string-table.h" +#include "basic/string-util.h" +#include "basic/strv.h" +#include "basic/syslog-util.h" +#include "basic/terminal-util.h" #include "unit.h" -#include "user-util.h" -#include "util.h" -#include "utmp-wtmp.h" +#include "basic/user-util.h" +#include "basic/util.h" +#include "shared/utmp-wtmp.h" #define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC) #define IDLE_TIMEOUT2_USEC (1*USEC_PER_SEC) diff --git a/src/grp-system/libcore/execute.h b/src/grp-system/libcore/execute.h index 68560271d4..73292dd086 100644 --- a/src/grp-system/libcore/execute.h +++ b/src/grp-system/libcore/execute.h @@ -200,7 +200,7 @@ struct ExecContext { bool no_new_privileges_set:1; }; -#include "cgroup-util.h" +#include "basic/cgroup-util.h" #include "cgroup.h" struct ExecParameters { diff --git a/src/grp-system/libcore/killall.h b/src/grp-system/libcore/killall.h index acc2439f00..bbb101c863 100644 --- a/src/grp-system/libcore/killall.h +++ b/src/grp-system/libcore/killall.h @@ -19,4 +19,6 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <stdbool.h> + void broadcast_signal(int sig, bool wait_for_exit, bool send_sighup); diff --git a/src/grp-system/libcore/kmod-setup.c b/src/grp-system/libcore/kmod-setup.c index 3503db52ed..6ddf1137ec 100644 --- a/src/grp-system/libcore/kmod-setup.c +++ b/src/grp-system/libcore/kmod-setup.c @@ -24,10 +24,10 @@ #include <libkmod.h> #endif -#include "bus-util.h" -#include "capability-util.h" +#include "shared/bus-util.h" +#include "basic/capability-util.h" #include "kmod-setup.h" -#include "macro.h" +#include "basic/macro.h" #ifdef HAVE_KMOD static void systemd_kmod_log( diff --git a/src/grp-system/libcore/load-fragment-gperf.gperf.m4 b/src/grp-system/libcore/load-fragment-gperf.gperf.m4 index 8193418980..c9f6e6acf7 100644 --- a/src/grp-system/libcore/load-fragment-gperf.gperf.m4 +++ b/src/grp-system/libcore/load-fragment-gperf.gperf.m4 @@ -1,8 +1,8 @@ %{ #include <stddef.h> -#include "conf-parser.h" +#include "shared/conf-parser.h" #include "load-fragment.h" -#include "missing.h" +#include "basic/missing.h" %} struct ConfigPerfItem; %null_strings diff --git a/src/grp-system/libcore/load-fragment.c b/src/grp-system/libcore/load-fragment.c index f01c72568b..0f17dc85c2 100644 --- a/src/grp-system/libcore/load-fragment.c +++ b/src/grp-system/libcore/load-fragment.c @@ -31,42 +31,42 @@ #include <sys/resource.h> #include <sys/stat.h> -#include "af-list.h" -#include "alloc-util.h" -#include "bus-error.h" -#include "bus-internal.h" -#include "bus-util.h" -#include "cap-list.h" -#include "capability-util.h" +#include "basic/af-list.h" +#include "basic/alloc-util.h" +#include "sd-bus/bus-error.h" +#include "sd-bus/bus-internal.h" +#include "shared/bus-util.h" +#include "basic/cap-list.h" +#include "basic/capability-util.h" #include "cgroup.h" -#include "conf-parser.h" -#include "cpu-set-util.h" -#include "env-util.h" -#include "errno-list.h" -#include "escape.h" -#include "fd-util.h" -#include "fs-util.h" -#include "ioprio.h" +#include "shared/conf-parser.h" +#include "basic/cpu-set-util.h" +#include "basic/env-util.h" +#include "basic/errno-list.h" +#include "basic/escape.h" +#include "basic/fd-util.h" +#include "basic/fs-util.h" +#include "basic/ioprio.h" #include "load-fragment.h" -#include "log.h" -#include "missing.h" -#include "parse-util.h" -#include "path-util.h" -#include "process-util.h" -#include "rlimit-util.h" +#include "basic/log.h" +#include "basic/missing.h" +#include "basic/parse-util.h" +#include "basic/path-util.h" +#include "basic/process-util.h" +#include "basic/rlimit-util.h" #ifdef HAVE_SECCOMP -#include "seccomp-util.h" +#include "shared/seccomp-util.h" #endif -#include "securebits.h" -#include "signal-util.h" -#include "stat-util.h" -#include "string-util.h" -#include "strv.h" -#include "unit-name.h" +#include "basic/securebits.h" +#include "basic/signal-util.h" +#include "basic/stat-util.h" +#include "basic/string-util.h" +#include "basic/strv.h" +#include "basic/unit-name.h" #include "unit-printf.h" #include "unit.h" -#include "utf8.h" -#include "web-util.h" +#include "basic/utf8.h" +#include "basic/web-util.h" int config_parse_warn_compat( const char *unit, diff --git a/src/grp-system/libcore/loopback-setup.c b/src/grp-system/libcore/loopback-setup.c index d5b65bca9c..f92e346f8c 100644 --- a/src/grp-system/libcore/loopback-setup.c +++ b/src/grp-system/libcore/loopback-setup.c @@ -21,7 +21,6 @@ #include <stdlib.h> #include "basic/missing.h" -#include "sd-netlink/netlink-util.h" #include "sd-netlink/sd-netlink.h" #include "loopback-setup.h" diff --git a/src/grp-system/libcore/machine-id-setup.h b/src/grp-system/libcore/machine-id-setup.h index a7e7678ed9..c5dd8d7790 100644 --- a/src/grp-system/libcore/machine-id-setup.h +++ b/src/grp-system/libcore/machine-id-setup.h @@ -19,5 +19,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <systemd/sd-id128.h> + int machine_id_commit(const char *root); int machine_id_setup(const char *root, sd_id128_t machine_id); diff --git a/src/grp-system/libcore/manager.c b/src/grp-system/libcore/manager.c index ada22f52fd..2637296c9b 100644 --- a/src/grp-system/libcore/manager.c +++ b/src/grp-system/libcore/manager.c @@ -36,56 +36,56 @@ #include <libaudit.h> #endif -#include "sd-daemon.h" -#include "sd-messages.h" +#include <systemd/sd-daemon.h> +#include <systemd/sd-messages.h> -#include "alloc-util.h" +#include "basic/alloc-util.h" #include "audit-fd.h" -#include "boot-timestamps.h" -#include "bus-common-errors.h" -#include "bus-error.h" -#include "bus-kernel.h" -#include "bus-util.h" +#include "shared/boot-timestamps.h" +#include "sd-bus/bus-common-errors.h" +#include "sd-bus/bus-error.h" +#include "sd-bus/bus-kernel.h" +#include "shared/bus-util.h" #include "dbus-job.h" #include "dbus-manager.h" #include "dbus-unit.h" #include "dbus.h" -#include "dirent-util.h" -#include "env-util.h" -#include "escape.h" -#include "exit-status.h" -#include "fd-util.h" -#include "fileio.h" -#include "fs-util.h" -#include "hashmap.h" -#include "io-util.h" +#include "basic/dirent-util.h" +#include "basic/env-util.h" +#include "basic/escape.h" +#include "basic/exit-status.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" +#include "basic/fs-util.h" +#include "basic/hashmap.h" +#include "basic/io-util.h" #include "locale-setup.h" -#include "log.h" -#include "macro.h" +#include "basic/log.h" +#include "basic/macro.h" #include "manager.h" -#include "missing.h" -#include "mkdir.h" -#include "mkdir.h" -#include "parse-util.h" -#include "path-lookup.h" -#include "path-util.h" -#include "process-util.h" -#include "ratelimit.h" -#include "rm-rf.h" -#include "signal-util.h" -#include "special.h" -#include "stat-util.h" -#include "string-table.h" -#include "string-util.h" -#include "strv.h" -#include "terminal-util.h" -#include "time-util.h" +#include "basic/missing.h" +#include "basic/mkdir.h" +#include "basic/mkdir.h" +#include "basic/parse-util.h" +#include "shared/path-lookup.h" +#include "basic/path-util.h" +#include "basic/process-util.h" +#include "basic/ratelimit.h" +#include "basic/rm-rf.h" +#include "basic/signal-util.h" +#include "basic/special.h" +#include "basic/stat-util.h" +#include "basic/string-table.h" +#include "basic/string-util.h" +#include "basic/strv.h" +#include "basic/terminal-util.h" +#include "basic/time-util.h" #include "transaction.h" -#include "umask-util.h" -#include "unit-name.h" -#include "util.h" -#include "virt.h" -#include "watchdog.h" +#include "basic/umask-util.h" +#include "basic/unit-name.h" +#include "basic/util.h" +#include "basic/virt.h" +#include "shared/watchdog.h" #define NOTIFY_RCVBUF_SIZE (8*1024*1024) #define CGROUPS_AGENT_RCVBUF_SIZE (8*1024*1024) diff --git a/src/grp-system/libcore/manager.h b/src/grp-system/libcore/manager.h index 1e99f1e1b6..87186b6e40 100644 --- a/src/grp-system/libcore/manager.h +++ b/src/grp-system/libcore/manager.h @@ -70,9 +70,9 @@ typedef enum StatusType { #include "execute.h" #include "job.h" -#include "path-lookup.h" +#include "shared/path-lookup.h" #include "show-status.h" -#include "unit-name.h" +#include "basic/unit-name.h" struct Manager { /* Note that the set of units we know of is allowed to be diff --git a/src/grp-system/libcore/scope.h b/src/grp-system/libcore/scope.h index 2dc86325c5..f0cb3bd3e2 100644 --- a/src/grp-system/libcore/scope.h +++ b/src/grp-system/libcore/scope.h @@ -22,6 +22,7 @@ typedef struct Scope Scope; #include "kill.h" +#include "unit.h" typedef enum ScopeResult { SCOPE_SUCCESS, diff --git a/src/grp-system/libcore/selinux-access.c b/src/grp-system/libcore/selinux-access.c index cc287d602d..a259e128c1 100644 --- a/src/grp-system/libcore/selinux-access.c +++ b/src/grp-system/libcore/selinux-access.c @@ -29,17 +29,17 @@ #include <libaudit.h> #endif -#include "sd-bus.h" +#include <systemd/sd-bus.h> -#include "alloc-util.h" +#include "basic/alloc-util.h" #include "audit-fd.h" -#include "bus-util.h" -#include "log.h" -#include "path-util.h" -#include "selinux-util.h" -#include "stdio-util.h" -#include "strv.h" -#include "util.h" +#include "shared/bus-util.h" +#include "basic/log.h" +#include "basic/path-util.h" +#include "basic/selinux-util.h" +#include "basic/stdio-util.h" +#include "basic/strv.h" +#include "basic/util.h" static bool initialized = false; diff --git a/src/grp-system/libcore/selinux-setup.c b/src/grp-system/libcore/selinux-setup.c index 4072df58e6..37a143bce4 100644 --- a/src/grp-system/libcore/selinux-setup.c +++ b/src/grp-system/libcore/selinux-setup.c @@ -25,12 +25,12 @@ #include <selinux/selinux.h> #endif -#include "log.h" -#include "macro.h" +#include "basic/log.h" +#include "basic/macro.h" #include "selinux-setup.h" -#include "selinux-util.h" -#include "string-util.h" -#include "util.h" +#include "basic/selinux-util.h" +#include "basic/string-util.h" +#include "basic/util.h" #ifdef HAVE_SELINUX _printf_(2,3) diff --git a/src/grp-system/libcore/service.h b/src/grp-system/libcore/service.h index ba9086d8cd..aa7d1de8b6 100644 --- a/src/grp-system/libcore/service.h +++ b/src/grp-system/libcore/service.h @@ -27,6 +27,7 @@ typedef struct ServiceFDStore ServiceFDStore; #include "kill.h" #include "path.h" +#include "socket.h" typedef enum ServiceRestart { SERVICE_RESTART_NO, @@ -199,7 +200,7 @@ struct Service { extern const UnitVTable service_vtable; -int service_set_socket_fd(Service *s, int fd, struct Socket *socket, bool selinux_context_net); +int service_set_socket_fd(Service *s, int fd, Socket *socket, bool selinux_context_net); void service_close_socket_fd(Service *s); const char* service_restart_to_string(ServiceRestart i) _const_; diff --git a/src/grp-system/libcore/slice.h b/src/grp-system/libcore/slice.h index c9f3f61067..71e05a4d6a 100644 --- a/src/grp-system/libcore/slice.h +++ b/src/grp-system/libcore/slice.h @@ -21,6 +21,8 @@ typedef struct Slice Slice; +#include "unit.h" + struct Slice { Unit meta; diff --git a/src/grp-system/libcore/smack-setup.h b/src/grp-system/libcore/smack-setup.h index 78164c85e6..f8c62ce067 100644 --- a/src/grp-system/libcore/smack-setup.h +++ b/src/grp-system/libcore/smack-setup.h @@ -21,4 +21,6 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <stdbool.h> + int mac_smack_setup(bool *loaded_policy); diff --git a/src/grp-system/libcore/socket.h b/src/grp-system/libcore/socket.h index 3b214946e0..232d653fbe 100644 --- a/src/grp-system/libcore/socket.h +++ b/src/grp-system/libcore/socket.h @@ -23,7 +23,6 @@ typedef struct Socket Socket; -#include "mount.h" #include "service.h" typedef enum SocketExecCommand { diff --git a/src/grp-system/libcore/swap.h b/src/grp-system/libcore/swap.h index c2cbfc5d2a..52e22e22e8 100644 --- a/src/grp-system/libcore/swap.h +++ b/src/grp-system/libcore/swap.h @@ -24,6 +24,8 @@ typedef struct Swap Swap; +#include "unit.h" + typedef enum SwapExecCommand { SWAP_EXEC_ACTIVATE, SWAP_EXEC_DEACTIVATE, diff --git a/src/grp-system/libcore/target.c b/src/grp-system/libcore/target.c index e62a49be84..74af0ced0c 100644 --- a/src/grp-system/libcore/target.c +++ b/src/grp-system/libcore/target.c @@ -23,7 +23,6 @@ #include "basic/unit-name.h" #include "dbus-target.h" -#include "target.h" #include "unit.h" static const UnitActiveState state_translation_table[_TARGET_STATE_MAX] = { diff --git a/src/grp-system/libcore/target.h b/src/grp-system/libcore/target.h index 339aea154e..406b80019c 100644 --- a/src/grp-system/libcore/target.h +++ b/src/grp-system/libcore/target.h @@ -21,6 +21,8 @@ typedef struct Target Target; +#include "unit.h" + struct Target { Unit meta; diff --git a/src/grp-system/libcore/timer.h b/src/grp-system/libcore/timer.h index 99b47c3880..710ef126f0 100644 --- a/src/grp-system/libcore/timer.h +++ b/src/grp-system/libcore/timer.h @@ -23,6 +23,8 @@ typedef struct Timer Timer; +#include "unit.h" + typedef enum TimerBase { TIMER_ACTIVE, TIMER_BOOT, diff --git a/src/grp-system/libcore/unit.h b/src/grp-system/libcore/unit.h index 9321537fe6..72ceed1fef 100644 --- a/src/grp-system/libcore/unit.h +++ b/src/grp-system/libcore/unit.h @@ -259,8 +259,10 @@ typedef enum UnitSetPropertiesMode { #include "automount.h" #include "busname.h" #include "device.h" +#include "mount.h" #include "path.h" #include "scope.h" +#include "service.h" #include "slice.h" #include "socket.h" #include "swap.h" diff --git a/src/grp-system/systemctl/.gitignore b/src/grp-system/systemctl/.gitignore index ebd59d3c9e..89c7427edd 100644 --- a/src/grp-system/systemctl/.gitignore +++ b/src/grp-system/systemctl/.gitignore @@ -1,2 +1,2 @@ -/systemctl -/_systemctl +/systemctl.completion.bash +/systemctl.completion.zsh diff --git a/src/grp-system/systemctl/Makefile b/src/grp-system/systemctl/Makefile index 24585cc12b..114e58cb27 100644 --- a/src/grp-system/systemctl/Makefile +++ b/src/grp-system/systemctl/Makefile @@ -30,4 +30,12 @@ systemctl_SOURCES = \ systemctl_LDADD = \ libshared.la +files.out.all += systemctl.completion.bash +files.out.all += systemctl.completion.zsh +sd.sed_files += systemctl.completion.bash +sd.sed_files += systemctl.completion.zsh +sd.CPPFLAGS += -DROOTLIBEXECDIR=\"$(rootlibexecdir)\" +sd.CPPFLAGS += -DSYSTEM_SYSVINIT_PATH=\"$(SYSTEM_SYSVINIT_PATH)\" +sd.CPPFLAGS += -DSYSTEMD_BINARY_PATH=\"$(rootlibexecdir)/systemd\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-system/systemd-shutdown/Makefile b/src/grp-system/systemd-shutdown/Makefile index 87cffd19f3..257a057823 100644 --- a/src/grp-system/systemd-shutdown/Makefile +++ b/src/grp-system/systemd-shutdown/Makefile @@ -36,4 +36,7 @@ systemd_shutdown_SOURCES = \ systemd_shutdown_LDADD = \ libshared.la +sd.CPPFLAGS += -DSYSTEM_SHUTDOWN_PATH=\"$(systemshutdowndir)\" +sd.CPPFLAGS += -DKEXEC=\"$(KEXEC)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-system/systemd-shutdown/killall.c b/src/grp-system/systemd-shutdown/killall.c new file mode 120000 index 0000000000..5ddb36306b --- /dev/null +++ b/src/grp-system/systemd-shutdown/killall.c @@ -0,0 +1 @@ +../libcore/killall.c
\ No newline at end of file diff --git a/src/grp-system/systemd-shutdown/killall.h b/src/grp-system/systemd-shutdown/killall.h new file mode 120000 index 0000000000..60b334fe91 --- /dev/null +++ b/src/grp-system/systemd-shutdown/killall.h @@ -0,0 +1 @@ +../libcore/killall.h
\ No newline at end of file diff --git a/src/grp-system/systemd-shutdown/mount-setup.c b/src/grp-system/systemd-shutdown/mount-setup.c new file mode 120000 index 0000000000..a4ab487157 --- /dev/null +++ b/src/grp-system/systemd-shutdown/mount-setup.c @@ -0,0 +1 @@ +../libcore/mount-setup.c
\ No newline at end of file diff --git a/src/grp-system/systemd-shutdown/mount-setup.h b/src/grp-system/systemd-shutdown/mount-setup.h new file mode 120000 index 0000000000..1f984851f8 --- /dev/null +++ b/src/grp-system/systemd-shutdown/mount-setup.h @@ -0,0 +1 @@ +../libcore/mount-setup.h
\ No newline at end of file diff --git a/src/grp-system/systemd-shutdown/shutdown.c b/src/grp-system/systemd-shutdown/shutdown.c index 516128e2d1..bf74b5ec99 100644 --- a/src/grp-system/systemd-shutdown/shutdown.c +++ b/src/grp-system/systemd-shutdown/shutdown.c @@ -42,10 +42,10 @@ #include "basic/terminal-util.h" #include "basic/util.h" #include "basic/virt.h" -#include "killall.h" #include "shared/switch-root.h" #include "shared/watchdog.h" +#include "killall.h" #include "umount.h" #define FINALIZE_ATTEMPTS 50 diff --git a/src/grp-system/systemd-shutdown/systemd-shutdown.xml b/src/grp-system/systemd-shutdown/systemd-shutdown.xml index c94e2a1820..749158e5da 100644 --- a/src/grp-system/systemd-shutdown/systemd-shutdown.xml +++ b/src/grp-system/systemd-shutdown/systemd-shutdown.xml @@ -21,10 +21,10 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="systemd-halt.service"> +<refentry id="systemd-shutdown"> <refentryinfo> - <title>systemd-halt.service</title> + <title>systemd-shutdown</title> <productname>systemd</productname> <authorgroup> @@ -38,7 +38,7 @@ </refentryinfo> <refmeta> - <refentrytitle>systemd-halt.service</refentrytitle> + <refentrytitle>systemd-shutdown</refentrytitle> <manvolnum>8</manvolnum> </refmeta> diff --git a/src/grp-system/systemd-shutdown/umount.c b/src/grp-system/systemd-shutdown/umount.c index 3e756ec7fb..0079f8ec78 100644 --- a/src/grp-system/systemd-shutdown/umount.c +++ b/src/grp-system/systemd-shutdown/umount.c @@ -36,10 +36,10 @@ #include "basic/string-util.h" #include "basic/util.h" #include "basic/virt.h" -#include "mount-setup.h" #include "shared/fstab-util.h" #include "shared/udev-util.h" +#include "mount-setup.h" #include "umount.h" typedef struct MountPoint { diff --git a/src/grp-system/systemd-shutdown/umount.h b/src/grp-system/systemd-shutdown/umount.h index 4e2215a47d..ce2fd9ec58 100644 --- a/src/grp-system/systemd-shutdown/umount.h +++ b/src/grp-system/systemd-shutdown/umount.h @@ -19,6 +19,8 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <stdbool.h> + int umount_all(bool *changed); int swapoff_all(bool *changed); diff --git a/src/grp-system/systemd/Makefile b/src/grp-system/systemd/Makefile index cfef258c6d..3efc406281 100644 --- a/src/grp-system/systemd/Makefile +++ b/src/grp-system/systemd/Makefile @@ -35,6 +35,10 @@ systemd_CFLAGS = \ systemd_LDADD = \ libcore.la +dist_tmpfiles_DATA = \ + tmpfiles.d/systemd.conf \ + systemd-tmpfs.conf + dist_pkgsysconf_DATA += \ src/core/system.conf \ src/core/user.conf @@ -68,4 +72,10 @@ dist_systemunit_DATA_busnames += \ BUSNAMES_TARGET_WANTS += \ org.freedesktop.systemd1.busname +sd.CPPFLAGS += -DPKGSYSCONFDIR=\"$(pkgsysconfdir)\" + +sd.CPPFLAGS += -DSYSTEMD_BINARY_PATH=\"$(rootlibexecdir)/systemd\" +sd.CPPFLAGS += -DSYSTEMD_SHUTDOWN_BINARY_PATH=\"$(rootlibexecdir)/systemd-shutdown\" +sd.CPPFLAGS += -DSYSTEMCTL_BINARY_PATH=\"$(rootbindir)/systemctl\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-system/systemd/main.c b/src/grp-system/systemd/main.c index 5ed8c3d3f5..aa7c126fcf 100644 --- a/src/grp-system/systemd/main.c +++ b/src/grp-system/systemd/main.c @@ -35,56 +35,56 @@ #include <valgrind/valgrind.h> #endif -#include "sd-bus.h" -#include "sd-daemon.h" - -#include "alloc-util.h" -#include "architecture.h" -#include "build.h" -#include "bus-error.h" -#include "bus-util.h" -#include "capability-util.h" -#include "clock-util.h" -#include "conf-parser.h" -#include "cpu-set-util.h" +#include <systemd/sd-bus.h> +#include <systemd/sd-daemon.h> + +#include "basic/alloc-util.h" +#include "basic/architecture.h" +#include "basic/build.h" +#include "basic/capability-util.h" +#include "basic/clock-util.h" +#include "basic/cpu-set-util.h" +#include "basic/def.h" +#include "basic/env-util.h" +#include "basic/fd-util.h" +#include "basic/fdset.h" +#include "basic/fileio.h" +#include "basic/formats-util.h" +#include "basic/fs-util.h" +#include "basic/log.h" +#include "basic/missing.h" +#include "basic/parse-util.h" +#include "basic/proc-cmdline.h" +#include "basic/process-util.h" +#include "basic/rlimit-util.h" +#include "basic/selinux-util.h" +#include "basic/signal-util.h" +#include "basic/special.h" +#include "basic/stat-util.h" +#include "basic/stdio-util.h" +#include "basic/strv.h" +#include "basic/terminal-util.h" +#include "basic/umask-util.h" +#include "basic/user-util.h" +#include "basic/virt.h" #include "dbus-manager.h" -#include "def.h" -#include "env-util.h" -#include "fd-util.h" -#include "fdset.h" -#include "fileio.h" -#include "formats-util.h" -#include "fs-util.h" #include "hostname-setup.h" #include "ima-setup.h" #include "killall.h" #include "kmod-setup.h" #include "load-fragment.h" -#include "log.h" #include "loopback-setup.h" #include "machine-id-setup.h" #include "manager.h" -#include "missing.h" #include "mount-setup.h" -#include "pager.h" -#include "parse-util.h" -#include "proc-cmdline.h" -#include "process-util.h" -#include "rlimit-util.h" +#include "sd-bus/bus-error.h" #include "selinux-setup.h" -#include "selinux-util.h" -#include "signal-util.h" +#include "shared/bus-util.h" +#include "shared/conf-parser.h" +#include "shared/pager.h" +#include "shared/switch-root.h" +#include "shared/watchdog.h" #include "smack-setup.h" -#include "special.h" -#include "stat-util.h" -#include "stdio-util.h" -#include "strv.h" -#include "switch-root.h" -#include "terminal-util.h" -#include "umask-util.h" -#include "user-util.h" -#include "virt.h" -#include "watchdog.h" static enum { ACTION_RUN, diff --git a/src/grp-system/systemd/systemd-tmpfs.tmpfiles b/src/grp-system/systemd/systemd-tmpfs.tmpfiles index 98050d329d..52f6743d56 100644 --- a/src/grp-system/systemd/systemd-tmpfs.tmpfiles +++ b/src/grp-system/systemd/systemd-tmpfs.tmpfiles @@ -7,6 +7,8 @@ # See tmpfiles.d(5) for details +# Clear tmp directories separately, to make them easier to override + # Exclude namespace mountpoints created with PrivateTmp=yes x /tmp/systemd-private-%b-* X /tmp/systemd-private-%b-*/tmp diff --git a/src/grp-system/systemd/systemd.tmpfiles b/src/grp-system/systemd/systemd.tmpfiles new file mode 100644 index 0000000000..00951c92c9 --- /dev/null +++ b/src/grp-system/systemd/systemd.tmpfiles @@ -0,0 +1,20 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (at your option) any later version. + +# See tmpfiles.d(5) for details + +d /run/user 0755 root root - +F! /run/utmp 0664 root utmp - + +d /run/systemd/ask-password 0755 root root - +d /run/systemd/seats 0755 root root - +d /run/systemd/sessions 0755 root root - +d /run/systemd/users 0755 root root - +d /run/systemd/machines 0755 root root - +d /run/systemd/shutdown 0755 root root - + +d /var/lib/systemd 0755 root root - diff --git a/src/grp-timedate/Makefile b/src/grp-timedate/Makefile index bb8be753da..01c4f2f841 100644 --- a/src/grp-timedate/Makefile +++ b/src/grp-timedate/Makefile @@ -23,6 +23,6 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -at.subdirs += timedatectl systemd-timedated +nested.subdirs += timedatectl systemd-timedated include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-timedate/timedatectl/Makefile b/src/grp-timedate/timedatectl/Makefile index c1be945443..4394bf892b 100644 --- a/src/grp-timedate/timedatectl/Makefile +++ b/src/grp-timedate/timedatectl/Makefile @@ -39,4 +39,5 @@ dist_bashcompletion_data += \ dist_zshcompletion_data += \ shell-completion/zsh/_timedatectl endif # ENABLE_TIMEDATED + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-udev/.vimrc b/src/grp-udev/.vimrc new file mode 100644 index 0000000000..366fbdca4b --- /dev/null +++ b/src/grp-udev/.vimrc @@ -0,0 +1,4 @@ +" 'set exrc' in ~/.vimrc will read .vimrc from the current directory +set tabstop=8 +set shiftwidth=8 +set expandtab diff --git a/src/grp-udev/Makefile b/src/grp-udev/Makefile index cc85f0317f..965c9b2f22 100644 --- a/src/grp-udev/Makefile +++ b/src/grp-udev/Makefile @@ -42,6 +42,11 @@ dist_udevrules_DATA += \ rules/78-sound-card.rules \ rules/80-net-setup-link.rules +ifneq ($(HAVE_KMOD),) +dist_udevrules_DATA += \ + rules/80-drivers.rules +endif # HAVE_KMOD + nodist_udevrules_DATA += \ rules/99-systemd.rules @@ -69,4 +74,7 @@ SYSINIT_TARGET_WANTS += \ systemd-udevd.service \ systemd-udev-trigger.service +nested.subdirs += systemd-udevd udevadm +nested.subdirs += ata_id cdrom_id collect mtd_probe scsi_id v4l_id + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-udev/hwdb/Makefile b/src/grp-udev/hwdb/Makefile index e3e51d5c74..3f89c1ed8f 100644 --- a/src/grp-udev/hwdb/Makefile +++ b/src/grp-udev/hwdb/Makefile @@ -20,7 +20,7 @@ # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see <http://www.gnu.org/licenses/>. -include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk +include $(dir $(lastword $(MAKEFILE_LIST)))/../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk .PHONY: hwdb-update diff --git a/src/grp-udev/libudev-core/Makefile b/src/grp-udev/libudev-core/Makefile index bc889eac2b..36aaa55431 100644 --- a/src/grp-udev/libudev-core/Makefile +++ b/src/grp-udev/libudev-core/Makefile @@ -38,7 +38,7 @@ $(outdir)/keyboard-keys-from-name.h: $(outdir)/keyboard-keys-from-name.gperf gperf_txt_sources += \ src/udev/keyboard-keys-list.txt -libudev_core_la_SOURCES = \ +_libudev_core_la_SOURCES = \ src/udev/udev.h \ src/udev/udev-event.c \ src/udev/udev-watch.c \ @@ -59,7 +59,7 @@ libudev_core_la_SOURCES = \ src/udev/net/ethtool-util.h \ src/udev/net/ethtool-util.c -nodist_libudev_core_la_SOURCES = \ +_nodist_libudev_core_la_SOURCES = \ src/udev/keyboard-keys-from-name.h \ src/udev/net/link-config-gperf.c @@ -80,9 +80,6 @@ libudev_core_la_LIBADD = \ ifneq ($(HAVE_KMOD),) libudev_core_la_SOURCES += \ src/udev/udev-builtin-kmod.c - -dist_udevrules_DATA += \ - rules/80-drivers.rules endif # HAVE_KMOD ifneq ($(HAVE_BLKID),) @@ -98,4 +95,10 @@ libudev_core_la_SOURCES += \ src/systemd/sd-login.h endif # HAVE_ACL +sd.libudev-core_SOURCES = $(patsubst src/udev/%,%,$(filter %.c,$(_libudev_core_la_SOURCES) $(_nodist_libudev_core_la_SOURCES))) +$(outdir)/libudev-core.la: $(addprefix $(outdir)/,$(sd.libudev-core_SOURCES:.c=.lo)) +nested.subdirs += net +$(outdir)/udev-builtin-keyboard.lo: $(outdir)/keyboard-keys-from-name.h +sd.CPPFLAGS += -DUDEVLIBEXECDIR=\"$(udevlibexecdir)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-udev/libudev-core/logind-acl.c b/src/grp-udev/libudev-core/logind-acl.c new file mode 120000 index 0000000000..dd15b7973f --- /dev/null +++ b/src/grp-udev/libudev-core/logind-acl.c @@ -0,0 +1 @@ +../../grp-login/systemd-logind/logind-acl.c
\ No newline at end of file diff --git a/src/grp-udev/libudev-core/logind-acl.h b/src/grp-udev/libudev-core/logind-acl.h new file mode 120000 index 0000000000..6065dde301 --- /dev/null +++ b/src/grp-udev/libudev-core/logind-acl.h @@ -0,0 +1 @@ +../../grp-login/systemd-logind/logind-acl.h
\ No newline at end of file diff --git a/src/grp-udev/libudev-core/net/Makefile b/src/grp-udev/libudev-core/net/Makefile new file mode 100644 index 0000000000..5ccbd00002 --- /dev/null +++ b/src/grp-udev/libudev-core/net/Makefile @@ -0,0 +1,30 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. + +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +sd.CPPFLAGS += $(libshared.CPPFLAGS) +sd.CPPFLAGS += $(libsystemd-network.CPPFLAGS) + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-udev/libudev-core/net/link-config-gperf.gperf b/src/grp-udev/libudev-core/net/link-config-gperf.gperf index b25e4b3344..20cbdf1f5f 100644 --- a/src/grp-udev/libudev-core/net/link-config-gperf.gperf +++ b/src/grp-udev/libudev-core/net/link-config-gperf.gperf @@ -1,7 +1,7 @@ %{ #include <stddef.h> -#include "conf-parser.h" -#include "network-internal.h" +#include "shared/conf-parser.h" +#include "systemd-network/network-internal.h" #include "link-config.h" #include "ethtool-util.h" %} diff --git a/src/grp-udev/libudev-core/sd-login.c b/src/grp-udev/libudev-core/sd-login.c new file mode 120000 index 0000000000..913dcedc6a --- /dev/null +++ b/src/grp-udev/libudev-core/sd-login.c @@ -0,0 +1 @@ +../../libsystemd/src/sd-login/sd-login.c
\ No newline at end of file diff --git a/src/grp-udev/libudev-core/udev-builtin-btrfs.c b/src/grp-udev/libudev-core/udev-builtin-btrfs.c index cfaa463804..333229de55 100644 --- a/src/grp-udev/libudev-core/udev-builtin-btrfs.c +++ b/src/grp-udev/libudev-core/udev-builtin-btrfs.c @@ -25,9 +25,9 @@ #include <linux/btrfs.h> #endif -#include "fd-util.h" -#include "missing.h" -#include "string-util.h" +#include "basic/fd-util.h" +#include "basic/missing.h" +#include "basic/string-util.h" #include "udev.h" static int builtin_btrfs(struct udev_device *dev, int argc, char *argv[], bool test) { diff --git a/src/grp-udev/libudev-core/udev-builtin-input_id.c b/src/grp-udev/libudev-core/udev-builtin-input_id.c index bc2cab1cb8..386ef5b5dc 100644 --- a/src/grp-udev/libudev-core/udev-builtin-input_id.c +++ b/src/grp-udev/libudev-core/udev-builtin-input_id.c @@ -28,8 +28,8 @@ #include <string.h> #include <unistd.h> -#include <linux/limits.h> #include <linux/input.h> +#include <linux/limits.h> #include "basic/fd-util.h" #include "basic/stdio-util.h" diff --git a/src/grp-udev/libudev-core/udev-builtin-net_setup_link.c b/src/grp-udev/libudev-core/udev-builtin-net_setup_link.c index bf36b42957..3f3522f5e1 100644 --- a/src/grp-udev/libudev-core/udev-builtin-net_setup_link.c +++ b/src/grp-udev/libudev-core/udev-builtin-net_setup_link.c @@ -19,9 +19,10 @@ #include "basic/alloc-util.h" #include "basic/log.h" -#include "link-config.h" #include "udev.h" +#include "net/link-config.h" + static link_config_ctx *ctx = NULL; static int builtin_net_setup_link(struct udev_device *dev, int argc, char **argv, bool test) { diff --git a/src/grp-udev/libudev-core/udev-builtin-uaccess.c b/src/grp-udev/libudev-core/udev-builtin-uaccess.c index 91bd843f80..aab1c376de 100644 --- a/src/grp-udev/libudev-core/udev-builtin-uaccess.c +++ b/src/grp-udev/libudev-core/udev-builtin-uaccess.c @@ -26,9 +26,10 @@ #include "basic/login-util.h" #include "basic/util.h" -#include "logind-acl.h" #include "udev.h" +#include "logind-acl.h" + static int builtin_uaccess(struct udev_device *dev, int argc, char *argv[], bool test) { int r; const char *path = NULL, *seat; diff --git a/src/grp-udev/mtd_probe/Makefile b/src/grp-udev/mtd_probe/Makefile index d7392a8a3b..50703dddda 100644 --- a/src/grp-udev/mtd_probe/Makefile +++ b/src/grp-udev/mtd_probe/Makefile @@ -34,4 +34,6 @@ dist_udevrules_DATA += \ udevlibexec_PROGRAMS += \ mtd_probe +mtd_probe_LDADD += libbasic.la + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-udev/scsi_id/scsi.h b/src/grp-udev/scsi_id/scsi.h index a27a84a40a..497cfe3e31 100644 --- a/src/grp-udev/scsi_id/scsi.h +++ b/src/grp-udev/scsi_id/scsi.h @@ -13,6 +13,7 @@ */ #include <scsi/scsi.h> +#include <sys/types.h> struct scsi_ioctl_command { unsigned int inlen; /* excluding scsi command length */ diff --git a/src/grp-udev/scsi_id/scsi_id.h b/src/grp-udev/scsi_id/scsi_id.h index 5c2e1c28ee..86d56a0c3f 100644 --- a/src/grp-udev/scsi_id/scsi_id.h +++ b/src/grp-udev/scsi_id/scsi_id.h @@ -17,6 +17,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <libudev.h> + #define MAX_PATH_LEN 512 /* diff --git a/src/grp-udev/systemd-hwdb/Makefile b/src/grp-udev/systemd-hwdb/Makefile index 03e7c283f2..1e5da1d244 100644 --- a/src/grp-udev/systemd-hwdb/Makefile +++ b/src/grp-udev/systemd-hwdb/Makefile @@ -20,7 +20,7 @@ # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see <http://www.gnu.org/licenses/>. -include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk +include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk ifneq ($(ENABLE_HWDB),) @@ -73,4 +73,6 @@ EXTRA_DIST += \ hwdb/ids-update.pl \ hwdb/sdio.ids +sd.CPPFLAGS += -DUDEVLIBEXECDIR=\"$(udevlibexecdir)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-udev/systemd-udevd/udevd.c b/src/grp-udev/systemd-udevd/udevd.c index 4915a285a5..07edbb3450 100644 --- a/src/grp-udev/systemd-udevd/udevd.c +++ b/src/grp-udev/systemd-udevd/udevd.c @@ -61,7 +61,6 @@ #include "basic/string-util.h" #include "basic/terminal-util.h" #include "basic/user-util.h" -#include "sd-netlink/netlink-util.h" #include "shared/dev-setup.h" #include "shared/udev-util.h" #include "udev.h" diff --git a/src/grp-udev/udevadm/Makefile b/src/grp-udev/udevadm/Makefile index ba3b466935..6fa837f6e3 100644 --- a/src/grp-udev/udevadm/Makefile +++ b/src/grp-udev/udevadm/Makefile @@ -42,4 +42,6 @@ udevadm_SOURCES = \ udevadm_LDADD = \ libudev-core.la +sd.CPPFLAGS += -DUDEVLIBEXECDIR=\"$(udevlibexecdir)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-utils/Makefile b/src/grp-utils/Makefile new file mode 100644 index 0000000000..9d510cf3cc --- /dev/null +++ b/src/grp-utils/Makefile @@ -0,0 +1,32 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. +include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk +include $(topsrcdir)/build-aux/Makefile.head.mk + +nested.subdirs += systemd-ac-power +nested.subdirs += systemd-escape +nested.subdirs += systemd-notify +nested.subdirs += systemd-path +nested.subdirs += systemd-socket-activate + +include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-utils/systemd-escape/systemd-escape.completion.bash b/src/grp-utils/systemd-escape/systemd-escape.completion.bash new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/src/grp-utils/systemd-escape/systemd-escape.completion.bash diff --git a/src/grp-utils/systemd-escape/systemd-escape.completion.zsh b/src/grp-utils/systemd-escape/systemd-escape.completion.zsh new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/src/grp-utils/systemd-escape/systemd-escape.completion.zsh diff --git a/src/grp-utils/systemd-path/Makefile b/src/grp-utils/systemd-path/Makefile index 442dbf00b4..9fcae47938 100644 --- a/src/grp-utils/systemd-path/Makefile +++ b/src/grp-utils/systemd-path/Makefile @@ -26,9 +26,13 @@ include $(topsrcdir)/build-aux/Makefile.head.mk bin_PROGRAMS += systemd-path systemd_path_SOURCES = \ + sd-path.c \ src/path/path.c systemd_path_LDADD = \ - libshared.la + libbasic.la + +sd.CPPFLAGS += -DLIBDIR=\"$(libdir)\" +sd.CPPFLAGS += -DROOTLIBDIR=\"$(rootlibdir)\" include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/grp-utils/systemd-path/_sd-common.h b/src/grp-utils/systemd-path/_sd-common.h new file mode 120000 index 0000000000..d2b5d6f4e4 --- /dev/null +++ b/src/grp-utils/systemd-path/_sd-common.h @@ -0,0 +1 @@ +../../libsystemd/include/systemd/_sd-common.h
\ No newline at end of file diff --git a/src/grp-utils/systemd-path/sd-path.h b/src/grp-utils/systemd-path/sd-path.h index cac5ce761d..be6abdcd03 100644 --- a/src/grp-utils/systemd-path/sd-path.h +++ b/src/grp-utils/systemd-path/sd-path.h @@ -22,7 +22,7 @@ #include <inttypes.h> -#include <systemd/_sd-common.h> +#include "_sd-common.h" _SD_BEGIN_DECLARATIONS; diff --git a/src/grp-utils/systemd-path/systemd-path.completion.zsh b/src/grp-utils/systemd-path/systemd-path.completion.zsh new file mode 100644 index 0000000000..4919cf4250 --- /dev/null +++ b/src/grp-utils/systemd-path/systemd-path.completion.zsh @@ -0,0 +1,18 @@ +#compdef systemd-path + +__get_names() { + systemd-path | { while IFS=: read -r a b; do echo " $a"; done; } +} + +__names() { + local -a _names + _names=(${(fo)"$(__get_names)"}) + typeset -U _names + _describe 'names' _names +} + +_arguments \ + {-h,--help}'[Show help message]' \ + '--version[Show package version]' \ + '--host=[Sufix to append to paths]:suffix' \ + '*:name:__names' diff --git a/src/grp-utils/systemd-socket-activate/systemd-socket-activate.completion.bash b/src/grp-utils/systemd-socket-activate/systemd-socket-activate.completion.bash new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/src/grp-utils/systemd-socket-activate/systemd-socket-activate.completion.bash diff --git a/src/grp-utils/systemd-socket-activate/systemd-socket-activate.completion.zsh b/src/grp-utils/systemd-socket-activate/systemd-socket-activate.completion.zsh new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/src/grp-utils/systemd-socket-activate/systemd-socket-activate.completion.zsh diff --git a/src/libbasic/Makefile b/src/libbasic/Makefile index 45d408fa19..47ce9cf936 100644 --- a/src/libbasic/Makefile +++ b/src/libbasic/Makefile @@ -23,5 +23,5 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -at.subdirs += src include +nested.subdirs += src include include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/libbasic/include/Makefile b/src/libbasic/include/Makefile index 0aa8325a7e..d3a3e62a0e 100644 --- a/src/libbasic/include/Makefile +++ b/src/libbasic/include/Makefile @@ -23,5 +23,5 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -at.subdirs += basic +nested.subdirs += basic include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/libbasic/include/basic/Makefile b/src/libbasic/include/basic/Makefile index eb8483fe8f..8cebc9cac0 100644 --- a/src/libbasic/include/basic/Makefile +++ b/src/libbasic/include/basic/Makefile @@ -23,7 +23,7 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -$(outdir)/errno-list.txt: +$(outdir)/errno-list.txt: | $(outdir)/.deps $(AM_V_GEN)$(CPP) $(sd.ALL_CPPFLAGS) -dM -include errno.h - </dev/null | $(AWK) '/^#define[ \t]+E[^ _]+[ \t]+/ { print $$2; }' >$@ $(outdir)/errno-to-name.h: $(outdir)/errno-list.txt @@ -47,8 +47,8 @@ $(outdir)/arphrd-from-name.gperf: $(outdir)/arphrd-list.txt $(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 }' <$< >$@ -$(outdir)/cap-list.txt: - $(AM_V_GEN)$(CPP) $(sd.ALL_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 >$@ +$(outdir)/cap-list.txt: $(srcdir)/missing.h + $(AM_V_GEN)$(CPP) $(sd.ALL_CPPFLAGS) -dM -include linux/capability.h -include $< - </dev/null | $(AWK) '/^#define[ \t]+CAP_[A-Z_]+[ \t]+/ { print $$2; }' | grep -v CAP_LAST_CAP >$@ $(outdir)/cap-to-name.h: $(outdir)/cap-list.txt $(AM_V_GEN)$(AWK) 'BEGIN{ print "static const char* const capability_names[] = { "} { printf "[%s] = \"%s\",\n", $$1, tolower($$1) } END{print "};"}' <$< >$@ @@ -59,4 +59,6 @@ $(outdir)/cap-from-name.gperf: $(outdir)/cap-list.txt $(outdir)/cap-from-name.h: $(outdir)/cap-from-name.gperf $(AM_V_GPERF)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_capability -H hash_capability_name -p -C <$< >$@ +sd.CPPFLAGS += $(libbasic.CPPFLAGS) + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/libbasic/include/basic/btrfs-ctree.h b/src/libbasic/include/basic/btrfs-ctree.h index 66bdf9736e..15e6d5582c 100644 --- a/src/libbasic/include/basic/btrfs-ctree.h +++ b/src/libbasic/include/basic/btrfs-ctree.h @@ -1,6 +1,7 @@ #pragma once #include "macro.h" +#include "missing.h" /* for BTRFS_UUID_SIZE */ #include "sparse-endian.h" /* Stolen from btrfs' ctree.h */ diff --git a/src/libbasic/include/basic/missing_syscall.h b/src/libbasic/include/basic/missing_syscall.h index d502d3b9ca..2929123679 100644 --- a/src/libbasic/include/basic/missing_syscall.h +++ b/src/libbasic/include/basic/missing_syscall.h @@ -22,6 +22,10 @@ /* Missing glibc definitions to access certain kernel APIs */ +#if __INCLUDE_LEVEL__ <= 1 +#error "Do not include missing_syscall.h directly; include it through missing.h." +#endif + #if !HAVE_DECL_PIVOT_ROOT static inline int pivot_root(const char *new_root, const char *put_old) { return syscall(SYS_pivot_root, new_root, put_old); diff --git a/src/libbasic/include/basic/rm-rf.h b/src/libbasic/include/basic/rm-rf.h index f693a5bb7c..8d315792ac 100644 --- a/src/libbasic/include/basic/rm-rf.h +++ b/src/libbasic/include/basic/rm-rf.h @@ -19,8 +19,11 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <stdlib.h> #include <sys/stat.h> +#include "macro.h" + typedef enum RemoveFlags { REMOVE_ONLY_DIRECTORIES = 1, REMOVE_ROOT = 2, diff --git a/src/libbasic/include/basic/socket-util.h b/src/libbasic/include/basic/socket-util.h index bad1f32e09..2b717a91d4 100644 --- a/src/libbasic/include/basic/socket-util.h +++ b/src/libbasic/include/basic/socket-util.h @@ -27,8 +27,8 @@ #include <sys/types.h> #include <sys/un.h> -#include <linux/netlink.h> #include <linux/if_packet.h> +#include <linux/netlink.h> #include "macro.h" #include "util.h" diff --git a/src/libbasic/include/basic/time-util.h b/src/libbasic/include/basic/time-util.h index a5e3f567ec..8324bb0dd0 100644 --- a/src/libbasic/include/basic/time-util.h +++ b/src/libbasic/include/basic/time-util.h @@ -26,6 +26,8 @@ #include <stdio.h> #include <time.h> +#include "macro.h" + typedef uint64_t usec_t; typedef uint64_t nsec_t; diff --git a/src/libbasic/src/Makefile b/src/libbasic/src/Makefile index 2fc52e91f5..19883d92a1 100644 --- a/src/libbasic/src/Makefile +++ b/src/libbasic/src/Makefile @@ -240,4 +240,11 @@ libbasic_la_LIBADD = \ -lrt \ -lm +_inc = $(call at.path,$(addprefix $(outdir)/../include/basic/,$1)) +$(outdir)/af-list.lo: $(call _inc,af-from-name.h af-to-name.h) +$(outdir)/arphrd-list.lo: $(call _inc,arphrd-from-name.h arphrd-to-name.h) +$(outdir)/cap-list.lo: $(call _inc,cap-from-name.h cap-to-name.h) +$(outdir)/errno-list.lo: $(call _inc,errno-from-name.h errno-to-name.h) +sd.CPPFLAGS += $(libbasic.CPPFLAGS) + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/libbasic/src/af-list.c b/src/libbasic/src/af-list.c index 434af37851..1c75c926bb 100644 --- a/src/libbasic/src/af-list.c +++ b/src/libbasic/src/af-list.c @@ -25,8 +25,8 @@ static const struct af_name* lookup_af(register const char *str, register unsigned int len); -#include "af-from-name.h" -#include "af-to-name.h" +#include "basic/af-from-name.h" +#include "basic/af-to-name.h" const char *af_to_name(int id) { diff --git a/src/libbasic/src/arphrd-list.c b/src/libbasic/src/arphrd-list.c index fbebe8ca09..649bd37456 100644 --- a/src/libbasic/src/arphrd-list.c +++ b/src/libbasic/src/arphrd-list.c @@ -25,8 +25,8 @@ static const struct arphrd_name* lookup_arphrd(register const char *str, register unsigned int len); -#include "arphrd-from-name.h" -#include "arphrd-to-name.h" +#include "basic/arphrd-from-name.h" +#include "basic/arphrd-to-name.h" const char *arphrd_to_name(int id) { diff --git a/src/libbasic/src/btrfs-util.c b/src/libbasic/src/btrfs-util.c index 7a5f6b7e76..acbcb5f6b9 100644 --- a/src/libbasic/src/btrfs-util.c +++ b/src/libbasic/src/btrfs-util.c @@ -36,23 +36,23 @@ #include <linux/btrfs.h> #endif -#include "alloc-util.h" -#include "btrfs-ctree.h" -#include "btrfs-util.h" -#include "copy.h" -#include "fd-util.h" -#include "fileio.h" -#include "io-util.h" -#include "macro.h" -#include "missing.h" -#include "path-util.h" -#include "selinux-util.h" -#include "smack-util.h" -#include "sparse-endian.h" -#include "stat-util.h" -#include "string-util.h" -#include "time-util.h" -#include "util.h" +#include "basic/alloc-util.h" +#include "basic/btrfs-ctree.h" +#include "basic/btrfs-util.h" +#include "basic/copy.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" +#include "basic/io-util.h" +#include "basic/macro.h" +#include "basic/missing.h" +#include "basic/path-util.h" +#include "basic/selinux-util.h" +#include "basic/smack-util.h" +#include "basic/sparse-endian.h" +#include "basic/stat-util.h" +#include "basic/string-util.h" +#include "basic/time-util.h" +#include "basic/util.h" /* WARNING: Be careful with file system ioctls! When we get an fd, we * need to make sure it either refers to only a regular file or diff --git a/src/libbasic/src/cap-list.c b/src/libbasic/src/cap-list.c index 9821644444..22fc8b9b31 100644 --- a/src/libbasic/src/cap-list.c +++ b/src/libbasic/src/cap-list.c @@ -28,8 +28,8 @@ static const struct capability_name* lookup_capability(register const char *str, register unsigned int len); -#include "cap-from-name.h" -#include "cap-to-name.h" +#include "basic/cap-from-name.h" +#include "basic/cap-to-name.h" const char *capability_to_name(int id) { diff --git a/src/libbasic/src/errno-list.c b/src/libbasic/src/errno-list.c index 2d39044b50..a40c4efc2e 100644 --- a/src/libbasic/src/errno-list.c +++ b/src/libbasic/src/errno-list.c @@ -25,8 +25,8 @@ static const struct errno_name* lookup_errno(register const char *str, register unsigned int len); -#include "errno-from-name.h" -#include "errno-to-name.h" +#include "basic/errno-from-name.h" +#include "basic/errno-to-name.h" const char *errno_to_name(int id) { diff --git a/src/libbasic/src/hashmap.c b/src/libbasic/src/hashmap.c index 38a4bb3feb..0b744c525a 100644 --- a/src/libbasic/src/hashmap.c +++ b/src/libbasic/src/hashmap.c @@ -36,7 +36,7 @@ #ifdef ENABLE_DEBUG_HASHMAP #include <pthread.h> -#include "list.h" +#include "basic/list.h" #endif /* diff --git a/src/libbasic/src/memfd-util.c b/src/libbasic/src/memfd-util.c index 8c8cc78ebf..810dd37ee7 100644 --- a/src/libbasic/src/memfd-util.c +++ b/src/libbasic/src/memfd-util.c @@ -28,13 +28,13 @@ #include <sys/mman.h> #include <sys/prctl.h> -#include "alloc-util.h" -#include "fd-util.h" -#include "macro.h" -#include "memfd-util.h" -#include "missing.h" -#include "string-util.h" -#include "utf8.h" +#include "basic/alloc-util.h" +#include "basic/fd-util.h" +#include "basic/macro.h" +#include "basic/memfd-util.h" +#include "basic/missing.h" +#include "basic/string-util.h" +#include "basic/utf8.h" int memfd_new(const char *name) { _cleanup_free_ char *g = NULL; diff --git a/src/libbasic/src/path-util.c b/src/libbasic/src/path-util.c index b2fa81a294..143380dec2 100644 --- a/src/libbasic/src/path-util.c +++ b/src/libbasic/src/path-util.c @@ -31,17 +31,17 @@ #include <libgen.h> #undef basename -#include "alloc-util.h" -#include "extract-word.h" -#include "fs-util.h" -#include "log.h" -#include "macro.h" -#include "missing.h" -#include "path-util.h" -#include "stat-util.h" -#include "string-util.h" -#include "strv.h" -#include "time-util.h" +#include "basic/alloc-util.h" +#include "basic/extract-word.h" +#include "basic/fs-util.h" +#include "basic/log.h" +#include "basic/macro.h" +#include "basic/missing.h" +#include "basic/path-util.h" +#include "basic/stat-util.h" +#include "basic/string-util.h" +#include "basic/strv.h" +#include "basic/time-util.h" bool path_is_absolute(const char *p) { return p[0] == '/'; diff --git a/src/libbasic/src/process-util.c b/src/libbasic/src/process-util.c index 02d6f3cca3..fcda02b7a9 100644 --- a/src/libbasic/src/process-util.c +++ b/src/libbasic/src/process-util.c @@ -38,23 +38,23 @@ #include <valgrind/valgrind.h> #endif -#include "alloc-util.h" -#include "architecture.h" -#include "escape.h" -#include "fd-util.h" -#include "fileio.h" -#include "fs-util.h" -#include "ioprio.h" -#include "log.h" -#include "macro.h" -#include "missing.h" -#include "process-util.h" -#include "signal-util.h" -#include "stat-util.h" -#include "string-table.h" -#include "string-util.h" -#include "user-util.h" -#include "util.h" +#include "basic/alloc-util.h" +#include "basic/architecture.h" +#include "basic/escape.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" +#include "basic/fs-util.h" +#include "basic/ioprio.h" +#include "basic/log.h" +#include "basic/macro.h" +#include "basic/missing.h" +#include "basic/process-util.h" +#include "basic/signal-util.h" +#include "basic/stat-util.h" +#include "basic/string-table.h" +#include "basic/string-util.h" +#include "basic/user-util.h" +#include "basic/util.h" int get_process_state(pid_t pid) { const char *p; diff --git a/src/libbasic/src/random-util.c b/src/libbasic/src/random-util.c index 6f797879eb..f5b7e54a68 100644 --- a/src/libbasic/src/random-util.c +++ b/src/libbasic/src/random-util.c @@ -31,11 +31,11 @@ #include <sys/auxv.h> #endif -#include "fd-util.h" -#include "io-util.h" -#include "missing.h" -#include "random-util.h" -#include "time-util.h" +#include "basic/fd-util.h" +#include "basic/io-util.h" +#include "basic/missing.h" +#include "basic/random-util.h" +#include "basic/time-util.h" int dev_urandom(void *p, size_t n) { static int have_syscall = -1; diff --git a/src/libbasic/src/selinux-util.c b/src/libbasic/src/selinux-util.c index 10c2f39369..34d2dcdccf 100644 --- a/src/libbasic/src/selinux-util.c +++ b/src/libbasic/src/selinux-util.c @@ -32,13 +32,13 @@ #include <selinux/selinux.h> #endif -#include "alloc-util.h" -#include "log.h" -#include "macro.h" -#include "path-util.h" -#include "selinux-util.h" -#include "time-util.h" -#include "util.h" +#include "basic/alloc-util.h" +#include "basic/log.h" +#include "basic/macro.h" +#include "basic/path-util.h" +#include "basic/selinux-util.h" +#include "basic/time-util.h" +#include "basic/util.h" #ifdef HAVE_SELINUX DEFINE_TRIVIAL_CLEANUP_FUNC(security_context_t, freecon); diff --git a/src/libfirewall/Makefile b/src/libfirewall/Makefile index ced0f7e476..0302964186 100644 --- a/src/libfirewall/Makefile +++ b/src/libfirewall/Makefile @@ -39,4 +39,6 @@ libfirewall_la_LIBADD = \ $(LIBIPTC_LIBS) endif # HAVE_LIBIPTC +sd.CPPFLAGS += $(libbasic.CPPFLAGS) + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/libfirewall/firewall-util.c b/src/libfirewall/firewall-util.c index aa924c406e..212bbe00ee 100644 --- a/src/libfirewall/firewall-util.c +++ b/src/libfirewall/firewall-util.c @@ -38,11 +38,11 @@ #include <linux/netfilter/xt_addrtype.h> #include <libiptc/libiptc.h> -#include "alloc-util.h" +#include "basic/alloc-util.h" #include "firewall-util.h" -#include "in-addr-util.h" -#include "macro.h" -#include "socket-util.h" +#include "basic/in-addr-util.h" +#include "basic/macro.h" +#include "basic/socket-util.h" DEFINE_TRIVIAL_CLEANUP_FUNC(struct xtc_handle*, iptc_free); diff --git a/src/libshared/Makefile b/src/libshared/Makefile index 7ed2706100..d6a307fc5a 100644 --- a/src/libshared/Makefile +++ b/src/libshared/Makefile @@ -23,5 +23,5 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -at.subdirs += src +nested.subdirs += src include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/libshared/include/shared/install.h b/src/libshared/include/shared/install.h index e056d374b6..d73dfef4ec 100644 --- a/src/libshared/include/shared/install.h +++ b/src/libshared/include/shared/install.h @@ -19,6 +19,11 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +typedef enum UnitFileScope UnitFileScope; +typedef enum UnitFileState UnitFileState; +typedef enum UnitFilePresetMode UnitFilePresetMode; +typedef enum UnitFileChangeType UnitFileChangeType; +typedef enum UnitFileType UnitFileType; #include <stdbool.h> #include "basic/hashmap.h" @@ -26,11 +31,6 @@ #include "basic/strv.h" #include "basic/unit-name.h" -typedef enum UnitFileChangeType UnitFileChangeType; -typedef enum UnitFilePresetMode UnitFilePresetMode; -typedef enum UnitFileScope UnitFileScope; -typedef enum UnitFileState UnitFileState; -typedef enum UnitFileType UnitFileType; typedef struct UnitFileChange UnitFileChange; typedef struct UnitFileInstallInfo UnitFileInstallInfo; typedef struct UnitFileList UnitFileList; diff --git a/src/libshared/include/shared/test-tables.h b/src/libshared/include/shared/test-tables.h index 228e510104..bf286bede5 100644 --- a/src/libshared/include/shared/test-tables.h +++ b/src/libshared/include/shared/test-tables.h @@ -20,6 +20,8 @@ #include <stdio.h> #include <stdlib.h> +#include "basic/macro.h" + typedef const char* (*lookup_t)(int); typedef int (*reverse_t)(const char*); diff --git a/src/libshared/src/Makefile b/src/libshared/src/Makefile index d808b55361..9ac9ba59ac 100644 --- a/src/libshared/src/Makefile +++ b/src/libshared/src/Makefile @@ -134,10 +134,27 @@ libshared_la_CFLAGS = \ libshared_la_LIBADD = \ libsystemd-internal.la \ - libsystemd-journal-internal.la \ libudev-internal.la \ $(ACL_LIBS) \ $(LIBIDN_LIBS) \ $(SECCOMP_LIBS) +sd.CPPFLAGS += $(addprefix -I,$(call at.path,$(srcdir)/../include $(srcdir)/../include/shared)) +sd.CPPFLAGS += -DPKGSYSCONFDIR=\"$(pkgsysconfdir)\" +sd.CPPFLAGS += -DSYSTEM_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/system\" +sd.CPPFLAGS += -DSYSTEM_DATA_UNIT_PATH=\"$(systemunitdir)\" +sd.CPPFLAGS += -DSYSTEM_SYSVINIT_PATH=\"$(SYSTEM_SYSVINIT_PATH)\" +sd.CPPFLAGS += -DSYSTEM_SYSVRCND_PATH=\"$(SYSTEM_SYSVRCND_PATH)\" +sd.CPPFLAGS += -DUSER_CONFIG_UNIT_PATH=\"$(pkgsysconfdir)/user\" +sd.CPPFLAGS += -DUSER_DATA_UNIT_PATH=\"$(userunitdir)\" + +sd.CPPFLAGS += -DSYSTEMD_FSCK_PATH=\"$(libexecdir)/systemd-fsck\" + +sd.CPPFLAGS += -DSYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH=\"$(bindir)/systemd-tty-ask-password-agent\" + +sd.CPPFLAGS += -DSYSTEM_GENERATOR_PATH=\"$(systemgeneratordir)\" +sd.CPPFLAGS += -DUSER_GENERATOR_PATH=\"$(usergeneratordir)\" + +sd.CPPFLAGS += -DPOLKIT_AGENT_BINARY_PATH=\"$(bindir)/pkttyagent\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/libshared/src/dns-domain.c b/src/libshared/src/dns-domain.c index 835557c6b2..63793edcfa 100644 --- a/src/libshared/src/dns-domain.c +++ b/src/libshared/src/dns-domain.c @@ -28,16 +28,16 @@ #include <string.h> #include <sys/socket.h> -#include "alloc-util.h" -#include "dns-domain.h" -#include "hashmap.h" -#include "hexdecoct.h" -#include "in-addr-util.h" -#include "macro.h" -#include "parse-util.h" -#include "string-util.h" -#include "strv.h" -#include "utf8.h" +#include "basic/alloc-util.h" +#include "shared/dns-domain.h" +#include "basic/hashmap.h" +#include "basic/hexdecoct.h" +#include "basic/in-addr-util.h" +#include "basic/macro.h" +#include "basic/parse-util.h" +#include "basic/string-util.h" +#include "basic/strv.h" +#include "basic/utf8.h" int dns_label_unescape(const char **name, char *dest, size_t sz) { const char *n; diff --git a/src/libshared/src/gcrypt-util.c b/src/libshared/src/gcrypt-util.c index 069134a4be..36ee4b0256 100644 --- a/src/libshared/src/gcrypt-util.c +++ b/src/libshared/src/gcrypt-util.c @@ -23,7 +23,8 @@ #include <gcrypt.h> #include "basic/hexdecoct.h" -#include "shared/gcrypt-util.h" + +#include "gcrypt-util.h" void initialize_libgcrypt(bool secmem) { const char *p; diff --git a/src/libsystemd-network/Makefile b/src/libsystemd-network/Makefile index 96f14f58f2..afd9224056 100644 --- a/src/libsystemd-network/Makefile +++ b/src/libsystemd-network/Makefile @@ -23,5 +23,5 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -at.subdirs += src test +nested.subdirs += src test include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/libsystemd-network/include/systemd-network/_sd-common.h b/src/libsystemd-network/include/systemd-network/_sd-common.h new file mode 120000 index 0000000000..653327c267 --- /dev/null +++ b/src/libsystemd-network/include/systemd-network/_sd-common.h @@ -0,0 +1 @@ +../../../libsystemd/include/systemd/_sd-common.h
\ No newline at end of file diff --git a/src/libsystemd-network/include/systemd-network/sd-dhcp-client.h b/src/libsystemd-network/include/systemd-network/sd-dhcp-client.h index 4fd418ed35..4704c6b440 100644 --- a/src/libsystemd-network/include/systemd-network/sd-dhcp-client.h +++ b/src/libsystemd-network/include/systemd-network/sd-dhcp-client.h @@ -25,9 +25,9 @@ #include <netinet/in.h> #include <sys/types.h> -#include <systemd/_sd-common.h> #include <systemd/sd-event.h> +#include "_sd-common.h" #include "sd-dhcp-lease.h" _SD_BEGIN_DECLARATIONS; diff --git a/src/libsystemd-network/include/systemd-network/sd-dhcp-lease.h b/src/libsystemd-network/include/systemd-network/sd-dhcp-lease.h index 014288b8c1..2f565ca825 100644 --- a/src/libsystemd-network/include/systemd-network/sd-dhcp-lease.h +++ b/src/libsystemd-network/include/systemd-network/sd-dhcp-lease.h @@ -26,7 +26,7 @@ #include <netinet/in.h> #include <sys/types.h> -#include <systemd/_sd-common.h> +#include "_sd-common.h" _SD_BEGIN_DECLARATIONS; diff --git a/src/libsystemd-network/include/systemd-network/sd-dhcp-server.h b/src/libsystemd-network/include/systemd-network/sd-dhcp-server.h index 8f0cbaefad..bbb2bb203c 100644 --- a/src/libsystemd-network/include/systemd-network/sd-dhcp-server.h +++ b/src/libsystemd-network/include/systemd-network/sd-dhcp-server.h @@ -24,9 +24,10 @@ #include <inttypes.h> #include <netinet/in.h> -#include <systemd/_sd-common.h> #include <systemd/sd-event.h> +#include "_sd-common.h" + _SD_BEGIN_DECLARATIONS; typedef struct sd_dhcp_server sd_dhcp_server; diff --git a/src/libsystemd-network/include/systemd-network/sd-dhcp6-client.h b/src/libsystemd-network/include/systemd-network/sd-dhcp6-client.h index fd30f0cd03..16947079bb 100644 --- a/src/libsystemd-network/include/systemd-network/sd-dhcp6-client.h +++ b/src/libsystemd-network/include/systemd-network/sd-dhcp6-client.h @@ -24,9 +24,9 @@ #include <net/ethernet.h> #include <sys/types.h> -#include <systemd/_sd-common.h> #include <systemd/sd-event.h> +#include "_sd-common.h" #include "sd-dhcp6-lease.h" _SD_BEGIN_DECLARATIONS; diff --git a/src/libsystemd-network/include/systemd-network/sd-dhcp6-lease.h b/src/libsystemd-network/include/systemd-network/sd-dhcp6-lease.h index 3e633548d0..184fbb8e0d 100644 --- a/src/libsystemd-network/include/systemd-network/sd-dhcp6-lease.h +++ b/src/libsystemd-network/include/systemd-network/sd-dhcp6-lease.h @@ -24,7 +24,7 @@ #include <inttypes.h> #include <netinet/in.h> -#include <systemd/_sd-common.h> +#include "_sd-common.h" _SD_BEGIN_DECLARATIONS; diff --git a/src/libsystemd-network/include/systemd-network/sd-ipv4acd.h b/src/libsystemd-network/include/systemd-network/sd-ipv4acd.h index b6ba392921..93db7a4a6c 100644 --- a/src/libsystemd-network/include/systemd-network/sd-ipv4acd.h +++ b/src/libsystemd-network/include/systemd-network/sd-ipv4acd.h @@ -24,9 +24,10 @@ #include <net/ethernet.h> #include <netinet/in.h> -#include <systemd/_sd-common.h> #include <systemd/sd-event.h> +#include "_sd-common.h" + _SD_BEGIN_DECLARATIONS; enum { diff --git a/src/libsystemd-network/include/systemd-network/sd-ipv4ll.h b/src/libsystemd-network/include/systemd-network/sd-ipv4ll.h index 9314360b6f..9167623167 100644 --- a/src/libsystemd-network/include/systemd-network/sd-ipv4ll.h +++ b/src/libsystemd-network/include/systemd-network/sd-ipv4ll.h @@ -23,9 +23,10 @@ #include <net/ethernet.h> #include <netinet/in.h> -#include <systemd/_sd-common.h> #include <systemd/sd-event.h> +#include "_sd-common.h" + _SD_BEGIN_DECLARATIONS; enum { diff --git a/src/libsystemd-network/include/systemd-network/sd-lldp.h b/src/libsystemd-network/include/systemd-network/sd-lldp.h index 6559df44b6..391e7c2a2e 100644 --- a/src/libsystemd-network/include/systemd-network/sd-lldp.h +++ b/src/libsystemd-network/include/systemd-network/sd-lldp.h @@ -24,9 +24,10 @@ #include <inttypes.h> #include <net/ethernet.h> -#include <systemd/_sd-common.h> #include <systemd/sd-event.h> +#include "_sd-common.h" + _SD_BEGIN_DECLARATIONS; typedef struct sd_lldp sd_lldp; diff --git a/src/libsystemd-network/include/systemd-network/sd-ndisc.h b/src/libsystemd-network/include/systemd-network/sd-ndisc.h index e918fef71e..30eb5bc404 100644 --- a/src/libsystemd-network/include/systemd-network/sd-ndisc.h +++ b/src/libsystemd-network/include/systemd-network/sd-ndisc.h @@ -22,10 +22,12 @@ #include <inttypes.h> #include <net/ethernet.h> +#include <netinet/in.h> -#include <systemd/_sd-common.h> #include <systemd/sd-event.h> +#include "_sd-common.h" + _SD_BEGIN_DECLARATIONS; enum { diff --git a/src/libsystemd-network/src/Makefile b/src/libsystemd-network/src/Makefile index 69a415c2bb..30afeae1ef 100644 --- a/src/libsystemd-network/src/Makefile +++ b/src/libsystemd-network/src/Makefile @@ -78,4 +78,8 @@ libsystemd_network_la_SOURCES = \ libsystemd_network_la_LIBADD = \ $(KMOD_LIBS) +sd.CPPFLAGS += $(libsystemd-network.CPPFLAGS) +sd.CPPFLAGS += $(libshared.CPPFLAGS) +sd.CPPFLAGS += -I$(topsrcdir)/src/libudev/src + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/libsystemd-network/src/network-internal.c b/src/libsystemd-network/src/network-internal.c index d9f7603104..53a2202068 100644 --- a/src/libsystemd-network/src/network-internal.c +++ b/src/libsystemd-network/src/network-internal.c @@ -23,6 +23,7 @@ #include <linux/if.h> #include "basic/alloc-util.h" +#include "basic/ether-addr-util.h" #include "basic/hexdecoct.h" #include "basic/log.h" #include "basic/parse-util.h" @@ -32,7 +33,6 @@ #include "basic/strv.h" #include "basic/utf8.h" #include "basic/util.h" -#include "ether-addr-util.c" #include "shared/condition.h" #include "shared/conf-parser.h" #include "systemd-network/dhcp-lease-internal.h" diff --git a/src/libsystemd/Makefile b/src/libsystemd/Makefile index 2c6505918b..5c26912ef1 100644 --- a/src/libsystemd/Makefile +++ b/src/libsystemd/Makefile @@ -32,14 +32,14 @@ EXTRA_DIST += \ src/libsystemd/sd-bus/DIFFERENCES \ src/libsystemd/sd-bus/GVARIANT-SERIALIZATION -libsystemd_la_SOURCES = \ +#libsystemd_la_SOURCES = \ $(libsystemd_internal_la_SOURCES) \ $(libsystemd_journal_internal_la_SOURCES) -nodist_libsystemd_la_SOURCES = \ +#nodist_libsystemd_la_SOURCES = \ $(nodist_libsystemd_internal_la_SOURCES) -libsystemd_la_CFLAGS = \ +#libsystemd_la_CFLAGS = \ $(libsystemd_internal_la_CFLAGS) \ $(libsystemd_journal_internal_la_CFLAGS) @@ -48,14 +48,16 @@ libsystemd_la_LDFLAGS = \ -version-info $(LIBSYSTEMD_CURRENT):$(LIBSYSTEMD_REVISION):$(LIBSYSTEMD_AGE) \ -Wl,--version-script=$(srcdir)/libsystemd.sym -libsystemd_la_LIBADD = \ +#libsystemd_la_LIBADD = \ $(libsystemd_internal_la_LIBADD) \ $(libsystemd_journal_internal_la_LIBADD) +libsystemd_la_LIBADD = $(libsystemd-internal.DEPENDS) + pkgconfiglib_DATA += \ src/libsystemd/libsystemd.pc -pkginclude_HEADERS += \ +_pkginclude_HEADERS += \ src/systemd/sd-bus.h \ src/systemd/sd-bus-protocol.h \ src/systemd/sd-bus-vtable.h \ @@ -64,7 +66,12 @@ pkginclude_HEADERS += \ src/systemd/sd-id128.h \ src/systemd/sd-daemon.h -lib_LTLIBRARIES += \ +_pkginclude_HEADERS += \ + src/systemd/sd-journal.h \ + src/systemd/sd-messages.h \ + src/systemd/_sd-common.h + +rootlib_LTLIBRARIES += \ libsystemd.la # ------------------------------------------------------------------------------ @@ -90,21 +97,27 @@ tests += \ test-local-addresses \ test-resolve -test-libsystemd-sym.c: \ - $(top_builddir)/src/libsystemd/libsystemd.sym \ - src/systemd/sd-journal.h \ - src/systemd/sd-daemon.h \ - src/systemd/sd-login.h \ - src/systemd/sd-bus.h \ - src/systemd/sd-utf8.h \ - src/systemd/sd-resolve.h \ - src/systemd/sd-path.h \ - src/systemd/sd-event.h - $(generate-sym-test) +$(outdir)/test-libsystemd-sym.c: \ + $(srcdir)/include/systemd/sd-journal.h \ + $(srcdir)/include/systemd/sd-daemon.h \ + $(srcdir)/include/systemd/sd-login.h \ + $(srcdir)/include/systemd/sd-bus.h \ + $(srcdir)/include/systemd/sd-utf8.h \ + $(srcdir)/include/systemd/sd-resolve.h \ + $(srcdir)/include/systemd/sd-path.h \ + $(srcdir)/include/systemd/sd-event.h nodist_test_libsystemd_sym_SOURCES = \ test-libsystemd-sym.c test_libsystemd_sym_LDADD = \ libsystemd.la +$(DESTDIR)$(pkgincludedir)/%.h: $(srcdir)/include/systemd/%.h + @$(NORMAL_INSTALL) + $(am.INSTALL_HEADERS) + +files.sys.all += $(addprefix $(pkgincludedir)/,$(notdir $(_pkginclude_HEADERS))) +$(outdir)/libsystemd.la: $(srcdir)/libsystemd.sym +nested.subdirs += src + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/libsystemd/include/systemd/sd-utf8.h b/src/libsystemd/include/systemd/sd-utf8.h deleted file mode 100644 index 6781983878..0000000000 --- a/src/libsystemd/include/systemd/sd-utf8.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef foosdutf8hfoo -#define foosdutf8hfoo - -/*** - This file is part of systemd. - - Copyright 2013 Lennart Poettering - - systemd is free software; you can redistribute it and/or modify it - 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 - (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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with systemd; If not, see <http://www.gnu.org/licenses/>. -***/ - -#include "_sd-common.h" - -_SD_BEGIN_DECLARATIONS; - -_sd_pure_ const char *sd_utf8_is_valid(const char *s); -_sd_pure_ const char *sd_ascii_is_valid(const char *s); - -_SD_END_DECLARATIONS; - -#endif diff --git a/src/libsystemd/sd_event_get_fd.xml b/src/libsystemd/sd_event_get_fd.xml index f68752dd0e..982f279657 100644 --- a/src/libsystemd/sd_event_get_fd.xml +++ b/src/libsystemd/sd_event_get_fd.xml @@ -119,7 +119,7 @@ <example> <title>Integration in the GLib event loop</title> - <programlisting><xi:include href="glib-event-glue.c" parse="text" /></programlisting> + <programlisting><xi:include href="sd_event_get_fd-glib-example.c" parse="text" /></programlisting> </example> </refsect1> diff --git a/src/libsystemd/src/Makefile b/src/libsystemd/src/Makefile index dceadf81da..10d3e668e8 100644 --- a/src/libsystemd/src/Makefile +++ b/src/libsystemd/src/Makefile @@ -23,18 +23,16 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -libsystemd_internal_la_SOURCES = \ +_libsystemd_internal_la_SOURCES = \ src/systemd/sd-bus.h \ src/systemd/sd-bus-protocol.h \ src/systemd/sd-bus-vtable.h \ - src/systemd/sd-utf8.h \ src/systemd/sd-event.h \ src/systemd/sd-netlink.h \ src/systemd/sd-resolve.h \ src/systemd/sd-login.h \ src/systemd/sd-id128.h \ src/systemd/sd-daemon.h \ - src/systemd/sd-path.h \ src/systemd/sd-network.h \ src/systemd/sd-hwdb.h \ src/systemd/sd-device.h \ @@ -81,7 +79,6 @@ libsystemd_internal_la_SOURCES = \ src/libsystemd/sd-bus/kdbus.h \ src/libsystemd/sd-bus/bus-dump.c \ src/libsystemd/sd-bus/bus-dump.h \ - src/libsystemd/sd-utf8/sd-utf8.c \ src/libsystemd/sd-event/sd-event.c \ src/libsystemd/sd-netlink/sd-netlink.c \ src/libsystemd/sd-netlink/netlink-internal.h \ @@ -97,7 +94,6 @@ libsystemd_internal_la_SOURCES = \ src/libsystemd/sd-id128/sd-id128.c \ src/libsystemd/sd-daemon/sd-daemon.c \ src/libsystemd/sd-login/sd-login.c \ - src/libsystemd/sd-path/sd-path.c \ src/libsystemd/sd-network/sd-network.c \ src/libsystemd/sd-network/network-util.h \ src/libsystemd/sd-network/network-util.c \ @@ -120,142 +116,7 @@ libsystemd_internal_la_LIBADD = \ noinst_LTLIBRARIES += \ libsystemd-internal.la -test_bus_marshal_SOURCES = \ - src/libsystemd/sd-bus/test-bus-marshal.c - -test_bus_marshal_LDADD = \ - libshared.la \ - $(GLIB_LIBS) \ - $(DBUS_LIBS) - -test_bus_marshal_CFLAGS = \ - $(AM_CFLAGS) \ - $(GLIB_CFLAGS) \ - $(DBUS_CFLAGS) - -test_bus_signature_SOURCES = \ - src/libsystemd/sd-bus/test-bus-signature.c - -test_bus_signature_LDADD = \ - libshared.la - -test_bus_chat_SOURCES = \ - src/libsystemd/sd-bus/test-bus-chat.c - -test_bus_chat_LDADD = \ - libshared.la - -test_bus_cleanup_SOURCES = \ - src/libsystemd/sd-bus/test-bus-cleanup.c - -test_bus_cleanup_CFLAGS = \ - $(AM_CFLAGS) \ - $(SECCOMP_CFLAGS) - -test_bus_cleanup_LDADD = \ - libshared.la - -test_bus_server_SOURCES = \ - src/libsystemd/sd-bus/test-bus-server.c - -test_bus_server_LDADD = \ - libshared.la - -test_bus_objects_SOURCES = \ - src/libsystemd/sd-bus/test-bus-objects.c - -test_bus_objects_LDADD = \ - libshared.la - -test_bus_error_SOURCES = \ - src/libsystemd/sd-bus/test-bus-error.c - -test_bus_error_LDADD = \ - libshared.la - -test_bus_gvariant_SOURCES = \ - src/libsystemd/sd-bus/test-bus-gvariant.c - -test_bus_gvariant_LDADD = \ - libshared.la \ - $(GLIB_LIBS) - -test_bus_gvariant_CFLAGS = \ - $(AM_CFLAGS) \ - $(GLIB_CFLAGS) - -test_bus_creds_SOURCES = \ - src/libsystemd/sd-bus/test-bus-creds.c - -test_bus_creds_LDADD = \ - libshared.la - -test_bus_match_SOURCES = \ - src/libsystemd/sd-bus/test-bus-match.c - -test_bus_match_LDADD = \ - libshared.la - -test_bus_kernel_SOURCES = \ - src/libsystemd/sd-bus/test-bus-kernel.c - -test_bus_kernel_LDADD = \ - libshared.la - -test_bus_kernel_bloom_SOURCES = \ - src/libsystemd/sd-bus/test-bus-kernel-bloom.c - -test_bus_kernel_bloom_LDADD = \ - libshared.la - -test_bus_benchmark_SOURCES = \ - src/libsystemd/sd-bus/test-bus-benchmark.c - -test_bus_benchmark_LDADD = \ - libshared.la - -test_bus_zero_copy_SOURCES = \ - src/libsystemd/sd-bus/test-bus-zero-copy.c - -test_bus_zero_copy_LDADD = \ - libshared.la - -test_bus_introspect_SOURCES = \ - src/libsystemd/sd-bus/test-bus-introspect.c - -test_bus_introspect_LDADD = \ - libshared.la - -test_event_SOURCES = \ - src/libsystemd/sd-event/test-event.c - -test_event_LDADD = \ - libshared.la - -test_netlink_SOURCES = \ - src/libsystemd/sd-netlink/test-netlink.c - -test_netlink_LDADD = \ - libshared.la - -test_local_addresses_SOURCES = \ - src/libsystemd/sd-netlink/test-local-addresses.c - -test_local_addresses_LDADD = \ - libshared.la - -test_resolve_SOURCES = \ - src/libsystemd/sd-resolve/test-resolve.c - -test_resolve_LDADD = \ - libshared.la - -pkginclude_HEADERS += \ - src/systemd/sd-journal.h \ - src/systemd/sd-messages.h \ - src/systemd/_sd-common.h - -libsystemd_journal_internal_la_SOURCES = \ +_libsystemd_journal_internal_la_SOURCES = \ src/journal/sd-journal.c \ src/systemd/sd-journal.h \ src/systemd/_sd-common.h \ @@ -280,7 +141,7 @@ libsystemd_journal_internal_la_SOURCES = \ src/shared/gcrypt-util.h \ src/shared/gcrypt-util.c -nodist_libsystemd_journal_internal_la_SOURCES = \ +#nodist_libsystemd_journal_internal_la_SOURCES = \ src/journal/audit_type-to-name.h gperf_txt_sources += \ @@ -309,7 +170,7 @@ libsystemd_journal_internal_la_LIBADD += \ endif # HAVE_LZ4 ifneq ($(HAVE_GCRYPT),) -libsystemd_journal_internal_la_SOURCES += \ +_libsystemd_journal_internal_la_SOURCES += \ src/journal/journal-authenticate.c \ src/journal/journal-authenticate.h \ src/journal/fsprg.c \ @@ -318,12 +179,25 @@ libsystemd_journal_internal_la_SOURCES += \ libsystemd_journal_internal_la_LIBADD += \ $(GCRYPT_LIBS) -# fsprg.c is a drop-in file using void pointer arithmetic libsystemd_journal_internal_la_CFLAGS += \ - $(GCRYPT_CFLAGS) \ - -Wno-pointer-arith + $(GCRYPT_CFLAGS) endif # HAVE_GCRYPT -noinst_LTLIBRARIES += \ +#noinst_LTLIBRARIES += \ libsystemd-journal-internal.la + +# Hook into the `am` module +libsystemd_internal_la_CFLAGS += $(libsystemd_journal_internal_la_CFLAGS) +libsystemd_internal_la_LIBADD += $(libsystemd_journal_internal_la_LIBADD) + +# Don't bother trying to hook into the `am` module for the sources; the only +# thing it adds over declaring the dependencies is adding the appropriate +# directories to am.subdirs=>at.subdirs; but we can do that here just as easily +# with nested.subdirs. +sd.libsystemd_SOURCES = +sd.libsystemd_SOURCES += $(patsubst src/libsystemd/%,%,$(filter %.c,$(_libsystemd_internal_la_SOURCES))) +sd.libsystemd_SOURCES += $(addprefix sd-journal/,$(notdir $(filter %.c,$(_libsystemd_journal_internal_la_SOURCES)))) +$(outdir)/libsystemd-internal.la: $(addprefix $(outdir)/,$(sd.libsystemd_SOURCES:.c=.lo)) +nested.subdirs += $(sort $(dir $(sd.libsystemd_SOURCES))) + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/libsystemd/src/sd-bus/Makefile b/src/libsystemd/src/sd-bus/Makefile new file mode 120000 index 0000000000..71a1159ce0 --- /dev/null +++ b/src/libsystemd/src/sd-bus/Makefile @@ -0,0 +1 @@ +../subdir.mk
\ No newline at end of file diff --git a/src/libsystemd/src/sd-bus/bus-control.c b/src/libsystemd/src/sd-bus/bus-control.c index 52128e7b5c..5582a17aae 100644 --- a/src/libsystemd/src/sd-bus/bus-control.c +++ b/src/libsystemd/src/sd-bus/bus-control.c @@ -24,19 +24,19 @@ #include <errno.h> #include <stddef.h> -#include "sd-bus.h" +#include <systemd/sd-bus.h> -#include "alloc-util.h" +#include "basic/alloc-util.h" #include "bus-bloom.h" #include "bus-control.h" #include "bus-internal.h" #include "bus-message.h" -#include "bus-util.h" -#include "capability-util.h" -#include "stdio-util.h" -#include "string-util.h" -#include "strv.h" -#include "user-util.h" +#include "shared/bus-util.h" +#include "basic/capability-util.h" +#include "basic/stdio-util.h" +#include "basic/string-util.h" +#include "basic/strv.h" +#include "basic/user-util.h" _public_ int sd_bus_get_unique_name(sd_bus *bus, const char **unique) { int r; diff --git a/src/libsystemd/src/sd-bus/bus-kernel.c b/src/libsystemd/src/sd-bus/bus-kernel.c index 59398b841d..ef9fb87ee5 100644 --- a/src/libsystemd/src/sd-bus/bus-kernel.c +++ b/src/libsystemd/src/sd-bus/bus-kernel.c @@ -32,24 +32,24 @@ #include <libgen.h> #undef basename -#include "alloc-util.h" +#include "basic/alloc-util.h" #include "bus-bloom.h" #include "bus-internal.h" #include "bus-kernel.h" -#include "bus-label.h" +#include "basic/bus-label.h" #include "bus-message.h" -#include "bus-util.h" -#include "capability-util.h" -#include "fd-util.h" -#include "fileio.h" -#include "formats-util.h" -#include "memfd-util.h" -#include "parse-util.h" -#include "stdio-util.h" -#include "string-util.h" -#include "strv.h" -#include "user-util.h" -#include "util.h" +#include "shared/bus-util.h" +#include "basic/capability-util.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" +#include "basic/formats-util.h" +#include "basic/memfd-util.h" +#include "basic/parse-util.h" +#include "basic/stdio-util.h" +#include "basic/string-util.h" +#include "basic/strv.h" +#include "basic/user-util.h" +#include "basic/util.h" #define UNIQUE_NAME_MAX (3+DECIMAL_STR_MAX(uint64_t)) diff --git a/src/libsystemd/src/sd-bus/bus-signature.h b/src/libsystemd/src/sd-bus/bus-signature.h index 1e0cd7f587..8b7a45cef5 100644 --- a/src/libsystemd/src/sd-bus/bus-signature.h +++ b/src/libsystemd/src/sd-bus/bus-signature.h @@ -20,6 +20,7 @@ ***/ #include <stdbool.h> +#include <sys/types.h> bool signature_is_single(const char *s, bool allow_dict_entry); bool signature_is_pair(const char *s); diff --git a/src/libsystemd/src/sd-bus/bus-socket.h b/src/libsystemd/src/sd-bus/bus-socket.h index 6e1d32e6a7..712e37bcc0 100644 --- a/src/libsystemd/src/sd-bus/bus-socket.h +++ b/src/libsystemd/src/sd-bus/bus-socket.h @@ -19,6 +19,8 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <stdbool.h> + #include <systemd/sd-bus.h> void bus_socket_setup(sd_bus *b); diff --git a/src/libsystemd/src/sd-bus/bus-track.h b/src/libsystemd/src/sd-bus/bus-track.h index 7d93a727d6..73b7503ae5 100644 --- a/src/libsystemd/src/sd-bus/bus-track.h +++ b/src/libsystemd/src/sd-bus/bus-track.h @@ -19,4 +19,6 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <systemd/sd-bus.h> + void bus_track_dispatch(sd_bus_track *track); diff --git a/src/libsystemd/src/sd-bus/test-bus-gvariant.c b/src/libsystemd/src/sd-bus/test-bus-gvariant.c index 83f114a0fe..bffc7247c2 100644 --- a/src/libsystemd/src/sd-bus/test-bus-gvariant.c +++ b/src/libsystemd/src/sd-bus/test-bus-gvariant.c @@ -21,16 +21,16 @@ #include <glib.h> #endif -#include "sd-bus.h" +#include <systemd/sd-bus.h> -#include "alloc-util.h" +#include "basic/alloc-util.h" #include "bus-dump.h" #include "bus-gvariant.h" #include "bus-internal.h" #include "bus-message.h" -#include "bus-util.h" -#include "macro.h" -#include "util.h" +#include "shared/bus-util.h" +#include "basic/macro.h" +#include "basic/util.h" static void test_bus_gvariant_is_fixed_size(void) { assert_se(bus_gvariant_is_fixed_size("") > 0); diff --git a/src/libsystemd/src/sd-bus/test-bus-marshal.c b/src/libsystemd/src/sd-bus/test-bus-marshal.c index a28cc5b79e..59a11718d9 100644 --- a/src/libsystemd/src/sd-bus/test-bus-marshal.c +++ b/src/libsystemd/src/sd-bus/test-bus-marshal.c @@ -28,17 +28,17 @@ #include <dbus/dbus.h> #endif -#include "sd-bus.h" +#include <systemd/sd-bus.h> -#include "alloc-util.h" +#include "basic/alloc-util.h" #include "bus-dump.h" -#include "bus-label.h" +#include "basic/bus-label.h" #include "bus-message.h" -#include "bus-util.h" -#include "fd-util.h" -#include "hexdecoct.h" -#include "log.h" -#include "util.h" +#include "shared/bus-util.h" +#include "basic/fd-util.h" +#include "basic/hexdecoct.h" +#include "basic/log.h" +#include "basic/util.h" static void test_bus_path_encode_unique(void) { _cleanup_free_ char *a = NULL, *b = NULL, *c = NULL, *d = NULL, *e = NULL; diff --git a/src/libsystemd/src/sd-daemon/Makefile b/src/libsystemd/src/sd-daemon/Makefile new file mode 120000 index 0000000000..71a1159ce0 --- /dev/null +++ b/src/libsystemd/src/sd-daemon/Makefile @@ -0,0 +1 @@ +../subdir.mk
\ No newline at end of file diff --git a/src/libsystemd/src/sd-device/Makefile b/src/libsystemd/src/sd-device/Makefile new file mode 120000 index 0000000000..71a1159ce0 --- /dev/null +++ b/src/libsystemd/src/sd-device/Makefile @@ -0,0 +1 @@ +../subdir.mk
\ No newline at end of file diff --git a/src/libsystemd/src/sd-device/device-internal.h b/src/libsystemd/src/sd-device/device-internal.h index 5e5ae47339..a1a1d3c4e3 100644 --- a/src/libsystemd/src/sd-device/device-internal.h +++ b/src/libsystemd/src/sd-device/device-internal.h @@ -23,6 +23,8 @@ #include "basic/hashmap.h" #include "basic/set.h" +#include "sd-device.h" + struct sd_device { uint64_t n_ref; diff --git a/src/libsystemd/src/sd-event/Makefile b/src/libsystemd/src/sd-event/Makefile new file mode 120000 index 0000000000..71a1159ce0 --- /dev/null +++ b/src/libsystemd/src/sd-event/Makefile @@ -0,0 +1 @@ +../subdir.mk
\ No newline at end of file diff --git a/src/libsystemd/src/sd-hwdb/Makefile b/src/libsystemd/src/sd-hwdb/Makefile new file mode 120000 index 0000000000..71a1159ce0 --- /dev/null +++ b/src/libsystemd/src/sd-hwdb/Makefile @@ -0,0 +1 @@ +../subdir.mk
\ No newline at end of file diff --git a/src/libsystemd/src/sd-id128/Makefile b/src/libsystemd/src/sd-id128/Makefile new file mode 120000 index 0000000000..71a1159ce0 --- /dev/null +++ b/src/libsystemd/src/sd-id128/Makefile @@ -0,0 +1 @@ +../subdir.mk
\ No newline at end of file diff --git a/src/libsystemd/src/sd-journal/Makefile b/src/libsystemd/src/sd-journal/Makefile index 6d1ff3c0a5..f13c2b51fa 100644 --- a/src/libsystemd/src/sd-journal/Makefile +++ b/src/libsystemd/src/sd-journal/Makefile @@ -23,15 +23,22 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -audit_list_includes = -include linux/audit.h -include missing.h +audit_list_includes = -include linux/audit.h -include $(topsrcdir)/src/libbasic/include/basic/missing.h ifneq ($(HAVE_AUDIT),) audit_list_includes += -include libaudit.h endif # HAVE_AUDIT -$(outdir)/audit_type-list.txt: +$(outdir)/audit_type-list.txt: $(call at.path,$(topsrcdir)/src/libbasic/include/basic/missing.h) $(AM_V_GEN)$(CPP) $(sd.ALL_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 >$@ $(outdir)/audit_type-to-name.h: $(outdir)/audit_type-list.txt $(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" }' <$< >$@ +# fsprg.c is a drop-in file using void pointer arithmetic +$(outdir)/fsprg.lo: sd.ALL_CFLAGS += -Wno-pointer-arith + +sd.CPPFLAGS += $(libbasic.CPPFLAGS) +sd.CPPFLAGS += -DCATALOG_DATABASE=\"$(catalogstatedir)/database\" +$(outdir)/audit-type.lo: $(outdir)/audit_type-to-name.h + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/libsystemd/src/sd-journal/audit-type.c b/src/libsystemd/src/sd-journal/audit-type.c index 1dde7f414e..1a10a378b2 100644 --- a/src/libsystemd/src/sd-journal/audit-type.c +++ b/src/libsystemd/src/sd-journal/audit-type.c @@ -24,7 +24,7 @@ # include <libaudit.h> #endif -#include "missing.h" +#include "basic/missing.h" #include "audit-type.h" #include "audit_type-to-name.h" -#include "macro.h" +#include "basic/macro.h" diff --git a/src/libsystemd/src/sd-journal/compress.c b/src/libsystemd/src/sd-journal/compress.c index ba734b5561..f763ceeac8 100644 --- a/src/libsystemd/src/sd-journal/compress.c +++ b/src/libsystemd/src/sd-journal/compress.c @@ -32,16 +32,16 @@ #include <lz4frame.h> #endif -#include "alloc-util.h" +#include "basic/alloc-util.h" #include "compress.h" -#include "fd-util.h" -#include "io-util.h" +#include "basic/fd-util.h" +#include "basic/io-util.h" #include "journal-def.h" -#include "macro.h" -#include "sparse-endian.h" -#include "string-table.h" -#include "string-util.h" -#include "util.h" +#include "basic/macro.h" +#include "basic/sparse-endian.h" +#include "basic/string-table.h" +#include "basic/string-util.h" +#include "basic/util.h" #ifdef HAVE_LZ4 DEFINE_TRIVIAL_CLEANUP_FUNC(LZ4F_compressionContext_t, LZ4F_freeCompressionContext); diff --git a/src/libsystemd/src/sd-journal/fsprg.c b/src/libsystemd/src/sd-journal/fsprg.c index acb8263151..612b10f3a9 100644 --- a/src/libsystemd/src/sd-journal/fsprg.c +++ b/src/libsystemd/src/sd-journal/fsprg.c @@ -29,9 +29,8 @@ #include <gcrypt.h> #include <string.h> -#include "shared/gcrypt-util.h" - #include "fsprg.h" +#include "gcrypt-util.h" #define ISVALID_SECPAR(secpar) (((secpar) % 16 == 0) && ((secpar) >= 16) && ((secpar) <= 16384)) #define VALIDATE_SECPAR(secpar) assert(ISVALID_SECPAR(secpar)); diff --git a/src/libsystemd/src/sd-journal/gcrypt-util.c b/src/libsystemd/src/sd-journal/gcrypt-util.c new file mode 120000 index 0000000000..56bb2382a6 --- /dev/null +++ b/src/libsystemd/src/sd-journal/gcrypt-util.c @@ -0,0 +1 @@ +../../../libshared/src/gcrypt-util.c
\ No newline at end of file diff --git a/src/libsystemd/src/sd-journal/gcrypt-util.h b/src/libsystemd/src/sd-journal/gcrypt-util.h new file mode 120000 index 0000000000..c1168ad265 --- /dev/null +++ b/src/libsystemd/src/sd-journal/gcrypt-util.h @@ -0,0 +1 @@ +../../../libshared/include/shared/gcrypt-util.h
\ No newline at end of file diff --git a/src/libsystemd/src/sd-journal/journal-authenticate.c b/src/libsystemd/src/sd-journal/journal-authenticate.c index 8e983f7e8f..5400d38ffd 100644 --- a/src/libsystemd/src/sd-journal/journal-authenticate.c +++ b/src/libsystemd/src/sd-journal/journal-authenticate.c @@ -22,9 +22,9 @@ #include "basic/fd-util.h" #include "basic/hexdecoct.h" -#include "shared/gcrypt-util.h" #include "fsprg.h" +#include "gcrypt-util.h" #include "journal-authenticate.h" #include "journal-def.h" #include "journal-file.h" diff --git a/src/libsystemd/src/sd-journal/journal-file.h b/src/libsystemd/src/sd-journal/journal-file.h index 564e1a8179..366d168166 100644 --- a/src/libsystemd/src/sd-journal/journal-file.h +++ b/src/libsystemd/src/sd-journal/journal-file.h @@ -25,14 +25,14 @@ #include <gcrypt.h> #endif -#include "sd-id128.h" +#include <systemd/sd-id128.h> -#include "hashmap.h" +#include "basic/hashmap.h" #include "journal-def.h" -#include "macro.h" +#include "basic/macro.h" #include "mmap-cache.h" -#include "sd-event.h" -#include "sparse-endian.h" +#include <systemd/sd-event.h> +#include "basic/sparse-endian.h" typedef struct JournalMetrics { /* For all these: -1 means "pick automatically", and 0 means "no limit enforced" */ diff --git a/src/libsystemd/src/sd-journal/journal-send.c b/src/libsystemd/src/sd-journal/journal-send.c index 5e8a3e3200..7197758289 100644 --- a/src/libsystemd/src/sd-journal/journal-send.c +++ b/src/libsystemd/src/sd-journal/journal-send.c @@ -27,17 +27,17 @@ #define SD_JOURNAL_SUPPRESS_LOCATION -#include "sd-journal.h" - -#include "alloc-util.h" -#include "fd-util.h" -#include "fileio.h" -#include "io-util.h" -#include "memfd-util.h" -#include "socket-util.h" -#include "stdio-util.h" -#include "string-util.h" -#include "util.h" +#include <systemd/sd-journal.h> + +#include "basic/alloc-util.h" +#include "basic/fd-util.h" +#include "basic/fileio.h" +#include "basic/io-util.h" +#include "basic/memfd-util.h" +#include "basic/socket-util.h" +#include "basic/stdio-util.h" +#include "basic/string-util.h" +#include "basic/util.h" #define SNDBUF_SIZE (8*1024*1024) diff --git a/src/libsystemd/src/sd-journal/mmap-cache.h b/src/libsystemd/src/sd-journal/mmap-cache.h index 199d944647..d7eca3c237 100644 --- a/src/libsystemd/src/sd-journal/mmap-cache.h +++ b/src/libsystemd/src/sd-journal/mmap-cache.h @@ -20,7 +20,9 @@ ***/ #include <stdbool.h> +#include <stdint.h> #include <sys/stat.h> +#include <sys/types.h> /* One context per object type, plus one of the header, plus one "additional" one */ #define MMAP_CACHE_MAX_CONTEXTS 9 diff --git a/src/libsystemd/src/sd-login/Makefile b/src/libsystemd/src/sd-login/Makefile new file mode 120000 index 0000000000..71a1159ce0 --- /dev/null +++ b/src/libsystemd/src/sd-login/Makefile @@ -0,0 +1 @@ +../subdir.mk
\ No newline at end of file diff --git a/src/libsystemd/src/sd-netlink/Makefile b/src/libsystemd/src/sd-netlink/Makefile new file mode 120000 index 0000000000..71a1159ce0 --- /dev/null +++ b/src/libsystemd/src/sd-netlink/Makefile @@ -0,0 +1 @@ +../subdir.mk
\ No newline at end of file diff --git a/src/libsystemd/src/sd-netlink/local-addresses.c b/src/libsystemd/src/sd-netlink/local-addresses.c index 81e99e0e5d..0baaab557f 100644 --- a/src/libsystemd/src/sd-netlink/local-addresses.c +++ b/src/libsystemd/src/sd-netlink/local-addresses.c @@ -22,7 +22,6 @@ #include "basic/macro.h" #include "local-addresses.h" -#include "netlink-util.h" #include "sd-netlink.h" static int address_compare(const void *_a, const void *_b) { diff --git a/src/libsystemd/src/sd-netlink/sd-netlink.h b/src/libsystemd/src/sd-netlink/sd-netlink.h index d88506a9d7..1df902d30e 100644 --- a/src/libsystemd/src/sd-netlink/sd-netlink.h +++ b/src/libsystemd/src/sd-netlink/sd-netlink.h @@ -24,8 +24,8 @@ #include <netinet/ether.h> #include <netinet/in.h> -#include <linux/rtnetlink.h> #include <linux/neighbour.h> +#include <linux/rtnetlink.h> #include <systemd/_sd-common.h> #include <systemd/sd-event.h> diff --git a/src/libsystemd/src/sd-network/Makefile b/src/libsystemd/src/sd-network/Makefile new file mode 120000 index 0000000000..71a1159ce0 --- /dev/null +++ b/src/libsystemd/src/sd-network/Makefile @@ -0,0 +1 @@ +../subdir.mk
\ No newline at end of file diff --git a/src/libsystemd/src/sd-network/network-util.h b/src/libsystemd/src/sd-network/network-util.h index 26780dce28..902be2b2e8 100644 --- a/src/libsystemd/src/sd-network/network-util.h +++ b/src/libsystemd/src/sd-network/network-util.h @@ -19,6 +19,8 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. ***/ +#include <stdbool.h> + #include "sd-network.h" bool network_is_online(void); diff --git a/src/libsystemd/src/sd-resolve/Makefile b/src/libsystemd/src/sd-resolve/Makefile new file mode 120000 index 0000000000..71a1159ce0 --- /dev/null +++ b/src/libsystemd/src/sd-resolve/Makefile @@ -0,0 +1 @@ +../subdir.mk
\ No newline at end of file diff --git a/src/libsystemd/src/sd-utf8/sd-utf8.c b/src/libsystemd/src/sd-utf8/sd-utf8.c deleted file mode 100644 index 58e4a88f07..0000000000 --- a/src/libsystemd/src/sd-utf8/sd-utf8.c +++ /dev/null @@ -1,35 +0,0 @@ -/*** - This file is part of systemd. - - Copyright 2013 Lennart Poettering - - systemd is free software; you can redistribute it and/or modify it - 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 - (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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with systemd; If not, see <http://www.gnu.org/licenses/>. -***/ - -#include <systemd/sd-utf8.h> - -#include "basic/utf8.h" -#include "basic/util.h" - -_public_ const char *sd_utf8_is_valid(const char *s) { - assert_return(s, NULL); - - return utf8_is_valid(s); -} - -_public_ const char *sd_ascii_is_valid(const char *s) { - assert_return(s, NULL); - - return ascii_is_valid(s); -} diff --git a/src/libsystemd/src/subdir.mk b/src/libsystemd/src/subdir.mk index 35def00fdc..71691e8dac 100644 --- a/src/libsystemd/src/subdir.mk +++ b/src/libsystemd/src/subdir.mk @@ -20,10 +20,13 @@ # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see <http://www.gnu.org/licenses/>. -include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk + +include $(dir $(lastword $(MAKEFILE_LIST)))/../../../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -systemd.CPPFLAGS += -DLIBDIR=\"$(libdir)\" -systemd.CPPFLAGS += -DUDEVLIBEXECDIR=\"$(udevlibexecdir)\" +sd.CPPFLAGS += $(libsystemd.CPPFLAGS) +sd.CPPFLAGS += $(libbasic.CPPFLAGS) +sd.CPPFLAGS += $(libshared.CPPFLAGS) +sd.CPPFLAGS += -DUDEVLIBEXECDIR=\"$(udevlibexecdir)\" include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/libsystemd/src/test.mk b/src/libsystemd/src/test.mk new file mode 100644 index 0000000000..0290b33f6b --- /dev/null +++ b/src/libsystemd/src/test.mk @@ -0,0 +1,152 @@ +# -*- Mode: makefile; indent-tabs-mode: t -*- +# +# This file is part of systemd. +# +# Copyright 2010-2012 Lennart Poettering +# Copyright 2010-2012 Kay Sievers +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# Copyright 2013 David Strauss +# Copyright 2016 Luke Shumaker +# +# systemd is free software; you can redistribute it and/or modify it +# 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 +# (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 +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with systemd; If not, see <http://www.gnu.org/licenses/>. + +test_bus_marshal_SOURCES = \ + src/libsystemd/sd-bus/test-bus-marshal.c + +test_bus_marshal_LDADD = \ + libshared.la \ + $(GLIB_LIBS) \ + $(DBUS_LIBS) + +test_bus_marshal_CFLAGS = \ + $(AM_CFLAGS) \ + $(GLIB_CFLAGS) \ + $(DBUS_CFLAGS) + +test_bus_signature_SOURCES = \ + src/libsystemd/sd-bus/test-bus-signature.c + +test_bus_signature_LDADD = \ + libshared.la + +test_bus_chat_SOURCES = \ + src/libsystemd/sd-bus/test-bus-chat.c + +test_bus_chat_LDADD = \ + libshared.la + +test_bus_cleanup_SOURCES = \ + src/libsystemd/sd-bus/test-bus-cleanup.c + +test_bus_cleanup_CFLAGS = \ + $(AM_CFLAGS) \ + $(SECCOMP_CFLAGS) + +test_bus_cleanup_LDADD = \ + libshared.la + +test_bus_server_SOURCES = \ + src/libsystemd/sd-bus/test-bus-server.c + +test_bus_server_LDADD = \ + libshared.la + +test_bus_objects_SOURCES = \ + src/libsystemd/sd-bus/test-bus-objects.c + +test_bus_objects_LDADD = \ + libshared.la + +test_bus_error_SOURCES = \ + src/libsystemd/sd-bus/test-bus-error.c + +test_bus_error_LDADD = \ + libshared.la + +test_bus_gvariant_SOURCES = \ + src/libsystemd/sd-bus/test-bus-gvariant.c + +test_bus_gvariant_LDADD = \ + libshared.la \ + $(GLIB_LIBS) + +test_bus_gvariant_CFLAGS = \ + $(AM_CFLAGS) \ + $(GLIB_CFLAGS) + +test_bus_creds_SOURCES = \ + src/libsystemd/sd-bus/test-bus-creds.c + +test_bus_creds_LDADD = \ + libshared.la + +test_bus_match_SOURCES = \ + src/libsystemd/sd-bus/test-bus-match.c + +test_bus_match_LDADD = \ + libshared.la + +test_bus_kernel_SOURCES = \ + src/libsystemd/sd-bus/test-bus-kernel.c + +test_bus_kernel_LDADD = \ + libshared.la + +test_bus_kernel_bloom_SOURCES = \ + src/libsystemd/sd-bus/test-bus-kernel-bloom.c + +test_bus_kernel_bloom_LDADD = \ + libshared.la + +test_bus_benchmark_SOURCES = \ + src/libsystemd/sd-bus/test-bus-benchmark.c + +test_bus_benchmark_LDADD = \ + libshared.la + +test_bus_zero_copy_SOURCES = \ + src/libsystemd/sd-bus/test-bus-zero-copy.c + +test_bus_zero_copy_LDADD = \ + libshared.la + +test_bus_introspect_SOURCES = \ + src/libsystemd/sd-bus/test-bus-introspect.c + +test_bus_introspect_LDADD = \ + libshared.la + +test_event_SOURCES = \ + src/libsystemd/sd-event/test-event.c + +test_event_LDADD = \ + libshared.la + +test_netlink_SOURCES = \ + src/libsystemd/sd-netlink/test-netlink.c + +test_netlink_LDADD = \ + libshared.la + +test_local_addresses_SOURCES = \ + src/libsystemd/sd-netlink/test-local-addresses.c + +test_local_addresses_LDADD = \ + libshared.la + +test_resolve_SOURCES = \ + src/libsystemd/sd-resolve/test-resolve.c + +test_resolve_LDADD = \ + libshared.la diff --git a/src/libudev/Makefile b/src/libudev/Makefile index 8d9fecb1fb..0ca3d15841 100644 --- a/src/libudev/Makefile +++ b/src/libudev/Makefile @@ -23,6 +23,40 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -at.subdirs += src +LIBUDEV_CURRENT=7 +LIBUDEV_REVISION=4 +LIBUDEV_AGE=6 + +include_HEADERS += \ + src/libudev/libudev.h + +rootlib_LTLIBRARIES += \ + libudev.la + +libudev_la_LDFLAGS = \ + $(AM_LDFLAGS) \ + -version-info $(LIBUDEV_CURRENT):$(LIBUDEV_REVISION):$(LIBUDEV_AGE) \ + -Wl,--version-script=$(srcdir)/libudev.sym + +libudev_la_LIBADD += $(libudev-internal.DEPENDS) + +pkgconfiglib_DATA += \ + src/libudev/libudev.pc + +EXTRA_DIST += \ + src/libudev/libudev.pc.in + +$(outdir)/test-libudev-sym.c: \ + $(srcdir)/udev.h + +nodist_test_libudev_sym_SOURCES = \ + test-libudev-sym.c +test_libudev_sym_CFLAGS = \ + $(AM_CFLAGS) \ + -Wno-deprecated-declarations +test_libudev_sym_LDADD = \ + libudev.la + +nested.subdirs += src include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/libudev/src/Makefile b/src/libudev/src/Makefile index ed606315e1..3f2f59ed39 100644 --- a/src/libudev/src/Makefile +++ b/src/libudev/src/Makefile @@ -23,17 +23,7 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/../../../config.mk include $(topsrcdir)/build-aux/Makefile.head.mk -LIBUDEV_CURRENT=7 -LIBUDEV_REVISION=4 -LIBUDEV_AGE=6 - -include_HEADERS += \ - src/libudev/libudev.h - -lib_LTLIBRARIES += \ - libudev.la - -libudev_la_SOURCES =\ +libudev_internal_la_SOURCES =\ src/libudev/libudev.sym \ src/libudev/libudev-private.h \ src/libudev/libudev-device-internal.h \ @@ -47,37 +37,10 @@ libudev_la_SOURCES =\ src/libudev/libudev-queue.c \ src/libudev/libudev-hwdb.c -libudev_la_LDFLAGS = \ - $(AM_LDFLAGS) \ - -version-info $(LIBUDEV_CURRENT):$(LIBUDEV_REVISION):$(LIBUDEV_AGE) \ - -Wl,--version-script=$(srcdir)/libudev.sym - -libudev_la_LIBADD = \ +libudev_internal_la_LIBADD = \ libsystemd-internal.la -pkgconfiglib_DATA += \ - src/libudev/libudev.pc - -EXTRA_DIST += \ - src/libudev/libudev.pc.in - noinst_LTLIBRARIES += \ libudev-internal.la -libudev_internal_la_SOURCES =\ - $(libudev_la_SOURCES) - -test-libudev-sym.c: \ - src/libudev/libudev.sym \ - src/udev/udev.h - $(generate-sym-test) - -nodist_test_libudev_sym_SOURCES = \ - test-libudev-sym.c -test_libudev_sym_CFLAGS = \ - $(AM_CFLAGS) \ - -Wno-deprecated-declarations -test_libudev_sym_LDADD = \ - libudev.la - include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/systemd-cryptsetup/Makefile b/src/systemd-cryptsetup/Makefile index 73a46bf6da..981bd89c85 100644 --- a/src/systemd-cryptsetup/Makefile +++ b/src/systemd-cryptsetup/Makefile @@ -56,4 +56,6 @@ SYSINIT_TARGET_WANTS += \ endif # HAVE_LIBCRYPTSETUP +sd.CPPFLAGS += -DSYSTEMD_CRYPTSETUP_PATH=\"$(rootlibexecdir)/systemd-cryptsetup\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/systemd-dbus1-generator/Makefile b/src/systemd-dbus1-generator/Makefile index 1d7f0d1a81..8a4193621a 100644 --- a/src/systemd-dbus1-generator/Makefile +++ b/src/systemd-dbus1-generator/Makefile @@ -40,10 +40,14 @@ dbus1-generator-install-hook: dbus1-generator-uninstall-hook: rm -f $(DESTDIR)$(usergeneratordir)/systemd-dbus1-generator -dist_xinitrc_SCRIPTS = \ +# TODO +_dist_xinitrc_SCRIPTS = \ xorg/50-systemd-user.sh INSTALL_EXEC_HOOKS += dbus1-generator-install-hook UNINSTALL_EXEC_HOOKS += dbus1-generator-uninstall-hook +sd.CPPFLAGS += -DSYSTEM_DATA_UNIT_PATH=\"$(systemunitdir)\" +sd.CPPFLAGS += -DUSER_DATA_UNIT_PATH=\"$(userunitdir)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/systemd-debug-generator/Makefile b/src/systemd-debug-generator/Makefile index bba46c2905..d07c97f2ef 100644 --- a/src/systemd-debug-generator/Makefile +++ b/src/systemd-debug-generator/Makefile @@ -31,4 +31,6 @@ systemd_debug_generator_SOURCES = \ systemd_debug_generator_LDADD = \ libshared.la +sd.CPPFLAGS += -DSYSTEM_DATA_UNIT_PATH=\"$(systemunitdir)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/systemd-getty-generator/Makefile b/src/systemd-getty-generator/Makefile index 14f7d02a86..9ca689c035 100644 --- a/src/systemd-getty-generator/Makefile +++ b/src/systemd-getty-generator/Makefile @@ -30,4 +30,6 @@ systemd_getty_generator_SOURCES = \ systemd_getty_generator_LDADD = \ libshared.la +sd.CPPFLAGS += -DSYSTEM_DATA_UNIT_PATH=\"$(systemunitdir)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/systemd-gpt-auto-generator/Makefile b/src/systemd-gpt-auto-generator/Makefile index 177db8da7c..ef832ad737 100644 --- a/src/systemd-gpt-auto-generator/Makefile +++ b/src/systemd-gpt-auto-generator/Makefile @@ -40,4 +40,6 @@ systemd_gpt_auto_generator_CFLAGS = \ $(BLKID_CFLAGS) endif # HAVE_BLKID +sd.CPPFLAGS += -DSYSTEMD_CRYPTSETUP_PATH=\"$(rootlibexecdir)/systemd-cryptsetup\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/systemd-machine-id-setup/machine-id-setup-main.c b/src/systemd-machine-id-setup/machine-id-setup-main.c index fdc009b225..009bb5c5c0 100644 --- a/src/systemd-machine-id-setup/machine-id-setup-main.c +++ b/src/systemd-machine-id-setup/machine-id-setup-main.c @@ -25,6 +25,7 @@ #include "basic/log.h" #include "basic/path-util.h" #include "basic/util.h" + #include "machine-id-setup.h" static char *arg_root = NULL; diff --git a/src/systemd-machine-id-setup/machine-id-setup.c b/src/systemd-machine-id-setup/machine-id-setup.c new file mode 120000 index 0000000000..78f80e2b73 --- /dev/null +++ b/src/systemd-machine-id-setup/machine-id-setup.c @@ -0,0 +1 @@ +../grp-system/libcore/machine-id-setup.c
\ No newline at end of file diff --git a/src/systemd-machine-id-setup/machine-id-setup.h b/src/systemd-machine-id-setup/machine-id-setup.h new file mode 120000 index 0000000000..d2659724ce --- /dev/null +++ b/src/systemd-machine-id-setup/machine-id-setup.h @@ -0,0 +1 @@ +../grp-system/libcore/machine-id-setup.h
\ No newline at end of file diff --git a/src/systemd-nspawn/Makefile b/src/systemd-nspawn/Makefile index d6f928ebd6..2fe9bcc143 100644 --- a/src/systemd-nspawn/Makefile +++ b/src/systemd-nspawn/Makefile @@ -82,4 +82,9 @@ test_patch_uid_LDADD = \ manual_tests += \ test-patch-uid +dist_tmpfiles_DATA = \ + tmpfiles.d/systemd-nspawn.conf + +sd.CPPFLAGS += -I$(topsrcdir)/src/libudev/src + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/systemd-nspawn/loopback-setup.c b/src/systemd-nspawn/loopback-setup.c new file mode 120000 index 0000000000..da633f4936 --- /dev/null +++ b/src/systemd-nspawn/loopback-setup.c @@ -0,0 +1 @@ +../grp-system/libcore/loopback-setup.c
\ No newline at end of file diff --git a/src/systemd-nspawn/loopback-setup.h b/src/systemd-nspawn/loopback-setup.h new file mode 120000 index 0000000000..dc051ab1bd --- /dev/null +++ b/src/systemd-nspawn/loopback-setup.h @@ -0,0 +1 @@ +../grp-system/libcore/loopback-setup.h
\ No newline at end of file diff --git a/src/systemd-nspawn/machine-id-setup.c b/src/systemd-nspawn/machine-id-setup.c new file mode 120000 index 0000000000..78f80e2b73 --- /dev/null +++ b/src/systemd-nspawn/machine-id-setup.c @@ -0,0 +1 @@ +../grp-system/libcore/machine-id-setup.c
\ No newline at end of file diff --git a/src/systemd-nspawn/machine-id-setup.h b/src/systemd-nspawn/machine-id-setup.h new file mode 120000 index 0000000000..d2659724ce --- /dev/null +++ b/src/systemd-nspawn/machine-id-setup.h @@ -0,0 +1 @@ +../grp-system/libcore/machine-id-setup.h
\ No newline at end of file diff --git a/src/systemd-nspawn/mount-setup.c b/src/systemd-nspawn/mount-setup.c new file mode 120000 index 0000000000..67cb74c218 --- /dev/null +++ b/src/systemd-nspawn/mount-setup.c @@ -0,0 +1 @@ +../grp-system/libcore/mount-setup.c
\ No newline at end of file diff --git a/src/systemd-nspawn/mount-setup.h b/src/systemd-nspawn/mount-setup.h new file mode 120000 index 0000000000..bae54ba700 --- /dev/null +++ b/src/systemd-nspawn/mount-setup.h @@ -0,0 +1 @@ +../grp-system/libcore/mount-setup.h
\ No newline at end of file diff --git a/src/systemd-nspawn/nspawn-expose-ports.c b/src/systemd-nspawn/nspawn-expose-ports.c index 6c9dbf4508..a00e7600aa 100644 --- a/src/systemd-nspawn/nspawn-expose-ports.c +++ b/src/systemd-nspawn/nspawn-expose-ports.c @@ -26,7 +26,6 @@ #include "basic/util.h" #include "firewall-util.h" #include "sd-netlink/local-addresses.h" -#include "sd-netlink/netlink-util.h" #include "sd-netlink/sd-netlink.h" #include "nspawn-expose-ports.h" diff --git a/src/systemd-nspawn/nspawn-gperf.gperf b/src/systemd-nspawn/nspawn-gperf.gperf index 2b5d452662..f814ed8863 100644 --- a/src/systemd-nspawn/nspawn-gperf.gperf +++ b/src/systemd-nspawn/nspawn-gperf.gperf @@ -1,6 +1,6 @@ %{ #include <stddef.h> -#include "conf-parser.h" +#include "shared/conf-parser.h" #include "nspawn-settings.h" #include "nspawn-expose-ports.h" %} diff --git a/src/systemd-nspawn/nspawn-mount.h b/src/systemd-nspawn/nspawn-mount.h index 0daf145412..0b3f3fbefa 100644 --- a/src/systemd-nspawn/nspawn-mount.h +++ b/src/systemd-nspawn/nspawn-mount.h @@ -20,6 +20,7 @@ ***/ #include <stdbool.h> +#include <sys/types.h> typedef enum VolatileMode { VOLATILE_NO, diff --git a/src/systemd-nspawn/nspawn-network.c b/src/systemd-nspawn/nspawn-network.c index f27b6c4105..1ae0a52f03 100644 --- a/src/systemd-nspawn/nspawn-network.c +++ b/src/systemd-nspawn/nspawn-network.c @@ -32,7 +32,6 @@ #include "basic/stat-util.h" #include "basic/string-util.h" #include "basic/util.h" -#include "sd-netlink/netlink-util.h" #include "sd-netlink/sd-netlink.h" #include "shared/udev-util.h" diff --git a/src/systemd-nspawn/nspawn-patch-uid.c b/src/systemd-nspawn/nspawn-patch-uid.c index 998bd9725d..2cdb541ebb 100644 --- a/src/systemd-nspawn/nspawn-patch-uid.c +++ b/src/systemd-nspawn/nspawn-patch-uid.c @@ -27,16 +27,16 @@ #include <sys/vfs.h> #include <unistd.h> -#include "acl-util.h" -#include "dirent-util.h" -#include "fd-util.h" -#include "missing.h" +#include "shared/acl-util.h" +#include "basic/dirent-util.h" +#include "basic/fd-util.h" +#include "basic/missing.h" #include "nspawn-patch-uid.h" -#include "stat-util.h" -#include "stdio-util.h" -#include "string-util.h" -#include "strv.h" -#include "user-util.h" +#include "basic/stat-util.h" +#include "basic/stdio-util.h" +#include "basic/string-util.h" +#include "basic/strv.h" +#include "basic/user-util.h" #ifdef HAVE_ACL diff --git a/src/systemd-nspawn/nspawn-register.c b/src/systemd-nspawn/nspawn-register.c index f1ed51e8b8..3f174b6f24 100644 --- a/src/systemd-nspawn/nspawn-register.c +++ b/src/systemd-nspawn/nspawn-register.c @@ -22,7 +22,7 @@ #include "basic/stat-util.h" #include "basic/strv.h" #include "basic/util.h" -#include "sd-bus/bus-error.h" +#include "sd-bus/bus-error.h" /* for bus_error_message */ #include "shared/bus-unit-util.h" #include "shared/bus-util.h" diff --git a/src/systemd-nspawn/nspawn.c b/src/systemd-nspawn/nspawn.c index 8ec058431b..fc913a2363 100644 --- a/src/systemd-nspawn/nspawn.c +++ b/src/systemd-nspawn/nspawn.c @@ -43,36 +43,35 @@ #include <sys/types.h> #include <unistd.h> -#include "sd-daemon.h" -#include "sd-id128.h" - -#include "alloc-util.h" -#include "barrier.h" -#include "base-filesystem.h" -#include "blkid-util.h" -#include "btrfs-util.h" -#include "cap-list.h" -#include "capability-util.h" -#include "cgroup-util.h" -#include "copy.h" -#include "dev-setup.h" -#include "env-util.h" -#include "fd-util.h" -#include "fdset.h" -#include "fileio.h" -#include "formats-util.h" -#include "fs-util.h" -#include "gpt.h" -#include "hostname-util.h" -#include "log.h" +#include <systemd/sd-daemon.h> +#include <systemd/sd-id128.h> + +#include "basic/alloc-util.h" +#include "basic/barrier.h" +#include "shared/base-filesystem.h" +#include "basic/blkid-util.h" +#include "basic/btrfs-util.h" +#include "basic/cap-list.h" +#include "basic/capability-util.h" +#include "basic/cgroup-util.h" +#include "basic/copy.h" +#include "shared/dev-setup.h" +#include "basic/env-util.h" +#include "basic/fd-util.h" +#include "basic/fdset.h" +#include "basic/fileio.h" +#include "basic/formats-util.h" +#include "basic/fs-util.h" +#include "shared/gpt.h" +#include "basic/hostname-util.h" +#include "basic/log.h" #include "loopback-setup.h" #include "machine-id-setup.h" -#include "machine-image.h" -#include "macro.h" -#include "missing.h" -#include "mkdir.h" -#include "mount-util.h" -#include "netlink-util.h" +#include "shared/machine-image.h" +#include "basic/macro.h" +#include "basic/missing.h" +#include "basic/mkdir.h" +#include "basic/mount-util.h" #include "nspawn-cgroup.h" #include "nspawn-expose-ports.h" #include "nspawn-mount.h" @@ -82,27 +81,27 @@ #include "nspawn-settings.h" #include "nspawn-setuid.h" #include "nspawn-stub-pid1.h" -#include "parse-util.h" -#include "path-util.h" -#include "process-util.h" -#include "ptyfwd.h" -#include "random-util.h" -#include "rm-rf.h" +#include "basic/parse-util.h" +#include "basic/path-util.h" +#include "basic/process-util.h" +#include "shared/ptyfwd.h" +#include "basic/random-util.h" +#include "basic/rm-rf.h" #ifdef HAVE_SECCOMP -#include "seccomp-util.h" +#include "shared/seccomp-util.h" #endif -#include "selinux-util.h" -#include "signal-util.h" -#include "socket-util.h" -#include "stat-util.h" -#include "stdio-util.h" -#include "string-util.h" -#include "strv.h" -#include "terminal-util.h" -#include "udev-util.h" -#include "umask-util.h" -#include "user-util.h" -#include "util.h" +#include "basic/selinux-util.h" +#include "basic/signal-util.h" +#include "basic/socket-util.h" +#include "basic/stat-util.h" +#include "basic/stdio-util.h" +#include "basic/string-util.h" +#include "basic/strv.h" +#include "basic/terminal-util.h" +#include "shared/udev-util.h" +#include "basic/umask-util.h" +#include "basic/user-util.h" +#include "basic/util.h" /* Note that devpts's gid= parameter parses GIDs as signed values, hence we stay away from the upper half of the 32bit * UID range here */ diff --git a/src/systemd-remount-fs/Makefile b/src/systemd-remount-fs/Makefile index 49b10a879a..a0dcf27135 100644 --- a/src/systemd-remount-fs/Makefile +++ b/src/systemd-remount-fs/Makefile @@ -32,4 +32,7 @@ systemd_remount_fs_SOURCES = \ systemd_remount_fs_LDADD = \ libshared.la +sd.CPPFLAGS += -DMOUNT_PATH=\"$(MOUNT_PATH)\" +sd.CPPFLAGS += -DUMOUNT_PATH=\"$(UMOUNT_PATH)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/systemd-remount-fs/mount-setup.c b/src/systemd-remount-fs/mount-setup.c new file mode 120000 index 0000000000..67cb74c218 --- /dev/null +++ b/src/systemd-remount-fs/mount-setup.c @@ -0,0 +1 @@ +../grp-system/libcore/mount-setup.c
\ No newline at end of file diff --git a/src/systemd-remount-fs/mount-setup.h b/src/systemd-remount-fs/mount-setup.h new file mode 120000 index 0000000000..bae54ba700 --- /dev/null +++ b/src/systemd-remount-fs/mount-setup.h @@ -0,0 +1 @@ +../grp-system/libcore/mount-setup.h
\ No newline at end of file diff --git a/src/systemd-remount-fs/remount-fs.c b/src/systemd-remount-fs/remount-fs.c index 936b5f11b3..116c370ef7 100644 --- a/src/systemd-remount-fs/remount-fs.c +++ b/src/systemd-remount-fs/remount-fs.c @@ -33,6 +33,7 @@ #include "basic/signal-util.h" #include "basic/strv.h" #include "basic/util.h" + #include "mount-setup.h" /* Goes through /etc/fstab and remounts all API file systems, applying diff --git a/src/systemd-stdio-bridge/systemd-stdio-bridge.completion.bash b/src/systemd-stdio-bridge/systemd-stdio-bridge.completion.bash new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/src/systemd-stdio-bridge/systemd-stdio-bridge.completion.bash diff --git a/src/systemd-stdio-bridge/systemd-stdio-bridge.completion.zsh b/src/systemd-stdio-bridge/systemd-stdio-bridge.completion.zsh new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/src/systemd-stdio-bridge/systemd-stdio-bridge.completion.zsh diff --git a/src/systemd-system-update-generator/Makefile b/src/systemd-system-update-generator/Makefile index fd44aef359..2fa9008ff6 100644 --- a/src/systemd-system-update-generator/Makefile +++ b/src/systemd-system-update-generator/Makefile @@ -30,4 +30,6 @@ systemd_system_update_generator_SOURCES = \ systemd_system_update_generator_LDADD = \ libshared.la +sd.CPPFLAGS += -DSYSTEM_DATA_UNIT_PATH=\"$(systemunitdir)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/systemd-timesyncd/Makefile b/src/systemd-timesyncd/Makefile index c9289846c4..511c86ba82 100644 --- a/src/systemd-timesyncd/Makefile +++ b/src/systemd-timesyncd/Makefile @@ -61,4 +61,9 @@ EXTRA_DIST += \ units/systemd-timesyncd.service.in \ src/timesync/timesyncd.conf.in +dist_systempreset_DATA = \ + 90-timesyncd.preset + +sd.CPPFLAGS += -DPKGSYSCONFDIR=\"$(pkgsysconfdir)\" + include $(topsrcdir)/build-aux/Makefile.tail.mk diff --git a/src/systemd-timesyncd/timesyncd-gperf.gperf b/src/systemd-timesyncd/timesyncd-gperf.gperf index 29a2cfeef6..b8af831105 100644 --- a/src/systemd-timesyncd/timesyncd-gperf.gperf +++ b/src/systemd-timesyncd/timesyncd-gperf.gperf @@ -1,6 +1,6 @@ %{ #include <stddef.h> -#include "conf-parser.h" +#include "shared/conf-parser.h" #include "timesyncd-conf.h" %} struct ConfigPerfItem; diff --git a/src/test/test-af-list.c b/src/test/test-af-list.c index 8139df55b3..b773de60e7 100644 --- a/src/test/test-af-list.c +++ b/src/test/test-af-list.c @@ -27,7 +27,7 @@ static const struct af_name* lookup_af(register const char *str, register unsigned int len); #include "af-from-name.h" -#include "af-list.h" +#include "basic/af-list.h" #include "af-to-name.h" int main(int argc, const char *argv[]) { diff --git a/src/test/test-arphrd-list.c b/src/test/test-arphrd-list.c index 3755a3e3d0..f24871398e 100644 --- a/src/test/test-arphrd-list.c +++ b/src/test/test-arphrd-list.c @@ -27,7 +27,7 @@ static const struct arphrd_name* lookup_arphrd(register const char *str, register unsigned int len); #include "arphrd-from-name.h" -#include "arphrd-list.h" +#include "basic/arphrd-list.h" #include "arphrd-to-name.h" int main(int argc, const char *argv[]) { diff --git a/src/test/test-netlink-manual.c b/src/test/test-netlink-manual.c index 49b659b3a9..50c960882c 100644 --- a/src/test/test-netlink-manual.c +++ b/src/test/test-netlink-manual.c @@ -21,8 +21,8 @@ #include <libkmod.h> #include <net/if.h> -#include <linux/ip.h> #include <linux/if_tunnel.h> +#include <linux/ip.h> #include "basic/macro.h" #include "basic/util.h" diff --git a/sysctl.d/.gitignore b/sysctl.d/.gitignore deleted file mode 100644 index e326c180c3..0000000000 --- a/sysctl.d/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/50-coredump.conf diff --git a/tmpfiles.d/.gitignore b/tmpfiles.d/.gitignore deleted file mode 100644 index 4f0ecaa9c3..0000000000 --- a/tmpfiles.d/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/etc.conf -/systemd.conf diff --git a/tools/find_includes b/tools/find_includes new file mode 100755 index 0000000000..6dfb406fa3 --- /dev/null +++ b/tools/find_includes @@ -0,0 +1,52 @@ +#!/usr/bin/env bash + +phase=phase0 + +phase0() { + phase=phase0 + local line="$1" + case "$line" in + '#include'*|'typedef '*';') + phase1 "$line" + ;; + *) + ;; + esac +} + +phase1() { + phase=phase1 + local line="$1" + case "$line" in + '') + ;; + '#include'*) + ;; + 'typedef '*';') + ;; + *) + phase2 "$line" + ;; + esac +} + +phase2() { + phase=phase2 + local line="$1" + printf '%s\n' "$line" + cat +} + +main() { + current_file="$1" + set -o pipefail + { + IFS='' + while read -r line; do + "$phase" "$line" + IFS='' + done + } < "$current_file" | grep '^#include' | ifne printf '%s\n' "$current_file" +} + +main "$@" diff --git a/tools/fixup.sh b/tools/fixup.sh new file mode 100755 index 0000000000..651feb6cf8 --- /dev/null +++ b/tools/fixup.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +for lib in basic shared systemd-network systemd; do + pushd src/lib${lib}/include/${lib} + find . -type f -exec sed -ri -e "s|$lib/||" -- {} + + popd +done + +find src \( -name '*.h' -o -name '*.c' \) -type f -exec ./fixup_includes {} \; diff --git a/tools/fixup_includes b/tools/fixup_includes new file mode 100755 index 0000000000..957733cdc0 --- /dev/null +++ b/tools/fixup_includes @@ -0,0 +1,215 @@ +#!/usr/bin/env bash + +panic() { + >&2 echo panic + exit 2 +} + +out() { + printf '%q ' "$@" +} + +# system +# linux +# public +# protected +# private +classify() { + local path=$1 + if [[ "$path" = linux/* ]]; then + out linux "$path" + elif [[ -f "${current_file%/*}/${path}" ]]; then + out private "$path" + elif [[ "$path" != systemd/* ]] && + [[ "$path" != libudev.h ]] && + cpp -include "$path" <<<'' &>/dev/null; + then + out system "$path" + else + case "$path" in + asm/sgidefs.h|dbus/dbus.h|efi.h|efilib.h|gio/gio.h|glib.h|libmount.h) + out system "$path" + ;; + util.h|*/util.h) + if [[ "$current_file" = */systemd-boot/* ]]; then + out private util.h + else + out protected basic/util.h + fi + ;; + *) + file=$(find src -type f -name "${path##*/}") + if [[ -f "$file" ]]; then + case "$file" in + */src/*) + if [[ "${current_file%/*}" = "${file%/*}" ]]; then + out private "${file##*/}" + else + out protected "${file##*/src/}" + fi + ;; + */libsystemd/include/*|*/libudev/include/*) + out public "${file##*/include/}" + ;; + */include/*) + out protected "${file##*/include/}" + ;; + *) + if [[ "${current_file%/*}" = "${file%/*}" ]]; then + out private "${file##*/}" + else + out protected "${file##*/}" + fi + ;; + esac + else + >&2 printf 'Cannot figure out: %q\n' "$path" + exit 2 + fi + ;; + esac + fi +} + +phase=phase0 +hook=: + +phase0() { + phase=phase0 + hook=: + local line="$1" + case "$line" in + '#include'*|'typedef '*';') + phase1 "$line" + ;; + *) + printf '%s\n' "$line" + ;; + esac +} + +phase1_tail= +system=() +linux=() +public=() +protected=() +typedef=(); typedef_last=true +private=() +phase1_flush() { + local b=: + if [[ ${#system[@]} -gt 0 ]]; then + printf '%s\n' "${system[@]}" | sort -u + b=echo + fi + if [[ ${#linux[@]} -gt 0 ]]; then + $b + printf '%s\n' "${linux[@]}" + b=echo + fi + if [[ ${#public[@]} -gt 0 ]]; then + $b + printf '%s\n' "${public[@]}" | sort -u + b=echo + fi + if [[ ${#protected[@]} -gt 0 ]]; then + $b + printf '%s\n' "${protected[@]}" | sort -u + b=echo + fi + if [[ ${#typedef[@]} -gt 0 ]] && ! $typedef_last; then + $b + printf '%s\n' "${typedef[@]}" | sort -u + b=echo + fi + if [[ ${#private[@]} -gt 0 ]]; then + $b + printf '%s\n' "${private[@]}" | sort -u + b=echo + fi + if [[ ${#typedef[@]} -gt 0 ]] && $typedef_last; then + $b + printf '%s\n' "${typedef[@]}" + fi + printf '%s' "$phase1_tail" +} +phase1() { + phase=phase1 + hook=phase1_flush + local line="$1" + case "$line" in + '') + phase1_tail+=$'\n' + ;; + '#include'*) + phase1_tail='' + local re='^#include [<"]([^">]*)[">](.*)' + if [[ "$line" =~ $re ]]; then + IFS=' ' + local buf + buf="$(classify "${BASH_REMATCH[1]}")" || panic + read -r class path <<<"$buf" + case "$class" in + system) + printf -v line '#include <%s>%s' "$path" "${BASH_REMATCH[2]}" + system+=("$line") + ;; + linux) + printf -v line '#include <%s>%s' "$path" "${BASH_REMATCH[2]}" + linux+=("$line") + ;; + public) + printf -v line '#include <%s>%s' "$path" "${BASH_REMATCH[2]}" + public+=("$line") + ;; + protected) + printf -v line '#include "%s"%s' "$path" "${BASH_REMATCH[2]}" + protected+=("$line") + ;; + private) + if [[ ${#typedef[@]} -gt 0 ]]; then + typedef_last=false + fi + printf -v line '#include "%s"%s' "$path" "${BASH_REMATCH[2]}" + private+=("$line") + ;; + esac + else + panic + fi + ;; + 'typedef '*';') + phase1_tail='' + typedef+=("$line") + ;; + *) + phase1_flush + phase2 "$line" + ;; + esac +} + +phase2() { + phase=phase2 + hook=: + local line="$1" + printf '%s\n' "$line" + cat +} + +main() { + current_file="$1" + printf ' => %s\n' "$current_file" + set -o pipefail + trap 'rm -f -- "$current_file.tmp"' EXIT + { + IFS='' + while read -r line; do + "$phase" "$line" + IFS='' + done + "$hook" + } < "$current_file" > "$current_file.tmp" + mv -Tf "$current_file.tmp" "$current_file" +} + +main "$@" diff --git a/tools/move.sh b/tools/move.sh new file mode 100755 index 0000000000..9ad99851fe --- /dev/null +++ b/tools/move.sh @@ -0,0 +1,465 @@ +#!/usr/bin/env bash + +in_array() { + local needle=$1; shift + local item + for item in "$@"; do + [[ $item = $needle ]] && return 0 # Found + done + return 1 # Not Found +} + +split_lib() { + local d=$1 + + mkdir "$d/test" + mv "$d"/test-* -t "$d/test" + + mkdir "$d/src" + mv "$d"/*.c -t "$d/src" + + local h=${d##*/lib} + mkdir "$d/include" + mkdir "$d/include/$h" + mv "$d"/*.h -t "$d/include/$h" +} + +grp() { + local grp=$1 + shift + mkdir "$grp" + mv "$@" -t "$grp" +} + +move_files() ( + # first focus on getting directories to the right names. + mv -T src/{,systemd-}dbus1-generator + mv -T src/{,systemd-}debug-generator + mv -T src/{,systemd-}fstab-generator + mv -T src/{,systemd-}getty-generator + mv -T src/{,systemd-}gpt-auto-generator + mv -T src/{,systemd-}rc-local-generator + mv -T src/{,systemd-}system-update-generator + mv -T src/{,systemd-}sysv-generator + + mv -T src/{,systemd-}ac-power + mv -T src/{,systemd-}activate + mv -T src/{,systemd-}analyze + mv -T src/{,systemd-}ask-password + mv -T src/{,systemd-}backlight + mv -T src/{,systemd-}binfmt + mv -T src/{,systemd-}cgls + mv -T src/{,systemd-}cgroups-agent + mv -T src/{,systemd-}cgtop + mv -T src/{,systemd-}coredump + mv -T src/{,systemd-}cryptsetup + mv -T src/{,systemd-}delta + mv -T src/{,systemd-}detect-virt + mv -T src/{,systemd-}escape + mv -T src/{,systemd-}firstboot + mv -T src/{,systemd-}fsck + mv -T src/{,systemd-}hibernate-resume + mv -T src/{,systemd-}hwdb + mv -T src/{,systemd-}initctl + mv -T src/{,systemd-}machine-id-setup + mv -T src/{,systemd-}modules-load + mv -T src/{,systemd-}notify + mv -T src/{,systemd-}nspawn + mv -T src/{,systemd-}path + mv -T src/{,systemd-}quotacheck + mv -T src/{,systemd-}random-seed + mv -T src/{,systemd-}remount-fs + mv -T src/{,systemd-}reply-password + mv -T src/{,systemd-}rfkill + mv -T src/{,systemd-}run + mv -T src/{,systemd-}sleep + mv -T src/{,systemd-}stdio-bridge + mv -T src/{,systemd-}sysctl + mv -T src/{,systemd-}sysusers + mv -T src/{,systemd-}tmpfiles + mv -T src/{,systemd-}tty-ask-password-agent + mv -T src/{,systemd-}update-done + mv -T src/{,systemd-}update-utmp + mv -T src/{,systemd-}user-sessions + mv -T src/vconsole src/systemd-vconsole-setup + mv -T src/socket-proxy src/systemd-socket-proxyd + mv -T src/timesync src/systemd-timesyncd + + mv src/udev/*_id -t src + mv src/udev/collect -t src + + mv -T src/boot/efi src/systemd-boot + mv -T src/boot src/bootctl + + mkdir src/busctl + mv src/libsystemd/src/sd-bus/busctl* -t src/busctl + + mkdir src/coredumpctl + mv src/coredump{,ctl}/coredumpctl.c + + mv -T src/{,lib}basic + mv -T src/{,lib}core + mv -T src/{,lib}shared + + mv -T src/lib{shared,core}/linux + + mkdir src/libfirewall + mv -T src/lib{shared,firewall}/firewall-util.c + mv -T src/lib{shared,firewall}/firewall-util.h + + split_lib src/libbasic + split_lib src/libshared + split_lib src/libsystemd-network + + mkdir src/libsystemd/include + mv -T src/{,libsystemd/include}/systemd + + # src/resolve => src/{libbasic-dns,resolve,resolved} + mkdir src/libbasic-dns + mv -t src/libbasic-dns \ + src/resolve/dns-type.{c,h} \ + src/resolve/resolved-dns-{anser,dnssec,packet,question,rr}.{c,h} \ + src/resolve/test-* + mkdir src/systemd-resolve + mv -t src/systemd-resolve \ + src/resolve/resolve-tool.c + mkdir src/systemd-resolved + mv -t src/systemd-resolved \ + src/resolve/.gitignore \ + src/resolve/* + rmdir src/resolve + + # src/import => src/{libimport,systemd-{export,importd,import}} + mkdir src/libimport + mv -t src/libimport \ + src/import/import-common.{c,h} \ + src/import/import-compress.{c,h} \ + src/import/qcow2-util.{c,h} \ + src/import/test-qcow2.h + mkdir src/systemd-export + mv -t src/systemd-export \ + src/import/export* + mkdir src/systemd-importd + mv -t src/systemd-importd \ + src/import/.gitignore \ + src/import/importd.c \ + src/import/org.* + mkdir src/systemd-import + mv -t src/systemd-import \ + src/import* + + # src/journal => src/.. + mkdir src/libjournal-core + mv -t src/libjournal-core \ + src/journal/journald-* \ + src/journal/test-* + mkdir src/systemd-cat + mv -t src/systemd-cat \ + src/journal/cat.c + mkdir src/journalctl + mv -t src/journalctl \ + src/journalctl/journal-qrcode.{c,h} \ + src/journalctl/journalctl.c + mkdir src/journald + mv -t src/journald \ + src/journal/journald.* + mkdir src/libsystemd/src/sd-journal + mv -t src/libsystemd/src/sd-journal \ + src/journal/audit-type.c \ + src/journal/audit-type.h \ + src/journal/catalog.c \ + src/journal/catalog.h \ + src/journal/compress.c \ + src/journal/compress.h \ + src/journal/fsprg.c \ + src/journal/fsprg.h \ + src/journal/journal-authenticate.c \ + src/journal/journal-authenticate.h \ + src/journal/journal-def.h \ + src/journal/journal-file.c \ + src/journal/journal-file.h \ + src/journal/journal-internal.h \ + src/journal/journal-send.c \ + 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/mmap-cache.c \ + src/journal/mmap-cache.h \ + src/journal/sd-journal.c + rmdir src/journal + + # src/network => src/... + mkdir src/systemd-networkd-wait-online + mv -t src/systemd-networkd-wait-online \ + network/networkd-wait-online* + mkdir src/libnetworkd-core + mv -t src/libnetworkd-core \ + network/.gitignore \ + network/networkd-* + mkdir src/networkctl + mv -t src/networkctl \ + network/networkctl.c + mkdir src/systemd-networkd + mv -t src/systemd-networkd \ + network/networkd* \ + network/org.* + rmdir network + + # src/machine => src/{machinectl,systemd-machined} + mkdir src/machinectl + mv -t src/machinectl \ + src/machine/machinectl* + mkdir src/systemd-machined + mv -t src/systemd-machined \ + machine/.gitignore \ + machine/* + + # auto-distribute the stuff + ( + cd man + for file in *.xml; do + if [[ -d ../src/"${file%.xml}" ]]; then + mv "$file" -t ../src/"${file%.xml}" + fi + done + ) + ( + cd units + for file in *; do + if [[ -d ../src/"${file%%.*}" ]]; then + mv "$file" -t ../src/"${file%%.*}" + elif [[ -d ../src/"${file%%@*}" ]]; then + mv "$file" -t ../src/"${file%%@*}" + fi + done + ) + ( + cd shell-completion/bash + for file in *; do + if [[ -d ../src/"$file" ]]; then + mv -T "$file" "../src/$file/$file.completion.bash" + fi + done + ) + ( + cd shell-completion/zsh + for file in _*; do + if [[ -d ../src/"${file#_}" ]]; then + mv -T "$file" "../src/${file#_}/${file#_}.completion.zsh" + fi + done + ) + + # categorize + grp src/grp-boot \ + src/bootctl \ + src/kernel-install \ + src/systemd-boot + grp src/grp-coredump \ + src/coredumpctl \ + src/systemd-coredump + grp src/grp-hostname \ + src/hostnamectl \ + src/systemd-hostnamed + grp src/grp-initprogs \ + src/systemd-backlight \ + src/systemd-binfmt \ + src/systemd-detect-virt \ + src/systemd-firstboot \ + src/systemd-fsck \ + src/systemd-modules-load \ + src/systemd-quotacheck \ + src/systemd-random-seed \ + src/systemd-rfkill \ + src/systemd-sysctl \ + src/systemd-sysusers \ + src/systemd-tmpfiles \ + src/systemd-update-done \ + src/systemd-update-utmp \ + src/systemd-user-sessions \ + src/systemd-vconsole-setup + grp src/grp-initprogs/grp-sleep \ + src/systemd-hibernate-resume \ + src/systemd-hibernate-resume-generator \ + src/systemd-sleep + grp src/grp-journal \ + catalog \ + src/journalctl \ + src/libjournal-core \ + src/systemd-cat \ + src/systemd-journald + grp src/grp-journal/grp-remote \ + src/systemd-journal-gatewayd \ + src/systemd-journal-remote \ + src/systemd-journal-upload + grp src/grp-locale \ + src/localectl \ + src/systemd-localed + grp src/grp-login \ + src/loginctl \ + src/pam_systemd \ + src/systemd-inhibit \ + src/systemd-logind + grp src/grp-machine \ + src/machinectl \ + src/nss-mymachines \ + src/systemd-machined + grp src/grp-machine/grp-import \ + src/libimport \ + src/systemd-export \ + src/systemd-import \ + src/systemd-importd \ + src/systemd-pull + grp src/grp-network \ + network \ + src/libnetworkd-core \ + src/networkctl \ + src/systemd-networkd \ + src/systemd-networkd-wait-online + grp src/grp-resolve \ + src/libbasic-dns \ + src/nss-resolve \ + src/systemd-resolve \ + src/systemd-resolved + grp src/systemd \ + src/libcore \ + src/systemctl \ + src/systemd + grp src/systemd/grp-utils \ + src/systemd-analyze \ + src/systemd-delta \ + src/systemd-fstab-generator \ + src/systemd-run \ + src/systemd-sysv-generator + grp src/grp-timedate \ + src/systemd-timedated \ + src/timedatectl + grp src/grp-udev \ + rules \ + src/*_id \ + src/systemd-hwdb \ + src/systemd-udevd \ + src/systemd-udevadm + grp src/grp-utils \ + src/systemd-ac-power \ + src/systemd-escape \ + src/systemd-notify \ + src/systemd-path \ + src/systemd-socket-activate +) + +breakup_makefile() ( + find . \( -name Makefile -o -name '*.mk' \) -delete + + touch .tmp.move.all + files=(.tmp.move.all) + file=/dev/null + IFS='' + while read -r line; do + if [[ $line = '#@'* ]]; then + file="${line#'#@'}" + file="${file%% *}" + elif [[ $file = all ]]; then + printf '%s\n' "$line" | tee -a "${files[@]}" >/dev/null + else + if ! in_array "$file" "${files[@]}"; then + cat .tmp.move.all > "$file" + files+=("$file") + fi + printf '%s\n' "$line" >> "$file" + fi + done < <(fixup_makefile <Makefile.am) + rm .tmp.move.all +) + +fixup_includes() ( + find src \( -name '*.h' -o -name '*.c' \) \ + -exec grep '#include ["<]sd-' -l -- {} + | + xargs -d $'\n' sed -ri \ + -e 's|#include "(sd-[^"]*)"|#include <systemd/\1>|' \ + -e 's|#include <(sd-[^>]*)>|#include <systemd/\1>|' +) + +fixup_makefile() { + sed -r \ + -e '/^[^# ]*:/ { s|^(\s*)\S+/|\1$(outdir)/| }' \ + -e 's|^if (.*)|ifneq ($(\1),)|' \ + -e 's|--version-script=.*/([^/]+)\.sym|--version-script=$(srcdir)/\1.sym|g' +} + +fixup_makefiles() ( + sed -ri \ + -e '/^ \$\(AM_V_at\)\$\(MKDIR_P\) \$\(dir \$@\)/d' \ + -e 's/ \$\(CFLAGS\) / /g' \ + -e 's/ \$\(CPPFLAGS\) / /g' \ + -e 's/ \$\(AM_CPPFLAGS\) / $(sd.ALL_CPPFLAGS) /g' \ + -e '/^[^# ]*:/ { s|\S+/|$(outdir)/|g }' \ + src/libbasic/include/basic/Makefile \ + src/libsystemd/src/Makefile \ + src/libsystemd/src/sd-journal/Makefile \ + src/grp-udev/libudev-core/Makefile + find -type f -name Makefile|while read -r filename; do + sed -r -i "s|(/\.\.)*/config.mk|/$(realpath -ms --relative-to="${filename%/*}" config.mk)|" "$filename" + done +) + +breakup_zshcompletion() ( + sed_expr=' + 1 { + i #compdef %s + d + } + /^case/,/^esac/ { + /^ %s)/,/^ ;;/ { + s/^ //p + } + d + } + ' + + cd shell-completion/zsh + read -r _ cmds < _systemd + for cmd in $cmds; do + printf -v cmd_sed_expr "$sed_expr" $cmd $cmd + sed -e "$cmd_sed_expr" < _systemd > _$cmd + done + rm _systemd +) + +move() ( + >&2 echo ' => breakup_zshcompletion' + breakup_zshcompletion + >&2 echo ' => move_files' + move_files + >&2 echo ' => breakup_makefile' + #breakup_makefile + >&2 echo ' => fixup_includes' + fixup_includes + >&2 echo ' => fixup_makefiles' + #fixup_makefiles +) + +main() { + set -e + + if [[ -n "$(git status -s)" ]] || [[ -n "$(git clean -xdn)" ]]; then + echo 'There are changes in the current directory.' >&2 + exit 1 + fi + + git checkout -b tmp/postmove + + move + + git add . + git commit -m './move.sh' + git merge -s ours notsystemd/postmove + git checkout notsystemd/postmove + git merge tmp/postmove + git branch -d tmp/postmove +} + +main "$@" diff --git a/tools/reset.sh b/tools/reset.sh new file mode 100755 index 0000000000..d7141587fa --- /dev/null +++ b/tools/reset.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +set -e +git checkout notsystemd/premove +git branch -D tmp/postmove || true +git checkout . +git clean -xdf |