Simon Josefsson <si...@josefsson.org> writes:

>> Could you check if that works better?  (You can probably just start with
>> ‘guix time-machine -q --commit=143faecec3c81e4c7325430a6e759b1619eb406f …’).
>
> With
>
> jas@kaka:~/src/shepherd$ git log -1 
> commit f7fa03a74be697c0926c62e9297e9f78d58ff469 (HEAD, tag: v1.0.4)
> Author: Ludovic Courtès <l...@gnu.org>
> Date:   Wed Apr 16 12:15:26 2025 +0200
>
>     build: Bump to version 1.0.4.
>     
>     * configure.ac: Bump to version 1.0.4.
> jas@kaka:~/src/shepherd$ git clean -d -x -f; git restore --staged .
> jas@kaka:~/src/shepherd$ git restore .
> jas@kaka:~/src/shepherd$ guix time-machine -q
> --commit=143faecec3c81e4c7325430a6e759b1619eb406f -- shell -CPDf
> guix.scm texlive-scheme-basic -- sh -c 'autoreconf -fvi && ./configure
> && make && make dist'
> ...
> jas@kaka:~/src/shepherd$ sha256sum ../shepherd-1.0.4.tar.gz
> 13306a6b56dfe252464e84a23c23a7234338cc752c565e1b865f7cbf8a03f0cf  
> ../shepherd-1.0.4.tar.gz
> jas@kaka:~/src/shepherd$ trydiffoscope --webbrowser ../shepherd-1.0.4.tar.gz 
> shepherd-1.0.4.tar.gz 
> http://try.diffoscope.org/uhcedrquzdpu

There are differences in ‘Makefile.in’: one includes ‘TODO’ and
‘missing’ in ‘EXTRA_DIST’, the other doesn’t.  Was this a clean tree?

Then the .m4 files are different.  For example, ‘m4/gettext.m4’ is from
Gettext 0.19.8 in one case (serial 68) and the other from 0.18.2 (serial
66).

The interesting thing is that this doesn’t even match what’s in Guix:

--8<---------------cut here---------------start------------->8---
$ head -1 $(find $(guix build gettext) -name gettext.m4)
# gettext.m4 serial 71 (gettext-0.20.2)
$ guix package -A ^gettext
gettext         0.21    out,doc gnu/packages/gettext.scm:169:2
gettext-minimal 0.21    out,doc gnu/packages/gettext.scm:56:2
--8<---------------cut here---------------end--------------->8---

Doesn’t ‘autoreconf -vfi’ get fresh copies of these files?

Anyway, those m4 differences yield to corresponding changes in
‘configure’.

Then there’s the ‘UPDATED’ variable in ‘doc/version.texi’: “7 April”
vs. “17 April”.

Next there’s differences in .gmo files, where one has fewer strings.

The ‘POT-Creation-Date’ in .po files differs, despite efforts to fix it!
Line numbers and the string list differ, too.

Conclusion: it’s much worse that what we first saw during the 1.0.0
release candidate cycle, which was supposedly fixed. :-/

Ideas?

> Could be simple like this:
>
> jas@kaka:~/src/shepherd$ git archive --prefix=shepherd-$(git describe)/ -o 
> shepherd-$(git describe)-src.tar.gz v1.0.4
> jas@kaka:~/src/shepherd$ sha256sum shepherd-v1.0.4-src.tar.gz
> 1ba6959afcb2bd8cb8c6d0967a02c3bd26698133325f64293ff9fcee1ed7a41b  
> shepherd-v1.0.4-src.tar.gz
> jas@kaka:~/src/shepherd$ git --version
> git version 2.49.0
> jas@kaka:~/src/shepherd$
>
> Reproducing these git-archive artifacts is easier, but still not
> trivial.  It depends on the Git version you use, and I think it in
> theory could also depend on build dependencies of git too.

Yes; that’s the reason we take source from Git rather than from
generated archives for packages in Guix.

I don’t see what these ‘git archive’-generated tarballs buy us though.
I would just publish the commit ID and let people fetch it directly from
Git.

Thanks for your feedback,
Ludo’.

Reply via email to