[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Minified files and source code requirement

Ian Jackson <ijackson@chiark.greenend.org.uk> writes:

> One thing we and our users need to be able to do is to modify the code
> we distribute and still continue to take other changes from upstream.
> So any format that is unnecessarily hard to merge (see below for more
> discussion of this) is not suitable.

I think it's important to realize here that we've now drifted away from
the original topic (whether something is free software by our definition)
and into a question of bugginess, maintainability, and suitability for the
Debian archive for non-DFSG reasons.

You have a reasonable point about being concerned about upstream practices
that make it very difficult for us to maintain Debian-specific patches, or
for our users to modify the software without having to irrevocably fork
it.  But that's tricky territory with a lot of tradeoffs, and it's not
directly related to DFSG freeness.  If it were, we would have to consider
non-free the previous free releases of upstream software whose subsequent
releases are now non-free, since obviously one cannot merge new upstream
changes there at all.  We don't do that for good reasons.

> Another way to look at this is that if what we have is actually the
> ouput of some automated process done by upstream from secret (or
> unpalatably licensed) input files, anyone who modifies our source
> package will be committing the cardinal programming sin of editing an
> output file.

I don't think this line is as clear as it sounds.  I know of several
software packages where the source code was originally output from some
other tool, but even upstream now tweaks the output instead of re-running
the tool; either the tool is impractical, or in many cases has actually
been lost.

> Also I think the question of fairness is important: someone who forks
> the work based on the source code in Debian should not inherently be in
> a worse a position than the original author, as regards ability to
> modify and update the work.

I agree with this as a general ethical principle that I personally would
follow, but this is not an explicit requirement of the DFSG, and I don't
think we should write it into the DFSG implicitly.  As I mentioned in my
previous message, there are a lot of ways to create such a disadvantage,
and we don't enforce many of them.

To take a specific example, the upstream of GNAT, the Ada compiler, makes
use of a very comprehensive and exhaustive validation test suite when
making changes to the compiler.  People who do not have access to that
test suite are in an inherently worse position with respect to their
ability to modify and update the compiler, but that test suite is not free
software; it contains, among other things, large numbers of test cases
that upstream developed from code provided by companies with support
contracts which was only provided under an NDA or non-free licenses.  I
don't believe that makes GNAT non-free under the DFSG.

> Now obviously there are all sorts of advantages to original authors:
> they are most familiar with the code; they may have private tools which
> help with editing the source; they have the benefit of the inertia of
> downstreams; etc.


> But I think we should draw the line at software whose original authors
> prevent us from using the most convenient form for our modifications.
> That is not Free Software and it should not be in Debian.

I don't think there's anything magical about that particular line, which
is the extent of what I'm arguing.  I do agree that this might frequently
make the software non-free, but I don't think it's something about which
one can write a hard and fast rule without having to think about it a
little bit.

I think a better line is whether the source tarball includes all the
pieces required for someone with appropriate skills to make modifications
to the software with reasonable ease.  The advantage of that, as opposed
to trying to weigh whether upstream has additional advantages, is that
it's a judgement call that can be made solely based on the contents of the
source tarball without reference to anything external.

Although yes, we may need to make some special exceptions for software
where *no one* can make modifications with reasonable ease because the
tools required to do so have all been lost, which I suppose does come
closer to your point.  But I think that's a relatively rare case, to the
point where it can probably be considered as one-by-one exceptions.

>> For example, suppose I include an image in a piece of software that I
>> generated by taking a digital photograph of something in RAW,
>> manipulating it in Photoshop, and then exporting it as a JPEG.  What's
>> the source?  In the GPL sense, one can make an argument that the
>> original RAW image is the preferred form for modification, since if I
>> had it available I'd probably use it rather than the JPEG to make
>> further changes.

> No, the source is not the RAW image.  It is the Photoshop file, which
> contains the additional layers information and metadata.  If you had the
> choice you would use that to edit the file again.  And yes, that means
> that many images which have been manipulated in Photoshop can't be in
> Debian because they can't be built from source using software in Debian
> main.  (Unless, I guess, GIMP can read the file and produce the JPEG.  I
> have no idea about that.)

> If you throw the Photoshop file away for some reason, then the JPEG
> itself is the best starting point for further changes.  That's because
> going back to the RAW would lose all your manipulations which you
> wouldn't want to do again.

This puts us in a situation of having our definition of source depend on
what data upstream has available to them but doesn't distribute (and
possibly doesn't even tell us about).  I'm not sure that one can really
call this the clearer, bright-line position.  :)  That strikes me as even
harder to determine in many cases than the judgement call I think we
should be making.

It also strikes me as somewhat bizarre that the DFSG status of a work
should depend on whether or not some file that isn't part of the source
tarball exists somewhere in the universe, and that if all copies of it are
destroyed something that was non-free suddenly becomes free.  Admittedly,
I have a few pieces of documentation like that as well, but it still seems
like a very strange place for this line of argument to lead.

Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>

Reply to: