New compression method: Exomizer 2

2»

Comments

  • Hikaru wrote: »
    Aside from the obvious LGPL confusion, there's one more thing I don't really understand here, and that is whether this sort of license switch applies retroactively to past versions if there's no actual changes to the underlying code and/or version numbers from the current one. Intuitively, having two versions of source in circulation (one LGPL, one 'not') that are otherwise exactly the same code-wise feels very weird

    I see Metalbrain's reply about this, that it's okay to use the older source in a non-LGPL way, but I get the impression that it's more like his interpretation and things might be different in the 'legal world'

    In the legal world, it doesn't apply retroactively. You can choose whatever version you want, then you only have to follow the license conditions of that version, regardless of others.
    Creator of ZXDB, BIFROST/NIRVANA, ZX7/RCS, etc. I don't frequent this forum anymore, please look for me elsewhere.
  • If I follow 6a then I need to supply some version of my code (source or compiled) NOT including the library, and some utility to link it with the library, so that the end user can do the linking again themselves. That's what it says.

    And right at the start of section 6 it says that any licence for my work must permit modification and reverse engineering of my code, so it is dictating the terms of my licence.
    Joefish
    - IONIAN-GAMES.com -
  • In a Speccy machine, the easiest way to comply is simply copy/pasting a LGPL library, using it only as a "black box", and providing the library source code only. Generating Speccy programs don't require a linker, therefore anyone will be able to make changes to this library, recompile it to the same address, and it should just work. You will be compliant with LGPL section 6a easily.
    Unless the library is constructed to have a very clearly defined binary interface (a fixed jump table at the beginning, for example) that just won't work in reality unless you also have the original source (or some generic relocation information). Nor will it work if your binary consists of multiple such libraries (since any modification may require subsequent code to be relocated). This is why the LGPL is generally considered to require dynamic linking, even though it can (strictly speaking) apply to static linking as long as you provide the non-GPL code in a linkable format (which, given there isn't really a "standard" for Z80 code, is a tricky thing to reasonably do).

    As long as the original author wrote all the code (or was granted ownership of the rights of any accepted submissions), then they are free to re-license it in any way they deem fit including having multiple licensed versions of the same code. And, since they own all the rights to the code and any previous version, they can apply it retroactively if they so choose.

    The intent behind the GPL/LGPL is really to prevent commercial exploitation of the work behind those who chose to share, but that's something which just really doesn't apply in the world of coding for an obsolete and commercially unviable platform. It's a completely unnecessary and burdensome legal constraint when "Here's some code, use it in any program you like and please share any improvements you find on the World of Spectrum site" would do just as well for 99% of the Speccy code anyone could ever write.
  • Hence why I will only choose anything zlib or one of its derivatives. Pick the code that has a license you're happy with.

Sign In or Register to comment.