This is an automated email from the git hooks/post-receive script.

guillem pushed a commit to branch main
in repository dpkg.

View the commit online:
https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=446417bebb32f85789ac2b9b657728bf8cf55eeb

commit 446417bebb32f85789ac2b9b657728bf8cf55eeb
Author: Guillem Jover <[email protected]>
AuthorDate: Wed Jul 6 02:34:55 2022 +0200

    Dpkg::Source::Package: Use File::Spec instead of ad-hoc concatenation
    
    This takes care of adding the required pathname separators when needed.
    
    Finishes the change in commit 60d8baf664bd75aa235a727fd63c189d450bb4ce.
---
 scripts/Dpkg/Source/Package.pm           |  3 ++-
 scripts/Dpkg/Source/Package/V1.pm        |  8 ++++----
 scripts/Dpkg/Source/Package/V2.pm        | 14 +++++++++-----
 scripts/Dpkg/Source/Package/V3/Bzr.pm    |  7 ++++---
 scripts/Dpkg/Source/Package/V3/Git.pm    |  9 ++++++---
 scripts/Dpkg/Source/Package/V3/Native.pm |  6 ++++--
 6 files changed, 29 insertions(+), 18 deletions(-)

diff --git a/scripts/Dpkg/Source/Package.pm b/scripts/Dpkg/Source/Package.pm
index 7fb29a42c..7fc453e59 100644
--- a/scripts/Dpkg/Source/Package.pm
+++ b/scripts/Dpkg/Source/Package.pm
@@ -47,6 +47,7 @@ use Carp;
 use File::Temp;
 use File::Copy qw(cp);
 use File::Basename;
+use File::Spec;
 
 use Dpkg::Gettext;
 use Dpkg::ErrorHandling;
@@ -393,7 +394,7 @@ sub find_original_tarballs {
     foreach my $dir ('.', $self->{basedir}, $self->{options}{origtardir}) {
         next unless defined($dir) and -d $dir;
         opendir(my $dir_dh, $dir) or syserr(g_('cannot opendir %s'), $dir);
-        push @tar, map { "$dir/$_" } grep {
+        push @tar, map { File::Spec->catfile($dir, $_) } grep {
                ($opts{include_main} and
                 /^\Q$basename\E\.orig\.tar\.$opts{extension}$/) or
                ($opts{include_supplementary} and
diff --git a/scripts/Dpkg/Source/Package/V1.pm 
b/scripts/Dpkg/Source/Package/V1.pm
index 863a5faef..a33ce362d 100644
--- a/scripts/Dpkg/Source/Package/V1.pm
+++ b/scripts/Dpkg/Source/Package/V1.pm
@@ -166,8 +166,6 @@ sub do_extract {
                 $sourcestyle);
     }
 
-    my $dscdir = $self->{basedir};
-
     my $basename = $self->get_basename();
     my $basenamerev = $self->get_basename(1);
 
@@ -213,7 +211,9 @@ sub do_extract {
         }
 
         info(g_('unpacking %s'), $tarfile);
-        my $tar = Dpkg::Source::Archive->new(filename => "$dscdir$tarfile");
+        my $tar = Dpkg::Source::Archive->new(
+            filename => File::Spec->catfile($self->{basedir}, $tarfile),
+        );
         $tar->extract($expectprefix);
 
         if ($sourcestyle =~ /u/) {
@@ -238,7 +238,7 @@ sub do_extract {
     }
 
     if ($difffile and not $self->{options}{skip_debianization}) {
-        my $patch = "$dscdir$difffile";
+        my $patch = File::Spec->catfile($self->{basedir}, $difffile);
        info(g_('applying %s'), $difffile);
        my $patch_obj = Dpkg::Source::Patch->new(filename => $patch);
        my $analysis = $patch_obj->apply($newdirectory, force_timestamp => 1);
diff --git a/scripts/Dpkg/Source/Package/V2.pm 
b/scripts/Dpkg/Source/Package/V2.pm
index a26771249..d8e81b0bf 100644
--- a/scripts/Dpkg/Source/Package/V2.pm
+++ b/scripts/Dpkg/Source/Package/V2.pm
@@ -162,8 +162,6 @@ sub do_extract {
     my ($self, $newdirectory) = @_;
     my $fields = $self->{fields};
 
-    my $dscdir = $self->{basedir};
-
     my $basename = $self->get_basename();
     my $basenamerev = $self->get_basename(1);
 
@@ -217,7 +215,9 @@ sub do_extract {
 
     # Extract main tarball
     info(g_('unpacking %s'), $tarfile);
-    my $tar = Dpkg::Source::Archive->new(filename => "$dscdir$tarfile");
+    my $tar = Dpkg::Source::Archive->new(
+        filename => File::Spec->catfile($self->{basedir}, $tarfile),
+    );
     $tar->extract($newdirectory,
                   options => [ '--anchored', '--no-wildcards-match-slash',
                                '--exclude', '*/.pc', '--exclude', '.pc' ]);
@@ -238,7 +238,9 @@ sub do_extract {
                     $subdir);
             erasedir("$newdirectory/$subdir");
         }
-        $tar = Dpkg::Source::Archive->new(filename => "$dscdir$file");
+        $tar = Dpkg::Source::Archive->new(
+            filename => File::Spec->catfile($self->{basedir}, $file),
+        );
         $tar->extract("$newdirectory/$subdir");
     }
 
@@ -248,7 +250,9 @@ sub do_extract {
     # Extract debian tarball after removing the debian directory
     info(g_('unpacking %s'), $debianfile);
     erasedir("$newdirectory/debian");
-    $tar = Dpkg::Source::Archive->new(filename => "$dscdir$debianfile");
+    $tar = Dpkg::Source::Archive->new(
+        filename => File::Spec->catfile($self->{basedir}, $debianfile),
+    );
     $tar->extract($newdirectory, in_place => 1);
 
     # Apply patches (in a separate method as it might be overridden)
diff --git a/scripts/Dpkg/Source/Package/V3/Bzr.pm 
b/scripts/Dpkg/Source/Package/V3/Bzr.pm
index 13d49c742..ed689125d 100644
--- a/scripts/Dpkg/Source/Package/V3/Bzr.pm
+++ b/scripts/Dpkg/Source/Package/V3/Bzr.pm
@@ -28,6 +28,7 @@ our $VERSION = '0.01';
 
 use Cwd;
 use File::Basename;
+use File::Spec;
 use File::Find;
 use File::Temp qw(tempdir);
 
@@ -169,8 +170,6 @@ sub do_extract {
     my ($self, $newdirectory) = @_;
     my $fields = $self->{fields};
 
-    my $dscdir = $self->{basedir};
-
     my $basename = $self->get_basename();
     my $basenamerev = $self->get_basename(1);
 
@@ -193,7 +192,9 @@ sub do_extract {
 
     # Extract main tarball
     info(g_('unpacking %s'), $tarfile);
-    my $tar = Dpkg::Source::Archive->new(filename => "$dscdir$tarfile");
+    my $tar = Dpkg::Source::Archive->new(
+        filename => File::Spec->catfile($self->{basedir}, $tarfile),
+    );
     $tar->extract($newdirectory);
 
     _sanity_check($newdirectory);
diff --git a/scripts/Dpkg/Source/Package/V3/Git.pm 
b/scripts/Dpkg/Source/Package/V3/Git.pm
index 43f495afd..884129107 100644
--- a/scripts/Dpkg/Source/Package/V3/Git.pm
+++ b/scripts/Dpkg/Source/Package/V3/Git.pm
@@ -26,6 +26,7 @@ our $VERSION = '0.02';
 
 use Cwd qw(abs_path getcwd);
 use File::Basename;
+use File::Spec;
 use File::Temp qw(tempdir);
 
 use Dpkg::Gettext;
@@ -217,7 +218,6 @@ sub do_extract {
     my ($self, $newdirectory) = @_;
     my $fields = $self->{fields};
 
-    my $dscdir = $self->{basedir};
     my $basenamerev = $self->get_basename(1);
 
     my @files = $self->get_files();
@@ -251,14 +251,17 @@ sub do_extract {
 
     # Extract git bundle.
     info(g_('cloning %s'), $bundle);
-    system('git', 'clone', '--quiet', '--origin=bundle', $dscdir . $bundle, 
$newdirectory);
+    my $bundle_path = File::Spec->catfile($self->{basedir}, $bundle);
+    system('git', 'clone', '--quiet', '--origin=bundle', $bundle_path, 
$newdirectory);
     subprocerr('git bundle') if $?;
 
     if (defined $shallow) {
         # Move shallow info file into place, so git does not
         # try to follow parents of shallow refs.
         info(g_('setting up shallow clone'));
-        system('cp', '-f',  $dscdir . $shallow, "$newdirectory/.git/shallow");
+        my $shallow_orig = File::Spec->catfile($self->{basedir}, $shallow);
+        my $shallow_dest = File::Spec->catfile($newdirectory, '.git', 
'shallow');
+        system('cp', '-f',  $shallow_orig, $shallow_dest);
         subprocerr('cp') if $?;
     }
 
diff --git a/scripts/Dpkg/Source/Package/V3/Native.pm 
b/scripts/Dpkg/Source/Package/V3/Native.pm
index 1d0de2b0f..933315a73 100644
--- a/scripts/Dpkg/Source/Package/V3/Native.pm
+++ b/scripts/Dpkg/Source/Package/V3/Native.pm
@@ -22,6 +22,7 @@ our $VERSION = '0.01';
 
 use Cwd;
 use File::Basename;
+use File::Spec;
 use File::Temp qw(tempfile);
 
 use Dpkg::Gettext;
@@ -41,7 +42,6 @@ sub do_extract {
     my $sourcestyle = $self->{options}{sourcestyle};
     my $fields = $self->{fields};
 
-    my $dscdir = $self->{basedir};
     my $basename = $self->get_basename();
     my $basenamerev = $self->get_basename(1);
 
@@ -65,7 +65,9 @@ sub do_extract {
     }
 
     info(g_('unpacking %s'), $tarfile);
-    my $tar = Dpkg::Source::Archive->new(filename => "$dscdir$tarfile");
+    my $tar = Dpkg::Source::Archive->new(
+        filename => File::Spec->catfile($self->{basedir}, $tarfile),
+    );
     $tar->extract($newdirectory);
 }
 

-- 
Dpkg.Org's dpkg

Reply via email to