Say for instance I develop a program that links with GPL2/3 code statically or dynamically which is installed on an embedded device such as the raspberry pi as part of a larger system, is there any language in the GPL licence which dictates how this should be handled?

The program won't be directly accessible to the end user.


One of the freedoms that the GPL license gives users is that if they have legitimately received a copy of a piece of software that is licensed under the GPL license, then they must have the right and possibility to replace the GPL-licensed code with a different version of their choosing.

This freedom is not restricted to software running on a regular PC/laptop, but it applies equally to software running on an embedded processor in a larger system that the user has bought.

When building an embedded device that contains GPL-licensed modules, this effectively means that you must give users enough access that they can replace part (or all) of the firmware on the device.
It does not mean you still have to give warranty or support on the device once a user has replaced the firmware.

  • link describes this, but it is only for GPLv3 and only for User Products and only if User Products can be upgraded. What about GPLv2? – Climax Sep 1 '16 at 9:44
  • 1
    @Climax: In GPLv2, the intent is the same as in GPLv3, but the text of the license had a loophole that allowed manufacturers of embedded devices to comply with the letter of the license while blatantly violating the intent. If the device physically does not support having the software changed in any way, then the GPL does not force you to change that design. – Bart van Ingen Schenau Sep 1 '16 at 10:03

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.