From: Jan Kiszka <jan.kiszka@siemens.com>
To: Henning Schild <henning.schild@siemens.com>
Cc: isar-users <isar-users@googlegroups.com>
Subject: Re: [PATCH 3/3] dpkg-gbp: default to "git" patching
Date: Wed, 11 Aug 2021 21:12:35 +0200 [thread overview]
Message-ID: <eb6f6f1b-2d9a-0b8e-2094-2cd04a545cca@siemens.com> (raw)
In-Reply-To: <20210811203649.63399e0c@md1za8fc.ad001.siemens.net>
On 11.08.21 20:36, Henning Schild wrote:
> 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.
That reasoning was missing from the commit log, and also the cover
letter declared this patch optional.
But you can patch debian packages via quilt, though not by do_patch
directly, see various examples in our layers. So the reasoning needs to
be a bit more precises in pointing out that also this approach did not
work (and ideally why).
Jan
--
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2021-08-11 19:12 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
2021-08-11 19:12 ` Jan Kiszka [this message]
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=eb6f6f1b-2d9a-0b8e-2094-2cd04a545cca@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=henning.schild@siemens.com \
--cc=isar-users@googlegroups.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