add README.md

This commit is contained in:
josch 2014-12-12 15:48:09 +01:00
parent e4518918de
commit af7b3594eb
2 changed files with 90 additions and 2 deletions

89
README.md Normal file
View file

@ -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.

View file

@ -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