Sure you know GNU, which is short for "GNU is nearly Unix", although there are some people around who claim the the "N" stands for "not".
Apart from this, GNU stands for a set of powerful, but unusable tools. One reason is a ridiculous compatibility to 70ties standards, another one is laziness and finally incompetence when it comes to usability.
Although these tools are distributed with the full source code, it
does not make sense to enhance them as you would have to care about
stuff nowadays nobody wants to care (for example where you can find
strftime()
), and therefor clutter the source with
#ifdefs
and such things. (Now don't say that
autoconf
is the solution to a fucked up system
structure.)
Furthermore the GNU-license has this nasty "virus" feature, where everybody who made changes has to make the source code for them available to the public. In practice that means nobody is going to pay you for your efforts. (Yeah, we all know about those few special cases when somebody pays for GNU-software, but they are not the point.)
Now there is a solution to this dilemma: Take a GNU-source and turn it into a usable program, for example by implementing a GUI, a configuration window and a Rexx-port. Add some keyfile-routines to encourage people to register, and release it as shareware or something similar - together with the source code to not violate the license.
"What for? Nobody will register it, but remove the keyfile routines." you might say.
That's not going to happen, if you vahunzed the program before. Of course you will have to add some more complex keyfile-check as usually. It's recommended to add several cross-checks, which activate some "mines" if one of them failed. For example, trash important system files or produce corrupt output when saving etc. etc.
You should mention these mines in the manual, so no reasonable thinking human being is going to use a "cracked" variant of your source - as he does not know for sure that all mines are gone.
And still, it does not violate the GNU-license.
And actually you are doing something "good", because if many people
are going to release usable GNU-tools with extraordinary requirements
compared to the 70ties (like expecting strftime()
in
<time.h>) it maybe will wake up those people who
have written the unusable version and still think that this is the way
software should work.