3

I need a bootloader with touchscreen support for some specific machines I am planning to sell. These machines will be distributed without a keyboard, and I found that rEFInd meets my needs. Since rEFInd is under the GPL-3 license, I have some questions regarding compliance.

The machines will come with some proprietary programs preinstalled and include specific functionalities designed exclusively for them. I do not plan to modify the rEFInd code; I intend to use it as-is as a bootloader. I am willing to provide a link to the already available rEFInd source code, but I prefer not to distribute the source code of the other preinstalled programs and functionalities.

Do I need to make my source code accessible in this scenario?

1 Answer 1

5

Yes, you need to make the source code accessible. The situation you describe (your machine which includes proprietary as well as GPL software) is known as a 'physical product' in the GPL parlance. Your options for distributing the source code of the GPLv3 components are in section 6 -- you must choose one of the ways in that section to distribute the code. The two ways that are relevant to you are in paragraphs (a) and (b):

a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange.

b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge.

To comply with option (a), one normally makes available some kind of optical read-only disc (e.g. CD/DVD, mini-CD/DVD). This is usually packaged together with any kind of printed materials (e.g. warranty statements, manuals, etc.).

To comply with option (b) you needn't provide the source right now, but can do so via a written offer. In that offer, you may either provide the source code on a disc with a fee attached (i.e. you can charge the customer for shipping fees and for a fair price to cover the cost of the CD/DVD), or you may provide "access to copy the Corresponding Source from a network server at no charge".

I am willing to provide a link to the already available rEFInd source code ...

If you merely link to the original project's source code repository, then this will presumably fulfil the text of the license according to option 6b with the "network server at no charge", but I would recommend that you instead host the copy yourself on a server you control -- this way you'll avoid any annoyances later on down the line. For example, suppose one of your customers tries to access the code you linked to but it can't be accessed for some reason (e.g. the hyperlink has changed, geo-locking or site-based Internet restrictions, etc.) -- since that server is not something you control, then there's simply nothing you'll be able to do about that, furthermore it would not create a good impression for the customer who is having problems, and finally it would annoy the original rEFInd providers if your customers start contacting them. After all, since you're the one including the software in a product, then providing the source code as stated in the GPLv3 is your responsibility, not theirs.

... I prefer not to distribute the source code of the other preinstalled programs and functionalities.

The requirement to distribute/make available the source code only applies to the GPLv3 software, not to the other programs installed on the machine.

Also, since you are using GPLv3 and since it is a bootloader, be aware that the GPLv3 requires that you allow your customers to use modified bootloaders (i.e. modified versions of rEFInd) on your product if they wish to do so. The specific requirements are mentioned in the GPLv3 under the heading of "Installation Information". These requirements are known informally as the anti-tivoization requirements or anti-tivoization clause; it's a unique feature of GPLv3 that is not present in GPLv2. See also: What exactly is Tivoization and why didn't Linus Torvalds like it in GPLv3?

1
  • 1
    Thank you very much for the detailed explanation! Hosting the source code on my own server and providing it upon request seems like the best option, so I will probably do that. Additionally, I am not planning to restrict the machine from allowing users to install modified bootloaders, so anti-tivoization shouldn't be a problem. Commented Jun 3 at 7:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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