[debhelper-devel] [debhelper] 03/06: Let dh_auto_install provide default source dir via --buildlabel
Niels Thykier
nthykier at moszumanska.debian.org
Sun Jul 16 18:14:13 UTC 2017
This is an automated email from the git hooks/post-receive script.
nthykier pushed a commit to branch easier-multi-builds
in repository debhelper.
commit 1146eabf0b399a9d60eb38e629d230098269d58a
Author: Niels Thykier <niels at thykier.net>
Date: Sun Jul 16 15:50:51 2017 +0000
Let dh_auto_install provide default source dir via --buildlabel
Signed-off-by: Niels Thykier <niels at thykier.net>
---
Debian/Debhelper/Dh_Buildsystems.pm | 3 +++
Debian/Debhelper/Dh_Lib.pm | 16 ++++++++++++----
dh_auto_install | 14 +++++++++++++-
3 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/Debian/Debhelper/Dh_Buildsystems.pm b/Debian/Debhelper/Dh_Buildsystems.pm
index 7d4b421..cc0f5c5 100644
--- a/Debian/Debhelper/Dh_Buildsystems.pm
+++ b/Debian/Debhelper/Dh_Buildsystems.pm
@@ -178,6 +178,8 @@ sub buildsystems_init {
"S=s" => \$opt_buildsys,
"buildsystem=s" => \$opt_buildsys,
+ 'buildlabel=s' => \$dh{BUILDLABEL},
+
"l" => \$opt_list,
"list" => \$opt_list,
@@ -189,6 +191,7 @@ sub buildsystems_init {
Debian::Debhelper::Dh_Lib::init(%args);
Debian::Debhelper::Dh_Lib::set_buildflags();
set_parallel($max_parallel);
+ $dh{BUILDLABEL} //= 'default';
}
sub set_parallel {
diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm
index bf94d45..7979f9b 100644
--- a/Debian/Debhelper/Dh_Lib.pm
+++ b/Debian/Debhelper/Dh_Lib.pm
@@ -643,10 +643,18 @@ sub tmpdir {
# use, for that package. (Usually debian/tmp)
sub default_sourcedir {
my ($package) = @_;
- my $label = package_dh_option($package, 'buildlabel');
- if (defined($label)) {
- return "debian/tmp-${label}";
- }
+ my $label = package_dh_option($package, 'buildlabel') // 'default';
+ my $label_file = "debian/.debhelper/buildlabels/${label}/install-dir";
+ if (-f $label_file) {
+ my $dest_dir;
+ open(my $fd, '<', $label_file) or error("open($label_file): $!");
+ $dest_dir = <$fd>;
+ close($fd);
+ error("Internal error: No install path for ${label} !?") if not defined($dest_dir);
+ chomp($dest_dir);
+ return $dest_dir;
+ }
+ return "debian/tmp-${label}" if $label ne 'default';
return 'debian/tmp';
}
diff --git a/dh_auto_install b/dh_auto_install
index 6b34eb1..095ef71 100755
--- a/dh_auto_install
+++ b/dh_auto_install
@@ -65,7 +65,7 @@ B<dh_auto_install> usually passes.
=cut
-my $destdir;
+my ($destdir, $orig_dest_dir);
buildsystems_init(options => {
"destdir=s" => \$destdir,
@@ -76,10 +76,13 @@ if (!$destdir) {
my @allpackages=getpackages();
if (@allpackages > 1) {
$destdir="debian/tmp";
+ $destdir="debian/tmp-$dh{BUILDLABEL}" if $dh{BUILDLABEL} ne 'default';
}
else {
$destdir=tmpdir($dh{MAINPACKAGE});
}
+} else {
+ $orig_dest_dir = $destdir;
}
$destdir = File::Spec->rel2abs($destdir, cwd());
@@ -92,6 +95,15 @@ if (compat(10)) {
buildsystems_do("install", $destdir);
+if (defined($orig_dest_dir)) {
+ # only set this, if we are not using the default
+ my $label_dir = "debian/.debhelper/buildlabels/$dh{BUILDLABEL}";
+ install_dir($label_dir);
+ open(my $fd, '>', "${label_dir}/install-dir") or error("open(${label_dir}/install-dir): $!");
+ print {$fd} "$orig_dest_dir\n";
+ close($fd) or error("close(${label_dir}/install-dir): $!");
+}
+
=head1 SEE ALSO
L<debhelper(7)>
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debhelper/debhelper.git
More information about the debhelper-devel
mailing list