File 0001-Add-support-for-automatic-activation-as-systemd-serv.patch of Package usbmuxd.2701

From 2449c1a134ebd20d2c0c86e851ea940074f48818 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc=20Sch=C3=BCtz?= <schuetzm@gmx.net>
Date: Sat, 23 Mar 2013 11:49:57 +0100
Subject: [PATCH] Add support for automatic activation as systemd service.

The current version of systemd-udev no longer supports starting
long-running processes from inside udev rules.
---
 CMakeLists.txt                   | 2 ++
 udev/85-usbmuxd-systemd.rules.in | 7 +++++++
 udev/CMakeLists.txt              | 8 +++++++-
 udev/usbmuxd.service.in          | 7 +++++++
 4 files changed, 23 insertions(+), 1 deletion(-)
 create mode 100644 udev/85-usbmuxd-systemd.rules.in
 create mode 100644 udev/usbmuxd.service.in

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7a46282..389b453 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -42,6 +42,8 @@ if(WANT_PLIST)
   endif()
 endif()
 
+option(WANT_SYSTEMD "Install support for systemd activation" OFF)
+
 option(WITH_USBMUXD "Build usbmux daemon (usbmuxd)" ON)
 if(WIN32 AND WITH_USBMUXD)
   message("** NOTE: usbmuxd cannot be built on WIN32 due to missing libusb-1.0 support!")
diff --git a/udev/85-usbmuxd-systemd.rules.in b/udev/85-usbmuxd-systemd.rules.in
new file mode 100644
index 0000000..c0e91cd
--- /dev/null
+++ b/udev/85-usbmuxd-systemd.rules.in
@@ -0,0 +1,7 @@
+# usbmuxd ("Apple Mobile Device" muxer listening on /var/run/usbmuxd)
+
+# Forces iDevices to the last USB configuration and runs usbmuxd
+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"
+
+# Exit usbmuxd when the last device is removed
+ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", ENV{INTERFACE}=="255/*", RUN+="@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -x"
diff --git a/udev/CMakeLists.txt b/udev/CMakeLists.txt
index 0f7042d..8902419 100644
--- a/udev/CMakeLists.txt
+++ b/udev/CMakeLists.txt
@@ -1,2 +1,8 @@
-CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/85-usbmuxd.rules.in ${CMAKE_CURRENT_BINARY_DIR}/85-usbmuxd.rules @ONLY)
+if(WANT_SYSTEMD)
+  CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/85-usbmuxd-systemd.rules.in ${CMAKE_CURRENT_BINARY_DIR}/85-usbmuxd.rules @ONLY)
+  CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/usbmuxd.service.in ${CMAKE_CURRENT_BINARY_DIR}/usbmuxd.service @ONLY)
+  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/usbmuxd.service DESTINATION /lib/systemd/system/)
+else()
+  CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/85-usbmuxd.rules.in ${CMAKE_CURRENT_BINARY_DIR}/85-usbmuxd.rules @ONLY)
+endif()
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/85-usbmuxd.rules DESTINATION /lib/udev/rules.d/)
diff --git a/udev/usbmuxd.service.in b/udev/usbmuxd.service.in
new file mode 100644
index 0000000..cac6cc8
--- /dev/null
+++ b/udev/usbmuxd.service.in
@@ -0,0 +1,7 @@
+[Unit]
+Description=Socket daemon for the usbmux protocol used by Apple devices
+
+[Service]
+Type=simple
+ExecStart=@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -u -U usbmux -f
+
-- 
1.8.1.4

openSUSE Build Service is sponsored by