summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Colomar <alx@kernel.org>2023-04-11 22:33:44 +0200
committerAlejandro Colomar <alx@kernel.org>2023-04-11 22:44:03 +0200
commit254fe38b229dd37f9128fa39d4e8a29d40433388 (patch)
treef33a6114aa9af39a9d7edfee4d750f452f96f64e
parent121c8de01732bc36daea563edf5764bd3f0f8720 (diff)
dist.mk, version.mk: Create reproducible tarballsman-pages-6.05-a1
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 <marcos@debian.org> Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--lib/dist.mk11
-rw-r--r--lib/version.mk1
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/dist.mk b/lib/dist.mk
index ccbaeb881..de1042bc1 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 1a8fa53c2..1d17b6c99 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