blob: 5ee0dd58c01ebf592ea6e50a1c8da60f11a385ba (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
************
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] <command>
.. 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`
|