View previous topic :: View next topic |
Author |
Message |
duff Guru
Joined: 19 Jun 2002 Posts: 466 Location: Clemson, SC
|
Posted: Wed Mar 19, 2003 2:36 pm Post subject: Emerge progress bar |
|
|
The other night I decided to try to get a progress bar into emerge...and I had some luck. It's not perfect, but if anybody wants it, its available here. Untar it, put it in your $PORTDIR_OVERLAY directory, and emerge it (it's a ~x86).
Just so there's no surprises, this is what the ebuild does. First, it's gets a copy of the make-3.80 sources and applies a small patch I wrote to it, and installs it as maketoo. Don't use program by itself, I've strip most of the output from it and removed some error checking. It's intened to only be used by portage, so I feel it's safe to assume the programs will make correctly. The second part of this ebuild installs a script called "make" into your /usr/lib/portage/bin/ directory. This is used to catch calls to make from ebuilds. If this script isn't called directly from emake or ebuild.sh, it will forward on to /usr/bin/make (ie. if it was invoked from a configure script).
The make script makes two calls to maketoo, the first to figure out how many commands it will execute, and the second performs the actual building while displaying the progress bar. The bar is mostly accurate, it's stopped at exactly 100% on almost every ebuild I tried...a few stopped at 99%, another went up to 101%. But even though its off by a little, I still find it useful.
One last thing, if for some reason it seems the new make script is screwing you over, set the NOPROGRESS variable to yes. (and please let me know about it!) Code: | # NOPROGRESS="yes" emerge foo |
If all goes well, you should see something like this:
[img:37c6f6c15c]http://www.ces.clemson.edu/~eduffy/prog.png[/img:37c6f6c15c]
Any and all comments are welcome, as are suggestions/fixes/improvements. I'm going away for a few days, so it may be a while before I respond. I'll keep working on it off and on to try to improve the accuracy. |
|
Back to top |
|
|
H-Pi Apprentice
Joined: 26 Jun 2002 Posts: 175 Location: Delft (NL)
|
Posted: Wed Mar 19, 2003 2:58 pm Post subject: |
|
|
the build went fine, but I don't get to see any bar when I emerge something, do I need to config something? |
|
Back to top |
|
|
Lowspirit Apprentice
Joined: 31 Jul 2002 Posts: 258 Location: Northern Sweden
|
Posted: Wed Mar 19, 2003 7:05 pm Post subject: |
|
|
This looks very interesting until someone tells me otherwise (got to be a reason it haven't been made before...or?). Especially for portage GUI like KPortage and Gnoportage, having access to current progress would make emerging stuff similar to you basic mozilla download, with progressbar and all. _________________ Gentoo | AMD X2 3800+ 2GB RAM | Kernel 2.6.30 . ReiserFS . CFQ . GCC4.3.3 | Firefox 3.5 | Gnome 2.26 w/ Compiz-Fusion
"Penguins are the only fish that can fly" |
|
Back to top |
|
|
dev Apprentice
Joined: 06 Jul 2002 Posts: 248 Location: San Antonio, TX
|
Posted: Wed Mar 19, 2003 9:10 pm Post subject: |
|
|
Works great, thanks! |
|
Back to top |
|
|
frippz Guru
Joined: 22 Aug 2002 Posts: 460 Location: Sweden
|
Posted: Wed Mar 19, 2003 9:13 pm Post subject: |
|
|
Work pretty great. Stopped at 11% once, but otherwise kinda nifty! |
|
Back to top |
|
|
H-Pi Apprentice
Joined: 26 Jun 2002 Posts: 175 Location: Delft (NL)
|
Posted: Wed Mar 19, 2003 10:15 pm Post subject: |
|
|
besides taht I don't get to see any bar, mozilla 1.3 won't build with this thing, has anyone else also tried this?
the build keeps hanging on "make WORKDIR=/var/tmp/portage/mozilla-1.3/work" |
|
Back to top |
|
|
dev Apprentice
Joined: 06 Jul 2002 Posts: 248 Location: San Antonio, TX
|
Posted: Wed Mar 19, 2003 10:20 pm Post subject: |
|
|
You know that the progress bar shows AFTER the ./configure portion right? It starts as soon as the compiling actually starts. So you won't see it right away. I'm about to test mozilla1.3 with it so I'll let you know.
edit:
Building Mozilla 1.3 does hang. Other than that everything else I've tested built fine.
Code: | creating pr/src/memory/Makefile
creating pr/src/misc/Makefile
creating pr/src/threads/Makefile
creating pr/tests/Makefile
creating pr/tests/dll/Makefile
creating pr/src/pthreads/Makefile
configure: warning: Recreating autoconf.mk with updated nspr-config output
* Building Mozilla...
make WORKDIR=/var/tmp/portage/mozilla-1.3/work
|
|
|
Back to top |
|
|
bleakcabal Guru
Joined: 10 Oct 2002 Posts: 301 Location: Montreal, Québec, Canada
|
Posted: Wed Mar 19, 2003 10:35 pm Post subject: |
|
|
This should be included in the next version of portage ! |
|
Back to top |
|
|
Sierra n00b
Joined: 13 Mar 2003 Posts: 48
|
Posted: Thu Mar 20, 2003 1:23 am Post subject: |
|
|
Pretty neat! I'm impressed! |
|
Back to top |
|
|
whitenoise Tux's lil' helper
Joined: 24 May 2002 Posts: 88 Location: Genoa , Italy
|
Posted: Thu Mar 20, 2003 1:12 pm Post subject: |
|
|
great! _________________ Gentoo Linux running on TyanMPX, 2* 1600+ AthlonMP, 4*256 Mb Crucial Registered DDR, Adaptec 29160, 2*18GB Fujitsu SCSI 10krpm, Nvidia geforce, SB Live!, 3com905TX, Zyxel 645R. |
|
Back to top |
|
|
TheCoop Veteran
Joined: 15 Jun 2002 Posts: 1814 Location: Where you least expect it
|
Posted: Thu Mar 20, 2003 5:30 pm Post subject: |
|
|
how does it deal with build errors? Does it print the last gcc command, the error msgs and exit or jsut exit to the prompt? _________________ 95% of all computer errors occur between chair and keyboard (TM)
"One World, One web, One program" - Microsoft Promo ad.
"Ein Volk, Ein Reich, Ein Führer" - Adolf Hitler
Change the world - move a rock |
|
Back to top |
|
|
Jarjar Apprentice
Joined: 21 Jul 2002 Posts: 265 Location: Sweden
|
Posted: Thu Mar 20, 2003 9:20 pm Post subject: |
|
|
Could use some bugfixing. 120% on compiling XFree86 and I'd guess about 2 hours remains.
Nice job though, I sure am gonna keep it if it continues working like it did on the other packages i tried. |
|
Back to top |
|
|
Schmolch l33t
Joined: 16 Jun 2002 Posts: 746 Location: Germany
|
Posted: Thu Mar 20, 2003 9:55 pm Post subject: |
|
|
Wow,
I have no idea how this thing works so i hope you dont mind if im just greenly impressed |
|
Back to top |
|
|
weijia n00b
Joined: 14 Sep 2002 Posts: 57
|
Posted: Fri Mar 21, 2003 2:27 am Post subject: |
|
|
Very nice program. Compiled it and installing KDE using this right now. |
|
Back to top |
|
|
H-Pi Apprentice
Joined: 26 Jun 2002 Posts: 175 Location: Delft (NL)
|
Posted: Fri Mar 21, 2003 10:24 am Post subject: |
|
|
ah, it works indeed, I think I just had but luck with the wrong packages, like mozilla, very nice!
this brings me to the idea that you could build in a estimated time average calculator, like wget has, or is the make-proces too non-linear for this? |
|
Back to top |
|
|
TheCoop Veteran
Joined: 15 Jun 2002 Posts: 1814 Location: Where you least expect it
|
Posted: Fri Mar 21, 2003 1:14 pm Post subject: |
|
|
for that you would have to do a test compile to determin how fast the system can compile a 1MB piece of C/C++ code then extrapolate that to the xMB compiles, although I suspect it would be a little more complicated than that _________________ 95% of all computer errors occur between chair and keyboard (TM)
"One World, One web, One program" - Microsoft Promo ad.
"Ein Volk, Ein Reich, Ein Führer" - Adolf Hitler
Change the world - move a rock |
|
Back to top |
|
|
H-Pi Apprentice
Joined: 26 Jun 2002 Posts: 175 Location: Delft (NL)
|
Posted: Fri Mar 21, 2003 1:24 pm Post subject: |
|
|
TheCoop wrote: | for that you would have to do a test compile to determin how fast the system can compile a 1MB piece of C/C++ code then extrapolate that to the xMB compiles, although I suspect it would be a little more complicated than that |
I thought the following:
every second (or some other interval, whatever), show 100 / n * t, where 'n' is the number of % in the bar and 't' is the time make has been busy on those n %
then after a couple %s, the ETA could be quite realistic I think
then you don't need test compiles, but it is only realistic when make is a bit linear, I don't know if that's the case |
|
Back to top |
|
|
ViCToR: n00b
Joined: 16 Aug 2002 Posts: 46 Location: Barcelona, ES
|
Posted: Fri Mar 21, 2003 1:44 pm Post subject: |
|
|
Would it be wrong to think that if a machine with 4000 Bogomips takes 4 hours to compile a certain package, a machine with 2000 Bogomips will take around the double of time? I know many other factors like hard disk speed, memory installed, etc have also something to say. But wouldn't it also be a good starting point? Correct me if I'm wrong. _________________ .:: ViCToR ::. |
|
Back to top |
|
|
The Jaff n00b
Joined: 14 Mar 2003 Posts: 26 Location: Sweden
|
Posted: Fri Mar 21, 2003 1:45 pm Post subject: Pretty cool. A few suggestions tho.. |
|
|
First off, a very kool (read geeky) hack.
I have a (picky) suggestion:
Would'nt it be more intiutive to have the 'noprogress'-switch like this instead:
Code: |
# PROGRESS="no" emerge foo
|
alt.
Code: |
# PROGRESSBAR="no" emerge foo
|
NOPROGRESS="yes" is a bit.. backwards, innit?
Of course, this would mean that PROGRESS="yes" should be the default.
I can also verify that it hangs when building mozilla (1.3). |
|
Back to top |
|
|
H-Pi Apprentice
Joined: 26 Jun 2002 Posts: 175 Location: Delft (NL)
|
Posted: Fri Mar 21, 2003 2:02 pm Post subject: |
|
|
ViCToR: wrote: | Would it be wrong to think that if a machine with 4000 Bogomips takes 4 hours to compile a certain package, a machine with 2000 Bogomips will take around the double of time? I know many other factors like hard disk speed, memory installed, etc have also something to say. But wouldn't it also be a good starting point? Correct me if I'm wrong. |
now just read what I said, and you see that you don't have to calculate in any factors |
|
Back to top |
|
|
H-Pi Apprentice
Joined: 26 Jun 2002 Posts: 175 Location: Delft (NL)
|
Posted: Fri Mar 21, 2003 3:39 pm Post subject: |
|
|
whoops, the make of xscreensaver goes a little too high (and it's still busy):
[img:62d5ddff86]http://elektron.its.tudelft.nl/~piguil09/Screenshot-1.jpg[/img:62d5ddff86]
I'm interested in which technique you used for the bar to calculate the percentages |
|
Back to top |
|
|
iKiddo Guru
Joined: 27 Jun 2002 Posts: 341 Location: Europe?
|
Posted: Fri Mar 21, 2003 4:13 pm Post subject: |
|
|
H-Pi wrote: | I'm interested in which technique you used for the bar to calculate the percentages |
duff wrote: | The make script makes two calls to maketoo, the first to figure out how many commands it will execute, and the second performs the actual building while displaying the progress bar. |
|
|
Back to top |
|
|
H-Pi Apprentice
Joined: 26 Jun 2002 Posts: 175 Location: Delft (NL)
|
Posted: Fri Mar 21, 2003 4:45 pm Post subject: |
|
|
iKiddo wrote: | H-Pi wrote: | I'm interested in which technique you used for the bar to calculate the percentages |
duff wrote: | The make script makes two calls to maketoo, the first to figure out how many commands it will execute, and the second performs the actual building while displaying the progress bar. |
|
duh
read my post again: which technique to calculate the percentages, not to split the make proces |
|
Back to top |
|
|
Lowspirit Apprentice
Joined: 31 Jul 2002 Posts: 258 Location: Northern Sweden
|
Posted: Sat Mar 22, 2003 10:46 am Post subject: |
|
|
Still interested in knowing if the Portage dev have been made aware of this? Have this been filed on Bugzilla cause it should (as an enhancement). Sure, I still haven't had a single compile end at 100% but they are usually very close, which is more then enough for me.
And if a compile fail I just recompile it with noprogress to see the error, no biggie. Hope it get merged into officiall portage, could be off by default until they had it working to their liking. _________________ Gentoo | AMD X2 3800+ 2GB RAM | Kernel 2.6.30 . ReiserFS . CFQ . GCC4.3.3 | Firefox 3.5 | Gnome 2.26 w/ Compiz-Fusion
"Penguins are the only fish that can fly" |
|
Back to top |
|
|
Jarjar Apprentice
Joined: 21 Jul 2002 Posts: 265 Location: Sweden
|
Posted: Sat Mar 22, 2003 11:15 am Post subject: |
|
|
H-Pi wrote: | iKiddo wrote: | H-Pi wrote: | I'm interested in which technique you used for the bar to calculate the percentages |
duff wrote: | The make script makes two calls to maketoo, the first to figure out how many commands it will execute, and the second performs the actual building while displaying the progress bar. |
|
duh
read my post again: which technique to calculate the percentages, not to split the make proces |
It tries to "figure out how many commands it will execute" and count the commands executed, I guess. |
|
Back to top |
|
|
|