[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
I wrote a C tutorial
Siward de Groot
I wrote a C tutorial
Sun, 1 May 2005 14:16:26 +0200
Hello good GNU people :-) ,
Thanks for providing your software and documentation to me.
I find them to be of very good quality, and pleasant to work with.
I have written a tutorial,
and i would like to talk to you about some things relating to it ;
90 % of this message is about it's copyright.
* I have written a tutorial on C programming,
intended for people that can already program in another language,
especially those who have read my
"Siward's introduction to Programming, with Perl"
(available from my homepage, http://home.wanadoo.nl/siward).
My C tutorial is available from same location.
o This tutorial would not have been possible without your compiler,
C library, debugger, and documentations that accompany them.
So it pleases me to tell you about it, and i hope that
you may benefit from it like i benefit from your software.
i I have put it under a licencse that i have written myself,
and which i think is free.
If you read it, and think it is not good, please tell me.
+ This tutorial includes a chapter that presents
some of most frequently used functions from libC.
Descriptions and prototypes of these functions
have been taken from info libc ;
Descriptions have been (heavily) edited,
Prototypes have been included nearly unaltered.
In my opinion, this tutorial is not a derived work,
but chapter about libc functions has been derived from info libc.
Info libc is licensed under GFDL, which states that
any document that includes
any (possibly modified) part (no matter how small)
of a thusly licensed document
is (as a whole) a 'derived work'
and must be put under same license.
! I would prefer to not do that.
For these reasons :
* It would require me to state on front cover: "This is a GNU manual",
which is not true,
so i would have to put something like:
"Copyright of documentation of C library requires me to
state that 'This is a GNU manual' on front page
(which i have hereby done),
although this is not true.
It is my manual,
and includes some information from that documentation.
That is how free GNU really is."
* It requires that i mention names of at least 5 authors of libc's
documentation on front page,
while amount of content they are responsible for
would normally not warrant that
(a mention in contributors section woud be usual way,
possibly not by name but by name of their group).
To prevent misrepresentation, it would have to be wrapped
similar to 'this is a gnu manual'.
* It requires me to have invariant sections and a backcover text ;
This is only a minor nuisance,
as i can assemble them in last appendix,
and prepend a notice saying
it is only here because i am obliged to include it,
please ignore it.
It would make filesize a bit bigger, but it already is 400 k.
* It requires me to put my manual under your license,
which license, in my opinion,
is either a covert way of phrasing a proprietary licence,
or does not represent intentions of it's author(s) ;
Specifically: clause that says that
it can be distributed under any later version of
a license with same name if that is published by FSF.
In effect, this transfers copyright of my manual to FSF,
(which is not a democratic organization,
nor does it de facto represent large majority of users),
instead of, as i would like, to all members of public.
(Is 'obligation to give FSF carte blanche'
your interpretation of 'free licence' ?)
Why would anybody ever want to include a clause like that ?
Please note that i do think FSF has been doing very usefull work,
and without their publications i would not have been able to
understand licenses well enough to consider this clause flawed.
This is a serious problem, but it can be worked around,
because by time next version of GFDL is published
(and if it is like what is proposed for GPL,
then i will not consider it a free license)
there can easily be a much improved version of my manual as well,
which i can then licence otherwise, by removing that chapter.
? I also think there are some aspects of this matter where
obeying letter of GFDL goes against principles of free documentation
as expressed by FSF,
for example, i can create that chapter in another way :
grep through my own programs, to see which functions are used often,
and make an educated guess as to their arguments and returnvalue ;
This would lower quality of documentation,
and discourage creating documentation.
But that may be more a matter to discuss with FSF people,
it's a bit offtopic for current situation, i think,
except maybe if you chose this license because
you heard say that it was free.
> It seems to me that documentation of libc itself violates GFDL.
Specifically, in license it reads :
A "Transparent" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, whose contents can be viewed and edited directly
and straightforwardly ...
In case of libc,
if what i got with Debian is not a transparent copy,
then i wouldn't know where to find one,
and if it is supposed to be transparent,
then i wonder how to edit it straightforwardly,
because it's normal presentation (info button of xemacs)
does not allow editing, in fact you can't even annotate it,
and finding and ungzipping libc's info files,
followed by editing in xemacs,
is not what i would call 'straightforward'.
For text files there are text editors,
for bitmaps there are bitmap editors,
and for info files there are no info editors.
In effect, it seems to discourage editing your documentations,
because newbies don't know how to do it
(and gurus don't have time for it).
If GFDL is not generally applicable enough to
be usable for your own documentation,
please don't require me to use it.
= In summary, i would like you to waive any copyright that you have
to parts of my manual.
If you would like to put restrictions on such a waiver,
like requiring that license of that chapter must be free enough,
or an explicit acknowledgement of GNU's libc documentation,
i think that would be reasonable.
Let's talk about it.
P.S. If someone could point me to
a description of keywords 'restrict' and 'const',
that would be nice.
Reason i didn't in my tutorial tell what they mean
is that i don't know.
P.P.S For time being, my tutorial is on web, with my copyright notice.
I have not published about this anywhere else,
nor have i distributed it further than that.
I think it is usefull to put it there,
so everyone who wants to see what this thread is really about
can find it.
But i do acknowledge that i did derive that chapter directly
from info libc,
which implies that i should comply with it's license,
so if this publication is unacceptable to you,
please let me know, and i will remove it.
Lotsa people are illliterate ;
if they read 'guidelines', they think they have read 'law',
if they read 'law', they think they have read 'justice',
if they read 'justice' they think they have read 'fairness',
and if they read 'fair', then they think it's a picnic.
- I wrote a C tutorial,
Siward de Groot <=