* [Buildroot] [PATCH] Restrict tar transform to regular files Without this @ 2019-04-26 16:49 Timothy Pearson 2019-04-27 8:25 ` Yann E. MORIN 0 siblings, 1 reply; 4+ messages in thread From: Timothy Pearson @ 2019-04-26 16:49 UTC (permalink / raw) To: buildroot restriction, symlinks are rewritten and corrupted. Example without the restriction: Input tree (valid): package-githash/file1 package-githash/link -> ./file1 Output tree (broken): package-githash/file1 package-githash/link -> package-githash/file1 --- support/download/git | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/support/download/git b/support/download/git index 17ca04eb98..1acb795c81 100755 --- a/support/download/git +++ b/support/download/git @@ -190,7 +190,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="flags=r;s#^\./#${basename}/#" \ --numeric-owner --owner=0 --group=0 --mtime="${date}" --format=gnu \ -T "${output}.list.sorted" >"${output}.tar" gzip -6 -n <"${output}.tar" >"${output}" ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH] Restrict tar transform to regular files Without this 2019-04-26 16:49 [Buildroot] [PATCH] Restrict tar transform to regular files Without this Timothy Pearson @ 2019-04-27 8:25 ` Yann E. MORIN 2019-04-27 8:49 ` Timothy Pearson 0 siblings, 1 reply; 4+ messages in thread From: Yann E. MORIN @ 2019-04-27 8:25 UTC (permalink / raw) To: buildroot Timothy, All, On 2019-04-26 11:49 -0500, Timothy Pearson spake thusly: > restriction, symlinks are rewritten and corrupted. Something is amiss in your commit log. It shoul;d be: titile on a single line Some text on multiple lines. Signed-off-by: Your NAME <your@email> > Example without the restriction: > > Input tree (valid): > package-githash/file1 > package-githash/link -> ./file1 > > Output tree (broken): > package-githash/file1 > package-githash/link -> package-githash/file1 > --- > support/download/git | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/support/download/git b/support/download/git > index 17ca04eb98..1acb795c81 100755 > --- a/support/download/git > +++ b/support/download/git > @@ -190,7 +190,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="flags=r;s#^\./#${basename}/#" \ OK, so this is a nice trick and all, but I can't find any reference to it in the man page. But I see it's in the git tree in doc/tar.texi... Your proposal would exclude hardlinks too, which is not correct I think. In fact, we would need to use 'S' (upper-case 'S') here, because we want it to apply to anything but symlinks. Also, the texi file states that "Default scope flags can also be changed using flags= statement in the transform expression." However, they are standard flags too, quoting: Supported flags are: g [...] i [...] x [...] <number> [...] [...] In addition, several transformation scope flags are supported, that control to what files transformations apply. These are: r Apply transformation to regular archive members. R Do not apply transformation to regular archive members. s Apply transformation to symbolic link targets. S Do not apply transformation to symbolic link targets. h Apply transformation to hard link targets. H Do not apply transformation to hard link targets. So I think we could simply write: --transform="s#^\./#${basename}/#S' Regards, Yann E. MORIN. > --numeric-owner --owner=0 --group=0 --mtime="${date}" --format=gnu \ > -T "${output}.list.sorted" >"${output}.tar" > gzip -6 -n <"${output}.tar" >"${output}" > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH] Restrict tar transform to regular files Without this 2019-04-27 8:25 ` Yann E. MORIN @ 2019-04-27 8:49 ` Timothy Pearson 2019-04-27 9:14 ` Yann E. MORIN 0 siblings, 1 reply; 4+ messages in thread From: Timothy Pearson @ 2019-04-27 8:49 UTC (permalink / raw) To: buildroot > Timothy, All, > > On 2019-04-26 11:49 -0500, Timothy Pearson spake thusly: >> restriction, symlinks are rewritten and corrupted. > > Something is amiss in your commit log. It shoul;d be: > > titile on a single line > > Some text on > multiple lines. > > Signed-off-by: Your NAME <your@email> Looks like the signed off line wasn't part of the commit...sorry about that. I've re-uploaded it. The rest of the formatting was generated by git format-patch and should be correct? >> Example without the restriction: >> >> Input tree (valid): >> package-githash/file1 >> package-githash/link -> ./file1 >> >> Output tree (broken): >> package-githash/file1 >> package-githash/link -> package-githash/file1 >> --- >> support/download/git | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/support/download/git b/support/download/git >> index 17ca04eb98..1acb795c81 100755 >> --- a/support/download/git >> +++ b/support/download/git >> @@ -190,7 +190,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="flags=r;s#^\./#${basename}/#" \ > > OK, so this is a nice trick and all, but I can't find any reference to > it in the man page. But I see it's in the git tree in doc/tar.texi... > > Your proposal would exclude hardlinks too, which is not correct I think. > In fact, we would need to use 'S' (upper-case 'S') here, because we want > it to apply to anything but symlinks. > > Also, the texi file states that "Default scope flags can also be changed > using flags= statement in the transform expression." However, they are > standard flags too, quoting: > > Supported flags are: > g [...] > i [...] > x [...] > <number> [...] > > [...] > > In addition, several transformation scope flags are supported, that > control to what files transformations apply. These are: > r Apply transformation to regular archive members. > R Do not apply transformation to regular archive members. > s Apply transformation to symbolic link targets. > S Do not apply transformation to symbolic link targets. > h Apply transformation to hard link targets. > H Do not apply transformation to hard link targets. > > So I think we could simply write: > > --transform="s#^\./#${basename}/#S' If that is functionally equivalent I'd be OK with it. Let me run a quick test against the original failing downloads first. > Regards, > Yann E. MORIN. > >> --numeric-owner --owner=0 --group=0 --mtime="${date}" --format=gnu \ >> -T "${output}.list.sorted" >"${output}.tar" >> gzip -6 -n <"${output}.tar" >"${output}" >> _______________________________________________ >> buildroot mailing list >> buildroot at busybox.net >> http://lists.busybox.net/mailman/listinfo/buildroot > > -- > .-----------------.--------------------.------------------.--------------------. >| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | >| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | >| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | >| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | > '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH] Restrict tar transform to regular files Without this 2019-04-27 8:49 ` Timothy Pearson @ 2019-04-27 9:14 ` Yann E. MORIN 0 siblings, 0 replies; 4+ messages in thread From: Yann E. MORIN @ 2019-04-27 9:14 UTC (permalink / raw) To: buildroot Timothy, All, [Please, wrap your messages at ~72 chars] On 2019-04-27 03:49 -0500, Timothy Pearson spake thusly: > > On 2019-04-26 11:49 -0500, Timothy Pearson spake thusly: > >> restriction, symlinks are rewritten and corrupted. > > > > Something is amiss in your commit log. It shoul;d be: > > > > titile on a single line > > > > Some text on > > multiple lines. > > > > Signed-off-by: Your NAME <your@email> > > Looks like the signed off line wasn't part of the commit...sorry about that. > I've re-uploaded it. The rest of the formatting was generated by git > format-patch and should be correct? No it's not correct, see the subject of the mail which ends up in the middle of a sentence, and see how patchwork stored it (even your v2): https://patchwork.ozlabs.org/patch/1091900/ By the way, why did you resend a v2 that does not address my comment, which suggests putting the flag at the end of the expression? Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-04-27 9:14 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-04-26 16:49 [Buildroot] [PATCH] Restrict tar transform to regular files Without this Timothy Pearson 2019-04-27 8:25 ` Yann E. MORIN 2019-04-27 8:49 ` Timothy Pearson 2019-04-27 9:14 ` Yann E. MORIN
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.