chiark / gitweb /
build-sys: initial support ALTLinux
authorAlexey Shabalin <a.shabalin@gmail.com>
Tue, 8 Feb 2011 11:50:56 +0000 (12:50 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 8 Feb 2011 11:52:06 +0000 (12:52 +0100)
Hi all!
I added basic support for ALTLinux.
Please see patch or
http://git.altlinux.org/people/shaba/packages/systemd.git?p=systemd.git;a=shortlog;h=refs/heads/altlinux
Thanks.

configure.ac
src/hostname-setup.c
src/locale-setup.c
src/util.c
src/vconsole-setup.c
units/graphical.target.m4
units/multi-user.target.m4

index c34305cf31c4b55b5eab8c90f1fa2fba7be31e77..1363b862bdd7f9cf0cc5a20983e1fdc10b17cbbb 100644 (file)
@@ -269,7 +269,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, ubuntu, 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, altlinux 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)])
@@ -281,6 +281,7 @@ if test "z$with_distro" = "z"; then
                 test -f "/etc/gentoo-release" && with_distro="gentoo"
                 test -f "/etc/slackware-version" && with_distro="slackware"
                 test -f "/etc/frugalware-release" && with_distro="frugalware"
+                test -f "/etc/altlinux-release" && with_distro="altlinux"
                 if test "x`lsb_release -is 2>/dev/null`" = "xUbuntu"; then
                         with_distro="ubuntu"
                 fi
@@ -362,6 +363,12 @@ case $with_distro in
                 AC_DEFINE(TARGET_FRUGALWARE, [], [Target is Frugalware])
                 M4_DISTRO_FLAG=-DTARGET_FRUGALWARE=1
                 ;;
+        altlinux)
+                SYSTEM_SYSVINIT_PATH=/etc/rc.d/init.d
+                SYSTEM_SYSVRCND_PATH=/etc/rc.d
+                AC_DEFINE(TARGET_ALTLINUX, [], [Target is ALTLinux])
+                M4_DISTRO_FLAG=-DTARGET_ALTLINUX=1
+                ;;
         other)
                 AS_IF([test "x$with_syslog_service" = "x"],
                         [AC_MSG_ERROR([With --distro=other, you must pass --with-syslog-service= to configure])])
@@ -418,6 +425,7 @@ 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)
 
 AC_DEFINE_UNQUOTED(SPECIAL_SYSLOG_SERVICE, ["$SPECIAL_SYSLOG_SERVICE"], [Syslog service name])
 
index 0428a64feafd44887666d93e79ec7210df638cc9..8b0ff793847ee78ecec438009cff10ba15314d96 100644 (file)
@@ -30,7 +30,7 @@
 #include "util.h"
 #include "log.h"
 
-#if defined(TARGET_FEDORA)
+#if defined(TARGET_FEDORA) || defined(TARGET_ALTLINUX)
 #define FILENAME "/etc/sysconfig/network"
 #elif defined(TARGET_SUSE) || defined(TARGET_SLACKWARE) || defined(TARGET_FRUGALWARE)
 #define FILENAME "/etc/HOSTNAME"
@@ -87,7 +87,7 @@ static int read_and_strip_hostname(const char *path, char **hn) {
 
 static int read_distro_hostname(char **hn) {
 
-#if defined(TARGET_FEDORA) || defined(TARGET_ARCH) || defined(TARGET_GENTOO)
+#if defined(TARGET_FEDORA) || defined(TARGET_ARCH) || defined(TARGET_GENTOO) || defined(TARGET_ALTLINUX)
         int r;
         FILE *f;
 
index 086647b720db323efe61bb7bc7c70b2d08e25965..9ac68d2f396d7832fb5207f5fc8d37e789821a73 100644 (file)
@@ -155,6 +155,16 @@ int locale_setup(void) {
                         log_warning("Failed to read /etc/rc.conf: %s", strerror(-r));
         }
 
+#elif defined(TARGET_ALTLINUX)
+        if (r <= 0 &&
+            (r = parse_env_file("/etc/sysconfig/i18n", NEWLINE,
+                                "LANG", &variables[VARIABLE_LANG],
+                                NULL)) < 0) {
+
+                if (r != -ENOENT)
+                        log_warning("Failed to read /etc/sysconfig/i18n: %s", strerror(-r));
+        }
+
 #elif defined(TARGET_GENTOO)
         /* Gentoo's openrc expects locale variables in /etc/env.d/
          * These files are later compiled by env-update into shell
index ef37d05751bc4236834e3905e100338bd3af1c61..7692a2d620cbe5464ddfe1c74d23796e154fc707 100644 (file)
@@ -3017,6 +3017,21 @@ void status_welcome(void) {
         if (!ansi_color)
                 const_color = "1;34"; /* Light Blue for Gentoo */
 
+#elif defined(TARGET_ALTLINUX)
+
+        if (!pretty_name) {
+                if ((r = read_one_line_file("/etc/altlinux-release", &pretty_name)) < 0) {
+
+                        if (r != -ENOENT)
+                                log_warning("Failed to read /etc/altlinux-release: %s", strerror(-r));
+                } else
+                        truncate_nl(pretty_name);
+        }
+
+        if (!ansi_color)
+                const_color = "0;36"; /* Cyan for ALTLinux */
+
+
 #elif defined(TARGET_DEBIAN)
 
         if (!pretty_name) {
index d05c277ad9613d043051659b1b0268ebb74fe27f..1952dfb0f154b0bd11fc6b363c972b8db31f6f73 100644 (file)
@@ -280,6 +280,24 @@ int main(int argc, char **argv) {
                         if (r != -ENOENT)
                                 log_warning("Failed to read /etc/sysconfig/font: %s", strerror(-r));
                 }
+
+#elif defined(TARGET_ALTLINUX)
+                if ((r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE,
+                                        "KEYTABLE", &vc_keymap,
+                                        NULL)) < 0) {
+
+                        if (r != -ENOENT)
+                                log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r));
+                }
+
+                if ((r = parse_env_file("/etc/sysconfig/consolefont", NEWLINE,
+                                        "SYSFONT", &vc_font,
+                                        NULL)) < 0) {
+
+                        if (r != -ENOENT)
+                                log_warning("Failed to read /etc/sysconfig/console: %s", strerror(-r));
+                }
+
 #elif defined(TARGET_GENTOO)
                 if ((r = parse_env_file("/etc/rc.conf", NEWLINE,
                                         "unicode", &vc_unicode,
index 97c01ce1ecbd606aa411e2a0b618fd341e59ac0f..e2750c8640138df1c43d13361f49a5796af0e2fc 100644 (file)
@@ -20,6 +20,9 @@ Names=runlevel5.target
 m4_ifdef(`TARGET_SUSE',
 Names=runlevel5.target
 )m4_dnl
+m4_ifdef(`TARGET_ALTLINUX',
+Names=runlevel5.target
+)m4_dnl
 AllowIsolate=yes
 
 [Install]
index 8d458c7679c5a76c9eb6099b5d1924269fc5aeab..9df01424465cdec9816c5366f75911706fcb3a89 100644 (file)
@@ -20,6 +20,9 @@ Names=runlevel3.target
 m4_ifdef(`TARGET_SUSE',
 Names=runlevel3.target
 )m4_dnl
+m4_ifdef(`TARGET_ALTLINUX',
+Names=runlevel3.target
+)m4_dnl
 m4_ifdef(`TARGET_DEBIAN',
 m4_ifdef(`TARGET_UBUNTU',
 m4_dnl On Debian/Ubuntu Runlevel 2, 3, 4 and 5 are multi-user