[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

cdrecord: weird GPL interpretation



Hi all,
in cdrtools-2.01a38 I found the following weird GPL interpretation.
I wonder if this is considered acceptable for main (I would say that
this is non-free). I don't know whether cdrecord links with (or is
otherwise a derivative work of) other GPL'd software (whose copyright is
held by other people): in that case I would say that this is even
undistributable...  :(

What do you think about this?
There already is a Debian BTS bug report
(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=265546) about this
issue (it was filed when it was even worse, it seems...), but it says
it's resoved with version 2.01a38. I wonder if you agree...


NOTE: I am Cc:ing the the package maintainer (Joerg Jaspert) and the
bug-report filer (Andreas Metzler).
I don't know if they would like to be Mail-Followup:ed...


Issue description follows:

 -=-=-=-= cdrecord/LICENSE =-=-=-=-

This software is under GPL but you should read the following
clarifications:


-       You may not modify certain copyright messages in cdrecord.c

        See cdrecord.c for further information.


-       You may (with a few exceptions) not modify the location of the
        configuration file /etc/default/cdrecord.

        See defaults.c for further information.

Please note that this is just the way I interpret the GPL and as this
is my software, users should follow my interpretation of the GPL and not
use their own different interpretations.


 -=-=-=-= cdrecord/cdrecord.c (sorry for linewrapping) =-=-=-=-

[...]
	/*
	 * 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.295 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.295 of cdrecord.c */

	if (flags & F_VERSION)
		exit(0);
	/*
	 * End restricted code for quality assurance.
	 */
[...]

 -=-=-=-= cdrecord/defaults.c =-=-=-=-

[...]
LOCAL int
open_cdrdefaults()
{
	/*
	 * WARNING you are only allowed to change this filename if you also
	 * change the documentation and add a statement that makes clear
	 * where the official location of the file is why you did choose a
	 * nonstandard location and that the nonstandard location only refers
	 * to inofficial cdrecord versions.
	 *
	 * I was forced to add this because some people change cdrecord without
	 * rational reason and then publish the result. As those people
	 * don't contribute work and don't give support, they are causing extra
	 * work for me and this way slow down the cdrecord development.
	 */
	return (defltopen("/etc/default/cdrecord"));
}
[...]




-- 
             |  GnuPG Key ID = DD6DFCF4 |  $ fortune
  Francesco  |        Key fingerprint = |  Q: What is purple
     Poli    | C979 F34B 27CE 5CD8 DC12 |     and commutes?
             | 31B5 78F4 279B DD6D FCF4 |  A: A boolean grape.

Attachment: pgpOEUZa4I0G5.pgp
Description: PGP signature


Reply to: