I like that Guix is moving to a preference for non-'make dist' tarballs! I have suspected that this could lead to some really complex circular or cross-compile/bootstrap problems, and that we eventually for some small set of packages could end up believing that a 'make dist' tarball is the lesser of all evils after all. But I hope that my fear here is wrong.
Janneke Nieuwenhuizen <[email protected]> writes: >> >> https://blog.josefsson.org/2024/04/13/reproducible-and-minimal-source-only-tarballs/ > > Yes, the only point I might still disagree on is the ChangeLog (yes, > git-to-changelog must be fixed, preferrably written in Guile, and until > then you need to set not only timezone but also locale; well, that's > doable). But it's a difficult choice, without any generated files: > good, without ChangeLog: bad. Hmm. I later realized there is a compromise between these two positions: 1) Require entire git history so that git2cl or git-to-changelog works 2) Require that building a reproducible tarball works from a --depth 1 checkout (or a git-archive tarball). and that compromose is to demand that your --depth only need to be as large to cover up until the last release, and then do something like: .PHONY: gen-ChangeLog gen-ChangeLog: $(AM_V_GEN)if test -e $(srcdir)/.git; then \ LC_ALL=en_US.UTF-8 TZ=UTC0 \ $(top_srcdir)/build-aux/gitlog-to-changelog \ --srcdir=$(srcdir) -- \ v$(PREV_VERSION)~.. > $(distdir)/cl-t && \ { printf '\n\nSee the source repo for older entries\n' \ >> $(distdir)/cl-t && \ rm -f $(distdir)/ChangeLog && \ mv $(distdir)/cl-t $(distdir)/ChangeLog; } \ fi That is, only include ChangeLog entries between the last public release and the current public release. I use this for GNU InetUtils releases (and possibly some other packages). I think this isn't entirely against GNU policy. There is tradition in GNU projects to trim ChangeLog (e.g., GNU coreutils), and this is just more heavy trimming. However, I am leaning towards a conclusion that generated and vendored files in git are generally indefensible, and that we gave up on the concept of ChangeLog files when we stopped maintaining them by hand and started relying on git logs as the source. /Simon
signature.asc
Description: PGP signature
