diff options
-rw-r--r-- | MANIFEST | 1 | ||||
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | pod/urpmi-dudf.8.pod | 63 | ||||
-rw-r--r-- | t/01compile.t | 2 | ||||
-rw-r--r-- | urpm/README.dudf | 28 | ||||
-rw-r--r-- | urpm/args.pm | 6 | ||||
-rw-r--r-- | urpm/dudf.pm | 498 | ||||
-rwxr-xr-x | urpmi | 30 |
8 files changed, 2 insertions, 627 deletions
@@ -445,7 +445,6 @@ urpm/bug_report.pm urpm/cdrom.pm urpm/cfg.pm urpm/download.pm -urpm/dudf.pm urpm/get_pkgs.pm urpm/install.pm urpm/ldap.pm @@ -1,6 +1,7 @@ - urpmi: o return the proper error code in some cases when failing to install some packages + o kill unused DUDF support (mga#4493) o --test: do not display "More information on package" o --test: do not update /var/lib/rpm/installed-through-deps.list diff --git a/pod/urpmi-dudf.8.pod b/pod/urpmi-dudf.8.pod deleted file mode 100644 index bc67245e..00000000 --- a/pod/urpmi-dudf.8.pod +++ /dev/null @@ -1,63 +0,0 @@ -=head1 NAME - -urpmi-dudf - the dudf plugin for urpmi - -=head1 SYNOPSIS - - urpmi [options] [package_names | rpm_files...] - urpmi [options] --auto-select - urpmi [options] --force-dudf [package_names | rpm_files...] - urpmi [options] --force-dudf --auto-select - -=head1 DESCRIPTION - -This man page describes only the added functionalities to urpmi installed by -the package urpmi-dudf. -For general urpmi usage and options, see the man page of L<urpmi|urpmi>. - -If an installation or upgrade goes wrong, and urpmi-dudf is installed -urpmi will ask the user to generate and upload an error report. - -This is a part of the Europeen Mancoosi project, -a project to enhance Linux Package Management. - -See L<http://www.mancoosi.org/> for more details. - -=head1 OPTIONS - -=over - -=item B<--force-dudf> - -Will generate and upload a dudf report even if the installation or upgrade went well. - -=back - -=head1 FILES - -=over - -=item B</var/cache/urpmi/dudf/dudf_uploads.log> - -This file contains the log of dudf uploads. - -The format of each line of this log is : - -=over - -<date time of generation> <uid> - -=back - -The user can access to uploaded report by entering the <uid> into the appropriate field -of http://www.mancoosi.org/ - -=back - -=head1 EXIT CODES - -See the man page of urpmi. - -=cut - -$Id: urpmi-dudf.8.pod 263623 2009-11-20 10:24:50Z orosello $ diff --git a/t/01compile.t b/t/01compile.t index e1b859c7..2b81d0c3 100644 --- a/t/01compile.t +++ b/t/01compile.t @@ -4,7 +4,7 @@ use strict; use warnings; use Test::More tests => 26; -for my $module (grep { !/dudf/ } glob("urpm/*.pm")) { +for my $module (glob("urpm/*.pm")) { $module =~ s,/,::,g; $module =~ s,\.pm$,,; use_ok $module; diff --git a/urpm/README.dudf b/urpm/README.dudf deleted file mode 100644 index 3136f420..00000000 --- a/urpm/README.dudf +++ /dev/null @@ -1,28 +0,0 @@ -urpmi-dudf is an extension module to urpmi to allow urpmi to generate -and upload dudf error files. - -This is a part of the Europeen Mancoosi project, -a project to enhance Linux Package Management. - -See http://www.mancoosi.org/ for more details. - -Once the package urpmi-dudf installed, when a problem occurs during -an installation using urpmi, urpmi will ask the user the authorization -to generate and upload a dudf report to mancoosi's servers. - -If the user wants to generate and upload a dudf report event is the installation -has no problem, it can use the urpmi option --force-dudf - -Example : -# urpmi --force-dudf powertop - - -A log of dudf uploads is stored in /var/cache/urpmi/dudf/dudf_uploads.log - -The format of each line of this log is : - <date time of generation> <uid> - - The user can access to uploaded report by entering the <uid> into the appropriate field - of http://www.mancoosi.org/ - -A man page in section 8 exists : urpmi-dudf diff --git a/urpm/args.pm b/urpm/args.pm index b4084ae6..aa7b0d79 100644 --- a/urpm/args.pm +++ b/urpm/args.pm @@ -363,12 +363,6 @@ my %options_spec = ( ); -eval { - #require urpm::dudf; - $options_spec{urpmi}{'force-dudf'} = \$::force_dudf; -}; - - # generate urpmf options callbacks sub add_urpmf_cmdline_tags { foreach my $k (@_) { diff --git a/urpm/dudf.pm b/urpm/dudf.pm deleted file mode 100644 index 8bb407a0..00000000 --- a/urpm/dudf.pm +++ /dev/null @@ -1,498 +0,0 @@ -package urpm::dudf; - -# $Id: dudf.pm 639 2009-04-17 14:32:03Z orosello $ - -our @ISA = qw(); -use strict; -use Exporter; -use URPM; -use urpm; -use urpm::msg; -use urpm::util; -use Cwd; -use IO::File; -use locale; -use POSIX qw(locale_h strtod); -use POSIX qw(strftime); -use File::Path; -use Compress::Zlib; -use XML::Writer; -use Data::UUID; - -#- Timeout for curl connection and wget operations -our $CONNECT_TIMEOUT = 60; #- (in seconds) - -use fields qw( - access_url - distribution_codename - distribution_description - distribution_name - distribution_release - dudf_dir - dudf_file - dudf_filename - dudf_time - dudf_uid - dudf_urpm - exit_code - exit_msg - force_dudf - installer_name - installer_version - log_file - metainstaller_name - metainstaller_version - package_universe_synthesis - packages_removed - packages_upgraded - pkgs_toinstall - pkgs_user - pkgs_user_install - pkgs_user_upgrade - version - xmlns - xmlnsdudf - ); - -my @package_status; - -BEGIN {} - -(our $VERSION) = q($Revision: 246 $) =~ /(\d+)/; - -sub dudf_exit { - my ($self, $exit_code, $o_exit_msg) = @_; - $self->set_exit_code($exit_code); - if ($o_exit_msg) { - $self->set_exit_msg($o_exit_msg); - } - $self->write_dudf; - exit($exit_code); -} - -sub get_distribution { - my ($self) = @_; - - my $handle = new IO::File; - if ($handle->open("</etc/lsb-release")) { - while (<$handle>) { - if (m/DISTRIB_ID=/i) { s/.*=//; s/\n//; $self->{distribution_name} = $_ } - if (m/DISTRIB_RELEASE=/i) { s/.*=//; s/\n//; $self->{distribution_release} = $_ } - if (m/DISTRIB_CODENAME=/i) { s/.*=//; s/\n//; $self->{distribution_codename} = $_ } - if (m/DISTRIB_DESCRIPTION=/i) { s/.*=//; s///g; s/\n//; $self->{distribution_description} = $_ } - } - $handle->close; - } -} - -sub check_package { - my ($urpm, $pkg) = @_; - my $db = urpm::db_open_or_die_($urpm); - my @l; - $db->traverse_tag("name", [ $pkg ], sub { - my ($p) = @_; - $p->pack_header; - push(@l, $p); - }); - \@l; -} - -# Find packages selected to be removed due to obsoletes and store them into @{$self->{packages_removed}} -# or due to upgrade or conflict and store them into @{$self->{packages_upgraded}} -sub check_removed_upgraded { - my ($self, $state) = @_; - my $urpm = ${$self->{dudf_urpm}}; - my $t = $state->{rejected}; - - foreach my $pkg (keys %$t) { - my $v = $t->{$pkg}; - if ($v->{obsoleted} == 1) { - $pkg =~ s/-.*//; - my $p = check_package($urpm,$pkg); - push(@{$self->{packages_removed}}, $p); - } - if ($v->{removed} == 1) { - $pkg =~ s/-.*//; - my $p = check_package($urpm,$pkg); - push(@{$self->{packages_upgraded}}, $p); - } - } -} - -sub get_package_status_ { - my ($ps) = @_; - $ps->pack_header; - push(@package_status, $ps); -} - -# Store list of installed packages -sub get_package_status { - my ($self) = @_; - my $db = urpm::db_open_or_die_(${$self->{dudf_urpm}}); - $db->traverse(\&get_package_status_); -} - -# Store list of synthesis files to parse -sub get_package_universe { - my ($self) = @_; - my $urpm = ${$self->{dudf_urpm}}; - - @{$self->{package_universe_synthesis}} = grep { !$_->{ignore} } @{$urpm->{media}}; -} - -# Parse a synthesis file -sub get_synthesis { - my ($self, $file, $doc) = @_; - my $buffer; - - my $gz = gzopen($file, "rb"); -# or die "Cannot open $file: $gzerrno\n" ; - - $doc->characters($buffer) - while $gz->gzread($buffer) > 0; -# die "Error reading from $file: $gzerrno\n" -# if my $gzerrno != Z_STREAM_END ; - - $gz->gzclose; -} - -sub new { - my ($class, $urpm, $action, $force_dudf) = @_; - my $self = { - dudf_urpm => $urpm, - action => $action, - force_dudf => $force_dudf, - dudf_file => undef, - exit_code => 0, - metainstaller_name => $0, - metainstaller_version => $urpm::VERSION, - xmlns => "http://www.mancoosi.org/2008/cudf/dudf", - xmlnsdudf => "http://www.mancoosi.org/2008/cudf/dudf", - version => "1.0", - dudf_time => undef - }; - - my $base_url = "http://dudf.mageia.org/"; - $self->{access_url} = $base_url . "/file/"; - $self->{upload_url} = $base_url . "/upload"; - $self->{metainstaller_name} =~ s/.*\///; - ${$self->{dudf_urpm}}->{fatal} = sub { printf STDERR "%s\n", $_[1]; $self->set_exit_msg($_[1]); $self->set_exit_code($_[0]); $self->write_dudf; exit($_[0]) }; - ${$self->{dudf_urpm}}->{error} = sub { printf STDERR "%s\n", $self->set_exit_msg($_[0]); $_[0] }; - #${$self->{dudf_urpm}}->{log} = sub { printf STDERR "%s\n", $_[0] }; - - $urpm = ${$self->{dudf_urpm}}; - $self->{dudf_dir} = $urpm->{cachedir} . "/dudf"; - $self->{log_file} = $self->{dudf_dir} . "/dudf_uploads.log"; - if (!-d $self->{dudf_dir}) { - mkpath($self->{dudf_dir}); - } - - # If there is no log file, we create the default content here - if (! -f $self->{log_file}) - { - output_safe($self->{log_file}, - N("# Here are logs of your DUDF uploads.\n# Line format is : <date time of generation> <uid>\n# You can use uids to see the content of your uploads at this url :\n# %s", $base_url)); - } - my $ug = new Data::UUID; - $self->{dudf_uid} = $ug->to_string($ug->create_str); - $self->{dudf_filename} = "dudf_" . $self->{dudf_uid} . ".dudf.xml"; - $self->{dudf_file} = $self->{dudf_dir} . "/" . $self->{dudf_filename}; - - bless($self,$class); - return $self; -} - -sub set_error_msg { - my ($self, $m) = @_; - $self->{exit_msg} .= $m; -} - -sub set_exit_msg { - my ($self, $m) = @_; - $self->{exit_msg} .= $m; -} - -# store the exit code -sub set_exit_code { - my ($self, $exit_code) = @_; - - $self->{exit_code} = $exit_code; -} - -# Store the list of packages the user wants to install (given to urpmi) -sub store_userpkgs { - my ($self, @pkgs) = @_; - - @{$self->{pkgs_user}} = @pkgs; -} - -# Store a list of packages selected by urpmi to install -sub store_toinstall { - my ($self, @pkgs) = @_; - - @{$self->{pkgs_toinstall}} = @pkgs; -} - -#upload dudf data to server -sub upload_dudf { - -x "/usr/bin/curl" or do { print N("curl is missing, cannot upload DUDF file.\n"); return }; - my ($self, $options) = @_; - - print N("Compressing DUDF data... "); - # gzip the file to upload - open(FILE, $self->{dudf_file}) or do { print N("NOT OK\n"); return }; - my $gz = gzopen($self->{dudf_file} . ".gz", "wb") or do { print N("NOT OK\n"); return }; - $gz->gzsetparams(Z_BEST_COMPRESSION, Z_DEFAULT_STRATEGY); - - while (<FILE>) { - $gz->gzwrite($_); - } - $gz->gzclose; - close(FILE); - print N("OK\n"); - - print N("Uploading DUDF data:\n"); - my (@ftp_files, @other_files); - push @other_files, $self->{dudf_filename}; - my @l = (@ftp_files, @other_files); - my $cmd = join(" ", map { "'$_'" } "/usr/bin/curl", - "-q", # don't read .curlrc; some toggle options might interfer - ($options->{proxy} ? urpm::download::set_proxy({ type => "curl", proxy => $options->{proxy} }) : ()), - ($options->{retry} ? ('--retry', $options->{retry}) : ()), - "--stderr", "-", # redirect everything to stdout - "--connect-timeout", $CONNECT_TIMEOUT, -# "-s", - "-f", - "--anyauth", - (defined $options->{'curl-options'} ? split /\s+/, $options->{'curl-options'} : ()), - "-F file=@" . $self->{dudf_file} . ".gz", - "-F id=" . $self->{dudf_uid}, - $self->{upload_url}, - ); - urpm::download::_curl_action($cmd, $options, @l, 1); - unlink $self->{dudf_file} . ".gz"; - unlink $self->{dudf_file}; - print N("\nYou can see your DUDF report at the following URL :\n\t"); - print $self->{access_url} . "?uid=" . $self->{dudf_uid} . "\n"; - append_to_file($self->{log_file}, $self->{dudf_time} . "\t" . $self->{dudf_uid} . "\n"); - print N("You can access a log of your uploads in\n\t") . $self->{log_file} . "\n"; -} - -sub xml_pkgs { - my ($doc, $pk) = @_; - - if ($pk->epoch) { - $doc->startTag("package", "name" => $pk->name, "version" => $pk->version, "arch" => $pk->arch, "release" => $pk->release, "epoch" => $pk->epoch); - } - else { - $doc->startTag("package", "name" => $pk->name, "version" => $pk->version, "arch" => $pk->arch, "release" => $pk->release); - } - if ($pk->provides) { - $doc->startTag("provides"); - foreach my $i ($pk->provides) { - $doc->characters("@" . $i); - } - $doc->endTag; - } - if ($pk->requires) { - $doc->startTag("requires"); - foreach my $i ($pk->requires) { - $doc->characters("@" . $i); - } - $doc->endTag; - } - if ($pk->conflicts) { - $doc->startTag("conflicts"); - foreach my $i ($pk->conflicts) { - $doc->characters("@" . $i); - } - $doc->endTag; - } - if ($pk->obsoletes) { - $doc->startTag("obsoletes"); - foreach my $i ($pk->obsoletes) { - $doc->characters("@" . $i); - } - $doc->endTag; - } - $doc->endTag; -} - -sub compute_pkgs_user { - my ($self) = @_; - my $in; - - foreach my $p (@{$self->{pkgs_user}}) { - $in = 0; - foreach my $pk (@package_status) { - # packages installed by urpmi are removed from the list - if (@{$self->{pkgs_toinstall}}) { - foreach my $pkg (@{$self->{pkgs_toinstall}}) { - if ($p eq $pk->name) { - if (($pkg->name ne $pk->name || - $pkg->version ne $pk->version || - $pkg->arch ne $pk->arch || - $pkg->release ne $pk->release || - $pkg->epoch ne $pk->epoch)) { - $in = 1; - if (!grep($p, @{$self->{pkgs_user_upgrade}})) { - push(@{$self->{pkgs_user_upgrade}}, $p); - } - } - } - } - } - } - if (($in == 0) && (!grep($p, @{$self->{pkgs_user_install}}))) { - push(@{$self->{pkgs_user_install}}, $p); - } - } -} - -# Generate DUDF data -sub write_dudf { - my ($self) = @_; - - if ( (!${$self->{dudf_urpm}}->{options}{auto}) && - ( ($self->{exit_code} > 9) || - (!$self->{exit_code} && $self->{force_dudf}) ) ) { - my $noexpr = N("Nn"); - my $msg = N("A problem has been encountered. You can help Mandriva to improve package\ninstallation by uploading a DUDF report file.\nThis is a part of the Mancoosi european research project.\nMore at http://www.mancoosi.org\n"); - $msg .= N("Do you want to upload a DUDF report to Mandriva?"); - if ($self->{force_dudf} || message_input_($msg . N(" (Y/n) "), boolean => 1) !~ /[$noexpr]/) { - print N("\nGenerating DUDF... "); - - urpm::db_open_or_die(urpm->new)->traverse_tag("name", [ "rpm" ], sub { my ($p) = @_; $self->{installer_name} = $p->name; $self->{installer_version} = $p->version }); - $self->get_package_status; - $self->get_package_universe; - $self->compute_pkgs_user; - - my $output = new IO::File; - if ($output->open(">" . $self->{dudf_file})) { - my $doc = new XML::Writer(OUTPUT => $output, DATA_MODE => 1, DATA_INDENT => 1, NEW_LINES => 1, ENCODING => 'utf-8'); - $doc->xmlDecl("UTF-8"); - - $self->get_distribution; - - my $old_locale = setlocale(LC_CTYPE); - setlocale(LC_TIME, "C"); - my $now = time(); - - $doc->startTag("dudf", version => $self->{version}, xmlns => $self->{xmlns}, "xmlns:dudf" => $self->{xmlnsdudf}); - $doc->dataElement(timestamp => strftime("%a, %d %b %Y %H:%M:%S %z", localtime($now))); - $self->{dudf_time} = strftime("%Y%m%d %H:%M:%S %z", localtime($now)); - - setlocale(LC_CTYPE, $old_locale); - - # From here, the indent is special : a new ident is made for each XML tag opening - # It's easier to debug XML with this - $doc->dataElement(uid => $self->{dudf_uid}); - - $doc->startTag("distribution"); - $doc->characters($self->{distribution_name}); - # Following lines removed because these elements are not specified into dudf for now (leave comment in code for future usage) - # $doc->dataElement(name => "$self->{distribution_name}"); - # $doc->dataElement(release => "$self->{distribution_release}"); - # $doc->dataElement(codename => "$self->{distribution_codename}"); - # $doc->dataElement(description => "$self->{distribution_description}"); - $doc->endTag; - $doc->startTag("installer"); - $doc->dataElement(name => $self->{installer_name}); - $doc->dataElement(version => $self->{installer_version}); - $doc->endTag; - $doc->startTag("meta-installer"); - $doc->dataElement(name => $self->{metainstaller_name}); - $doc->dataElement(version => $self->{metainstaller_version}); - $doc->endTag; - $doc->startTag("problem"); - $doc->startTag("package-status"); - $doc->startTag("installer"); - # packages removed by urpmi are added back - foreach my $pkg (@{$self->{packages_removed}}) { - foreach my $pk (@$pkg) { - xml_pkgs($doc,$pk); - } - } - # packages upgraded by urpmi are restored in the list (version before upgrade) - foreach my $pkg (@{$self->{packages_upgraded}}) { - foreach my $pk (@$pkg) { - xml_pkgs($doc,$pk); - } - } - # packages already installed before the launch of urpmi - foreach my $pk (@package_status) { - # packages installed by urpmi are removed from the list - if (@{$self->{pkgs_toinstall}}) { - foreach my $pkg (@{$self->{pkgs_toinstall}}) { - if (($pkg->name ne $pk->name || - $pkg->version ne $pk->version || - $pkg->arch ne $pk->arch || - $pkg->release ne $pk->release || - $pkg->epoch ne $pk->epoch)) { - xml_pkgs($doc,$pk); - } - } - } - else { - xml_pkgs($doc,$pk); - } - } - $doc->endTag; - $doc->dataElement("meta-installer" => "meta installer package status"); - $doc->endTag; - $doc->startTag("package-universe"); - foreach my $media (@{$self->{package_universe_synthesis}}) { - my $file = $media->{name}; - my $url = $media->{url}; - my $filename = urpm::media::any_synthesis(${$self->{dudf_urpm}},$media); - $doc->startTag("package-list", "dudf:format" => "synthesis", "dudf:filetype" => $file, "dudf:filename" => $filename, "dudf:url" => $url); - $self->get_synthesis($filename, $doc); - $doc->endTag; - } - $doc->endTag; - $doc->startTag("action"); - $doc->startTag("upgrade"); - foreach my $pkg (@{$self->{pkgs_user_upgrade}}) { - $doc->startTag("package", "name" => $pkg); - $doc->endTag; - } - $doc->endTag; - $doc->startTag("install"); - foreach my $pkg (@{$self->{pkgs_user_install}}) { - $doc->startTag("package", "name" => $pkg); - $doc->endTag; - } - $doc->endTag; - $doc->startTag("command"); - $doc->characters($self->{action}); - $doc->endTag; - $doc->endTag; - $doc->startTag("desiderata"); - $doc->endTag; - $doc->endTag; - $doc->startTag("outcome"); - $doc->startTag("dudf:result"); - $doc->characters(($self->{exit_code} == 0 ? "success" : "failure")); - $doc->endTag; - if ($self->{exit_code}) { - $doc->startTag("error"); - $doc->characters($self->{exit_msg}); - $doc->endTag; - } - $doc->endTag; - $doc->endTag; - $doc->end; - $output->close; - print N("OK\n"); - $self->upload_dudf; - } - else { - print N("Cannot write DUDF file.\n"); - } - } - } -} - -1; - -__END__ @@ -51,7 +51,6 @@ our $use_provides = 1; our $logfile = ''; our $restricted = 0; our $forcekey = 0; -our $force_dudf = 0; my @files; my @src_files; @@ -63,14 +62,6 @@ delete @ENV{qw(ENV BASH_ENV IFS CDPATH)}; $ENV{HOME} ||= "/root"; $ENV{USER} ||= "root"; -sub dudf_invoke { - my ($dudf, $methodname, @args) = @_; - - if ($dudf) { - $dudf->$methodname(@args); - } -} - sub usage () { print N("urpmi version %s Copyright (C) 1999-2010 Mandriva. @@ -187,12 +178,6 @@ if (member('--restricted', @ARGV)) { } my $urpm = urpm->new_parse_cmdline or exit(1); -my $dudf; - -eval { - #require urpm::dudf; - #$dudf = new urpm::dudf(\$urpm, $command_line, $force_dudf); -}; if (@ARGV && $auto_select) { print STDERR N("Error: can't use --auto-select along with package list.\n"); @@ -396,8 +381,6 @@ if ($bug) { my $rpm_lock = !$env && !$options{nolock} && urpm::lock::rpm_db($urpm, 'exclusive', wait => $options{wait_lock}); -dudf_invoke($dudf, "store_userpkgs", @names); - #- search the packages according to the selection given by the user. my $search_result = ''; if (@names) { @@ -510,7 +493,6 @@ that are older than the installed ones:\n%s", $list); print "$msg\n"; } else { my $noexpr = N("Nn"); - dudf_invoke($dudf, "dudf_exit", 17, $msg); $msg .= N("\nContinue installation anyway?"); $force || message_input_($msg . N(" (Y/n) "), boolean => 1) !~ /[$noexpr]/ or exit 17; } @@ -526,7 +508,6 @@ if (@ask_unselect) { print "$msg\n"; } else { my $noexpr = N("Nn"); - dudf_invoke($dudf, "dudf_exit", 17, $msg); $msg .= N("\nContinue installation anyway?"); $force || message_input_($msg . N(" (Y/n) "), boolean => 1) !~ /[$noexpr]/ or exit 17; } @@ -552,7 +533,6 @@ has to be removed for others to be upgraded:\n%s\n", $list) : N("The installation cannot continue because the following packages have to be removed for others to be upgraded:\n%s\n", $list); print "$msg\n"; - dudf_invoke($dudf, "dudf_exit", 0, $msg); exit 17; } @@ -609,8 +589,6 @@ foreach my $pkg (@to_install) { } $urpm->{nb_install} = @to_install; -dudf_invoke($dudf, "store_toinstall", @to_install); - if (!$urpm->{options}{auto} && $ask_user && $urpm->{nb_install} || $env && !$options{debug__do_not_install}) { my $msg = $urpm->{nb_install} == 1 ? N("To satisfy dependencies, the following package is going to be installed:") : N("To satisfy dependencies, the following packages are going to be installed:"); @@ -636,8 +614,6 @@ if (!$urpm->{options}{auto} && $ask_user && $urpm->{nb_install} || $env && !$opt $force || message_input_($p . N(" (Y/n) "), boolean => 1) !~ /[$noexpr]/ or exit 17; } -dudf_invoke($dudf, "check_removed_upgraded", $state); - my $exit_code = urpm::main_loop::run($urpm, $state, int(@names || @src_names || @files || @src_files), \@ask_unselect, \%requested, { @@ -673,10 +649,6 @@ my $exit_code = urpm::main_loop::run($urpm, $state, $force || urpm::msg::ask_yes_or_no("$msg$msg2"); } }, - trans_error_summary => sub { - my ($_nok, $errors) = @_; - dudf_invoke($dudf, "set_error_msg", join("\n", map { "\t$_" } @$errors)); - }, ask_yes_or_no => sub { my ($_title, $msg) = @_; # graphical title $force || urpm::msg::ask_yes_or_no($msg); @@ -735,6 +707,4 @@ if ($pid_err || $pid_out) { close STDOUT; } -dudf_invoke($dudf, "dudf_exit", $exit_code); - exit($exit_code); |