On 2/15/25 12:10 PM, Stéphane Glondu wrote:
I realize my previous email was a bit short: I was wondering if this
.tbz still source code because in the autotools world, package sources
come with configure scripts ready to run, but the good practice in
Debian is to regenerate those from configure.ac.

Well, we enter a philosophical debate that is not specific to OCaml and probably should be discussed elsewhere... Adding debian-devel to get more opinions.

Summary to other debian-devel readers: we are facing some upstreams that publish "official" tarballs that differ from what is in their git. The differences may include: variable substitutions, generated files... I guess this is pretty common (cf. autotools). Moreover, the build system behaves differently if it is called from git or not, or from extracted official tarballs or not.

IMHO, traditionnaly, "source code" from Debian point of view is whatever upstream releases as "official" tarballs (i.e. elpi-2.0.7.tbz), which may differ from what is in upstream git (i.e. v2.0.7.tar.gz). What makes me think that is the special care that is taken in keeping upstream tarballs pristine (with their signatures...).

[...]

What do you think about the topic?

My e-mail is very opinionated, I would really like to hear other opinions.

hello! ✨

disclaimer upfront, I know pretty much nothing about ocaml, this is based on my experience with C/Rust/Go/etc.

I think the concept of "building the source code into source code" [sic] that is common with autotools, is just the regular build in a trenchcoat and should happen on Debian build servers. This is to avoid forcing a gap between the VCS and Reproducible Builds that nobody feels responsible for. Coincidentally this topic was also discussed in #reproducible-builds irc yesterday.

With regards to signatures, quoting from an email I wrote briefly after the XZ incident[0]:

> It's from the old mindset of code signing being the only way of securely getting code from upstream. Recent events have shown (instead of bothering upstream for signatures) it's much more important to have clarity and transparency what's in the code that is compiled into binaries and executed on our computers, instead of who we got it from. The entire reproducible builds effort is based on the idea of the source code in Debian being safe and sound to use.

[0]: https://lists.debian.org/debian-devel/2024/04/msg00125.html

I know Debian attempts to regenerate the autotools files, but there is no way to tell if this actually worked, I vaguely remembered XZ was specifically one of the cases where it didn't.

In other news, note there's currently a push within Arch Linux to move away from upstream custom tarballs towards VCS snapshots:

https://gitlab.archlinux.org/archlinux/rfcs/-/merge_requests/46

Also because people found this interesting yesterday, Arch Linux and Debian disagree on "what's the source code of curl 8.12.1":

Arch Linux: https://whatsrc.org/artifact/sha256:146d2d673358b7927d9a3c74e22b6b0e7f9a1aee2a4307afbe6ac07f12764130 Debian: https://whatsrc.org/artifact/sha256:599ff98cbab933a8b3640a084b12a5308a20795c192855ee454a8c1c16fa4dac

Diff between those two:

https://whatsrc.org/diff-right-trimmed/sha256:146d2d673358b7927d9a3c74e22b6b0e7f9a1aee2a4307afbe6ac07f12764130/sha256:599ff98cbab933a8b3640a084b12a5308a20795c192855ee454a8c1c16fa4dac

Even if we got some kind human to review the source code in entirety for us, which one should they review?
sha256:146d2d673358b7927d9a3c74e22b6b0e7f9a1aee2a4307afbe6ac07f12764130?
sha256:599ff98cbab933a8b3640a084b12a5308a20795c192855ee454a8c1c16fa4dac?
Both?

cheers,
kpcyrd

Reply via email to