diff --git a/.gitignore b/.gitignore
index b9cb51c0e7f..b83dd9acd79 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,7 @@
+*.5
+*.html
*~
+*.tar.gz
test-ns
test-loopback
systemd-initctl.service
diff --git a/Makefile.am b/Makefile.am
index 8ad1969bdcd..e562b18a2d1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -17,12 +17,12 @@
ACLOCAL_AMFLAGS = -I m4
-pkgsysconfdir=$(sysconfdir)/systemd
dbuspolicydir=$(sysconfdir)/dbus-1/system.d
-udevrulesdir=/lib/udev/rules.d
+udevrulesdir=@udevrulesdir@
+pkgsysconfdir=$(sysconfdir)/systemd
systemunitdir=$(pkgdatadir)/system
-sessionunitdir=$(pkgdatadir)/system
+sessionunitdir=$(pkgdatadir)/session
AM_CPPFLAGS = \
-include $(top_builddir)/config.h \
@@ -35,8 +35,9 @@ AM_CPPFLAGS = \
-DCGROUP_AGENT_PATH=\"$(pkglibexecdir)/systemd-cgroups-agent\" \
-DSYSTEMD_BINARY_PATH=\"$(sbindir)/systemd\"
-# -DSYSTEMD_BINARY_PATH=\"/home/lennart/projects/systemd/systemd\"
-VALA_CFLAGS=-Wno-unused-variable -Wno-unused-function
+VALA_CFLAGS = \
+ -Wno-unused-variable \
+ -Wno-unused-function
sbin_PROGRAMS = \
systemd
@@ -60,27 +61,24 @@ noinst_PROGRAMS = \
test-ns \
test-loopback
-dbuspolicy_DATA = \
+dist_dbuspolicy_DATA = \
org.freedesktop.systemd1.conf
-udevrules_DATA = \
+dist_udevrules_DATA = \
99-systemd.rules
-systemunit_DATA = \
+dist_systemunit_DATA = \
units/emergency.service \
- systemd-initctl.service \
units/systemd-initctl.socket \
- systemd-logger.service \
units/systemd-logger.socket
+systemunit_DATA = \
+ systemd-initctl.service \
+ systemd-logger.service
+
EXTRA_DIST = \
- org.freedesktop.systemd1.conf \
- 99-systemd.rules \
- units/emergency.service \
units/systemd-initctl.service.in \
- units/systemd-initctl.socket \
units/systemd-logger.service.in \
- units/systemd-logger.socket \
LICENSE \
README
@@ -147,6 +145,21 @@ EXTRA_DIST += \
linux/auto_dev-ioctl.h \
initreq.h
+dist_man_MANS = \
+ systemd.unit.5 \
+ systemd.service.5
+
+HTMLMANS = \
+ systemd.unit.html \
+ systemd.service.html
+
+dist_noinst_DATA = \
+ $(HTMLMANS)
+
+EXTRA_DIST += \
+ man/systemd.unit.xml \
+ man/systemd.service.xml
+
systemd_SOURCES = \
$(COMMON_SOURCES) \
main.c
@@ -251,6 +264,18 @@ CLEANFILES = \
systemd-initctl.service \
systemd-logger.service
+if HAVE_XSLTPROC
+%.5: man/%.xml
+ $(XSLTPROC) -o $@ -nonet http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+
+%.html: man/%.xml
+ $(XSLTPROC) -o $@ -nonet http://docbook.sourceforge.net/release/xsl/current/xhtml-1_1/docbook.xsl $<
+
+CLEANFILES += \
+ $(dist_man_MANS) \
+ $(HTMLMANS)
+endif
+
install-data-hook:
$(MKDIR_P) -m 0755 \
$(DESTDIR)$(pkgsysconfdir)/system \
@@ -259,3 +284,6 @@ install-data-hook:
$(DESTDIR)/cgroup/debug
rm -f $(DESTDIR)$(sysconfdir)/xdg/systemd/session
ln -sf $(DESTDIR)$(pkgsysconfdir)/session $(DESTDIR)$(sysconfdir)/xdg/systemd/session
+
+DISTCHECK_CONFIGURE_FLAGS = \
+ --with-udevrulesdir=$$dc_install_base/$(udevrulesdir)
diff --git a/configure.ac b/configure.ac
index 65353d52fa6..de61b2d52f9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -43,7 +43,43 @@ AM_PROG_CC_C_O
AC_PROG_GCC_TRADITIONAL
AC_USE_SYSTEM_EXTENSIONS
-CC_CHECK_CFLAGS_APPEND([-Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -Wno-overlength-strings -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option -Wno-missing-field-initializers])
+CC_CHECK_CFLAGS_APPEND([ \
+ -Wall \
+ -W \
+ -Wextra \
+ -pipe \
+ -Wno-long-long \
+ -Winline \
+ -Wvla \
+ -Wno-overlength-strings \
+ -Wundef \
+ -Wformat=2 \
+ -Wlogical-op \
+ -Wsign-compare \
+ -Wformat-security \
+ -Wmissing-include-dirs \
+ -Wformat-nonliteral \
+ -Wold-style-definition \
+ -Wpointer-arith \
+ -Winit-self \
+ -Wdeclaration-after-statement \
+ -Wfloat-equal \
+ -Wmissing-prototypes \
+ -Wstrict-prototypes \
+ -Wredundant-decls \
+ -Wmissing-declarations \
+ -Wmissing-noreturn \
+ -Wshadow \
+ -Wendif-labels \
+ -Wcast-align \
+ -Wstrict-aliasing=2 \
+ -Wwrite-strings \
+ -Wno-unused-parameter \
+ -ffast-math \
+ -Wp,-D_FORTIFY_SOURCE=2 \
+ -fno-common \
+ -fdiagnostics-show-option \
+ -Wno-missing-field-initializers])
AC_SEARCH_LIBS([clock_gettime], [rt], [], [AC_MSG_ERROR([*** POSIX RT library not found])])
AC_SEARCH_LIBS([cap_init], [cap], [], [AC_MSG_ERROR([*** POSIX caps library not found])])
@@ -51,6 +87,7 @@ AC_CHECK_HEADERS([sys/capability.h], [], [AC_MSG_ERROR([*** POSIX caps headers n
# This makes sure pkg.m4 is available.
m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config])
+
PKG_CHECK_MODULES(UDEV, [ libudev ])
AC_SUBST(UDEV_CFLAGS)
AC_SUBST(UDEV_LIBS)
@@ -98,6 +135,9 @@ AC_SUBST(CGROUP_LIBS)
AM_PROG_VALAC([0.7])
AC_SUBST(VAPIDIR)
+AC_PATH_PROG([XSLTPROC], [xsltproc])
+AM_CONDITIONAL(HAVE_XSLTPROC, test x"$XSLTPROC" != x)
+
AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, arch, gentoo, or none]))
if test "z$with_distro" = "z"; then
if test "$cross_compiling" = yes; then
@@ -174,6 +214,13 @@ AM_CONDITIONAL(TARGET_GENTOO, test x"$with_distro" = xgentoo)
AC_DEFINE_UNQUOTED(SPECIAL_DBUS_SERVICE, ["$special_dbus_service"], [D-Bus service name])
AC_DEFINE_UNQUOTED(SPECIAL_SYSLOG_SERVICE, ["$special_syslog_service"], [syslog service name])
+AC_ARG_WITH([udevrulesdir],
+ AS_HELP_STRING([--with-udevrulesdir=DIR], [Diectory for udev rules]),
+ [],
+ [with_udevrulesdir=/lib/udev/rules.d])
+AC_SUBST([udevrulesdir], [$with_udevrulesdir])
+
+
AC_OUTPUT([Makefile])
echo "
@@ -185,4 +232,5 @@ echo "
Syslog service: ${special_syslog_service}
D-Bus service: ${special_dbus_service}
Gtk: ${have_gtk}
+ udev rules dir: ${with_udevrulesdir}
"
diff --git a/man/systemd.service.xml b/man/systemd.service.xml
new file mode 100644
index 00000000000..5285ce3d521
--- /dev/null
+++ b/man/systemd.service.xml
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+ systemd.service
+ systemd
+
+
+
+ Developer
+ Lennart
+ Poettering
+ lennart@poettering.net
+
+
+
+
+
+ systemd.service
+ 5
+
+
+
+ systemd.service
+ systemd service configuration files
+
+
+
+ systemd.service
+
+
+
+ Description
+
+ A configuration file ending in .service encodes
+ information about a process controlled and supervised
+ by systemd.
+
+ This man page lists the configuration options
+ specific to this unit type. See
+ systemd.unit5
+ for the common options of all unit configuration
+ files.
+
+
+
+ Options
+
+
+
+ Type=
+
+ One of
+ forking,
+ simple,
+ finish,
+ dbus.
+
+ If set to
+ forking
+ (the default) it is expected
+ that the process configured
+ with
+ ExecStart=
+ will start up and call
+ fork(). The
+ parent process is expected to
+ finish when start-up is
+ complete and all communication
+ channels set up. The child
+ continues to run as the main
+ daemon process. This is the
+ behaviour of traditional UNIX
+ daemons. If this setting is
+ used it is recommended to also
+ use the
+ PIDFile=
+ option, so that systemd can
+ identify the main process of
+ the daemon. systemd will start
+ follow-up units as soon as the
+ parent process exited.
+
+ If set to
+ simple (the
+ recommended value) it is
+ expected that the process
+ configured with
+ ExecStart=
+ is the main process of the
+ daemon. In this mode
+ communication channels must be
+ available before the daemon is
+ started up, as systemd will
+ immediately start follow-up
+ units.
+
+ Behaviour of
+ finish is
+ similar to
+ simple,
+ however it is expected that
+ the process has to exit before
+ systemd starts follow-up
+ units. ValidNoProcess=
+ is particularly useful for
+ this type of service.
+
+ Behaviour of
+ dbus is
+ similar to
+ simple,
+ however it is expected that
+ the daemon acquires a name on
+ the D-Bus bus, as configured
+ by
+ BusName=. Follow-up
+ units will be started after
+ the name has been
+ acquired.
+
+
+
+ ValidNoProcess=
+
+ Takes a boolean value
+ that specifies whether the service
+ shall be considered active
+ even when all its processes
+ exited. Defaults to no.
+
+
+
+
+ PIDFile=
+
+ Takes an absolute file
+ name pointing to the PID file
+ of this daemon. Use of this
+ option is recommended for
+ services where
+ Type= is
+ set to
+ forking.
+
+
+
+
+ BusName=
+
+ Takes a D-Bus bus name
+ that this service is reachable
+ as. This option is mandatory
+ for services where
+ Type= is
+ set to
+ dbus, but
+ its use is otherwise
+ recommended as well if the
+ process takes a name on the
+ D-Bus bus.
+
+
+
+
+ ExecStart=
+
+ Takes a command line
+ that is executed when this
+ service shall be started
+ up. The first word of the
+ command line must be an
+ absolute file name. It is
+ mandatory to set this option
+ for all services.
+
+
+
+
+
+
+
+ See Also
+
+ systemd8,
+ systemctl8
+ systemd.unit5
+
+
+
+
diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml
new file mode 100644
index 00000000000..cfa1b094992
--- /dev/null
+++ b/man/systemd.unit.xml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+ systemd.unit
+ systemd
+
+
+
+ Developer
+ Lennart
+ Poettering
+ lennart@poettering.net
+
+
+
+
+
+ systemd.unit
+ 5
+
+
+
+ systemd.unit
+ systemd unit configuration files
+
+
+
+ systemd.service
+ systemd.socket
+ systemd.device
+ systemd.mount
+ systemd.automount
+ systemd.swap
+ systemd.target
+
+
+
+ Description
+
+ A unit configuration file encodes information
+ about a service, a socket, a mount point, an automount
+ point, a swap file or patition, or a start-up target
+ controlled and supervised by systemd. The syntax is
+ inspired by XDG .desktop files,
+ which are in turn inspired by Windows
+ .ini files.
+
+ This man pages lists the common configuration
+ options of the various unit types.
+
+
+
+ Options
+
+
+
+ Names=
+
+ Additional names for this unit. The names
+ listed here mus have the same suffix (i.e. type)
+ as the identifier name. This option may be
+ specified more than once.
+
+
+
+ Requires=
+
+ Dependencies on other
+ units. If this units get
+ activated the units listed
+ here will be activated as
+ well. If one of the other
+ units gets deactivated or its
+ activation fails, this unit
+ will be deactivated. This
+ option may be specified more
+ than once.
+
+
+
+
+
+
+ See Also
+
+ systemd8,
+ systemctl8
+ systemd.service5
+ systemd.socket5
+ systemd.device5
+ systemd.mount5
+ systemd.automount5
+ systemd.swap5
+ systemd.target5
+
+
+
+