Gentoo Archives: gentoo-portage-dev

From: Alpt <alpt@××××××××.org>
To: gentoo-portage-dev@l.g.o
Cc: carpaski@g.o
Subject: Re: [gentoo-portage-dev] The merge of emerde with emerge
Date: Thu, 02 Dec 2004 13:35:05
Message-Id: 20041202133455.GA683@nihil
In Reply to: Re: [gentoo-portage-dev] The merge of emerde with emerge by Nicholas Jones
1 On Wed, Dec 01, 2004 at 09:15:16PM -0500, Nicholas Jones after a spiritual call wrote :
2 ~> If '.tgz' has been reserved for slackware, that's a bit of a
3 ~> problem. The following suggestion requires some changes in portage,
4 ~> but they are on the way. I'd prefer if it detected the slackware
5 ~> info within the file. Portage should be able to handle any tarball
6 ~> given, regardless of it's metadata format. The reason I say the
7 ~> reservation is a problem stems from wanting xpaks on tgz files
8 ~> instead of restricting ourselves to tbz2 which is computationally
9 ~> intensive.
10
11 The .tgz of Slackware doesn't keep information as the .tbz2 does.
12 A tgz pkg is the image tar.gzipped with a doinst.sh script used to
13 recreate the links. Btw, the installation is held by installpkg (it
14 comes from pkgutil in Slackware).
15 The changes in emerge permit to use the portage's db to check
16 dependecies. When a dep is found it searches the relative .tgz in the
17 specified PKGROOT, if it isn't found it merge the dep from the portage
18 itself.
19
20 ~> > pfile: Emerde will apply the specified action to all the
21 ~> > packages listed in the pfile
22 ~>
23 ~> I don't know what this means.
24
25 it loads the list of pkg to consider from a file (pfile) instead from
26 the command line.
27
28 ~> > invulnerable: Updates all the packages which have suid binaries.
29 ~> Why?
30
31 If the user wants to update all the suid binaries here it is.
32
33 ~> > maketgz: Emerde will build Slackware's tgz packages for all
34 ~> > ebuilds processed.
35 ~>
36 ~> Converting to an outside format, while good to be able to do,
37 ~> is better served in an outside application. You had mentioned
38 ~> in another message por2pkg or something like that. These would
39 ~> be in the package to which I am refering.
40
41 por2pkg is used to convert the portage's vardb entry to the Slackware's one
42 (/var/log/packages/)
43
44 ~> > quicksearch: The cp_all function in Emerde is rewritten to use
45 ~> > /var/cadb, there's a significant improvement in all
46 ~> > the functions that use cp_all (--search, sync,
47 ~> > update cache etc...)
48 ~>
49 ~> What is cadb? 'esearch' and it's friends compile the data into a
50 ~> db it uses to query from. The problem with portage's search is a
51 ~> locality problem. Seeks on disks are a major penalty. What benefit
52 ~> are you providing here?
53
54 The /var/cadb is a simple index:
55 [alpt@darkalpt alpt]$ cat /var/cadb
56 app-accessibility SphinxTrain
57 app-accessibility at-poke
58 app-accessibility brltty
59 ...
60
61 The current cp_all function generates each time the list of
62 all packages... it's pretty slow because it does three nested "for" within
63 the listdir function. Instead in the modified version it has already the list,
64 so it can look up the relative category immediately.
65
66 ~> > skipit: Emerde allows you to skip to the next merge with the
67 ~> > SIGINT signal or by pressing CTRL+c.
68 ~>
69 ~> This probably isn't a good idea. It's liable to break 'automatic'
70 ~> configurations that the ebuild expects to be satisfied in a
71 ~> particular way. Do you use this often?
72
73 I know, it can't be used if a dependece being processed is a must, but
74 it's very usefull in some case. For example where you are processing a
75 list of 50 pkgs without doing -u, you are in the middle of the list and
76 you want to skip the current pkg.
77
78 ~> > Compilation resume: Emerde resumes an interrupted or aborted
79 ~> > compilation without rebuild the pkg and
80 ~> > restart the compilation.
81 ~>
82 ~> I commented on this elsewhere.
83
84 so? what's the response?
85 I find it very useful, expecially when I merge a big pkg (xfree).
86
87 ~> > LAN-sync: The syncing of the portage can be done using another
88 ~> > machine that had already done it. See ACTION:sync in
89 ~> > the emerge(1) man page.
90 ~>
91 ~> You can share your portage tree via NFS and 'emerge metadata'.
92 ~> What does this gain you beyond that?
93
94 it's cool ;) You don't have to use NFS, but only your shell account.
95 It might be more comfortable.
96 that's all.
97
98 ~> > --searchcontents: Emerde matches the search string against the
99 ~> > contents field. The pkg's contents field
100 ~> > contains a list of files and directories
101 ~> > installed. This option is useful to know to
102 ~> > what pkg a file or a directory belong.
103 ~>
104 ~> External apps do this for us now. See 'etcat -b' and 'qpkg -f'.
105
106 it shouldn't be an external app feature. If I have the portage I want to
107 use only it.
108
109 ~> > --showcontents: This option is the same as the --search one except
110 ~> > that it shows all the contents file of the searched
111 ~> > packages.
112 ~>
113 ~> What's the use/benefit of this?
114
115 you haven't to find the relative category,
116 cd /var/db/pkg/CAT/PKG,
117 cat CONTENTS.
118
119 It is extremely handy when you do it often.
120
121 ~> > --searchinstalled: It filter only installed pkg in the search result.
122 ~>
123 ~> The idea is good. The number of flags that could be used here
124 ~> might be a problem though. Perhaps it's time we support '=' in
125 ~> arguments:
126
127 It isn't mentioned but each option added has its short mapping.
128 --searchinstalled == -L
129 --showcontents == -T
130 --searchcontents == -N
131 ...
132
133 ~> --search=description,installed,available,masked
134 ~> or something to that effect might be more effective.
135 yes, but the short mapping it's lazier for the laziest people.
136
137 ~> > buildworld: Rebuilds or updates the "world" file (/var/cache/edb/world)
138 ~>
139 ~> /usr/lib/portage/bin/regenworld
140 okay.
141
142 ~> > pordbcheck: Checks if the programs listed in the portage's db are
143 ~> > really installed.
144 ~>
145 ~> I know that qpkg can do this. I'm not overly fond of qpkg as it's
146 ~> in bash and generally annoying to fix.
147
148 I created pordbcheck because in other distro from Slackware, emerde
149 installs a prebuild /var/db/pkg.
150
151 btw, I'd like to do something to see all the installed pkg without
152 syncing with any pkg's db, but to do this it's necessary have the list
153 of files which each ebuild will generate...
154
155 ~> > initd-cfg: /etc/init.d editor.
156 ~>
157 ~> Explanation would be nice... What exactly is it editing?
158 the initd-cfg it's like ufed; you get a list of the files in
159 /etc/init.d. Then you check or decheck the one you want to be
160 executable.
161 I made you a screen shot: http://hinezumilabs.org/alpt/shot-initd.png
162
163 I didn't mentioned that for emerde I use a rc.emerde to control all the
164 scripts in /etc/init.d. In the style of:
165 rc.emerde start (and it starts all the scripts executable in
166 /etc/init.d)
167 rc.emerde stop
168 rc.emerde restart
169
170 then there's Semerde.stop in rc.d/rc[60].d
171 Semerde.stop does this:
172 /etc/rc.d/rc.emerde stop
173 rm -f /var/lib/init.d/started/*
174
175 I didn't included them in the patch, I don't know if they can be useful
176 for gentoo too.
177
178 ~> > If I can jump in the coding with you, I can live in peace
179 ~> > with emerde because all the changes will be already built
180 ~> > in and in the near future emerde won't be needed anymore.
181 ~> > The goal is to make the portage distro independent.
182 ~>
183 ~> I've got no problem with more help, but as with everyone else,
184 ~> we need to look over what you've done, and how you've done it
185 ~> before bringing you on board.
186
187 roger that, sir.
188
189 Best Regards
190 --
191 :wq!
192 "I don't know nothing" The One Who reached the Thinking Matter '.'
193
194 [ Alpt --- Freaknet Medialab ]
195 [ GPG Key ID 441CF0EE ]
196 [ Key fingerprint = 8B02 26E8 831A 7BB9 81A9 5277 BFF8 037E 441C F0EE ]