From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yann E. MORIN Date: Thu, 5 Apr 2018 19:09:17 +0200 Subject: [Buildroot] [RFC PATCH] download/git: fix basename for files inside tarballs In-Reply-To: <20180405031600.18831-1-ricardo.martincoski@gmail.com> References: <20180405031600.18831-1-ricardo.martincoski@gmail.com> Message-ID: <20180405170917.GA13990@scaer> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net Ricardo, All, On 2018-04-05 00:16 -0300, Ricardo Martincoski spake thusly: > Commit "6d938bcb52 download: git: introduce cache feature" introduced a > typo that makes the tarball to contain files without the package > basename: > $ tar -tvf good-a238b1dfcd825d47d834af3c5223417c8411d90d.tar.gz > -rw-r--r-- 0/0 8 2017-10-14 02:10 ./file > > Historically, all tarballs are generated with the basename: > $ tar -tvf good-a238b1dfcd825d47d834af3c5223417c8411d90d.tar.gz > -rw-r--r-- 0/0 8 2017-10-14 02:10 good-a238b1dfcd825d47d834af3c5223417c8411d90d/file > > The hashes in the tree were calculated with the basename. > > In the most common scenario, after the download ends the tarball is > generated, the hash mismatches and the download mechanism falls back to > use the tarball from http://sources.buildroot.net . > > The problem can be reproduced by forcing the download of any git package > PKG that has a hash file to check against: > $ make defconfig > $ ./utils/config --set-str BR2_BACKUP_SITE "" > $ BR2_DL_DIR=$(mktemp -d) make PKG-dirclean PKG-source > > Fix the typo so the basename is really added to the files, that was > clearly the intention of the code. Yes, definitely the intention. I had that one fix pending locally and did not have time to send it yesterday evenong, so thinaks for fixing it faster! :-) It's already been applied, otherwise I'd have given my ACK. Regards, Yann E. MORIN. > Signed-off-by: Ricardo Martincoski > Cc: Arnout Vandecappelle > Cc: Maxime Hadjinlian > Cc: Peter Korsgaard > Cc: Thomas Petazzoni > Cc: Yann E. MORIN > --- > NOTICE: linux-firmware is NOT fixed by this. I don't know why. > I tried in my local computer a few other (other than the ones tested in > Gitlab CI) git packages and they are fixed by this patch as well: > libuci > squashfs > ubus > x264 > Could it be related to my setup? > tar (GNU tar) 1.29 > git version 2.14.1 > > I detected this while debugging why this automated test now fails: > http://patchwork.ozlabs.org/patch/831742/ > > Before this patch: > https://gitlab.com/RicardoMartincoski/buildroot/pipelines/19997839 > > After this patch: > https://gitlab.com/RicardoMartincoski/buildroot/pipelines/19998472 > --- > support/download/git | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/support/download/git b/support/download/git > index 58dbcd211c..f07195b0d1 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}" > -- > 2.14.1 > -- .-----------------.--------------------.------------------.--------------------. | 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. | '------------------------------^-------^------------------^--------------------'