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

Re: Current NEW review process saps developer motivation



On Fri, 2022-08-26 at 11:58 +0100, Simon McVittie wrote:

> I don't think it's always useful to talk about "the" source or "the"
> preferred form for modification, as though there is only one.

I see both the licensing and source aspects of the Free Software
movement as aspiring to providing a high level of equality of access to
a work between both the original author and far downstream recipients.

Obviously full and universal equality is impossible because part of the
work is only in the author's mind and not everyone can obtain, use and
program computers, but approaching that as closely as possible is
important and it is important to think about how to achieve a high
level of equality for each work in each context.

What is the "source" in any given context is a *choice* the author
makes about what level of access to a work that they want allow for
themselves and others in the future.

> I think it would be more appropriate to consider whether the form
> in which some software is provided is suitable for exercising your Free
> Software rights (as described in the FSF's "four essential freedoms",
> for example) within the scope of whatever package we're talking about at
> the time, or whether it's unsuitable for that use. If it's suitable, then
> it's source, or close enough; if it's unsuitable, then that needs fixing.

I have to strongly disagree with this, because of the equality of
access issue that that I mentioned above.

For example:

I use autotools to create a ./configure shell script but ship only the
shell script itself. You can run/read/modify that script just fine, but
it is incredibly verbose and there is a lot of repetition due to how
these scripts are generated. Clearly I have better access than you. 

I use mrustc to generate a C version of some Rust code, ship the C code
to you as source. You can do everything you want with the C code, but
you cannot build the Rust code with rustc and get a safer binary nor
fix bugs in the code generation etc. I still can do those and more,
as well as all the things that you can do with the C code.

I write some JavaScript with extensive comments and formatting, then
I run a minifier and ship that as the source. You can still run, read,
modify the code just fine, but Debian so far doesn't consider it as
source. If instead of minifying, I just strip all the comments then the
code will be more accessible to you and Debian probably wouldn't be
able to tell I stripped it, but I will be able to understand the code
much easier than you since I have comments.

I create a model in Blender, keep that model private, render it to a
PNG file and ship that as source. You have all the essential freedoms
for the PNG form of the scene, but you can't easily modify the texture
or shape of the model and rerender, but I can still do all of those
things. Later I lose the Blender model and now we are equal, both
unable to do useful things. At some point an app store flags the game
the image is in as inappropriate in some culture and to fix that I need
to recreate the model from scratch. This time I learn my lesson and
check the Blender model into the git repo.

> If we insist on a particularly puritanical view of what is source and
> what is the preferred form for modification, then I think there is a
> significant risk of producing a distribution which is unquestionably Free
> Software, but either is missing useful Free software because it would be
> too hard to get that software into a form that meets our self-imposed
> policies, or can only contain that software as a result of individual
> developers putting a heroic amount of effort into meeting those policies -
> particularly if we always go back to the "true source" and generate from
> there every time

We have the contrib/non-free areas of the archive for situations where
we aren't yet meeting our requirements, including around source and
build dependencies. I see no reason why we should not use it more often
for things that are licensed as Free Software but hard to package
according to our principles.


> (which I will note that the ftp team specifically do not insist on
> unless there is a technical reason to do so, they merely require
> source to be *available*).

This is slightly incomplete, as I understand it the source has to be
available in Debian main *and* the build process must be *possible*
using only components from Debian main, but it isn't mandatory to run
the build process. Of course the best way to prove those requirements
are met is to actually run the build process.


Personally, I think our current policies on building from source are
not adequate to ensure that Debian and our users can practically
exercise our Free Software rights for all source files in future.

At minimum, I would like to see a requirement to build-depend on the
appropriate build tools, even if those tools aren't yet run during the
build process because the build is impractical etc.

> If we require contributors to do a considerable amount of work that
> does not advance the project's goals, at best that's a waste of our most
> limited resource (developers' time and motivation), and at worst it's a
> recipe for burned-out contributors, which we absolutely should not want,
> both because we're a community that cares about the well-being of our
> contributors (or at least I hope we are!) and because even from a purely
> amoral/utilitarian point of view, contributors giving up on the project
> harm our ability to achieve our goals.

There are a lot of examples of busywork in Debian, such as documenting
licenses, packaging dependencies, removing non-free files that are only
in source packages, runtime selection of correct CPU instructions,
fixing build failures, porting reverse dependencies to newer versions
of APIs etc. All of these are things that contributors complain about
and get burned out by us requiring or even suggesting. All of them
however are necessary in some way. I think the requirements around
source and building are just another example of this.

-- 
bye,
pabs

https://wiki.debian.org/PaulWise

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: