rpm: Split into multiple outputs

Patch away two things:

- %_includedir, %_oldincludedir, %_mandir, %_infodir macros from
  lib/rpm/platform/*/macros to avoid cycles between outputs. Hopefully
  anything doesn't really need those.
- Change %__ld, %__nm, %__objcopy, %__objdump in lib/rpm/macros to
  refer to the commands in PATH. Should be safe as %__cc for instance is
  already like that.
This commit is contained in:
Tuomas Tynkkynen 2016-09-19 15:38:59 +03:00
parent 48d7948808
commit bb19e17d14

View File

@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
sha256 = "18hk47hc755nslvb7xkq4jb095z7va0nlcyxdpxayc4lmb8mq3bp";
};
outputs = [ "out" "dev" "man" ];
buildInputs = [ cpio zlib bzip2 file libarchive nspr nss db xz python lua pkgconfig autoreconfHook ];
# rpm/rpmlib.h includes popt.h, and then the pkg-config file mentions these as linkage requirements
@ -30,6 +32,18 @@ stdenv.mkDerivation rec {
substituteInPlace Makefile.am --replace '@$(MKDIR_P) $(DESTDIR)$(localstatedir)/tmp' ""
'';
preFixup = ''
# Don't keep a reference to RPM headers or manpages
for f in $out/lib/rpm/platform/*/macros; do
substituteInPlace $f --replace "$dev" "/rpm-dev-path-was-here"
substituteInPlace $f --replace "$man" "/rpm-man-path-was-here"
done
# Avoid macros like '%__ld' pointing to absolute paths
for tool in ld nm objcopy objdump strip; do
sed -i $out/lib/rpm/macros -e "s/^%__$tool.*/%__$tool $tool/"
done
'';
meta = with stdenv.lib; {
homepage = http://www.rpm.org/;