diff --git a/README.md b/README.md new file mode 100644 index 0000000..71beeea --- /dev/null +++ b/README.md @@ -0,0 +1,89 @@ +Running +======= + +Just start `./setup.sh`. It will do the following: + + 1. download apt sources and apt-file data for the amd64 Debian sid snapshot at + 20141211T041251Z and store them in a directory tree rooted at + `./debian-sid-amd64` + 2. go through all binary packages which have a file `DEBIAN/triggers` in their + control archive (the list is stored in the file `control_triggers_packages`) + and for each package: + 2.0. download and unpack its control archive + 2.1. store all interest-await file triggers in the file `interested-file` + 2.2. store all interest-await explicit triggers in the file `interested-explicit` + 2.1. store all activate-await file triggers in the file `activated-file` + 2.1. store all activate-await explicit triggers in the file `activated-explicit` + 2.6. remove the downloaded binary package and unpacked control archive + 3. go through `interested-file` and for each line: + 3.1. calculate the dependency closure for the binary package and for + each package in the closure: + 3.1.1. use `apt-file` to get all files of the package + 3.1.2. check if the current file trigger matches any file in the package + 3.1.3. store any hits in the file `result-file` + 4. go through `interested-file` and for each line: + 4.1. calculate the dependency closure for the binary package and for + each package in the closure: + 4.1.1. check if the package activates the current file trigger + 3.1.3. append any hits to the file `result-file` + 5. go through `interested-explicit` and for each line: + 5.1. calculate the dependency closure for the binary package and for + each package in the closure: + 5.1.1. check if the package activate the current explicit trigger + 3.1.3. store any hits in the file `result-explicit` + +Files +===== + +control_triggers_packages +------------------------- + +The currently known files that ship a `DEBIAN/triggers` file in their control +metadata. In the future, this list should be autogenerated. + +interested-file +--------------- + +Associates binary packages to file triggers they are interested in. The first +column is the binary package, the second column is either `interest` or +`interest-await` and the last column the path they are interested in. + +interested-explicit +------------------- + +Associates binary packages to explicit triggers they are interested in. The +first column is the binary package, the second column is either `interest` or +`interest-await` and the last column the name of the explicit trigger they are +interested in. + +activated-file +-------------- + +Associates binary packages to file triggers they activate. The first column is +the binary package, the second column is either `activate` or `activate-await` +and the last column the path they activate. + +activate-explicit +----------------- + +Associates binary packages to explicit triggers they activate. The first column +is the binary package, the second column is either `activate` or +`activate-await` and the last column the explicit trigger they activate. + +result-file +----------- + +Associates binary packages with other binary packages they can form a file +trigger cycle with. The first column is the binary package containing the file +trigger, the second column is the file trigger, the third column is a binary +package providing a path that triggers the binary package in the first column, +the fourth column is the triggering path of provided by the binary package in +the third column. + +result-explicit +--------------- + +Associates binary packages with other binary packages they can form an explicit +trigger cycle with. The first column is the binary package interested in the +explicit trigger, the second column is the name of the explicit trigger, the +third column is the binary package activating the trigger. diff --git a/setup.sh b/setup.sh index c698b98..fd40138 100755 --- a/setup.sh +++ b/setup.sh @@ -122,8 +122,7 @@ printf "" > result-explicit # go through those that are interested in an explicit trigger and check them # against the packages in their dependency closure which activate it -#cat interested-explicit | while read pkg ttype iname; do -echo wims-modules interest wims-reindex | while read pkg ttype iname; do +cat interested-explicit | while read pkg ttype iname; do echo "working on $pkg..." >&2 echo "getting dependency closure..." >&2 # go through all packages in the dependency closure and check if any of