Paketbau/SUSE-Makros/KDE4-Makros

aus openSUSE, der freien Wissensdatenbank

Inhaltsverzeichnis

KDE4-Paketbau

Wir haben einige RPM-Makros erstellt, um das Bauen von KDE4 und LDE4-Anwendungen zu vereinfachen. Soweit nicht anders angegeben stammen diese Makros aus der Datei macros.kde4, die vom Paket kde4-filesystem installiert wird und dadurch normalerweise in der Bauumgebung von KDE4 verfügbar ist. Die einzelnen Makros werden hier beschrieben:

%cmake_kde4

Dieses Makro ruf cmake mit den passenden Parametern zum Bau von openSUSE-KDE4-kompatiblen Paketen auf. Wenn Sie die Option "-d <Verzeichnis>" verwenden, initiiert es einen Bau außerhalb des Quellcodeverzeichnisbaums. Das Kompilieren außerhalb des Quellcodeverzeichnisbaums wird wärmstens empfohlen. Beispiel: "%cmake_kde4 -d builddir" erstellt builddir, wo dann die cmake-Konfigurations- und die make-Dateien für die aktuelle Kompilierung abgelegt werden.

%make_jobs

Dies ist lediglich ein Makro, dass %make mit dem passenden jobs-Parameter aufruft, falls icecream genutzt wird. Dies ist für lokale Testbauten auf Mehrprozessormaschinen und/oder Factory-Bauten gedacht, die verteilte Baukraft nutzen, um die Kompilierung zu beschleunigen.

%kde_post_install

Ein allgemeines Makro, dass als letzter nicht-trivialer Schritt in der %install-Sektion der spec-Datei aufgerufen werden sollte, um allgemeine Aufräumprozesse durchzuführen und um Funktionen einzubauen, die von einer breiten Anzahl von Paketen benötigt werden.

%create_exclude_filelist

%create_exclude_filelist erstellt eine Ausschlussdateiliste aus allen Dateilisten, die von %create_subdir_filelist erstellt wurde. Es ist für die Nutzung in den Hauptpaketen gedacht, um sicherzugehen, dass Dateien, die in Unterpakete verschoben wurde, nicht doppelt gepackt werden.

%create_subdir_filelist

Dieses Makro hilft dabei, Unterpakete zu erstellen, indem es nachschaut, was aus einem bestimmten Unterverzeichnis (und einem passenden doc/-Verzeichnis) des Quellcodes heraus installiert wurde.

%create_subdir_filelist benötigt den Parameter "-d <Verzeichnis>" und erstellt eine Dateiliste namens filelists/<Verzeichnis>, so lange nicht der Parameter "-f <Dateilistenname>" angegeben ist, welcher die Liste in filelists/<Dateilistenname> ablegt. Falls der Parameter "-v <Entwicklungsdateienlistenname>" angegeben wird, werden Entwicklungsdateien wie header, cmake-Definitionen und .so-symlinks stattdessen in filelists/<Entwicklungsdateienlistenname> geschrieben.

%kde4_runtime_requires

Fügt dem Paket die Abhängigkeit "Requires: kdebase4-runtime >= %_kde_platform_version" hinzu.

Beispiel für %create_subdir_filelist und %create_exclude_filelist

Nutzungsbeispiel in koffice2.spec (gekürzt):

 ..
 %install
 cd build
 %makeinstall
 %create_subdir_filelist -d kplato -v devel
 %create_subdir_filelist -d kword -v devel
 %create_subdir_filelist -d filters/kword -f kword -v devel
 ..
 cd ..
 sed -ri s,.*/usr/share/doc/kde/HTML/en/.*,, filelists/*
 %create_exclude_filelist
 rm -rf $RPM_BUILD_ROOT/usr/share/doc/kde/HTML/en
 ..
 %clean
 rm -rf $RPM_BUILD_ROOT
 rm -rf filelists
 ..
 %files devel -f filelists/devel
 ..
 %files kplato -f filelists/kplato
 ..
 %files kword -f filelists/kword
 ..
 %files -f filelists/exclude

Dieses Beispiel zeigt auch, wie es optional möglich ist, die automatisch generierten Dateilisten zu verschmelzen/ändern.