summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog3
-rw-r--r--man/deb-symbols.man7
-rwxr-xr-xscripts/dpkg-shlibdeps.pl5
3 files changed, 13 insertions, 2 deletions
diff --git a/debian/changelog b/debian/changelog
index 6690b4154..3581597c1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -12,6 +12,9 @@ dpkg (1.20.0) UNRELEASED; urgency=medium
the STRIP variable.
* dpkg-genbuildinfo: Do not include irrelevant packages in the Binary field.
* dpkg: Do not clear selections for unknown packages. Closes: #927752
+ * dpkg-shlibdeps: Add support for new Build-Depends-Packages, to be able
+ to specify multiple packages. Closes: #926669
+ Based on a patch by Frank Schaefer <kelledin@gmail.com>.
* Documentation:
- man: Fix uncommon wording constructs.
* Build system:
diff --git a/man/deb-symbols.man b/man/deb-symbols.man
index ca52b1733..7da0a7682 100644
--- a/man/deb-symbols.man
+++ b/man/deb-symbols.man
@@ -67,6 +67,13 @@ and is used by \fBdpkg\-shlibdeps\fP to make sure that the dependency
generated is at least as strict as the corresponding build dependency
(since dpkg 1.14.13).
.TP
+.B Build\-Depends\-Packages
+The same as \fBBuild\-Depends\-Package\fP but accepts a comma-separated
+list of package names (since dpkg 1.20.0).
+This field will override any \fBBuild\-Depends\-Package\fP field present,
+and is mostly useful with a “\-dev” packages and metapackages depending
+on these, say for a transition period.
+.TP
.B Ignore\-Blacklist\-Groups
It indicates what blacklist groups should be ignored, as a whitespace
separated list, so that the symbols contained in those groups get
diff --git a/scripts/dpkg-shlibdeps.pl b/scripts/dpkg-shlibdeps.pl
index a318a59d1..f662b2f58 100755
--- a/scripts/dpkg-shlibdeps.pl
+++ b/scripts/dpkg-shlibdeps.pl
@@ -435,8 +435,9 @@ foreach my $file (keys %exec) {
foreach my $soname (@sonames) {
# Adjust minimal version of dependencies with information
# extracted from build-dependencies
- my $dev_pkg = $symfile->get_field($soname, 'Build-Depends-Package');
- if (defined $dev_pkg) {
+ my $dev_pkgs = $symfile->get_field($soname, 'Build-Depends-Packages') //
+ $symfile->get_field($soname, 'Build-Depends-Package');
+ foreach my $dev_pkg (split /[,\s]+/, $dev_pkgs // '') {
debug(1, "Updating dependencies of $soname with build-dependencies");
my $minver = get_min_version_from_deps($build_deps, $dev_pkg);
if (defined $minver) {