1 |
Gentoo Dev's, |
2 |
|
3 |
My name is Sérgio Almeida, I am Portuguese and I am a student for this |
4 |
year's Google SoC coding the Universal Select Tool project for Gentoo |
5 |
being Sébastien Fabbro (bicatali) my mentor. |
6 |
|
7 |
Abstract: |
8 |
|
9 |
Universal Select Tool is an utility to manage system configuration. |
10 |
This tool is similar to the unmaintained eselect utility of Gentoo or |
11 |
Exherbo's eclectic. The idea is to create a tool that manages both |
12 |
system settings and user settings with profile creation possibilities. |
13 |
The utility will use mostly concepts from "modules", "softenv", and |
14 |
both "eselect" and "eclectic". |
15 |
|
16 |
My initial proposal does not get in-depth with implementation details |
17 |
and I need to make some decisions as soon as possible. Implementation |
18 |
language will be python as it is easy to maintain, easy to code and |
19 |
faster and more flexible than bash. See attachment for more details. |
20 |
|
21 |
Besides introducing myself, the purpose of this e-mail is a |
22 |
call-to-ideas to all Gentoo developers, mainly all eselect-* and |
23 |
*-config developers. |
24 |
|
25 |
Here are the main interest ideas: |
26 |
|
27 |
* keep eselect structure of modules - actions |
28 |
|
29 |
* symlinking, environment and aliases actions can consist of something |
30 |
like: |
31 |
|
32 |
# module moo comments |
33 |
description "Example Module description" |
34 |
version "Example Module Version" |
35 |
author "moo@××××.moo" |
36 |
# action system moo |
37 |
description "Moo Action Description" |
38 |
symlink "regexp" "regexp" |
39 |
env "regexp" "regexp" |
40 |
alias "regexp" "regexp" |
41 |
# end moo |
42 |
|
43 |
These should get the job done for most of the modules and opens the door |
44 |
to automatic module creation prior to a successful emerge (if some USE |
45 |
flag set) |
46 |
|
47 |
* Actions that consist of code blocks that support any scripting |
48 |
language (what about binaries?) to do more complex actions (full module |
49 |
example): |
50 |
|
51 |
# module moo comments |
52 |
description "Example Module description" |
53 |
version "Example Module Version" |
54 |
author "moo@××××.moo" |
55 |
|
56 |
# action user moo |
57 |
description "Example Module will moo for any user" |
58 |
type runnable |
59 |
runner /bin/bash |
60 |
# file moo.bash |
61 |
#!/bin/bash |
62 |
do_moo() { |
63 |
echo "This is the Example Module mooing" |
64 |
} |
65 |
do_moo() |
66 |
# end moo.bash |
67 |
# end moo |
68 |
|
69 |
* actions can be run system-wide and per-user: |
70 |
# action user moo |
71 |
# action system moo |
72 |
|
73 |
* automatic module loading and profile management can be managed by some |
74 |
env.d python scripts that are user-aware and follow some database |
75 |
|
76 |
I've been given this difficult task of unifying all of these tools |
77 |
together and as you all can understand, I won't be having the time to |
78 |
read through all eselect-* modules and *-config utilities code. |
79 |
|
80 |
Please drop me a line here or at freenode if you have anything to add to |
81 |
these ideas or have any further ideas that can help me on this project. |
82 |
Thank you all in advance. |
83 |
|
84 |
Cheers, |
85 |
Sérgio Almeida |
86 |
mephx @ freenode |