X-Git-Url: https://git.deb.at/?p=deb%2Fpackages.git;a=blobdiff_plain;f=bin%2Fextract_files;h=3bfc5599e4bcce91d11a45c1b5facb2a2468b81f;hp=c129153c7b26674e409cb8df21e478de5e52bff7;hb=cc6c820a1e503808b7ac1e2bff132de23f87606b;hpb=e8a26d279e317b51711d99ed6af1aafb1d0ceef2 diff --git a/bin/extract_files b/bin/extract_files index c129153..3bfc559 100755 --- a/bin/extract_files +++ b/bin/extract_files @@ -1,7 +1,7 @@ #!/usr/bin/perl # # Script to extract files from Debian packages -# Copyright 2004 Frank Lichtenheld +# Copyright 2004-2007 Frank Lichtenheld # # based on a shell script which was # Copyright 2003 Noel Köthe @@ -19,7 +19,7 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. use strict; use warnings; @@ -134,26 +134,20 @@ sub add_log { # PACKAGE HANDLING (UNPACKING/CLEANUP) sub unpack_srcpkg { - my ( $dscname, $log ) = @_; + my ( $pkgname, $dscname, $log ) = @_; chdir( $TEMPDIR ) or do_error( "couldn't change working directory to $TEMPDIR" ); - add_log( $log, "dpkg-source -sn -x $dscname" ); + add_log( $log, "dpkg-source -sn -x $dscname $pkgname+source" ); - my $out = qx/dpkg-source -sn -x "$dscname" 2>&1/; - my ($dir) = ($out =~ /(\S+)$/mo); - - add_log( $log, "dpkg-source output: ", $out ); - -#Bug#246802 -# system("dpkg-source", "-x", $dscname ) == 0 -# or do { -# do_warning( "couldn't unpack $dscname" ); -# add_log( $log, "couldn't unpack $dscname" ); -# return; -# }; + system("dpkg-source", "-sn", "-x", $dscname, "$pkgname+source" ) == 0 + or do { + do_warning( "couldn't unpack $dscname: $!" ); + add_log( $log, "couldn't unpack $dscname: $!" ); + return; + }; - return $dir; + return "$pkgname+source"; } sub unpack_binpkg { @@ -409,7 +403,7 @@ sub extract_files { return; } - if (my $source_dir = unpack_srcpkg( $pkg_data->{dsc}, \$log )) { + if (my $source_dir = unpack_srcpkg( $pkg_data->{src_name}, $pkg_data->{dsc}, \$log )) { $source_dir = "$TEMPDIR/$source_dir";