All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH] Restrict tar transform to regular files Without this
Date: Sat, 27 Apr 2019 10:25:58 +0200	[thread overview]
Message-ID: <20190427082558.GD30214@scaer> (raw)
In-Reply-To: <1939146889.2013926.1556297354423.JavaMail.zimbra@raptorengineeringinc.com>

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

  reply	other threads:[~2019-04-27  8:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
2019-04-27  8:49   ` Timothy Pearson
2019-04-27  9:14     ` Yann E. MORIN

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190427082558.GD30214@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.