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

Reply via email to