Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 149434 - statement in Ebuild HOWTO contradicts Ebuild policy
Summary: statement in Ebuild HOWTO contradicts Ebuild policy
Status: RESOLVED FIXED
Alias: None
Product: Documentation
Classification: Unclassified
Component: [OLD] Developer Handbook (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Community Relations Team
URL: http://www.gentoo.org/proj/en/devrel/...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-09-28 10:28 UTC by Bryan Green
Modified: 2007-04-07 22:48 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 Bryan Green 2006-09-28 10:28:14 UTC
In the developer handbook, ebuild HOWTO, section "1.e. Package Dependencies", it states:

"Never set RDEPEND to DEPEND yourself in an ebuild."

But in the Ebuild policy, section "1.e. Variables" of the handbook, it states:

"RDEPEND should be set explicitly, even if RDEPEND=${DEPEND}."

According to discussions between Marcus Hanwell (cryos@gentoo.org) with other developers on IRC, the second statement, from the Ebuild policy, is the correct one.

From the email he sent me regarding this issue:

"The policy is in a state of 
transition... It always used to be that portage set RDEPEND=DEPEND if RDEPEND 
was not set explicitly. That behaviour is being phased out and so the ebuild 
policy is correct and the ebuild howto needs correcting."
Comment 1 SpanKY gentoo-dev 2006-09-28 10:34:42 UTC
no, this *still* needs to be hashed out on the gentoo dev mailing list
Comment 2 Jakub Moc (RETIRED) gentoo-dev 2006-09-28 12:01:44 UTC
Well, I don't see what you want to hash out, everyone can verify that the ebuild howto is wrong, portage doesn't behave like that. Following the howto results in broken ebuilds with broken dependencies. That's not exactly a purpose why the howto exists.
Comment 3 SpanKY gentoo-dev 2006-09-28 12:57:12 UTC
and we simply sit around waiting for portage to change behavior again and then update the docs ?  here's a better idea ... figure out the exact behavior of portage on the gentoo-dev mailing list and then go with it everywhere
Comment 4 Jakub Moc (RETIRED) gentoo-dev 2006-09-28 14:23:07 UTC
(In reply to comment #3)
> and we simply sit around waiting for portage to change behavior again and then
> update the docs ? 

Sure, that's the exact purpose of that HOWTO. For any other flames, feel free to use mailing list or whatever else, but "documenting" non-existant behaviour plain doesn't make sense.
Comment 5 Alec Warner (RETIRED) archtester gentoo-dev Security 2006-09-28 14:46:36 UTC
17:40 < antarus> zmedico: so dumb question
17:40 < antarus> ebuild foo inherits eclass bar; eclass bar sets RDEPEND="something-useless"
17:41 < antarus> ebuild foo's RDEPEND doesn't get touched by portage
17:41 < antarus> basically if RDEPEND is empty; you set it to DEPEND; otherwise you leave it alone?
17:46 < zmedico> antarus: yes

So if RDEPEND is unset; it will be set for you; if RDEPEND is set by an inherited eclass; you need to set it manually.

This is the current behavior.
Comment 6 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2006-09-30 03:32:33 UTC
So, now that we know the behaviour, and that it was intended and nobody seems to have opposed it when it was announced [1], we should just solve this bug and bug 79337.

[1] http://thread.gmane.org/gmane.linux.gentoo.devel/29509/
Comment 7 SpanKY gentoo-dev 2006-09-30 07:56:19 UTC
that's bullshit ... read the actually e-mail

ebuilds never changed
Comment 8 Jakub Moc (RETIRED) gentoo-dev 2006-09-30 08:48:46 UTC
(In reply to comment #7)
> that's bullshit ... that's bullshit ... read the actually e-mail
> ebuilds never changed

Eh, I can say the same about current ebuild howto, because it doesn't document an existing behaviour. Don't see how using bullshit here is exactly helpful and also don't see what you mean. Yeah, ebuilds never changed, the portage behaviour has changed quite some time ago, noone opposed to that, and having broken ebuilds plus inconsistent documentation doesn't make any sense.
Comment 9 Vlastimil Babka (Caster) (RETIRED) gentoo-dev 2006-09-30 15:18:55 UTC
(In reply to comment #7)
> that's bullshit ... read the actually e-mail

Yeah I did:
"For the ebuild part the plan is to remove the automatic RDEPEND=DEPEND
setting from portage."
"but you can for sure include RDEPEND="${DEPEND}" in your
ebuilds to make them safe for the future."

I know it says there would be EAPI bump first etc, and that's probably why implicit depend still mostly works now... just not when eclass sets RDEPEND. Not sure if this semi-state change was intentional but it's there and we have to deal with it.

> ebuilds never changed

Then maybe it's about time they change, starting with ebuilds affected by inheriting affected eclasses. Having this backed up by Ebuild HOWTO and repoman would really help. Yeah you could try to restore portage's old behaviour but wouldn't that be a step back, when it was already decided to remove implicit RDEPENDs completely?
Comment 10 SpanKY gentoo-dev 2006-09-30 15:45:44 UTC
no, portage hasnt changed ... it still implicitly sets RDEPEND for ebuilds

there are other threads on the gentoo-dev list going over this issue which were not resolved
Comment 11 Jakub Moc (RETIRED) gentoo-dev 2006-09-30 23:41:57 UTC
(In reply to comment #10)
> no, portage hasnt changed ... it still implicitly sets RDEPEND for ebuilds

No, it doesn't set RDEPEND implicitly for ebuilds when an inherited eclass sets its own RDEPEND, portage folks already explained this a couple of times, and users have filed quite a bunch of bugs about broken ebuilds.
Comment 12 Petteri Räty (RETIRED) gentoo-dev 2007-04-07 22:48:53 UTC
The HOWTO does not contradict the policy any more which is what the bug is about.