diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | Init/Services.pm | 17 | ||||
-rw-r--r-- | Users/Users.pm | 3 |
3 files changed, 21 insertions, 9 deletions
@@ -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 |