diff mbox series

download/git: fix trasnform-name

Message ID 20180407212614.15639-1-yann.morin.1998@free.fr
State Accepted
Commit 54785851eeb775720aac8a0b6b423fda26ac8f27
Headers show
Series download/git: fix trasnform-name | expand

Commit Message

Yann E. MORIN April 7, 2018, 9:26 p.m. UTC
When a package contains a relative symlink which first component is '..'
(thus pointing one directory higher), for example package 'meh' contains
this symlink:

    foo/bar -> ../buz

then it would be stored as 'meh-version./buz' because of the
transform-name pattern replacement.

Fix it to only match the leading './'.

Reported-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
---
 support/download/git | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Ricardo Martincoski April 8, 2018, 7:34 a.m. UTC | #1
Hello,

> download/git: fix trasnform-name

trasnform -> transform

On Sat, Apr 07, 2018 at 06:26 PM, Yann E. MORIN wrote:

> When a package contains a relative symlink which first component is '..'
> (thus pointing one directory higher), for example package 'meh' contains
> this symlink:
> 
>     foo/bar -> ../buz
> 
> then it would be stored as 'meh-version./buz' because of the
> transform-name pattern replacement.
> 
> Fix it to only match the leading './'.
> 
> Reported-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Ricardo Martincoski <ricardo.martincoski@gmail.com>
> Cc: Peter Korsgaard <peter@korsgaard.com>
> Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>

With the typo in the subject fixed:
Reviewed-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
[tarball generation fixed for 18xx-ti-utils and linux-firmware, see the test
 script at http://patchwork.ozlabs.org/patch/896012/ ]
Tested-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>

2 packages are fixed by this patch:
18xx-ti-utils
before: https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/61769469
after: https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/61769909
linux-firmware
before: https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/61769511
after: https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/61769952

All failures with this patch:
https://gitlab.com/RicardoMartincoski/buildroot/pipelines/20146714/failures
at91bootstrap3 v3.8.6, gummiboot, kvm-unit-tests, kvmtool, mcelog, trace-cmd,
uemacs, xloader
also occured for 2018.02:
https://gitlab.com/RicardoMartincoski/buildroot/pipelines/20146633/failures

Regards,
Ricardo
Yann E. MORIN April 8, 2018, 8:24 a.m. UTC | #2
Ricardo, All,

On 2018-04-08 04:34 -0300, Ricardo Martincoski spake thusly:
> > download/git: fix trasnform-name
> trasnform -> transform

Meh, that is my signature. A mail from me with no typo is not from me...
;-)

> On Sat, Apr 07, 2018 at 06:26 PM, Yann E. MORIN wrote:
> > When a package contains a relative symlink which first component is '..'
> > (thus pointing one directory higher), for example package 'meh' contains
> > this symlink:
> > 
> >     foo/bar -> ../buz
> > 
> > then it would be stored as 'meh-version./buz' because of the
> > transform-name pattern replacement.
> > 
> > Fix it to only match the leading './'.
> > 
> > Reported-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > Cc: Ricardo Martincoski <ricardo.martincoski@gmail.com>
> > Cc: Peter Korsgaard <peter@korsgaard.com>
> > Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
> 
> With the typo in the subject fixed:
> Reviewed-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
> [tarball generation fixed for 18xx-ti-utils and linux-firmware, see the test
>  script at http://patchwork.ozlabs.org/patch/896012/ ]
> Tested-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
> 
> 2 packages are fixed by this patch:
> 18xx-ti-utils
> before: https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/61769469
> after: https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/61769909
> linux-firmware
> before: https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/61769511
> after: https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/61769952
> 
> All failures with this patch:
> https://gitlab.com/RicardoMartincoski/buildroot/pipelines/20146714/failures
> at91bootstrap3 v3.8.6, gummiboot, kvm-unit-tests, kvmtool, mcelog, trace-cmd,
> uemacs, xloader
> also occured for 2018.02:
> https://gitlab.com/RicardoMartincoski/buildroot/pipelines/20146633/failures

Sorry, but I'm not following. You mean that 18xx-ti-utils and
linux-firmware are already broken on 2018.02? That is strange, because
we haven't backported those git download changes in the LTS branch...

And indeed, I can't reproduce the issue locally, using tar-1.29. What
version of tar are you using? We've recently black-listed 1.26 and
below, and now require 1.27 <= tar <= 1.29

Regards,
Yann E. MORIN.
Ricardo Martincoski April 8, 2018, 1:37 p.m. UTC | #3
Hello,

On Sun, Apr 08, 2018 at 05:24 AM, Yann E. MORIN wrote:

>> 2 packages are fixed by this patch:
>> 18xx-ti-utils
>> before: https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/61769469
>> after: https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/61769909
>> linux-firmware
>> before: https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/61769511
>> after: https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/61769952
>> 
>> All failures with this patch:
>> https://gitlab.com/RicardoMartincoski/buildroot/pipelines/20146714/failures
>> at91bootstrap3 v3.8.6, gummiboot, kvm-unit-tests, kvmtool, mcelog, trace-cmd,
>> uemacs, xloader
>> also occured for 2018.02:
>> https://gitlab.com/RicardoMartincoski/buildroot/pipelines/20146633/failures
> 
> Sorry, but I'm not following. You mean that 18xx-ti-utils and
> linux-firmware are already broken on 2018.02? That is strange, because
> we haven't backported those git download changes in the LTS branch...

No. Sorry I did not explain clearly.
For these 2 packages:
2018.02:           OK
master:            FAIL
master+this_patch: OK

While testing your patch I detected unrelated failures (not necessarily an error
on Buildroot side) using both master and 2018.02. Few packages failed with your
patch. Then I tested without your patch to check it was not a regression. The
test results confirmed it was not a regression.

It doesn't mean 2018.02 is wrong either, maybe it is a temporary issue on the
remote git server, maybe the url just got outdated.
See http://patchwork.ozlabs.org/patch/896012/ for all links and the brief
initial analysis for the cause of each failure.
The best candidate to need to be fixed is at91bootstrap3 v3.8.6 hash, maybe it
was generated (in 2016) with a now-black-listed tar version?

> 
> And indeed, I can't reproduce the issue locally, using tar-1.29. What
> version of tar are you using? We've recently black-listed 1.26 and
> below, and now require 1.27 <= tar <= 1.29

Both the docker image and my computer have tar 1.29.

Regards,
Ricardo
Peter Korsgaard April 8, 2018, 3:41 p.m. UTC | #4
>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:

 > When a package contains a relative symlink which first component is '..'
 > (thus pointing one directory higher), for example package 'meh' contains
 > this symlink:

 >     foo/bar -> ../buz

 > then it would be stored as 'meh-version./buz' because of the
 > transform-name pattern replacement.

 > Fix it to only match the leading './'.

 > Reported-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
 > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
 > Cc: Ricardo Martincoski <ricardo.martincoski@gmail.com>
 > Cc: Peter Korsgaard <peter@korsgaard.com>
 > Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>

Committed, thanks.
diff mbox series

Patch

diff --git a/support/download/git b/support/download/git
index f07195b0d1..787b6bcca0 100755
--- a/support/download/git
+++ b/support/download/git
@@ -111,7 +111,7 @@  LC_ALL=C sort <"${output}.list" >"${output}.list.sorted"
 
 # Create GNU-format tarballs, since that's the format of the tarballs on
 # sources.buildroot.org and used in the *.hash files
-tar cf - --transform="s/^\./${basename}/" \
+tar cf - --transform="s/^\.\//${basename}\//" \
 	--numeric-owner --owner=0 --group=0 --mtime="${date}" --format=gnu \
          -T "${output}.list.sorted" >"${output}.tar"
 gzip -6 -n <"${output}.tar" >"${output}"