systemd: Update to 196

Main change is that systemd now has its own PCI/USB IDs database, so
it no longer depends on pciutils/usbutils.
This commit is contained in:
Eelco Dolstra 2012-11-29 18:50:07 +01:00
parent bce3c6db7e
commit 2122adcdd1
2 changed files with 15 additions and 27 deletions

View File

@ -1,28 +1,27 @@
{ stdenv, fetchurl, pkgconfig, intltool, gperf, libcap, dbus, kmod { stdenv, fetchurl, pkgconfig, intltool, gperf, libcap, dbus, kmod
, xz, pam, acl, cryptsetup, libuuid, m4, utillinux, usbutils, pciutils , xz, pam, acl, cryptsetup, libuuid, m4, utillinux
, glib, kbd, libxslt, coreutils, libgcrypt , glib, kbd, libxslt, coreutils, libgcrypt
}: }:
assert stdenv.gcc.libc or null != null; assert stdenv.gcc.libc or null != null;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "systemd-195"; name = "systemd-196";
src = fetchurl { src = fetchurl {
url = "http://www.freedesktop.org/software/systemd/${name}.tar.xz"; url = "http://www.freedesktop.org/software/systemd/${name}.tar.xz";
sha256 = "00v3haymdxhjk71pqp17irw9pm5ivfvz35ibvw41v5zdhj5il179"; sha256 = "1gz4an5havzwzp7xsinn01prwvf51hgipb8pbciri0fxlmcadm3b";
}; };
patches = patches =
[ ./reexec.patch [ ./reexec.patch
./ignore-duplicates.patch ./ignore-duplicates.patch
./crypt-devices-are-ready.patch ./crypt-devices-are-ready.patch
./listunitfiles-abort.patch
]; ];
buildInputs = buildInputs =
[ pkgconfig intltool gperf libcap dbus kmod xz pam acl [ pkgconfig intltool gperf libcap dbus kmod xz pam acl
/* cryptsetup */ libuuid m4 usbutils pciutils glib libxslt libgcrypt /* cryptsetup */ libuuid m4 glib libxslt libgcrypt
]; ];
configureFlags = configureFlags =
@ -36,7 +35,6 @@ stdenv.mkDerivation rec {
"--with-dbussystemservicedir=$(out)/share/dbus-1/system-services" "--with-dbussystemservicedir=$(out)/share/dbus-1/system-services"
"--with-dbussessionservicedir=$(out)/share/dbus-1/services" "--with-dbussessionservicedir=$(out)/share/dbus-1/services"
"--with-firmware-path=/root/test-firmware:/var/run/current-system/firmware" "--with-firmware-path=/root/test-firmware:/var/run/current-system/firmware"
"--with-pci-ids-path=${pciutils}/share/pci.ids"
"--with-tty-gid=3" # tty in NixOS has gid 3 "--with-tty-gid=3" # tty in NixOS has gid 3
]; ];
@ -52,6 +50,9 @@ stdenv.mkDerivation rec {
--replace /sbin/swapoff ${utillinux}/sbin/swapoff \ --replace /sbin/swapoff ${utillinux}/sbin/swapoff \
--replace /sbin/fsck ${utillinux}/sbin/fsck --replace /sbin/fsck ${utillinux}/sbin/fsck
done done
substituteInPlace src/journal/catalog.c \
--replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/
''; '';
NIX_CFLAGS_COMPILE = NIX_CFLAGS_COMPILE =
@ -66,7 +67,12 @@ stdenv.mkDerivation rec {
"-DFS_NOCOW_FL=0x00800000" "-DFS_NOCOW_FL=0x00800000"
]; ];
makeFlags = "CPPFLAGS=-I${stdenv.gcc.libc}/include"; # Use /var/lib/udev rather than /etc/udev for the generated hardware
# database. Upstream doesn't want this (see commit
# 1e1954f53386cb773e2a152748dd31c4d36aa2d8) because using /var is
# forbidden in early boot, but in NixOS the initrd guarantees that
# /var is mounted.
makeFlags = "CPPFLAGS=-I${stdenv.gcc.libc}/include hwdb_bin=/var/lib/udev/hwdb.bin";
installFlags = "localstatedir=$(TMPDIR)/var sysconfdir=$(out)/etc sysvinitdir=$(TMPDIR)/etc/init.d"; installFlags = "localstatedir=$(TMPDIR)/var sysconfdir=$(out)/etc sysvinitdir=$(TMPDIR)/etc/init.d";
@ -88,6 +94,8 @@ stdenv.mkDerivation rec {
for i in $out/share/dbus-1/system-services/*.service; do for i in $out/share/dbus-1/system-services/*.service; do
substituteInPlace $i --replace /bin/false ${coreutils}/bin/false substituteInPlace $i --replace /bin/false ${coreutils}/bin/false
done done
rm -rf $out/etc/rpm
''; # */ ''; # */
enableParallelBuilding = true; enableParallelBuilding = true;

View File

@ -1,20 +0,0 @@
diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c
index ed9784b..6d045cc 100644
--- a/src/core/dbus-manager.c
+++ b/src/core/dbus-manager.c
@@ -491,7 +491,6 @@ static DBusMessage *message_from_file_changes(
return reply;
oom:
- dbus_message_unref(reply);
return NULL;
}
@@ -1432,7 +1431,6 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection,
r = unit_file_get_list(m->running_as == SYSTEMD_SYSTEM ? UNIT_FILE_SYSTEM : UNIT_FILE_USER, NULL, h);
if (r < 0) {
unit_file_list_free(h);
- dbus_message_unref(reply);
return bus_send_error_reply(connection, message, NULL, r);
}