Re: [OE-core] [poky] -dev RPM packages Require:ing all of their bitbake build dependences

2012-01-04 Thread Richard Purdie
On Tue, 2012-01-03 at 21:08 -0500, Colin Walters wrote:
 I'm trying to use Yocto to generate a target which has standard build
 tools like gcc, make, the glibc headers etc.
 
 In theory, this is solved by task-core-sdk, but I ran into the issue
 that pkg-config-dev contains pkg.m4 which is obviously necessary for
 building anything that uses pkg-config and the autotools.  The further
 issue is that OE has a rule that -dev packages Require: all of the RPMs
 used to build the recipie.
 
 In the case of pkgconfig-dev, that pulls in libglib-2.0-dev which pulls
 in libx11-dev which is already way more than I want.
 
 One approach to this problem is to drain the -dev packages into the main
 runtime package.  I have difficulty imagining someone wanting to
 ship /usr/bin/pkg-config but not pkg.m4 for example.  I'm not yet sure
 how many recipes are affected though.

I can imagine someone downloading something and wanting to build it but
not reautoconf'ing it. At that point you'd need pkg-config but not
the .m4 files.

 Another approach would be to stop injecting -dev Requires by default.  I
 imagine this was done to handle the case of library A whose headers
 require library B.  However, a saner way to handle this I think is
 simply to push people to use pkg-config; IIRC a script exists to extract
 pkg-config dependencies from the .pc files and use that for the RPM
 auto-dependency phase.  That would ensure that e.g. gtk+-dev Requires:
 glib-dev.  This doesn't help non-pkg-config libraries, but those people
 should be shamed anyways =)

I think these dependencies are wrong and need revisiting. Currently,
-dev and -dbg packages share the same code and its tilted more in favour
of -dbg than it is for -dev.

I think the -dev packages make sense if you want to build X but not
build something that just depends on X. We should therefore move the
dependencies to a new package (need a good name) and rethink the -dev
package dependencies.

Cheers,

Richard



___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [poky] -dev RPM packages Require:ing all of their bitbake build dependences

2012-01-04 Thread Chris Larson
On Wed, Jan 4, 2012 at 9:23 AM, Richard Purdie
richard.pur...@linuxfoundation.org wrote:
 Another approach would be to stop injecting -dev Requires by default.  I
 imagine this was done to handle the case of library A whose headers
 require library B.  However, a saner way to handle this I think is
 simply to push people to use pkg-config; IIRC a script exists to extract
 pkg-config dependencies from the .pc files and use that for the RPM
 auto-dependency phase.  That would ensure that e.g. gtk+-dev Requires:
 glib-dev.  This doesn't help non-pkg-config libraries, but those people
 should be shamed anyways =)

 I think these dependencies are wrong and need revisiting. Currently,
 -dev and -dbg packages share the same code and its tilted more in favour
 of -dbg than it is for -dev.

 I think the -dev packages make sense if you want to build X but not
 build something that just depends on X. We should therefore move the
 dependencies to a new package (need a good name) and rethink the -dev
 package dependencies.


I'm inclined to say let the user install the deps needed to build X
themselves, or build it with bitbake, and let -dev work the way it
does in other distros, the bits needed to build against X.
-- 
Christopher Larson

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core


Re: [OE-core] [poky] -dev RPM packages Require:ing all of their bitbake build dependences

2012-01-04 Thread Mark Hatle

On 1/4/12 10:34 AM, Chris Larson wrote:

On Wed, Jan 4, 2012 at 9:23 AM, Richard Purdie
richard.pur...@linuxfoundation.org  wrote:

Another approach would be to stop injecting -dev Requires by default.  I
imagine this was done to handle the case of library A whose headers
require library B.  However, a saner way to handle this I think is
simply to push people to use pkg-config; IIRC a script exists to extract
pkg-config dependencies from the .pc files and use that for the RPM
auto-dependency phase.  That would ensure that e.g. gtk+-dev Requires:
glib-dev.  This doesn't help non-pkg-config libraries, but those people
should be shamed anyways =)


I think these dependencies are wrong and need revisiting. Currently,
-dev and -dbg packages share the same code and its tilted more in favour
of -dbg than it is for -dev.

I think the -dev packages make sense if you want to build X but not
build something that just depends on X. We should therefore move the
dependencies to a new package (need a good name) and rethink the -dev
package dependencies.



I'm inclined to say let the user install the deps needed to build X
themselves, or build it with bitbake, and let -dev work the way it
does in other distros, the bits needed to build against X.


Ya, that seems to be the best solution for a more modern system.

This will require a combination of additional automatic dependency detection and 
also manual intervention when that detection isn't complete.


The complications with the automatic detection are around the header files... 
we'll need to detect when one header includes another, and then translate that 
to an associated -dev file.  But I know there are intentionally broken includes 
(wrapped in #if's etc..)


--Mark

___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core