************ Introduction ************ Overview =================================== Auto dependency builder is a tool for analysis files accessed during building a package. It also can be used for runtime dependencies analysis. The tool can block an access to files of defined packages. It is released under GNU GPL license. Status =================================== Autodep is in active developing. Installing =================================== .. note:: TODO: make an overlay and ebuild Running =================================== .. program:: showfsevents.py .. code-block:: none showfsevents.py [options] .. cmdoption:: --help, -h show this help message and exit .. cmdoption:: -b PACKAGES, --block=PACKAGES block an access to files from this packages .. cmdoption:: -f , --files show accessed files and not founded files .. cmdoption:: -v , --verbose show non-important packages, show unknown package and unknown stage .. cmdoption:: -C , --nocolor don't output color .. cmdoption:: --hooklib use ld_preload logging approach(default) .. cmdoption:: --fusefs use fuse logging approach(slow, but reliable) Example: showfsevents.py -b lsof,cowsay emerge bash Hooklib vs Fusefs =================================== +------------------------------------------------+-------------+---------------+ | | Hooklib | Fusefs | +================================================+=============+===============+ | Who can use this approach? | **Any user**| Only root | +------------------------------------------------+-------------+---------------+ | Is approach allows blocking an access to files?| **YES** | **YES** | +------------------------------------------------+-------------+---------------+ | Is overhead in performance big? | **NO** | YES [#f1]_ | +------------------------------------------------+-------------+---------------+ | What events are logged? | Most [#f2]_| **ALL** | +------------------------------------------------+-------------+---------------+ | When is it recomended to use an approach? | For analysis| For analysis | | | of | of *runtime* | | | *buildtime* | dependencies | | | dependencies| | +------------------------------------------------+-------------+---------------+ | Is any pre-requirements for using an approach? | **NO** | FUSE must be | | | | enabled in | | | | kernel | +------------------------------------------------+-------------+---------------+ .. rubric:: Notes .. [#f1] Fuse file system is slower than normal one. Program reads many files while launching, so this will take more time than usual. .. [#f2] Loading of dynamic libraries and direct syscalls will not be logged. Examples =================================== .. rubric:: 1. Get the potential dependencies of a xchat package: .. code-block:: none showfsevents.py emerge xchat .. rubric:: 2. Get the potential dependencies of a xchat package, blocking x11-misc/util-macros package: .. code-block:: none showfsevents.py emerge --block x11-misc/util-macros emerge xchat .. rubric:: 3. Get the potential dependencies of a xchat package, and show files accessed: .. code-block:: none showfsevents.py --files emerge xchat .. rubric:: 4. Get the runtime dependencies of a xchat and show files accessed: .. code-block:: none showfsevents.py --fusefs --files xchat Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`