Gentoo Archives: gentoo-soc

From: Jauhien Piatlicki <jpiatlicki@×××××.com>
To: gentoo-soc@l.g.o, Rafael Goncalves Martins <rafaelmartins@g.o>
Subject: [gentoo-soc] GSoC 2013: Framework for automated ebuild generators
Date: Mon, 22 Apr 2013 20:57:56
Message-Id: 5175A43C.5010100@gmail.com
1 Hi all,
2
3 I would like to contribute some code during GSoC-2013. I'm interested in
4 the idea of Rafael Martins ``Framework for automated ebuild generators''.
5
6 As all of us know there are lot of 3rd party software providers that in
7 some way resemble overlays or repositories of Linux distributions.
8 Examples are pypi, CRAN, CPAN, CTAN, octave-forge, MELPA. Lots of them.
9 It is quite clear that all this software available through different
10 mechanisms (such as package.el for Emacs or pkg command in Octave) will
11 never have separately maintained ebuilds in Gentoo tree or even in
12 overlays. Installing such a software with its own distribution system
13 does not seem like a good idea, especially if one needs to install it
14 system-wide.
15
16 And really there is a solution in Gentoo for this problem: even a number
17 of solutions. And here another problem lies: we have a special dedicated
18 g-helpers (let call them in this way) for a number of 3rd party software
19 providers. But, as Rafael Martins states ``each one tries to solve the
20 very same problems on its own unique and "innovative" way''. While it
21 would be really nice to have a solid base framework with realization of
22 all the basic algorithms needed for ebuild and overlay generation, with
23 uniform UI and with good integration with system package manager.
24
25 Finally we should have such a framework and number of backends for every
26 type of 3rd party software provider. This framework should make writing
27 of those g-helpers more easy and regular without need for reinventing
28 wheels every time.
29
30 Framework should have:
31 - basic quite common logic for ebuild and overlay manipulation,
32 dependencies resolving, patching and so on
33 - cli, that allows users generate separate ebuilds and even overlays
34 with available backends
35 - integration with other system tools (here I mean layman in the first
36 place, as I'm not really familiar with tools used by other package
37 manglers, but supporting them would be nice as well).
38
39 Backend should have anything specific for a given 3rd party software
40 provider such as concrete algorithms for ebuild-generation, eclasses,
41 databases with information about available software and so on.
42
43 At the end of this project these items should be created:
44 - framework
45 - number of backends (3 or 4)
46 - documentation both for users and developers of new backends
47
48 One of the main problems here is creation of framework general enough to
49 handle and to be usefull for very different software providers. So the
50 first point in this project is studying of different kinds of them (This
51 part of project was successfully begun)) ).
52 Then common design of framework and typical backend should be developed
53 (as a source of an inspiration I will use existing solutions like
54 g-octave and R_overlay at least to see good and bad ideas they use).
55
56 At the moment I see this framework as a number of classes in python that
57 can be inherited and expanded in backends with the specific logic. All
58 the logic related to the interaction with user, portage and overlay
59 tools should be implemented in the framework and normally not changed by
60 backends. Integration with system may need patching of some existing
61 tools (like layman), but it isn't a problem as far as I understand.
62
63 Before the mid-term a working framework and at least one backend should
64 be developed.
65 After the mid-term I'm planning to improve framework and ideas behind it
66 and also to develop a number of additional backends and documentation.
67
68 And the last thing. A little about myself. I'm a student at Jagiellonian
69 University in Cracow (Poland). I'm studying Theoretical Physics at
70 Master courses. Before it I've graduated from Belarusian State
71 University (Minsk, Belarus) with degree in Radiophysics/Computer
72 Security. I have a working experience as a Software Developer (C/C++ on
73 Linux).
74 I really like way thing are done in Gentoo. I use this system for years.
75 I have some contributions to it (mainly Physics-related packages). And
76 also I've tried to write some ebuild-generation stuff
77 (https://github.com/jauhien/g-common) but as I've seen there is this
78 GSoC idea, that will bring us much more general tool I've thought it
79 should be completely rewritten. )
80
81 It seems that's all so far.
82
83 Looking for any suggestions and comments.
84 If no complains I will proceed with submitting of my proposal to Google.
85
86 Jauhien

Attachments

File name MIME type
signature.asc application/pgp-signature