From c4588d4874ccdad5b0b277b384ec760cdea9825c Mon Sep 17 00:00:00 2001 From: Johannes 'josch' Schauer Date: Tue, 20 Dec 2016 13:00:03 +0100 Subject: bin/find_dpkg_trigger_cycles.sh: improve help text Signed-off-by: Holger Levsen --- bin/find_dpkg_trigger_cycles.sh | 68 ++++++++++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/bin/find_dpkg_trigger_cycles.sh b/bin/find_dpkg_trigger_cycles.sh index ce78f496..4c98dde1 100755 --- a/bin/find_dpkg_trigger_cycles.sh +++ b/bin/find_dpkg_trigger_cycles.sh @@ -300,32 +300,52 @@ if [ `wc -l < $DIRECTORY/result-explicit` -ne 0 ]; then awk '{ print $1 }' $DIRECTORY/result-explicit | sort | uniq fi if [ `wc -l < $DIRECTORY/result-file` -ne 0 ]; then - echo "" - echo "" - echo "+----------------------------------------------------------+" - echo "| file based trigger cycles |" - echo "+----------------------------------------------------------+" - echo "" - echo "# Associates binary packages with other binary packages they can form a file" - echo "# trigger cycle with. The first column is the binary package containing the file" - echo "# trigger, the second column is the file trigger, the third column is a binary" - echo "# package providing a path that triggers the binary package in the first column," - echo "# the fourth column is the triggering path of provided by the binary package in" - echo "# the third column." - echo "" + cat << END ++----------------------------------------------------------+ +| file based trigger cycles | ++----------------------------------------------------------+ + +The following table has four columns A, B, C and D. The first column A shows a +binary package which shows interested in a certain path. The second column B +shows the path that A is interested in. The third column C is a binary package +that A (directly or indirectly) depends on. The fourth column D shows the path +that C provides and which is triggering A through its interest in B. + +The cycle is created because when C is put into the triggers-awaited state +(because it triggers A), then it cannot satisfy dependencies until it leaves that +state. But: + + - for C to leave the triggers-awaited state, the trigger has to be resolved + by A, which cannot happen unless A gets configured + - to configure A, its dependency on C has to be resolved which cannot happen + unless C leaves the triggers-awaited state + +This creates the cycle if the packages are installed in a fitting order. +END cat $DIRECTORY/result-file fi if [ `wc -l < $DIRECTORY/result-explicit` -ne 0 ]; then - echo "" - echo "" - echo "+----------------------------------------------------------+" - echo "| explicit trigger cycles |" - echo "+----------------------------------------------------------+" - echo "" - echo "# Associates binary packages with other binary packages they can form an explicit" - echo "# trigger cycle with. The first column is the binary package interested in the" - echo "# explicit trigger, the second column is the name of the explicit trigger, the" - echo "# third column is the binary package activating the trigger." - echo "" + cat << END ++----------------------------------------------------------+ +| explicit trigger cycles | ++----------------------------------------------------------+ + +The following table has three columns A, B and C. The first column A shows a +binary package which shows interested in a certain trigger. The second column B +shows the trigger that A is interested in. The third column C is a binary +package that A (directly or indirectly) depends on and which explicitly +activates the trigger from column B. + +The cycle is created because when C is put into the triggers-awaited state +(because it triggers A), then it cannot satisfy dependencies until it leaves that +state. But: + + - for C to leave the triggers-awaited state, the trigger has to be resolved + by A, which cannot happen unless A gets configured + - to configure A, its dependency on C has to be resolved which cannot happen + unless C leaves the triggers-awaited state + +This creates the cycle if the packages are installed in a fitting order. +END cat $DIRECTORY/result-explicit fi -- cgit v1.2.3-70-g09d2