1 |
On Monday 15 December 2003 00:23, Marius Mauch wrote: |
2 |
> Hi, |
3 |
> |
4 |
> personally I really dislike this proposal as it adds a lot of |
5 |
> complexity for functionality that would rarely be used. Also IMO USE |
6 |
> flags should not prevent the installation of a package, that's the |
7 |
> job of masking |
8 |
|
9 |
Well at least in current state masking is very poorly implemented. |
10 |
|
11 |
Besides the system I explined can be used as a tree use flags and thus |
12 |
it does not make it more complex on teh contrary. |
13 |
|
14 |
Example using current implementation as the functionality basis: |
15 |
|
16 |
Enable all gui USE 'flags' |
17 |
=use.gui.* |
18 |
Disable qt USE 'flag' |
19 |
-use.gui.qt |
20 |
|
21 |
So the only thing different is the amount of text and the fact that one |
22 |
needs to put multiple rows of stuff. But this is more readable than |
23 |
this: |
24 |
|
25 |
USE="X acpi acpi4linux apache2 avi cdr crypt cups debug doc dvb dvd |
26 |
emacs encode esd examples fbcon flash foomaticdb gd gdbm ggi gif |
27 |
gphoto2 gpm gps gtk gtk2 imap imlib innodb java joystick jpeg junit |
28 |
ladcca lcms leim libg++ libwww lirc mad maildir memlimit mikmod mmx |
29 |
mozilla moznocompose moznoirc moznomail mpeg mpi mule ncurses nls oav |
30 |
oggvorbis opengl oss pam pdflib perl pic plotutils png postgres python |
31 |
qt quicktime readline samba scanner sdl slp sse ssl tcpd tetex tiff |
32 |
truetype wmf x86 xml xml2 xmms xv zlib" |
33 |
|
34 |
And besides the USE 'flags' should be program controlled by default ala |
35 |
ufed and not in the make.conf. |
36 |
|
37 |
Oh and this representation is simply to make it tree like. |
38 |
Because in my opinion all the stuff has to be in database so these |
39 |
representations doesn't really matter, does they? |
40 |
|
41 |
So we need a preferences program to set the configurations in the |
42 |
database in this way we can controll multiple Gentoo hosts in single |
43 |
portage database from single machine. |
44 |
|
45 |
|
46 |
Now that I have something up from my final idea I can some what clarify |
47 |
the idea. |
48 |
|
49 |
So we have single database where mutiple hosts information can be |
50 |
stored. |
51 |
|
52 |
We have a portage 'daemon' to handle all the database access, package |
53 |
installation and uninstallation. It doesn't need to be allways in the |
54 |
background, but it can be launced when something needs it. |
55 |
|
56 |
This one daemon controlls the dependency tree calculations etc and can |
57 |
compile multiple packages simultaneysly if all their dependencies are |
58 |
allready installed. Thi ofcourse depends wheter the multiple processes |
59 |
are allowed or not through SMP and/or distcc and/or openmosix |
60 |
|
61 |
So now one could que new packages to the daemon at will and it would add |
62 |
these to it's dependency tree. The daemon installs new packages to the |
63 |
tree (It might even be a special graph, if there are packagages that |
64 |
genuinly can depend on eich other) and installs those packages that are |
65 |
not meeting the requirements. This way we can also see the situations |
66 |
where something can't be installed, because something else doesn't work |
67 |
with certain version of the common dependency of the two packages. |
68 |
|
69 |
|
70 |
|
71 |
Now a litle more to the portage level. :) |
72 |
|
73 |
So the portage daemon would need to be a modular concept to be really |
74 |
usefull. So here are my hasty propositions to be as the modules. |
75 |
|
76 |
1. Main module, which controls the others. So is kind the current |
77 |
portage core. And the daemon really is only this the others are |
78 |
libraries. |
79 |
|
80 |
2. Preferences module. Sets all the system options ie what database and |
81 |
the database URI to use etc. This is lot like the current |
82 |
make.profile and some parts of make.conf. |
83 |
|
84 |
3. Database handling. This should be so that there can be one for every |
85 |
database one might use, but of course not all of them made, but given |
86 |
the possibility to users to make their own. The default should be a |
87 |
very light weigth solution like flat files. This module is |
88 |
responsible for database queries and alterings. |
89 |
|
90 |
4. Build module. This builds a package in isolated environment |
91 |
|
92 |
5. Install/uninstall module, which handles the file altering in the live |
93 |
system. |
94 |
|
95 |
Ebuilds wouldn't anymore be a shell scripts, but the build module will |
96 |
offer all necessary commands to build something. Ebuild will simply be |
97 |
a command sequence. Same goes for the install module. |
98 |
This way it can be made more secure and easier to control. |
99 |
|
100 |
Because this consept uses database abstaraction we can put only the |
101 |
staff that suits well to the database and use other type of data |
102 |
structures if more suitable to the needed task. |
103 |
|
104 |
|
105 |
-- |
106 |
gentoo-portage-dev@g.o mailing list |