about summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorTuomas Tynkkynen <tuomas@tuxera.com>2016-09-19 15:38:59 +0300
committerTuomas Tynkkynen <tuomas@tuxera.com>2016-09-19 16:09:34 +0300
commitbb19e17d1416aed1d597ab429dcc28f679dd6a87 (patch)
tree43bbe458286486a7d4a2726243997c21d5cf3e68 /pkgs/tools
parent48d79488089a2d28e56daf6fcea768796579527b (diff)
downloadnixlib-bb19e17d1416aed1d597ab429dcc28f679dd6a87.tar
nixlib-bb19e17d1416aed1d597ab429dcc28f679dd6a87.tar.gz
nixlib-bb19e17d1416aed1d597ab429dcc28f679dd6a87.tar.bz2
nixlib-bb19e17d1416aed1d597ab429dcc28f679dd6a87.tar.lz
nixlib-bb19e17d1416aed1d597ab429dcc28f679dd6a87.tar.xz
nixlib-bb19e17d1416aed1d597ab429dcc28f679dd6a87.tar.zst
nixlib-bb19e17d1416aed1d597ab429dcc28f679dd6a87.zip
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.
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/package-management/rpm/default.nix14
1 files changed, 14 insertions, 0 deletions
diff --git a/pkgs/tools/package-management/rpm/default.nix b/pkgs/tools/package-management/rpm/default.nix
index b9337fe441e2..dee408e1d65a 100644
--- a/pkgs/tools/package-management/rpm/default.nix
+++ b/pkgs/tools/package-management/rpm/default.nix
@@ -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/;