systemd: Separate lib output

This moves libsystemd.so and libudev.so into systemd.lib, and gets rid
of libudev (which just contained a copy of libudev.so and the udev
headers). It thus reduces the closure size of all packages that
(indirectly) depend on libsystemd, of which there are quite a few (for
instance, PulseAudio and dbus). For example, it reduces the closure of
Blender from 430.8 to 400.8 MiB.
This commit is contained in:
Eelco Dolstra 2016-09-05 18:59:00 +02:00
parent 5d8c547460
commit 78178d5854
31 changed files with 80 additions and 123 deletions

View file

@ -1,6 +1,6 @@
{ fetchurl, stdenv, dpkg, xorg, alsaLib, makeWrapper, openssl, freetype
, glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng, GConf
, libgcrypt, libudev, fontconfig, dbus, expat, ffmpeg_0_10, curl, zlib, gnome }:
, libgcrypt, systemd, fontconfig, dbus, expat, ffmpeg_0_10, curl, zlib, gnome }:
assert stdenv.system == "x86_64-linux";
@ -28,7 +28,7 @@ let
nss
pango
stdenv.cc.cc
libudev
systemd
xorg.libX11
xorg.libXcomposite
xorg.libXcursor

View file

@ -1,11 +1,11 @@
{ stdenv, fetchurl, buildEnv, gtk, glib, gdk_pixbuf, alsaLib, nss, nspr, gconf
, cups, libgcrypt_1_5, libudev, makeWrapper, dbus }:
, cups, libgcrypt_1_5, systemd, makeWrapper, dbus }:
let
bracketsEnv = buildEnv {
name = "env-brackets";
paths = [
gtk glib gdk_pixbuf stdenv.cc.cc alsaLib nss nspr gconf cups libgcrypt_1_5
dbus libudev.out
dbus systemd.lib
];
};
in
@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
rmdir $out/usr
ln -sf $out/opt/brackets/brackets $out/bin/brackets
ln -s ${libudev.out}/lib/libudev.so.1 $out/opt/brackets/lib/libudev.so.0
ln -s ${systemd.lib}/lib/libudev.so.1 $out/opt/brackets/lib/libudev.so.0
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${bracketsEnv}/lib:${bracketsEnv}/lib64" \

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildEnv, zlib, glib, alsaLib, makeDesktopItem
, dbus, gtk, atk, pango, freetype, fontconfig, libgnome_keyring3, gdk_pixbuf
, cairo, cups, expat, libgpgerror, nspr, gnome3, nss, xorg, libudev, libnotify
, cairo, cups, expat, libgpgerror, nspr, gnome3, nss, xorg, systemd, libnotify
}:
let
@ -45,9 +45,9 @@ stdenv.mkDerivation rec {
mv $out/share/LightTable/light $out/bin/light
ln -sf ${libudev.out}/lib/libudev.so.1 $out/share/LightTable/libudev.so.0
ln -sf ${systemd.lib}/lib/libudev.so.1 $out/share/LightTable/libudev.so.0
substituteInPlace $out/bin/light \
--replace "/usr/lib/x86_64-linux-gnu" "${libudev.out}/lib" \
--replace "/usr/lib/x86_64-linux-gnu" "${systemd.lib}/lib" \
--replace "/lib/x86_64-linux-gnu" "$out/share/LightTable" \
--replace 'HERE=`dirname $(readlink -f $0)`' "HERE=$out/share/LightTable"

View file

@ -8,7 +8,7 @@
, libusb1, pciutils, nss
, python, pythonPackages, perl, pkgconfig
, nspr, libudev, kerberos
, nspr, systemd, kerberos
, utillinux, alsaLib
, bison, gperf
, glib, gtk, dbus_glib
@ -113,7 +113,7 @@ let
buildInputs = defaultDependencies ++ [
which
python perl pkgconfig
nspr nss libudev
nspr nss systemd
utillinux alsaLib
bison gperf kerberos
glib gtk dbus_glib
@ -147,7 +147,7 @@ let
-e "/python_arch/s/: *'[^']*'/: '""'/" \
build/common.gypi chrome/chrome_tests.gypi
sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${libudev.out}/lib/\1!' \
sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${systemd.lib}/lib/\1!' \
device/udev_linux/udev?_loader.cc
sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \

View file

@ -7,7 +7,7 @@
, dbus_libs, gtk, gdk_pixbuf, gcc
# Will crash without.
, libudev
, systemd
# Loaded at runtime.
, libexif
@ -45,7 +45,7 @@ let
libXcursor libXext libXfixes libXrender libXScrnSaver libXcomposite
alsaLib libXdamage libXtst libXrandr expat cups
dbus_libs gtk gdk_pixbuf gcc
libudev
systemd
libexif
liberation_ttf curl utillinux xdg_utils wget
flac harfbuzz icu libpng opusWithCustomModes snappy speechd

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, rpm, cpio, mesa, xorg, cairo
, libpng, gtk, glib, gdk_pixbuf, fontconfig, freetype, curl
, dbus_glib, alsaLib, libpulseaudio, libudev, pango
, dbus_glib, alsaLib, libpulseaudio, systemd, pango
}:
with stdenv.lib;
@ -37,7 +37,7 @@ let
alsaLib
libpulseaudio
dbus_glib
libudev
systemd
curl
pango
cairo

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, zlib, libX11, libXext, libSM, libICE
, libXfixes, libXt, libXi, libXcursor, libXScrnSaver, libXcomposite, libXdamage, libXtst, libXrandr
, alsaLib, dbus_libs, cups, libexif, ffmpeg, libudev
, alsaLib, dbus_libs, cups, libexif, ffmpeg, systemd
, freetype, fontconfig, libXft, libXrender, libxcb, expat, libXau, libXdmcp
, libuuid, xz
, gstreamer, gst_plugins_base, libxml2
@ -38,7 +38,7 @@ in stdenv.mkDerivation rec {
buildInputs =
[ stdenv.cc.cc stdenv.cc.libc zlib libX11 libXt libXext libSM libICE
libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr
atk alsaLib dbus_libs cups gtk gdk_pixbuf libexif ffmpeg libudev
atk alsaLib dbus_libs cups gtk gdk_pixbuf libexif ffmpeg systemd
freetype fontconfig libXrender libuuid expat glib nss nspr
gstreamer libxml2 gst_plugins_base pango cairo gnome3.gconf
patchelf
@ -53,7 +53,7 @@ in stdenv.mkDerivation rec {
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${libPath}" \
opt/vivaldi/vivaldi-bin
opt/vivaldi/vivaldi-bin
echo "Finished patching Vivaldi binaries"
'';

View file

@ -2,7 +2,7 @@
, alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk_pixbuf
, glib, gnome, gtk, libnotify, libX11, libXcomposite, libXcursor, libXdamage
, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst, nspr, nss, pango
, libudev, libXScrnSaver }:
, systemd, libXScrnSaver }:
let version = "0.0.8"; in
@ -19,7 +19,7 @@ stdenv.mkDerivation {
stdenv.cc.cc alsaLib atk cairo cups dbus expat fontconfig freetype
gdk_pixbuf glib gnome.GConf gtk libnotify libX11 libXcomposite
libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
libXtst nspr nss pango libudev.out libXScrnSaver
libXtst nspr nss pango systemd libXScrnSaver
];
installPhase = ''
@ -35,7 +35,7 @@ stdenv.mkDerivation {
ln -s $out/DiscordCanary $out/bin/
# Putting udev in the path won't work :(
ln -s ${libudev.out}/lib/libudev.so.1 $out
ln -s ${systemd.lib}/lib/libudev.so.1 $out
'';
meta = with stdenv.lib; {

View file

@ -1,6 +1,6 @@
{fetchurl, stdenv, dpkg, makeWrapper,
alsaLib, cups, curl, dbus, expat, fontconfig, freetype, glib, gst_all_1, harfbuzz, libcap,
libpulseaudio, mesa, nspr, nss, libudev, wayland, xorg, zlib, ...
libpulseaudio, mesa, nspr, nss, systemd, wayland, xorg, zlib, ...
}:
assert stdenv.system == "x86_64-linux";
@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
nspr
nss
stdenv.cc.cc
libudev
systemd
wayland
zlib

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, libudev ? null, libobjc, IOKit }:
{ stdenv, fetchurl, pkgconfig, systemd ? null, libobjc, IOKit }:
stdenv.mkDerivation rec {
name = "libusb-1.0.19";
@ -12,13 +12,13 @@ stdenv.mkDerivation rec {
buildInputs = [ pkgconfig ];
propagatedBuildInputs =
stdenv.lib.optional stdenv.isLinux libudev ++
stdenv.lib.optional stdenv.isLinux systemd ++
stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ];
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
preFixup = stdenv.lib.optionalString stdenv.isLinux ''
sed 's,-ludev,-L${libudev.out}/lib -ludev,' -i $out/lib/libusb-1.0.la
sed 's,-ludev,-L${systemd.lib}/lib -ludev,' -i $out/lib/libusb-1.0.la
'';
meta = {

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, fetchpatch
, pkgconfig, intltool, autoreconfHook, substituteAll
, file, expat, libdrm, xorg, wayland, libudev
, file, expat, libdrm, xorg, wayland, systemd
, llvmPackages, libffi, libomxil-bellagio, libva
, libelf, libvdpau, python
, grsecEnabled ? false
@ -54,7 +54,7 @@ stdenv.mkDerivation {
] ++ optional stdenv.isLinux
(substituteAll {
src = ./dlopen-absolute-paths.diff;
libudev = libudev.out;
libudev = systemd.lib;
});
postPatch = ''
@ -114,7 +114,7 @@ stdenv.mkDerivation {
libffi wayland libvdpau libelf libXvMC
libomxil-bellagio libva libpthreadstubs
(python.withPackages (ps: [ ps.Mako ]))
] ++ optional stdenv.isLinux libudev;
] ++ optional stdenv.isLinux systemd;
enableParallelBuilding = true;

View file

@ -1,4 +1,4 @@
{ qtSubmodule, qtbase, substituteAll, libudev }:
{ qtSubmodule, qtbase, substituteAll, systemd }:
qtSubmodule {
name = "qtserialport";
@ -6,7 +6,7 @@ qtSubmodule {
patches = [
(substituteAll {
src = ./0001-dlopen-serialport-udev.patch;
libudev = libudev.out;
libudev = systemd.lib;
})
];
}

View file

@ -1,6 +1,6 @@
{ qtSubmodule, stdenv, qtdeclarative, qtlocation, qtsensors
, fontconfig, gdk_pixbuf, gtk, libwebp, libxml2, libxslt
, sqlite, libudev, glib, gst_all_1
, sqlite, systemd, glib, gst_all_1
, bison2, flex, gdb, gperf, perl, pkgconfig, python, ruby
, substituteAll
, flashplayerFix ? false
@ -27,7 +27,7 @@ qtSubmodule {
};
dlopen-webkit-udev = substituteAll {
src = ./0003-dlopen-webkit-udev.patch;
libudev = libudev.out;
libudev = systemd.lib;
};
in optionals flashplayerFix [ dlopen-webkit-nsplugin dlopen-webkit-gtk ]
++ [ dlopen-webkit-udev ];

View file

@ -1,4 +1,4 @@
{ qtSubmodule, qtbase, substituteAll, libudev }:
{ qtSubmodule, qtbase, substituteAll, systemd }:
qtSubmodule {
name = "qtserialport";
@ -6,7 +6,7 @@ qtSubmodule {
patches = [
(substituteAll {
src = ./0001-dlopen-serialport-udev.patch;
libudev = libudev.out;
libudev = systemd.lib;
})
];
}

View file

@ -1,6 +1,6 @@
{ qtSubmodule, stdenv, qtdeclarative, qtlocation, qtsensors
, fontconfig, gdk_pixbuf, gtk, libwebp, libxml2, libxslt
, sqlite, libudev, glib, gst_all_1
, sqlite, systemd, glib, gst_all_1
, bison2, flex, gdb, gperf, perl, pkgconfig, python, ruby
, substituteAll
, flashplayerFix ? false
@ -27,7 +27,7 @@ qtSubmodule {
};
dlopen-webkit-udev = substituteAll {
src = ./0003-dlopen-webkit-udev.patch;
libudev = libudev.out;
libudev = systemd.lib;
};
in optionals flashplayerFix [ dlopen-webkit-nsplugin dlopen-webkit-gtk ]
++ [ dlopen-webkit-udev ];

View file

@ -1,4 +1,4 @@
{ qtSubmodule, qtbase, substituteAll, libudev }:
{ qtSubmodule, qtbase, substituteAll, systemd }:
qtSubmodule {
name = "qtserialport";
@ -6,7 +6,7 @@ qtSubmodule {
patches = [
(substituteAll {
src = ./0001-dlopen-serialport-udev.patch;
libudev = libudev.out;
libudev = systemd.lib;
})
];
}

View file

@ -1,6 +1,6 @@
{ qtSubmodule, stdenv, qtdeclarative, qtlocation, qtsensors
, fontconfig, gdk_pixbuf, gtk, libwebp, libxml2, libxslt
, sqlite, libudev, glib, gst_all_1
, sqlite, systemd, glib, gst_all_1
, bison2, flex, gdb, gperf, perl, pkgconfig, python, ruby
, substituteAll
, flashplayerFix ? false
@ -27,7 +27,7 @@ qtSubmodule {
};
dlopen-webkit-udev = substituteAll {
src = ./0003-dlopen-webkit-udev.patch;
libudev = libudev.out;
libudev = systemd.lib;
};
in optionals flashplayerFix [ dlopen-webkit-nsplugin dlopen-webkit-gtk ]
++ [ dlopen-webkit-udev ];

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildEnv, makeWrapper
, xorg, alsaLib, dbus, glib, gtk, atk, pango, freetype, fontconfig
, gdk_pixbuf, cairo, zlib, nss, nssTools, nspr, gconf, expat, libudev, libcap
, gdk_pixbuf, cairo, zlib, nss, nssTools, nspr, gconf, expat, systemd, libcap
, libnotify}:
let
bits = if stdenv.system == "x86_64-linux" then "x64"
@ -37,7 +37,7 @@ in stdenv.mkDerivation rec {
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/node-webkit/nw
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/node-webkit/nwsnapshot
ln -s ${libudev.out}/lib/libudev.so $out/share/node-webkit/libudev.so.0
ln -s ${systemd.lib}/lib/libudev.so $out/share/node-webkit/libudev.so.0
patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit" $out/share/node-webkit/nw
patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit" $out/share/node-webkit/nwsnapshot

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildEnv, makeWrapper
, xorg, alsaLib, dbus, glib, gtk, atk, pango, freetype, fontconfig
, gdk_pixbuf, cairo, zlib, nss, nssTools, nspr, gconf, expat, libudev, libcap
, gdk_pixbuf, cairo, zlib, nss, nssTools, nspr, gconf, expat, systemd, libcap
, libnotify}:
let
bits = if stdenv.system == "x86_64-linux" then "x64"
@ -39,7 +39,7 @@ in stdenv.mkDerivation rec {
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/nwjs/nw
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/nwjs/nwjc
ln -s ${libudev.out}/lib/libudev.so $out/share/nwjs/libudev.so.0
ln -s ${systemd.lib}/lib/libudev.so $out/share/nwjs/libudev.so.0
patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}:$out/share/nwjs" $out/share/nwjs/nw
patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/nwjs" $out/share/nwjs/nwjc

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildEnv, makeWrapper
, xorg, alsaLib, dbus, glib, gtk, atk, pango, freetype, fontconfig
, gdk_pixbuf, cairo, zlib, nss, nssTools, nspr, gconf, expat, libudev }:
, gdk_pixbuf, cairo, zlib, nss, nssTools, nspr, gconf, expat, systemd }:
let
bits = if stdenv.system == "x86_64-linux" then "x64"
else "ia32";
@ -35,7 +35,7 @@ in stdenv.mkDerivation rec {
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/node-webkit/nw
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/node-webkit/nwsnapshot
ln -s ${libudev.out}/lib/libudev.so $out/share/node-webkit/libudev.so.0
ln -s ${systemd.lib}/lib/libudev.so $out/share/node-webkit/libudev.so.0
patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit" $out/share/node-webkit/nw
patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit" $out/share/node-webkit/nwsnapshot

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, lvm2, libaio, gzip, readline, udev }:
{ stdenv, fetchurl, lvm2, libaio, gzip, readline, systemd }:
stdenv.mkDerivation rec {
name = "multipath-tools-0.5.0";
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
'';
nativeBuildInputs = [ gzip ];
buildInputs = [ udev lvm2 libaio readline ];
buildInputs = [ systemd lvm2 libaio readline ];
makeFlags = [
"LIB=lib"

View file

@ -28,13 +28,7 @@ stdenv.mkDerivation rec {
})
];
/* gave up for now!
outputs = [ "out" "libudev" "doc" ]; # maybe: "dev"
# note: there are many references to ${systemd}/...
outputDev = "out";
propagatedBuildOutputs = "libudev";
*/
outputs = [ "out" "man" ];
outputs = [ "out" "lib" "man" "dev" ];
buildInputs =
[ linuxHeaders pkgconfig intltool gperf libcap kmod xz pam acl
@ -119,16 +113,6 @@ stdenv.mkDerivation rec {
#export NIX_CFLAGS_LINK+=" -Wl,-rpath,$libudev/lib"
'';
/*
makeFlags = [
"udevlibexecdir=$(libudev)/lib/udev"
# udev rules refer to $out, and anything but libs should probably go to $out
"udevrulesdir=$(out)/lib/udev/rules.d"
"udevhwdbdir=$(out)/lib/udev/hwdb.d"
];
*/
PYTHON_BINARY = "${coreutils}/bin/env python"; # don't want a build time dependency on Python
NIX_CFLAGS_COMPILE =
@ -180,26 +164,18 @@ stdenv.mkDerivation rec {
rm -rf $out/etc/rpm
rm $out/lib/*.la
rm $lib/lib/*.la
# "kernel-install" shouldn't be used on NixOS.
find $out -name "*kernel-install*" -exec rm {} \;
''; # */
/*
# Move lib(g)udev to a separate output. TODO: maybe split them up
# to avoid libudev pulling glib
mkdir -p "$libudev/lib"
mv "$out"/lib/lib{,g}udev* "$libudev/lib/"
for i in "$libudev"/lib/*.la; do
substituteInPlace $i --replace "$out" "$libudev"
done
for i in "$out"/lib/pkgconfig/{libudev,gudev-1.0}.pc; do
substituteInPlace $i --replace "libdir=$out" "libdir=$libudev"
done
*/
# Keep only libudev and libsystemd in the lib output.
mkdir -p $out/lib
mv $lib/lib/security $lib/lib/libnss* $out/lib/
''; # */
enableParallelBuilding = true;
/*
# some libs fail to link to liblzma and/or libffi
postFixup = let extraLibs = stdenv.lib.makeLibraryPath [ xz.out libffi.out zlib.out ];

View file

@ -1,22 +0,0 @@
{ stdenv, systemd }:
stdenv.mkDerivation {
name = "libudev-${systemd.version}";
unpackPhase = ":";
outputs = [ "out" "dev" ];
installPhase = ''
mkdir -p "$out/lib" "$dev/lib/pkgconfig" "$dev/include"
cp -P "${systemd}"/lib/libudev.* "$out/lib/"
cp -P "${systemd}"/lib/pkgconfig/libudev.pc "$dev/lib/pkgconfig/"
cp -P "${systemd}"/include/libudev.h "$dev/include/"
substituteInPlace "$dev"/lib/pkgconfig/*.pc \
--replace "${systemd}" "$out"
sed "/^includedir=/cincludedir=$dev/include" -i "$dev"/lib/pkgconfig/*.pc
'';
meta = {
platforms = stdenv.lib.platforms.linux;
};
}

View file

@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
# due to lots of ${utillinux}/bin occurences and headers being rather small
outputDev = "bin";
#FIXME: make it also work on non-nixos?
postPatch = ''
# Substituting store paths would create a circular dependency on systemd
@ -57,7 +56,7 @@ stdenv.mkDerivation rec {
buildInputs =
[ zlib pam ]
++ lib.optional (ncurses != null) ncurses
++ lib.optional (systemd != null) [ systemd pkgconfig ]
++ lib.optional (systemd != null) systemd
++ lib.optional (perl != null) perl;
postInstall = ''

View file

@ -1,9 +1,11 @@
# FIXME: Unify with pkgs/development/python-modules/blivet/default.nix.
{ stdenv, fetchurl, buildPythonApplication, pykickstart, pyparted, pyblock
, libselinux, cryptsetup, multipath_tools, lsof, utillinux
, useNixUdev ? true, libudev ? null
, useNixUdev ? true, systemd ? null
}:
assert useNixUdev -> libudev != null;
assert useNixUdev -> systemd != null;
buildPythonApplication rec {
name = "blivet-${version}";
@ -29,13 +31,13 @@ buildPythonApplication rec {
sed -i '/pvscan/s/, *"--cache"//' blivet/devicelibs/lvm.py
'' + stdenv.lib.optionalString useNixUdev ''
sed -i -e '/find_library/,/find_library/ {
c libudev = "${libudev.out}/lib/libudev.so.1"
c libudev = "${systemd.lib}/lib/libudev.so.1"
}' blivet/pyudev.py
'';
propagatedBuildInputs = [
pykickstart pyparted pyblock libselinux cryptsetup
] ++ stdenv.lib.optional useNixUdev libudev;
] ++ stdenv.lib.optional useNixUdev systemd;
# tests are currently _heavily_ broken upstream
doCheck = false;

View file

@ -12,7 +12,7 @@ let
inherit stdenv fetchurl buildPythonApplication;
inherit pykickstart pyparted pyblock cryptsetup multipath_tools;
inherit useNixUdev;
inherit (pkgs) lsof utillinux libudev;
inherit (pkgs) lsof utillinux systemd;
libselinux = pkgs.libselinux.override { enablePython = true; };
};
@ -29,7 +29,7 @@ let
lvm2 = import ./lvm2.nix {
inherit stdenv fetchurl;
inherit (pkgs) pkgconfig utillinux libudev systemd coreutils;
inherit (pkgs) pkgconfig utillinux systemd coreutils;
};
multipath_tools = import ./multipath-tools.nix {

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, libudev, systemd, utillinux, coreutils }:
{ stdenv, fetchurl, pkgconfig, systemd, utillinux, coreutils }:
let
v = "2.02.106";
@ -15,7 +15,7 @@ stdenv.mkDerivation {
configureFlags =
"--disable-readline --enable-udev_rules --enable-udev_sync --enable-pkgconfig --enable-applib";
buildInputs = [ pkgconfig libudev ];
buildInputs = [ pkgconfig systemd ];
preConfigure =
''
@ -23,7 +23,7 @@ stdenv.mkDerivation {
--replace /usr/bin/tr ${coreutils}/bin/tr
substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \
--replace /usr/sbin/lvm $out/sbin/lvm \
--replace /usr/bin/udevadm ${systemd.udev.bin}/bin/udevadm
--replace /usr/bin/udevadm ${systemd}/bin/udevadm
sed -i /DEFAULT_SYS_DIR/d Makefile.in
sed -i /DEFAULT_PROFILE_DIR/d conf/Makefile.in

View file

@ -1,3 +1,5 @@
# FIXME: unify with pkgs/os-specific/linux/multipath-tools/default.nix.
{ stdenv, fetchurl, lvm2, libaio, gzip, readline, systemd }:
stdenv.mkDerivation rec {
@ -15,15 +17,15 @@ stdenv.mkDerivation rec {
preBuild =
''
makeFlagsArray=(GZIP="-9" prefix=$out mandir=$out/share/man/man8 man5dir=$out/share/man/man5 LIB=lib)
substituteInPlace multipath/Makefile --replace /etc $out/etc
substituteInPlace kpartx/Makefile --replace /etc $out/etc
substituteInPlace kpartx/kpartx.rules --replace /sbin/kpartx $out/sbin/kpartx
substituteInPlace kpartx/kpartx_id --replace /sbin/dmsetup ${lvm2}/sbin/dmsetup
substituteInPlace libmultipath/defaults.h --replace /lib/udev/scsi_id ${systemd.udev.lib}/lib/udev/scsi_id
substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${systemd.udev.lib}/lib/udev/scsi_id
substituteInPlace libmultipath/defaults.h --replace /lib/udev/scsi_id ${systemd.lib}/lib/udev/scsi_id
substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${systemd.lib}/lib/udev/scsi_id
'';
meta = {

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, makeWrapper
, dpkg, patchelf
, gtk2, glib, gdk_pixbuf, alsaLib, nss, nspr, GConf, cups, libgcrypt, dbus, libudev }:
, gtk2, glib, gdk_pixbuf, alsaLib, nss, nspr, GConf, cups, libgcrypt, dbus, systemd }:
let
inherit (stdenv) lib;
@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
mkdir -p $out/lib
ln -s ${stdenv.cc.cc.lib}/lib/libstdc++.so.6 $out/lib/
ln -s ${libudev.out}/lib/libudev.so.1 $out/lib/libudev.so.0
ln -s ${systemd.lib}/lib/libudev.so.1 $out/lib/libudev.so.0
wrapProgram $out/bin/StarUML \
--prefix LD_LIBRARY_PATH : $out/lib:${LD_LIBRARY_PATH}

View file

@ -11783,8 +11783,8 @@ in
# This hacky alias covers most use cases without mass-replace (build inputs)
# and causes an *evaluation* error if "${udev}" is attempted.
udev = [ libudev.dev libudev.out ];
libudev = callPackage ../os-specific/linux/systemd/libudev.nix { };
udev = [ systemd.dev systemd.out ];
libudev = udev;
eudev = callPackage ../os-specific/linux/eudev {};

View file

@ -19714,11 +19714,11 @@ in modules // {
postPatch = ''
sed -i -e '/udev_library_name/,/^ *libudev/ {
s|CDLL([^,]*|CDLL("${pkgs.libudev.out}/lib/libudev.so.1"|p; d
s|CDLL([^,]*|CDLL("${pkgs.systemd.lib}/lib/libudev.so.1"|p; d
}' pyudev/_libudev.py
'';
propagatedBuildInputs = with self; [ pkgs.udev ];
propagatedBuildInputs = with self; [ pkgs.systemd ];
meta = {
homepage = "http://pyudev.readthedocs.org/";