Openembedded Devel Discussions
 help / color / mirror / Atom feed
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-----



      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