I was wondering if there is a time line when I have to distribute source code for a binary that has been released under the GPLv2 license. To my understanding, I would need to release the source code along site it (ie. immediately).

I'm asking this question because I've heard that Apple does not update its open source page as soon as they make changes to the kernel and publish a patch. Thus would They be violating the license agreement.

  • 3
    This is a question for opensource.stackexchange.com
    – Philipp
    Jan 24 '16 at 21:38
  • Thanks! Sorry I did not know about open-source.stackexchange. Should I reask this question there or leave it here? Jan 24 '16 at 21:40
  • 2
    Nah, it's on topic here too.
    – Ixrec
    Jan 24 '16 at 21:41
  • 1
    @NicoKuhllam Well, the GPL v2 certainly doesn't say anything like "you must distribute the source before your program becomes commercially irrelevant." But that could be a legitimate moral issue. I would recommend posting a follow-up question about this on OpenSource.SE, since they have people who know way more than I do about these issues.
    – Ixrec
    Jan 24 '16 at 22:01
  • 2
    -1: Apple's (presumably OS X) kernel isn't released under GPL, so GPL is irrelevant here. Jan 24 '16 at 22:49

You don't have to distribute the source code at all until someone asks for it. But if you choose not to distribute it along with the executable, you do have to provide a "written offer" for the source code, which I assume would have to include instructions on how to contact you and ask for it.

From the GPL v2 preamble:

You must make sure that they, too, receive or can get the source code.

So it's fine if they don't receive the source code right away, as long as you provide some way for them to get it later if they want it.

I'm assuming you're already distributing the program in executable form, so the relevant part the main body of the license is:

3 You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

All emphasis mine.

  • I was about to write an answer myself quoting the same section of the license. My interpretation would be that – since option (b) obviously has a time delay – choosing option (a) with a delay between publication of the binary form and the source form would be considered still acceptable if the delay is within the same margin as one could reasonably expect from choosing option (b). My view might be specific to the legal tradition of Germany.
    – 5gon12eder
    Jan 24 '16 at 21:45
  • Wouldn't "choosing option a" mean the source code accompanies the executable, and thus there is no time delay? (though if you're saying you send them in different packages or different emails or something then I agree that's totally fine) It seemed to me like (b) was the only part that applied to OP. Also, the time delay in (b) sounds like it's between executable distribution and request for source; I can't actually find any reference to a minimum or maximum time delay between request for source and delivery of source.
    – Ixrec
    Jan 24 '16 at 21:48
  • 1
    @lxrec My understanding is that if you choose option (a), you have to provide (possibly different) channels for binary and source distribution. If you update the binary distribution channel at t_b and the source distribution channel at t_s then requiring that t_s = t_b is unrealistic. One could argue that you shall stay on the safe side and make sure that t_s <= t_b, which I would recommend doing. However, I'd argue that t_s > t_b can also be justified if t_s - t_b is within the time frame you'd expect for obtaining the source via option (b) (write request, mail, receive reply).
    – 5gon12eder
    Jan 24 '16 at 22:03
  • 1
    @NicoKuhllam First, XNU uses Apple Public Source License, not GPLv2. Second, it applies to the code that is already released by them, after they release it on opensource.apple.com. Code made internally in Apple and released with OS X 10.11.3 is under Apple's propertiary EULA.
    – Marqin
    Jan 24 '16 at 22:10
  • 1
    @5gon12eder A lawyer would tell you that that the GPL language requires simultaneous release of source and binary, and that de minimis differences between t_s and t_b are indistinguishable from simultaneity. Jan 24 '16 at 22:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.