Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 760783

Summary: sys-apps/portage: warn when a package without existing ebuild in the repos is pulled in
Product: Portage Development Reporter: Pacho Ramos <pacho>
Component: Core - Interface (emerge)Assignee: Portage team <dev-portage>
Status: CONFIRMED ---    
Severity: normal CC: bugs, esigra, gentoo, kingjon3377, sam
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=654670
https://bugs.gentoo.org/show_bug.cgi?id=257009
https://bugs.gentoo.org/show_bug.cgi?id=372005
https://bugs.gentoo.org/show_bug.cgi?id=303403
https://bugs.gentoo.org/show_bug.cgi?id=603132
https://bugs.gentoo.org/show_bug.cgi?id=644990
https://bugs.gentoo.org/show_bug.cgi?id=831158
https://bugs.gentoo.org/show_bug.cgi?id=911180
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 155723    

Description Pacho Ramos gentoo-dev 2020-12-19 22:04:54 UTC
Hello,

I have been fighting with an "emerge -uDN world" update in one of the systems I didn't update for some months. At the end, all the conflicts were caused by an old package that was removed some months ago that was still requiring python3.7 and, as a consequence, was preventing the upgrade. The errors where misleading (but that is a different old bug hard to fix) pointing to boost consumers or qt... 

I realized that maybe it would be nice if "emerge -vuDN world" would have warned me about some packages being pulled in even if their ebuild was removed from all the repos I have in my system (but package.mask entry dropped as it was dropped some months ago)

Thanks a lot
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2020-12-19 22:08:50 UTC
Would this be solved with a depclean after world upgrades? Or am I misunderstanding?
Comment 2 Zac Medico gentoo-dev 2020-12-19 22:22:30 UTC
(In reply to Sam James from comment #1)
> Would this be solved with a depclean after world upgrades? Or am I
> misunderstanding?

It won't removed it if it's in your world file. The behavior related to bug 266836 and bug 651018 is related because it can prevent updates, causing older things to linger around.
Comment 3 Pacho Ramos gentoo-dev 2021-12-09 09:19:48 UTC
Rethinking about this, I think that maybe it would be enough with adding a warning when running depclean and packages without existing ebuilds are present in the system
Comment 4 Pacho Ramos gentoo-dev 2022-01-29 11:45:42 UTC
The warning would also be really useful when updating a system after some months as , most of the times, package.mask entries are removed upon removal.

Thanks a lot
Comment 5 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-02-03 05:30:19 UTC
I'm sorry, yes, I understand you now!

Aside: emerge -ep @world --backtrack=0 is quite good at exposing all of these, but people shouldn't have to do that.
Comment 6 Tiago Marques 2023-06-13 16:43:05 UTC
(In reply to Pacho Ramos from comment #4)
> The warning would also be really useful when updating a system after some
> months as , most of the times, package.mask entries are removed upon removal.
> 
> Thanks a lot

I second Pacho's comment. But I would say a warning is not really helpful, as portage is already very verbose by default.

(In reply to Sam James from comment #5)
> I'm sorry, yes, I understand you now!
> 
> Aside: emerge -ep @world --backtrack=0 is quite good at exposing all of
> these, but people shouldn't have to do that.

Running this, for me, returns this:

emerge: there are no ebuilds to satisfy "sys-kernel/gentoo-sources:5.15.80".
(dependency required by "@selected" [set])
(dependency required by "@world" [argument])

But there is a 5.15.110 in tree. I guess kernel sources should use slots for middle version?

I think @world should never store the package version. And for kernel, the slots would be useful for LTS versions one might want to use.

More on the topic, I think there should be a standard command to upgrade the system. Say have 'emerge --upgrade' with no package arguments should do what portage maintainers think is necessary to upgrade the system.
If that involves @world, @system or @installed is up to Portage.

Ideally it would:

- Upgrade what it could with no breakage
- Preserve libs for packages that are not in tree anymore.
- Give you a list of what can't upgraded at the end.