mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-18 21:46:35 +01:00
maint: Ensure generated file reproducibility for dist.
* doc/local.mk (doc-clean): New target. (DIST_CONFIGURE_FLAGS): New variable. (auto-clean): Use them in new target. * Makefile.am (dist-doc-pot-update): Use it in new target. (dist): Change to depend on it to clean possibly stale files, instead of doc-pot-update directly. Add a toplevel check to ensure that Autotools cache is up to date. Change-Id: I2ff2d88db9fe1e708ab65e33e1f3d7ecee882cb4
This commit is contained in:
parent
3d8d0642da
commit
416f11f1d4
2 changed files with 60 additions and 3 deletions
28
Makefile.am
28
Makefile.am
|
@ -954,9 +954,31 @@ guix-binary.%.tar.xz:
|
||||||
cp "$$tarball" "$@.tmp" ; mv "$@.tmp" "$@"
|
cp "$$tarball" "$@.tmp" ; mv "$@.tmp" "$@"
|
||||||
|
|
||||||
|
|
||||||
# The dependency on doc-pot-update is to generate the .pot files, which are
|
# Assert that Autotools cache is up to date with Git, by checking
|
||||||
# not checked in.
|
# PACKAGE_VERSION against HEAD. Indented to get past Automake.
|
||||||
dist: doc-pot-update
|
ifeq ($(MAKECMDGOALS),dist)
|
||||||
|
git_version = $(shell build-aux/git-version-gen .tarball-version)
|
||||||
|
ifneq ($(PACKAGE_VERSION),$(git_version))
|
||||||
|
$(warning Autotools cache out of date.)
|
||||||
|
$(info Autotools cache version: $(PACKAGE_VERSION).)
|
||||||
|
$(info Git version: $(git_version).)
|
||||||
|
$(info Please run ./bootstrap && ./configure $(DIST_CONFIGURE_FLAGS))
|
||||||
|
ifneq ($(GUIX_ALLOW_IRREPRODUCIBLE_TARBALL),yes)
|
||||||
|
$(error Cannot create reproducible tarball)
|
||||||
|
else
|
||||||
|
$(warning Tarball will be irreproducible; distdir will not get removed!)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
# The dependency on dist-doc-pot-update is to clean possibly stale doc and po
|
||||||
|
# files and only then generate the .pot files, which are not checked in.
|
||||||
|
dist: dist-doc-pot-update
|
||||||
|
dist-doc-pot-update: auto-clean
|
||||||
|
$(MAKE) guile$(EXEEXT)
|
||||||
|
$(MAKE) -C po/guix all
|
||||||
|
$(MAKE) -C po/packages all
|
||||||
|
$(MAKE) doc-pot-update
|
||||||
|
|
||||||
dist-hook: gen-ChangeLog gen-AUTHORS gen-tarball-version
|
dist-hook: gen-ChangeLog gen-AUTHORS gen-tarball-version
|
||||||
dist-hook: assert-no-store-file-names
|
dist-hook: assert-no-store-file-names
|
||||||
|
|
35
doc/local.mk
35
doc/local.mk
|
@ -291,3 +291,38 @@ $(eval $(call version.texi-from-git,vti,doc/guix.texi,))
|
||||||
$(foreach lang, $(MANUAL_LANGUAGES), \
|
$(foreach lang, $(MANUAL_LANGUAGES), \
|
||||||
$(eval i=$(shell echo $$(($(i)+1)))) \
|
$(eval i=$(shell echo $$(($(i)+1)))) \
|
||||||
$(eval $(call version.texi-from-git,$(i),po/doc/guix-manual.$(lang).po,-$(lang))))
|
$(eval $(call version.texi-from-git,$(i),po/doc/guix-manual.$(lang).po,-$(lang))))
|
||||||
|
|
||||||
|
DIST_CONFIGURE_FLAGS = \
|
||||||
|
--localstatedir=/var \
|
||||||
|
--sysconfdir=/etc
|
||||||
|
|
||||||
|
# Delete all Autotools-generated files and rerun configure to ensure
|
||||||
|
# a clean cache and distributing reproducible versions.
|
||||||
|
auto-clean: maintainer-clean-vti doc-clean
|
||||||
|
rm -f ABOUT-NLS INSTALL
|
||||||
|
rm -f aclocal.m4 configure libtool Makefile.in
|
||||||
|
if test -e .git; then \
|
||||||
|
git clean -fdx -- '.am*' build-aux m4 po; \
|
||||||
|
else \
|
||||||
|
rm -rf .am*; \
|
||||||
|
$(MAKE) -C po/guix maintainer-clean; \
|
||||||
|
$(MAKE) -C po/packages maintainer-clean; \
|
||||||
|
fi
|
||||||
|
rm -f guile
|
||||||
|
rm -f guix-daemon nix/nix-daemon/guix_daemon-guix-daemon.o
|
||||||
|
# Automake fails if guix-cookbook-LANG.texi stubs are missing; running
|
||||||
|
# autoreconf -vif is not enough.
|
||||||
|
./bootstrap
|
||||||
|
# The dependency chain for the guix-cookbook-LANG.texi was cut on purpose;
|
||||||
|
# they must be deleted to ensure a rebuild.
|
||||||
|
rm -f $(filter-out %D%/guix.texi %D%/guix-cookbook.texi, $(info_TEXINFOS))
|
||||||
|
./configure $(DIST_CONFIGURE_FLAGS)
|
||||||
|
|
||||||
|
# Delete all generated doc files to ensure a clean cache and distributing
|
||||||
|
# reproducible versions.
|
||||||
|
doc-clean:
|
||||||
|
rm -f $(srcdir)/doc/*.1
|
||||||
|
rm -f $(srcdir)/doc/stamp*
|
||||||
|
rm -f $(DOT_FILES:%.dot=%.png)
|
||||||
|
rm -f $(DOT_VECTOR_GRAPHICS)
|
||||||
|
rm -f doc/images/coreutils-size-map.eps
|
||||||
|
|
Loading…
Reference in a new issue