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]

Reply via email to