Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Feature request: Emerge Progress
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Gentoo Chat
View previous topic :: View next topic  
Author Message
InfoManiac
n00b
n00b


Joined: 23 Jan 2006
Posts: 53

PostPosted: Wed Mar 14, 2007 10:48 pm    Post subject: Feature request: Emerge Progress Reply with quote

It would be nice to have a progress indicator of some type built into Portage to show progress of:

sanity checks,
package configuration,
gcc compilation status,
progress of all objects being built,
overall progress,
how many packages left to go

As compared to some third party script that someone wrote long time ago, that sort of works but isn't guaranteed to work with portage.

Having this functionality being integrated so that when the status of where everything is at called by a script would be easily obtained.

That way you can know when to go do something else for a while or if things are wrapping up and time to do configs, etc. and return to working with the system.
_________________
GIT-RRRR-DOOOONE!
Back to top
View user's profile Send private message
Conan
Guru
Guru


Joined: 02 Nov 2004
Posts: 360

PostPosted: Wed Mar 14, 2007 10:56 pm    Post subject: Reply with quote

Its not possible to predict. There are two ways to take a stab at it but both have failings.
Back to top
View user's profile Send private message
InfoManiac
n00b
n00b


Joined: 23 Jan 2006
Posts: 53

PostPosted: Thu Mar 15, 2007 12:13 am    Post subject: Reply with quote

Hmmmm.....I wonder if there is a way to possibly make a patch to all make, automake and gcc related packages that would either hack this in or make it so when a call is made portage can split off a separate process, or temporarily pause the current emerge and have it scan where it's at, what's done, what's not, etc.

However you've worked with this much more than I so I haven't any idea how any of this would work, if at all.
_________________
GIT-RRRR-DOOOONE!
Back to top
View user's profile Send private message
Conan
Guru
Guru


Joined: 02 Nov 2004
Posts: 360

PostPosted: Thu Mar 15, 2007 1:11 am    Post subject: Reply with quote

Wait--do you want progress of each phase or simply more detailed feedback of which phase things are in? The former is pretty much impossible to get right; the latter already occurs for most phases (xterm title updates)--though it doesn't inform on all phases.
Back to top
View user's profile Send private message
Dralnu
Veteran
Veteran


Joined: 24 May 2006
Posts: 1919

PostPosted: Thu Mar 15, 2007 1:35 am    Post subject: Reply with quote

If you want something to tell you how long an emerge will take - generally you can get an idea by the size of the download (has been my case, anyways).
_________________
The day Microsoft makes a product that doesn't suck, is the day they make a vacuum cleaner.
Back to top
View user's profile Send private message
jpmayer87
n00b
n00b


Joined: 19 Mar 2006
Posts: 51
Location: Troy, NY

PostPosted: Thu Mar 15, 2007 1:54 am    Post subject: Reply with quote

Take a look at genlop. it's in portage.
Back to top
View user's profile Send private message
InfoManiac
n00b
n00b


Joined: 23 Jan 2006
Posts: 53

PostPosted: Fri Mar 16, 2007 6:19 pm    Post subject: Reply with quote

Conan wrote:
Wait--do you want progress of each phase or simply more detailed feedback of which phase things are in? The former is pretty much impossible to get right; the latter already occurs for most phases (xterm title updates)--though it doesn't inform on all phases.


More detailed feedback, so that when you are emerging world or (God forbid) something big like GCC, so I can check back as often as I like and see where the current package is as well as how many packages it has to go, and if it's able to provide it's best ETA for emerge to finish on the current package and how long the others will take.

Basically what I am requesting, more detailed all the objects, configs, etc. just for shits and giggles.

So I supposed to answer your question, I am looking for both.
_________________
GIT-RRRR-DOOOONE!
Back to top
View user's profile Send private message
Dralnu
Veteran
Veteran


Joined: 24 May 2006
Posts: 1919

PostPosted: Sat Mar 17, 2007 4:06 am    Post subject: Reply with quote

InfoManiac wrote:
Conan wrote:
Wait--do you want progress of each phase or simply more detailed feedback of which phase things are in? The former is pretty much impossible to get right; the latter already occurs for most phases (xterm title updates)--though it doesn't inform on all phases.


More detailed feedback, so that when you are emerging world or (God forbid) something big like GCC, so I can check back as often as I like and see where the current package is as well as how many packages it has to go, and if it's able to provide it's best ETA for emerge to finish on the current package and how long the others will take.

Basically what I am requesting, more detailed all the objects, configs, etc. just for shits and giggles.

So I supposed to answer your question, I am looking for both.


Use screen and/or xterm. It should give you the current package number out of the total and the current step.
_________________
The day Microsoft makes a product that doesn't suck, is the day they make a vacuum cleaner.
Back to top
View user's profile Send private message
InfoManiac
n00b
n00b


Joined: 23 Jan 2006
Posts: 53

PostPosted: Sun Mar 18, 2007 9:20 pm    Post subject: Reply with quote

Yeah, I am aware of that , but it is the later that you mentioned I was inquiring on.

Is it possible for future builds of Portage to have this, and Mask a certain sub-version number of it until it's ready?
_________________
GIT-RRRR-DOOOONE!
Back to top
View user's profile Send private message
rane
Retired Dev
Retired Dev


Joined: 03 Mar 2004
Posts: 306
Location: Warsaw, Poland

PostPosted: Sat Jun 23, 2007 8:08 am    Post subject: Reply with quote

Try this:

Code:
$ watch qlop -Cc

Every 2.0s: qlop -Cc                                              Sat Jun 23 10:08:01 2007

 * dev-libs/openssl-0.9.8e-r1.ebuild::gentoo
     started: Sat Jun 23 10:07:51 2007
     elapsed: 9 seconds
     avg build time: 4 minutes, 53 seconds
Back to top
View user's profile Send private message
smono927
n00b
n00b


Joined: 03 Jul 2005
Posts: 13

PostPosted: Wed Jun 27, 2007 6:29 pm    Post subject: qlop output Reply with quote

Hey rane,

Output from "qlop -Cc" doesn't include average build time:
Code:
* xorg-server-1.2.0-r3
     started: Wed Jun 27 14:16:26 2007
     elapsed: 11 minutes, 7 seconds

qlop is version 1.36, as part of portage-utils version 0.1.23

Is there an updated version of qlop, or am I missing some setting?
Back to top
View user's profile Send private message
Genone
Retired Dev
Retired Dev


Joined: 14 Mar 2003
Posts: 9605
Location: beyond the rim

PostPosted: Fri Jun 29, 2007 2:37 am    Post subject: Reply with quote

Compilation progress bars have to be implemented in the build system (make, ant, ...), not in portage.
Back to top
View user's profile Send private message
coolsnowmen
Veteran
Veteran


Joined: 30 Jun 2004
Posts: 1479
Location: No.VA

PostPosted: Fri Jun 29, 2007 3:10 am    Post subject: Re: qlop output Reply with quote

smono927 wrote:
Hey rane,

Output from "qlop -Cc" doesn't include average build time:
Code:
* xorg-server-1.2.0-r3
     started: Wed Jun 27 14:16:26 2007
     elapsed: 11 minutes, 7 seconds

qlop is version 1.36, as part of portage-utils version 0.1.23

Is there an updated version of qlop, or am I missing some setting?


if its anything like genlop -c....then it only estimates build time based on past build times...so if you've never emerged the package before, then it won't help you.

PS, I understand the mentality...but thats what solitaire games are for...
_________________
emerge: there are no ebuilds to satisfy "moo"
Back to top
View user's profile Send private message
steveL
Watchman
Watchman


Joined: 13 Sep 2006
Posts: 5153
Location: The Peanut Gallery

PostPosted: Fri Jun 29, 2007 1:43 pm    Post subject: Re: qlop output Reply with quote

smono927 wrote:
Output from "qlop -Cc" doesn't include average build time
Is there an updated version of qlop, or am I missing some setting?

Try qlop -Ht
Back to top
View user's profile Send private message
smono927
n00b
n00b


Joined: 03 Jul 2005
Posts: 13

PostPosted: Fri Jun 29, 2007 6:52 pm    Post subject: Re: qlop output Reply with quote

coolsnowmen wrote:
...

if its anything like genlop -c....then it only estimates build time based on past build times...so if you've never emerged the package before, then it won't help you.

PS, I understand the mentality...but thats what solitaire games are for...

I know it's based on past build times for my own machine:
Code:
MiBox ~ # qlop -tH xorg-server
xorg-server: 2 hours, 49 minutes, 40 seconds for 3 merges

I was wondering why output from "qlop -Cc" doesn't include known average build times like rane's.
steveL wrote:
Try qlop -Ht

This requires a package argument, and doesn't work when combined with "-c" for the current package :(
Back to top
View user's profile Send private message
BigBrain
n00b
n00b


Joined: 02 Jun 2007
Posts: 63

PostPosted: Sat Aug 18, 2007 6:14 pm    Post subject: Reply with quote

I'd like to have something like a progress bar, too:
Wouldn't it be possible to parse the makefile and count the number of source files that need to be compiled and write after each compiled file how many are left?
This would also be very nice at the configure script!
Back to top
View user's profile Send private message
steveL
Watchman
Watchman


Joined: 13 Sep 2006
Posts: 5153
Location: The Peanut Gallery

PostPosted: Sat Aug 18, 2007 6:54 pm    Post subject: Reply with quote

Hmm someone in #bash who used to run gentoo had a script to do just this, based on source files compiled. We were talking about adding it to update, but the thing is that it would slow your emerge down. Wouldn't an estimate of how long it was going to take, based on prior emerge times (with qlop) be enough? (That in itself is a bit dodgy since it includes emerges which didn't succeed.)

I guess we could look at incorporating lhunath's thing if enough people wanted it, as an option. Personally I wouldn't want to use it.
Back to top
View user's profile Send private message
Genone
Retired Dev
Retired Dev


Joined: 14 Mar 2003
Posts: 9605
Location: beyond the rim

PostPosted: Sat Aug 18, 2007 7:45 pm    Post subject: Reply with quote

BigBrain wrote:
I'd like to have something like a progress bar, too:
Wouldn't it be possible to parse the makefile and count the number of source files that need to be compiled and write after each compiled file how many are left?
This would also be very nice at the configure script!

Genone wrote:
Compilation progress bars have to be implemented in the build system (make, ant, ...), not in portage.
Back to top
View user's profile Send private message
BigBrain
n00b
n00b


Joined: 02 Jun 2007
Posts: 63

PostPosted: Sat Aug 18, 2007 8:06 pm    Post subject: Reply with quote

Oh I'm sorry, must have missed that :oops:
Back to top
View user's profile Send private message
Mantaar
Apprentice
Apprentice


Joined: 17 May 2007
Posts: 219

PostPosted: Sat Aug 18, 2007 8:24 pm    Post subject: Reply with quote

There are build systems that already include progress indicators, but they're not widely used. Back then, when the standard stuff was implemented such functionality wasn't that much of a big concern.

A recent Gentoo Newsletter featured some information on how you can find out the past average build times of certain packages or fetch the information for your processor type via Internet. The results are blurry though:
Code:
$ genlop -t mozilla-firefox
 * www-client/mozilla-firefox

     Sat Jul  7 22:43:24 2007 >>> www-client/mozilla-firefox-2.0.0.4
       merge time: 31 minutes and 30 seconds.

     Wed Jul 25 00:31:18 2007 >>> www-client/mozilla-firefox-2.0.0.5
       merge time: 1 hour, 6 minutes and 15 seconds.

     Thu Aug  2 18:22:20 2007 >>> www-client/mozilla-firefox-2.0.0.6
       merge time: 1 hour, 19 minutes and 5 seconds.

     Wed Aug  8 21:51:22 2007 >>> www-client/mozilla-firefox-2.0.0.6
       merge time: 1 hour, 6 minutes and 24 seconds.

As you can see, merge times vary considerably, depending on the load of the machine during build time.

One could imagine an extension to portage that would take this information into account to show an estimated build time (though it would be nice if this was taking a look at the load averages periodically, since they have a vast influence on how long the build is going to take)... this could be displayed in the xterm title...
_________________
Error compiling committee.c: too many arguments to function.
Back to top
View user's profile Send private message
Dralnu
Veteran
Veteran


Joined: 24 May 2006
Posts: 1919

PostPosted: Sat Aug 18, 2007 11:53 pm    Post subject: Reply with quote

Mantaar wrote:
There are build systems that already include progress indicators, but they're not widely used. Back then, when the standard stuff was implemented such functionality wasn't that much of a big concern.

A recent Gentoo Newsletter featured some information on how you can find out the past average build times of certain packages or fetch the information for your processor type via Internet. The results are blurry though:
Code:
$ genlop -t mozilla-firefox
 * www-client/mozilla-firefox

     Sat Jul  7 22:43:24 2007 >>> www-client/mozilla-firefox-2.0.0.4
       merge time: 31 minutes and 30 seconds.

     Wed Jul 25 00:31:18 2007 >>> www-client/mozilla-firefox-2.0.0.5
       merge time: 1 hour, 6 minutes and 15 seconds.

     Thu Aug  2 18:22:20 2007 >>> www-client/mozilla-firefox-2.0.0.6
       merge time: 1 hour, 19 minutes and 5 seconds.

     Wed Aug  8 21:51:22 2007 >>> www-client/mozilla-firefox-2.0.0.6
       merge time: 1 hour, 6 minutes and 24 seconds.

As you can see, merge times vary considerably, depending on the load of the machine during build time.

One could imagine an extension to portage that would take this information into account to show an estimated build time (though it would be nice if this was taking a look at the load averages periodically, since they have a vast influence on how long the build is going to take)... this could be displayed in the xterm title...


I don't know how much work it would take, but what about keeping up with how much time the program spent in the CPU compiling, instead of working from a start/stop time?
_________________
The day Microsoft makes a product that doesn't suck, is the day they make a vacuum cleaner.
Back to top
View user's profile Send private message
Mantaar
Apprentice
Apprentice


Joined: 17 May 2007
Posts: 219

PostPosted: Sun Aug 19, 2007 12:22 am    Post subject: Reply with quote

Well, it's not all about CPU-time... there's disk IO and other stuff (ooo takes a whole lot of time to actually install.

But measuring the CPU-time instead of real time is probably not a bad idea. I must admit, however, that I don't know enough about the topic to really predict how hard/easy all of this may be...
_________________
Error compiling committee.c: too many arguments to function.
Back to top
View user's profile Send private message
Genone
Retired Dev
Retired Dev


Joined: 14 Mar 2003
Posts: 9605
Location: beyond the rim

PostPosted: Sun Aug 19, 2007 12:56 am    Post subject: Reply with quote

There would be three parts to that:
a) how to measure it? This isn't only about the implementation, but also semantic decisions (like which phases should be measured).
b) how to export it? Existing system uses timestamps in emerge.log to calculate the duration of a build, to export the duration directly you'd have to find another way (without breaking existing tools)
c) adjust tools to use the new system. This should be the easiest part.
Back to top
View user's profile Send private message
Dralnu
Veteran
Veteran


Joined: 24 May 2006
Posts: 1919

PostPosted: Sun Aug 19, 2007 5:59 am    Post subject: Reply with quote

While disk I/O is a serious part of all this, getting an idea on the time spent in the CPU to try and figure out the time needed to compile would be one thing. Trying to measure the I/O required might be going overboard, since I've got a feeling most of us can, after awhile, figure about how long it would take to copy a file from point A to point B and back, but thats coming from a guy who can give you an idea on how long it will take to compile a program based on downloaded size on his own system.

@Genone:

A) That would be the hard part of it all. I'd probably suggest measuring the time needed to run the ./config script (if there is one, and if this would be reasonably doable), otherwise I'd probably suggest just measuring the whole make proccess itself and call it good.
B) Without knowing alot of the internals, I wouldn't even begin to try and figure that one out. Maybe export is as a count of CPU cycles into emerge.log?
_________________
The day Microsoft makes a product that doesn't suck, is the day they make a vacuum cleaner.
Back to top
View user's profile Send private message
steveL
Watchman
Watchman


Joined: 13 Sep 2006
Posts: 5153
Location: The Peanut Gallery

PostPosted: Mon Aug 20, 2007 10:45 am    Post subject: Reply with quote

Genone wrote:
There would be three parts to that:
a) how to measure it? This isn't only about the implementation, but also semantic decisions (like which phases should be measured).
b) how to export it? Existing system uses timestamps in emerge.log to calculate the duration of a build, to export the duration directly you'd have to find another way (without breaking existing tools)
c) adjust tools to use the new system. This should be the easiest part.

Personally I don't think it's worth trying to measure individual phases, and I'd be happy if there was just an indicator based on prior successful builds (as opposed to every time emerge had been run for the package) but I don't see this as the job of the package manager as it stands now. I really think it's worth separating what portage does now (maintaining the installation in a sane state, resolving dependencies and building packages) from higher-level stuff which users ask for (effectively automating as much of the decision-making wrt running the package manager, in terms of failures, unblocking and the like, and ofc presentation.) The latter is newer stuff and at a different level to the complexities portage currently manages very well.

It's a natural separation which makes it easier for people coding either side of the line, since they don't have to worry about a whole set of responsibilities, and portage has always had a good API for scriptwriters (where the API is ofc how the commands are run, what parameters they take and which environment variables affect the process, as well as the content of configuration files.) Portage also has an effective Python API which is used by other tools already.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo Chat All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum