buildroot/package/tar/tar.mk
Luc Creti e185f62c58 package/tar: bump target version to 1.32 (host is kept at 1.29)
The host tar is used to create the archives in the VCS download backends
(git, cvs, svn, hg...) and tar 1.30 and forward have changed the way
they generate the archives.

So, all the archives that have been generated before 1.30 was released
are not bit-for-bit reproducible (even though the extracted content
would be), so the hashes we have for those archives would not match.

Hence host-tar must be kept at version 1.29.

For the target variant, this is less important, so bump it to the latest
version.

Fixes: https://bugs.busybox.net/show_bug.cgi?id=12256

Signed-off-by: Luc Creti <luc.creti@atos.net>
Signed-off-by: Carlos Santos <unixmania@gmail.com>
[yann.morin.1998@free.fr: move all host-related comments and variables]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2020-01-18 13:32:17 +01:00

56 lines
1.6 KiB
Makefile

################################################################################
#
# tar
#
################################################################################
TAR_VERSION = 1.32
TAR_SOURCE = tar-$(TAR_VERSION).tar.xz
TAR_SITE = $(BR2_GNU_MIRROR)/tar
# busybox installs in /bin, so we need tar to install as well in /bin
# so that we don't end up with two different tar
TAR_CONF_OPTS = --exec-prefix=/
TAR_LICENSE = GPL-3.0+
TAR_LICENSE_FILES = COPYING
ifeq ($(BR2_PACKAGE_ACL),y)
TAR_DEPENDENCIES += acl
TAR_CONF_OPTS += --with-posix-acls
else
TAR_CONF_OPTS += --without-posix-acls
endif
ifeq ($(BR2_PACKAGE_ATTR),y)
TAR_DEPENDENCIES += attr
TAR_CONF_OPTS += --with-xattrs
else
TAR_CONF_OPTS += --without-xattrs
endif
$(eval $(autotools-package))
# host-tar is used to create the archives in the VCS download backends and tar
# 1.30 and forward have changed the archive format. So archives generated with
# earlier versions are not bit-for-bit reproducible and the hashes would not
# match. Hence host-tar must be kept at version 1.29.
HOST_TAR_VERSION = 1.29
# host-tar: use cpio.gz instead of tar.gz to prevent chicken-egg problem
# of needing tar to build tar.
HOST_TAR_SOURCE = tar-$(HOST_TAR_VERSION).cpio.gz
define HOST_TAR_EXTRACT_CMDS
mkdir -p $(@D)
cd $(@D) && \
$(call suitable-extractor,$(HOST_TAR_SOURCE)) $(TAR_DL_DIR)/$(HOST_TAR_SOURCE) | cpio -i --preserve-modification-time
mv $(@D)/tar-$(HOST_TAR_VERSION)/* $(@D)
rmdir $(@D)/tar-$(HOST_TAR_VERSION)
endef
HOST_TAR_CONF_OPTS = --without-selinux
# we are built before ccache
HOST_TAR_CONF_ENV = \
CC="$(HOSTCC_NOCCACHE)" \
CXX="$(HOSTCXX_NOCCACHE)"
$(eval $(host-autotools-package))