From: Henning Schild <henning.schild@siemens.com>
To: Jan Kiszka <jan.kiszka@siemens.com>
Cc: isar-users <isar-users@googlegroups.com>
Subject: Re: [PATCH 3/3] dpkg-gbp: default to "git" patching
Date: Fri, 13 Aug 2021 22:22:30 +0200 [thread overview]
Message-ID: <20210813222230.2bca9f39@md1za8fc.ad001.siemens.net> (raw)
In-Reply-To: <9cca8daa-595e-7cd5-8886-903e04574491@siemens.com>
Am Wed, 11 Aug 2021 21:15:49 +0200
schrieb Jan Kiszka <jan.kiszka@siemens.com>:
> On 11.08.21 20:44, Henning Schild wrote:
> > Am Wed, 11 Aug 2021 20:36:49 +0200
> > schrieb Henning Schild <henning.schild@siemens.com>:
> >
> >> Am Wed, 11 Aug 2021 20:14:56 +0200
> >> schrieb Jan Kiszka <jan.kiszka@siemens.com>:
> >>
> >>> On 22.01.21 11:55, [ext] Jan Kiszka wrote:
> >>>> On 22.01.21 09:42, [ext] Henning Schild wrote:
> >>>>> From: Henning Schild <henning.schild@siemens.com>
> >>>>>
> >>>>> That class is about packages coming from git, so that is the
> >>>>> natural choice for the patching tool.
> >>>>>
> >>>>> Signed-off-by: Henning Schild <henning.schild@siemens.com>
> >>>>> ---
> >>>>> RECIPE-API-CHANGELOG.md | 5 +++++
> >>>>> meta-isar/recipes-app/cowsay/cowsay_git.bb | 1 -
> >>>>> meta/classes/dpkg-gbp.bbclass | 2 ++
> >>>>> 3 files changed, 7 insertions(+), 1 deletion(-)
> >>>>>
> >>>>> diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md
> >>>>> index cc45f3f66e..c4ec5894a8 100644
> >>>>> --- a/RECIPE-API-CHANGELOG.md
> >>>>> +++ b/RECIPE-API-CHANGELOG.md
> >>>>> @@ -282,3 +282,8 @@ like /boot/efi to avoid such issues.
> >>>>> ### Deprecate BUILD_DEPENDS in u-boot-custom.inc
> >>>>>
> >>>>> Use DEBIAN_BUILD_DEPENDS instead, to align with deb_debianize.
> >>>>> +
> >>>>> +### Default to PATCHTOOL ?= "git" for dpkg-gbp
> >>>>> +
> >>>>> +Migrate your patches so they can be applied with "git am", or
> >>>>> +"unset PATCHTOOL" to get old behaviour.
> >>>>> diff --git a/meta-isar/recipes-app/cowsay/cowsay_git.bb
> >>>>> b/meta-isar/recipes-app/cowsay/cowsay_git.bb index
> >>>>> 2e885a8aa3..c3a1f4942a 100644 ---
> >>>>> a/meta-isar/recipes-app/cowsay/cowsay_git.bb +++
> >>>>> b/meta-isar/recipes-app/cowsay/cowsay_git.bb @@ -5,7 +5,6 @@
> >>>>>
> >>>>> inherit dpkg-gbp
> >>>>>
> >>>>> -PATCHTOOL = "git"
> >>>>> SRC_URI =
> >>>>> "git://salsa.debian.org/debian/cowsay.git;protocol=https"
> >>>>> SRC_URI += "file://isar.patch" SRCREV =
> >>>>> "756f0c41fbf582093c0c1dff9ff77734716cb26f" diff --git
> >>>>> a/meta/classes/dpkg-gbp.bbclass b/meta/classes/dpkg-gbp.bbclass
> >>>>> index ba5c3ebb89..d956e8c3bc 100644 ---
> >>>>> a/meta/classes/dpkg-gbp.bbclass +++
> >>>>> b/meta/classes/dpkg-gbp.bbclass @@ -7,6 +7,8 @@ inherit dpkg
> >>>>>
> >>>>> S = "${WORKDIR}/git"
> >>>>>
> >>>>> +PATCHTOOL ?= "git"
> >>>>> +
> >>>>> GBP_DEPENDS ?= "git-buildpackage pristine-tar"
> >>>>> GBP_EXTRA_OPTIONS ?= "--git-pristine-tar"
> >>>>>
> >>>>>
> >>>>
> >>>> Sounds reasonable to me.
> >>>>
> >>>
> >>> ...but breaks rebuilding as long as we do not clone into the
> >>> buildchroot and rather patch alternates:
> >>>
> >>> ERROR: mc:qemuarm64-buster:cowsay-git-r0 do_patch: Command Error:
> >>> 'sh -c 'git
> >>> --work-tree=/build/tmp/work/debian-buster-arm64/cowsay/git-r0/git
> >>> reset --hard HEAD'' exited with 0 Output: error: object directory
> >>> /downloads/git/salsa.debian.org.debian.cowsay.git/objects does not
> >>> exist; check .git/objects/info/alternates error: unable to read
> >>> sha1 file of cows/elephant-in-snake.cow
> >>> (1003cdf63bd9ae64e6674b47f8ed4799b5f809a6) error: unable to read
> >>> sha1 file of cows/elephant.cow
> >>> (959cd3f6dd2b628b2471572a06e162b31dbcac96) error: unable to read
> >>> sha1 file of cows/head-in.cow
> >>> (2e51774886392c2d295e5659b03dbfa04f14aeb4) error: unable to read
> >>> sha1 file of cows/luke-koala.cow
> >>> (78acd6988fa397cc1dfcd98f04373af94288430e) error: unable to read
> >>> sha1 file of cows/moofasa.cow
> >>> (15119d6782fec20424c648fcf0174f291dd22026) error: unable to read
> >>> sha1 file of cowsay (900ca46014cf0454075a6390830b399b2a4b2a34)
> >>> error: unable to read sha1 file of cowsay.1
> >>> (7133866af2f7ea7cccdfa79378a61b27c1573e6b) fatal: Could not reset
> >>> index file to revision 'HEAD'. ERROR: Logfile of failure stored
> >>> in:
> >>> /build/tmp/work/debian-buster-arm64/cowsay/git-r0/temp/log.do_patch.71
> >>> ERROR: Task
> >>> (mc:qemuarm64-buster:/repo/meta-isar/recipes-app/cowsay/cowsay_git.bb:do_patch)
> >>> failed with exit code '1'
> >>>
> >>> Did this change have a practical motivation or was just out of
> >>> esthetic reasons? If it were only the latter, we should revert
> >>> until our bitbake can resolve the underlying problem.
> >>
> >> It does have a practical motivation. Patching with quilt in isar
> >> has nasty side-effects when debian/ is using quilt as well.
> >> Using git as patchtool when git is also doing fetch/unpack seems
> >> like the best solution to that. The patching with quilt gets
> >> especially nasty if you can not add a quilt patch-patch to just
> >> deal with the code ... when you find yourself also wanting to
> >> patch debian/.
> >>
> >> I would say that "adjust_git" is to blame here and we need to live
> >> with that until we version-bump bitbake. In recent bitbake we will
> >> have
> >> https://github.com/openembedded/bitbake/commit/6ae6f1865d5e666ebc670f70b7401a7b41648102
> >> and will be able to ditch "adjust_git" by simply setting a global
> >> BB_GIT_NOSHARED for isar. That will also result in much improved
> >> usability ... since git repos will end up usable insisde/outside
> >> chroots.
> >
> > Doing BB_GIT_NOSHARED=1 in general and dropping "adjust_git" is not
> > something i have tested. But i am almost sure it will work.
> > It will have an impact on performance and disk-usage.
> >
> > If a layer wanted to early-adopt ... it would be cherry-picking that
> > bitbake commit into isar, setting that variable global and dropping
> > "adjust_git".
> >
>
> That's not a layer topic, that's an Isar topic if that feature is so
> important. If the patch is upstream in master, pick it on top of our
> release and do the refactorings. That's better then fighting
> adjust_git by randomly breaking it.
I did send a patch that will "unshare" in isar without having to wait
for a bitbake version bump or doing cherry-pick forking. Let us hope
that patch is accepted and we will simply carry adjust_git until that
bitbake bump.
Henning
> Jan
>
next prev parent reply other threads:[~2021-08-13 20:22 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-22 8:42 [PATCH 0/3] allow do_patch to use the "git" tool Henning Schild
2021-01-22 8:42 ` [PATCH 1/3] dpkg: adjust task order to allow using "git" for patching Henning Schild
2021-01-22 10:53 ` Jan Kiszka
2021-01-22 13:40 ` Henning Schild
2021-02-08 16:06 ` Anton Mikanovich
2021-02-08 16:16 ` Henning Schild
2021-01-22 8:42 ` [PATCH 2/3] meta-isar: apply a "git" patch in cowsay Henning Schild
2021-01-22 8:42 ` [PATCH 3/3] dpkg-gbp: default to "git" patching Henning Schild
2021-01-22 10:55 ` Jan Kiszka
2021-08-11 18:14 ` Jan Kiszka
2021-08-11 18:36 ` Henning Schild
2021-08-11 18:44 ` Henning Schild
2021-08-11 19:15 ` Jan Kiszka
2021-08-13 20:22 ` Henning Schild [this message]
2021-08-11 19:12 ` Jan Kiszka
2021-08-13 20:32 ` Henning Schild
2021-02-10 9:17 ` [PATCH 0/3] allow do_patch to use the "git" tool Anton Mikanovich
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=20210813222230.2bca9f39@md1za8fc.ad001.siemens.net \
--to=henning.schild@siemens.com \
--cc=isar-users@googlegroups.com \
--cc=jan.kiszka@siemens.com \
/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