2

The firmware for an embedded device (e.g., a toaster) is modified significantly. Algorithms are rewritten from scratch, the code is made compatible with different hardware, etc. The end (hardware) product is sold, but the binary of the firmware is not provided separately, and there is no way to extract it from the device.

What parts of the code and device (if any) should be made publicly available?

  • Only the original, unchanged code?
  • The original code while marking the changed places to relieve the liability from the original distributor?
  • The entire changed codebase? The electrical schematics for the device?
  • The CAD drawings for the enclosure?

I am interested in minimizing the source code's exposure as much as possible.

Rohit Gupta
  • 337
  • 2
  • 3
  • 13

2 Answers2

2

All of the code must be published and licensed under GPLv3

GPLv3 is a strong copyleft licence that requires all modifications to also be GPLv3. QED.

If you didn’t use any original code, that is, you rewrote the firmware from scratch entirely, then you would own the copyright and could release as much or as little as you wished. But if you use any of the original code, you are bound by the licence.

If the electrical schematics and CAD drawings are also GPLv3 licensed (which would be odd because GPL is a software licence, not a drawing licence), then the same would apply. The toaster and electronics themselves are not covered by copyright although they may be registered designs and patented respectively.

Dale M
  • 237,717
  • 18
  • 273
  • 546
2

The GPLv3 does not require source code to be published. It is just whoever receives a copy of the binary (in whatever form) who needs to be also provided with the sources. (Quite often this will be the public, which is why the myth about the need to publish the source code at all times exists.)

So, you only need to supply the source specifically to whoever you sell the hardware to, not to the public.

Greendrake
  • 28,487
  • 5
  • 71
  • 135