From: Koen Kooi <koen@dominion.thruhere.net>
To: openembedded-devel@lists.openembedded.org
Subject: Re: How to deal with complex patch including creating new patches?
Date: Fri, 25 Apr 2014 09:46:03 +0200 [thread overview]
Message-ID: <ljd3rq$nu3$1@ger.gmane.org> (raw)
In-Reply-To: <5359FFDC.1000206@windriver.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
zhangxiao schreef op 25-04-14 08:25:
> Hi Experts,
>
> As we know, usually we have to add patches on source tree and in most
> cases what we need to do is just add the source of the patch into SRC_URI
> list and bitbake will install it automatically in "patch" task.
>
> While for some complex cases, for example the netcat as below:
>
> http://cgit.openembedded.org/cgit.cgi/meta-openembedded/tree/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb?h=master
>
>
>
> ... 8 SRC_URI =
> "${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_${PV}.orig.tar.gz;name=netcat
>
>
\
> 9
> ${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_${PV}-7.debian.tar.gz;name=netcat-patch"
>
> ...
>
> It has two sources: one source tree as
> "netcat-openbsd_${PV}.orig.tar.gz"and the other is a patch called
> "netcat-openbsd_${PV}-7.debian.tar.gz".
>
> While the patch is not simple as usual that beside common modifications
> on source tree, it also creates several patches that also need to be
> installed. To deal with it, this bb file make it in do_compile in line 22
> as below: ... 20 do_compile() { 21 cd ${S} 22
> while read line; do patch -p1 < ${WORKDIR}/debian/patches/$line; done <
> ${WORKDIR}/debian/patches/series 23 pkgrel=4 24
> oe_runmake CFLAGS="$CFLAGS -DDEBIAN_VERSION=\"\\\"${pkgrel}\\\"\"" 25
> } ...
>
> Of course it is not good and will cause error when we force re-compile
> it since those patches had already been installed in the previous compile
> task.
>
> The how to fix it?
>
> Currently I can find two methods as below:
>
> First, for line 21, 22 of do_compile that install new created patches,
> remove them. Then:
>
> A) Add a do_patch_append and install those new created patches to this
> function;
>
> B) Convert the netcat-openbsd_${PV}-7.debian.tar.gz to a pure patch. Let
> it contains all modifications and no need to create more patches any
> more. Then place this new created patch locally and modify the SRC_URI to
> point to it.
c) add all the patches from there to SRC_URI.
squashing patches is not a good idea, especially when updating the recipe
later on.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
Comment: GPGTools - http://gpgtools.org
iD8DBQFTWhK7MkyGM64RGpERAndgAJ9Lc8id//55Uk4OfsKD/zvH4W4s/ACcD0RQ
DvoFZmyIodLqi+AhxAWHkdM=
=71Zw
-----END PGP SIGNATURE-----
prev parent reply other threads:[~2014-04-25 7:46 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-25 6:25 How to deal with complex patch including creating new patches? zhangxiao
2014-04-25 7:46 ` Koen Kooi [this message]
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='ljd3rq$nu3$1@ger.gmane.org' \
--to=koen@dominion.thruhere.net \
--cc=openembedded-devel@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