Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 584088 - portage should provide possibility to explicitly satisfy dependencies
Summary: portage should provide possibility to explicitly satisfy dependencies
Status: RESOLVED INVALID
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Enhancement/Feature Requests (show other bugs)
Hardware: All Linux
: Normal enhancement (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-05-25 09:45 UTC by karel
Modified: 2016-05-26 23:19 UTC (History)
0 users

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 karel 2016-05-25 09:45:33 UTC
I have iptables compiled from git for developement purposes. Whenever I update world, portage tries to pull iptables from its tree. --exclude option doesnt work here when --deep is used, so I always must update in two steps. First:

emerge --update --ask --deep --newuse world

which tries to pull iptables, so I cancel it and have to write down all updatable packages in command line like this:

emerge --update --ask --oneshot --newuse <package1> <package2> ...

It would be nice to have some possibility to tell portage that iptables (or any other package) dependency is already satisfied, like this:

emerge --update --ask --deep --newuse --satisfied="iptables" world

Reproducible: Always




I am aware that installing packages from git and not honoring portage dependencies can break some specific version dependencies, changes in API etc., but lets leave it for user to solve such problems if they appear and make his life easier, at least for updates.
Comment 1 Lars Wendler (Polynomial-C) (RETIRED) gentoo-dev 2016-05-25 11:21:38 UTC
Can you explain your claim that

  --exclude=iptables 

doesn't solve your problem?
Comment 2 Brian Dolbec (RETIRED) gentoo-dev 2016-05-25 13:16:29 UTC
There is a package.provided file for telleng portage packages are satisfied by other means like  your manually installed iptables.


             package.provided
                     A list of packages (one per line) that portage should assume have been provided.  Useful for porting  to  non-Linux  systems.  Basi‐
                     cally, it's a list that replaces the emerge --inject syntax.


For a complete explanation see man portage.

If this does fix your issue, please close as invalid.
Comment 3 Brian Dolbec (RETIRED) gentoo-dev 2016-05-25 13:20:13 UTC
In this case, since you are developing iptables, you will want to tell it iptables-9999.  This should permanently satisfy any iptables dependency.

You may come across some subslot rebuild issues which you will have to manually rebuild iptables for.
Comment 4 Brian Dolbec (RETIRED) gentoo-dev 2016-05-25 13:25:47 UTC
It is also possible to keep a local overlay with the iptables-9999 ebuild which you can modify to build from your development code.  In that way, you can still use portage to manage that dependency.  Since an overlay takes precedence over the main tree and 9999 is the highest version, you should not have any issues of the main tree ebuild replacing your locally developed code.
Comment 5 karel 2016-05-26 12:13:25 UTC
(In reply to Lars Wendler (Polynomial-C) from comment #1)
> Can you explain your claim that
> 
>   --exclude=iptables 
> 
> doesn't solve your problem?

As I already mentioned, when --deep is used --exclude doesnt work. Dunno why.
Comment 6 karel 2016-05-26 12:22:59 UTC
(In reply to Brian Dolbec from comment #2)
> There is a package.provided file for telleng portage packages are satisfied
> by other means like  your manually installed iptables.
> 
> 
>              package.provided
>                      A list of packages (one per line) that portage should
> assume have been provided.  Useful for porting  to  non-Linux  systems. 
> Basi‐
>                      cally, it's a list that replaces the emerge --inject
> syntax.
> 
> 
> For a complete explanation see man portage.
> 
> If this does fix your issue, please close as invalid.

Thanks Brian, package.provided works. I have not been aware of this possibility. Closing bug as invalid.

And thanks again for hint about iptables-9999, I didnt know that ebuild can get its source directly from git.
Comment 7 Zac Medico gentoo-dev 2016-05-26 23:19:46 UTC
(In reply to karel from comment #5)
> As I already mentioned, when --deep is used --exclude doesnt work. Dunno why.

The --exclude option doesn't satisfy dependencies. You need package.provided for that.