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.
units/fedora/plymouth-halt.service
endif
units/fedora/plymouth-halt.service
endif
+if TARGET_DEBIAN_OR_UBUNTU
dist_systemunit_DATA += \
units/debian/fsck.target \
units/debian/umountfs.service \
dist_systemunit_DATA += \
units/debian/fsck.target \
units/debian/umountfs.service \
rm -f xdm.service && \
$(LN_S) $(systemunitdir)/xdm.service xdm.service )
endif
rm -f xdm.service && \
$(LN_S) $(systemunitdir)/xdm.service xdm.service )
endif
+if TARGET_DEBIAN_OR_UBUNTU
$(MKDIR_P) -m 0755 \
$(DESTDIR)$(systemunitdir)/umount.target.wants
( cd $(DESTDIR)$(systemunitdir)/umount.target.wants && \
$(MKDIR_P) -m 0755 \
$(DESTDIR)$(systemunitdir)/umount.target.wants
( cd $(DESTDIR)$(systemunitdir)/umount.target.wants && \
endif
if !TARGET_SUSE
if !TARGET_DEBIAN
endif
if !TARGET_SUSE
if !TARGET_DEBIAN
( cd $(DESTDIR)$(systemunitdir) && \
rm -f fsck.target && \
$(LN_S) sysinit.target fsck.target )
endif
endif
( cd $(DESTDIR)$(systemunitdir) && \
rm -f fsck.target && \
$(LN_S) sysinit.target fsck.target )
endif
endif
DISTCHECK_CONFIGURE_FLAGS = \
--with-dbuspolicydir=$$dc_install_base/$(dbuspolicydir) \
DISTCHECK_CONFIGURE_FLAGS = \
--with-dbuspolicydir=$$dc_install_base/$(dbuspolicydir) \
-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)])
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)])
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")
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")
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")
debian)
SYSTEM_SYSVRCND_PATH=/etc
SPECIAL_SYSLOG_SERVICE=rsyslog.service
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
;;
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
arch)
SYSTEM_SYSVINIT_PATH=/etc/rc.d
SYSTEM_SYSVRCND_PATH=/etc
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_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)
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)
log_warning("Failed to read /etc/sysconfig/language: %s", strerror(-r));
}
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],
if (r <= 0 &&
(r = parse_env_file("/etc/default/locale", NEWLINE,
"LANG", &variables[VARIABLE_LANG],
{ "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT },
#endif
{ "boot.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT },
#endif
+#if defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU)
/* Debian style rcS.d */
{ "rcS.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT },
#endif
/* Debian style rcS.d */
{ "rcS.d", SPECIAL_SYSINIT_TARGET, RUNLEVEL_SYSINIT },
#endif
"time", SPECIAL_RTC_SET_TARGET,
/* Debian extensions */
"time", SPECIAL_RTC_SET_TARGET,
/* Debian extensions */
+#if defined(TARGET_DEBIAN) || defined(TARGET_UBUNTU)
"mail-transport-agent", SPECIAL_MAIL_TRANSFER_AGENT_TARGET,
#endif
"mail-transfer-agent", SPECIAL_MAIL_TRANSFER_AGENT_TARGET,
"mail-transport-agent", SPECIAL_MAIL_TRANSFER_AGENT_TARGET,
#endif
"mail-transfer-agent", SPECIAL_MAIL_TRANSFER_AGENT_TARGET,
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_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
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
Names=runlevel3.target
)m4_dnl
m4_ifdef(`TARGET_DEBIAN',
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
Names=runlevel2.target runlevel3.target runlevel4.target runlevel5.target
)m4_dnl
AllowIsolate=yes
[Install]
AllowIsolate=yes
[Install]