chiark / gitweb /
ubuntu: Treat Ubuntu as a distinct distro in configure.ac etc
authorAndrew Edmunds <Andrew.Edmunds@yahoo.com.au>
Mon, 25 Oct 2010 13:22:28 +0000 (23:22 +1000)
committerLennart Poettering <lennart@poettering.net>
Mon, 25 Oct 2010 19:09:56 +0000 (21:09 +0200)
Previously Ubuntu was treated as being equivalent to Debian, but the two
distributions require different behaviour in certain places.  This commit does
not change the behaviour of systemd on either distro but it creates a
framework for changes to be introduced by later commits.

The following previously meant "Target is Debian or Ubuntu".
    * configure option "--with-distro=debian"
    * C preprocessor symbol "TARGET_DEBIAN"
    * Automake conditional "TARGET_DEBIAN"
After this commit, all of the above are redefined to mean "Target is Debian"

The following are introduced to mean "Target is Ubuntu".
    * configure option "--with-distro=ubuntu"
    * C preprocessor symbol "TARGET_UBUNTU"
    * Automake conditional "TARGET_UBUNTU"

Most code written for Debian will also be applicable to Ubuntu. An extra
Automake conditional "TARGET_DEBIAN_OR_UBUNTU" is introduced to avoid
duplication of code that would otherwise occur.

This commit updates configure.ac, Makefile.am and distro-specific source files
in line with the above definitions.

Makefile.am
configure.ac
src/locale-setup.c
src/service.c
units/getty@.service.m4
units/multi-user.target.m4

index 77d1fc938ffcf3f2d4cfa6a2e917d1e5e9a99f3b..b6cae4109b5a0b8eda1fbcc2d7c37d6f03517065 100644 (file)
@@ -303,7 +303,7 @@ dist_systemunit_DATA += \
        units/fedora/plymouth-halt.service
 endif
 
-if TARGET_DEBIAN
+if TARGET_DEBIAN_OR_UBUNTU
 dist_systemunit_DATA += \
        units/debian/fsck.target \
        units/debian/umountfs.service \
@@ -1218,7 +1218,7 @@ if TARGET_GENTOO
                rm -f xdm.service && \
                $(LN_S) $(systemunitdir)/xdm.service xdm.service )
 endif
-if TARGET_DEBIAN
+if TARGET_DEBIAN_OR_UBUNTU
        $(MKDIR_P) -m 0755 \
                $(DESTDIR)$(systemunitdir)/umount.target.wants
        ( cd $(DESTDIR)$(systemunitdir)/umount.target.wants && \
@@ -1232,11 +1232,13 @@ if TARGET_DEBIAN
 endif
 if !TARGET_SUSE
 if !TARGET_DEBIAN
+if !TARGET_UBUNTU
        ( cd $(DESTDIR)$(systemunitdir) && \
                rm -f fsck.target && \
                $(LN_S) sysinit.target fsck.target )
 endif
 endif
+endif
 
 DISTCHECK_CONFIGURE_FLAGS = \
        --with-dbuspolicydir=$$dc_install_base/$(dbuspolicydir) \
index 4f22b1b3daccf4b6757508c6fe18f4fa449965d3..a9f9e1afd88d29deca956f3de7d2725ce3eb5e6c 100644 (file)
@@ -251,7 +251,7 @@ AM_CONDITIONAL(HAVE_XSLTPROC, test x"$XSLTPROC" != x)
 
 AC_PATH_PROG([M4], [m4])
 
-AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, arch, gentoo, slackware or other]))
+AC_ARG_WITH(distro, AS_HELP_STRING([--with-distro=DISTRO],[Specify the distribution to target: One of fedora, suse, debian, ubuntu, arch, gentoo, slackware 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)])
@@ -259,6 +259,9 @@ if test "z$with_distro" = "z"; then
                 AC_CHECK_FILE(/etc/redhat-release,with_distro="fedora")
                 AC_CHECK_FILE(/etc/SuSE-release,with_distro="suse")
                 AC_CHECK_FILE(/etc/debian_version,with_distro="debian")
+                if test "x`lsb_release -is 2>/dev/null`" = "xUbuntu"; then
+                        with_distro="ubuntu"
+                fi
                 AC_CHECK_FILE(/etc/arch-release,with_distro="arch")
                 AC_CHECK_FILE(/etc/gentoo-release,with_distro="gentoo")
                 AC_CHECK_FILE(/etc/slackware-version,with_distro="slackware")
@@ -305,9 +308,15 @@ case $with_distro in
         debian)
                 SYSTEM_SYSVRCND_PATH=/etc
                 SPECIAL_SYSLOG_SERVICE=rsyslog.service
-                AC_DEFINE(TARGET_DEBIAN, [], [Target is Debian/Ubuntu])
+                AC_DEFINE(TARGET_DEBIAN, [], [Target is Debian])
                 M4_DISTRO_FLAG=-DTARGET_DEBIAN=1
                 ;;
+        ubuntu)
+                SYSTEM_SYSVRCND_PATH=/etc
+                SPECIAL_SYSLOG_SERVICE=rsyslog.service
+                AC_DEFINE(TARGET_UBUNTU, [], [Target is Ubuntu])
+                M4_DISTRO_FLAG=-DTARGET_UBUNTU=1
+                ;;
         arch)
                 SYSTEM_SYSVINIT_PATH=/etc/rc.d
                 SYSTEM_SYSVRCND_PATH=/etc
@@ -372,6 +381,8 @@ fi
 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_UBUNTU, test x"$with_distro" = xubuntu)
+AM_CONDITIONAL(TARGET_DEBIAN_OR_UBUNTU, test x"$with_distro" = xdebian -o x"$with_distro" = xubuntu)
 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)
index ffb4ee999e34965e538a8657e086ec29fab79268..b3375e99b1262d2f0c31c8f57d391166ea3b34c0 100644 (file)
@@ -135,7 +135,7 @@ int locale_setup(void) {
                         log_warning("Failed to read /etc/sysconfig/language: %s", strerror(-r));
         }
 
-#elif defined(TARGET_DEBIAN)
+#elif defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU)
         if (r <= 0 &&
             (r = parse_env_file("/etc/default/locale", NEWLINE,
                                 "LANG", &variables[VARIABLE_LANG],
index 6d6c540a725aef480d677f0418f5cb74ac2e8105..7a522bf3f47d865dde181fa2a33d16f014f5edb5 100644 (file)
@@ -65,7 +65,7 @@ static const struct {
         { "boot.d", SPECIAL_SYSINIT_TARGET,   RUNLEVEL_SYSINIT },
 #endif
 
-#ifdef TARGET_DEBIAN
+#if defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU)
         /* Debian style rcS.d */
         { "rcS.d",  SPECIAL_SYSINIT_TARGET,   RUNLEVEL_SYSINIT },
 #endif
@@ -274,7 +274,7 @@ static int sysv_translate_facility(const char *name, const char *filename, char
                 "time",                 SPECIAL_RTC_SET_TARGET,
 
                 /* Debian extensions */
-#ifdef TARGET_DEBIAN
+#if defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU)
                 "mail-transport-agent", SPECIAL_MAIL_TRANSFER_AGENT_TARGET,
 #endif
                 "mail-transfer-agent",  SPECIAL_MAIL_TRANSFER_AGENT_TARGET,
index 4691ea7bfe3439ad68667889f6f80d2315262376..98c6a88213a1fc84fe6ba722cd8336cc914b0037 100644 (file)
@@ -8,6 +8,7 @@
 m4_ifdef(`TARGET_FEDORA', `m4_define(`GETTY', `/sbin/mingetty')')m4_dnl
 m4_ifdef(`TARGET_SUSE', `m4_define(`GETTY', `/sbin/mingetty')')m4_dnl
 m4_ifdef(`TARGET_DEBIAN', `m4_define(`GETTY', `/sbin/getty 38400')')m4_dnl
+m4_ifdef(`TARGET_UBUNTU', `m4_define(`GETTY', `/sbin/getty 38400')')m4_dnl
 m4_ifdef(`TARGET_GENTOO', `m4_define(`GETTY', `/sbin/agetty 38400')')m4_dnl
 m4_ifdef(`TARGET_ARCH', `m4_define(`GETTY', `/sbin/agetty -8 38400')')m4_dnl
 m4_dnl
index cf290e7cf59d9b33df943fdfa5224246c7b3a79b..8f8903f2cced34a41cda3cafe9eeb437ba1c98e2 100644 (file)
@@ -21,9 +21,11 @@ m4_ifdef(`TARGET_SUSE',
 Names=runlevel3.target
 )m4_dnl
 m4_ifdef(`TARGET_DEBIAN',
-m4_dnl On Debian Runlevel 2, 3, 4 and 5 are multi-user
+m4_ifdef(`TARGET_UBUNTU',
+m4_dnl On Debian/Ubuntu Runlevel 2, 3, 4 and 5 are multi-user
 Names=runlevel2.target runlevel3.target runlevel4.target runlevel5.target
 )m4_dnl
+)m4_dnl
 AllowIsolate=yes
 
 [Install]