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 { fetchurl, stdenv, dpkg, xorg, alsaLib, makeWrapper, openssl, freetype
, glib, pango, cairo, atk, gdk_pixbuf, gtk, cups, nspr, nss, libpng, GConf , 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"; assert stdenv.system == "x86_64-linux";
@ -28,7 +28,7 @@ let
nss nss
pango pango
stdenv.cc.cc stdenv.cc.cc
libudev systemd
xorg.libX11 xorg.libX11
xorg.libXcomposite xorg.libXcomposite
xorg.libXcursor xorg.libXcursor

View file

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

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildEnv, zlib, glib, alsaLib, makeDesktopItem { stdenv, fetchurl, buildEnv, zlib, glib, alsaLib, makeDesktopItem
, dbus, gtk, atk, pango, freetype, fontconfig, libgnome_keyring3, gdk_pixbuf , 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 let
@ -45,9 +45,9 @@ stdenv.mkDerivation rec {
mv $out/share/LightTable/light $out/bin/light 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 \ 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 "/lib/x86_64-linux-gnu" "$out/share/LightTable" \
--replace 'HERE=`dirname $(readlink -f $0)`' "HERE=$out/share/LightTable" --replace 'HERE=`dirname $(readlink -f $0)`' "HERE=$out/share/LightTable"

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,6 +1,6 @@
{fetchurl, stdenv, dpkg, makeWrapper, {fetchurl, stdenv, dpkg, makeWrapper,
alsaLib, cups, curl, dbus, expat, fontconfig, freetype, glib, gst_all_1, harfbuzz, libcap, 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"; assert stdenv.system == "x86_64-linux";
@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
nspr nspr
nss nss
stdenv.cc.cc stdenv.cc.cc
libudev systemd
wayland wayland
zlib zlib

View file

@ -1,4 +1,4 @@
{ stdenv, fetchurl, pkgconfig, libudev ? null, libobjc, IOKit }: { stdenv, fetchurl, pkgconfig, systemd ? null, libobjc, IOKit }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libusb-1.0.19"; name = "libusb-1.0.19";
@ -12,13 +12,13 @@ stdenv.mkDerivation rec {
buildInputs = [ pkgconfig ]; buildInputs = [ pkgconfig ];
propagatedBuildInputs = propagatedBuildInputs =
stdenv.lib.optional stdenv.isLinux libudev ++ stdenv.lib.optional stdenv.isLinux systemd ++
stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ]; stdenv.lib.optionals stdenv.isDarwin [ libobjc IOKit ];
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s"; NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
preFixup = stdenv.lib.optionalString stdenv.isLinux '' 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 = { meta = {

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildEnv, makeWrapper { stdenv, fetchurl, buildEnv, makeWrapper
, xorg, alsaLib, dbus, glib, gtk, atk, pango, freetype, fontconfig , 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}: , libnotify}:
let let
bits = if stdenv.system == "x86_64-linux" then "x64" 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/nw
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/node-webkit/nwsnapshot 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/nw
patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit" $out/share/node-webkit/nwsnapshot 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 { stdenv, fetchurl, buildEnv, makeWrapper
, xorg, alsaLib, dbus, glib, gtk, atk, pango, freetype, fontconfig , 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}: , libnotify}:
let let
bits = if stdenv.system == "x86_64-linux" then "x64" 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/nw
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/nwjs/nwjc 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:${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 patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/nwjs" $out/share/nwjs/nwjc

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, buildEnv, makeWrapper { stdenv, fetchurl, buildEnv, makeWrapper
, xorg, alsaLib, dbus, glib, gtk, atk, pango, freetype, fontconfig , 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 let
bits = if stdenv.system == "x86_64-linux" then "x64" bits = if stdenv.system == "x86_64-linux" then "x64"
else "ia32"; 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/nw
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/node-webkit/nwsnapshot 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/nw
patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/node-webkit" $out/share/node-webkit/nwsnapshot 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 { stdenv.mkDerivation rec {
name = "multipath-tools-0.5.0"; name = "multipath-tools-0.5.0";
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
''; '';
nativeBuildInputs = [ gzip ]; nativeBuildInputs = [ gzip ];
buildInputs = [ udev lvm2 libaio readline ]; buildInputs = [ systemd lvm2 libaio readline ];
makeFlags = [ makeFlags = [
"LIB=lib" "LIB=lib"

View file

@ -28,13 +28,7 @@ stdenv.mkDerivation rec {
}) })
]; ];
/* gave up for now! outputs = [ "out" "lib" "man" "dev" ];
outputs = [ "out" "libudev" "doc" ]; # maybe: "dev"
# note: there are many references to ${systemd}/...
outputDev = "out";
propagatedBuildOutputs = "libudev";
*/
outputs = [ "out" "man" ];
buildInputs = buildInputs =
[ linuxHeaders pkgconfig intltool gperf libcap kmod xz pam acl [ linuxHeaders pkgconfig intltool gperf libcap kmod xz pam acl
@ -119,16 +113,6 @@ stdenv.mkDerivation rec {
#export NIX_CFLAGS_LINK+=" -Wl,-rpath,$libudev/lib" #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 PYTHON_BINARY = "${coreutils}/bin/env python"; # don't want a build time dependency on Python
NIX_CFLAGS_COMPILE = NIX_CFLAGS_COMPILE =
@ -180,26 +164,18 @@ stdenv.mkDerivation rec {
rm -rf $out/etc/rpm rm -rf $out/etc/rpm
rm $out/lib/*.la rm $lib/lib/*.la
# "kernel-install" shouldn't be used on NixOS. # "kernel-install" shouldn't be used on NixOS.
find $out -name "*kernel-install*" -exec rm {} \; 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 # Keep only libudev and libsystemd in the lib output.
substituteInPlace $i --replace "$out" "$libudev" mkdir -p $out/lib
done mv $lib/lib/security $lib/lib/libnss* $out/lib/
for i in "$out"/lib/pkgconfig/{libudev,gudev-1.0}.pc; do ''; # */
substituteInPlace $i --replace "libdir=$out" "libdir=$libudev"
done
*/
enableParallelBuilding = true; enableParallelBuilding = true;
/* /*
# some libs fail to link to liblzma and/or libffi # some libs fail to link to liblzma and/or libffi
postFixup = let extraLibs = stdenv.lib.makeLibraryPath [ xz.out libffi.out zlib.out ]; 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 # due to lots of ${utillinux}/bin occurences and headers being rather small
outputDev = "bin"; outputDev = "bin";
#FIXME: make it also work on non-nixos? #FIXME: make it also work on non-nixos?
postPatch = '' postPatch = ''
# Substituting store paths would create a circular dependency on systemd # Substituting store paths would create a circular dependency on systemd
@ -57,7 +56,7 @@ stdenv.mkDerivation rec {
buildInputs = buildInputs =
[ zlib pam ] [ zlib pam ]
++ lib.optional (ncurses != null) ncurses ++ lib.optional (ncurses != null) ncurses
++ lib.optional (systemd != null) [ systemd pkgconfig ] ++ lib.optional (systemd != null) systemd
++ lib.optional (perl != null) perl; ++ lib.optional (perl != null) perl;
postInstall = '' postInstall = ''

View file

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

View file

@ -12,7 +12,7 @@ let
inherit stdenv fetchurl buildPythonApplication; inherit stdenv fetchurl buildPythonApplication;
inherit pykickstart pyparted pyblock cryptsetup multipath_tools; inherit pykickstart pyparted pyblock cryptsetup multipath_tools;
inherit useNixUdev; inherit useNixUdev;
inherit (pkgs) lsof utillinux libudev; inherit (pkgs) lsof utillinux systemd;
libselinux = pkgs.libselinux.override { enablePython = true; }; libselinux = pkgs.libselinux.override { enablePython = true; };
}; };
@ -29,7 +29,7 @@ let
lvm2 = import ./lvm2.nix { lvm2 = import ./lvm2.nix {
inherit stdenv fetchurl; inherit stdenv fetchurl;
inherit (pkgs) pkgconfig utillinux libudev systemd coreutils; inherit (pkgs) pkgconfig utillinux systemd coreutils;
}; };
multipath_tools = import ./multipath-tools.nix { 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 let
v = "2.02.106"; v = "2.02.106";
@ -15,7 +15,7 @@ stdenv.mkDerivation {
configureFlags = configureFlags =
"--disable-readline --enable-udev_rules --enable-udev_sync --enable-pkgconfig --enable-applib"; "--disable-readline --enable-udev_rules --enable-udev_sync --enable-pkgconfig --enable-applib";
buildInputs = [ pkgconfig libudev ]; buildInputs = [ pkgconfig systemd ];
preConfigure = preConfigure =
'' ''
@ -23,7 +23,7 @@ stdenv.mkDerivation {
--replace /usr/bin/tr ${coreutils}/bin/tr --replace /usr/bin/tr ${coreutils}/bin/tr
substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \ substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \
--replace /usr/sbin/lvm $out/sbin/lvm \ --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_SYS_DIR/d Makefile.in
sed -i /DEFAULT_PROFILE_DIR/d conf/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, fetchurl, lvm2, libaio, gzip, readline, systemd }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
@ -15,15 +17,15 @@ stdenv.mkDerivation rec {
preBuild = preBuild =
'' ''
makeFlagsArray=(GZIP="-9" prefix=$out mandir=$out/share/man/man8 man5dir=$out/share/man/man5 LIB=lib) 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 multipath/Makefile --replace /etc $out/etc
substituteInPlace kpartx/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.rules --replace /sbin/kpartx $out/sbin/kpartx
substituteInPlace kpartx/kpartx_id --replace /sbin/dmsetup ${lvm2}/sbin/dmsetup 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/defaults.h --replace /lib/udev/scsi_id ${systemd.lib}/lib/udev/scsi_id
substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${systemd.udev.lib}/lib/udev/scsi_id substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${systemd.lib}/lib/udev/scsi_id
''; '';
meta = { meta = {

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, makeWrapper { stdenv, fetchurl, makeWrapper
, dpkg, patchelf , 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 let
inherit (stdenv) lib; inherit (stdenv) lib;
@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
mkdir -p $out/lib mkdir -p $out/lib
ln -s ${stdenv.cc.cc.lib}/lib/libstdc++.so.6 $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 \ wrapProgram $out/bin/StarUML \
--prefix LD_LIBRARY_PATH : $out/lib:${LD_LIBRARY_PATH} --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) # This hacky alias covers most use cases without mass-replace (build inputs)
# and causes an *evaluation* error if "${udev}" is attempted. # and causes an *evaluation* error if "${udev}" is attempted.
udev = [ libudev.dev libudev.out ]; udev = [ systemd.dev systemd.out ];
libudev = callPackage ../os-specific/linux/systemd/libudev.nix { }; libudev = udev;
eudev = callPackage ../os-specific/linux/eudev {}; eudev = callPackage ../os-specific/linux/eudev {};

View file

@ -19714,11 +19714,11 @@ in modules // {
postPatch = '' postPatch = ''
sed -i -e '/udev_library_name/,/^ *libudev/ { 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 }' pyudev/_libudev.py
''; '';
propagatedBuildInputs = with self; [ pkgs.udev ]; propagatedBuildInputs = with self; [ pkgs.systemd ];
meta = { meta = {
homepage = "http://pyudev.readthedocs.org/"; homepage = "http://pyudev.readthedocs.org/";