diff options
author | Johannes 'josch' Schauer <josch@mister-muffin.de> | 2017-03-30 14:37:58 +0200 |
---|---|---|
committer | Holger Levsen <holger@layer-acht.org> | 2017-03-31 10:57:17 +0200 |
commit | dd347bb5e0587fed7e6881c8cb0ed3ca60b6595b (patch) | |
tree | 024e05e4e1006df10d36aacec9c652d06400bf89 | |
parent | 79c4c28f25c71ce9147530e16a11b3e7230d4b79 (diff) | |
download | jenkins.debian.net-dd347bb5e0587fed7e6881c8cb0ed3ca60b6595b.tar.xz |
bin/find_dpkg_trigger_cycles.sh: ignore dependencies on Essential:yes packages
The implicit dependencies of all binary packages on all Essential:yes
packages cannot result in a trigger cycle for two reasons:
1. Policy §3.8 says "Since dpkg will not prevent upgrading of other packages
while an `essential' package is in an unconfigured state" which
implies that because triggers check the possibility to process or not
triggers based on normal dpkg dependency resolution, then essential does not
apply.
2. The trigger documentation in /usr/share/doc/dpkg-dev/triggers.txt.gz
does not mention Essential at all and when talking about dependency
satisfiability it only refers to Depends field.
Signed-off-by: Mattia Rizzolo <mattia@debian.org>
-rwxr-xr-x | bin/find_dpkg_trigger_cycles.sh | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/bin/find_dpkg_trigger_cycles.sh b/bin/find_dpkg_trigger_cycles.sh index 879d5f39..9fdad932 100755 --- a/bin/find_dpkg_trigger_cycles.sh +++ b/bin/find_dpkg_trigger_cycles.sh @@ -226,7 +226,10 @@ cat $DIRECTORY/interested-file | while read pkg ttype ipath; do echo "getting dependency closure..." >&2 # go through all packages in the dependency closure and check if any # of the files they ship match one of the interested paths - dose-ceve -c $pkg -T cudf -t deb \ + # + # We ignore the implicit dependencies on Essential:yes packages because + # they do not create trigger cycles. + dose-ceve --deb-ignore-essential -c $pkg -T cudf -t deb \ $DIRECTORY/var/lib/apt/lists/*_dists_${DIST}_main_binary-${ARCH}_Packages \ | awk '/^package:/ { print $2 }' \ | apt-file $APT_FILE_OPTS show -F --from-file - \ @@ -244,7 +247,10 @@ cat $DIRECTORY/interested-file | while read pkg ttype ipath; do echo "getting dependency closure..." >&2 # go through all packages in the dependency closure and check if any # of them activate a matching path - dose-ceve -c $pkg -T cudf -t deb \ + # + # We ignore the implicit dependencies on Essential:yes packages because + # they do not create trigger cycles. + dose-ceve --deb-ignore-essential -c $pkg -T cudf -t deb \ $DIRECTORY/var/lib/apt/lists/*_dists_${DIST}_main_binary-${ARCH}_Packages \ | awk '/^package:/ { print $2 }' \ | while read dep; do @@ -266,7 +272,10 @@ cat $DIRECTORY/interested-explicit | while read pkg ttype iname; do echo "getting dependency closure..." >&2 # go through all packages in the dependency closure and check if any of # them activate the trigger in which this package is interested - dose-ceve -c $pkg -T cudf -t deb \ + # + # We ignore the implicit dependencies on Essential:yes packages because + # they do not create trigger cycles. + dose-ceve --deb-ignore-essential -c $pkg -T cudf -t deb \ $DIRECTORY/var/lib/apt/lists/*_dists_${DIST}_main_binary-${ARCH}_Packages \ | awk '/^package:/ { print $2 }' \ | while read dep; do |