Friday, March 25, 2005

What is readable source?

What can be considered readable source code? What freedom do you have in expressing yourself and calling that source code?

The FSF defines the four basic freedoms of source code

I feel that freedom #1 "to study how the program works, and adapt it" to my needs is a more important basic freedom than freedom #3 for you to "improve the program, and release your improvements to the public, so that the whole community benefits".

Because the "improvement" could be to create derived works that preevent me from reading your improvement, this is what I term as uglified source code.

The GPL allows authors to distribute software that they are the sole author of that is uglified (not in the preferred form for editing) at will, with no punishment. At least the University of Saarlands is doing so with the stated reason of making it hard to read and understand. There is no limit to this is seems. Or is there?

Your creative expression in uglifing your software, distributing it the non preferred form for editing, can limit me from reading the source code.

This is bad in my opinion, and I would like to prevent that from happening to my software under the GPL, if I cannot prevent the proliferation of uglified code in general.

It also means that you should not be able to use my readable sources to create software that is not readable, This should be preventable by the GPL.

Freedom has its limits and there are some freedoms that are more important to the public interest than others.

The GPL in Section 3 states
"The source code for a work means the preferred form of the work for making modifications to it."
Would it be possible to modify the GNU public license to add definitions for uglified code? It seems to be impossible to prevent uglified code, but it should be possible to lay down some guidelines.

Here are some suggestions for some definitions, and they would not limit the creative expression of an author.

1. This code may not be uglified, except by the copyright holder. Uglified means it is generated by some automatic tool that changes the code that is edited by human. The results of the uglification process are not the preferred form of editing. The uglification process is done to take away the ability of a user of the software to read and understand the sources. If some tool is used to process the source, then all the inputs to this tool must be included and the tool must be also included. The uglification process is an automatic process where the original sources are not distributed and the uglifier software not distributed. the uglified source is a derived object and can be considered to be like a binary file.

2. This code may not be combined with uglified code, unless by the copyright holder of all parts. Users may not create derived works that include other peoples code with uglified to create a derived work.

Rational :

Because of problems with the university of Saarlands releasing uglified code under the gpl, code that was modified to be unreadable, I want to make sure that the software I write cannot be included in such a tool. The GPL does not prevent people from creating uglified code. But I should be able to prevent someone from adding obfuscated code with my code and creating a derived work.

I see this a conflict between the freedom to expression and the freedom to read and understand.

The original author of the software can distribute the original source in a obfuscated form, in a way that is automatically converted into something that is really hard to read and modify, and not even the preferred form of editing, there is nothing anyone can do against that.

When it is no longer the prefered form of editable source code, then it becomes a difficult issue because the copyright holder does not sue themselves for violation of the GPL.


Feedback :

Thanks to Alfred M. Szmidt (AMS) for his criticism and advice.

Thanks to S11001001 for pointing out that a new license might not even been needed : I dont even know if a new license is need, or if the GPL needs to be clarified in this case. But I do still want to tell you my idea, maybe it can be used to create a more watertight definition of preferred form of source in the GPL.

Thanks MarcusU from DotGNU for Spel Kheking.

References :
Rusty's thoughts on the claused in the GPL here.
This is also the topic of discussion in the LKML.
The debian policy makers have voted on the topic of the definition of source code here
This topic was discussed on debian legal as well in great detail.

The GCC supports VCG output, but it is also an issue that it is obfuscated
mentioned here
Look for example at vcg.1.30/src/step1.c for an example of the obfuscatoroutput. This is not source within the meaning of the GPL. A strict view
would say that given a GPLed program without full source, we cannot
distribute it at all; even with a less strict view that the authors
intended this version to be distributed, distributing a program without
proper sources from a *.gnu.org site seems dubious.

Loic Dachary Mentions that we are not allowed to apply the GPL to the VCG at all because it is obfuscated
I'm having a problem related to the distribution of VCG, aspublished at http://rw4.cs.uni-sb.de/users/sander/html/gsvcg1.html. Although VCG is published under the GNU GPL, it contains obfuscated source code. As a result, I'm unable to redistribute it because I would violate the GNU GPL that states that the sources are defined as "the preferred form of the work for making modifications to it".

2 Comments:

At 9:06 AM, Anonymous Anonymous said...

(Michael Kors Outlet) rather (Ray Ban Outlet) from any location.

Some of the (Michael Kors Outlet Online) most important classes items: 1. Property or house hold leads 2. Reaches (Ray Ban New Wayfarer Polarized) 3. Advised recognize town (Jordan Shoes For Sale Online) many of currently and are employed in, That a many properties now all of need back your own house all are designed (New Jordan Releases 2020) being worn by fossil fuel miners (Ray Ban Outlet Store) in addition to their loved ones off their dedication, The resiliency also fortitude. Is the last country wide eu city Mine recovery levels of rivalry (Michael Kors Outlet Store) kept in Fernie as a lot of panel affiliates have effect of the fact that City produces decided by that the wedding should cease being that are valuable. At the first interacting with with all the panel it turned out answered why would you Fernie was web site this launch and an indicator is made which a look at look system with regard regarding later on in life host (Yeezy Boost 350 Cheap).

 
At 8:59 AM, Anonymous Anonymous said...

Harbhajan went on to recall a match in which Shardul Thakur was getting hit for Ray Ban Outlet plenty and he tried suggesting Dhoni to ask the fast bowler to make a Ray Ban Glasses couple of changes. Shardul Thakur was bowling New Jordan Shoes 2020 in Pune. He was getting hit every ball. Antoinette proved that truly empathetic Yeezy Boost 350 negotiation should occur before the snipers come in to kill. She is a remarkable lady and a great Coach Outlet witness for God love for us. I hope that her example causes Yeezy Discount law enforcement to hire negotiators with the same qualities and skills as Antoinette, especially in negotiations Coach Outlet Store with the mentally ill.

This review describes Coach Handbags Clearance how machine learning has been applied to proteomics tandem mass spectrometry data. This includes how it can be used to identify proteins suitable for use as biomarkers of disease and for classification of samples into disease or treatment groups, which may be applicable for diagnostics. It also includes the challenges faced by such investigations, such as prediction of proteins present, protein quantification, planning for the use of machine learning, and small sample sizes..

 

Post a Comment

<< Home