Tue, 17 Jun 2008
I have, at several points over the past few years, been interested in finding out quite how the GPL applies when one has runtime dynamic linking in the mix. As such, I would like to set a little scenario up and then solicit responses from you as to how things might go. I have yet to receive any useful answers which consider all the aspects. Several people have basically said “oooh, hard.. erm therefore you can’t do it”, and the FSF have told someone I know who asked essentially this question, “erm… consult your lawyer”; and it took them four months to say that.
So, with all that in mind, here we go…
Setting the scene
- There exists a company SuperMegaCorp...
- ...who have a software product called FantasticUsefulApp...
- ...which is released to the public in a proprietary/pay-for kind of way...
- ...but has a BSD licenced set of header files for third parties to write plugins distributed with it.
- There exists a useful GPLv2+ed library HandyStuffs...
- ...which is authored by a freedom loving software engineer called Fred.
- A pragmatic, yet freedom loving software engineer called Pete...
- ...who does not know Fred...
- ...writes a plugin for FantasticUsefulApp which we shall call IncrediblyCoolPlugin...
- ...which incorporates parts of the HandyStuffs codebase...
- ...and is GPLv2+ed by Pete...
- ...who then releases it to the wider world on his website.
Next, the following happens…
- Seeing that Pete has written IncrediblyCoolPlugin for their FantasticUsefulApp...
- ...a user of the app called Uhura downloads it in binary form and drops it straight into the plugin folder.
- Uhura then starts FantasticUsefulApp which proceeds to dynamically link itself to IncrediblyCoolPlugin for the duration of Uhura's use of the app.
So here is question one
Is anyone violating any of the GPLv2‘s terms (or the GPLv3‘s terms) by doing this at any point? If so, who is violating which terms, and how can that be fixed without losing functionality?
Extending the scenario
- Uhura loves FantasticUsefulApp a lot. She also really loves IncrediblyCoolPlugin and wishes that each time she made a new installation of the app it would come with the plugin.
- Uhura writes to SuperMegaCorp and asks them to include IncrediblyCoolPlugin with FantasticUsefulApp.
- Liking the idea, and mindful to place the source code to IncrediblyCoolPlugin on their distribution media, SuperMegaCorp proceed to distribute the plugin along with their app in one easy to install bundle.
Here is question two
Is anyone violating any of the GPLv2‘s terms (or the GPLv3‘s terms) by doing the above? If so, who is violating which terms, and how can that be fixed without losing functionality? (For this question, consider the bundling of the plugin and the app together as functionality it is preferable to retain.)
An alternative way to extend the scenario
- Concerned about the possibilities of upsetting freedom lovers, SuperMegaCorp decline to distribute IncrediblyCoolPlugin with their app...
- ...however instead they distribute a plugin which connects to Pete's website and downloads IncrediblyCoolPlugin the first time FantasticUsefulApp loads, installing it for the user automatically.
And question three
Is anyone violating any of the GPLv2‘s terms (or the GPLv3‘s terms) by doing the above? If so, who is violating which terms, and how can that be fixed without losing functionality?
If anyone has any useful ideas on this, please either email them to me, or blog about it and email me a link. I intend to post a precis of the answers in a future entry.
Wed, 09 Apr 2008
This year, after 12 months of trying, I have finished my ESCape. With my new-found freedom I shall be separating files. I expect my husband Rob will be rebelling after his year of SUBstitution as he too attempts to ESCape. Still, at least I’m not 100000b yet.
Fri, 04 Apr 2008
I just thought I’d take this opportunity to back Martin F. Krafft up on the point of names and IRC. Those of you who know me on IRC know me as Kinnison. There exists exactly two people in this world who I tolerate calling me that in real-life. One is my husband and the other knows who they are. The main issue is that my brain works very very oddly and as such I don’t actually recognise the sound of ‘Kinnison’ as someone trying to get my attention. Plus it takes a conscious effort on my part to link that name to myself in anything other than realtime online communication.
So, along with Martin, I’d like to raise the point once more that unless you’re actually speaking to me on IRC or a talker, please remember, my parents gave me the name ‘Daniel’ and surprisingly I quite like it. Also note, I am not ‘Dan’ ‘Danny’ ‘Dannster’ ‘Dan the man’ or any other irritating diminutive or cutesy variant.
</rant>
Mon, 17 Mar 2008
The Google Summer of Code is upon us once more, and this year two projects dear to my heart are involved as mentoring groups. The first and perhaps most obvious is Debian but a less well known but equally important project to me is NetSurf which just announced that it is participating this year.
If you fancy working on a really cool small embedded browser project this summer, you could do worse than to look at NetSurf.
Sat, 01 Mar 2008
…or “How much does it cost to fly to Argentina? Fuff that!”
The Ubuntu developer summit (UDS-Intrepid) is in Prague this year. The Debian Developer conference (Debconf) is in Argentina (at Mar del Plata) this year.
Flights to Prague are ca. £100 for two people, return tickets, from Manchester, at convenient times. Flights to Argentina are ca. £700 – £800 per adult, return tickets, from Manchester, not particularly convenient timewise. Or around £1700 for two people, return tickets, from Manchester, at convenient times.
So, basically I have to spend less than £1500 on the accomodation and the Ubuntu conference becomes cheaper than the Debian one to attend. As such, I’ve sent an email to the Ubuntu guys travel agents and we’ll see what they say. I doubt Debian can offer me £650 each for myself and my partner in order to bring the costs thus-far into alignment. Pity really since I love Debian conferences.
(Oh yeah, and not to forget the Lua workshop this year, Washington DC, mid July. Best flights I could find for that were around £600 each also, so no Lua conference for me :-( Not that I’d fly to America right now anyway given the supposed issues with taking any form of electronic medium through customs. At will, they supposedly can take copies of any media you have with you, including USB sticks. So even though my laptop and USB stick can individually be stolen and not compromise my key, moving through US customs might force me to revoke my digital identity. So not happening.)
Tue, 05 Feb 2008
Via Lesley Mitchell I was pointed at Wil Wheaton’s ficlets page and unfortunately for the world, I was inspired to contribute three original ficlets to the site. As a result, please visit my ficlets page and perhaps you’ll be inspired to write a prequel or sequel to one of my wibblings.
Tue, 22 Jan 2008
I am in need of a C parser which I can use to detect violations of a coding standard. Particularly it must be able to be sensitive to comments (the internals of which are important also) and whitespace, over and above the usual need to be sensible about the rest of the language.
In order to be ideal, it should not need the C to be preprocessed first. I am not after a syntax checker, after all – the compiler does that for me. I want to be able to detect things like struct{ where struct { is what we mandate in our coding style. However I also want to detect more complex things such as static functions which lack documentation comments, or functions which are not declared as returntypenewlinefunctionname(arglist)newline{.
I hope someone has a cunning idea…
D.
Tue, 15 Jan 2008
My cat appears to like cola and also twiglets. Did I get a defective model?
Mon, 07 Jan 2008
If you happen to have my landline number (starts 0161) then it’s important to know that it has changed.
In order to know the new one, either ask me by email, ring me on my mobile phone, or follow these instructions to mutate the old number:
- Split the STD off the front.
- Split the number into a three digit section and a four digit section.
- Subtract 27 from the three digit section.
- Subtract 8000 from the second section.
- Add 724 to the second section.
- Reassemble the phone number.
- To verify your result, the digits of the phone number, including STD, should add up to 29.
Wed, 02 Jan 2008
Ingo Juergensmann recently asked if there is a way to get more entropy for exim4 for a way to make exim4 take less entropy.
A while ago I posted my solution which grabbed the imagination of Steve Gran who I believe created and upload a debian package which garnered a not inconsiderable amount of back-flack from people who failed to realise that I wrote it because I wanted something which would solve my problem, and that perhaps the package needed more disclaimers or warnings.
One person actually took time to explain things to me and provide sample code which one day I will incorporate into the release copy of randomsound but for now it’s just crap :-)
So Ingo, one option is to install the randomsound package and enjoy that, you might have to backport it to stable if that’s what your server runs.
Another would be to spank the fool who wants to send huge mails through your server and tell them to get a web space :-)