Mer/Documentation/Vendor Social Contract

Contents

Social contract for hardware vendors

The “social contract” is how we'd like to position the Mer/Vendor relationship We politely request:

No tivoization

Tivoization is the creation of a system that incorporates software under the terms of a copyleft software license, but uses hardware to prevent users from running modified versions of the software on that hardware.

A user of your device, running Mer, should always be able to replace the OS image on your device with one of their own making with ease. This can be fulfilled by:

  • Not using hardware to prevent users from running modified versions of the OS
  • Bootloaders should not need firmwares to be signed.
  • Ideally publishing bootloader specifications (firmware format and methods of firmware replacement)

(Nb Mer does use some GPLv3 software, so tivoization may actually contravene the license for those applications)

Open source kernel modules

Please publish the source for any modules required to access hardware on the device.

  • Allows a modern kernel in 5 yr old device
  • Permit future development of Mer for the device.
  • Advantage is community ongoing support.

Open source software allows the development team to keep your drivers up to date, whenever Mer framework changes require driver modifications.

Redistribution of firmware and any “differentiation” code is allowed

We ask that you allow the Mer community to distribute binary copies of any closed-source firmware that is needed to support your device.

If absolutely required, the Mer community can organize a procedure so the firmware is only distributable to users of your device, behind EULA, identified with their serial number, or MAC address, etc.

If you choose to differentiate your device through closed-source bundled application software too (eg flash), we ask that you allow the same distribution rights for this.

The advantage is that a user of your device can at any point in the future build a fresh Mer OS image without losing any functionality in software or hardware that they had when with the original firmware.