Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 73978 - revdep-rebuild should optionally call other updater/cleaner/rebuilder utils (like python/perl/etc...)
Summary: revdep-rebuild should optionally call other updater/cleaner/rebuilder utils (...
Status: CONFIRMED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Tools (show other bugs)
Hardware: All All
: High enhancement with 1 vote (vote)
Assignee: Portage Tools Team
URL:
Whiteboard:
Keywords:
: 68859 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-12-09 21:39 UTC by John Altstadt
Modified: 2019-08-19 05:33 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John Altstadt 2004-12-09 21:39:30 UTC
Due to the ongoing life of bug #11359, most people will never see the enotice to run python-updater. Since there is an externally documented method of rebuilding stuff that was affected by a library build, namely revdep-rebuild, I propose calling python-updater from revdep-rebuild.

See also bug #73932 for a perl version of this. Here starts my campaign to get everything added to revdep-rebuild.


Reproducible: Always
Steps to Reproduce:
1. emerge an old version of python
2. emerge world
3. nobody sees the enotice to run python-updater

Actual Results:  
Things were mysteriously broken.


Expected Results:  
The script used to clean up after the python upgrade should have been called
from revdep-rebuild. The revdep-rebuild tool is documented in the gentoolkit
section (and many other places), so many (most? all?) people should be running
it on a regular basis anyway. The python cleanup script should use the same
command options as revdep-rebuild.


This has been distilled from bugs #68848 and #68859. It is similar to bug #73932.
Comment 1 John Altstadt 2004-12-09 21:45:23 UTC
*** Bug 68859 has been marked as a duplicate of this bug. ***
Comment 2 Paul Varner (RETIRED) gentoo-dev 2005-06-04 18:52:02 UTC
python herd, what are your thoughts on this?  I am very hesitant to add this
type of functionality when python-updater is not installed to /usr/bin or /usr/sbin
Comment 3 Alastair Tse (RETIRED) gentoo-dev 2005-06-10 07:57:44 UTC
hrmm, python-updater is in /usr/sbin .. 

i'm not opposed to this, but i'd rather see a more concerted effort to making a generic tool to clean up 
after portage, or if not, all some api to control portage from within an ebuild. all these tools such as 
revdep-rebuild and python-updater were designed as temporary solutions until portage gets reverse 
dependencies. since that is still quite far off from the looks of things, maybe we should have a nice 
framework for devs to signal things might need rebuilding.

(btw, i apologise if i under-estimated the reverse dependency capabilities of portage-ng, i have no 
experience on that at all. please correct me if i'm wrong)
Comment 4 Paul Varner (RETIRED) gentoo-dev 2005-06-10 13:51:48 UTC
Your're right it is in /usr/sbin.  I think when I went looking, I looked for
python_updater instead (/me feels stupid).

As far as moving forward, I still see all of these tools as temporary.  However,
since we are still aways off from portage-2.1 with reverse dependency checking
built in, I would like to spend the time to make these tools as simple, robust,
and dependable as possible. This is for two reasons, no one likes a broken
system, and it gives us practical experience on what will need to be handled by
portage when the time comes for it to be integrated.

As far as integrating, my current plan would be to add a --python flag to
revdep-rebuild which just serves as a wrapper to python-updater.
Comment 5 Carsten Lohrke (RETIRED) gentoo-dev 2005-06-10 17:43:42 UTC
>However, since we are still aways off from portage-2.1 with reverse dependency
checking built in

I was under the assuption that this wouldn't be a feature for Portage 2.1!?
Counting the number of incorrect or incorrectly stored dependencies in ebuilds,
I'd say we're way off to see proper reverse dependency checking.
Comment 6 Paul Varner (RETIRED) gentoo-dev 2005-06-10 17:59:58 UTC
That was supposed to be portage 2.1+ (meaning whichever version beyond the
current 2.0).  Currently the roadmap at 
http://dev.gentoo.org/~jstubbs/docs/roadmap.html lists it as a 2.2 feature.
Regardless, my point still stands.
Comment 7 Alec Warner (RETIRED) archtester gentoo-dev Security 2005-08-10 08:50:54 UTC
2.1 has some new logging features courtesy of genone that should help with the 
enotices ( email, syslog, files, etc ).  I really don't see the point of adding 
a bunch of stuff to revdep-rebuild.  If I am having gcc issues, I run gcc-
config, python issues, python-updater.  Most users are just going to run revdep-
rebuild with the normal parameters and their python will still lay broken.
Comment 8 Tiago Freire 2005-12-14 02:25:05 UTC
I think python-updater should be called after a *python upgrade*. If there is a
tool to fix stuff which may break on upgrades, why do you tell the user to 'run
foo' on a enotice instead of simply running it? If there is a concern it 'might
break other stuff' or something like it, you can add a 'check' USE flag. when it
is present, the python emerge runs python-updater, otherwise it just sends the
enotice. 
Comment 9 Petteri Räty (RETIRED) gentoo-dev 2005-12-14 02:58:46 UTC
(In reply to comment #8)
> I think python-updater should be called after a *python upgrade*. If there is a
> tool to fix stuff which may break on upgrades, why do you tell the user to 'run
> foo' on a enotice instead of simply running it? If there is a concern it 'might
> break other stuff' or something like it, you can add a 'check' USE flag. when it
> is present, the python emerge runs python-updater, otherwise it just sends the
> enotice. 
> 

At least one problem that comes to mind is that python-updater calls emerge and
atm calling emerge inside emerge is not allowed and probably will not be any
time soon. 
Comment 10 Alastair Tse (RETIRED) gentoo-dev 2006-02-06 11:28:59 UTC
funny that, because that is what i thought when i wrote python-updater. i just noticed that during my recent upgrade with perl, perl-cleaner is run inside of an emerge! is that "legal" so to speak?

Comment 11 Alec Warner (RETIRED) archtester gentoo-dev Security 2006-02-06 11:33:00 UTC
(In reply to comment #10)
> funny that, because that is what i thought when i wrote python-updater. i just
> noticed that during my recent upgrade with perl, perl-cleaner is run inside of
> an emerge! is that "legal" so to speak?
> 

Last time I checked no, there are still race-conditions in the code where this could cause problems.
Comment 12 Jaak Ristioja 2011-03-26 21:20:51 UTC
As portage started to encourage users to emerge --depclean after updates, I did basically did revdep-rebuild && emerge --depclean, the latter failed because after just upgrading from 2.6 to 2.7 emerge crashed when it removed python 2.6.

The result: a broken system and an angry user looking at a bug report which should have been closed as FIXED about 6 years ago. =[

PS: Any idea on how to recover from this?
Comment 13 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2011-03-26 21:24:10 UTC
(In reply to comment #12)

It's completely unrelated to this bug.
Comment 14 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2011-03-26 21:26:15 UTC
python-updater should be maintained as a separate package.
Comment 15 Zac Medico gentoo-dev 2011-03-26 21:27:16 UTC
(In reply to comment #12)
Bug 357009 is related. You should be able to recover by setting the default interpreter with eselect python. Please use forums.gentoo.org if you need more help.
Comment 16 Jaak Ristioja 2011-03-26 21:41:40 UTC
(In reply to comment #13)
> It's completely unrelated to this bug.

I don't think this is unrelated. The bug reports states: "I propose calling python-updater from revdep-rebuild."

If this would have been done, and revdep-rebuild would have called python-updater, I would not have stumbled upon this issue.

I propose to reopen this bug, and I propose that revdep-rebuild should at minimum output a warning that it does not fix reverse dependancies for Python (and possibly some other stuff?) and that users MUST run python-updater, or else things might break (e.g. even portage).

Users probably expect revdep-rebuild to fix ALL reverse dependancies, including these Python things. Even the name of the script, "revdep-rebuild", seems to imply this. So in case adding a warning to revdep-rebuild is out of the question, I suggest to change the name of revdep-rebuild to something, which would more precisely reflect what it ACTUALLY does.

(In reply to comment #15)
> Bug 357009 is related. You should be able to recover by setting the default
> interpreter with eselect python. Please use forums.gentoo.org if you need more
> help.

Thanks. "eselect python" appears to have fixed this.
Comment 17 Arfrever Frehtes Taifersar Arahesis (RETIRED) gentoo-dev 2011-03-26 21:46:17 UTC
revdep-rebuild could have an option to run python-updater, haskell-updater, perl-cleaner etc.
Comment 18 Paul Varner (RETIRED) gentoo-dev 2011-06-15 04:55:54 UTC
Let's look at this with the python rewrite.