Slashdot Mirror


Abstract Programming and GPL Enforcement

Headius writes "Through events of the past couple months, I've ended up as the lead developer for the Litestep project, a several-year-old effort to write a GPL'ed shell replacement for Win32 platforms, for use in place of the standard Explorer shell. Current efforts involve a large rewrite of existing code and a complete refactoring of core services. Part of this new architecture is the abstracting of services to simple interfaces. Unfortunately, several other developers have brought up concerns that the hard work they put into developing the implementations of these interfaces (which will not have any dependency on Litestep-specific code) will be silently stolen by other (closed-source) projects in the cutthroat shell replacement arena and elsewhere. Is there any real way to protect GPL'ed code that has no interdependencies and abstracts away all the implementation details (as good OO code should)? I'm not as concerned about license violations as some, but how do I put the other devs' minds at ease? "

2 of 219 comments (clear)

  1. This sounds too much like an API copyright. by Bruce+Perens · · Score: 5
    This sounds too much like an API copyright. Free software licenses protect the implementations, not the interfaces. We'd be very angry at anyone who protected an interface from our implementing it in free software. It has to work the other way, too.

    Thanks

    Bruce

  2. Can you DO that? by Deadbolt · · Score: 5

    If I understand your project correctly, then you might not be able to release this thing, at least not under the GPL.

    IIRC, use of a GPL interface, unless explicitly declared otherwise à la Linus' amendment to the GPL for Linux, generally means that the using code must also be covered by the GPL.

    Historical: NeXT wanted to use gcc as their compiler, so they wrote an obj-c frontend to link to gcc statically. RMS told them that that wouldn't get around the GPL's terms, so they put the whole thing under the GPL.
    Recent: I wanted to use a few Sun Java libraries in writing a GPL'd frontend for an IMAP client. RMS told me this was not allowed -- even dynamic linking is covered by the GPL.

    IANAL, but you may not be able to use the GPL. This sounds like a job for the LGPL, but talking to the FSF about this would definitely be a good idea.

    Cheers.

    --
    "Honey, it's not working out; I think we should make our relationship open-source."