Inoffizielle SPECS

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche
Alt.png Dieser Artikel ist veraltet und Bedarf einer Aktualisierung.

Inhaltsverzeichnis

Wozu das Ganze?

Ich wollte mich einmal etwas näher mit der Paketerstellung von RPMs beschäftigen und habe daher Teile von http://gnomefiles.org und http://www.kde-apps.org rauf und runtergebaut, obwohl ich sie selbst zum Teil überhaupt nicht einsetze. Damit doch noch jemand einen Nutzen aus den SPEC-Dateien ziehen kann, habe ich einmal diese Seite aufgemacht, auf der die einzelnen SPECs bereitstehen und eine kleine Anleitung geschrieben, womit man auch ohne Vorwissen daraus RPMs bauen kann (bzw können sollte).

Wenn jemand ausgehend von dieses SPECs ein Paket an Fedora Extras übermitteln möchte, so sei ihm dies natürlich ausdrücklich erlaubt (die GNU FDL erlaubt es ja sowieso).

Selbsterstellt oder modifiziert?

Die meisten SPECs sind anhand der Fedora Extras Packaging Guidelines von Grund auf geschrieben, da sie auch in keinem Repository existieren (bzw. ich sie da gefunden habe). Wenige Pakete wurden aus anderen Repositories dahingehend modifiziert, dass die "BuildRequires" für die Grundrepositories (s.u.) erfüllt werden. Desweiteren finden sich bei http://rpmforge.net/ sehr viele SPEC-Dateien, da das Repository noch im Aufbau ist. Diese wurden dann möglichst an die Kriterien von Fedora Extras angepasst und gegebenfalls die "BuildRequires" angepasst. Die auf Mono aufbauenden Pakete wurden teilweise von http://nrpms.net/ entliehen und um einige Funkionen entschärft (Beispiel: dbus-sharp), damit keine Originalpakete ersetzt werden müssen. Falls sich schon im Source-Tarball eine SPEC-Datei befand, wurde diese ebenfalls für FC4 modifiziert.

Vor- und Nachteile dieser Lösung

  • Vorteile
    • Es können auch ohne Vorwissen RPM-Pakete erstellt werden, die nur auf den offiziellen Repositories basieren
    • Prinzipiell einfacher und sauberer als ./configure && make && make install
    • Es gibt auch teilweise exotischere Pakete (falls noch wer mithilft)
  • Nachteile
    • Jeder ist für die erstellen Pakete selbst verantwortlich
    • Bei Updates muss das Paket neu gebaut werden
    • Die entsprechenden Devel-Pakete werden für das Bauen gebraucht. Dadurch erhöht sich das Downloadvolumen.
    • Der Aufwand ist höher als bei einem über yum zu installierenden RPM
    • Die SPECs sind nicht so "sauber" wie bei den normalen Fedora-Paketen (bzw. Extras/Livna)

Voraussetzungen

Alles, was gebraucht wird, ist ein Grundstock an Entwicklunsprogrammen, die mit folgendem Befehl installiert werden können:

yum install rpmdevtools rpmlint

Desweiteren sollten die Pakete als normaler Benutzer und nicht als root gebaut werden. Um weitere evtl. Probleme zu vermeiden, sollte zudem noch mit system-config-users ein extra Benutzeraccount angelegt werden. In diesem Beispiel heisst der Benutzer rpmbuild:

Danach wechselt in einer Shell mit su den Benutzer:

su - rpmbuild

und erstellt die Verzeichnishierarchie für das Bauen der RPMs:

fedora-buildrpmtree

Das erstellt Euch im aktuellen Verzeichnis (also normalerweise im Homeverzeichnis von rpmbuild) die Ordner BUILD, RPMS, SOURCES, SPECS, SRPMS

Wenn Ihr den Dist-Tag benutzen wollt, muss dieser noch in die Datei /home/rpmbuild/.rpmmacros eingetragen werden. Die möglichen Werte sind hier angegeben http://fedoraproject.org/wiki/DistTag . Falls Ihr nichts eintragt, wird dieser nicht benutzt.

Die übrigen Abhängigkeiten, die zum Bauen benötigt werden, meldet rpmbuild beim Aufruf. Diese müssen dann ebenfalls mit yum nachinstalliert werden. Ich habe beim erstellen der SPECs darauf geachtet, dass als vorauszusetzende Repositories ausschließlich Fedora Core, Fedora Extras und Livna in den BuildRequires eingetragen sind. Für evtl. weitere Abhängigkeiten ist dann die jeweilige SPEC-Datei direkt mit angegeben.

Bauen eines Paketes

Das Bauen eines Paketes sollte sich eigentlich relativ einfach anstellen:

1. Herunterladen der angegebenen Sourcen ins Verzeichnis rpmbuild/SOURCES
2. Erstellung der Datei %{name}.spec im Verzeichnis rpmbuild/SPECS und kopieren des Inhalts aus dem Wiki in diese Datei. %{name} ist dabei der Name, der im entsprechende Feld der SPEC-Datei steht.
3. Aufruf von rpmbuild, um die noch benötigten Abhängigkeiten festzustellen:

rpmbuild -ba ~/rpmbuild/SPECS/%{name}.spec

4. Installieren der fehlenden Abhängigkeiten über yum.
5. Nochmaliger Aufruf von rpmbuild zum entgültigen Bauen des Paketes:

rpmbuild -ba ~/rpmbuild/SPECS/%{name}.spec

6. Installieren des Paketes, dass sich im Verzeichnis ~/rpmbuild/RPMS/ befindet.

Alphabetische Liste der SPECs

dvb-firmware-usb - DVB-USB Firmware
davfs2 - WebDAV server als lokale Platte einhängen
cdcollect - Eine auf Mono basierende CD-Datenbank
codeine - Ein leichtgewichtiger, xine-basierender Videoplayer für KDE
jamboree - Ein gstreamer-basierender Musikplayer im Rhythmbox-Look.
kavi2svcd - Oberfläche für Transcode zum einfachen Wandeln von Avis in VCD/SVCD/DVD
kbfx - Ein erweiterter Ersatz für den KDE-Kicker-Button
kftpgrabber - Ein grafischer FTP-Client für KDE
kio-locate - Ein KIO-Slave für KDE zum Suchen mittels locate
kmetabar - Eine veränderte Metabar für KDE
ksplash-engine-moodin - Animierte Splash Screen Engine für KDE
ksystemlog - Grafische Oberfläche zur Ansicht von Log-Dateien
taskbar2 - Ersatz für die Taskbar von KDE mit Transparenz und Vorschau
xfmedia - Ein schlanker Musikplayer primär für den XFce-Desktop.

Themes und WindowDecorations für KDE

Die Benennung habe ich hier absichtlich so gewählt, damit deutlicher wird, um was es sich eigentlich handelt. Es steht natürlich jedem frei, das zu ändern.

kde-kwin-blueice.spec
kde-kwin-knifty.spec
kde-kwin-opusos.spec
kde-kwin-powder.spec
kde-kwin-pureline.spec

kde-theme-alloy.spec
kde-theme-ballistik.spec
kde-theme-comix.spec
kde-theme-krisp.spec
kde-theme-metal4kde.spec
kde-theme-tiblit.spec