Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: openembedded-core <openembedded-core@lists.openembedded.org>
Subject: RFC: Removing binconfig -config files - Request for help
Date: Wed, 14 May 2014 09:51:37 +0100	[thread overview]
Message-ID: <1400057497.31891.233.camel@ted> (raw)

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




                 reply	other threads:[~2014-05-14  8:51 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1400057497.31891.233.camel@ted \
    --to=richard.purdie@linuxfoundation.org \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox