quilt-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Quilt-dev] odd push/refresh problem


From: Randy Dunlap
Subject: Re: [Quilt-dev] odd push/refresh problem
Date: Tue, 11 Sep 2018 08:29:19 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0

On 9/11/18 6:35 AM, Jean Delvare wrote:
> Hi Randy, Andreas,
> 
> On Mon, 2018-09-10 at 23:44 +0200, Andreas Grünbacher wrote:
>> Am Mo., 10. Sep. 2018 um 22:43 Uhr schrieb Randy Dunlap <address@hidden>:
>>>
>>> Hi,
>>>
>>> [quilt version 0.65]
>>>
>>> Summary: one file in a patch (lib/Makefile) is not part of the updated patch
>>>
>>>
>>> I'm trying to apply patch 4 (only; the rest aren't needed just to build
>>> lib/generic-radix-tree.c):
>>> https://lore.kernel.org/lkml/address@hidden/
>>>
>>>  include/linux/generic-radix-tree.h | 222 +++++++++++++++++++++++++++++
>>>  lib/Makefile                       |   3 +-
>>>  lib/generic-radix-tree.c           | 180 +++++++++++++++++++++++
>>>  3 files changed, 404 insertions(+), 1 deletion(-)
>>>
>>>
>>> I'm applying the patch to linux-next-20180910.
>>> lib/Makefile does not apply cleanly:
>>>
>>> address@hidden:linux-next-20180910> quilt push
>>> Applying patch generic-radix-trees.patch
>>> patching file include/linux/generic-radix-tree.h
>>> patching file lib/Makefile
>>> Hunk #1 FAILED at 38.
>>> 1 out of 1 hunk FAILED -- rejects in file lib/Makefile
>>> patching file lib/generic-radix-tree.c
>>> Patch generic-radix-trees.patch does not apply (enforce with -f)
>>> address@hidden:linux-next-20180910> quilt push -f
>>> Applying patch generic-radix-trees.patch
>>> patching file include/linux/generic-radix-tree.h
>>> patching file lib/Makefile
>>> Hunk #1 FAILED at 38.
>>> 1 out of 1 hunk FAILED -- saving rejects to file lib/Makefile.rej
>>> patching file lib/generic-radix-tree.c
>>> Applied patch generic-radix-trees.patch (forced; needs refresh)
>>>
>>> address@hidden:linux-next-20180910> quilt files | more
>>> include/linux/generic-radix-tree.h
>>> lib/generic-radix-tree.c
>>>
>>> <fix lib/Makefile hunk failure>
>>>
>>> address@hidden:linux-next-20180910> quilt ref
>>> Refreshed patch generic-radix-trees.patch
>>> address@hidden:linux-next-20180910> quilt files | more
>>> include/linux/generic-radix-tree.h
>>> lib/generic-radix-tree.c
>>>
>>>
>>> lib/Makefile is not part of the patch, although diff does see that
>>> generic-radix-tree.o has been added to it:
>>>
>>> address@hidden:lib> diff -u Makefile.orig  Makefile
>>> --- Makefile.orig       2018-08-12 13:41:04.000000000 -0700
>>> +++ Makefile    2018-09-10 13:34:23.844918294 -0700
>>> @@ -37,8 +37,9 @@
>>>          bust_spinlocks.o kasprintf.o bitmap.o scatterlist.o \
>>>          gcd.o lcm.o list_sort.o uuid.o flex_array.o iov_iter.o clz_ctz.o \
>>>          bsearch.o find_bit.o llist.o memweight.o kfifo.o \
>>> -        percpu-refcount.o percpu_ida.o rhashtable.o reciprocal_div.o \
>>> -        once.o refcount.o usercopy.o errseq.o bucket_locks.o
>>> +        percpu-refcount.o rhashtable.o reciprocal_div.o \
>>> +        once.o refcount.o usercopy.o errseq.o bucket_locks.o \
>>> +        generic-radix-tree.o
>>>
>>>
>>> What happened?  Help?
> 
> I can reproduce the bug, after adding the following to my ~/.quiltrc:
> 
> QUILT_PATCH_OPTS="-F 0"
> 
> Randy, I suppose you have this option in your ~/.quiltrc too?

Hi Jean,

I have
QUILT_PATCH_OPTS="-u -b -V numbered"

(but I don't know why :)

>> Hmm, "quilt push -f" applies the patch with something like:
>>
>>   patch --unified -p1 --backup
>> --prefix=.pc/PATCH-4-6-Generic-radix-trees.txt/ -f -i
>> patches/PATCH-4-6-Generic-radix-trees.txt
> 
> That's the patch command indeed, with "-F 0" in addition.
> 
>> This should leave a backup file of lib/Makefile in
>> .pc/PATCH-4-6-Generic-radix-trees.txt/lib/Makefile, but apparently it
>> doesn't,
> 
> It does.
> 
> $ cat lib/Makefile.rej
> --- lib/Makefile
> +++ lib/Makefile
> @@ -38,7 +38,8 @@ obj-y += bcd.o div64.o sort.o parser.o debug_locks.o 
> random32.o \
>        gcd.o lcm.o list_sort.o uuid.o flex_array.o iov_iter.o clz_ctz.o \
>        bsearch.o find_bit.o llist.o memweight.o kfifo.o \
>        percpu-refcount.o percpu_ida.o rhashtable.o reciprocal_div.o \
> -      once.o refcount.o usercopy.o errseq.o bucket_locks.o
> +      once.o refcount.o usercopy.o errseq.o bucket_locks.o \
> +      generic-radix-tree.o
>  obj-$(CONFIG_STRING_SELFTEST) += test_string.o
>  obj-y += string_helpers.o
>  obj-$(CONFIG_TEST_STRING_HELPERS) += test-string_helpers.o
> 
> I think the actual problem is that the backup file .pc/PATCH-4-6-
> Generic-radix-trees.txt/lib/Makefile is not created.
> 
>> and so quilt thinks lib/Makefile is not part of the patch.
>> This should probably be fixed in patch.
> 
> I think it already is. I can reproduce the bug with patch 2.7.5, but no
> longer with patch 2.7.6.13-f322.
> 
> I also can't reproduce the bug if I comment out the "diff --git" lines
> in the patch file so that GNU patch no longer treats the patch as a
> git-style patch. So maybe:
> 
> commit 66fdcf0e7c83a1e2eb4db97b9e24f224db656b65
> Author: Andreas Gruenbacher
> Date:   Tue Jul 19 22:40:40 2016 +0200
> 
>     Fix broken git-style patch behavior
> 
> is the GNU patch commit which fixed it. Randy, you may want to backport
> that git commit to your patch command, or upgrade to patch v2.7.6, and
> see if it solves the problem for you.
> 

where is this git tree, please?


thanks for your help.
-- 
~Randy



reply via email to

[Prev in Thread] Current Thread [Next in Thread]