Package x11-base/xorg-server uses x11-proto/dri2proto x11-proto/xineramaproto and x11-proto/videoproto in runtime. The file /usr/lib64/pkgconfig/xorg-server.pc from x11-base/xorg-server used by pkg-config util, when one launch it as: pkg-config --cflags "xorg-server >= 1.5.99.901" This is fragment of xorg-server.pc: Name: xorg-server Description: Modular X.Org X Server Version: 1.10.3 Requires: pixman-1 pciaccess Requires.private: xproto >= 7.0.17 randrproto >= 1.2.99.3 renderproto >= 0.11 xextproto >= 7.1.99 inputproto >= 1.9.99.902 kbproto >= 1.0.3 fontsproto videoproto dri2proto >= 2.3 xineramaproto Cflags: -I${sdkdir} -fvisibility=hidden Libs: -L${libdir} We see here that it depends on x11-proto/dri2proto x11-proto/xineramaproto and x11-proto/videoproto. In other words, these packages are needed not only for building a package, but also for using it. For example if I do # emerge -C videoproto And then I try to run: # pkg-config --cflags "xorg-server >= 1.5.99.901" I got this: # pkg-config --cflags "xorg-server >= 1.5.99.901" Package videoproto was not found in the pkg-config search path. Perhaps you should add the directory containing `videoproto.pc' to the PKG_CONFIG_PATH environment variable Package 'videoproto', required by 'xorg-server', not found The pkg-config util commonly used in the process of configuring packages that depends on xorg-server package for example x11-drivers/xf86-input-mouse uses it. So I think that these three packages should be added to xorg-server not only as build time dependencies, but as runtime dependencies also. Steps to reproduce: emerge -C videoproto emerge xf86-input-mouse Emerge will fail with "fatal error: xorg-server.h: No such file or directory" error because pkg-config util fails.
Probably related to bug 342393.
I used old version of mesa and catched its error too but now it seems to be fixed. They've patched as(mesa-7.11.ebuild): # not a runtime dependency of this package, but dependency of packages which # depend on this package, bug #342393 EXTERNAL_DEPEND=" >=x11-proto/dri2proto-2.2 >=x11-proto/glproto-1.4.11 " # keep correct libdrm and dri2proto dep # keep blocks in rdepend for binpkg RDEPEND="${EXTERNAL_DEPEND} ....
*** Bug 353169 has been marked as a duplicate of this bug. ***
I think that the protos should, sort of by definition, never be in RDEPEND. Packages like drivers that need them should simply specify them in DEPEND.
Yes, I am agree, but in this case it's need to do same with mesa and other packages.
The problem with requiring package "foo" to DEPEND on barproto is that that dependency might not always be in foo itself -- often, now, the dependency *solely* resides in the headers for *some* versions of libbar, not all.
(In reply to comment #4) > I think that the protos should, sort of by definition, never be in RDEPEND. If files installed by a package are only useable when some other package is installed, then this is a RDEPEND. > Packages like drivers that need them should simply specify them in DEPEND. No, packages depend on those packages that provide the files they actually use. You can blame PMS for not specifying a build-against dependency (IIRC there is even a bug for this), but this not going to change any time soon. By the currently existing definitions for the *DEPEND variables, this is an RDEPEND. Please get over it and add it.
*** Bug 444488 has been marked as a duplicate of this bug. ***
*** Bug 463676 has been marked as a duplicate of this bug. ***
Until a new dependency type gets added to a future EAPI in bug 392239, we could follow zmedico's suggestion from bug 342393 comment 23. A virtual/xorg-drivers-build which gets added to DEPEND by the eclass for x11-drivers/* and which RDEPENDS on the necessary x11-proto/*.
*** Bug 523270 has been marked as a duplicate of this bug. ***
Why not add new use flag "pkg-config" that conditionally adds xorg-server.pc file and proto-* dependencies to RDEPEND list? Other packages that use xorg-server.pc file could then add xorg-server[pkg-config] to their DEPEND list.
Bump. I think that we should not introduce new package as all headers that depends on x11-proto/* packages are installed by xorg-server package itself. New package xorg-server-build would introduce not standard approach and would generate a lot of questions and possibly bugs from lost users. I still think that this bug should be fixed by adding new USE flag (maybe "headers", "dev" or "development" would be better name) that conditionally adds all *.h and xorg-server.pc file. With this use flag enabled, package should RDEPEND on all packages from the title. This new flag should be enabled by default for backward compatibility. Advantage of such USE flag is that with such approach it is not possible to emerge unusable files (and some headers and xorg-server.pc files are unusable w/o discussed dependencies).
With x11-base/xorg-proto the need for this is almost entirely gone. Packages need to depend only on a single package that pulls in all the protocol headers. Marking as WONTFIX, since there's no need :)