summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorNiels Thykier <niels@thykier.net>2018-08-04 17:01:35 +0000
committerNiels Thykier <niels@thykier.net>2018-08-04 17:21:58 +0000
commit48b9bb654d19df85f913eb644e9748f128e05be6 (patch)
tree9f89ef6973cb86ae0812cba31373e6e9467c8a50 /lib
parent7baf4b986eb04a5c949bfe1588e0dd2181bcf737 (diff)
downloaddebhelper-48b9bb654d19df85f913eb644e9748f128e05be6.tar.gz
dh: Support autoloading sequences via Build-Depends
Signed-off-by: Niels Thykier <niels@thykier.net>
Diffstat (limited to 'lib')
-rw-r--r--lib/Debian/Debhelper/Dh_Lib.pm21
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/Debian/Debhelper/Dh_Lib.pm b/lib/Debian/Debhelper/Dh_Lib.pm
index b07358d1..8d9f3476 100644
--- a/lib/Debian/Debhelper/Dh_Lib.pm
+++ b/lib/Debian/Debhelper/Dh_Lib.pm
@@ -1524,13 +1524,14 @@ sub is_cross_compiling {
# As a side effect, populates %package_arches and %package_types
# with the types of all packages (not only those returned).
my (%package_types, %package_arches, %package_multiarches, %packages_by_type,
- %package_sections, $sourcepackage, %package_cross_type);
+ %package_sections, $sourcepackage, %package_cross_type, %dh_bd_sequences);
# Resets the arrays; used mostly for testing
sub resetpackages {
undef $sourcepackage;
%package_types = %package_arches = %package_multiarches =
%packages_by_type = %package_sections = %package_cross_type = ();
+ %dh_bd_sequences = ();
}
# Returns source package name
@@ -1656,6 +1657,16 @@ sub getpackages {
warning(" compat level into the file debian/compat. (E.g. \"echo ${clevel} > debian/compat\")");
error("Could not parse desired debhelper compat level from relation: $dep");
}
+ # Build-Depends on dh-sequence-<foo> OR dh-sequence-<foo> (<op> <version>)
+ if ($dep =~ m/^dh-sequence-(${PKGNAME_REGEX})\s*(?:[(]\s*(?:[<>]?=|<<|>>)\s*(${PKGVERSION_REGEX})\s*[)])?$/) {
+ my $sequence = $1;
+ if ($field ne 'build-depends') {
+ warning("Ignoring dh sequence add-on request for sequenece ${sequence} via ${field}: Please move it to the Build-Depends field");
+ warning("The relation that triggered this warning was: ${dep} (from the ${field} field)");
+ next;
+ }
+ $dh_bd_sequences{$sequence} = 1;
+ }
}
}
$compat_from_bd = $final_level // -1;
@@ -1942,6 +1953,14 @@ sub is_udeb {
}
}
+# Only useful for dh(1)
+sub bd_dh_sequences {
+ # Use $sourcepackage as check because %dh_bd_sequence can be empty
+ # after running getpackages().
+ getpackages() if not defined($sourcepackage);
+ return sort(keys(%dh_bd_sequences));
+}
+
sub _concat_slurp_script_files {
my (@files) = @_;
my $res = '';