Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 942352 - dev-python/pycairo: superflous x11-base/xorg-proto DEPEND
Summary: dev-python/pycairo: superflous x11-base/xorg-proto DEPEND
Status: RESOLVED CANTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Python Gentoo Team
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2024-10-27 13:10 UTC by Michel Ganguin
Modified: 2024-11-12 08:19 UTC (History)
3 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 Michel Ganguin 2024-10-27 13:10:22 UTC
pycairo has not direct x11 dependencies, only transitive based on x11-libs/cairo build flags. Therefore, x11-base/xorg-proto should be removed.

Reproducible: Always

Steps to Reproduce:
1. check x11 dependency is not installed: emerge -pv x11-base/xorg-proto
2. check packages pulled in by pycairo: emerge -pv dev-python/pycairo
Actual Results:  
It pulls in x11-base/xorg-proto

Expected Results:  
x11-base/xorg-proto is not required
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-10-27 13:17:12 UTC
xorg-proto is a special because because we don't have "build-against" dependencies (we don't list xorg-proto in cairo RDEPEND).

It was added for:

commit 6ec4af5ae3e47827b50a0f3c5f43d1903722dcf7
Author: Joonas Niilola <juippis@gentoo.org>
Date:   Sat Jan 14 09:53:15 2023 +0200

    dev-python/pycairo: add missing BDEPENDs

    Package xproto was not found in the pkg-config search path.
    Perhaps you should add the directory containing `xproto.pc'
    to the PKG_CONFIG_PATH environment variable

    Signed-off-by: Joonas Niilola <juippis@gentoo.org>

for exactly this reason.
Comment 2 Nowa Ammerlaan gentoo-dev 2024-10-27 15:21:20 UTC
There's some weird stuff going on here though. The build time requirement of xorg-proto depends on how cairo was built.

The same problem happens in plymouth[-gtk] and pango[-X], these packages should not require xorg-proto in that USE flag configuration but configure fails anyway if cairo[X] is installed. See also Bug 903707.

I think either xorg-proto should be an RDEPEND in cairo instead of a DEPEND. Or the dependency on cairo in pango.ebuild should be adjusted from "x11-libs/cairo-1.12.10[X?]" to "x11-libs/cairo-1.12.10[X=]" (plus a similar change in plymouth where it is less convenient due to the different name of the flag).
Comment 3 Michel Ganguin 2024-10-27 16:59:47 UTC
I'm not sure to fully understand, from what I can see:

* This happens (only?) when cairo[X] was installed as a binpkg (or xorg-proto explicitely removed --with-bdeps=n)
* Then every package depending on cairo will fail to build because of the missing pkgconfig
* Is that what you mean with "build-against"?

It seems insane to add x11-base/xorg-proto to all ebuilds depending on cairo (qdepends tells me 742 ebuilds depend on cairo), when you can "fix/workaround" it by adding it to RDEPEND in cairo.

And does this affect other than x11-base/xorg-proto build time dependencies?
Comment 4 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-10-27 18:01:58 UTC
(In reply to Michel Ganguin from comment #3)
> I'm not sure to fully understand, from what I can see:
> 
> * This happens (only?) when cairo[X] was installed as a binpkg (or
> xorg-proto explicitely removed --with-bdeps=n)
> * Then every package depending on cairo will fail to build because of the
> missing pkgconfig
> * Is that what you mean with "build-against"?
> 

Yes.

> It seems insane to add x11-base/xorg-proto to all ebuilds depending on cairo
> (qdepends tells me 742 ebuilds depend on cairo), when you can
> "fix/workaround" it by adding it to RDEPEND in cairo.

I tend to agree, although someone will inevitably then complain about it technically not being an RDEPEND and be sad they can't remove it. But yes, I agree with you, we should add it in RDEPEND until we have such a build-against dependency class.

> 
> And does this affect other than x11-base/xorg-proto build time dependencies?

Header-only dependencies are uncommon.