diff options
40 files changed, 148 insertions, 37 deletions
diff --git a/Makefile-man.am b/Makefile-man.am index 76b794a27b..d54d67cf11 100644 --- a/Makefile-man.am +++ b/Makefile-man.am @@ -1,3 +1,6 @@ +# Do not edit. Generated by make-man-rules.py. +# Regenerate with 'make man-list-update'. + MANPAGES += \ man/bootup.7 \ man/daemon.7 \ @@ -292,6 +295,9 @@ if ENABLE_BOOTCHART MANPAGES += \ man/bootchart.conf.5 \ man/systemd-bootchart.1 +MANPAGES_ALIAS += \ + # + endif if ENABLE_HOSTNAMED @@ -396,6 +402,9 @@ endif if HAVE_MYHOSTNAME MANPAGES += \ man/nss-myhostname.8 +MANPAGES_ALIAS += \ + # + endif if HAVE_PAM @@ -464,4 +473,7 @@ if HAVE_PYTHON MANPAGES += \ man/systemd.directives.7 \ man/systemd.index.7 +MANPAGES_ALIAS += \ + # + endif diff --git a/Makefile.am b/Makefile.am index ba55a7e1b6..f73e8a6e74 100644 --- a/Makefile.am +++ b/Makefile.am @@ -502,6 +502,13 @@ CLEANFILES += \ if HAVE_PYTHON NON_INDEX_XML_FILES = $(filter-out man/systemd.index.xml,$(XML_FILES)) + +XML_GLOB = $(wildcard $(top_srcdir)/man/*.xml) +update-man-list: make-man-rules.py $(XML_GLOB) + $(AM_V_GEN)$(PYTHON) $^ > $(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" + man/systemd.index.xml: make-man-index.py $(NON_INDEX_XML_FILES) $(AM_V_at)$(MKDIR_P) $(dir $@) $(AM_V_GEN)$(PYTHON) $^ > $@ diff --git a/make-directive-index.py b/make-directive-index.py index ab40997a98..b06a54c1d5 100755 --- a/make-directive-index.py +++ b/make-directive-index.py @@ -23,7 +23,7 @@ import xml.etree.ElementTree as tree import re TEMPLATE = '''\ -<refentry id="systemd.directives"> +<refentry id="systemd.directives" conditional="HAVE_PYTHON"> <refentryinfo> <title>systemd.directives</title> diff --git a/make-man-index.py b/make-man-index.py index 2dbc2da995..f829d98b6a 100755 --- a/make-man-index.py +++ b/make-man-index.py @@ -24,7 +24,7 @@ import sys MDASH = ' — ' if sys.version_info.major >= 3 else ' -- ' TEMPLATE = '''\ -<refentry id="systemd.index"> +<refentry id="systemd.index" conditional="HAVE_PYTHON"> <refentryinfo> <title>systemd.index</title> diff --git a/make-man-rules.py b/make-man-rules.py new file mode 100644 index 0000000000..b88b43ac3d --- /dev/null +++ b/make-man-rules.py @@ -0,0 +1,92 @@ +# -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */ +# +# This file is part of systemd. +# +# Copyright 2013 Zbigniew Jędrzejewski-Szmek +# +# 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/>. + +from __future__ import print_function +import xml.etree.ElementTree as tree +import collections +import sys + +SECTION = '''\ +MANPAGES += \\ + {manpages} +MANPAGES_ALIAS += \\ + {aliases} +{rules} +''' + +CONDITIONAL = '''\ +if {conditional} +''' \ ++ SECTION + \ +'''\ +endif +''' + +HEADER = '''\ +# Do not edit. Generated by make-man-rules.py. +# Regenerate with 'make update-man-list'. + +''' + +def man(page, number): + return 'man/{}.{}'.format(page, number) + +def add_rules(rules, name): + xml = tree.parse(name) + # print('parsing {}'.format(name), file=sys.stderr) + conditional = xml.getroot().get('conditional') or '' + rulegroup = rules[conditional] + refmeta = xml.find('./refmeta') + title = refmeta.find('./refentrytitle').text + number = refmeta.find('./manvolnum').text + refnames = xml.findall('./refnamediv/refname') + target = man(refnames[0].text, number) + if title != refnames[0].text: + raise ValueError('refmeta and refnamediv disagree: ' + name) + for refname in refnames: + assert all(refname not in group + for group in rules.values()), "duplicate page name" + alias = man(refname.text, number) + rulegroup[alias] = target + # print('{} => {} [{}]'.format(alias, target, conditional), file=sys.stderr) + +def create_rules(*xml_files): + " {conditional => {alias-name => source-name}} " + rules = collections.defaultdict(dict) + for name in xml_files: + add_rules(rules, name) + return rules + +def mjoin(files): + return ' \\\n\t'.join(sorted(files) or '#') + +def make_makefile(rules): + return HEADER + '\n'.join( + (CONDITIONAL if conditional else SECTION).format( + manpages=mjoin(set(rulegroup.values())), + aliases=mjoin(k for k,v in rulegroup.items() if k != v), + rules='\n'.join('{}: {}'.format(k,v) + for k,v in sorted(rulegroup.items()) + if k != v), + conditional=conditional) + for conditional,rulegroup in sorted(rules.items())) + +if __name__ == '__main__': + rules = create_rules(*sys.argv[1:]) + print(make_makefile(rules), end='') diff --git a/man/binfmt.d.xml b/man/binfmt.d.xml index 07ae0ac231..8c5083cafb 100644 --- a/man/binfmt.d.xml +++ b/man/binfmt.d.xml @@ -19,7 +19,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/>. --> -<refentry id="binfmt.d"> +<refentry id="binfmt.d" conditional='ENABLE_BINFMT'> <refentryinfo> <title>binfmt.d</title> diff --git a/man/bootchart.conf.xml b/man/bootchart.conf.xml index d2b09638c1..419554e2d1 100644 --- a/man/bootchart.conf.xml +++ b/man/bootchart.conf.xml @@ -25,7 +25,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="bootchart.conf"> +<refentry id="bootchart.conf" conditional='ENABLE_BOOTCHART'> <refentryinfo> <title>bootchart.conf</title> <productname>systemd</productname> diff --git a/man/crypttab.xml b/man/crypttab.xml index f976bdaa25..a94163b4b2 100644 --- a/man/crypttab.xml +++ b/man/crypttab.xml @@ -25,7 +25,7 @@ The Red Hat version has been written by Miloslav Trmac <mitr@redhat.com>. --> -<refentry id="crypttab"> +<refentry id="crypttab" conditional='HAVE_LIBCRYPTSETUP'> <refentryinfo> <title>crypttab</title> diff --git a/man/hostnamectl.xml b/man/hostnamectl.xml index a29d2f5b75..07d363420c 100644 --- a/man/hostnamectl.xml +++ b/man/hostnamectl.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="hostnamectl"> +<refentry id="hostnamectl" conditional='ENABLE_HOSTNAMED'> <refentryinfo> <title>hostnamectl</title> diff --git a/man/localectl.xml b/man/localectl.xml index 7563eb513c..3e5b812dac 100644 --- a/man/localectl.xml +++ b/man/localectl.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="localectl"> +<refentry id="localectl" conditional='ENABLE_LOCALED'> <refentryinfo> <title>localectl</title> diff --git a/man/loginctl.xml b/man/loginctl.xml index 90b6f1e110..ba0352cf61 100644 --- a/man/loginctl.xml +++ b/man/loginctl.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="loginctl"> +<refentry id="loginctl" conditional='HAVE_PAM'> <refentryinfo> <title>loginctl</title> diff --git a/man/logind.conf.xml b/man/logind.conf.xml index b602e2a5f5..d223514e0e 100644 --- a/man/logind.conf.xml +++ b/man/logind.conf.xml @@ -22,7 +22,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="logind.conf"> +<refentry id="logind.conf" conditional='HAVE_PAM'> <refentryinfo> <title>logind.conf</title> <productname>systemd</productname> diff --git a/man/modules-load.d.xml b/man/modules-load.d.xml index bcc4d12561..ea4f524048 100644 --- a/man/modules-load.d.xml +++ b/man/modules-load.d.xml @@ -19,7 +19,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/>. --> -<refentry id="modules-load.d"> +<refentry id="modules-load.d" conditional='HAVE_KMOD'> <refentryinfo> <title>modules-load.d</title> diff --git a/man/nss-myhostname.xml b/man/nss-myhostname.xml index bd3f635692..46b7471b06 100644 --- a/man/nss-myhostname.xml +++ b/man/nss-myhostname.xml @@ -22,7 +22,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="nss-myhostname"> +<refentry id="nss-myhostname" conditional='HAVE_MYHOSTNAME'> <refentryinfo> <title>nss-myhostname</title> diff --git a/man/sd-login.xml b/man/sd-login.xml index c02ad0c146..697259564d 100644 --- a/man/sd-login.xml +++ b/man/sd-login.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="sd-login"> +<refentry id="sd-login" conditional='HAVE_PAM'> <refentryinfo> <title>sd-login</title> diff --git a/man/sd-readahead.xml b/man/sd-readahead.xml index cebaa5da2b..ee7c936813 100644 --- a/man/sd-readahead.xml +++ b/man/sd-readahead.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="sd-daemon"> +<refentry id="sd-daemon" conditional='ENABLE_READAHEAD'> <refentryinfo> <title>sd-readahead</title> diff --git a/man/sd_get_seats.xml b/man/sd_get_seats.xml index 17adcef745..a300a05751 100644 --- a/man/sd_get_seats.xml +++ b/man/sd_get_seats.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="sd_get_seats"> +<refentry id="sd_get_seats" conditional='HAVE_PAM'> <refentryinfo> <title>sd_get_seats</title> diff --git a/man/sd_login_monitor_new.xml b/man/sd_login_monitor_new.xml index 35cb6b368b..2c4d05dcb9 100644 --- a/man/sd_login_monitor_new.xml +++ b/man/sd_login_monitor_new.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="sd_login_monitor_new"> +<refentry id="sd_login_monitor_new" conditional='HAVE_PAM'> <refentryinfo> <title>sd_login_monitor_new</title> diff --git a/man/sd_pid_get_session.xml b/man/sd_pid_get_session.xml index 9517795f78..511fcf3ede 100644 --- a/man/sd_pid_get_session.xml +++ b/man/sd_pid_get_session.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="sd_pid_get_session"> +<refentry id="sd_pid_get_session" conditional='HAVE_PAM'> <refentryinfo> <title>sd_pid_get_session</title> diff --git a/man/sd_readahead.xml b/man/sd_readahead.xml index a1fc6f178f..39e34698d4 100644 --- a/man/sd_readahead.xml +++ b/man/sd_readahead.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="sd_notify"> +<refentry id="sd_notify" conditional='ENABLE_READAHEAD'> <refentryinfo> <title>sd_readahead</title> diff --git a/man/sd_seat_get_active.xml b/man/sd_seat_get_active.xml index b1d6d20edf..07e018de13 100644 --- a/man/sd_seat_get_active.xml +++ b/man/sd_seat_get_active.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="sd_seat_get_active"> +<refentry id="sd_seat_get_active" conditional='HAVE_PAM'> <refentryinfo> <title>sd_seat_get_active</title> diff --git a/man/sd_session_is_active.xml b/man/sd_session_is_active.xml index 1fa7457f78..76f6f9544c 100644 --- a/man/sd_session_is_active.xml +++ b/man/sd_session_is_active.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="sd_session_is_active"> +<refentry id="sd_session_is_active" conditional='HAVE_PAM'> <refentryinfo> <title>sd_session_is_active</title> diff --git a/man/sd_uid_get_state.xml b/man/sd_uid_get_state.xml index b7bc944b14..cc8fc0f5b6 100644 --- a/man/sd_uid_get_state.xml +++ b/man/sd_uid_get_state.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="sd_uid_get_state"> +<refentry id="sd_uid_get_state" conditional='HAVE_PAM'> <refentryinfo> <title>sd_uid_get_state</title> diff --git a/man/systemd-binfmt.service.xml b/man/systemd-binfmt.service.xml index 1db735a826..748e41780a 100644 --- a/man/systemd-binfmt.service.xml +++ b/man/systemd-binfmt.service.xml @@ -19,7 +19,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/>. --> -<refentry id="systemd-binfmt.service"> +<refentry id="systemd-binfmt.service" conditional='ENABLE_BINFMT'> <refentryinfo> <title>systemd-binfmt.service</title> diff --git a/man/systemd-bootchart.xml b/man/systemd-bootchart.xml index 0df7c4bcf4..f31d4a0a6c 100644 --- a/man/systemd-bootchart.xml +++ b/man/systemd-bootchart.xml @@ -25,7 +25,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="systemd-bootchart"> +<refentry id="systemd-bootchart" conditional='ENABLE_BOOTCHART'> <refentryinfo> <title>systemd-bootchart</title> <productname>systemd</productname> diff --git a/man/systemd-cryptsetup-generator.xml b/man/systemd-cryptsetup-generator.xml index c5f8d2a9d8..292e967bea 100644 --- a/man/systemd-cryptsetup-generator.xml +++ b/man/systemd-cryptsetup-generator.xml @@ -19,7 +19,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/>. --> -<refentry id="systemd-cryptsetup-generator"> +<refentry id="systemd-cryptsetup-generator" conditional='HAVE_LIBCRYPTSETUP'> <refentryinfo> <title>systemd-cryptsetup-generator</title> diff --git a/man/systemd-cryptsetup@.service.xml b/man/systemd-cryptsetup@.service.xml index abbb9d78f2..6fa2e0cdd0 100644 --- a/man/systemd-cryptsetup@.service.xml +++ b/man/systemd-cryptsetup@.service.xml @@ -19,7 +19,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/>. --> -<refentry id="systemd-cryptsetup@.service"> +<refentry id="systemd-cryptsetup@.service" conditional='HAVE_LIBCRYPTSETUP'> <refentryinfo> <title>systemd-cryptsetup@.service</title> diff --git a/man/systemd-hostnamed.service.xml b/man/systemd-hostnamed.service.xml index d9c1911018..fe64a62fbe 100644 --- a/man/systemd-hostnamed.service.xml +++ b/man/systemd-hostnamed.service.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="systemd-hostnamed.service"> +<refentry id="systemd-hostnamed.service" conditional='ENABLE_HOSTNAMED'> <refentryinfo> <title>systemd-hostnamed.service</title> diff --git a/man/systemd-journal-gatewayd.service.xml b/man/systemd-journal-gatewayd.service.xml index 44cd6167f5..0b6fd706a6 100644 --- a/man/systemd-journal-gatewayd.service.xml +++ b/man/systemd-journal-gatewayd.service.xml @@ -21,7 +21,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/>. --> -<refentry id="systemd-journal-gatewayd.service"> +<refentry id="systemd-journal-gatewayd.service" conditional='HAVE_MICROHTTPD'> <refentryinfo> <title>systemd-journal-gatewayd.service</title> diff --git a/man/systemd-localed.service.xml b/man/systemd-localed.service.xml index 6cefc4265f..1551e6a2ba 100644 --- a/man/systemd-localed.service.xml +++ b/man/systemd-localed.service.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="systemd-localed.service"> +<refentry id="systemd-localed.service" conditional='ENABLE_LOCALED'> <refentryinfo> <title>systemd-localed.service</title> diff --git a/man/systemd-logind.service.xml b/man/systemd-logind.service.xml index 00f34051a3..523a63b4f3 100644 --- a/man/systemd-logind.service.xml +++ b/man/systemd-logind.service.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="systemd-logind.service"> +<refentry id="systemd-logind.service" conditional='HAVE_PAM'> <refentryinfo> <title>systemd-logind.service</title> diff --git a/man/systemd-modules-load.service.xml b/man/systemd-modules-load.service.xml index ea10be2234..1d33b8eec6 100644 --- a/man/systemd-modules-load.service.xml +++ b/man/systemd-modules-load.service.xml @@ -19,7 +19,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/>. --> -<refentry id="systemd-modules-load.service"> +<refentry id="systemd-modules-load.service" conditional='HAVE_KMOD'> <refentryinfo> <title>systemd-modules-load.service</title> diff --git a/man/systemd-quotacheck.service.xml b/man/systemd-quotacheck.service.xml index 2ffee9158e..ff04e582de 100644 --- a/man/systemd-quotacheck.service.xml +++ b/man/systemd-quotacheck.service.xml @@ -19,7 +19,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/>. --> -<refentry id="systemd-quotacheck.service"> +<refentry id="systemd-quotacheck.service" conditional='ENABLE_QUOTACHECK'> <refentryinfo> <title>systemd-quotacheck.service</title> diff --git a/man/systemd-random-seed-load.service.xml b/man/systemd-random-seed-load.service.xml index 87f563e293..693c008a2d 100644 --- a/man/systemd-random-seed-load.service.xml +++ b/man/systemd-random-seed-load.service.xml @@ -19,7 +19,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/>. --> -<refentry id="systemd-random-seed-load.service"> +<refentry id="systemd-random-seed-load.service" conditional='ENABLE_RANDOMSEED'> <refentryinfo> <title>systemd-random-seed-load.service</title> diff --git a/man/systemd-readahead-replay.service.xml b/man/systemd-readahead-replay.service.xml index 66d253454b..3d7d9f5424 100644 --- a/man/systemd-readahead-replay.service.xml +++ b/man/systemd-readahead-replay.service.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="systemd-readahead-replay.service"> +<refentry id="systemd-readahead-replay.service" conditional='ENABLE_READAHEAD'> <refentryinfo> <title>systemd-readahead-replay.service</title> diff --git a/man/systemd-timedated.service.xml b/man/systemd-timedated.service.xml index ea2abc5765..c82c0ff439 100644 --- a/man/systemd-timedated.service.xml +++ b/man/systemd-timedated.service.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="systemd-timedated.service"> +<refentry id="systemd-timedated.service" conditional='ENABLE_TIMEDATED'> <refentryinfo> <title>systemd-timedated.service</title> diff --git a/man/systemd-user-sessions.service.xml b/man/systemd-user-sessions.service.xml index 9214ec9c35..fc93e2dc2f 100644 --- a/man/systemd-user-sessions.service.xml +++ b/man/systemd-user-sessions.service.xml @@ -19,7 +19,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/>. --> -<refentry id="systemd-user-sessions.service"> +<refentry id="systemd-user-sessions.service" conditional='HAVE_PAM'> <refentryinfo> <title>systemd-user-sessions.service</title> diff --git a/man/systemd-vconsole-setup.service.xml b/man/systemd-vconsole-setup.service.xml index df1b1a16b6..3c50799cbd 100644 --- a/man/systemd-vconsole-setup.service.xml +++ b/man/systemd-vconsole-setup.service.xml @@ -19,7 +19,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/>. --> -<refentry id="systemd-vconsole-setup.service"> +<refentry id="systemd-vconsole-setup.service" conditional='ENABLE_VCONSOLE'> <refentryinfo> <title>systemd-vconsole-setup.service</title> diff --git a/man/timedatectl.xml b/man/timedatectl.xml index 4f34bb7b73..a8e78ae8d3 100644 --- a/man/timedatectl.xml +++ b/man/timedatectl.xml @@ -21,7 +21,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="timedatectl"> +<refentry id="timedatectl" conditional='ENABLE_TIMEDATED'> <refentryinfo> <title>timedatectl</title> diff --git a/man/vconsole.conf.xml b/man/vconsole.conf.xml index 45156b7447..f60b571b72 100644 --- a/man/vconsole.conf.xml +++ b/man/vconsole.conf.xml @@ -22,7 +22,7 @@ along with systemd; If not, see <http://www.gnu.org/licenses/>. --> -<refentry id="vconsole.conf"> +<refentry id="vconsole.conf" conditional='ENABLE_VCONSOLE'> <refentryinfo> <title>vconsole.conf</title> <productname>systemd</productname> |