TL;DR: translationproject.org only serves latest files.
gnulib fetches them as part of bootstrap.
I want a reproducible tarball. Vendor? Mirror in submodule?
What's preferred?
Hello,
as part of my effort to build reproducible gnutls release tarballs using Nix,
I've encountered a problem with sourcing pinned translation files.
GnuTLS used to vendor them, until a [switch to fetching] in ./bootstrap
via gnulib.
In a sense, freezing translations happens by releasing a gnutls tarball.
Unfortunately,
that doesn't let one programmatically reproduce said tarball in the future.
There's https://translationproject.org/latest/gnutls,
but no, say, https://translationproject.org/2026-09-28/gnutls,
so something has to store the translation state as of the time we cut a release.
In the absence of an official way
there seems to be a multitude of unofficial approaches,
and I'm getting lost in them.
There is at least one tool specifically designed
for mirroring that turns changes into individual commits:
util-linux's [git-tp-sync].
Most projects seem to update in leaps in between releases.
I don't want to go back to having such large files with a different update cycle
[vendored] in the repo. Simon Josefsson's takeaway reads kinda bitter:
> I reverted back to storing translations in git,
> something that I did for most projects
> back when I was using CVS 20 years ago.
There might be some sense in
mirroring into a separate repository next to gnutls,
and including it as a git submodule,
but git submodules are so notoriously ergonomic
they never make a good answer to anything.
Alternatively, I can freeze it with a commit hash of a side-repo
inside the third let binding of devel/nix/release-tarball.nix,
with a comment on the door saying 'Beware of the Leopard',
so that whoever's destined to ponder the question next
will have another bespoke solution to scratch their heads at.
Besides, would it be confusing to have two translation fetching methods
that could go out of sync and require --skip-po?
Finally, gnulib itself seems to ship translation files as a [separate tarball].
So, before I invent yet another slightly different wheel:
* could translationproject.org provide versioned downloads?
* until that happens, what's the preferred way to freeze translations?
Alex Sosedkin.
[switch to fetching]: https://gitlab.com/gnutls/gnutls/-/merge_requests/678
[vendored]: https://blog.josefsson.org/2025/03/24/reproducible-software-releases
[separate tarball]: https://ftp.gnu.org/gnu/gnulib/gnulib-l10n-20241231.tar.gz
[git-tp-sync]:
https://karelzak.blogspot.com/2010/03/git-pull-from-translationprojectorg.html