summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2005-09-05 09:25:01 +0000
committerPascal Rigaux <pixel@mandriva.com>2005-09-05 09:25:01 +0000
commit39090f72ad4c4eb25f99e457ebbb78a765d8acc1 (patch)
treec262b59a3c53e75566700520c30379356ecbe318
parent52e73a5e6467ad49775c7b8915826f6d5828d146 (diff)
downloaddrakx-39090f72ad4c4eb25f99e457ebbb78a765d8acc1.tar
drakx-39090f72ad4c4eb25f99e457ebbb78a765d8acc1.tar.gz
drakx-39090f72ad4c4eb25f99e457ebbb78a765d8acc1.tar.bz2
drakx-39090f72ad4c4eb25f99e457ebbb78a765d8acc1.tar.xz
drakx-39090f72ad4c4eb25f99e457ebbb78a765d8acc1.zip
handle required package(s) not installed correctly (bugzilla #18180)
-rw-r--r--perl-install/authentication.pm15
-rwxr-xr-xperl-install/standalone/drakauth2
-rwxr-xr-xperl-install/standalone/finish-install2
3 files changed, 10 insertions, 9 deletions
diff --git a/perl-install/authentication.pm b/perl-install/authentication.pm
index 7162e1c0e..53fd50e81 100644
--- a/perl-install/authentication.pm
+++ b/perl-install/authentication.pm
@@ -91,7 +91,7 @@ sub ask_parameters {
$authentication->{AD_domain} ||= $net->{resolv}{DOMAINNAME};
$authentication->{AD_users_db} ||= 'cn=users,' . domain_to_ldap_domain($authentication->{AD_domain});
- $in->do_pkgs->install(qw(perl-Net-DNS));
+ $in->do_pkgs->ensure_are_installed([ 'perl-Net-DNS' ], 1) or return;
my @srvs = query_srv_names($authentication->{AD_domain});
$authentication->{AD_server} ||= $srvs[0] if @srvs;
@@ -225,9 +225,9 @@ sub set {
if ($kind eq 'local') {
} elsif ($kind eq 'SmartCard') {
- $in->do_pkgs->install('castella-pam');
+ $in->do_pkgs->ensure_are_installed([ 'castella-pam'], 1) or return;
} elsif ($kind eq 'LDAP') {
- $in->do_pkgs->install(qw(openldap-clients nss_ldap pam_ldap autofs));
+ $in->do_pkgs->ensure_are_installed([ qw(openldap-clients nss_ldap pam_ldap autofs) ]) or return;
my $domain = $authentication->{LDAPDOMAIN} || do {
my $s = run_program::rooted_get_stdout($::prefix, 'ldapsearch', '-x', '-h', $authentication->{LDAP_server}, '-b', '', '-s', 'base', '+');
@@ -242,7 +242,7 @@ sub set {
nss_base_group => $domain . "?sub",
);
} elsif ($kind eq 'AD') {
- $in->do_pkgs->install(qw(nss_ldap pam_krb5 libsasl2-plug-gssapi));
+ $in->do_pkgs->ensure_are_installed([ qw(nss_ldap pam_krb5 libsasl2-plug-gssapi) ]) or return;
my $port = "389";
my $ssl = {
@@ -302,7 +302,7 @@ sub set {
configure_krb5_for_AD($authentication);
} elsif ($kind eq 'NIS') {
- $in->do_pkgs->install(qw(ypbind autofs));
+ $in->do_pkgs->ensure_are_installed([ qw(ypbind autofs) ], 1) or return;
my $domain = $net->{network}{NISDOMAIN};
$domain || $authentication->{NIS_server} ne "broadcast" or die N("Can not use broadcast with no NIS domain");
my $t = $domain ? "domain $domain" . ($authentication->{NIS_server} ne "broadcast" && " server") : "ypserver";
@@ -325,7 +325,7 @@ sub set {
my $domain = uc $authentication->{WINDOMAIN};
- $in->do_pkgs->install('samba-winbind');
+ $in->do_pkgs->ensure_are_installed([ 'samba-winbind' ], 1) or return;
require network::smb;
network::smb::write_smb_conf($domain);
@@ -345,7 +345,7 @@ sub set {
my $realm = $authentication->{AD_domain};
configure_krb5_for_AD($authentication);
- $in->do_pkgs->install('samba-winbind', 'pam_krb5', 'samba-server', 'samba-client');
+ $in->do_pkgs->ensure_are_installed([ 'samba-winbind', 'pam_krb5', 'samba-server', 'samba-client' ]) or return;
require network::smb;
network::smb::write_smb_ads_conf($domain,$realm);
@@ -359,6 +359,7 @@ sub set {
run_program::rooted($::prefix, 'net', 'ads', 'join', '-U', $authentication->{winuser} . '%' . $authentication->{winpass});
});
}
+ 1;
}
diff --git a/perl-install/standalone/drakauth b/perl-install/standalone/drakauth
index 0a7a4a917..779976f52 100755
--- a/perl-install/standalone/drakauth
+++ b/perl-install/standalone/drakauth
@@ -29,7 +29,7 @@ $in->ask_from(N("Authentication"), authentication::kind2description(@kinds),
authentication::ask_parameters($in, $net, $authentication, $kind) or goto main;
eval {
- authentication::set($in, $net, $authentication);
+ authentication::set($in, $net, $authentication) or goto main;
network::network::write_network_conf($net); #- for NISDOMAIN
};
if (my $err = $@) {
diff --git a/perl-install/standalone/finish-install b/perl-install/standalone/finish-install
index 215756a7e..e938416b7 100755
--- a/perl-install/standalone/finish-install
+++ b/perl-install/standalone/finish-install
@@ -42,7 +42,7 @@ sub ask_authentication() {
authentication::set_root_passwd($superuser, $authentication);
eval {
- authentication::set($in, $net, $authentication);
+ authentication::set($in, $net, $authentication) or goto &ask_authentication;
network::network::write_network_conf($net);
};
if (my $err = $@) {