1 |
Hi, |
2 |
|
3 |
This post summarizes my summer activity for an Auto Dependency Builder |
4 |
project. The goal of this project is to reduce number of missing |
5 |
dependencies in Gentoo and give to developers a tool for dependency |
6 |
tracking and analyse. |
7 |
|
8 |
To reach this goal the tool named autodep was developed. This tool |
9 |
logs file requests of program and then analyses them. It can block |
10 |
access to files from non-dependency packages. |
11 |
|
12 |
It uses two approaches for this. First approach is a creating a |
13 |
virtual filesystem and launching a program inside it. It is good for |
14 |
analyzing runtime dependencies. Second approach is interception of |
15 |
library calls, such as open, read, etc. It is good for analyzing |
16 |
buildtime dependencies. |
17 |
|
18 |
Additionally, the Gentoo's portage system was modified and dependency |
19 |
checking and blocking was added to it as a feature. This modified |
20 |
version installs with autodep package and can be executed via |
21 |
emerge_strict command. Here is a little video about how it works: |
22 |
http://www.youtube.com/watch?v=IEPi_cfWZys . And a patch: |
23 |
http://soc.dev.gentoo.org/~bay/autodep/integration_with_portage.patch |
24 |
|
25 |
The tool is available in neurogeek overlay as app-portage/autodep package. |
26 |
|
27 |
Results: |
28 |
|
29 |
I launched an Auto Dependency Checking on various packages in my |
30 |
Gentoo. I can say that there are many missing dependencies even in the |
31 |
main repository. I reported 23 bugs about missing dependencies on |
32 |
bugs.gentoo.org: |
33 |
https://bugs.gentoo.org/buglist.cgi?emailreporter1=1;list_id=363129;emailtype1=exact;chfieldto=Now;query_format=advanced;chfieldfrom=2011-06-10;email1=alex3255%40mail.ru |
34 |
. |
35 |
|
36 |
I tried to build only small part of packages that available to build. |
37 |
I think that continuous dependency checking will make Gentoo better. |
38 |
|
39 |
Changes from initial plan: |
40 |
|
41 |
There was a lot discussions with my mentor about central |
42 |
log-collecting server. We decided to move analyzing logic from server |
43 |
to client and focus on integration with portage. |
44 |
|
45 |
Testing: |
46 |
|
47 |
I tested autodep on two computers: |
48 |
1) amd64, python3.2 |
49 |
2) x86, python2.6, 256 mb ram, no swap |
50 |
|
51 |
All bugs I seen were fixed. |
52 |
|
53 |
Further plans: |
54 |
|
55 |
Integration with tinderbox. Setup own tinderbox and report bugs about |
56 |
missing dependencies. |
57 |
Also, I'll left Auto Dependency Checking option enabled on my desktop |
58 |
with Gentoo. |
59 |
|
60 |
Links: |
61 |
|
62 |
1) http://www.youtube.com/watch?v=dnqrLVyGm7Y - another video about |
63 |
using the autodep |
64 |
2) http://www.youtube.com/watch?v=QZsyMMz4K-Y - video from Week 11 |
65 |
3) http://www.youtube.com/watch?v=r_mlFc5G_CI - video from Week 6 |
66 |
4) http://git.overlays.gentoo.org/gitweb/?p=proj/autodep.git;a=summary |
67 |
- git repository |
68 |
5) http://soc.dev.gentoo.org/~bay/autodep/ - documentation |
69 |
6) http://dev.gentoo.org/~neurogeek/guidexml - documentation on one |
70 |
page in Gentoo's style(thanks Neurogeek for it) |
71 |
|
72 |
P.S. It was a great summer! I was really enjoying developing that |
73 |
tool.Thanks to all who made it possible. Especially to my mentor |
74 |
Neurogeek, to Zac Medico for answering my stupid questions, to |
75 |
Sebastian Pipping for helping with FUSE, to Guido van Rossum for a |
76 |
great language, to Gentoo Foundation and its administrators, and to |
77 |
Google. |