Paketbau/SUSE-Makros

aus openSUSE, der freien Wissensdatenbank

In openSUSE genutzte RPM-Makros

Die folgende Liste enthält, teilweise openSUSE-spezifische, RPM-Makros für spec-Dateien.

Falls Sie sich nicht sicher sind, schauen Sie sich auch die Unterseiten der einzelnen Projekte an, auf denen Sie weitere Erklärungen finden.

%suse_version

Dieses Makro erweitert sich auf die Version von SUSE Linux / openSUSE, auf der das Paket gebaut wird. Sie ist "1000" für SUSE Linux 10.0, "1020" für openSUSE 10.2 und so weiter.

Siehe auch %sles_version.

%fdupes

Dieses Makro wird genutzt, um harte Verknüpfungen (hard links) für doppelte Dateien in ihrem $RPM_BUILD_ROOT zu erstellen. Hiermit lässt sich die Größe des installierten Pakets reduzieren, und in einigen Fällen auch die des RPM-Pakets selbst. Passen Sie aber bitte auf, dass diese duplizierten Dateien nicht in verschiedenen Unterpaketen enden, da wir bisher noch nicht ausprobiert haben, was rpm in einem solchen Fall macht. Falls Sie sich nicht sicher sind, können Sie %fdupes -s nutzen, was eine symbolische Verknüpfung (symlink) erstellt, die für rpm einfacher zu erfassen ist.

Sie können dies auch so kombinieren

 ..
 %if 0%{?suse_version} > 1020
 BuildRequires:  fdupes
 %endif
 ..
 %install
 ..
 %if 0%{?suse_version} > 1020
 # create symlinks for man pages
 %fdupes -s $RPM_BUILD_ROOT/%_mandir
 # create hardlinks for the rest
 %fdupes $RPM_BUILD_ROOT
 %endif

Es gibt eine RPMLint-Prüfung, die einen Fehler für das Paket ausgibt, wenn es eine erhebliche Menge Platz verschwendet.