Licensing:SoftwareTypes

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
(Updated firmware exception to permit device boot firmware.)
 
(One intermediate revision by one user not shown)
Line 28: Line 28:
  
 
Most emulators (applications which emulate another platform) are not permitted for inclusion in Fedora. The rule of thumb to follow is: If it requires ROMs (or image files in any format) of copyrighted or patented material to be useful (and the owners of those copyrights and patents have not given their express written permission), then it's not permitted.
 
Most emulators (applications which emulate another platform) are not permitted for inclusion in Fedora. The rule of thumb to follow is: If it requires ROMs (or image files in any format) of copyrighted or patented material to be useful (and the owners of those copyrights and patents have not given their express written permission), then it's not permitted.
 +
 +
{{Anchor|QEMU ROMs}}
 +
=== QEMU ROMs ===
 +
 +
Whenever possible, ROMS implementing BIOS or Firmware for QEMU system targets must be built from source on the intended architecture. However, in many situations, this is not practical or possible. As a special exception for those situations where it is not practical or possible, prebuilt binary ROMS implementing BIOS or Firmware for QEMU system targets may be included in Fedora Packages, as long as the corresponding source code is also included in the Source RPM package.
  
 
{{Anchor|BinaryFirmware}}
 
{{Anchor|BinaryFirmware}}
 
=== Binary Firmware ===
 
=== Binary Firmware ===
  
Some applications and drivers require binary-only firmware to function. Fedora permits inclusion of these files as long as they meet the following requirements:
+
Some applications, drivers, and hardware require binary-only firmware to boot Fedora or function properly. Fedora permits inclusion of these files as long as they meet the following requirements:
  
 
Requirements:
 
Requirements:
* The files are non-executable (note: this means that the files cannot run on their own, not that they are just chmod -x)
+
 
* The files are not libraries.
+
* The files are non-executable within the Fedora OS context (note: this means that the files cannot run on their own, not that they are just chmod -x)
* The files are standalone, not embedded in executable or library code.
+
* The files are not libraries, within the Fedora OS context.
* Explicit permission is given by the owner to freely redistribute without restrictions (this permission must be included, in "writing", with the files in the packaging)
+
* The files are standalone, not embedded in executable or library code (within the Fedora OS context).
* The files must be necessary for the functionality of open source code being included in Fedora.
+
* The files must be necessary for the functionality of open source code being included in Fedora '''OR''' to enable Fedora to boot on a specific device, where no other reliable and supported mechanisms exist.
 +
* The files are available under an acceptable firmware license, which is included with the files in the packaging.
 +
 
 +
The Fedora Project considers a firmware license acceptable if:
 +
* it allows some form of royalty-free use, subject to restrictions that the Fedora Project has determined are acceptable for firmware licenses (see below), and
 +
* it does not restrict redistribution in ways that would make a software license unacceptable under Fedora licensing guidelines, except by:
 +
*# requiring that the firmware be redistributed only as incorporated in the redistributor's product (or as a maintenance update for existing end users of the redistributor's product), possibly limited further to those products of the redistributor that support or contain the hardware associated with the licensed firmware; and
 +
*# requiring the redistributor to pass on or impose conditions on users that are no more restrictive than those authorized by this Fedora firmware licensing policy.
 +
 
 +
A non-exhaustive list of restrictions on use that Fedora considers acceptable for firmware licenses are:
 +
# any restrictions that are found in software licenses that are acceptable for Fedora;
 +
# prohibitions on modification;
 +
# prohibitions on reverse engineering, disassembly or decompilation;
 +
# restricting use to use in conjunction with the hardware associated with the firmware license.
  
 
If you are unsure whether or not your files meet these requirements, ask on fedora-devel-list, and we will examine them for you.
 
If you are unsure whether or not your files meet these requirements, ask on fedora-devel-list, and we will examine them for you.
Line 45: Line 63:
 
The License tag for any firmware that disallows modification must be set to: "Redistributable, no modification permitted"
 
The License tag for any firmware that disallows modification must be set to: "Redistributable, no modification permitted"
  
Firmware packages must be named <foo>-firmware, where <foo> is the driver or other hardware component that the firmware is for.
+
Firmware packages must be named <foo>-firmware, where <foo> is the driver or other hardware component that the firmware is for. In cases of firmware used to boot Fedora on a device, <foo> must be the type of device(s) that the firmware is intended for (e.g. raspberrypi).

Latest revision as of 14:45, 24 October 2012

Contents

[edit] Software Types

There are some specific software types worth mentioning from a licensing/legal perspective.

[edit] Shareware

Shareware applications are not Open Source code, and are not acceptable for Fedora.

However, it is worth noting that some non-executable content exists that is required to make Open Source applications functional. An example of this would be open sourced game engines, such as Doom, Heretic, and Descent. These game engines come with freely distributable shareware gamedata files.

In this case, the gamedata files can be packaged and included in Fedora, as long as the files meet the requirements for binary firmware .

[edit] Patented Software

If a package contains code covered by known patents, then you should seek a written patent grant (and include that grant inside the package) before submitting it for Fedora. This is especially important for GPL/LGPL licensed packages, because of the following clause (from GPLv2):

For example, if a patent license would not permit royalty-free redistribution
of the Program by all those who receive copies directly or indirectly through you,
then the only way you could satisfy both it and this License would be to refrain
entirely from distribution of the Program.

It isn't safe to assume that the patent holder permits royalty-free redistribution, you need to get it in writing.

[edit] Emulators

Most emulators (applications which emulate another platform) are not permitted for inclusion in Fedora. The rule of thumb to follow is: If it requires ROMs (or image files in any format) of copyrighted or patented material to be useful (and the owners of those copyrights and patents have not given their express written permission), then it's not permitted.

[edit] QEMU ROMs

Whenever possible, ROMS implementing BIOS or Firmware for QEMU system targets must be built from source on the intended architecture. However, in many situations, this is not practical or possible. As a special exception for those situations where it is not practical or possible, prebuilt binary ROMS implementing BIOS or Firmware for QEMU system targets may be included in Fedora Packages, as long as the corresponding source code is also included in the Source RPM package.

[edit] Binary Firmware

Some applications, drivers, and hardware require binary-only firmware to boot Fedora or function properly. Fedora permits inclusion of these files as long as they meet the following requirements:

Requirements:

  • The files are non-executable within the Fedora OS context (note: this means that the files cannot run on their own, not that they are just chmod -x)
  • The files are not libraries, within the Fedora OS context.
  • The files are standalone, not embedded in executable or library code (within the Fedora OS context).
  • The files must be necessary for the functionality of open source code being included in Fedora OR to enable Fedora to boot on a specific device, where no other reliable and supported mechanisms exist.
  • The files are available under an acceptable firmware license, which is included with the files in the packaging.

The Fedora Project considers a firmware license acceptable if:

  • it allows some form of royalty-free use, subject to restrictions that the Fedora Project has determined are acceptable for firmware licenses (see below), and
  • it does not restrict redistribution in ways that would make a software license unacceptable under Fedora licensing guidelines, except by:
    1. requiring that the firmware be redistributed only as incorporated in the redistributor's product (or as a maintenance update for existing end users of the redistributor's product), possibly limited further to those products of the redistributor that support or contain the hardware associated with the licensed firmware; and
    2. requiring the redistributor to pass on or impose conditions on users that are no more restrictive than those authorized by this Fedora firmware licensing policy.

A non-exhaustive list of restrictions on use that Fedora considers acceptable for firmware licenses are:

  1. any restrictions that are found in software licenses that are acceptable for Fedora;
  2. prohibitions on modification;
  3. prohibitions on reverse engineering, disassembly or decompilation;
  4. restricting use to use in conjunction with the hardware associated with the firmware license.

If you are unsure whether or not your files meet these requirements, ask on fedora-devel-list, and we will examine them for you.

The License tag for any firmware that disallows modification must be set to: "Redistributable, no modification permitted"

Firmware packages must be named <foo>-firmware, where <foo> is the driver or other hardware component that the firmware is for. In cases of firmware used to boot Fedora on a device, <foo> must be the type of device(s) that the firmware is intended for (e.g. raspberrypi).