public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Jan Kiszka <jan.kiszka@siemens.com>
To: Uladzimir Bely <ubely@ilbers.de>,
	isar-users <isar-users@googlegroups.com>
Subject: Re: [PATCH v2 0/4] Make adjust_git work in both worlds
Date: Thu, 26 Aug 2021 09:57:23 +0200	[thread overview]
Message-ID: <e3113050-0377-bd20-c250-8dd6f7559db8@siemens.com> (raw)
In-Reply-To: <9f02a158-a230-795a-c4a6-ed471fe9793b@siemens.com>

On 19.08.21 08:21, Jan Kiszka wrote:
> On 19.08.21 08:17, Uladzimir Bely wrote:
>> In the email from понедельник, 16 августа 2021 г. 13:45:12 +03 user Jan Kiszka 
>> wrote:
>>> On 16.08.21 10:27, Uladzimir Bely wrote:
>>>> In the email from понедельник, 16 августа 2021 г. 10:55:31 +03 user Jan
>>>> Kiszka> 
>>>> wrote:
>>>>> On 16.08.21 09:52, Uladzimir Bely wrote:
>>>>>> In the email from воскресенье, 15 августа 2021 г. 22:02:25 +03 user Jan
>>>>>> Kiszka>
>>>>>>
>>>>>> wrote:
>>>>>>> On 13.08.21 14:40, Uladzimir Bely wrote:
>>>>>>>> When I previously looked at patch.bbclass, I noted, that we don't use
>>>>>>>> it
>>>>>>>> completely.
>>>>>>>>
>>>>>>>> There are some patch_task_patch_prefunc() and patch_task_postfunc()
>>>>>>>> here
>>>>>>>> that are used in OE when PATCHTOOL='git'. But in our case they are
>>>>>>>> never
>>>>>>>> run due to not using PATCH_COMMIT_FUNCTIONS in isar.
>>>>>>>>
>>>>>>>> I suppose (but can't be completely sure without deep look to OE) that
>>>>>>>> prefunc may fix this 'patch is allready applied' issue in OE.
>>>>>>>
>>>>>>> If you can still reproduce the issue, just set PATCH_COMMIT_FUNCTIONS=1
>>>>>>> to check if it has any impact.
>>>>>>>
>>>>>>> Browsing poky and OE-core, I only find devtool setting this var. But
>>>>>>> both aren't using git as patch tool anyway, a downstream layer/recipe
>>>>>>> needs to requests that.
>>>>>>>
>>>>>>> Jan
>>>>>>
>>>>>> Yes, I also tried this way.
>>>>>>
>>>>>> Actually, enabling PATCH_COMMIT_FUNCTIONS also forces to make some more
>>>>>> changes in patch.bbclass (like sys.path.insert for OE lib path) that
>>>>>> makes
>>>>>> the difference increase.
>>>>>>
>>>>>> Anyway, even if this set to "1", the problem of patch reapply is still
>>>>>> here - custom patch is going to be applied despite it was already done
>>>>>> on
>>>>>> previous build. So, reset to SRC_REV is still required.
>>>>>
>>>>> Strange. Did you try the same procedure in an OE setup, to compare what
>>>>> happens there?
>>>>>
>>>>> Jan
>>>>
>>>> Not yet, while it's expected to take much time to compile.
>>>>
>>>> Anyway, to catch the similar error, I need to find some package to rebuild
>>>> in Yocto/OE that follows the approach similar to one isar's cowsay uses:
>>>> a patch used by recipe that adds new patch to debian series.
>>>
>>> Nope, this is unrelated. You just need to find a recipe that adds a
>>> patch, then switch to PATCHTOOL=git, and finally trigger the rebuild in
>>> a way that patch is re-run. That should be doable in OE without building
>>> a complete system. In fact, you only need to force-run patch for a
>>> specific recipe twice.
>>>
>>> Jan
>>
>> I finally found the reason of failing patch in ISAR, after debugging and 
>> comparing the oe/patch.py behaviour in ISAR and OE.
>>
>> At the end, the problem of meta-isar/recipes-app/cowsay/files/isar.patch is 
>> that it's not in git format. So, when GitApplyTree class tries to apply it, it 
>> fails and switches to fallback PatchTree one.
>>
>> That's why the patch can be applied only once - PatchTree class can't apply 
>> the same patch if it has already been applied at previous build.
>>
>> When I modify isar.patch to be git-like ( recreate it with `git format-
>> patch`), everythong works OK. GitApplyTree is now able to understand that the 
>> same patch need to be skipped.
>>
>> The difference in output:
>>
>>> ubely@home /home/Work/isar/build-isar/tmp/work/debian-buster-amd64/cowsay/
>> git-r0/git $ PATCHFILE="isar.patch" git --work-tree=/home/Work/isar/build-
>> isar/tmp/work/debian-buster-amd64/cowsay/git-r0/git -c user.name="Isar" -c 
>> user.email="isar.patch@isar" am -3 --keep-cr -p1 /home/Work/isar/repo/meta-
>> isar/recipes-app/cowsay/files/isar.patch
>>> Patch format detection failed.
>>
>>> ubely@home /home/Work/isar/build-isar/tmp/work/debian-buster-amd64/cowsay/
>> git-r0/git $ PATCHFILE="isar.patch" git --work-tree=/home/Work/isar/build-
>> isar/tmp/work/debian-buster-amd64/cowsay/git-r0/git -c user.name="Isar" -c 
>> user.email="isar.patch@isar" am -3 --keep-cr -p1 /home/Work/isar/repo/meta-
>> isar/recipes-app/cowsay/files/0001-original-patch-isar.patch.patch
>>> Applying: %% original patch: isar.patch
>>> Using index info to reconstruct a base tree...
>>> M       debian/patches/series
>>> Falling back to patching base and 3-way merge...
>>> No changes -- Patch already applied.
>>
>> So, I guess, we need to reformat isar.patch to be sure it can properly work 
>> when PATCHTOOL="git"
>>
> 
> Ah, great, thanks for debugging! Please send a patch - for the patch.
> 

Did you send this patch already?

Jan

-- 
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux

  reply	other threads:[~2021-08-26  7:57 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-12 11:48 Jan Kiszka
2021-08-12 11:48 ` [PATCH v2 1/4] dpkg-base: Lock do_adjust_git against each other Jan Kiszka
2021-08-13 13:55   ` Henning Schild
2021-08-15 18:55     ` Jan Kiszka
2021-08-26  8:00   ` [PATCH v3 " Jan Kiszka
2021-08-26  8:06     ` Jan Kiszka
2021-08-12 11:48 ` [PATCH v2 2/4] dpkg-base: Make mirror link relative Jan Kiszka
2021-08-13 14:04   ` Henning Schild
2021-08-13 17:49     ` [PATCH] dpkg-base: "unshare" git clones in adjust_git Henning Schild
2021-08-13 20:13       ` [PATCH v2] " Henning Schild
2021-08-13 20:14         ` Henning Schild
2021-08-15 18:55       ` [PATCH] " Jan Kiszka
2021-08-16 11:36         ` Henning Schild
2021-08-16 16:57           ` Jan Kiszka
2021-08-12 11:48 ` [PATCH v2 3/4] Rework do_adjust_git to support inside and outside usage Jan Kiszka
2021-08-12 11:48 ` [PATCH v2 4/4] Revert "dpkg: adjust task order to allow using "git" for patching" Jan Kiszka
2021-08-13  8:31 ` [PATCH v2 0/4] Make adjust_git work in both worlds Uladzimir Bely
2021-08-13 10:13   ` Jan Kiszka
2021-08-13 12:23     ` Uladzimir Bely
2021-08-13 12:28       ` Jan Kiszka
2021-08-13 12:40         ` Uladzimir Bely
2021-08-15 19:02           ` Jan Kiszka
2021-08-16  7:52             ` Uladzimir Bely
2021-08-16  7:55               ` Jan Kiszka
2021-08-16  8:27                 ` Uladzimir Bely
2021-08-16 10:45                   ` Jan Kiszka
2021-08-16 11:01                     ` Jan Kiszka
2021-08-16 11:26                       ` Henning Schild
2021-08-16 12:49                       ` Uladzimir Bely
2021-08-19  6:17                     ` Uladzimir Bely
2021-08-19  6:21                       ` Jan Kiszka
2021-08-26  7:57                         ` Jan Kiszka [this message]
2021-08-27  8:39                           ` ub...@ilbers.de

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=e3113050-0377-bd20-c250-8dd6f7559db8@siemens.com \
    --to=jan.kiszka@siemens.com \
    --cc=isar-users@googlegroups.com \
    --cc=ubely@ilbers.de \
    /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