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

Re: cc65 licensing (was: cc65 license check -- main or non-free?)

On Fri, Jun 25, 2004 at 02:17:29AM -0600, Benjamin Cutler wrote:
> True, but the old license says 'any file that references this license', and
> none do, which makes figuring that out non-obvious just from looking at that
> part of the source tree. At first glance it looks like all the code is
> yours.

Huh? The docs and the web page do *clearly* state that this is not the case.
The web page for example says:

  Until today, I have rewritten large parts of the compiler, all of the
  library, completely replaced the assembler, the linker and the librarian,
  and added a frontend to simplify use.

What exactly is unclear about this information?

Regarding the reference to licenses: If you have a look at the old sources,
you will note that they do not reference the license. So it is not that I
removed the references, it is just that I didn't change anything in this
respect. Finally - as I told you in my last mail - referencing some license is
not necessary. Everyone owns the code he has written - with or without a
license in the source. So JRD (the original author) was absolutely correct

> I grabbed a file called 'cc65-src.arc', I can't remember where from now
> (some emulation site), but it claims to be the code from the 1989 compiler.

Sounds like you followed the link from my web page:-) So yes, this is probably
the original source.

> Given that I can't find anything from a cursory glance, would it be possible
> for you to provide an example?

-------------------------------- old code ---------------------------------
    Character and integer constants.
  if ((curtok == ICONST) || (curtok == CCONST))
      lval->e_flags = E_MCONST | E_TCONST;
      lval->e_tptr = type_int;
      lval->e_const = curval;
      return (0);
-------------------------------- new code ---------------------------------
    /* Character and integer constants. */
    if (CurTok.Tok == TOK_ICONST || CurTok.Tok == TOK_CCONST) {
        lval->Flags = E_MCONST | E_TCONST;
        lval->Type  = CurTok.Type;
        lval->ConstVal = CurTok.IVal;
        NextToken ();
        return 0;

As you can easily see, all that has been done is some reformatting and

> Also, is there some % figure you can give me, out of curiosity?

It is difficult to estimate, because the old code is in rather central and
difficult to replace parts of the compiler, while there are large pieces of
rather stupid code that contribute to a large amount of source lines.

> Well, the compiler can't go in 'main', given what you've told me, but it
> sounds like the rest can go in 'contrib' (given that it's suitable for
> Debian, but relies on software that's not), and the compiler dumped into
> 'non-free'.

I have to admit that I don't know enough about debian policy to comment on
that. Experience with other software written by me is that debian maintainers
are often willing to bend their own rules, so even if I would know more about
debian policies, this would not mean that I could predict what a debian
maintainer will do:-)

What I can say is this: The old license which does still cover parts of the
compiler is definitely no free software license according to OSI. The new
license, which covers everything but the compiler, is the zlib license, which
is an approved free software license. It is up to you to act according to this

> If you don't mind, could you CC any other replies to
> debian-legal@lists.debian.org so they can be threaded in?




Ullrich von Bassewitz                                  uz@musoftware.de

Attachment: pgpxRJuXHKdT4.pgp
Description: PGP signature

Reply to: