Please create an account to participate in the Slashdot moderation system


Forgot your password?
Wireless Networking Operating Systems Software BSD Hardware

GPL Code Found In OpenBSD Wireless Driver 671

NormalVisual writes "The mailing lists were buzzing recently when Michael Buesch, one of the maintainers for the GPL'd bc43xx Broadcom wireless chip driver project, called the OpenBSD folks to task for apparently including code without permission from his project in the OpenBSD bcw project, which aims to provide functionality with Broadcom wireless chips under that OS. It seems that the problem has been resolved for now with the BSD driver author totally giving up on the project and Theo De Raadt taking the position that Buesch's posts on the subject were 'inhuman.'" More commentary from the BSD community is over at
This discussion has been archived. No new comments can be posted.

GPL Code Found In OpenBSD Wireless Driver

Comments Filter:
  • by Bruce Perens ( 3872 ) * <> on Saturday April 07, 2007 @01:43PM (#18647783) Homepage Journal
    This was discussed on Technocrat a few days ago. Apparently the Linux kernel developer did not wish Broadcom to take advantage of his work in proprietary products. Given Broadcom's record of having a number of undocumented, closed-driver-only products that we have to reverse-engineer, and having some proprietary drivers that IMO violate the GPL on the kernel, I can see why he'd feel that way. The BSD developer was an accomplished BSD committer and should have known better. The Linux developer offered to relicense some of his code under BSD. Theo decided to turn it into a human-rights issue with great flamag. The BSD developer walked off in a huff.

    The whole thing lasted two days, much less than the blog and news coverage. Someone will come along and write this driver for BSD, and the BSD developer will have some well-deserved cooling-off time.


  • Typo, and more data. (Score:4, Informative)

    by Bruce Perens ( 3872 ) * <> on Saturday April 07, 2007 @01:50PM (#18647839) Homepage Journal
    That's "flamage", not "flamag". Sorry.

    And by the way, first post :-) . OK, I'm a subscriber, I guess that's cheating.

    Here is the discussion [] of the same issue.


  • by Bruce Perens ( 3872 ) * <> on Saturday April 07, 2007 @01:59PM (#18647947) Homepage Journal
    Just don't flame on . Or do flame, and I'll have no problem using that "delete" button in a way that Tio Paco :-) doesn't do here.

    Actually, there is a time and place for flame wars. Justified anger is better than sitting aside while bad stuff happens. But this particular encounter did not justify the anger Theo displayed.


  • Re:I am amazed (Score:5, Informative)

    by Bruce Perens ( 3872 ) * <> on Saturday April 07, 2007 @02:04PM (#18647997) Homepage Journal
    I thought Open Source was about sharing code

    It is. This leaves the question of whether you are OK with some people who refuse to share. If the answer is no, use GPL. If yes, use BSD. You also have the option of using GPL, and asking for money from those who prefer exchanging money over sharing code, as MySQL does with its dual-licensing.


  • BSD licence issue (Score:2, Informative)

    by Skiron ( 735617 ) on Saturday April 07, 2007 @02:08PM (#18648037) Homepage
    I think the crux here is grabbing GPL code untouched and using it *unannounced*in a BSD licence that allows anybody to distribute (i.e. just use it in binary releases).
  • Silly (Score:5, Informative)

    by Bogtha ( 906264 ) on Saturday April 07, 2007 @02:10PM (#18648053)

    The crux of Theo's complaint seems to be that they "went public" by emailing too many people. When some of the people in on the email pointed out that they were the ones that actually did the hard work of reverse-engineering, Theo said:

    And how exactly does seeing this public flogging involve you?

    Wow. Just, wow. I often agree with Theo even when he's being a knob because he's usually got a point. But in this case, he's been embarrassed, and he is using whatever he can think of as an incredibly flimsy excuse to attack the people whom the OpenBSD developer plagiarised. What a childish, unproductive attitude. Pulling the code and giving up on the driver instead of taking them up on their offer to relicense the code is cutting off your nose to spite your face, and worse for your users. Just take your ball and go home, Theo.

  • by Henry V .009 ( 518000 ) on Saturday April 07, 2007 @02:18PM (#18648139) Journal
    This isn't a "copy and paste" issue. Michael Buesch comes across as a bit of an asshole from all this. This isn't an issue of his code being copied exactly (a straight copyright violation), instead it's an issue of a certain amount of code in an as yet non-working driver being too derivative of a copyrighted product. I'm committing more copyright violation by pasting this mailing list reply from the accused on Slashdot than what has been alleged.

    Picon Favicon
    From: Marcus Glocker
    Subject: Re: OpenBSD bcw: Possible GPL license violation issues
    Newsgroups: gmane.linux.kernel.wireless.general, gmane.linux.drivers.bcm54xx.devel
    Date: 2007-04-05 05:41:07 GMT (2 days, 12 hours and 27 minutes ago)

    On Wed, Apr 04, 2007 at 10:08:13PM +0200, Michael Buesch wrote:

    > I, Michael Buesch, am one of the maintainers of the GPL'd Linux
    > wireless LAN driver for the Broadcom chip (bcm43xx).
    > The Copyright holders of bcm43xx (which includes me) want to talk
    > to you, OpenBSD bcw developers, about possible GPL license and therefore
    > Copyright violations in your bcw driver.
    > We believe that you might have directly copied code
    > out of bcm43xx (licensed under GPL v2), without our explicit permission,
    > into bcw (licensed under BSD license).
    > There are implementation details in bcm43xx that appear exactly
    > the same in bcw. These implementation details clearly don't come
    > from the open specifications at
    > or
    > We have always made and still make a great effort to keep our code clean
    > of any Copyright issues (cleanroom design). Please make sure you also do.
    > A few examples follow of what we think might be GPL violations.
    > This list is far from being complete.


    I am aware that right now a lot of lines in bcw are written in a way with a too close eye to your code. That's out of question, and I have already informed Theo about that fact before you got in touch with us.

    I wanted to make some quick progress (maybe too quick), and rewrite the functions in question after seeing some first success, e.g. receivment of first frames, which isn't the case right now. But still, the specs for some functions are so strict, writing tons of registers in a strict order, some parts will still look similar.

    The last thing I want is to start a license war with you guys, and also I don't want to harm OpenBSD further with this issue. And of course we want to solve that license issue ASAP.

    So, I am suggestion three options:
    1. You give me some time and I try to rewrite the code in question. We keep in touch, and maybe we can split up both parties in freedom afterwards.
    2. Same as option one, but if my time resources keep shrinking like they do right now, spending weekends in the office and I can't fix up the driver soon, I'll drop the driver.
    3. We don't come to a point and I'll plain drop the driver directly, very soon.
    Waiting for your reaction.


    Marcus Glocker, marcus@..., mglocker@...
  • by t35t0r ( 751958 ) on Saturday April 07, 2007 @02:19PM (#18648147)
    I've been using ndiswrapper with my BCM4306 802.11b/g device since before bcm43xx was useable on linux. Getting the bcm43xx driver to work involves firmware cutting and some other low level tricks I'd rather not do. I've never used a BSD and would never touch Theo's distro with a 99ft pole but I recommend using ndiswrapper for users who would like to use BSD and have a BCM wireless device.
  • by mbuesch ( 1085401 ) on Saturday April 07, 2007 @02:26PM (#18648221)

    None of these facts are relevant to the discussion.
    They _are_. Actually, these seem to be the _only_ facts that are relevant to the discussion in the first place.

    Even Jeff Garzik, one of the bcm43xx developers
    Jeff is not one of the bcm43xx developers. He's the linux net maintainer.

    It's unfortunate that Michael Beusch is more concerned about defending his actions than correcting the injustice.
    It's interresting that people seem to think _I_ have to apologize, as the OpenBSD developers did the Bad Things in the first place. There's a simple rule: Don't violate copyrights and don't get blamed for it. It's so simple.
  • by phoenix.bam! ( 642635 ) on Saturday April 07, 2007 @02:36PM (#18648309)
    Except if this was done in private no one who pulled the tainted code from the public CVS would know. There would be copies of the code floating around in public that were in violation of the GPL. It had to be public to guarantee everyone knows (Especially Broadcom) that the BSD code in the public tree is actually GPL code.
  • by theunixman ( 538211 ) <> on Saturday April 07, 2007 @02:43PM (#18648379) Homepage
    I managed to catch front-row seats to the whole battle myself. Buesch (the Linux bcm43xx developer) posted a formal but not in any way harsh question to the BSD developer on the public bcm43xx list and to the BSD list. In any language, when communicating in unfamiliar places with unfamiliar people, using more formal dialects is almost always the rule. Some people find the higher dialects offensive, but almost everyone appreciates the attempts to not sound like one of the local street punks hanging out around the corner at the strip mall trolling for some action.

    Apparently the OpenBSD people were put off by this, which is unfortunate. And apparently they were so focused on making it yet another OpenBSD vs The World incident that they completely lost sight of the goal of both projects, which is to create Free and Open drivers for other people to use, despite the hardware specifications not being available. It's an unfortunate situation, of course.

    Hopefully after everyone has a chance to reflect on the situation, the OpenBSD developers will realize that even though many other situations are actually OpenBSD vs The World, this is not one of them, and the Linux bcm-43xx team was not only willing to work with them on relicensing code, they also published the results of an incredible reverse engineering effort for anyone, including the OpenBSD team, to use in order to achieve this goal.
  • by rossifer ( 581396 ) on Saturday April 07, 2007 @03:04PM (#18648625) Journal

    But he did not copy the code. Rather it was just similar.
    Erm, no. The developer admitted that he copied the code over so that he could make progress on another part of the code. It was his intention to remove the copied code at a later date. By not even leaving any notes in the code about the copy and checking that code into a public cvs repository, the developer made a pretty big (yet fixable) mistake.

    I'll admit it, I've done that very thing (copy some code in order to bootstrap a project). But I put all sorts of comments around tainted code, and I make damned sure that every single line of tainted code is rewritten before that code, or a product based on it, is released into the wild.

    Theo and Marcus both come across as graceless and petulant children. At least Marcus decided to be childish quietly. Theo's ongoing rants about "the inhumanity" of it all just get hysterical after a few posts. Yes, the original email probably should have been more private. But the response from Theo is completely and utterly over the top.

  • by quantaman ( 517394 ) on Saturday April 07, 2007 @03:09PM (#18648683)

    None of these facts are relevant to the discussion. The sole issue is that Michael Buesch made a public spectacle out of Marcus' mistake. It should have been addressed privately between developers, and then broadcast publicly if discussions were unsuccessful. Regardless of whether you believe Marcus' actions were a mistake or a theft, you must give someone with his track record the benefit of the doubt. By embarrassing him publicly, Michael destroyed Marcus' motivation to work in bcw(4) and benefit the non-GPL user communities.

    Even Jeff Garzik, one of the bcm43xx developers, admitted that Michael's actions were wrong []. It's unfortunate that Michael Beusch is more concerned about defending his actions than correcting the injustice.

    I agree with you that doing in a public forum was harsh and that responding privately would have been more polite and possibly would have lead to a better resolution. But I don't agree with Theo's hyperbolic characterization of Micheal and the others as a bunch of GPL fanatics relishing at the opportunity to drag an OpenBSD developer through the mud and then try to make him come back begging like a dog (yes he used both those metaphors). Micheal and the others were probably a little angry, with good reason, their code had been copied without permission and without credit. How would you feel if you saw another open source developer was taking your work and passing it off as their own? My guess is responding in a public forum was their way to both get back some of that credit and perhaps give a little vindictive shaming. Not the purest of motives but not entirely out of line either.

    However Theo's first reaction was to turn the situation into an attack on Micheal. Note in the first email Theo sent his first suggestion of how the problem may be resolved was "Maybe he'll just delete the driver and quit even trying, because you chose to cc so many people, and malign him. Maybe he'll simply replace every single line that looks similar, and then he could rightly not even mention any of the efforts of people like you". So his first suggestion is that the developer quit, his second is that the developer remove any GPL code from the driver (denying the GPL authors credit is given as a prominent benefit here). No where in the email does he directly acknowledge the option that the bcm43xx developers did give, to relicense a bunch of that code under BSD. To me it sounds like Theo had no interest in coming to a constructive solution and instead was just trying to turn the situation around into an attack on Micheal and the others. Note that despite sending the email in a public forum their entire dialog was very polite, constrained, and actually trying to find a solution. The only other thing they could be faulted was stating their belief that the copying was deliberate and the developer knew he was violating the GPL, considering the developer was an experienced BSD contributor I'd say these beliefs are valid.

    Note that by the time Marcus had gotten around to responding (no idea if he was hesitating or if he hadn't read his email yet) Theo had already turned the thread into a full flame war (with him doing all the flaming). Also Theo had already presented the idea, multiple times, that Marcus just quit and never acknowledged the idea of asking the original authors to re-license some of the code (which they repeatedly said they would do) as a valid solution. In my opinion Micheal Buesch bears very little responsibility for the developer quiting, Theo basically left him with no other option (besides contradicting him).
  • by Bogtha ( 906264 ) on Saturday April 07, 2007 @03:11PM (#18648703)

    Michael Busch's whole argument that they GPL'ed the damn thing because they didn't want Broadcom to take advantage of their work is BS.

    Of course it is. Of course, most people don't realise this, because the evil, inhuman Michael Busch used his time machine to travel back to 2005 and plant fake mailing list archives [] saying that the reason they chose the GPL over the BSD license was because they didn't want it taken proprietary especially by Broadcom [], because of particular features of the open driver [], when we all know it's just an evil, inhuman plot against Theo and OpenBSD. Thanks for alerting us to this deviousness, AC!

  • by Bogtha ( 906264 ) on Saturday April 07, 2007 @03:15PM (#18648739)

    Nobody disputes that this was in violation of your license.

    Actually, a number of times Theo characterised their complaint as being about copyrighted whitespace and variable names, even after being told to look at the code. Example:

    I mean, if I were him, why would I bother going on, when there are accusations about copyright being based on white space, variable names which are the same, or simple "save the registers" algorithms which you feel are too similar.

  • by osu-neko ( 2604 ) on Saturday April 07, 2007 @03:30PM (#18648889)

    How any code from a reverse engineered spec that blatantly just guesses at a lot of things is better than something written with the docs is far beyond me.

    I'm going to venture a guess that you're either not a professional software engineer, or still fresh out of college and very low on real world experience, then. At the very least, you've seen the codebases at very few companies, or you've just been very, very lucky.

    I've had to throw out code and start fresh because the original code I was given was code that had been written originally years ago by an outside contractor brought in to do it, then maintained for the next two years by the hardware engineers themselves, under the premise that they're engineers, they've got a C compiler and a SAMS book, what more qualifications did they need? I was brought in because they couldn't figure out how to add some new features they wanted. The reason wasn't because the new features were tricky, the reason was the code was so hacked up it was impossible to change anything without breaking everything else. Alas, this level of code is all too common at companies that see their primary product as hardware rather than software.

    I've also seen horribly base code that needed to be replaced at companies that had paid software engineers maintaining it the whole time. Why do you think the fact that they were paid software engineers somehow magically makes their code any better? It was crap, and the only reason they were able to get away with it was because no one outside their department ever saw it. There's no easier way to hide bad coding than to work inside a corporation on proprietary software. It's the easiest place in the world for it to occur, and often the hardest place in the world to get incompetent engineers off a project.

  • by Bruce Perens ( 3872 ) * <> on Saturday April 07, 2007 @03:33PM (#18648917) Homepage Journal
    Perhaps he's genuinely autistic? That would explain a lot.

    Well, where's my DSM? Oh, that's right, I'm not qualified to use one.

    There is a lot of speculation that a number of people we know are somewhere on the Asperger spectrum of disorders.


  • by Valdrax ( 32670 ) on Saturday April 07, 2007 @03:49PM (#18649091)
    This left me to think that when Theo commits social gaffes, it is not his fault and he can't help himself. We all have our lacks, issues, and strengths.

    I'm sorry, but I cannot agree with you on this. The way Mr. de Raadt treats other human beings is simply abusive, and there is no external factor than can explain his behavior in any fashion that would justify coddling it. Unless you are seriously willing to argue that the man is not, in a legal sense, mentally competent, then it is most certainly a problem that lies at his feet, and we should take no pity on him for it. To do otherwise is to suggest that he isn't, frankly, sane.
  • Re:Overreactions... (Score:2, Informative)

    by ckedge ( 192996 ) on Saturday April 07, 2007 @04:03PM (#18649203) Journal
    > Theo's initial response that it was that wide distribution that really torqued him into a pretzel. Nobody likes having their dirty laundry aired in public

    The recipients list looks perfectly fine to me: s.general/1558 []

  • by ZorbaTHut ( 126196 ) on Saturday April 07, 2007 @04:13PM (#18649299) Homepage
    BSD does not require attribution (in fact, that clause was specifically removed.) As long as the license appears somewhere in the project, it's sufficient. (IANAL but this is how I understand it.) On top of that, the BSD license is so open that, if the license did not specify that the license must be included, it really wouldn't be necessary - you can take BSD code and do pretty much whatever you want with it, including add it to a GPL project, or modify it and GPL-license the modifications. (Or, for that matter, not modify it and then provide the original source code under the GPL.)

    The GPL is different in that regards. If I saw GPL code in a BSD project, and the GPL code was not marked as such, I would have no way of knowing that it would be illegal for me to take that code and treat it as BSD code. As such, any GPL code added to a mostly-BSD-licensed project must be marked explicitly as such.

    I don't know what the issue with the Virgin WebPlayer is, but the others are all BSD-licensed code added to a GPL project, which doesn't require any specific notification beyond the BSD license appearing somewhere.
  • by mr_matticus ( 928346 ) on Saturday April 07, 2007 @05:23PM (#18650017)
    That's why statutory laws don't say "distribute" alone. They say "distribution or offer for distribution." Manifest intent to commit a crime with tangible evidence (the equivalent of a signed letter stating that you intend to rob bank X on date Y with weapon Z) is more than enough for law enforcement to take action. If you're stopped before anyone gets hurt, you're still charged--the whole IDEA behind law enforcement is to intercept crimes, to punish crimes that have occurred despite those attempts, and to discourage the incentive to attempt those crimes in the first place by virtue of a good track record and a strong fist of justice.
  • by mackyrae ( 999347 ) on Saturday April 07, 2007 @05:51PM (#18650269) Homepage
    That's why he said it's okay for temporary development. While it's being developed behind closed doors, so to speak, it's not being distributed, so it's okay. In order for them to distribute it they would have to make the entire thing GPL, or, as you said, it would be copyright violation, and the BSD guys would not like either situation.
  • bad career choice (Score:2, Informative)

    by nanosquid ( 1074949 ) on Saturday April 07, 2007 @06:32PM (#18650605)
    Trouble is that programming is not a solitary occupation anymore; it's done in large groups, and much of it involves face-to-face communication, compromise, and group decision making.
  • by Anonymous Coward on Saturday April 07, 2007 @08:11PM (#18651303)

    Oh come off it, GPL guys.
    Broadcom taking advantage of the bcm43xx code? I don't think so.

    bcm43xx team Reverse Engineered the spec. Broadcom, on the other hand designed the damn thing. So, they have paid software engineers, and those guys can probably talk to the hardware engineers, etc.

    How any code from a reverse engineered spec that blatantly just guesses at a lot of things is better than something written with the docs is far beyond me.

    Hahahaha... that's one of the funniest things I've ever read. Have you ever actually used any closed-source device drivers?

    In my experience, open-source drivers (whether reverse-engineered or done with vendor assistance) tend to kick the crap out of closed-source drivers. For example, my Acer box uses the nForce4 chipset. When I (briefly) had windows XP installed on this box, the proprietary drivers for the on-board ethernet were a steaming pile of unstable crap. I switched to Ubuntu and the reverse-engineered forcedeth driver has been working perfectly for me since. Likewise with a lot of TV tuner cards, which come with atrocious windows drivers/software, but many work fine with rev-eng'ed Linux drivers. And how about my Epson printer, which forces me to use awful hack-job Epson GUIs under windows, but "just works" with the Epson CUPS drivers.

    The reasons are pretty simple: hardware vendors make their money by selling hardware, and they'll ship it out the door with pretty much any pathetic excuse for a driver. Subsequently, they have little incentive to keep maintaining and improving the drivers. By contrast, once an open-source driver is released, it will keep getting improved by interested and capable parties. By and large, the people who reverse-engineer hardware or write FLOSS drivers tend to actually *use* it, and they tend to put a lot of thought and talent into it.
  • Trolls on both sides (Score:5, Informative)

    by stsp ( 979375 ) on Sunday April 08, 2007 @08:16AM (#18654497) Homepage

    First, let me say that I am totally shattered and disappointed. I am doing work in both the Linux and BSD communities, and this is by far one of the most destructive flamewar I have ever witnessed. It will be hard to repair the damage done... This is very sad.

    More commentary from the BSD community is over at

    It's only fair to note that while there has been lots of stupid flaming on the OpenBSD side as usual, the linux bcw developers, while trying to appear rather nice and careful on the public mailing lists, where laughing their asses off about the whole thing behind the scenes in their IRC channel. They didn't exactly try hard to keep things peaceful either. cs.2007-04-03 [] cs.2007-04-04 [] cs.2007-04-05 [] cs.2007-04-06 []

    Some quotes, the first one actually shows the igniting spark. Others show how people enjoyed watching the flames.I find it disgusting that some people seemed to enjoy watching an already brittle relationship between two deeply related communities fall into pieces. Do they also throw stones at public demonstrations and then go home to watch the riots on telly?

    [20:55] <nbd> when you complain about the license violation, please make it publicly :)<br>
    [20:55] <mb_> I think I should contact them. That's crossing a border. Copying magic register writes is one thing, but copying algorithms is another<br>
    [20:55] Action: nbd thinks this is very blatant<br>
    [20:55] <johill> mail the authors, Cc Theo de Raadt, and bcm43xx and jon (lwn)<br>
    [20:55] <st3> i'dd cc lkml too<br>
    [20:55] <johill> watch the outcry<br>
    [20:55] <st3> for the sake of fun<br>
    [20:55] <mb_> no, not lkml<br> [20:56] <mb_> I don't like stupid replies from retards in my inbox :)
    [20:56] <johill> heh
    [20:56] <mb_> Too many of them subscribed there

    [20:44] <st3> It's too late. He has given up, because of your first mail.
    [20:44] <st3> He has already deleted his work from our tree.
    [20:44] <st3> everybody is crying
    [20:47] <st3> "Too late."
    [20:48] <st3> rotfl
    [20:48] <st3> well, i'm a bit sorry anyway

    [01:40] <johill> nothing
    [01:40] <johill> fluff
    [01:40] <johill> he needs to fill his email with long paragraphs
    [01:41] <johill> (I think he's trying to say that the developer who stole all the code shouldn't really be blamed because he might be too much of a wimp)
    [01:41] <johill> ;)

    [01:51] Action: Newsome laughs at theo complaining about someone being "mean"

    [23:46] <Kaloz> theo is emotional and sensitive guy
    [23:46] <Kaloz> and you are all bastards
    [23:46] <Kaloz> he's now crying in a dark corner :(
    [23:46] <Kaloz> :P
    [23:47] <Kaloz> hey, theo is an emo? :D
    [23:53] <mb_> :D

    [13:33] <Kaloz> I know the bsd morons quite enough.. what always make me laugh that they simply claim whatever software it is, if it's gpl, it's crap and badly coded
  • Re:Theo is an idiot (Score:3, Informative)

    by Dun Malg ( 230075 ) on Sunday April 08, 2007 @11:51AM (#18655465) Homepage

    Even GPLed code is subject to copyright law's fair use provisions.
    Sorry, cutting and pasting GPL code and sticking it in a project in a publicly accessible CVS under the BSD license is not "fair use".
  • by tqbf ( 59350 ) on Sunday April 08, 2007 @12:52PM (#18655989) Homepage

    Paraphrase (with accurate chronology):

    Michael (in public):

    The OpenBSD BCM driver contains GPL'd code. Here are 12 examples of code copied verbatim from our source tree.

    Theo (also in public):

    Are you saying you want Marcus to quit? Why did you CC so many people?


    This is a major GPL violation. We just want it resolved. We'd love to see a clean OpenBSD BCM driver!


    Why are you trying to drag Marcus through the mud? Do you want him to quit?


    Theo, Michael CC'd us because we're part of the BCM reversing team. Can we help you clean the driver up?


    So you think Marcus should quit?!


    No, we just said the opposite.


    And I ask again, do you see any reason why this whole rant accusing Marcus of copyright violations should have landed in your mailbox?


    Theo, we don't want you guys to give up! Just work with us to clean up the licensing status of the code!


    You're too late. Marcus quit. Are you not human? Are you surprised?


    Little bit, yeah. This was a major GPL violation, and it doesn't seem like an accident. Why are you arguing about it?


    Why are you still calling Marcus a thief?

    Frankly, I have a hard time seeing how Marcus could be so thin-skinned as to be hurt by a GPL challenge, and yet somehow work on the same team as Theo. Presumably, Marcus never actually talked to Theo. It's all for the best, then. Marcus will be happier someplace else.

Make it myself? But I'm a physical organic chemist!