Hello portage developers
I apologize about not using bugzilla, but i'm not so familiar with it,
and currently i have
very time-limited internet connection, so i write most of my mails
offline, and i can't affroad
checking for already posted bugs. Hope you will apreciate my effort,
and keep inform me (trough the ML) about further changes in those
areas, existing fixes, or just my stupidity :)
Maybe some of topics listed here are not corresponding to topic of
this ML, please let me know where they should be posted.
* verify of merged files
While emerging system i got build error that javac check [in configure] failed.
I checked that i have blackdown-jdk already merged, but javac didn't worked,
it didn't gave even -help message. I started to check all the files in
/opt/blackdown-jdk-1.4.2.01, and compared them with extracted version
of j2sdk-1_4_2_08-linux-i586.bin
Finally i found out that there are few files that have different sizes.
One of them was .properties file [i suppose it was intentionally
changed by .ebuild]
But the most surprise was that
/opt/blackdown-jdk-1.4.2.01/jre/lib/rt.jar has size 0 bytes.
I copied over one from self extracted .bin, checked javac, works...
The results show, that you need to implement some kind of checking,
are the merged files the same
size as source. Or maybe there is bug/unhandled exception in copy
procedure. Anyway, simple size-check could
solve lot of problems.
* --resume functionality preserving
In the situation described above, i wanted to launch --unmerge j2sdk
and merge it again, but that would
break my existing [stopped] emerge -e system, and take a LOT of time -
to do that again. Also in other cases,
where in middle of emerge you find out that something is wrong, it
could be very useful - to launch another
emerge and preserving possibility to launch emerge --resume. I have
idea how this could be implemented.
Creating of files(dirs?) with status information, and telling their
name if something goes wrong.
IE, when something brokes, i have message:
To resume this operation type
emerge --resume 2005-06-19-01
and by default, --resume takes last of those files.
Alternative could be - to allow to do emerge without overwriting
--resume data [whereever this is stored now]
ie
emerge --holdresume j2sdk
* Total package count with --resume
Shouldn't it be the count of total packages before emerge has broken,
not the count of packages installed
in this launch.
* while emerge -e system [hardened/x86/2.6 profile] i found out that
Perl5 is required to build dev-libs/openssl-0.9.7e-r1
Doing emerge -p -v -t -e system showed that Perl5 will be built only
after openssl [also on default-linux/x86/2005.0 profile], and it
doesn't count that openssl-0.9.7e-r1.ebuld specifies
DEPEND=">=dev-lang/perl-5"
Maybe Perl5 needs to be added to bootstrap?
Or at guilt is that i changed USE flags between bootstrap and emerge
-e system? Does bootstrap looks for circular dependencies
by using the USE flags? It should be said in manual (as warning) then.
Or i shouldn't have set any USE flags during
emerge system. But it's waste of time then, as generally all the
packages i compile during emerge system i need to recompile later.
This example of
#emerge -p -v -t -e system shows it:
[...skipped...]
[ebuild N ] dev-lang/perl-5.8.5-r5 +berkdb -debug +doc -gdbm
-ithreads -perlsuid 0 kB
[ebuild N ] sys-devel/libperl-5.8.5 +berkdb -debug -gdbm
-ithreads 0 kB
[ebuild N ] sys-apps/groff-1.19.1-r2 -X -debug 2,567 kB
[ebuild N ] sys-libs/db-4.2.52_p2 -bootstrap +doc +java
-nocxx -tcltk 0 kB
[ebuild N ] dev-java/blackdown-jdk-1.4.2.01-r2 +doc -mozilla 0 kB
[ebuild N ] dev-java/java-config-1.2.11 15 kB
[ebuild N f ] dev-java/java-sdk-docs-1.4.2 0 kB
[ebuild N ] app-arch/unzip-5.50-r2 0 kB
[ebuild N ] sys-libs/glibc-2.3.4.20041102-r1 -build -debug
-erandom -hardened (-multilib) -nls -nomalloccheck -nptl -nptlonly
-pic +userlocales 17,112 kB
[ebuild N ] sys-kernel/linux-headers-2.6.8.1-r2 34,870 kB
[ebuild N ] sys-devel/gcc-3.3.5.20050130-r1 (-altivec)
-bootstrap -boundschecking -build -debug -fortran +gcj -gtk -hardened
-ip28 (-multilib) -multislot (-n32) (-n64) -nls -nocxx -nopie -nossp
-objc -static 23,639 kB
[ebuild N ] sys-devel/binutils-2.15.92.0.2-r10 -debug
-multislot -multitarget -nls -test 10,799 kB
[ebuild N ] sys-devel/binutils-config-1.8-r2 0 kB
[ebuild N ] sys-devel/gcc-config-1.3.11-r2 0 kB
[ebuild N ] sys-apps/portage-2.0.51.19 -build -debug
(-selinux) 277 kB
[ebuild N ] dev-lang/python-2.3.5 -X +berkdb
-bootstrap -build -debug +doc -gdbm -ipv6 +ncurses -nocxx +readline
+ssl -tcltk -ucs2 0 kB
[ebuild N ] dev-python/python-docs-2.3.5 1,213 kB
[ebuild N ] dev-libs/expat-1.95.8 -test 310 kB
[ebuild N ] dev-libs/openssl-0.9.7e-r1 -bindist
-debug -emacs -test 0 kB
[...skipped...]
#emerge --version
Portage 2.0.51.19 (default-linux/x86/2005.0, gcc-3.3.5-20050130,
glibc-2.3.4.20041102-r1, 2.6.11-gentoo-r3-xAM i686)
IMHO emerge's check for circular dependencies should catch this out.
Executing
#USE="-*" emerge perl
solves problem, and allows to launch
#emerge -e system
In this case, preserving resume [as described above] would also be
very helpful, as i had to re-emerge gcc and glibc again.
* During bootstrap could be set +userlocales for glibc.
As it takes very long time to build glibc with all the locales (at
least on my Celeron466/32Mb :),
it could be allowed to build glibc only with locales specified. As in
manual, specifying locales
is already before bootstrap.
* Condensed list of possible USE flags during emerge -p
How do i (and probably many other users) write USE flags:
i do emerge -p -v <packages-to-install>
then i read about every USE flag i see on screen, and adjust
make.conf by my needs.
A simple list in bottom of screen (whenever i set -v) would be very helpful
as the flags very often repeats between packages. Look at example:
gak ~ # /usr/lib/portage/bin/emerge-xam -p -v mc apache openssh tomcat
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild R ] app-misc/mc-4.6.0-r14 -7zip -X -debug +gpm +ncurses
-nls -samba -slang +unicode 0 kB
[ebuild R ] net-www/apache-2.0.54-r11 +apache2 -debug +doc +ldap
-mpm-leader -mpm-peruser -mpm-prefork -mpm-threadpool -mpm-worker
-no-suexec +ssl -static-modules -threads 0 kB
[ebuild R ] net-misc/openssh-3.9_p1-r2 +X509 -chroot -debug -ipv6
-kerberos +ldap* -nocxx +pam* (-selinux) -sftplogging -skey -smartcard
-static -tcpd 43 kB
[ebuild R ] www-servers/tomcat-5.0.27-r6 +doc +jikes 0 kB
Total size of downloads: 43 kB
Total USE flags: 7zip X X509 apache2 chroot debug doc gpm ipv6 jikes
kerberos ldap mpm-leader mpm-peruser mpm-prefork mpm-threadpool
mpm-worker ncurses nls no-suexec nocxx pam samba selinux sftplogging
skey slang smartcard ssl static static-modules tcpd threads unicode
gak ~ #
also - separation by local and global USE flags could be helpful, as
well as different highlighting (and + or -) of flags specified in
make.conf and portage/package.use
Output above comes from modified portage, as i have good programming
skills but low knowlede of python,
i wriote initial implementation
----------------- diff from emerge of Portage 2.0.51.19
1400a1401
> total_iuse=[]
1506a1508
> total_iuse=total_iuse+(iuse_split)
1639a1642
>
1651a1655,1659
> totaluseflags=""
> total_iuse.sort()
> for f in portage_util.unique_array(total_iuse):
> totaluseflags=totaluseflags+(" "+f)
> print ("\nTotal USE flags:"+teal(totaluseflags))
----------------- end of diff
I could continiue to develop this feature, and probably other features
as well, but for summer i'll be totally offline,
maybe in autumn i could help you more :)
* Introducing of flags --buildonly and --merge
Could be helpful for system administrators to have --buildonly,
as this could be run in automated scripts, sending a mail when
everything is compiled.
Later when adminstrator comes to see the system, he can check the
build errors/messages,
and with total overview of everything (as it takes much shorter time
than build) does --merge
See scenario:
#emerge --buildonly --deep world
[..compiling...]
Done.
#emerge --merge
I know, particulary this could be achieved by using ebuild, but that
don't work on global targets
as well as on dependencies. And ease of use would make this very popular.
Multiple instances of --merge, as described by --resume (see above)
would also be very appreciated.
--
Atis Lezdins,
IT Responsible of LBG Riga,
[EMAIL PROTECTED]
ICQ: 142239285
Phone: +371 6895370 [Tele2]
--
[email protected] mailing list