Dpkg
view release on metacpan or search on metacpan
lib/Dpkg/Source/Package/V3/Native.pm view on Meta::CPAN
my $tar = Dpkg::Source::Archive->new(
filename => File::Spec->catfile($self->{basedir}, $tarfile),
);
$tar->extract($newdirectory);
}
sub can_build {
my ($self, $dir) = @_;
my $v = Dpkg::Version->new($self->{fields}->{'Version'});
if ($v->has_revision()) {
if (run_vendor_hook('has-fuzzy-native-source')) {
warning(g_('native package version may not have a revision'));
} else {
return (0, g_('native package version may not have a revision'));
}
}
return 1;
}
sub do_build {
my ($self, $dir) = @_;
my @tar_ignore = map { "--exclude=$_" } @{$self->{options}{tar_ignore}};
my @argv = @{$self->{options}{ARGV}};
if (scalar(@argv)) {
usageerr(g_("-b takes only one parameter with format '%s'"),
$self->{fields}{'Format'});
}
my $sourcepackage = $self->{fields}{'Source'};
my $basenamerev = $self->get_basename(1);
my $tarname = "$basenamerev.tar." . $self->{options}{comp_ext};
info(g_('building %s in %s'), $sourcepackage, $tarname);
my $newtar = File::Temp->new(
TEMPLATE => "$tarname.new.XXXXXX",
DIR => getcwd(),
UNLINK => 0,
);
push_exit_handler(sub { unlink($newtar) });
my ($dirname, $dirbase) = fileparse($dir);
my $tar = Dpkg::Source::Archive->new(
filename => $newtar,
compression => compression_guess_from_filename($tarname),
compression_level => $self->{options}{comp_level},
);
$tar->create(
options => \@tar_ignore,
chdir => $dirbase,
);
$tar->add_directory($dirname);
$tar->finish();
rename($newtar, $tarname)
or syserr(g_("unable to rename '%s' (newly created) to '%s'"),
$newtar, $tarname);
pop_exit_handler();
chmod(0o666 &~ umask(), $tarname)
or syserr(g_("unable to change permission of '%s'"), $tarname);
$self->add_file($tarname);
}
=head1 CHANGES
=head2 Version 0.xx
This is a private module.
=cut
1;
( run in 1.761 second using v1.01-cache-2.11-cpan-39bf76dae61 )