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

