core/udev to 168-2

This commit is contained in:
Kevin Mihelich 2011-05-19 15:54:31 -04:00
parent 3d37ba5bd5
commit 6a93f4b886
3 changed files with 113 additions and 9 deletions

68
core/udev/01-settle.patch Normal file
View file

@ -0,0 +1,68 @@
From 2738ec2cf721db0c0deac2ba0abdc73cf7739e9f Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay.sievers@vrfy.org>
Date: Mon, 16 May 2011 13:17:48 +0200
Subject: [PATCH 1/7] udevd: create queue file before daemonizing to reliably
block 'settle'
---
udev/udevd.c | 22 ++++++++++++----------
1 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/udev/udevd.c b/udev/udevd.c
index be4b071..258d787 100644
--- a/udev/udevd.c
+++ b/udev/udevd.c
@@ -1408,6 +1408,13 @@ int main(int argc, char *argv[])
udev_monitor_set_receive_buffer_size(monitor, 128*1024*1024);
+ /* create queue file before signalling 'ready', to make sure we block 'settle' */
+ udev_queue_export = udev_queue_export_new(udev);
+ if (udev_queue_export == NULL) {
+ err(udev, "error creating queue file\n");
+ goto exit;
+ }
+
if (daemonize) {
pid_t pid;
int fd;
@@ -1421,8 +1428,8 @@ int main(int argc, char *argv[])
rc = 4;
goto exit;
default:
- rc = 0;
- goto exit;
+ rc = EXIT_SUCCESS;
+ goto exit_keep_queue;
}
setsid();
@@ -1521,12 +1528,6 @@ int main(int argc, char *argv[])
goto exit;
}
- udev_queue_export = udev_queue_export_new(udev);
- if (udev_queue_export == NULL) {
- err(udev, "error creating queue file\n");
- goto exit;
- }
-
memset(&ep_ctrl, 0, sizeof(struct epoll_event));
ep_ctrl.events = EPOLLIN;
ep_ctrl.data.fd = fd_ctrl;
@@ -1708,9 +1709,10 @@ int main(int argc, char *argv[])
}
}
- udev_queue_export_cleanup(udev_queue_export);
- rc = 0;
+ rc = EXIT_SUCCESS;
exit:
+ udev_queue_export_cleanup(udev_queue_export);
+exit_keep_queue:
if (fd_ep >= 0)
close(fd_ep);
worker_list_cleanup(udev);
--
1.7.5.1

29
core/udev/02-settle.patch Normal file
View file

@ -0,0 +1,29 @@
From 12f79fb0b9c919787d8a7d4307895d3d6b4b029b Mon Sep 17 00:00:00 2001
From: Nix <nix@esperi.org.uk>
Date: Mon, 16 May 2011 22:51:38 +0200
Subject: [PATCH 7/7] libudev: queue - accept NULL passed into
udev_queue_export_cleanup()
---
libudev/libudev-queue-private.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/libudev/libudev-queue-private.c b/libudev/libudev-queue-private.c
index 0dcf9b0..6e13d8a 100644
--- a/libudev/libudev-queue-private.c
+++ b/libudev/libudev-queue-private.c
@@ -104,9 +104,10 @@ void udev_queue_export_cleanup(struct udev_queue_export *udev_queue_export)
{
char filename[UTIL_PATH_SIZE];
+ if (udev_queue_export == NULL)
+ return;
util_strscpyl(filename, sizeof(filename), udev_get_run_path(udev_queue_export->udev), "/queue.tmp", NULL);
unlink(filename);
-
util_strscpyl(filename, sizeof(filename), udev_get_run_path(udev_queue_export->udev), "/queue.bin", NULL);
unlink(filename);
}
--
1.7.5.1

View file

@ -1,4 +1,4 @@
# $Id: PKGBUILD 123587 2011-05-11 16:38:57Z tomegun $
# $Id: PKGBUILD 124183 2011-05-17 13:17:56Z tomegun $
# Maintainer: Aaron Griffin <aaron@archlinux.org>
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Maintainer: Thomas Bächler <thomas@archlinux.org>
@ -12,7 +12,7 @@ plugrel=1
pkgbase="udev"
pkgname=('udev' 'udev-compat')
pkgver=168
pkgrel=1
pkgrel=2
arch=(i686 x86_64)
url="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"
license=('GPL')
@ -25,18 +25,16 @@ source=(http://www.kernel.org/pub/linux/utils/kernel/hotplug/$pkgbase-$pkgver.ta
81-arch.rules
load-modules.sh
cdsymlinks.sh
01-settle.patch
02-settle.patch
11-media-by-label-auto-mount.rules
11-sd-cards-auto-mount.rules)
md5sums=('4a466078532ab5dd5c35acc3ea2ec9a1'
'4427855146513a4703ab5c7eb8a0156e'
'f17c99779173ddc79f866cf3a5de5e68'
'f91fddc67609b45b244a624977c4247b'
'2e808ee78d237c478b57af2a68d43769'
'155554f488388e3f994ace619ad1e8d4'
'173b71ab6466677c12c99ef37c56a3db')
build() {
cd $srcdir/$pkgbase-$pkgver
# fix https://bugs.archlinux.org/task/24288
patch -Np1 -i ../01-settle.patch
patch -Np1 -i ../02-settle.patch
./configure --sysconfdir=/etc --with-rootlibdir=/lib --libexecdir=/lib/udev\
--sbindir=/sbin --with-systemdsystemunitdir=/lib/systemd/system
make
@ -128,3 +126,12 @@ package_udev-compat() {
install -d -m755 ${pkgdir}/lib/${pkgbase}/rules.d
install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/rules/misc/30-kernel-compat.rules ${pkgdir}/lib/udev/rules.d/30-kernel-compat.rules
}
sha256sums=('9ddc43173cf7b397c8cc01d26d644932ff2c2259b3a5eea7be90db96a28080e2'
'0cb99cc7cea92238dd6b19a4c104c3b9e9f744c6b9d6b4382c7cd22be18c98f9'
'377c13f20de32776107dddc8324f599f31320e8dd1185e3282856aee5cb08499'
'c6b41afb24e8f496064d8baad844697a6515cea1b7e0389054cd8a2053477377'
'cc0d281926bf2f1ac816c0060a2afc59444ddf0f8dab6e2d9924a2a7c8de4a13'
'70d2fd079901bf9940c4811ec91634da0d8b3425ebcdbffeba5a73cb616be650'
'fe9d1aafb1a620108790d82960577de4eb757450c35a146475aed3f5e9356f1a'
'6d386aba57f6bbd94d82244c8fa5bd330a78b13c1ff53543f695e59f654bd9a8'
'946faf8e338af058a69415b804b3ca801668531d9e60098f4b44c63c486a235a')