Was kann paketiert werden?
Nicht alles lässt sich in Fedora paketieren. Das meiste, was als „freie Software“ oder „Open-Source-Software“ gilt, ist zwar zulässig, die Definitionen dieser Begriffe sind jedoch nicht immer einheitlich, und Fedora hat einige spezifische Anforderungen und Ausnahmen. Dieser Überblick über einige dieser Anforderungen und Ausnahmen erhebt keinen Anspruch auf Vollständigkeit. Bei Fragen wenden Sie sich bitte an das Packaging Committee und das Legal Team.
Rechtliche Fragen
Manche Software (oder in einigen Fällen Teile davon) darf aus rechtlichen Gründen nicht paketiert werden. Dies betrifft unter anderem Lizenz-, Patent- und Markenrechte.
Auf den folgenden Seiten finden Sie verschiedene Beispiele.
Unzulässige Inhalte
Es ist wichtig, zwischen ausführbarem Computercode und Inhalten zu unterscheiden. Während Code zulässig ist (vorausgesetzt natürlich, er verfügt über eine Open-Source-kompatible Lizenz, ist rechtlich unbedenklich usw.), sind nur bestimmte Arten von Inhalten zulässig.
Es gilt folgende Regel:
Wenn die Inhalte das Benutzererlebnis des Betriebssystems verbessern, können sie in Fedora integriert werden. Das bedeutet beispielsweise, dass Schriftarten, Designs, Cliparts und Hintergrundbilder zulässig sind.
Die Inhalte müssen weiterhin auf ihre Veröffentlichung geprüft werden. Sie müssen unter einer Open-Source-kompatiblen Lizenz stehen und rechtlich unbedenklich sein. Darüber hinaus gelten für Inhalte weitere Einschränkungen:
-
Die Inhalte dürfen nicht pornografisch sein oder Nacktheit enthalten, weder animiert, simuliert noch fotografiert. Es gibt im Internet bessere Seiten für Pornografie.
-
Inhalte dürfen nicht beleidigend, diskriminierend oder abwertend sein. Wenn Sie sich bei einem Inhalt nicht sicher sind, ob er eine dieser Kategorien erfüllt, dann erfüllt er sie wahrscheinlich.
-
Alle Inhalte werden von FESCo geprüft, die das letzte Wort darüber hat, ob sie aufgenommen werden können oder nicht.
Einige Beispiele für zulässige Inhalte:
-
Paketdokumentation oder Hilfedateien.
-
Clipart für Büroanwendungen.
-
Hintergrundbilder (nicht anstößig, diskriminierend, mit Erlaubnis zur freien Weiterverbreitung).
-
Schriftarten (unter einer Open-Source-Lizenz, ohne Eigentums- oder rechtliche Bedenken).
-
Spiellevel werden nicht als Inhalt betrachtet, da Spiele ohne Level nicht funktionsfähig wären.
-
Klänge oder Grafiken, die im Quellcode-Tarball enthalten sind und vom Programm oder Theme (oder der Dokumentation) verwendet werden, sind zulässig.
-
Spielmusik oder Audioinhalte sind zulässig, sofern die Inhalte ohne Einschränkungen frei weiterverbreitbar sind und das Format nicht patentrechtlich geschützt ist.
-
Die im Quellcode-Tarball enthaltenen Beispieldateien werden nicht als Inhalt betrachtet.
Einige Beispiele für unzulässige Inhalte:
-
Comic-Kunstdateien
-
Religiöse Texte
-
Dateien in patentrechtlich geschützten Medienformaten
Wenn Sie sich nicht sicher sind, ob etwas als genehmigter Inhalt gilt, fragen Sie das Packaging Committee oder, falls Ihre Frage rechtlicher Natur ist, das Legal Team.
Pakete, die ohne externen Code nicht nutzbar sind
Manche Software ist ohne externe Codeabhängigkeiten in der Laufzeitumgebung des Betriebssystems nicht funktionsfähig oder nutzbar. Sind diese externen Codeabhängigkeiten nicht frei, rechtlich unzulässig oder nur als Binärdateien verfügbar (mit Ausnahme zulässiger Firmware), ist die abhängige Software für die Integration in Fedora nicht geeignet. Sind die Codeabhängigkeiten hingegen für Fedora akzeptabel, müssen sie als Voraussetzung für die Integration der abhängigen Software in Fedora paketiert und eingebunden werden. Software, die Codepakete aus dem Internet herunterlädt, um funktionsfähig oder nutzbar zu sein, ist für die Integration in Fedora nicht geeignet (unabhängig davon, ob der heruntergeladene Code als zulässige Abhängigkeit in Fedora paketiert werden könnte).
Dies bedeutet auch, dass Pakete, die ohne Code oder Pakete von Drittanbietern nicht funktionsfähig oder nützlich sind, für die Aufnahme in Fedora nicht akzeptabel sind.
Nur ein Kernel-Paket
Fedora erlaubt nur ein einziges Kernel-Paket; Pakete mit alternativen Kerneln sind in der Distribution nicht zulässig. Falls es Kernel-Funktionen gibt, die allgemein nützlich wären, wenden Sie sich bitte an das Kernel Team.
Keine externen Kernelmodule
Fedora erlaubt es nicht, Kernelmodule außerhalb des Hauptkernelpakets zu paketieren. Bitte wenden Sie sich an das Kernel Team, um zusätzliche Kernelmodule zu aktivieren.
Keine vorkompilierten Binärdateien oder Bibliotheken
Alle in Fedora-Paketen enthaltenen Programmdateien und Programmbibliotheken müssen aus dem im Quellpaket enthaltenen Quellcode erstellt werden. Dies ist aus folgenden Gründen erforderlich:
-
Sicherheit: Vorpaketierte Programmdateien und Programmbibliotheken, die nicht aus dem Quellcode erstellt wurden, können schädliche, gefährliche oder fehlerhafte Teile enthalten. Zudem lassen sie sich praktisch nicht patchen.
-
Compiler-Flags: Vorpaketierte Programmbinärdateien und Programmbibliotheken, die nicht aus dem Quellcode erstellt wurden, wurden wahrscheinlich nicht mit den Standard-Fedora-Compiler-Flags für Sicherheit und Optimierung kompiliert.
Inhaltsbinärdateien (wie z. B. .pdf-, .png- und .ps-Dateien) müssen nicht aus dem Quellcode neu erstellt werden.
Wenn Sie sich nicht sicher sind, ob es sich um eine Programmdatei oder eine Programmbibliothek handelt, finden Sie hier einige hilfreiche Kriterien:
-
Ist sie ausführbar? Wenn ja, handelt es sich wahrscheinlich um eine Programmdatei.
-
Hat sie die Dateiendung
.so,.so.#oder.so.#.#.#? Wenn ja, handelt es sich wahrscheinlich um eine Programmbibliothek. -
Im Zweifelsfall fragen Sie Ihren Reviewer. Wenn auch dieser sich nicht sicher ist, sollte er das Fedora Packaging Committee kontaktieren.
Pakete, die zum Kompilieren nicht quelloffene Komponenten benötigen, sind ebenfalls nicht zulässig (zum Beispiel wenn ein proprietärer Compiler erforderlich ist).
Wenn Sie in einem Paket auf vorkompilierte Binärdateien stoßen, MÜSSEN Sie:
-
Entfernen Sie vor dem Erstellen des Pakets alle vorkompilierten Programmdateien und Programmbibliotheken im Schritt %prep. Beispiele hierfür sind unter anderem Dateien mit den Endungen
*.class,*.dll,*.DS_Store,*.exe,*.jar,*.o,*.pyc,*.pyo,*.egg,*.sound*.swf. -
Bitten Sie die Upstream-Entwickler, die Binärdateien in der nächsten Version zu entfernen.
Ausnahmen
-
Manche Software (meist Compiler oder Cross-Compiler-Umgebungen) lässt sich nur mit einer vorherigen Toolchain oder Entwicklungsumgebung (Open Source) kompilieren. Falls Ihr Paket diese Kriterien erfüllt, wenden Sie sich bitte an das Fedora Packaging Committee, um eine Genehmigung einzuholen. Beachten Sie, dass diese Ausnahme, falls gewährt, nur für die erste Kompilierung des Pakets gilt. Sie können diese Kompilierung mit einer vorkompilierten „Bootstrap“-Binärdatei vorbereiten. Nach Abschluss des Bootstrappings müssen Sie jedoch umgehend die Release-Version erhöhen, die vorkompilierte „Bootstrap“-Binärdatei entfernen und das Paket vollständig aus dem Quellcode kompilieren. Vorkompilierte Pakete, die „Bootstrap“-Binärdateien enthalten, dürfen unter keinen Umständen als Release-Pakete oder Updates veröffentlicht werden. Diese Pakete sollten die notwendige Logik enthalten, die nach Abschluss des Bootstrappings und dem Wegfall der vorkompilierten Programme kompiliert wird. Informationen zum Auflösen zirkularer Abhängigkeiten durch Bootstrapping finden Sie hier.
-
Eine Ausnahme gilt für binäre Firmware, sofern diese die hier dokumentierten Anforderungen erfüllt.
-
Manche vorpaketierten Programmdateien oder Programmbibliotheken unterliegen möglicherweise Bedingungen, die eine Weitergabe untersagen, oder sind durch rechtliche Bestimmungen wie Patente geschützt. In solchen Fällen reicht es nicht aus, diese Dateien einfach im Ordner %prep zu löschen. Der Paketbetreuer muss eine modifizierte Version des Quellcodes erstellen, die diese Dateien nicht mehr enthält. Siehe: Wenn Upstream verbotenen Code verwendet.
Vorkompilierter Code
Oft enthält ein Paket Code, der selbst von anderem Code generiert wurde. Dies geschieht häufig in Form von Konfigurationsdateien oder Parsing-Code, der von bison/yacc oder lex/flex generiert wurde.
Es ist erforderlich, dass die Originalquelldateien, aus denen der Code generiert wurde, im Quellpaket enthalten sind. In der Regel sind diese Dateien Teil des vom Upstream-Projekt bereitgestellten Quellarchivs. Es kann jedoch notwendig sein, diese Dateien aus einem Upstream-Quellcode-Repository abzurufen und als separate Source:-Einträge in das Quellpaket einzufügen.
Es ist zwar wünschenswert, aber nicht zwingend erforderlich, dass die zur Generierung dieses Codes verwendeten Werkzeuge freie Software sind und in Fedora enthalten sind.
Es wird empfohlen, aber nicht vorausgesetzt, dass dieser Code im Rahmen des Bauprozesses neu generiert wird. Die Vorgehensweise hierfür ist vollständig paketspezifisch, kann aber automatisch erfolgen, wenn die erforderlichen Abhängigkeiten zum Bauzeitpunkt vorhanden sind.
Want to help? Learn how to contribute to Fedora Docs ›