All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] download/git: create GNU format tar files
@ 2017-03-20 20:51 Arnout Vandecappelle
  2017-03-20 21:41 ` Peter Seiderer
  0 siblings, 1 reply; 2+ messages in thread
From: Arnout Vandecappelle @ 2017-03-20 20:51 UTC (permalink / raw)
  To: buildroot

On most distros, the tar format defaults to GNU. However, at build time
the default format may be changed to posix. Also, future versions of
tar will default to posix.

Since we want the tarballs created by the git download method to be
reproducible (so their hash can be checked), we should explicitly
specify the format. Since existing tarballs on sources.buildroot.org
use the GNU format, and also the existing hashes in the *.hash files
are based on GNU format tarballs, we use the GNU format.

In addition, the Posix format encodes atime and ctime as well as mtime,
but tar offers no option like --mtime to override them. In the GNU
format, atime and ctime are only encoded if the --incremental option is
given.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Cc: Peter Seiderer <ps.report@gmx.net>
---
Peter, can you test if this solves the issue for you?
---
 support/download/git | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/support/download/git b/support/download/git
index 7921411835..056057c700 100755
--- a/support/download/git
+++ b/support/download/git
@@ -94,6 +94,8 @@ popd >/dev/null
 # Generate the archive, sort with the C locale so that it is reproducible
 find "${basename}" -not -type d >"${basename}.list"
 LC_ALL=C sort <"${basename}.list" >"${basename}.list.sorted"
-tar cf - --numeric-owner --owner=0 --group=0 --mtime="${date}" \
+# Create GNU-format tarballs, since that's the format of the tarballs on
+# sources.buildroot.org and used in the *.hash files
+tar cf - --numeric-owner --owner=0 --group=0 --mtime="${date}" --format=gnu \
          -T "${basename}.list.sorted" >"${output}.tar"
 gzip -n <"${output}.tar" >"${output}"
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [Buildroot] [PATCH] download/git: create GNU format tar files
  2017-03-20 20:51 [Buildroot] [PATCH] download/git: create GNU format tar files Arnout Vandecappelle
@ 2017-03-20 21:41 ` Peter Seiderer
  0 siblings, 0 replies; 2+ messages in thread
From: Peter Seiderer @ 2017-03-20 21:41 UTC (permalink / raw)
  To: buildroot

Hello Arnout,

On Mon, 20 Mar 2017 21:51:21 +0100, "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be> wrote:

> On most distros, the tar format defaults to GNU. However, at build time
> the default format may be changed to posix. Also, future versions of
> tar will default to posix.
> 
> Since we want the tarballs created by the git download method to be
> reproducible (so their hash can be checked), we should explicitly
> specify the format. Since existing tarballs on sources.buildroot.org
> use the GNU format, and also the existing hashes in the *.hash files
> are based on GNU format tarballs, we use the GNU format.
> 
> In addition, the Posix format encodes atime and ctime as well as mtime,
> but tar offers no option like --mtime to override them. In the GNU
> format, atime and ctime are only encoded if the --incremental option is
> given.
> 
> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> Cc: Peter Seiderer <ps.report@gmx.net>
> ---
> Peter, can you test if this solves the issue for you?

After removing the old dl/wiringpi-2.44.tar.gz file, applying your patch
and done a fresh download:

	$ cat package/wiringpi/wiringpi.hash 
# Locally calculated
sha256 464c98ed54f5c0ad6611e270be3491c4598a32b7e86b208255862a301c564955  wiringpi-2.44.tar.gz

	$ sha256sum dl/wiringpi-2.44.tar.gz 
464c98ed54f5c0ad6611e270be3491c4598a32b7e86b208255862a301c564955  dl/wiringpi-2.44.tar.gz

Tested-by: Peter Seiderer <ps.report@gmx.net>

Regards,
Peter

> ---
>  support/download/git | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/support/download/git b/support/download/git
> index 7921411835..056057c700 100755
> --- a/support/download/git
> +++ b/support/download/git
> @@ -94,6 +94,8 @@ popd >/dev/null
>  # Generate the archive, sort with the C locale so that it is reproducible
>  find "${basename}" -not -type d >"${basename}.list"
>  LC_ALL=C sort <"${basename}.list" >"${basename}.list.sorted"
> -tar cf - --numeric-owner --owner=0 --group=0 --mtime="${date}" \
> +# Create GNU-format tarballs, since that's the format of the tarballs on
> +# sources.buildroot.org and used in the *.hash files
> +tar cf - --numeric-owner --owner=0 --group=0 --mtime="${date}" --format=gnu \
>           -T "${basename}.list.sorted" >"${output}.tar"
>  gzip -n <"${output}.tar" >"${output}"

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-03-20 21:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-20 20:51 [Buildroot] [PATCH] download/git: create GNU format tar files Arnout Vandecappelle
2017-03-20 21:41 ` Peter Seiderer

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.