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