Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Should emerge -uD world do revdep-rebuild?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo Chat
View previous topic :: View next topic  

Should emerge -uD world do revdep-rebuild?
Always
10%
 10%  [ 10 ]
With another flag (e.g. --revdep-rebuild (-R))
54%
 54%  [ 51 ]
No, it's fine as it is
35%
 35%  [ 33 ]
Total Votes : 94

Author Message
thawn
n00b
n00b


Joined: 31 Aug 2004
Posts: 41

PostPosted: Sun Jun 24, 2007 9:20 am    Post subject: Should emerge -uD world do revdep-rebuild? Reply with quote

Hi

recently I often had problems after an emerge -uD world. Most of them were fixed by revdep-rebuild (the rest was due to errors in ebuilds and fixed by emerge --sync :wink: )
So I just wondered whether it would make sense to make emerge run revdep-rebuild automatically in the background after emerge -uD world. This will take a little longer but fix a lot of issues and avoid a lot of puzzled users. I for my part will always run revdep-rebuild after emerge -uD world...

Just a little poll to hear some opinions...
Back to top
View user's profile Send private message
swimmer
Veteran
Veteran


Joined: 15 Jul 2002
Posts: 1330
Location: Netherlands

PostPosted: Sun Jun 24, 2007 9:59 am    Post subject: Reply with quote

Since I use already this script I opt for running it every time ;-)
Back to top
View user's profile Send private message
John R. Graham
Administrator
Administrator


Joined: 08 Mar 2005
Posts: 10590
Location: Somewhere over Atlanta, Georgia

PostPosted: Sun Jun 24, 2007 1:24 pm    Post subject: Reply with quote

I voted "No" as I am generally against making sharp tools dull.

- John
Back to top
View user's profile Send private message
SiberianSniper
Guru
Guru


Joined: 06 Apr 2006
Posts: 378
Location: Dayton, OH, USA

PostPosted: Sun Jun 24, 2007 2:51 pm    Post subject: Reply with quote

I've never really run into problems with emerge -uDN world. It's generally only when I mess things up on my own that I need revdep-rebuild. So my vote is no.
Back to top
View user's profile Send private message
jlh
Tux's lil' helper
Tux's lil' helper


Joined: 06 May 2007
Posts: 145
Location: Switzerland::Zürich

PostPosted: Sun Jun 24, 2007 5:42 pm    Post subject: Reply with quote

I never had any such problem. The only case where I ever needed revdep-rebuild is when I use --depclean. In my humble opinion, if after an emerge -uD you run into such problems, it should be considered a bug in the ebuild or whatever.
Back to top
View user's profile Send private message
tanderson
Retired Dev
Retired Dev


Joined: 11 Apr 2007
Posts: 193

PostPosted: Sun Jun 24, 2007 7:54 pm    Post subject: Reply with quote

jlh wrote:
I never had any such problem. The only case where I ever needed revdep-rebuild is when I use --depclean. In my humble opinion, if after an emerge -uD you run into such problems, it should be considered a bug in the ebuild or whatever.


No, it shouldn't, for this hypothetical(but very real)case:
X links against libY.
User upgrades libY, which messes up the linking.

This obviously has nothing to do with any ebuild, it is just a problem with building from source.

To the original poll, "No". Why? Because revdep-rebuild is located not in sys-apps/portage but in app-portage/gentoolkit, an 'optional' package. Revdep-rebuild is an optional program that is not needed for a working installation. Many users may never use revdep-rebuild.

Furthermore, running revdep-rebuild is not *always* necessary, so it shouldn't be run.
_________________
No Man is Just a Number!

--The Prisoner
Back to top
View user's profile Send private message
steveL
Watchman
Watchman


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

PostPosted: Tue Jun 26, 2007 1:57 am    Post subject: Reply with quote

I've read a couple of times recently (sorry I don't have any links) that the correct procedure for update is -uDN world followed by --depclean and then revdep-rebuild. Before that, I'd heard only about revdep-rebuild as recommended for libraries broken by package upgrade (which is what revdep itself states.) So we built that into update and are actually considering --depclean for the next version. (update only defaults to -uDN world && revdep when used with no options or a shortcut such as -s to sync first.)

Revdep can be a bit slow but in the context of system updates I never really notice it. Kojiro is working on a new version which is already 50% faster or something so I look forward to that :)

One thing we will definitely add is cruft-filtering of the revdep builds, most likely with the new revdep. It's really cool having etc-proposals btw, which I recommend, as it pops up in whichever desktop I'm on, telling me the update has finished successfully.

As for gentoolkit being optional it's one of the first things I and many others install (eg for equery or euse, or indeed revdep-rebuild.) But yeah, maybe the script should check for its existence (it still has the logic for checking for logger after all.. ;)
Back to top
View user's profile Send private message
thawn
n00b
n00b


Joined: 31 Aug 2004
Posts: 41

PostPosted: Mon Sep 17, 2007 10:59 am    Post subject: some comments Reply with quote

Thank you all for your comments!
I would like to renew the discussion a bit.
The existence of a script like update shows me, that this issue appears quite frequently.
To my opinion the fact that revdep-rebuild is not a default package is the best argument against making it default.
This could of course be easily resolved by integrating revdep-rebuild into the portage package.
I still think, making revdep-rebuild default when the -D option is set makes sense, since this can break things. I think this is especially important, since new users don't know that revdep-rebuild exists (or an option like -R) and just think its a bug.

So I still vote for extending the -D feature in a way that it recognizes if other packages depend on an updated library and updates them as well or throws a warning. This could be done by running revdep rebuild in the background, or by integrating the feature into portage.

I think this would save many people a lot of time and would help to give gentoo a more user friendly and less geeky image (which some people certainly enjoy: "I'm running Gentoo, see how well I know my linux". Admittedly I also like the respectful nods when I tell people I am running Gentoo on my server at home :wink: ).

As to making sharp tools dull: The sharpest of tools doesn't help you if you don't know it exists.
Back to top
View user's profile Send private message
Clete2
Guru
Guru


Joined: 09 Aug 2003
Posts: 530
Location: Bloomington, Illinois

PostPosted: Tue Sep 18, 2007 5:36 pm    Post subject: Reply with quote

I voted for a flag for it, but only because I'm lazy. Most people who just start out using Gentoo don't know about revdep-rebuild and how many problems it can fix. A flag would be nice, but is not necessary. We should not add bloat to Portage by making it run every time. That'll just make it slower than it already is. 99% of the time, nothing in my system breaks when I run emerge -uD world. I run emerge -uD world about once a week and sometimes more, so I have less problems than many people do.

A message at the end of the emerge saying "If something is broken, run revdep-rebuild first before asking for help!" would be nice... -- right along the "/etc has x files that need updating" message.
_________________
My Blog
Back to top
View user's profile Send private message
asturm
Developer
Developer


Joined: 05 Apr 2007
Posts: 8938

PostPosted: Tue Sep 18, 2007 8:10 pm    Post subject: Reply with quote

Clete2 wrote:
A message at the end of the emerge saying "If something is broken, run revdep-rebuild first before asking for help!" would be nice... -- right along the "/etc has x files that need updating" message.

[X] signed.

Either that or portage could notice a major change of a library and print the message just in such cases.
Back to top
View user's profile Send private message
steveL
Watchman
Watchman


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

PostPosted: Wed Sep 19, 2007 10:44 am    Post subject: Reply with quote

Clete2 wrote:
A message at the end of the emerge saying "If something is broken, run revdep-rebuild first before asking for help!" would be nice... -- right along the "/etc has x files that need updating" message.

I would find that really annoying personally, since it wouldn't be telling me action was needed like the config file warning does. Portage has a preserve-libs option now, which I think is down to the ebuild maintainer to use (I think) and tracks libraries so a lib won't be removed if it's still linked to. (This might be only in the testing one, not sure.)
Back to top
View user's profile Send private message
padoor
Advocate
Advocate


Joined: 30 Dec 2005
Posts: 4185
Location: india

PostPosted: Wed Sep 19, 2007 11:52 am    Post subject: Reply with quote

out of 10 emerge -Du world i have seen atleast 3 times it needs to run revdep-rebuild due to various reasons

if only it were :)
so i would like an emerge command with -R flag to do this function .
2 times i have been asked by the running emerge world in the middle of a session and then continue to emerge rest of it.
now if you run revdep-rebuild every time it will be a waste of time while for a long time we wait untill something breaks then only we usually run it
it would be very convenient like the fsck runs after number of mounts if revdep-rebuild made automatic check for broken installation of any package . time dependent? no kernel should have a routine to find problem and prompt for revdep-rebuild or run it by force.
that would save lot of trouble ahen too many packages break all of a sudden.
the above are probably my dreams / musings :D
_________________
reach out a little bit more to catch it (DON'T BELIEVE the advocate part under my user name)
Back to top
View user's profile Send private message
VforVendetta
n00b
n00b


Joined: 15 Sep 2007
Posts: 3
Location: Land of the Scots

PostPosted: Wed Sep 19, 2007 5:45 pm    Post subject: Reply with quote

I like padoor's suggestion.

I'd like it to have a revdep-rebuild flag set up, so that the command can be incorporated into an emerge operation. If the command could be invoked, when a fixable error condition is present, then so much the better.

Especially helpful, would be the option to set a flag 'Invoke_Revdep=[yes,no]' or similar, in /etc/make.conf, so that emerge would automatically read the variable and invoke revdep-rebuild IF the build error condition was met.

People who don't have revdep-rebuild installed, would have the command bypassed during an emerge.
People who do have revdep-rebuild, would have the simplicity of not having to invoke the command (with an emerge flag) explicitly, each time they utilised emerge.

Customisable...the Gentoo way.
Back to top
View user's profile Send private message
dmpogo
Advocate
Advocate


Joined: 02 Sep 2004
Posts: 3267
Location: Canada

PostPosted: Wed Sep 19, 2007 6:02 pm    Post subject: Reply with quote

I think there is a some mismatch between revdep-rebuild and emerge functionalities, and probably it would be good if revdep-rebuild would be part of emerge but as additional flags. Perhaps even flags that can be forced by some packages !

The situation with libexpat highlighted this of course. You run
Code:

emerge -pvuD world

and everything looks dandy. Then you run
Code:

emerge -uD world

and it fails. expat gets updated early in the list, and then pango and gtk+ fail, because they rely on test programs from fontconfig which was not in the update list and is still compiled against now non-existent libexpat.so.0. And you have never seen revdep-rebuild warning before the crash actually occured.
Back to top
View user's profile Send private message
tabanus
l33t
l33t


Joined: 11 Jun 2004
Posts: 638
Location: UK

PostPosted: Wed Sep 19, 2007 6:39 pm    Post subject: Reply with quote

I voted "with another flag". Actually I'd probably set it in FEATURES.

My reasoning is this, when a portage update comes up in emerge -u world, it says something like: emerge with halt after this package then re-calculate the package order. I'd have a package that requires revdep-rebuild after it say something like this:

emerge will halt after this package and run revdep-rebuild <package, soname, whatever> before resuming. i.e. I would have it run in the middle of the emerge run, where it's appropriate, before continuing with the other packages. This would have sorted most of the problems with the expat update (assuming revdep-rebuild actually generated the correct package order, which it didn't for expat).
_________________
Things you might say if you never took Physics: "I'm overweight even though I don't overeat." - Neil deGrasse Tyson
Back to top
View user's profile Send private message
dmpogo
Advocate
Advocate


Joined: 02 Sep 2004
Posts: 3267
Location: Canada

PostPosted: Wed Sep 19, 2007 11:09 pm    Post subject: Reply with quote

tabanus wrote:
I voted "with another flag". Actually I'd probably set it in FEATURES.

My reasoning is this, when a portage update comes up in emerge -u world, it says something like: emerge with halt after this package then re-calculate the package order. I'd have a package that requires revdep-rebuild after it say something like this:

emerge will halt after this package and run revdep-rebuild <package, soname, whatever> before resuming. i.e. I would have it run in the middle of the emerge run, where it's appropriate, before continuing with the other packages. This would have sorted most of the problems with the expat update (assuming revdep-rebuild actually generated the correct package order, which it didn't for expat).


Exactly !
Back to top
View user's profile Send private message
thawn
n00b
n00b


Joined: 31 Aug 2004
Posts: 41

PostPosted: Thu Sep 20, 2007 8:20 am    Post subject: Reply with quote

So, let me reformulate my feature request (or is it a bug fix ;-):
How about some information in the ebuilds of libraries that change their binary names.
If this information is present, portage should also reemerge all packages that depend on this library.
I think this calculation could be done even before starting the actual emerge so the reemerges would show up during emerge -puDv world.
This way the extra calculation time would only occur when it is actually necessary.
This should prevent problems during updating 99% of the time and make updates run much more smoothly.

Especially after the expat update every Gentoo user should be aware of the broken link problems. No matter how frequently you update your system, if an important library changes a binary name, your system will break, unless you reemerge all packages that depend on tis library.
Back to top
View user's profile Send private message
padoor
Advocate
Advocate


Joined: 30 Dec 2005
Posts: 4185
Location: india

PostPosted: Thu Sep 20, 2007 8:43 am    Post subject: Reply with quote

the broken condition must be notified by the running emerge -Du world command.
the halt of emerge under such condition is already present. i think.
i have seen emerge -Du world terminates itself for various conditions including broken or use flag limitation or requirements.
if a notification to run revdep-rebuild when becomes necessary may be incorporated in the emerge command. like several other warnings it gives. or like update all your config files at the end of an emerge session
_________________
reach out a little bit more to catch it (DON'T BELIEVE the advocate part under my user name)
Back to top
View user's profile Send private message
hielvc
Advocate
Advocate


Joined: 19 Apr 2002
Posts: 2805
Location: Oceanside, Ca

PostPosted: Thu Sep 20, 2007 6:22 pm    Post subject: Reply with quote

Reasons against
1. If you make it a flag then gentoolkit HAS TO BE installed when portage is.
2. You are making a mistake thinking that people are going to read " man portage " and " man emerge "
3. So what you say. If they dont want to learn how to take care of their NIX box then they should run windows. The idea behind UNIX is small tools that do one thing well, so we are getting there :wink:

If you want to run revdep-rebuild after emerge <whatever> then make an function in your .bashrc
Code:
function emdep(){ emerge $1 $2 ; revdep-rebuild
}

You would run it like this " emdep world -uDN "
_________________
An A-Z Index of the Linux BASH command line
Back to top
View user's profile Send private message
tabanus
l33t
l33t


Joined: 11 Jun 2004
Posts: 638
Location: UK

PostPosted: Thu Sep 20, 2007 6:37 pm    Post subject: Reply with quote

hielvc wrote:
If you want to run revdep-rebuild after emerge <whatever> then make an function in your .bashrc
Code:
function emdep(){ emerge $1 $2 ; revdep-rebuild
}

You would run it like this " emdep world -uDN "


But wouldn't that run revdep-rebuild whether it was needed or not?

Oh and...how can anyone maintain a Gentoo system without the gentoolkit?
_________________
Things you might say if you never took Physics: "I'm overweight even though I don't overeat." - Neil deGrasse Tyson
Back to top
View user's profile Send private message
hielvc
Advocate
Advocate


Joined: 19 Apr 2002
Posts: 2805
Location: Oceanside, Ca

PostPosted: Thu Sep 20, 2007 6:58 pm    Post subject: Reply with quote

Yup. So if'n you dont want to run revdep-rebuild every time then just run emerge and if you do that then maybe when you think that you should run revdep then you can just run it too :lol:

Question #2 lots of people. Just look at all the peeps who post their emerge --info and are still running gcc-3.3.6.
_________________
An A-Z Index of the Linux BASH command line
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 Sep 21, 2007 4:34 pm    Post subject: Reply with quote

thawn wrote:
So, let me reformulate my feature request (or is it a bug fix ;-):

According to this post it's coming in Portage 2.2.
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
Page 1 of 1

 
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