From bc2708414babc5c99bb8000e63c84e87606cc15d Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 4 Jan 2013 23:24:38 +0100 Subject: [PATCH] build-sys: drop all distribution specfic checks Yay, we now have a completely generic systemd. No distribution specific checks anymore! --- DISTRO_PORTING | 64 +++------- Makefile.am | 18 --- configure.ac | 115 ++---------------- src/cgls/cgls.c | 1 - src/core/dbus-manager.c | 7 +- src/core/main.c | 5 +- src/delta/delta.c | 1 - src/detect-virt/detect-virt.c | 1 - src/hostname/hostnamectl.c | 1 - src/journal/cat.c | 1 - src/journal/coredumpctl.c | 1 - src/journal/journalctl.c | 1 - src/locale/localectl.c | 1 - src/login/inhibit.c | 1 - src/login/loginctl.c | 1 - src/machine-id-setup/machine-id-setup-main.c | 1 - src/notify/notify.c | 1 - src/systemctl/systemctl.c | 1 - src/timedate/timedatectl.c | 1 - .../tty-ask-password-agent.c | 1 - 20 files changed, 35 insertions(+), 189 deletions(-) diff --git a/DISTRO_PORTING b/DISTRO_PORTING index a6ae0439a..99c652c77 100644 --- a/DISTRO_PORTING +++ b/DISTRO_PORTING @@ -4,55 +4,31 @@ HOWTO: You need to make the follow changes to adapt systemd to your distribution: - 0) Make your distribution recognized via the autoconf checks - in configure.ac. Grep for the word "fedora" (case - insensitively) and you should be able to find the places where - you need to add/change things. - - 1) Patch src/shared/hostname-setup.c so that systemd knows - where to read your host name from. You might also want to - update status_welcome() in util.c. - - 2) Check the unit files in units/ if they match your - distribution. Most likely you will have to make additions to - units/*.m4 and create a copy of units/fedora/ with changes for - your distribution. - - 3) Adjust Makefile.am to register the unit files you added in - step 2. Also you might need to update the m4 invocation in - Makefile.am. Grep for the word "fedora" (case insensitively) - and you should be able to find the places where you need to - add/change things. - - 4) Try it out. Play around with 'systemd --test --system' for + 1) Find the right configure parameters for: + + --with-rootprefix= + --with-sysvinit-path= + --with-sysvrcd-path= + --with-rc-local-script-path-start= + --with-rc-local-script-path-stop= + --with-kbd-loadkeys= + --with-kbd-setfont= + --with-tty-gid= + + 2) Try it out. Play around with 'systemd --test --system' for a test run of systemd without booting. This will read the unit files and print the initial transaction it would execute during boot-up. This will also inform you about ordering loops and suchlike. CONTRIBUTING UPSTREAM: - We are interested in merging your changes upstream, if they - are for a big, and well-known distribution. Unfortunately we - don't have the time and resources to maintain - distribution-specific patches for all distributions on the - planet, hence please do not send us patches that add systemd - support for non-mainstream or niche distributions. - Thank you for understanding. - -BE CONSIDERATE: - We'd like to keep differences between the distributions - minimal. This both simplifies our maintenance work, as well - as it helps administrators to move from one distribution to - another. + We are generally do no longer accept distribution specific + patches to systemd upstream. If you have to make changes to + systemd's source code to make it work on your distribution: + unless your code is generic enough to be generally useful we + are unlikely to merge it. Please always consider adopting the + upstream defaults. If that's not possible please maintain the + relevant patches downstream. - Hence we'd like to ask you to keep your changes minimal, and - not rename any units without a very good reason (if you need a - particular name for compatibility reasons, consider using - alias names via symlinks). Before you make changes that change - semantics from upstream, please talk to us! - - In SysV almost every distribution uses a different - nomenclature and different locations for the boot-up - scripts. We'd like to avoid chaos like that with systemd right - from the beginning. So please, be considerate! + Thank you for understanding. diff --git a/Makefile.am b/Makefile.am index b11dfb95e..8f68a1005 100644 --- a/Makefile.am +++ b/Makefile.am @@ -4062,24 +4062,6 @@ if HAVE_KMOD $(LN_S) ../systemd-modules-load.service systemd-modules-load.service ) endif - -if TARGET_FEDORA - ( cd $(DESTDIR)$(systemunitdir) && \ - rm -f display-manager.service single.service && \ - $(LN_S) rescue.service single.service ) -endif - -if TARGET_MANDRIVA - ( cd $(DESTDIR)$(systemunitdir) && \ - rm -f display-manager.service dm.service single.service && \ - $(LN_S) rescue.service single.service ) -endif - -if TARGET_MAGEIA - ( cd $(DESTDIR)$(systemunitdir) && \ - rm -f display-manager.service ) -endif - install-exec-hook: $(INSTALL_EXEC_HOOKS) uninstall-hook: $(UNINSTALL_DATA_HOOKS) $(UNINSTALL_EXEC_HOOKS) diff --git a/configure.ac b/configure.ac index 2f457fc8c..e6dffe625 100644 --- a/configure.ac +++ b/configure.ac @@ -616,12 +616,12 @@ AC_ARG_WITH(rc-local-script-path-start, AC_ARG_WITH(rc-local-script-path-stop, AS_HELP_STRING([--with-rc-local-script-path-stop=PATH], - [Path to /sbin/halt.local]), + [Path to /usr/sbin/halt.local]), [RC_LOCAL_SCRIPT_PATH_STOP="$withval"], - [RC_LOCAL_SCRIPT_PATH_STOP="/sbin/halt.local"]) + [RC_LOCAL_SCRIPT_PATH_STOP="/usr/sbin/halt.local"]) AC_DEFINE_UNQUOTED(RC_LOCAL_SCRIPT_PATH_START, ["$RC_LOCAL_SCRIPT_PATH_START"], [Path of /etc/rc.local script]) -AC_DEFINE_UNQUOTED(RC_LOCAL_SCRIPT_PATH_STOP, ["$RC_LOCAL_SCRIPT_PATH_STOP"], [Path of /sbin/halt.local script]) +AC_DEFINE_UNQUOTED(RC_LOCAL_SCRIPT_PATH_STOP, ["$RC_LOCAL_SCRIPT_PATH_STOP"], [Path of /usr/sbin/halt.local script]) AC_SUBST(RC_LOCAL_SCRIPT_PATH_START) AC_SUBST(RC_LOCAL_SCRIPT_PATH_STOP) @@ -697,107 +697,23 @@ AM_CONDITIONAL(ENABLE_MANPAGES, [test "x$have_manpages" = "xyes"]) # ------------------------------------------------------------------------------ -AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, arch, gentoo, slackware, altlinux, mandriva, mageia, angstrom or other])) -if test "z$with_distro" = "z"; then - if test "$cross_compiling" = yes; then - AC_MSG_WARN([Target distribution cannot be reliably detected when cross-compiling. You should specify it with --with-distro (see $0 --help for recognized distros)]) - else - with_distro=$($GREP '^ID=' /etc/os-release 2>/dev/null | $SED 's/ID=//'); - fi - if test "z$with_distro" = "z"; then - with_distro=other - fi -fi -with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]' ` -AC_DEFINE_UNQUOTED(DISTRIBUTION, ["${with_distro}"], [Target Distribution]) - # Location of the init scripts as mandated by LSB SYSTEM_SYSVINIT_PATH=/etc/init.d SYSTEM_SYSVRCND_PATH=/etc/rc.d - M4_DEFINES= -case $with_distro in - fedora) - SYSTEM_SYSVINIT_PATH=/etc/rc.d/init.d - AC_DEFINE(TARGET_FEDORA, [], [Target is Fedora/RHEL]) - M4_DEFINES=-DTARGET_FEDORA=1 - ;; - opensuse|suse) - SYSTEM_SYSVRCND_PATH=/etc/init.d - AC_DEFINE(TARGET_SUSE, [], [Target is openSUSE/SLE]) - M4_DEFINES=-DTARGET_SUSE=1 - ;; - debian) - SYSTEM_SYSVRCND_PATH=/etc - AC_DEFINE(TARGET_DEBIAN, [], [Target is Debian]) - M4_DEFINES=-DTARGET_DEBIAN=1 - ;; - arch) - SYSTEM_SYSVINIT_PATH= - SYSTEM_SYSVRCND_PATH= - AC_DEFINE(TARGET_ARCH, [], [Target is ArchLinux]) - M4_DEFINES=-DTARGET_ARCH=1 - ;; - gentoo) - SYSTEM_SYSVINIT_PATH= - SYSTEM_SYSVRCND_PATH= - AC_DEFINE(TARGET_GENTOO, [], [Target is Gentoo]) - M4_DEFINES=-DTARGET_GENTOO=1 - ;; - slackware) - SYSTEM_SYSVINIT_PATH=/etc/rc.d/init.d - AC_DEFINE(TARGET_SLACKWARE, [], [Target is Slackware]) - M4_DEFINES=-DTARGET_SLACKWARE=1 - ;; - frugalware) - SYSTEM_SYSVINIT_PATH=/etc/rc.d - AC_DEFINE(TARGET_FRUGALWARE, [], [Target is Frugalware]) - M4_DEFINES=-DTARGET_FRUGALWARE=1 - ;; - altlinux) - SYSTEM_SYSVINIT_PATH=/etc/rc.d/init.d - AC_DEFINE(TARGET_ALTLINUX, [], [Target is ALTLinux]) - M4_DEFINES=-DTARGET_ALTLINUX=1 - ;; - mandriva) - SYSTEM_SYSVINIT_PATH=/etc/rc.d/init.d - AC_DEFINE(TARGET_MANDRIVA, [], [Target is Mandriva]) - M4_DEFINES=-DTARGET_MANDRIVA=1 - ;; - angstrom) - SYSTEM_SYSVRCND_PATH=/etc - AC_DEFINE(TARGET_ANGSTROM, [], [Target is Ångström]) - M4_DEFINES=-DTARGET_ANGSTROM=1 - ;; - mageia) - SYSTEM_SYSVINIT_PATH=/etc/rc.d/init.d - AC_DEFINE(TARGET_MAGEIA, [], [Target is Mageia]) - M4_DEFINES=-DTARGET_MAGEIA=1 - ;; - other) - ;; - *) - AC_MSG_ERROR([Your distribution (${with_distro}) is not yet supported, SysV init scripts could not be found! (patches welcome); you can specify --with-distro=other to skip this check]) - ;; -esac - AC_ARG_WITH([sysvinit-path], [AS_HELP_STRING([--with-sysvinit-path=PATH], - [Specify the path to where the SysV init scripts are located @<:@default=based on distro@:>@])], + [Specify the path to where the SysV init scripts are located])], [SYSTEM_SYSVINIT_PATH="$withval"], []) AC_ARG_WITH([sysvrcd-path], [AS_HELP_STRING([--with-sysvrcd-path=PATH], - [Specify the path to the base directory for the SysV rcN.d directories @<:@default=based on distro@:>@])], + [Specify the path to the base directory for the SysV rcN.d directories])], [SYSTEM_SYSVRCND_PATH="$withval"], []) -AC_SUBST(SYSTEM_SYSVINIT_PATH) -AC_SUBST(SYSTEM_SYSVRCND_PATH) -AC_SUBST(M4_DEFINES) - if test "x${SYSTEM_SYSVINIT_PATH}" != "x" -a "x${SYSTEM_SYSVRCND_PATH}" != "x"; then AC_DEFINE(HAVE_SYSV_COMPAT, [], [SysV init scripts and rcN.d links are supported.]) SYSTEM_SYSV_COMPAT="yes" @@ -808,26 +724,18 @@ else SYSTEM_SYSV_COMPAT="no" fi +AC_SUBST(SYSTEM_SYSVINIT_PATH) +AC_SUBST(SYSTEM_SYSVRCND_PATH) +AC_SUBST(M4_DEFINES) + +AM_CONDITIONAL(HAVE_SYSV_COMPAT, test "$SYSTEM_SYSV_COMPAT" = "yes") + AC_ARG_WITH([tty-gid], [AS_HELP_STRING([--with-tty-gid=GID], [Specify the numeric GID of the 'tty' group])], [AC_DEFINE_UNQUOTED(TTY_GID, [$withval], [GID of the 'tty' group])], []) -AM_CONDITIONAL(TARGET_FEDORA, test x"$with_distro" = xfedora) -AM_CONDITIONAL(TARGET_SUSE, test x"$with_distro" = xsuse) -AM_CONDITIONAL(TARGET_DEBIAN, test x"$with_distro" = xdebian) -AM_CONDITIONAL(TARGET_ARCH, test x"$with_distro" = xarch) -AM_CONDITIONAL(TARGET_GENTOO, test x"$with_distro" = xgentoo) -AM_CONDITIONAL(TARGET_SLACKWARE, test x"$with_distro" = xslackware) -AM_CONDITIONAL(TARGET_FRUGALWARE, test x"$with_distro" = xfrugalware) -AM_CONDITIONAL(TARGET_ALTLINUX, test x"$with_distro" = xaltlinux) -AM_CONDITIONAL(TARGET_MANDRIVA, test x"$with_distro" = xmandriva) -AM_CONDITIONAL(TARGET_ANGSTROM, test x"$with_distro" = xangstrom) -AM_CONDITIONAL(TARGET_MAGEIA, test x"$with_distro" = xmageia) - -AM_CONDITIONAL(HAVE_SYSV_COMPAT, test "$SYSTEM_SYSV_COMPAT" = "yes") - AC_ARG_WITH([dbuspolicydir], AS_HELP_STRING([--with-dbuspolicydir=DIR], [D-Bus policy directory]), [], @@ -895,7 +803,6 @@ AC_OUTPUT AC_MSG_RESULT([ $PACKAGE_NAME $VERSION - Distribution: ${with_distro} SysV compatibility: ${SYSTEM_SYSV_COMPAT} SysV init scripts: ${SYSTEM_SYSVINIT_PATH} SysV rc?.d directories: ${SYSTEM_SYSVRCND_PATH} diff --git a/src/cgls/cgls.c b/src/cgls/cgls.c index ad59c0127..cfb728bb8 100644 --- a/src/cgls/cgls.c +++ b/src/cgls/cgls.c @@ -80,7 +80,6 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c index 262e5ffef..859fa1a90 100644 --- a/src/core/dbus-manager.c +++ b/src/core/dbus-manager.c @@ -228,7 +228,6 @@ #define BUS_MANAGER_INTERFACE_PROPERTIES_GENERAL \ " \n" \ - " \n" \ " \n" \ " \n" \ " \n" \ @@ -526,13 +525,11 @@ static int bus_manager_set_runtime_watchdog_usec(DBusMessageIter *i, const char static const char systemd_property_string[] = PACKAGE_STRING "\0" - DISTRIBUTION "\0" SYSTEMD_FEATURES; static const BusProperty bus_systemd_properties[] = { - { "Version", bus_property_append_string, "s", 0 }, - { "Distribution", bus_property_append_string, "s", sizeof(PACKAGE_STRING) }, - { "Features", bus_property_append_string, "s", sizeof(PACKAGE_STRING) + sizeof(DISTRIBUTION) }, + { "Version", bus_property_append_string, "s", 0 }, + { "Features", bus_property_append_string, "s", sizeof(PACKAGE_STRING) }, { NULL, } }; diff --git a/src/core/main.c b/src/core/main.c index dfb53a843..1ee3c9c0e 100644 --- a/src/core/main.c +++ b/src/core/main.c @@ -1064,7 +1064,6 @@ static int help(void) { static int version(void) { puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; @@ -1567,7 +1566,7 @@ int main(int argc, char *argv[]) { if (arg_running_as == SYSTEMD_SYSTEM) { const char *virtualization = NULL; - log_info(PACKAGE_STRING " running in system mode. (" SYSTEMD_FEATURES "; " DISTRIBUTION ")"); + log_info(PACKAGE_STRING " running in system mode. (" SYSTEMD_FEATURES ")"); detect_virtualization(&virtualization); if (virtualization) @@ -1577,7 +1576,7 @@ int main(int argc, char *argv[]) { log_info("Running in initial RAM disk."); } else - log_debug(PACKAGE_STRING " running in user mode. (" SYSTEMD_FEATURES "; " DISTRIBUTION ")"); + log_debug(PACKAGE_STRING " running in user mode. (" SYSTEMD_FEATURES ")"); if (arg_running_as == SYSTEMD_SYSTEM && !skip_setup) { locale_setup(); diff --git a/src/delta/delta.c b/src/delta/delta.c index a65cea51b..9f2093851 100644 --- a/src/delta/delta.c +++ b/src/delta/delta.c @@ -362,7 +362,6 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; diff --git a/src/detect-virt/detect-virt.c b/src/detect-virt/detect-virt.c index bbb9dfc19..bd3ee452c 100644 --- a/src/detect-virt/detect-virt.c +++ b/src/detect-virt/detect-virt.c @@ -80,7 +80,6 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; diff --git a/src/hostname/hostnamectl.c b/src/hostname/hostnamectl.c index e38be89b3..ff1f09177 100644 --- a/src/hostname/hostnamectl.c +++ b/src/hostname/hostnamectl.c @@ -406,7 +406,6 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; diff --git a/src/journal/cat.c b/src/journal/cat.c index 523a7a2ed..a95392ccb 100644 --- a/src/journal/cat.c +++ b/src/journal/cat.c @@ -81,7 +81,6 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; diff --git a/src/journal/coredumpctl.c b/src/journal/coredumpctl.c index 4f0ed5839..b6e558186 100644 --- a/src/journal/coredumpctl.c +++ b/src/journal/coredumpctl.c @@ -170,7 +170,6 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); arg_action = ACTION_NONE; return 0; diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index 4d46beb3f..a74d43be7 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -202,7 +202,6 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; diff --git a/src/locale/localectl.c b/src/locale/localectl.c index 383a17dee..5d35f9cda 100644 --- a/src/locale/localectl.c +++ b/src/locale/localectl.c @@ -615,7 +615,6 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; diff --git a/src/login/inhibit.c b/src/login/inhibit.c index 4735df7d3..9b6613340 100644 --- a/src/login/inhibit.c +++ b/src/login/inhibit.c @@ -210,7 +210,6 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; diff --git a/src/login/loginctl.c b/src/login/loginctl.c index cfbc5fe02..e2b33a626 100644 --- a/src/login/loginctl.c +++ b/src/login/loginctl.c @@ -1394,7 +1394,6 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; diff --git a/src/machine-id-setup/machine-id-setup-main.c b/src/machine-id-setup/machine-id-setup-main.c index 6373ebc2d..eb2d51485 100644 --- a/src/machine-id-setup/machine-id-setup-main.c +++ b/src/machine-id-setup/machine-id-setup-main.c @@ -67,7 +67,6 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; diff --git a/src/notify/notify.c b/src/notify/notify.c index ffc8dfeb9..f521f5665 100644 --- a/src/notify/notify.c +++ b/src/notify/notify.c @@ -94,7 +94,6 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index b71d5de30..2ebfff8da 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -4201,7 +4201,6 @@ static int systemctl_parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c index 6a1c19a57..281c0524d 100644 --- a/src/timedate/timedatectl.c +++ b/src/timedate/timedatectl.c @@ -551,7 +551,6 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; diff --git a/src/tty-ask-password-agent/tty-ask-password-agent.c b/src/tty-ask-password-agent/tty-ask-password-agent.c index 052c10e7d..99a626c6c 100644 --- a/src/tty-ask-password-agent/tty-ask-password-agent.c +++ b/src/tty-ask-password-agent/tty-ask-password-agent.c @@ -688,7 +688,6 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: puts(PACKAGE_STRING); - puts(DISTRIBUTION); puts(SYSTEMD_FEATURES); return 0; -- 2.30.2