Gentoo Archives: gentoo-dev

From: "Sérgio Almeida" <mephx.x@×××××.com>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Google SoC @ Gentoo - Universal Select Tool
Date: Mon, 04 May 2009 21:01:57
Message-Id: 1241470894.6119.80.camel@thedude
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

Attachments

File name MIME type
proposal text/plain

Replies