Blame SOURCES/0001-Use-systemd-to-start-usbmuxd.patch

0f7b43
From c15d2f6f22a3d5013c8b1cd6ca9c8a31be3748d5 Mon Sep 17 00:00:00 2001
0f7b43
From: Bastien Nocera <hadess@hadess.net>
0f7b43
Date: Mon, 9 Jul 2012 16:30:33 +0100
0f7b43
Subject: [PATCH] Use systemd to start usbmuxd
0f7b43
0f7b43
Instead of using udev. udev should not be used to start
0f7b43
long-running daemons. The started daemon will receive SIGKILL
0f7b43
after all event handling has been done, as udev.service cleans
0f7b43
up all the lingering processes.
0f7b43
0f7b43
We instead ask udev to tell systemd to start us up through the
0f7b43
usbmuxd.service file.
0f7b43
0f7b43
See:
0f7b43
https://bugzilla.redhat.com/show_bug.cgi?id=786853
0f7b43
for more details.
0f7b43
---
0f7b43
 udev/85-usbmuxd.rules.in |    2 +-
0f7b43
 udev/CMakeLists.txt      |    2 ++
0f7b43
 udev/usbmuxd.service.in  |    7 +++++++
0f7b43
 3 files changed, 10 insertions(+), 1 deletion(-)
0f7b43
 create mode 100644 udev/usbmuxd.service.in
0f7b43
0f7b43
diff --git a/udev/85-usbmuxd.rules.in b/udev/85-usbmuxd.rules.in
0f7b43
index 6f2186b..d9de100 100644
0f7b43
--- a/udev/85-usbmuxd.rules.in
0f7b43
+++ b/udev/85-usbmuxd.rules.in
0f7b43
@@ -1,7 +1,7 @@
0f7b43
 # usbmuxd ("Apple Mobile Device" muxer listening on /var/run/usbmuxd)
0f7b43
 
0f7b43
 # Forces iDevices to the last USB configuration and runs usbmuxd
0f7b43
-ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", ATTR{idProduct}=="12[9a][0-9a-f]", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}!="$attr{bNumConfigurations}", ATTR{bConfigurationValue}="$attr{bNumConfigurations}", OWNER="usbmux", RUN+="@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -u -U usbmux"
0f7b43
+ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", ATTR{idProduct}=="12[9a][0-9a-f]", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}!="$attr{bNumConfigurations}", ATTR{bConfigurationValue}="$attr{bNumConfigurations}", OWNER="usbmux", TAG+="systemd", ENV{SYSTEMD_WANTS}="usbmuxd.service"
0f7b43
 
0f7b43
 # Exit usbmuxd when the last device is removed
0f7b43
 ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", ENV{INTERFACE}=="255/*", RUN+="@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -x"
0f7b43
diff --git a/udev/CMakeLists.txt b/udev/CMakeLists.txt
0f7b43
index 0f7042d..3067a75 100644
0f7b43
--- a/udev/CMakeLists.txt
0f7b43
+++ b/udev/CMakeLists.txt
0f7b43
@@ -1,2 +1,4 @@
0f7b43
 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/85-usbmuxd.rules.in ${CMAKE_CURRENT_BINARY_DIR}/85-usbmuxd.rules @ONLY)
0f7b43
+CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/usbmuxd.service.in ${CMAKE_CURRENT_BINARY_DIR}/usbmuxd.service @ONLY)
0f7b43
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/85-usbmuxd.rules DESTINATION /lib/udev/rules.d/)
0f7b43
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/usbmuxd.service DESTINATION /lib/systemd/system/)
0f7b43
diff --git a/udev/usbmuxd.service.in b/udev/usbmuxd.service.in
0f7b43
new file mode 100644
0f7b43
index 0000000..bcfb347
0f7b43
--- /dev/null
0f7b43
+++ b/udev/usbmuxd.service.in
0f7b43
@@ -0,0 +1,7 @@
0f7b43
+[Unit]
0f7b43
+Description=iOS USB Muxer
0f7b43
+
0f7b43
+[Service]
0f7b43
+Type=simple
0f7b43
+ExecStart=/sbin/usbmuxd -u -U usbmux
0f7b43
+PIDFile=/var/run/usbmuxd.pid
0f7b43
-- 
0f7b43
1.7.10.2
0f7b43