diff options
author | carlosg <carlosg> | 2006-05-16 10:37:07 +0000 |
---|---|---|
committer | carlosg <carlosg> | 2006-05-16 10:37:07 +0000 |
commit | 601039b875ddc47683af8fc3f34b878b92cf0d7d (patch) | |
tree | d56ae5dcfd6a54815257c904ab38c5bc2aca07c1 | |
parent | 1f5390053e4a1620ade6b9d1eef039dd16734e59 (diff) |
2006-05-15 Carlos Garnacho Parro <carlosg@gnome.org>waiting-the-dbus
* Utils/Platform.pm: add support for Ubuntus, Mandrivas, Yoper, VLOS,
Archlinux and Ark in this branch, rename Specifix to rPath
* Users/Users.pm, Time/TimeDate.pm, Time/NTP.pm, Network/Ifaces.pm,
Network/Hosts.pm, Init/Services.pm: add changes related to these
distros in this branch
* Shares/SMB.pm: add mapping function to know the distro config file
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Init/Services.pm | 79 | ||||
-rw-r--r-- | Network/Hosts.pm | 70 | ||||
-rw-r--r-- | Network/Ifaces.pm | 82 | ||||
-rw-r--r-- | Shares/SMB.pm | 77 | ||||
-rw-r--r-- | Time/NTP.pm | 2 | ||||
-rw-r--r-- | Time/TimeDate.pm | 45 | ||||
-rw-r--r-- | Users/Users.pm | 9 | ||||
-rw-r--r-- | Utils/Platform.pm | 121 |
9 files changed, 416 insertions, 75 deletions
@@ -5,6 +5,12 @@ * Utils/Parse.pm: ditto for parsing * Utils/File.pm (copy): do not fail miserably if the original copy doesn't exist + * Utils/Platform.pm: add support for Ubuntus, Mandrivas, Yoper, VLOS, + Archlinux and Ark in this branch, rename Specifix to rPath + * Users/Users.pm, Time/TimeDate.pm, Time/NTP.pm, Network/Ifaces.pm, + Network/Hosts.pm, Init/Services.pm: add changes related to these + distros in this branch + * Shares/SMB.pm: add mapping function to know the distro config file 2006-05-14 Carlos Garnacho Parro <carlosg@gnome.org> diff --git a/Init/Services.pm b/Init/Services.pm index 89c502f..0136e87 100644 --- a/Init/Services.pm +++ b/Init/Services.pm @@ -75,7 +75,7 @@ sub get_runlevel_roles "fedora-2" => "redhat-5.2", "fedora-3" => "redhat-5.2", - "specifix" => "redhat-5.2", + "rpath" => "redhat-5.2", "vine-3.0" => "redhat-5.2", "vine-3.1" => "redhat-5.2", @@ -166,7 +166,11 @@ sub get_sysv_paths "mandrake-9.2" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], "mandrake-10.0" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], "mandrake-10.1" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], + "mandrake-10.2" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], + "mandriva-2006.0" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], + "mandriva-2006.1" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], + "yoper-2.2" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], "blackpanther-4.0" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], "conectiva-9" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], @@ -175,9 +179,10 @@ sub get_sysv_paths "debian-2.2" => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"], "debian-3.0" => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"], "debian-sarge" => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"], - "ubuntu-5.04" => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"], - + "ubuntu-5.10" => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"], + "ubuntu-6.04" => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"], + "suse-7.0" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d", "../"], "suse-9.0" => ["$gst_prefix/etc/init.d", "$gst_prefix/etc/init.d", "../"], "suse-9.1" => ["$gst_prefix/etc/init.d", "$gst_prefix/etc/init.d", "../"], @@ -191,11 +196,13 @@ sub get_sysv_paths "fedora-1" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], "fedora-2" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], "fedora-3" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], + "fedora-4" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], - "specifix" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], + "rpath" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], "vine-3.0" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], "vine-3.1" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], + "ark" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"], ); my $res; @@ -847,21 +854,29 @@ sub get_rcng_status_by_service my ($service) = @_; my ($fd, $line, $active); - $fd = &Utils::File::run_pipe_read ("/etc/rc.d/$service rcvar"); - - while (<$fd>) + # This is the only difference between rcNG and archlinux + if ($gst_dist eq "archlinux") + { + return &Utils::File::exists ("/var/run/daemons/$service"); + } + else { - $line = $_; + $fd = &Utils::File::run_pipe_read ("/etc/rc.d/$service rcvar"); - if ($line =~ /^\$.*=YES$/) + while (<$fd>) { - $active = 1; - last; + $line = $_; + + if ($line =~ /^\$.*=YES$/) + { + $active = 1; + last; + } } - } - Utils::File::close_file ($fd); - return $active; + Utils::File::close_file ($fd); + return $active; + } } sub get_rcng_service_info @@ -960,10 +975,40 @@ sub set_rcng_service_status } } +sub set_archlinux_service_status +{ + my ($script, $active) = @_; + my $rcconf = '/etc/rc.conf'; + my ($daemons); + + $daemons = &Utils::Parse::get_sh ($rcconf, "DAEMONS"); + + if (($daemons =~ m/$script/) && !$active) + { + $daemons =~ s/$script[ \t]*//; + } + elsif (($daemons !~ m/$script/) && $active) + { + $daemons =~ s/network/network $script/g; + } + + &Utils::Replace::set_sh ($rcconf, "DAEMONS", $daemons); +} + sub set_rcng_services { my ($services) = @_; - my ($action, $runlevels, $script); + my ($action, $runlevels, $script, $func); + + # archlinux stores services differently + if ($gst_dist eq "archlinux") + { + $func = \&set_archlinux_service_status; + } + else + { + $func = \&set_rcng_service_status; + } foreach $service (@$services) { @@ -972,7 +1017,7 @@ sub set_rcng_services $runlevel = $$runlevels[0]; $action = ($$runlevel[1] eq "start")? 1 : 0; - &set_rcng_service_status ($script, $action); + &$func ($script, $action); } } @@ -1076,7 +1121,7 @@ sub get_init_type { return "bsd"; } - elsif ($gst_dist =~ /freebsd/) + elsif (($gst_dist =~ /freebsd/) || ($gst_dist =~ /archlinux/)) { return "rcng"; } diff --git a/Network/Hosts.pm b/Network/Hosts.pm index 5ef2f28..899245e 100644 --- a/Network/Hosts.pm +++ b/Network/Hosts.pm @@ -44,12 +44,19 @@ sub get_fqdn_parse_table "mandrake-9.2" => "redhat-6.2", "mandrake-10.0" => "redhat-6.2", "mandrake-10.1" => "redhat-6.2", + "mandrake-10.2" => "redhat-6.2", + "mandriva-2006.0" => "redhat-6.2", + "mandriva-2006.1" => "redhat-6.2", + "yoper-2.2" => "redhat-6.2", "blackpanther-4.0" => "redhat-6.2", "conectiva-9" => "redhat-6.2", "conectiva-10" => "redhat-6.2", "debian-2.2" => "debian-2.2", "debian-3.0" => "debian-2.2", "debian-sarge" => "debian-2.2", + "ubuntu-5.04" => "debian-2.2", + "ubuntu-5.10" => "debian-2.2", + "ubuntu-6.04" => "debian-2.2", "suse-9.0" => "suse-9.0", "suse-9.1" => "suse-9.0", "turbolinux-7.0" => "redhat-7.0", @@ -59,13 +66,17 @@ sub get_fqdn_parse_table "fedora-1" => "redhat-7.2", "fedora-2" => "redhat-7.2", "fedora-3" => "redhat-7.2", - "specifix" => "redhat-7.2", + "fedora-4" => "redhat-7.2", + "rpath" => "redhat-7.2", "vine-3.0" => "redhat-6.2", "vine-3.1" => "redhat-6.2", + "ark" => "redhat-6.2", "slackware-9.1.0" => "suse-9.0", "slackware-10.0.0" => "suse-9.0", "slackware-10.1.0" => "suse-9.0", + "slackware-10.2.0" => "suse-9.0", "gentoo" => "gentoo", + "vlos-1.2" => "gentoo", "freebsd-5" => "freebsd-5", "freebsd-6" => "freebsd-5", ); @@ -136,14 +147,14 @@ sub get_fqdn_parse_table { fn => { - HOSTNAME => "/etc/hostname", - DOMAINNAME => "/etc/dnsdomainname", + HOSTNAME => "/etc/conf.d/hostname", + DOMAINNAME => "/etc/conf.d/domainname", RESOLV_CONF => "/etc/resolv.conf", }, table => [ - [ "hostname", \&Utils::Parse::get_first_line, HOSTNAME ], - [ "domain", \&Utils::Parse::get_first_line, DOMAINNAME ], + [ "hostname", \&Utils::Parse::get_sh, HOSTNAME, HOSTNAME ], + [ "domain", \&Utils::Parse::get_sh, DOMAINNAME, DNSDOMAIN ], [ "domain", \&Utils::Parse::split_first_str, RESOLV_CONF, "domain", "[ \t]+" ], ] }, @@ -170,6 +181,50 @@ sub get_fqdn_parse_table return undef; } +sub add_statichost_alias +{ + my ($localhost, $alias) = @_; + my $i; + + foreach $i (@$localhost) + { + return if ($i eq $alias); + } + + push @$localhost, $alias; +} + +sub remove_statichost_alias +{ + my ($localhost, $alias) = @_; + my $i; + + for ($i = 0; $i < @$localhost; $i++) { + if ($$localhost[$i] eq $alias) + { + delete $$localhost[$i]; + return; + } + } +} + +sub ensure_loopback_statichost +{ + my ($statichost, $hostname, $old_hostname, $lo_ip) = @_; + my $i; + + if (exists $$statichost{$lo_ip}) + { + my $localhost = $$statichost{$lo_ip}; + &remove_statichost_alias ($localhost, $old_hostname) if ($old_hostname); + &add_statichost_alias ($localhost, $hostname); + } + else + { + $$statichost{$lo_ip} = [ ("localhost", "localhost.localdomain", $hostname) ]; + } +} + sub get_fqdn { my %dist_attrib; @@ -215,6 +270,11 @@ sub get_search_domains return @search_domains; } +sub set_fqdn +{ + # FIXME: implement, add a call to &ensure_loopback_statichost() +} + sub set { my (@config) = @_; diff --git a/Network/Ifaces.pm b/Network/Ifaces.pm index b1c71a6..1a9cc9e 100644 --- a/Network/Ifaces.pm +++ b/Network/Ifaces.pm @@ -435,16 +435,25 @@ sub set_suse_bootproto return &Utils::Replace::set_sh ($file, $key, $proto_name_to_suse90{$value}); } +sub get_gentoo_bootproto +{ + my ($file, $dev) = @_; + + return "dhcp" if (&Utils::Parse::get_confd_net ($file, "config_$dev") =~ /dhcp/i); + return "none"; +} + sub set_gentoo_bootproto { my ($file, $dev, $value) = @_; return if ($dev =~ /^ppp/); - return &Utils::Replace::split ($file, "config_$dev", "[ \t]*=[ \t]*", "\"dhcp\"") if ($value ne "none"); + return &Utils::Replace::set_confd_net ($file, "config_$dev", "dhcp") if ($value ne "none"); - # replace with a fake IP address, I know it's a hack - return &Utils::Replace::split ($file, "config_$dev", "[ \t]*=[ \t]*", "\"0.0.0.0\""); + # replace with a fake IP address, it will be replaced + # later with the correct one, I know it's a hack + return &Utils::Replace::set_confd_net ($file, "config_$dev", "0.0.0.0"); } sub set_freebsd_bootproto @@ -1390,8 +1399,7 @@ sub delete_gentoo_interface $gateway = $$old_hash {"gateway"}; # bring down the interface and remove from init - # FIXME: port this function - &gst_service_gentoo_set_status ("/etc/init.d/net.$dev", 1, 0); + &Init::Services::set_gentoo_service_status ("/etc/init.d/net.$dev", "default", "stop"); if ($dev =~ /^ppp/) { @@ -1399,7 +1407,7 @@ sub delete_gentoo_interface } else { - &Utils::Replace::set_sh ("/etc/conf.d/net", "iface_$dev", ""); + &Utils::Replace::set_sh ("/etc/conf.d/net", "config_$dev", ""); } } @@ -1653,11 +1661,18 @@ sub get_interface_parse_table "mandrake-9.2" => "mandrake-9.0", "mandrake-10.0" => "mandrake-9.0", "mandrake-10.1" => "mandrake-9.0", + "mandrake-10.2" => "mandrake-9.0", + "mandriva-2006.0" => "mandrake-9.0", + "mandriva-2006.1" => "mandrake-9.0", + "yoper-2.2" => "redhat-6.2", "blackpanther-4.0" => "mandrake-9.0", "conectiva-9" => "conectiva-9", "conectiva-10" => "conectiva-9", "debian-3.0" => "debian-3.0", "debian-sarge" => "debian-3.0", + "ubuntu-5.04" => "debian-3.0", + "ubuntu-5.10" => "debian-3.0", + "ubuntu-6.04" => "debian-3.0", "suse-9.0" => "suse-9.0", "suse-9.1" => "suse-9.0", "turbolinux-7.0" => "redhat-6.2", @@ -1667,13 +1682,17 @@ sub get_interface_parse_table "fedora-1" => "redhat-7.2", "fedora-2" => "redhat-7.2", "fedora-3" => "redhat-7.2", - "specifix" => "redhat-7.2", + "fedora-4" => "redhat-7.2", + "rpath" => "redhat-7.2", "vine-3.0" => "vine-3.0", "vine-3.1" => "vine-3.0", + "ark" => "vine-3.0", "slackware-9.1.0" => "slackware-9.1.0", "slackware-10.0.0" => "slackware-9.1.0", "slackware-10.1.0" => "slackware-9.1.0", + "slackware-10.2.0" => "slackware-9.1.0", "gentoo" => "gentoo", + "vlos-1.2" => "gentoo", "freebsd-5" => "freebsd-5", "freebsd-6" => "freebsd-5", ); @@ -2254,20 +2273,20 @@ sub get_interface_parse_table INIT => "net.#iface#", TYPE => "#type#", IFACE => "#iface#", - WIRELESS => "/etc/pcmcia/wireless.opts", + WIRELESS => "/etc/conf.d/wireless", }, table => [ [ "auto", \&Init::Services::get_gentoo_service_status, INIT, "default" ], [ "dev", \&Utils::Parse::get_trivial, IFACE ], - [ "address", \&Utils::Parse::get_sh_re, NET, "iface_%dev%", "^[ \t]*([0-9\.]+)" ], - [ "netmask", \&Utils::Parse::get_sh_re, NET, "iface_%dev%", "netmask[ \t]+([0-9\.]*)" ], - [ "remote_address", \&Utils::Parse::get_sh_re, NET, "iface_%dev%", "dest_address[ \t]+([0-9\.]*)" ], - [ "gateway", \&Utils::Parse::get_sh_re, NET, "gateway", "%dev%/([0-9\.\:]*)" ], - [ "bootproto", \&get_bootproto, NET, "iface_%dev%" ], - [ "essid", \&Utils::Parse::get_wireless_opts, [ WIRELESS, IFACE], \&get_wireless_ifaces, ESSID ], - [ "key_type", \&get_wep_key_type, [ \&Utils::Parse::get_wireless_opts, [ WIRELESS, IFACE], \&get_wireless_ifaces, KEY ]], - [ "key", \&get_wep_key, [ \&Utils::Parse::get_wireless_opts, [ WIRELESS, IFACE], \&get_wireless_ifaces, KEY ]], + [ "address", \&Utils::Parse::get_confd_net_re, NET, "config_%dev%", "^[ \t]*([0-9\.]+)" ], + [ "netmask", \&Utils::Parse::get_confd_net_re, NET, "config_%dev%", "netmask[ \t]+([0-9\.]*)" ], + [ "remote_address", \&Utils::Parse::get_confd_net_re, NET, "config_%dev%", "dest_address[ \t]+([0-9\.]*)" ], + # [ "gateway", \&gst_network_gentoo_parse_gateway, [ NET, IFACE ]], + [ "bootproto", \&get_gentoo_bootproto, [ NET, IFACE ]], + [ "essid", \&Utils::Parse::get_sh, WIRELESS, "essid_%dev%" ], + [ "key_type", \&get_wep_key_type, [ \&Utils::Parse::get_sh, WIRELESS, "key_%essid%" ]], + [ "key", \&get_wep_key, [ \&Utils::Parse::get_sh, WIRELESS, "key_%essid%" ]], # modem stuff [ "update_dns", \&Utils::Parse::get_sh_bool, PPPNET, PEERDNS ], [ "mtu", \&Utils::Parse::get_sh, PPPNET, MTU ], @@ -2354,6 +2373,7 @@ sub get_interface_replace_table "redhat-7.2" => "redhat-7.2", "redhat-8.0" => "redhat-8.0", "redhat-9" => "redhat-8.0", + "openna-1.0" => "redhat-6.2", "mandrake-7.1" => "redhat-6.2", "mandrake-7.2" => "redhat-6.2", "mandrake-9.0" => "mandrake-9.0", @@ -2361,11 +2381,18 @@ sub get_interface_replace_table "mandrake-9.2" => "mandrake-9.0", "mandrake-10.0" => "mandrake-9.0", "mandrake-10.1" => "mandrake-9.0", + "mandrake-10.2" => "mandrake-9.0", + "mandriva-2006.0" => "mandrake-9.0", + "mandriva-2006.1" => "mandrake-9.0", + "yoper-2.2" => "redhat-6.2", "blackpanther-4.0" => "mandrake-9.0", "conectiva-9" => "conectiva-9", "conectiva-10" => "conectiva-9", "debian-3.0" => "debian-3.0", "debian-sarge" => "debian-3.0", + "ubuntu-5.04" => "debian-3.0", + "ubuntu-5.10" => "debian-3.0", + "ubuntu-6.04" => "debian-3.0", "suse-9.0" => "suse-9.0", "suse-9.1" => "suse-9.0", "turbolinux-7.0" => "redhat-6.2", @@ -2375,13 +2402,17 @@ sub get_interface_replace_table "fedora-1" => "redhat-7.2", "fedora-2" => "redhat-7.2", "fedora-3" => "redhat-7.2", - "specifix" => "redhat-7.2", + "fedora-4" => "redhat-7.2", + "rpath" => "redhat-7.2", "vine-3.0" => "vine-3.0", "vine-3.1" => "vine-3.0", + "ark" => "vine-3.0", "slackware-9.1.0" => "slackware-9.1.0", "slackware-10.0.0" => "slackware-9.1.0", "slackware-10.1.0" => "slackware-9.1.0", + "slackware-10.2.0" => "slackware-9.1.0", "gentoo" => "gentoo", + "vlos-1.2" => "gentoo", "freebsd-5" => "freebsd-5", "freebsd-6" => "freebsd-5", ); @@ -2944,20 +2975,21 @@ sub get_interface_replace_table PPPNET => "/etc/conf.d/net.#iface#", INIT => "net.#iface#", IFACE => "#iface#", - WIRELESS => "/etc/pcmcia/wireless.opts", + WIRELESS => "/etc/conf.d/wireless", }, table => [ [ "dev", \&create_gentoo_files ], [ "auto", \&set_gentoo_service_status, INIT, "default" ], [ "bootproto", \&set_gentoo_bootproto, [ NET, IFACE ]], - [ "address", \&Utils::Replace::set_sh_re, NET, "iface_%dev%", "^[ \t]*([0-9\.]+)" ], - [ "netmask", \&Utils::Replace::set_sh_re, NET, "iface_%dev%", "[ \t]+netmask[ \t]+[0-9\.]*", " netmask %netmask%"], - [ "broadcast", \&Utils::Replace::set_sh_re, NET, "iface_%dev%", "[ \t]+broadcast[ \t]+[0-9\.]*", " broadcast %broadcast%" ], - [ "remote_address", \&Utils::Replace::set_sh_re, NET, "iface_%dev%", "[ \t]+dest_address[ \t]+[0-9\.]*", " dest_address %remote_address%" ], - [ "essid", \&Utils::Replace::set_wireless_opts, [ WIRELESS, IFACE ], \&get_wireless_ifaces, ESSID ], - [ "key", \&Utils::Replace::set_wireless_opts, [ WIRELESS, IFACE ], \&get_wireless_ifaces, KEY ], - [ "key_type", \&set_wep_key_full, [ \&Utils::Replace::set_wireless_opts, [ WIRELESS, IFACE ], \&get_wireless_ifaces, KEY, "%key%" ]], + [ "address", \&Utils::Replace::set_confd_net_re, NET, "config_%dev%", "^[ \t]*([0-9\.]+)" ], + [ "netmask", \&Utils::Replace::set_confd_net_re, NET, "config_%dev%", "[ \t]+netmask[ \t]+[0-9\.]*", " netmask %netmask%"], + [ "broadcast", \&Utils::Replace::set_confd_net_re, NET, "config_%dev%", "[ \t]+broadcast[ \t]+[0-9\.]*", " broadcast %broadcast%" ], + [ "remote_address", \&Utils::Replace::set_confd_net_re, NET, "config_%dev%", "[ \t]+dest_address[ \t]+[0-9\.]*", " dest_address %remote_address%" ], + # [ "gateway", \&Utils::Replace::set_confd_net_re, NET, "routes_%dev%", "[ \t]*default[ \t]+(via|gw)[ \t]+[0-9\.\:]*", "default via %gateway%" ], + [ "essid", \&Utils::Replace::set_sh, WIRELESS, "essid_%dev%" ], + [ "key", \&Utils::Replace::set_sh, WIRELESS, "key_%essid%" ], + [ "key_type", \&set_wep_key_type, [ \&Utils::Replace::set_sh, WIRELESS, "key_%essid%", "%key%" ]], # modem stuff [ "dev", \&check_type, [ IFACE, "modem", \&Utils::Replace::set_sh, PPPNET, PEER ]], [ "update_dns", \&check_type, [ IFACE, "modem", \&Utils::Replace::set_sh_bool, PPPNET, PEERDNS ]], diff --git a/Shares/SMB.pm b/Shares/SMB.pm index 4f49f19..218f772 100644 --- a/Shares/SMB.pm +++ b/Shares/SMB.pm @@ -127,12 +127,77 @@ sub get_distro_smb_file { my ($smb_comb); -# FIXME: should have a hash table with distro information -# %dist_attrib = &gst_network_get_parse_table (); -# $smb_conf = $dist_attrib{"fn"}{"SMB_CONF"}; - $smb_conf = "/etc/samba/smb.conf"; - - return $smb_conf; + my %dist_map = + ( + "redhat-6.0" => "redhat-6.2", + "redhat-6.1" => "redhat-6.2", + "redhat-6.2" => "redhat-6.2", + + "redhat-7.0" => "debian-3.0", + "redhat-7.1" => "debian-3.0", + "redhat-7.2" => "debian-3.0", + "redhat-7.3" => "debian-3.0", + "redhat-8.0" => "debian-3.0", + "redhat-9" => "debian-3.0", + "openna-1.0" => "redhat-6.2", + + "mandrake-7.1" => "redhat-6.2", + "mandrake-7.2" => "redhat-6.2", + "mandrake-9.0" => "debian-3.0", + "mandrake-9.1" => "debian-3.0", + "mandrake-9.2" => "debian-3.0", + "mandrake-10.0" => "debian-3.0", + "mandrake-10.1" => "debian-3.0", + "mandrake-10.2" => "debian-3.0", + + "debian-2.2" => "debian-3.0", + "debian-3.0" => "debian-3.0", + "debian-sarge" => "debian-3.0", + + "suse-9.0" => "debian-3.0", + "suse-9.1" => "debian-3.0", + + "turbolinux-7.0" => "debian-3.0", + + "slackware-8.0.0" => "debian-3.0", + "slackware-8.1" => "debian-3.0", + "slackware-9.0.0" => "debian-3.0", + "slackware-9.1.0" => "debian-3.0", + "slackware-10.0.0" => "debian-3.0", + "slackware-10.1.0" => "debian-3.0", + "slackware-10.2.0" => "debian-3.0", + + "gentoo" => "debian-3.0", + "vlos-1.2" => "debian-3.0", + + "archlinux" => "debian-3.0", + + "pld-1.0" => "pld-1.0", + "pld-1.1" => "pld-1.0", + "pld-1.99" => "pld-1.0", + "fedora-1" => "debian-3.0", + "fedora-2" => "debian-3.0", + "fedora-3" => "debian-3.0", + "rpath" => "debian-3.0", + + "vine-3.0" => "debian-3.0", + "vine-3.1" => "debian-3.0", + + "freebsd-5" => "freebsd-5", + "freebsd-6" => "freebsd-5", + ); + + my %dist_tables = + ( + "redhat-6.2" => "/etc/smb.conf", + "debian-3.0" => "/etc/samba/smb.conf", + "pld-1.0" => "/etc/smb/smb.conf", + "freebsd-5" => "/usr/local/etc/smb.conf", + ); + + my $dist = $dist_map {$Utils::Backend::tool{"platform"}}; + return $dist_tables{$dist} if $dist; + return undef; } sub get_share_info diff --git a/Time/NTP.pm b/Time/NTP.pm index 6907e2d..32c4cdd 100644 --- a/Time/NTP.pm +++ b/Time/NTP.pm @@ -73,7 +73,7 @@ sub get_config_file () "fedora-2" => "redhat-6.2", "fedora-3" => "redhat-6.2", - "specifix" => "redhat-6.2", + "rpath" => "redhat-6.2", "vine-3.0" => "redhat-6.2", "vine-3.1" => "redhat-6.2", diff --git a/Time/TimeDate.pm b/Time/TimeDate.pm index 931dbdd..b9a45bb 100644 --- a/Time/TimeDate.pm +++ b/Time/TimeDate.pm @@ -195,8 +195,12 @@ sub conf_get_parse_table "slackware-9.1.0" => "redhat-6.2", "slackware-10.0.0" => "redhat-6.2", "slackware-10.1.0" => "redhat-6.2", + "slackware-10.2.0" => "redhat-6.2", "gentoo" => "redhat-6.2", + "vlos-1.2" => "redhat-6.2", + + "archlinux" => "archlinux", "pld-1.0" => "redhat-6.2", "pld-1.1" => "redhat-6.2", @@ -204,8 +208,7 @@ sub conf_get_parse_table "fedora-1" => "redhat-6.2", "fedora-2" => "redhat-6.2", "fedora-3" => "redhat-6.2", - - "specifix" => "redhat-6.2", + "rpath" => "redhat-6.2", "vine-3.0" => "redhat-6.2", "vine-3.1" => "redhat-6.2", @@ -243,6 +246,21 @@ sub conf_get_parse_table [ "timezone", \&get_timezone, [LOCAL_TIME, ZONEINFO] ], ] }, + + "archlinux" => + { + fn => + { + RC_LOCAL => "/etc/rc.local", + ZONEINFO => "/usr/share/zoneinfo", + LOCAL_TIME => "/etc/localtime" + }, + table => + [ + [ "local_time", \&get_utc_time ], + [ "timezone", \&Utils::Parse::get_sh, RC_LOCAL, TIMEZONE ], + ] + }, ); my $dist = $dist_map {$Utils::Backend::tool{"platform"}}; @@ -287,12 +305,17 @@ sub conf_get_replace_table "turbolinux-7.0" => "redhat-6.2", "slackware-8.0.0" => "redhat-6.2", + "slackware-8.1" => "redhat-6.2", "slackware-9.0.0" => "redhat-6.2", "slackware-9.1.0" => "redhat-6.2", "slackware-10.0.0" => "redhat-6.2", "slackware-10.1.0" => "redhat-6.2", + "slackware-10.2.0" => "redhat-6.2", "gentoo" => "redhat-6.2", + "vlos-1.2" => "redhat-6.2", + + "archlinux" => "archlinux", "pld-1.0" => "redhat-6.2", "pld-1.1" => "redhat-6.2", @@ -300,7 +323,7 @@ sub conf_get_replace_table "fedora-1" => "redhat-6.2", "fedora-2" => "redhat-6.2", "fedora-3" => "redhat-6.2", - "specifix" => "redhat-6.2", + "rpath" => "redhat-6.2", "vine-3.0" => "redhat-6.2", "vine-3.1" => "redhat-6.2", @@ -340,6 +363,22 @@ sub conf_get_replace_table [ "local_time", \&set_utc_time ], ] }, + + "archlinux" => + { + fn => + { + RC_LOCAL => "/etc/rc.local", + ZONEINFO => "/usr/share/zoneinfo", + LOCAL_TIME => "/etc/localtime", + }, + table => + [ + [ "timezone", \&Utils::Replace::set_sh, RC_LOCAL, TIMEZONE ], + [ "timezone", \&set_timezone, [LOCAL_TIME, ZONEINFO] ], + [ "local_time", \&set_utc_time ], + ] + }, ); my $dist = $dist_map {$Utils::Backend::tool{"platform"}}; diff --git a/Users/Users.pm b/Users/Users.pm index a56c971..ae40d42 100644 --- a/Users/Users.pm +++ b/Users/Users.pm @@ -245,17 +245,22 @@ my $logindefs_dist_map = { 'fedora-1' => $rh_logindefs_defaults, 'fedora-2' => $rh_logindefs_defaults, 'fedora-3' => $rh_logindefs_defaults, - 'specifix' => $rh_logindefs_defaults, + 'rpath' => $rh_logindefs_defaults, 'debian-2.2' => $rh_logindefs_defaults, 'debian-3.0' => $rh_logindefs_defaults, 'debian-sarge' => $rh_logindefs_defaults, + 'ubuntu-5.04' => $rh_logindefs_defaults, + 'ubuntu-5.10' => $rh_logindefs_defaults, + 'ubuntu-6.04' => $rh_logindefs_defaults, 'vine-3.0' => $rh_logindefs_defaults, 'vine-3.1' => $rh_logindefs_defaults, 'gentoo' => $gentoo_logindefs_defaults, - 'archlinux-0.7' => $gentoo_logindefs_defaults, + 'vlos-1.2' => $gentoo_logindefs_defaults, + 'archlinux' => $gentoo_logindefs_defaults, 'slackware-9.1.0' => $gentoo_logindefs_defaults, 'slackware-10.0.0' => $gentoo_logindefs_defaults, 'slackware-10.1.0' => $gentoo_logindefs_defaults, + 'slackware-10.2.0' => $gentoo_logindefs_defaults, 'freebsd-4' => $freebsd_logindefs_defaults, 'freebsd-5' => $freebsd_logindefs_defaults, 'freebsd-6' => $freebsd_logindefs_defaults, diff --git a/Utils/Platform.pm b/Utils/Platform.pm index fe793a3..d37c16b 100644 --- a/Utils/Platform.pm +++ b/Utils/Platform.pm @@ -45,6 +45,9 @@ my $PLATFORM_INFO = { "debian-2.2" => [ "Debian GNU/Linux", "2.2", "Potato" ], "debian-3.0" => [ "Debian GNU/Linux", "3.0", "Woody" ], "debian-sarge" => [ "Debian GNU/Linux", "3.1", "Sarge" ], + "ubuntu-5.04" => [ "Ubuntu Linux", "5.04", "Hoary" ], + "ubuntu-5.10" => [ "Ubuntu Linux", "5.10", "Breezy" ], + "ubuntu-6.04" => [ "Ubuntu Linux", "6.04", "Dapper" ], "redhat-5.2" => [ "Red Hat Linux", "5.2", "Apollo" ], "redhat-6.0" => [ "Red Hat Linux", "6.0", "Hedwig" ], "redhat-6.1" => [ "Red Hat Linux", "6.1", "Cartman" ], @@ -64,6 +67,10 @@ my $PLATFORM_INFO = { "mandrake-9.2" => [ "Linux Mandrake", "9.2", "FiveStar" ], "mandrake-10.0" => [ "Linux Mandrake", "10.0" ], "mandrake-10.1" => [ "Linux Mandrake", "10.1" ], + "mandrake-10.2" => [ "Linux Mandrake", "2005" ], + "mandriva-2006.0" => [ "Mandriva Linux", "2006.0" ], + "mandriva-2006.1" => [ "Mandriva Linux", "2006.1" ], + "yoper-2.2" => [ "Yoper Linux", "2.2" ], "blackpanther-4.0" => [ "Black Panther OS", "4.0", "" ], "conectiva-9" => [ "Conectiva Linux", "9", "" ], "conectiva-10" => [ "Conectiva Linux", "10", "" ], @@ -76,11 +83,13 @@ my $PLATFORM_INFO = { "slackware-9.1.0" => [ "Slackware", "9.1.0", "" ], "slackware-10.0.0" => [ "Slackware", "10.0.0", "" ], "slackware-10.1.0" => [ "Slackware", "10.1.0", "" ], + "slackware-10.2.0" => [ "Slackware", "10.2.0", "" ], "freebsd-4" => [ "FreeBSD", "4", "" ], "freebsd-5" => [ "FreeBSD", "5", "" ], "freebsd-6" => [ "FreeBSD", "6", "" ], "gentoo" => [ "Gentoo Linux", "", "" ], - "archlinux-0.7" => [ "Arch Linux", "0.7", "" ], + "vlos-1.2" => [ "Vida Linux OS", "1.2" ], + "archlinux" => [ "Arch Linux", "", "" ], "pld-1.0" => [ "PLD", "1.0", "Ra" ], "pld-1.1" => [ "PLD", "1.1", "Ra" ], "pld-1.99" => [ "PLD", "1.99", "Ac-pre" ], @@ -89,7 +98,9 @@ my $PLATFORM_INFO = { "fedora-1" => [ "Fedora Core", "1", "Yarrow" ], "fedora-2" => [ "Fedora Core", "2", "Tettnang" ], "fedora-3" => [ "Fedora Core", "3", "Heidelberg" ], - "specifix" => [ "Specifix Linux", "", "" ] + "fedora-4" => [ "Fedora Core", "4", "Stentz" ], + "rpath" => [ "rPath Linux", "", "" ], + "ark" => [ "Ark Linux" ] }; sub check_lsb @@ -218,6 +229,55 @@ sub check_mandrake return -1; } +sub check_mandriva +{ + open MANDRIVA, "$gst_prefix/etc/mandriva-release" or return -1; + while (<MANDRIVA>) + { + $ver = $_; + chomp ($ver); + if ($ver =~ /^Linux Mandriva release (\S+)/) + { + close MANDRIVA; + return "mandriva-$1"; + } + elsif ($ver =~ /^Mandriva( L|l)inux release ([\d\.]+)/i) + { + close MANDRIVA; + return "mandriva-$2"; + } + } + close MANDRIVA; + return -1; +} + +sub check_yoper +{ + open YOPER, "$gst_prefix/etc/yoper-release" or return -1; + while (<YOPER>) + { + $ver = $_; + chomp ($ver); + if ($ver =~ m/Yoper (\S+)/) + { + close YOPER; + # find the first digit of our release + $mystring= ~m/(\d)/; + #store it in $fdigit + $fdigit= $1; + # the end of the release is marked with -2 so find the - + $end = index($ver,"-"); + $start = index($ver,$fdigit); + # extract the substring into $newver + $newver= substr($ver,$start,$end-$start); + print $newver; + return "yoper-$newver"; + } + } + close YOPER; + return -1; +} + sub check_blackpanther { open BLACKPANTHER, "$gst_prefix/etc/blackPanther-release" or return -1; @@ -261,23 +321,28 @@ sub check_fedora return -1; } -sub check_specifix +sub check_rpath { - open SPECIFIX, "$gst_prefix/etc/distro-release" or return -1; + open RPATH, "$gst_prefix/etc/distro-release" or return -1; - while (<SPECIFIX>) + while (<RPATH>) { $ver = $_; chomp ($ver); - if ($ver =~ /^Specifix Linux release (\S+)/) + if ($ver =~ /^rPath Linux/) + { + close RPATH; + return "rpath"; + } + elsif ($ver =~ /Foresight/) { - close SPECIFIX; - return "specifix"; + close RPATH; + return "rpath"; } } - close SPECIFIX; + close RPATH; return -1; } @@ -338,23 +403,28 @@ sub check_gentoo return -1; } -sub check_archlinux +sub check_vlos { - # We do this because Arch puts g-s-t into /opt/gnome. - open RELEASE, "/etc/arch-release" or return -1; + open RELEASE, "$gst_prefix/etc/vlos-release" or return -1; while (<RELEASE>) { chomp; - if (/^Arch Linux (.*) \(.*\)/) + if (/^VLOS.*\s+([0-9.]+)/) { close RELEASE; - return "archlinux-$1"; + return "vlos-$1"; } } close RELEASE; return -1; } +sub check_archlinux +{ + return "archlinux" if stat ("$gst_prefix/etc/arch-release"); + return -1; +} + sub check_linuxppc { open RELEASE, "$gst_prefix/etc/redhat-release" or return -1; @@ -403,6 +473,25 @@ sub check_vine return -1; } +sub check_ark +{ + open ARK, "$gst_prefix/etc/ark-release" or return -1; + while (<ARK>) + { + $ver = $_; + chomp ($ver); + + if ($ver =~ /^Ark Linux/) + { + close ARK; + return "ark"; + } + } + + close ARK; + return -1; +} + sub check_freebsd { my ($sysctl_cmd, @output); @@ -501,8 +590,8 @@ sub guess my %check = ( # Red Hat check must run after Vine, Mandrake and Fedora, and Mandrake after BlackPanther "Linux" => [ \&check_lsb, \&check_debian, \&check_caldera, \&check_suse, \&check_blackpanther, \&check_vine, - \&check_fedora, \&check_mandrake, \&check_conectiva, \&check_linuxppc, \&check_redhat, \&check_openna, - \&check_turbolinux, \&check_slackware, \&check_gentoo, \&check_pld, \&check_specifix, \&check_archlinux ], + \&check_fedora, \&check_mandrake, \&check_mandriva, \&check_conectiva, \&check_linuxppc, \&check_redhat, \&check_openna, + \&check_turbolinux, \&check_slackware, \&check_vlos, \&check_gentoo, \&check_pld, \&check_rpath, \&check_archlinux, \&check_ark, \&check_yoper ], "FreeBSD" => [ \&check_freebsd ], "SunOS" => [ \&check_solaris ] ); |