Thanks for the feedback! I also had the impression that it was a
"backward step", but since I don't really understand anything in Perl, I
didn't dare to touch it :)
Updated patch set attached. I also removed the hunk that came just after
as it was another step backward.
I noticed (only now) that the second patch is titled
"Also-pull-in-second-level-recommends", so maybe it works as intended.
Before the patch, only the first level of recommends is pulled, and
after the patch, the 1st and 2nd levels are pulled, I guess?
--
Arnaud Rebillout
From 84878a80ab0f0560e9a55b2d5956c8707fd7b74e Mon Sep 17 00:00:00 2001
From: Wolfgang Schweer
Date: Fri, 1 Mar 2019 11:27:46 +0100
Subject: [PATCH 1/2] Enable to pull in Recommends recursively
To enable set NORECOMMENDS=0 in the build environment. (Closes: #601203)
---
tools/sort_deps | 45 -
1 file changed, 28 insertions(+), 17 deletions(-)
diff --git a/tools/sort_deps b/tools/sort_deps
index 2bdbfcf..8582b90 100755
--- a/tools/sort_deps
+++ b/tools/sort_deps
@@ -647,6 +647,7 @@ sub check_versions {
# Check if a specific dependency package is installed already
sub dep_pkg_included {
my $p = shift;
+ my $add_rec = shift;
my $check_backports = shift;
my $need_udeb = shift;
my %d = %$p;
@@ -754,17 +755,18 @@ sub fix_backport_depends {
# dependency or any one of an OR array
sub dep_satisfied {
my $p = shift;
+my $add_rec = shift;
my $check_backports = shift;
my $need_udeb = shift;
if ("ARRAY" eq ref $p) {
foreach (@{$p}) {
- if (dep_pkg_included($_, $check_backports, $need_udeb)) {
+ if (dep_pkg_included($_, $add_rec, $check_backports, $need_udeb)) {
return 1;
}
}
} elsif ("HASH" eq ref $p) {
- return dep_pkg_included($p, $check_backports, $need_udeb);
+ return dep_pkg_included($p, $add_rec, $check_backports, $need_udeb);
} else {
}
return 0;
@@ -878,7 +880,7 @@ sub add_package {
}
# Get all dependencies (not yet included) of each package
- my (@dep) = (get_missing ($p, $check_backports));
+ my (@dep) = (get_missing ($p, $add_rec, $check_backports));
# Stop here if apt failed
if (not scalar(@dep)) {
@@ -895,7 +897,7 @@ sub add_package {
msg(3, " \@dep before checklist = " . dump_depend(\@dep) . "\n");
# Check if all packages are allowed (fail if one cannot)
- ($ok, $reasons) = check_list (\@dep, 1, $check_backports);
+ ($ok, $reasons) = check_list (\@dep, 1, $add_rec, $check_backports);
if (not $ok) {
msg(2, "Can't add $p ... one of the packages needed has " .
"been refused. Reasons: $reasons\n");
@@ -905,12 +907,11 @@ sub add_package {
msg(3, " \@dep after checklist = " . dump_depend(\@dep) . "\n");
if ($add_rec) {
- #TODO: Look for recommends (not yet included !!)
- add_recommends (\@dep, $p, $check_backports);
+ add_recommends (\@dep, $p, $add_rec, $check_backports);
msg(3, " \@dep after add_recommends = " . dump_depend(\@dep) . "\n");
# Check again but doesn't fail if one of the package cannot be
# installed, just ignore it (it will be removed from @dep)
- ($ok, $reasons) = check_list (\@dep, 0, $check_backports);
+ ($ok, $reasons) = check_list (\@dep, 0, $add_rec, $check_backports);
if (not $ok) {
msg(0, "UNEXPECTED: It shouldn't fail here !\n");
return;
@@ -920,11 +921,11 @@ sub add_package {
if ($add_sug) {
#TODO: Look for suggests (not yet included !!)
- add_suggests (\@dep, $p, $check_backports);
+ add_suggests (\@dep, $p, $add_rec, $check_backports);
msg(3, " \@dep after add_suggests = " . dump_depend(\@dep) . "\n");
# Check again but doesn't fail if one of the package cannot be
# installed, just ignore it (it will be removed from @dep)
-($ok, $reasons) = check_list (\@dep, 0, $check_backports);
+($ok, $reasons) = check_list (\@dep, 0, $add_rec, $check_backports);
if (not $ok) {
msg(0, "UNEXPECTED: It shouldn't fail here !\n");
return;
@@ -952,6 +953,7 @@ sub accepted {
sub add_suggests {
my $deps_list = shift;
my $pkg = shift;
+my $add_rec = shift;
my $check_backports = shift;
my @parents = ($pkg);
my $p; # = shift;
@@ -960,13 +962,14 @@ sub add_suggests {
foreach $p (@copy) {
my %t = %$p;
my $pkgname = $t{"Package"};
- add_missing($deps_list, $packages{$pkgname}{"Suggests"}, \%t, 1, \@parents, $check_backports);
+ add_missing($deps_list, $packages{$pkgname}{"Suggests"}, \%t, 1, \@parents, $add_rec, $check_backports);
}
}
sub add_recommends {
my $deps_list = shift;
my $pkg = shift;
+my $add_rec = shift;
my $check_backports = shift;
my @parents = ($pkg);
my $p; # = shift;
@@ -975,12 +978,13 @@ sub add_recommends {
foreach $p (@copy) {
my %t = %$p;
my $pkgname = $t{"Package"};
- add_missing($deps_list, $packages{$pkgname}{"Recommends"}, \%t, 1, \@parents, $check_backports);
+ add_missing($deps_list, $packages{$p