]> git.deb.at Git - deb/packages.git/blobdiff - bin/extract_files
Merge branch 'master' of ssh://git.debian.org/git/webwml/packages
[deb/packages.git] / bin / extract_files
index c129153c7b26674e409cb8df21e478de5e52bff7..3bfc5599e4bcce91d11a45c1b5facb2a2468b81f 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 #
 # Script to extract files from Debian packages
-# Copyright 2004 Frank Lichtenheld
+# Copyright 2004-2007 Frank Lichtenheld <frank@lichtenheld.de>
 #
 # 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";