summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--Init/Services.pm17
-rw-r--r--Users/Users.pm3
3 files changed, 21 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 1c0e892..38f5cde 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2007-09-26 Carlos Garnacho <carlosg@gnome.org>
+ Add support for Archlinux to UsersConfig and ServicesConfig. patch
+ provided by Ermanno Scaglione <e.scaglione@arcor.de>
+
+ * Users/Users.pm (add_user): Archlinux prefers useradd.
+ * Init/Services.pm (get_runlevels) (set_archlinux_service_status)
+ (get_rcng_service_info) (run_rcng_script): Fixes for rcng/archlinux
+ init.
+
+2007-09-26 Carlos Garnacho <carlosg@gnome.org>
+
* Init/Services.pm (set_gentoo_service_status), (set_gentoo_services):
ensure that a service status has changed before trying to change it.
(get_gentoo_runlevels) (get_gentoo_runlevels_services): return undef
diff --git a/Init/Services.pm b/Init/Services.pm
index 8c532ba..675262f 100644
--- a/Init/Services.pm
+++ b/Init/Services.pm
@@ -52,6 +52,7 @@ sub get_runlevels
"vine-3.0" => "redhat-6.2",
"slackware-9.1.0" => "freebsd-5",
"gentoo" => "gentoo",
+ "archlinux" => "freebsd-5",
"freebsd-5" => "freebsd-5",
"solaris-2.11" => "freebsd-5",
);
@@ -846,7 +847,7 @@ sub get_rcng_status_by_service
# This is the only difference between rcNG and archlinux
if ($Utils::Backend::tool{"platform"} eq "archlinux")
{
- return &Utils::File::exists ("/var/run/daemons/$service");
+ return &Utils::File::exists ("/var/run/daemons/$service");
}
else
{
@@ -882,7 +883,7 @@ sub get_rcng_service_info
push @runlevels, [ "default", $SERVICE_STOP, 0 ];
}
- return ($script, $runlevels);
+ return ($script, \@runlevels);
}
sub get_rcng_services
@@ -910,13 +911,13 @@ sub run_rcng_script
if (!&Utils::File::run ("/etc/rc.d/$service $arg"))
{
- &Utils::File::do_report ("service_sysv_op_success", $service, $arg);
- &Utils::File::leave ();
+ &Utils::Report::do_report ("service_sysv_op_success", $service, $arg);
+ &Utils::Report::leave ();
return 0;
}
- &Utils::File::do_report ("service_sysv_op_failed", $service, $arg);
- &Utils::File::leave ();
+ &Utils::Report::do_report ("service_sysv_op_failed", $service, $arg);
+ &Utils::Report::leave ();
return -1;
}
@@ -977,8 +978,8 @@ sub set_archlinux_service_status
my ($script, $active) = @_;
my $rcconf = '/etc/rc.conf';
my ($daemons);
-
$daemons = &Utils::Parse::get_sh ($rcconf, "DAEMONS");
+ $daemons =~ s/[()]//;
if (($daemons =~ m/$script/) && !$active)
{
@@ -989,7 +990,7 @@ sub set_archlinux_service_status
$daemons =~ s/network/network $script/g;
}
- &Utils::Replace::set_sh ($rcconf, "DAEMONS", $daemons);
+ &Utils::Replace::set_sh ($rcconf, "DAEMONS", "($daemons)", 1);
&run_rcng_script ($service, ($active) ? "start" : "stop");
}
diff --git a/Users/Users.pm b/Users/Users.pm
index 1062158..09464c3 100644
--- a/Users/Users.pm
+++ b/Users/Users.pm
@@ -578,7 +578,8 @@ sub add_user
&Utils::File::run ("$tool_mkdir -p $home_parents");
if ($cmd_adduser &&
- $Utils::Backend::tool{"platform"} !~ /^slackware/)
+ $Utils::Backend::tool{"platform"} !~ /^slackware/ &&
+ $Utils::Backend::tool{"platform"} !~ /^archlinux/)
{
# use adduser if available and valid (slackware one is b0rk)
# set empty gecos fields and password, they will be filled out later