From: Alejandro Colomar Date: Tue, 11 Apr 2023 20:33:44 +0000 (+0200) Subject: dist.mk, version.mk: Create reproducible tarballs X-Git-Tag: man-pages-6.05-a1^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=254fe38b229dd37f9128fa39d4e8a29d40433388;p=thirdparty%2Fman-pages.git dist.mk, version.mk: Create reproducible tarballs Anyone can create a tarball from a release tag, and it should be identical to the release tarball, so that the PGP signature made at the release matches. This is useful for distributors. Suggested-by: Marcos Fouces Signed-off-by: Alejandro Colomar --- diff --git a/lib/dist.mk b/lib/dist.mk index ccbaeb8813..de1042bc1a 100644 --- a/lib/dist.mk +++ b/lib/dist.mk @@ -18,6 +18,13 @@ include $(srcdir)/lib/verbose.mk _DISTDIR := $(builddir)/dist +DEFAULT_TARFLAGS := --sort=name +DEFAULT_TARFLAGS += --owner=root:0 +DEFAULT_TARFLAGS += --group=root:0 +DEFAULT_TARFLAGS += --mtime='$(DISTDATE)' +EXTRA_TARFLAGS := +TARFLAGS := $(DEFAULT_TARFLAGS) $(EXTRA_TARFLAGS) + DISTFILES := $(shell $(GIT) ls-files $(HIDE_ERR) | $(SED) 's,^,$(srcdir)/,') _DISTFILES := $(patsubst $(srcdir)/%,$(_DISTDIR)/%,$(DISTFILES)) _DISTPAGES := $(filter $(_DISTDIR)/man%,$(_DISTFILES)) @@ -41,10 +48,10 @@ $(_DISTOTHERS): $(_DISTDIR)/%: $(srcdir)/% | $$(@D)/ $(DISTFILE): $(_DISTFILES) | $$(@D)/ $(info TAR $@) - $(TAR) cf $@ -T /dev/null + $(TAR) $(TARFLAGS) -cf $@ -T /dev/null $(GIT) ls-files \ | $(SED) 's,^,$(_DISTDIR)/,' \ - | $(XARGS) $(TAR) rf $@ -C $(srcdir) \ + | $(XARGS) $(TAR) $(TARFLAGS) -rf $@ -C $(srcdir) \ --transform 's,^$(_DISTDIR),$(DISTNAME),' $(DISTFILE).bz2: %.bz2: % | $$(@D)/ diff --git a/lib/version.mk b/lib/version.mk index 1a8fa53c24..1d17b6c998 100644 --- a/lib/version.mk +++ b/lib/version.mk @@ -14,6 +14,7 @@ include $(srcdir)/lib/verbose.mk DISTNAME := $(shell $(GIT) describe $(HIDE_ERR)) DISTVERSION := $(patsubst man-pages-%,%,$(DISTNAME)) +DISTDATE := $(shell $(GIT) log -1 --format='%aD') endif # MAKEFILE_VERSION_INCLUDED