1 |
Hello portage developers |
2 |
|
3 |
I apologize about not using bugzilla, but i'm not so familiar with it, |
4 |
and currently i have |
5 |
very time-limited internet connection, so i write most of my mails |
6 |
offline, and i can't affroad |
7 |
checking for already posted bugs. Hope you will apreciate my effort, |
8 |
and keep inform me (trough the ML) about further changes in those |
9 |
areas, existing fixes, or just my stupidity :) |
10 |
Maybe some of topics listed here are not corresponding to topic of |
11 |
this ML, please let me know where they should be posted. |
12 |
|
13 |
* verify of merged files |
14 |
|
15 |
While emerging system i got build error that javac check [in configure] failed. |
16 |
I checked that i have blackdown-jdk already merged, but javac didn't worked, |
17 |
it didn't gave even -help message. I started to check all the files in |
18 |
/opt/blackdown-jdk-1.4.2.01, and compared them with extracted version |
19 |
of j2sdk-1_4_2_08-linux-i586.bin |
20 |
Finally i found out that there are few files that have different sizes. |
21 |
One of them was .properties file [i suppose it was intentionally |
22 |
changed by .ebuild] |
23 |
But the most surprise was that |
24 |
/opt/blackdown-jdk-1.4.2.01/jre/lib/rt.jar has size 0 bytes. |
25 |
I copied over one from self extracted .bin, checked javac, works... |
26 |
The results show, that you need to implement some kind of checking, |
27 |
are the merged files the same |
28 |
size as source. Or maybe there is bug/unhandled exception in copy |
29 |
procedure. Anyway, simple size-check could |
30 |
solve lot of problems. |
31 |
|
32 |
* --resume functionality preserving |
33 |
|
34 |
In the situation described above, i wanted to launch --unmerge j2sdk |
35 |
and merge it again, but that would |
36 |
break my existing [stopped] emerge -e system, and take a LOT of time - |
37 |
to do that again. Also in other cases, |
38 |
where in middle of emerge you find out that something is wrong, it |
39 |
could be very useful - to launch another |
40 |
emerge and preserving possibility to launch emerge --resume. I have |
41 |
idea how this could be implemented. |
42 |
|
43 |
Creating of files(dirs?) with status information, and telling their |
44 |
name if something goes wrong. |
45 |
IE, when something brokes, i have message: |
46 |
|
47 |
To resume this operation type |
48 |
emerge --resume 2005-06-19-01 |
49 |
|
50 |
and by default, --resume takes last of those files. |
51 |
|
52 |
Alternative could be - to allow to do emerge without overwriting |
53 |
--resume data [whereever this is stored now] |
54 |
ie |
55 |
emerge --holdresume j2sdk |
56 |
|
57 |
* Total package count with --resume |
58 |
|
59 |
Shouldn't it be the count of total packages before emerge has broken, |
60 |
not the count of packages installed |
61 |
in this launch. |
62 |
|
63 |
* while emerge -e system [hardened/x86/2.6 profile] i found out that |
64 |
Perl5 is required to build dev-libs/openssl-0.9.7e-r1 |
65 |
|
66 |
Doing emerge -p -v -t -e system showed that Perl5 will be built only |
67 |
after openssl [also on default-linux/x86/2005.0 profile], and it |
68 |
doesn't count that openssl-0.9.7e-r1.ebuld specifies |
69 |
DEPEND=">=dev-lang/perl-5" |
70 |
|
71 |
Maybe Perl5 needs to be added to bootstrap? |
72 |
|
73 |
Or at guilt is that i changed USE flags between bootstrap and emerge |
74 |
-e system? Does bootstrap looks for circular dependencies |
75 |
by using the USE flags? It should be said in manual (as warning) then. |
76 |
Or i shouldn't have set any USE flags during |
77 |
emerge system. But it's waste of time then, as generally all the |
78 |
packages i compile during emerge system i need to recompile later. |
79 |
|
80 |
This example of |
81 |
#emerge -p -v -t -e system shows it: |
82 |
|
83 |
[...skipped...] |
84 |
[ebuild N ] dev-lang/perl-5.8.5-r5 +berkdb -debug +doc -gdbm |
85 |
-ithreads -perlsuid 0 kB |
86 |
[ebuild N ] sys-devel/libperl-5.8.5 +berkdb -debug -gdbm |
87 |
-ithreads 0 kB |
88 |
[ebuild N ] sys-apps/groff-1.19.1-r2 -X -debug 2,567 kB |
89 |
[ebuild N ] sys-libs/db-4.2.52_p2 -bootstrap +doc +java |
90 |
-nocxx -tcltk 0 kB |
91 |
[ebuild N ] dev-java/blackdown-jdk-1.4.2.01-r2 +doc -mozilla 0 kB |
92 |
[ebuild N ] dev-java/java-config-1.2.11 15 kB |
93 |
[ebuild N f ] dev-java/java-sdk-docs-1.4.2 0 kB |
94 |
[ebuild N ] app-arch/unzip-5.50-r2 0 kB |
95 |
[ebuild N ] sys-libs/glibc-2.3.4.20041102-r1 -build -debug |
96 |
-erandom -hardened (-multilib) -nls -nomalloccheck -nptl -nptlonly |
97 |
-pic +userlocales 17,112 kB |
98 |
[ebuild N ] sys-kernel/linux-headers-2.6.8.1-r2 34,870 kB |
99 |
[ebuild N ] sys-devel/gcc-3.3.5.20050130-r1 (-altivec) |
100 |
-bootstrap -boundschecking -build -debug -fortran +gcj -gtk -hardened |
101 |
-ip28 (-multilib) -multislot (-n32) (-n64) -nls -nocxx -nopie -nossp |
102 |
-objc -static 23,639 kB |
103 |
[ebuild N ] sys-devel/binutils-2.15.92.0.2-r10 -debug |
104 |
-multislot -multitarget -nls -test 10,799 kB |
105 |
[ebuild N ] sys-devel/binutils-config-1.8-r2 0 kB |
106 |
[ebuild N ] sys-devel/gcc-config-1.3.11-r2 0 kB |
107 |
[ebuild N ] sys-apps/portage-2.0.51.19 -build -debug |
108 |
(-selinux) 277 kB |
109 |
[ebuild N ] dev-lang/python-2.3.5 -X +berkdb |
110 |
-bootstrap -build -debug +doc -gdbm -ipv6 +ncurses -nocxx +readline |
111 |
+ssl -tcltk -ucs2 0 kB |
112 |
[ebuild N ] dev-python/python-docs-2.3.5 1,213 kB |
113 |
[ebuild N ] dev-libs/expat-1.95.8 -test 310 kB |
114 |
[ebuild N ] dev-libs/openssl-0.9.7e-r1 -bindist |
115 |
-debug -emacs -test 0 kB |
116 |
[...skipped...] |
117 |
|
118 |
#emerge --version |
119 |
Portage 2.0.51.19 (default-linux/x86/2005.0, gcc-3.3.5-20050130, |
120 |
glibc-2.3.4.20041102-r1, 2.6.11-gentoo-r3-xAM i686) |
121 |
|
122 |
IMHO emerge's check for circular dependencies should catch this out. |
123 |
|
124 |
Executing |
125 |
|
126 |
#USE="-*" emerge perl |
127 |
solves problem, and allows to launch |
128 |
#emerge -e system |
129 |
|
130 |
In this case, preserving resume [as described above] would also be |
131 |
very helpful, as i had to re-emerge gcc and glibc again. |
132 |
|
133 |
* During bootstrap could be set +userlocales for glibc. |
134 |
|
135 |
As it takes very long time to build glibc with all the locales (at |
136 |
least on my Celeron466/32Mb :), |
137 |
it could be allowed to build glibc only with locales specified. As in |
138 |
manual, specifying locales |
139 |
is already before bootstrap. |
140 |
|
141 |
* Condensed list of possible USE flags during emerge -p |
142 |
|
143 |
How do i (and probably many other users) write USE flags: |
144 |
|
145 |
i do emerge -p -v <packages-to-install> |
146 |
then i read about every USE flag i see on screen, and adjust |
147 |
make.conf by my needs. |
148 |
|
149 |
A simple list in bottom of screen (whenever i set -v) would be very helpful |
150 |
as the flags very often repeats between packages. Look at example: |
151 |
|
152 |
gak ~ # /usr/lib/portage/bin/emerge-xam -p -v mc apache openssh tomcat |
153 |
|
154 |
These are the packages that I would merge, in order: |
155 |
|
156 |
Calculating dependencies ...done! |
157 |
[ebuild R ] app-misc/mc-4.6.0-r14 -7zip -X -debug +gpm +ncurses |
158 |
-nls -samba -slang +unicode 0 kB |
159 |
[ebuild R ] net-www/apache-2.0.54-r11 +apache2 -debug +doc +ldap |
160 |
-mpm-leader -mpm-peruser -mpm-prefork -mpm-threadpool -mpm-worker |
161 |
-no-suexec +ssl -static-modules -threads 0 kB |
162 |
[ebuild R ] net-misc/openssh-3.9_p1-r2 +X509 -chroot -debug -ipv6 |
163 |
-kerberos +ldap* -nocxx +pam* (-selinux) -sftplogging -skey -smartcard |
164 |
-static -tcpd 43 kB |
165 |
[ebuild R ] www-servers/tomcat-5.0.27-r6 +doc +jikes 0 kB |
166 |
|
167 |
Total size of downloads: 43 kB |
168 |
|
169 |
Total USE flags: 7zip X X509 apache2 chroot debug doc gpm ipv6 jikes |
170 |
kerberos ldap mpm-leader mpm-peruser mpm-prefork mpm-threadpool |
171 |
mpm-worker ncurses nls no-suexec nocxx pam samba selinux sftplogging |
172 |
skey slang smartcard ssl static static-modules tcpd threads unicode |
173 |
gak ~ # |
174 |
|
175 |
also - separation by local and global USE flags could be helpful, as |
176 |
well as different highlighting (and + or -) of flags specified in |
177 |
make.conf and portage/package.use |
178 |
|
179 |
Output above comes from modified portage, as i have good programming |
180 |
skills but low knowlede of python, |
181 |
i wriote initial implementation |
182 |
----------------- diff from emerge of Portage 2.0.51.19 |
183 |
1400a1401 |
184 |
> total_iuse=[] |
185 |
1506a1508 |
186 |
> total_iuse=total_iuse+(iuse_split) |
187 |
1639a1642 |
188 |
> |
189 |
1651a1655,1659 |
190 |
> totaluseflags="" |
191 |
> total_iuse.sort() |
192 |
> for f in portage_util.unique_array(total_iuse): |
193 |
> totaluseflags=totaluseflags+(" "+f) |
194 |
> print ("\nTotal USE flags:"+teal(totaluseflags)) |
195 |
----------------- end of diff |
196 |
I could continiue to develop this feature, and probably other features |
197 |
as well, but for summer i'll be totally offline, |
198 |
maybe in autumn i could help you more :) |
199 |
|
200 |
* Introducing of flags --buildonly and --merge |
201 |
|
202 |
Could be helpful for system administrators to have --buildonly, |
203 |
as this could be run in automated scripts, sending a mail when |
204 |
everything is compiled. |
205 |
Later when adminstrator comes to see the system, he can check the |
206 |
build errors/messages, |
207 |
and with total overview of everything (as it takes much shorter time |
208 |
than build) does --merge |
209 |
|
210 |
See scenario: |
211 |
|
212 |
#emerge --buildonly --deep world |
213 |
|
214 |
[..compiling...] |
215 |
|
216 |
Done. |
217 |
|
218 |
#emerge --merge |
219 |
|
220 |
I know, particulary this could be achieved by using ebuild, but that |
221 |
don't work on global targets |
222 |
as well as on dependencies. And ease of use would make this very popular. |
223 |
Multiple instances of --merge, as described by --resume (see above) |
224 |
would also be very appreciated. |
225 |
|
226 |
-- |
227 |
Atis Lezdins, |
228 |
IT Responsible of LBG Riga, |
229 |
atis@×××××××.org |
230 |
ICQ: 142239285 |
231 |
Phone: +371 6895370 [Tele2] |
232 |
|
233 |
-- |
234 |
gentoo-portage-dev@g.o mailing list |