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.

