Re: What is the source code (was: [RFC] General Resolution to deploy tag2upload)
I'm going to try to ramp down my involvement in this subthread about
the philosophical question of whether and when the git history is a
necessary part of "the source code". Just one more message...
Gerardo Ballabio writes ("Re: What is the source code (was: [RFC] General Resolution to deploy tag2upload)"):
> Il giorno mer 19 giu 2024 alle ore 19:03 Ian Jackson
> <ijackson@chiark.greenend.org.uk> ha scritto:
> > [the rest of your message]
>
> Overall, you make some very valid points. But if the concept that "the
> history is the source" were really upheld and taken to its
> consequences, it might disrupt the whole free software ecosystem.
I agree that there are implications for the way we share software.
(I prefer to think of this from an ethical and ideological point of
view, rather than a legal one.)
> Because, then, every upstream of a GPL project who develops on a
> private VCS (or without using a VCS) and only releases tarballs would
> be violating the GPL, and nobody could distribute binary packages
> because they couldn't provide the "complete corresponding source
> code".
I think a downstream who is using git, and distributing binaries,
should indeed publish their git history. (In the cases where git is
the source, but I think this is common.)
I don't know if it'sa still true, but a high-profile Linux distro were
in the habit of providing their Linux kernel sources to their users
only as an upstream source tarball plus a single giant diff - but,
internally they're using git. Keeping the git to themselves in this
situation seems like a fairly blatant trick to stop people from
exercising their (moral and legal) rights.
> And since Debian currently distributes only the current version in its
> source packages, Debian would be in violation too.
For these packages, I don't view the source packages as discharging
our (moral and legal) obligations, indeed. We *do* sort-of discharge
those obligations because typically the maintainer publishes the git
history on salsa, somewhere, in some form or other.
If you're a Debian expert, salsa is often where you get the source
code to a program if you want to seriously work on it. (It seems to
me that this is another strong signal that we *do*, in practice,
consider the salsa git repos to be the preferred form for
modification.)
> And tag2upload isn't a step towards fixing that, because (as I
> understand, correct me if I'm wrong) it too builds packages that only
> contain the current version.
Yes, tag2upload doesn't make source packages significantly better at
discharging our (moral and legal) obligations. It may have integrity
and convenience benefits, and fix a few anomalies, but it doesn't
improve the actual source packages very much.
But tag2upload *does* arrange the publication of the git history, in a
standardised and official and machine-useable place - the dgit-repos
git server.
So I think it does address this problem.
> Furthermore, there's another issue regarding the freeness of the
> package: if the source must include the history, then you aren't
> actually completely free to modify the source, because you can't
> delete the history.
I'm not sure if you mean a barrier that is practical, or legal/moral.
You certainly can rewrite the history. Whether you *should* is
another matter. (Sometimes you might be legally *required* to, as has
been discussed in elsewhere in this megathread.) I think this is
related to, for example the GPL's clause requiring notice of
modification (5(a)). Those notices are a bit like an invariant
section, too. I don't see the problem here that you do.
Ian.
--
Ian Jackson <ijackson@chiark.greenend.org.uk> These opinions are my own.
Pronouns: they/he. If I emailed you from @fyvzl.net or @evade.org.uk,
that is a private address which bypasses my fierce spamfilter.
Reply to: