Anyone who has looked at what the binconfig class actually does will realised its pretty gruesome. It applies a long list of replacements against the -config files in ${S} and ${B} and doesn't even wait for the software to install them. This is dated and there is a much better alternative, pkg-config.
We added pkg-config to those pieces of software that were missing them a while ago. Now, I believe the time has come to stop installing some of the -config files. Once this was a huge challenge but there aren't that many left. My proposal is that we add some new function to utils.bbclass which we can call and which creates a "dead" -config script which simply prints and error and then "exit 1". We'd then one by one stop classes inheriting the binconfig class and replace them with calls to this function. I filed an enhancement in the Yocto bugzilla for this: https://bugzilla.yoctoproject.org/show_bug.cgi?id=6320 There is also a patch attached there which starts some of this work. Specifically: * Converts several gnupg related m4 files to use pkg-config instead of the -config scripts and make sure the pkgconfig files have the right data in them. * Fix libarchive to use pkg-config for libxml-2.0 * Fix lighthttp to use pkg-config for pcre * Fix libxslt to use pkg-config for libxml-2.0 I did post on the gnupg mailing list asking whether they could switch to pkg-config. There is history in the archives to suggest they won't, based on bad reasoning but asking again doesn't hurt. No reply as yet. This is probably the biggest chunk of users we have left. Potential issues I'm aware of: * apr-1-config/apu-1-config for subversion/apache * curl-config for python-pycurl * cups-config for cups itself What I don't know at this point is how much of meta-oe uses the -config files. There are a few other files in crossscripts such as guile-config, some tcl pieces and so on, I was planning just to leave those alone. We have here and in that patch a pretty good set of examples on how to proceed with this, I'm hoping someone who fancies a bit of a challenge may pick this up and help. The next steps probably need to be: * A world build of OE-Core before and after this patch set with buildhistory, see if anything changes * Clean up and submit the patches in the existing large patch to OE-Core * Iterate one by one through the OE-Core recipes inheriting binconfig, checking meta-oe for recipes depending on that one and check they use pkg-config and not the -config script * Write the utils.bbclass helper function * Convert recipes to stop inheriting binconfig and instead neuter the -config files. * Investigate the remaining four -config files above. I suspect the apache projects aren't going to switch but we can ask. It may well be worth leaving those alone. Investigate curl/cups further. This probably isn't something we'll solve tomorrow but I think the time is right to have a plan in place and to start to execute on it. Any thoughts/comments/concerns? Cheers, Richard -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core