Gentoo Archives: gentoo-soc

From: "Александр Берсенев" <bay@×××××××××.ru>
To: gentoo-soc@l.g.o
Subject: [gentoo-soc] Auto dependency builder. Final report.
Date: Mon, 22 Aug 2011 18:35:00
Message-Id: CAPomEdxzWHU2xbyNdi+NWb+Ei4fh_2BG+LaNfc7D-QJS6jjWAg@mail.gmail.com
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.