X-Git-Url: https://git.deb.at/?p=deb%2Fpackages.git;a=blobdiff_plain;f=bin%2Fextract_files;h=a94fba06bd87d5a3161fdde213935392cb6d086f;hp=b5753b252e113fff955cbab1d53762af5c6077e7;hb=aad6264acf766c330147186c7b3a48f4683721db;hpb=fbabf0288a7d185712310b6748e93ed8beb9e71f diff --git a/bin/extract_files b/bin/extract_files index b5753b2..a94fba0 100755 --- a/bin/extract_files +++ b/bin/extract_files @@ -234,8 +234,8 @@ sub to_update { if ($config_data->{structure} == PKGPOOL) { my $dir = "$target/".pkg_pool_directory( $pkg_data ); - if (!$force && -d $dir && -f "$dir/log") { - touch("$dir/log") + if (!$force && -f "$dir/log") { + (utime(undef,undef,"$dir/log") == 1) or do_warning( "touch of $dir/log failed" ); return 0; } else { @@ -291,7 +291,7 @@ sub extract_copyright_to_pkgpool { my $pkg2 = $1; if ($pkg_data->{bin_list}{$pkg2}) { add_log( $log, "symlink points to $pkg2, make symlink to copyright file" ); - (system("ln", "-s", "$pkg2.copyright", $tgt ) == 0) + (symlink( "$pkg2.copyright", $tgt ) == 1 ) or add_log( $log, "symlink creation failed" ); } else { add_log( $log, "symlink points to $pkg2, don't know what to do with that" ); @@ -305,7 +305,7 @@ sub extract_copyright_to_pkgpool { add_log( $log, "copyright file $tgt still doesn't exist" ); if (-e $src_tgt) { add_log( $log, "copyright file of the source package exists, make symlink" ); - (system("ln", "-s", "copyright", $tgt ) == 0) + (symlink( "copyright", $tgt ) == 1 ) or add_log( $log, "symlink generation failed" ); } else { add_log( $log, "give up on $bin_pkg" ); @@ -324,7 +324,7 @@ sub extract_copyright_to_pkgpool { keys %{$pkg_data->{bin_list}})) { if (-e "$target_dir/$bin_pkg.copyright") { add_log( $log, "copyright file $target_dir/$bin_pkg.copyright seems like a good guess to me, make a symlink" ); - (system("ln", "-s", "$bin_pkg.copyright", $src_tgt ) == 0) + (symlink( "$bin_pkg.copyright", $src_tgt ) == 1 ) or do { add_log( $log, "symlink generation failed" ); next; @@ -378,7 +378,7 @@ sub manage_current_link { unless (-l $current_link) { add_log( $log, "create new current link" ); (chdir( $parent_dir ) and - not system( 'ln', '-s', $dirname, 'current' )) or + (symlink( $dirname, 'current' ) == 1 )) or add_log( $log, "creating new current link failed: $!" ); } else { my $old_target = readlink( $current_link ); @@ -389,7 +389,7 @@ sub manage_current_link { "old_version=$old_version; overwriting current link" ); (chdir( $parent_dir ) and unlink( 'current' ) and - not system( 'ln', '-s', $dirname, 'current' )) or + (symlink( $dirname, 'current' ) == 1 )) or add_log( $log, "overwriting current link failed: $!" ); } else { add_log( $log, @@ -564,6 +564,10 @@ sub read_deb { } } $cache{$debname} ||= qx/dpkg-deb --info "$debname" control/; + unless ( $cache{$debname} ) { + do_warning( "extracting control information of file $debname failed" ); + return; + } my $control = $cache{$debname}; unless ( $raw_data = $parser->parse_mem( $control, @@ -607,7 +611,7 @@ sub collect_deb { return unless $pkg_data; if (exists $bin_packages{$pkg_data->{bin_name}}{$pkg_data->{bin_version}}{$pkg_data->{bin_arch}}) { - do_warning( "duplicated package $pkg_data->{bin_name}, version {$pkg_data->{bin_version}{$pkg_data->{bin_arch}}" ); + do_warning( "duplicated package $pkg_data->{bin_name}, version $pkg_data->{bin_version}, arch $pkg_data->{bin_arch}" ); return; } else { $bin_packages{$pkg_data->{bin_name}}{$pkg_data->{bin_version}}{$pkg_data->{bin_arch}} = $pkg_data;