Why is he quoting the GPL *preamble*? Preambles aren't supposed to have legal effect, are they?
(Interesting looking at the case of the preamble question in Australia's 1999 constitutional referendum - the 'no' case says that the preamble could have had legal effect.) andrew On 3/19/06, Måns Rullgård <[EMAIL PROTECTED]> wrote: > Sam Morris <[EMAIL PROTECTED]> writes: > > > Måns Rullgård wrote: > >> Flaming aside, this is a non-issue. The source for cdrecord contains > >> invariant sections (those obnoxious "warnings" about using device > >> names), so it's certainly not DFSG-free. Just use dvdrtools instead. > > > > Oh? How is it in main then? > > A package being in main doesn't automatically mean that it should be > there. Packages have been removed from main in the past. > > > These are the bits I'm referring to, from cdrecorc.c (sorry for the > long lines, but that's how it's written): > > ---BEGIN QUOTE--- > /* > * Begin restricted code for quality assurance. > * > * Warning: you are not allowed to modify or to remove the > * Copyright and version printing code below! > * See also GPL § 2 subclause c) > * > * If you modify cdrecord you need to include additional version > * printing code that: > * > * - Clearly states that the current version is an > * inofficial (modified) version and thus may have bugs > * that are not present in the original. > * > * - Print your support e-mail address and tell people that > * you will do complete support for this version of > * cdrecord. > * > * Or clearly state that there is absolutely no support > * for the modified version you did create. > * > * - Tell the users not to ask the original author for > * help. > * > * This limitation definitely also applies when you use any other > * cdrecord release together with libscg-0.6 or later, or when you > * use any amount of code from cdrecord-1.11a17 or later. > * In fact, it applies to any version of cdrecord, see also > * GPL Preamble, subsection 6. > * > * I am sorry for the inconvenience but I am forced to do this because > * some people create inofficial branches. These branches create > * problems but the initiators do not give support and thus cause the > * development of the official cdrecord versions to slow down because > * I am loaded with unneeded work. > * > * Please note that this is a memorandum on how I interpret the GPL. > * If you use/modify/redistribute cdrecord, you need to accept it > * this way. > * > * > * The above statement is void if there has been neither a new version > * of cdrecord nor a new version of star from the original author > * within more then a year. > */ > > /* > * Ugly, but Linux incude files violate POSIX and #define printf > * so we cannot include the #ifdef inside the printf() arg list. > */ > # define PRODVD_TITLE "" > #ifdef CLONE_WRITE > # define CLONE_TITLE "-Clone" > #else > # define CLONE_TITLE "" > #endif > if ((flags & F_MSINFO) == 0 || lverbose || flags & F_VERSION) { > printf("Cdrecord%s%s %s (%s-%s-%s) Copyright (C) 1995-2004 Jörg > Schilling\n", > PRODVD_TITLE, > CLONE_TITLE, > cdr_version, > HOST_CPU, > HOST_VENDOR, HOST_OS); > > #if defined(SOURCE_MODIFIED) || !defined(IS_SCHILY_XCONFIG) > #define INSERT_YOUR_EMAIL_ADDRESS_HERE > #define NO_SUPPORT 0 > printf("NOTE: this version of cdrecord is an inofficial > (modified) release > of cdrecord\n"); > printf(" and thus may have bugs that are not present in > the original > version.\n"); > #if NO_SUPPORT > printf(" The author of the modifications decided not to > provide a > support e-mail\n"); > printf(" address so there is absolutely no support for this > version.\n"); > #else > printf(" Please send bug reports and support requests to > <%s>.\n", > INSERT_YOUR_EMAIL_ADDRESS_HERE); > #endif > printf(" The original author should not be bothered with > problems of > this version.\n"); > printf("\n"); > #endif > #if !defined(IS_SCHILY_XCONFIG) > printf("\nWarning: This version of cdrecord has not been > configured via > the standard\n"); > printf("autoconfiguration method of the Schily makefile system. > There is a > high risk\n"); > printf("that the code is not configured correctly and for this > reason will > not behave\n"); > printf("as expected.\n"); > #endif > } > > /* > * I am sorry that even for version 1.297 of cdrecord.c, I am forced to > do > * things like this, but defective versions of cdrecord cause a lot of > * work load to me and it seems to be impossible to otherwise convince > * SuSE to cooperate. > * As people contact me and bother me with the related problems, > * it is obvious that SuSE is violating subsection 6 in the preamble of > * the GPL. > * > * The reason for including a test against SuSE's private > * distribution environment is only that SuSE violates the GPL for > * a long time and seems not to be willing to follow the requirements > * imposed by the GPL. If SuSE starts to ship non defective versions > * of cdrecord or informs their customers that they would need to > * compile cdrecord themselves in order to get a working cdrecord, > * they should contact me for a permission to change the related test. > * > * Note that although the SuSE test is effective only for SuSE, the > * intention to have non bastardized versions out is not limited > * to SuSE. It is bad to see that in special in the "Linux" business, > * companies prefer a model with many proprietary differing programs > * instead of cooperating with the program authors. > */ > linuxcheck(); /* For version 1.297 of cdrecord.c */ > > if (flags & F_VERSION) > exit(0); > /* > * End restricted code for quality assurance. > */ > ---END QUOTE--- > > The linuxcheck() function can be found near the end of the same file: > > ---BEGIN QUOTE--- > /* > * I am sorry that even for version 1.297 of cdrecord.c, I am forced to do > * things like this, but defective versions of cdrecord cause a lot of > * work load to me and it seems to be impossible to otherwise convince > * SuSE to cooperate. > * As people contact me and bother me with the related problems, > * it is obvious that SuSE is violating subsection 6 in the preamble of > * the GPL. > * > * The reason for including a test against SuSE's private > * distribution environment is only that SuSE violates the GPL for > * a long time and seems not to be willing to follow the requirements > * imposed by the GPL. If SuSE starts to ship non defective versions > * of cdrecord or informs their customers that they would need to > * compile cdrecord themselves in order to get a working cdrecord, > * they should contact me for a permission to change the related test. > * > * Note that although the SuSE test is effective only for SuSE, the > * intention to have non bastardized versions out is not limited > * to SuSE. It is bad to see that in special in the "Linux" business, > * companies prefer a model with many proprietary differing programs > * instead of cooperating with the program authors. > */ > #if defined(linux) || defined(__linux) || defined(__linux__) > #ifdef HAVE_UNAME > #include <sys/utsname.h> > #endif > #endif > > LOCAL void > linuxcheck() /* For version 1.297 of cdrecord.c */ > { > #if defined(linux) || defined(__linux) || defined(__linux__) > #ifdef HAVE_UNAME > struct utsname un; > > if (uname(&un) >= 0) { > /* > * I really hope that the Linux kernel developers will soon > * fix the most annoying bugs (as promised). Linux-2.6.8 > * has still much more reported problems than Linux-2.4. > */ > if ((un.release[0] == '2' && un.release[1] == '.') && > (un.release[2] == '5' || un.release[2] == '6')) { > errmsgno(EX_BAD, > "Warning: Running on Linux-%s\n", un.release); > errmsgno(EX_BAD, > "There are unsettled issues with Linux-2.5 and > newer.\n"); > errmsgno(EX_BAD, > "If you have unexpected problems, please try Linux-2.4 > or Solaris.\n"); > } > if ((un.release[0] == '2' && un.release[1] == '.') && > (un.release[2] > '6' || > (un.release[2] == '6' && un.release[3] == '.' && > un.release[4] >= > '8'))) { > errmsgno(EX_BAD, > "Warning: Linux-2.6.8 introduced incompatible interface > changes.\n"); > errmsgno(EX_BAD, > "Warning: SCSI transport does no longer work for suid > root programs.\n"); > errmsgno(EX_BAD, > "Warning: if cdrecord fails, try to run it from a root > account.\n"); > } > } > #endif > if (streql(HOST_VENDOR, "suse")) { /* For version 1.297 of cdrecord.c */ > /* 1.297 */ errmsgno(EX_BAD, > /* 1.297 */ "SuSE Linux is known to ship bastardized and defective versions > of cdrecord.\n"); > /* 1.297 */ errmsgno(EX_BAD, > /* 1.297 */ "SuSE is unwilling to cooperate with the authors.\n"); > /* 1.297 */ errmsgno(EX_BAD, > /* 1.297 */ "If you like to have a working version of cdrtools, get the\n"); > /* 1.297 */ errmsgno(EX_BAD, > /* 1.297 */ "original source from ftp://ftp.berlios.de/pub/cdrecord/\n"); > > } > #endif > } > ---END QUOTE--- > > For completeness, here's GPL 2c: > > ---BEGIN QUOTE--- > c) If the modified program normally reads commands interactively > when run, you must cause it, when started running for such > interactive use in the most ordinary way, to print or display an > announcement including an appropriate copyright notice and a > notice that there is no warranty (or else, saying that you provide > a warranty) and that users may redistribute the program under > these conditions, and telling the user how to view a copy of this > License. (Exception: if the Program itself is interactive but > does not normally print such an announcement, your work based on > the Program is not required to print an announcement.) > ---END QUOTE--- > > Take note that cdrecord is never interactive, so GPL 2c doesn't apply. > I don't know why JS refers to it, but then JS does a lot of things > that nobody understands. > > -- > Måns Rullgård > [EMAIL PROTECTED] > > > -- > To UNSUBSCRIBE, email to [EMAIL PROTECTED] > with a subject of "unsubscribe". Trouble? Contact > [EMAIL PROTECTED] > > -- Andrew Donnellan http://andrewdonnellan.com http://ajdlinux.blogspot.com Jabber - [EMAIL PROTECTED] ------------------------------- Member of Linux Australia - http://linux.org.au Debian user - http://debian.org Get free rewards - http://ezyrewards.com/?id=23484 OpenNIC user - http://www.opennic.unrated.net