Gerardo Ballabio writes ("What is the source code (was: [RFC] General 
Resolution to deploy tag2upload)"):
> Paul R. Tagliamonte wrote:
> > I wonder if we have a good idea of what the project believes to be the case 
> > between #1 and #2:
> >
> > 1) Is the source of a package the debian source distribution?
> > 2) Is the source of a package the VCS where the source is held?
> 
> Let me rewrite that in a different way:
> 
> 1) is the source of a package the current version of the code? [*]
> 2) is the source of a package the complete history of the project? [**]

Yes, this ks the key question.  I agree with you that the
representation doesn't matter for this purpose. [1]

My answer is that it depends on the development practices (mostly, the
development practices of upstream), but for most modern software the
answer is 2.

I should be clear that I thiknk there is room for reasonable
disagreement on this, particularly since the question is so
context-dependent.

> Speaking for myself, I believe the source is "the set of files that
> are required in order to build the package",

Well, *that's* certainly not sufficient.  Because intermediate build
products like minified js or whatever, might be sufficient to build
the package.

We want to be able to *study* and *modify* and *share* the package.
Including sharing changes we make with other people working on other
distros or directly with upstream.

This is why the GPL defines "source code" as the "preferred form for
modification".

When upstream maintains the code in git, they (and their users)
typicaly sometimes *use* that git history to decide whether and how to
modify the program.  That, after all, is one of the reasons the
history is useful.

In this sense, the history is like comments.  You wouldn't think it
was still the source code if all the comments had been stripped out.

> that is, the current version, and only that.

So, I think, often, I would disagree with you about that.

> The history of the project may be useful information as it documents
> how the code was developed, but it is not necessary in order to build
> the package AND it is not necessary in order to develop a modified
> version. One could argue that the "preferred form for modification",
> as per the GPL, includes anything that might provide useful
> information to a developer.

I think it includes the information that upstream have, and which
upstream use as part of the representation of the project.

One way of looking at this is that the point of this rule is that the
upstream is not supposed to be in a better position than one of our
users - at least, not because they lack some of the computer data that
upstream has and uses.

I hope this explains my view.  I won't be particularly surprised if
you're not convinced, TBH - as I say, there's definitely room for
disagreement.  But I thought it worth setting out my reasoning.

Thanks,
Ian.

[1] If the cover messages contained in files in debian/patches are
part of "the source", they're still part of "the source" if they are
transformed into git commit messages and the actual patch files
deleted.

Conversely, if git commit messages and diffs aren't "source code",
then when they get converted into files in debian/patches they're
still not "source code" and you wouldn't be breaching any principles
if you converted the package to "3.0 (native)", retaining only the
unpacked state, and threw away the patch files.

-- 
Ian Jackson <ijack...@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 via email to