diff --git a/debian/changelog b/debian/changelog index a0a86309..226695b3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -15,6 +15,9 @@ debian-cd (3.0.4) UNRELEASED; urgency=low * Exclude multipath-udeb and libaio1-udeb since they're not being use yet. * Fix autorun.inf generation when win32-loader is present. + * Exclude packages and add all task present ones before resolve + dependencies, avoiding OR dependencies to take their place and removed + packages dependencies to be included. Closes: #410418. * Applied patch from Nicolas François to allow README.html translation using po4a. * Remove the 'Last Modified' date from data/lenny/README.html.in since @@ -37,7 +40,7 @@ debian-cd (3.0.4) UNRELEASED; urgency=low [ Joey Hess ] * Include dmraid deb. Closes: #443991 - -- Joey Hess Thu, 27 Sep 2007 13:44:56 -0400 + -- Otavio Salvador Fri, 28 Sep 2007 15:40:56 -0300 debian-cd (3.0.3) unstable; urgency=low diff --git a/tools/list2cds b/tools/list2cds index 2c3591bf..74d03886 100755 --- a/tools/list2cds +++ b/tools/list2cds @@ -104,6 +104,16 @@ if (not $nonfree) { } } +open (EXCLUDE_LIST, "< $exclude") || die "Can't open $exclude : $!\n"; +while (defined($_=)) { + chomp; + next if m/^\s*$/; + next if $excluded{$_}; + $excluded{$_} = 'list'; + $count_excl++; +} +close EXCLUDE_LIST; + msg(1, "Statistics: Number of packages: @{ [scalar(keys %packages)] } Number of excluded: $count_excl of @{ [scalar(keys %excluded)] } @@ -179,10 +189,21 @@ while (defined($_=)) { next; } next if $excluded{$_}; - if ($included{$_}) { + if ($included{$_} == 1) { msg(3, "$_ has already been included.\n"); next; } + + $included{$_} = 1; +} +close LIST; + +# List first add the packages on the list so we give them priority +foreach (keys %included) { + next if ($included{$_} != 1 && !$packages{$_}{"IsUdeb"}); + + $included{$_} = 1 + # This is because udebs tend to have bad dependencies but work # nevertheless ... this may be removed once the udebs have a # better depencency system @@ -192,7 +213,15 @@ while (defined($_=)) { add_package ($_, ! $norecommends, ! $nosuggests); } } -close LIST; + +# Now, let's add all the rest +foreach (keys %included) { + next if ($included{$_} == 1); + + $included{$_} = 0; + + add_package ($_, ! $norecommends, ! $nosuggests); +} msg(0, " Now up to $cd_size bytes\n"); # All requested packages have been included