about summary refs log tree commit diff
path: root/pkgs/os-specific/linux/systemd
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-06-26 13:34:55 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-06-26 13:34:55 +0200
commit15bd0f4beb1eb6e609bd365893289d3a163a4ef2 (patch)
treea63964b4f8253d7f74d6cd5111ea109d5e96364d /pkgs/os-specific/linux/systemd
parent552fd3d599851336aa21ef073d1f7836566e454f (diff)
downloadnixlib-15bd0f4beb1eb6e609bd365893289d3a163a4ef2.tar
nixlib-15bd0f4beb1eb6e609bd365893289d3a163a4ef2.tar.gz
nixlib-15bd0f4beb1eb6e609bd365893289d3a163a4ef2.tar.bz2
nixlib-15bd0f4beb1eb6e609bd365893289d3a163a4ef2.tar.lz
nixlib-15bd0f4beb1eb6e609bd365893289d3a163a4ef2.tar.xz
nixlib-15bd0f4beb1eb6e609bd365893289d3a163a4ef2.tar.zst
nixlib-15bd0f4beb1eb6e609bd365893289d3a163a4ef2.zip
systemd: Put libudev in a separate output
This way, packages that need libudev (like Mesa) don't pull in all of
systemd as a runtime dependency.
Diffstat (limited to 'pkgs/os-specific/linux/systemd')
-rw-r--r--pkgs/os-specific/linux/systemd/default.nix18
1 files changed, 18 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/systemd/default.nix b/pkgs/os-specific/linux/systemd/default.nix
index e7184aa27b96..05257aa3e0a9 100644
--- a/pkgs/os-specific/linux/systemd/default.nix
+++ b/pkgs/os-specific/linux/systemd/default.nix
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
     sha256 = "07gvn3rpski8sh1nz16npjf2bvj0spsjdwc5px9685g2pi6kxcb1";
   };
 
+  outputs = [ "out" "man" "libudev" ];
+
   patches =
     [ ./0001-Make-systemctl-daemon-reexec-do-the-right-thing-on-N.patch
       ./0002-Ignore-duplicate-paths-in-systemctl-start.patch
@@ -65,6 +67,8 @@ stdenv.mkDerivation rec {
 
       substituteInPlace src/journal/catalog.c \
         --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/
+
+      export NIX_CFLAGS_LINK+=" -Wl,-rpath,$libudev/lib"
     '';
 
   PYTHON_BINARY = "${coreutils}/bin/env python"; # don't want a build time dependency on Python
@@ -114,6 +118,20 @@ stdenv.mkDerivation rec {
       done
 
       rm -rf $out/etc/rpm
+
+      # Move libudev to a separate output.
+      mkdir -p $libudev/lib/pkgconfig $libudev/include
+      mv $out/lib/libudev* $libudev/lib/
+      mv $out/lib/pkgconfig/libudev*.pc $libudev/lib/pkgconfig/
+      mv $out/include/libudev.h $libudev/include/
+
+      for i in $libudev/lib/*.la $libudev/lib/pkgconfig/*.pc; do
+        substituteInPlace $i --replace $out $libudev
+      done
+
+      # FIXME: move into stdenv
+      prefix="$libudev" patchELF
+      prefix="$libudev" stripDirs "lib" "''${stripDebugFlags:--S}"
     ''; # */
 
   enableParallelBuilding = true;