Skip to contentSkip to conversation

download/git: fix trasnform-name

PATCH New Yann E. MORIN 3 participants 5 messages Apr 7, 2018 – Apr 8, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 download/git: fix trasnform-name

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 './'.

Cc Ricardo Martincoski <[email protected]>
Cc Peter Korsgaard <[email protected]>
Cc Maxime Hadjinlian <[email protected]>
---
 support/download/git | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
support/download/git +1 -1
index f07195b0d1..787b6bcca0 100755
@@ -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}"
Signature · 1 line
2.14.1
#1 lore raw

PATCH 1/1 download/git: fix trasnform-name

Hello,

Quoted 1 line

download/git: fix trasnform-name

trasnform -> transform

Quoted 9 lines · Yann E. MORIN

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.

Quoted 7 lines

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

Cc Ricardo Martincoski <[email protected]>
Cc Peter Korsgaard <[email protected]>
Cc Maxime Hadjinlian <[email protected]>

With the typo in the subject fixed:

[tarball generation fixed for 18xx-ti-utils and linux-firmware, see the test
script at http://patchwork.ozlabs.org/patch/896012/ ]

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

#2 lore raw

PATCH 1/1 download/git: fix trasnform-name

Ricardo, All,

On 2018-04-08 04:34 -0300, Ricardo Martincoski spake thusly:

Quoted 2 lines
Quoted 1 line

download/git: fix trasnform-name

trasnform -> transform

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

Quoted 32 lines · Yann E. MORIN
Quoted 9 lines

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.

Quoted 7 lines

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

Cc Ricardo Martincoski <[email protected]>
Cc Peter Korsgaard <[email protected]>
Cc Maxime Hadjinlian <[email protected]>

With the typo in the subject fixed:

[tarball generation fixed for 18xx-ti-utils and linux-firmware, see the test
script at http://patchwork.ozlabs.org/patch/896012/ ]

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

Quoted 6 lines

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.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#3 lore raw

PATCH 1/1 download/git: fix trasnform-name

Hello,

Quoted 15 lines · Yann E. MORIN
Quoted 8 lines

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

Quoted 6 lines

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

Quoted 3 lines

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?

Quoted 4 lines

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

#4 lore raw

PATCH 1/1 download/git: fix trasnform-name

In reply to Yann E. MORIN
Quoted 11 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Yann" == Yann E MORIN <[email protected]> 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.

Quoted 7 lines

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

Cc Ricardo Martincoski <[email protected]>
Cc Peter Korsgaard <[email protected]>
Cc Maxime Hadjinlian <[email protected]>

Committed, thanks.

Signature · 1 line
Bye, Peter Korsgaard