Package: src:usbmuxd Version: 1.0.8-5 Severity: wishlist Tags: patch Dear Maintainer,
In my debian box(jessie/sid), I also met bug #746561. I built the latest version of usbmuxd downloaded from https://github.com/libimobiledevice/usbmuxd and that bug seems to totaly disappear and libimobiledevice-utls/ifuse works fine with iOS7.1.1. I'd like to propose to change upstream source to that in github. Also I'd like to propse patch of 'debian' directory diff'ed with usbmuxd-1.0.8-5. How to use this patch: Step 1. Apply patch to libimobiledevice reported in bug #746630, build libimobiledevice pkg , and install them. Step 2. Download the latest usbmuxd source from https://github.com/libimobiledevice/usbmuxd. Step 3. Copy 'debian' directory included submuxd-1.0.8-5 source package to usbmuxd source shown in Step 2. Step 4. Apply patch attached this report , and delete follwing files. - debian/usbmuxd.docs - debian/usbmuxd.install - debian/iproxy.1 - debian/patches/Disable-building-of-libusbmuxd-and-tools.patch - debian/patches/Revert-ifdef-USBMUXD_DAEMON.patch - debian/Set-OWNER-in-udev-rule.patch Finally build usbmuxd package. Regards, Takahide Nojima
diff -uNr a/debian/clean b/debian/clean --- a/debian/clean 1970-01-01 09:00:00.000000000 +0900 +++ b/debian/clean 2014-04-01 22:24:23.727772387 +0900 @@ -0,0 +1 @@ +config.log diff -uNr a/debian/control b/debian/control --- a/debian/control 2014-04-09 04:01:27.000000000 +0900 +++ b/debian/control 2014-04-02 22:41:38.300851925 +0900 @@ -4,20 +4,18 @@ Maintainer: gtkpod Maintainers <pkg-gtkpod-de...@lists.alioth.debian.org> Uploaders: Julien Lavergne <julien.laver...@gmail.com> Standards-Version: 3.9.5 -Build-Depends: debhelper (>= 9), +Build-Depends: debhelper (>= 9),dh-autoreconf, libusb-1.0-0-dev (>= 1.0.3) [linux-any], libusb2-dev (>= 8.0-4) [kfreebsd-any], - cmake, - libplist-dev (>= 0.15), - libusbmuxd-dev (>= 1.0.9) + libplist-dev (>= 0.15) Homepage: http://marcansoft.com/blog/iphonelinux/usbmuxd/ Vcs-Git: git://git.debian.org/git/pkg-gtkpod/packages/usbmuxd.git Vcs-Browser: http://git.debian.org/?p=pkg-gtkpod/packages/usbmuxd.git Package: usbmuxd Architecture: any -Depends: ${shlibs:Depends}, - ${misc:Depends}, +Depends: ${shlibs:Depends}, + ${misc:Depends}, adduser Description: USB multiplexor daemon for iPhone and iPod Touch devices usbmuxd, the USB multiplexor daemon, is in charge of coordinating @@ -27,17 +25,3 @@ . This package includes udev rules to start the daemon when a supported device is plugged in, and stop it when all devices are removed. - -Package: usbmuxd-dbg -Architecture: any -Section: debug -Priority: extra -Depends: usbmuxd (= ${binary:Version}), - ${misc:Depends} -Description: USB multiplexor daemon for iPhone and iPod Touch devices - debug - usbmuxd, the USB multiplexor daemon, is in charge of coordinating - access to iPhone and iPod Touch services over USB. Synchronization and - management applications for the iPhone and iPod Touch need this daemon - to communicate with such devices concurrently. - . - This package contains the debugging symbols. diff -uNr a/debian/iproxy.1 b/debian/iproxy.1 --- a/debian/iproxy.1 2014-04-09 04:01:27.000000000 +0900 +++ b/debian/iproxy.1 1970-01-01 09:00:00.000000000 +0900 @@ -1,24 +0,0 @@ -.TH "iproxy" 1 -.SH NAME -iproxy \- proxy that enables tcp service access to iPhone/iPod -.SH SYNOPSIS -.B iproxy -[LOCAL_TCP_PORT] [DEVICE_TCP_PORT] - -.SH DESCRIPTION - -iproxy allows you to forward localhost ports to the device---allows SSH over -USB on jailbroken devices, or allowing access the lockdown daemon (and then -to all of the file access, sync, notification and backup services running on -the device). - -Example : - ./iproxy 2222 22 & - ssh -p 2222 root@localhost - -.SH AUTHORS -Nikias Bassen <nik...@gmx.li> - -Paul Sladen <libiph...@paul.sladen.org> - -Man page written to conform with Debian by Julien Lavergne. diff -uNr a/debian/patches/Add-systemd-service-file-and-call-out-to-it-from-ude.patch b/debian/patches/Add-systemd-service-file-and-call-out-to-it-from-ude.patch --- a/debian/patches/Add-systemd-service-file-and-call-out-to-it-from-ude.patch 2014-04-09 04:01:27.000000000 +0900 +++ b/debian/patches/Add-systemd-service-file-and-call-out-to-it-from-ude.patch 2014-04-03 14:50:40.829270905 +0900 @@ -1,68 +1,47 @@ -From: Chow Loong Jin <hyper...@debian.org> -Date: Sat, 15 Mar 2014 02:51:09 +0800 -Subject: Add systemd service file and call out to it from udev if possible - -Bug-Debian: https://bugs.debian.org/741338 ---- - CMakeLists.txt | 1 + - systemd/CMakeLists.txt | 2 ++ - systemd/usbmuxd.service.in | 9 +++++++++ - udev/85-usbmuxd.rules.in | 9 +++++++-- - 4 files changed, 19 insertions(+), 2 deletions(-) - create mode 100644 systemd/CMakeLists.txt - create mode 100644 systemd/usbmuxd.service.in - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7a46282..c0749f0 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -69,6 +69,7 @@ if (WITH_USBMUXD) - add_subdirectory (daemon) - if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") - add_subdirectory (udev) -+ add_subdirectory (systemd) - endif() - endif() - add_subdirectory (tools) -diff --git a/systemd/CMakeLists.txt b/systemd/CMakeLists.txt -new file mode 100644 -index 0000000..4cdb895 ---- /dev/null -+++ b/systemd/CMakeLists.txt -@@ -0,0 +1,2 @@ -+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/) -diff --git a/systemd/usbmuxd.service.in b/systemd/usbmuxd.service.in -new file mode 100644 -index 0000000..246958b ---- /dev/null -+++ b/systemd/usbmuxd.service.in -@@ -0,0 +1,9 @@ -+[Unit] -+Description=iOS USB multiplexing daemon +--- a/Makefile.am ++++ b/Makefile.am +@@ -4,3 +4,6 @@ + + udevrulesdir = /lib/udev/rules.d + udevrules_DATA = udev/39-usbmuxd.rules + -+[Service] -+Type=simple -+GuessMainPID=false -+PIDFile=/var/run/usbmuxd.pid -+ExecStart=@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -f -u -U usbmux -+ExecStop=@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -X -diff --git a/udev/85-usbmuxd.rules.in b/udev/85-usbmuxd.rules.in -index 032dc16..61f49a5 100644 ---- a/udev/85-usbmuxd.rules.in -+++ b/udev/85-usbmuxd.rules.in ++systemdsystemdir = /lib/systemd/system ++systemdsystem_DATA = systemd/usbmuxd.service +--- a/configure.ac ++++ b/configure.ac +@@ -84,6 +84,7 @@ + Makefile + src/Makefile + udev/39-usbmuxd.rules ++systemd/usbmuxd.service + ]) + + echo " +--- a/udev/39-usbmuxd.rules.in ++++ b/udev/39-usbmuxd.rules.in @@ -1,7 +1,12 @@ # usbmuxd ("Apple Mobile Device" muxer listening on /var/run/usbmuxd) --# Forces iDevices to the last USB configuration and runs usbmuxd --ACTION=="add", SUBSYSTEM=="usb", OWNER="usbmux", 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" +-# Initialize iOS devices into "deactivated" USB configuration state and run usbmuxd +# Check for systemd running as pid 1 +TEST=="/run/systemd/system/", ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", ATTR{idProduct}=="12[9a][0-9a-f]", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}="0", OWNER="usbmux", TAG+="systemd", ENV{SYSTEMD_WANTS}="usbmuxd.service", RUN+="/usr/bin/pkill -x -SIGUSR2 usbmux" GOTO="usbmuxd_systemd_end" + +# Legacy udev -+ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", ATTR{idProduct}=="12[9a][0-9a-f]", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}="0", OWNER="usbmux", RUN+="@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -u -U usbmux" -+ -+LABEL="usbmuxd_systemd_end" + ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", ATTR{idProduct}=="12[9a][0-9a-f]", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}="0", OWNER="usbmux", RUN+="@prefix@/sbin/usbmuxd -u -U usbmux" ++LABEL="usbmuxd_systemd_end" ++ # 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" + ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", ENV{INTERFACE}=="255/*", RUN+="@prefix@/sbin/usbmuxd -x" +--- /dev/null ++++ b/systemd/usbmuxd.service.in +@@ -0,0 +1,9 @@ ++[Unit] ++Description=iOS USB multiplexing daemon ++ ++[Service] ++Type=simple ++GuessMainPID=false ++PIDFile=/var/run/usbmuxd.pid ++ExecStart=@prefix@/sbin/usbmuxd -f -u -U usbmux ++ExecStop=@prefix@/sbin/usbmuxd -X diff -uNr a/debian/patches/Disable-building-of-libusbmuxd-and-tools.patch b/debian/patches/Disable-building-of-libusbmuxd-and-tools.patch --- a/debian/patches/Disable-building-of-libusbmuxd-and-tools.patch 2014-04-09 04:01:27.000000000 +0900 +++ b/debian/patches/Disable-building-of-libusbmuxd-and-tools.patch 1970-01-01 09:00:00.000000000 +0900 @@ -1,52 +0,0 @@ -From: Chow Loong Jin <hyper...@debian.org> -Date: Fri, 4 Apr 2014 14:45:38 +0800 -Subject: Disable building of libusbmuxd and tools - -These are now split off into src:libusbmuxd ---- - CMakeLists.txt | 8 ++++---- - daemon/CMakeLists.txt | 2 +- - 2 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index c0749f0..881b08b 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -64,7 +64,7 @@ endif() - - add_definitions(-Wall) - --add_subdirectory (libusbmuxd) -+# add_subdirectory (libusbmuxd) - if (WITH_USBMUXD) - add_subdirectory (daemon) - if (${CMAKE_SYSTEM_NAME} MATCHES "Linux") -@@ -72,12 +72,12 @@ if (WITH_USBMUXD) - add_subdirectory (systemd) - endif() - endif() --add_subdirectory (tools) -+# add_subdirectory (tools) - - # pkg-config - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/libusbmuxd.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libusbmuxd.pc") --# install pkg-config file --install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libusbmuxd.pc" DESTINATION lib${LIB_SUFFIX}/pkgconfig/) -+# # install pkg-config file -+# install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libusbmuxd.pc" DESTINATION lib${LIB_SUFFIX}/pkgconfig/) - - # add uninstall target - configure_file("${CMAKE_SOURCE_DIR}/Modules/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) -diff --git a/daemon/CMakeLists.txt b/daemon/CMakeLists.txt -index c323f7b..c51b380 100644 ---- a/daemon/CMakeLists.txt -+++ b/daemon/CMakeLists.txt -@@ -8,7 +8,7 @@ if(HAVE_PLIST) - endif() - include_directories (${CMAKE_SOURCE_DIR}/common) - include_directories (${CMAKE_SOURCE_DIR}/daemon) --include_directories (${CMAKE_SOURCE_DIR}/libusbmuxd) -+# include_directories (${CMAKE_SOURCE_DIR}/libusbmuxd) - - add_definitions(-DUSBMUXD_DAEMON -DUSBMUXD_VERSION="${USBMUXD_VERSION}") - add_executable(usbmuxd main.c usb-linux.c log.c ${CMAKE_SOURCE_DIR}/common/utils.c device.c client.c) diff -uNr a/debian/patches/Revert-ifdef-USBMUXD_DAEMON.patch b/debian/patches/Revert-ifdef-USBMUXD_DAEMON.patch --- a/debian/patches/Revert-ifdef-USBMUXD_DAEMON.patch 2014-04-09 04:01:27.000000000 +0900 +++ b/debian/patches/Revert-ifdef-USBMUXD_DAEMON.patch 1970-01-01 09:00:00.000000000 +0900 @@ -1,52 +0,0 @@ -From: Julien Lavergne <julien.laver...@gmail.com> -Date: Fri, 4 Apr 2014 14:51:56 +0800 -Subject: Revert #ifdef USBMUXD_DAEMON - -Revert commit -http://cgit.sukimashita.com/usbmuxd.git/commit/?id=e492ed1d13b51f95b3b96e54d2c3d9076a1910b4 -It was done to help WIN32 compilation, but it disable it also on non-WIN32. ---- - common/utils.c | 2 -- - common/utils.h | 2 -- - 2 files changed, 4 deletions(-) - -diff --git a/common/utils.c b/common/utils.c -index 0096907..daedb6d 100644 ---- a/common/utils.c -+++ b/common/utils.c -@@ -36,7 +36,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - # define util_error(...) fprintf(stderr, __VA_ARGS__) - #endif - --#ifdef USBMUXD_DAEMON - void fdlist_create(struct fdlist *list) - { - list->count = 0; -@@ -72,7 +71,6 @@ void fdlist_reset(struct fdlist *list) - { - list->count = 0; - } --#endif - - void collection_init(struct collection *col) - { -diff --git a/common/utils.h b/common/utils.h -index 0addb46..5aa2915 100644 ---- a/common/utils.h -+++ b/common/utils.h -@@ -23,7 +23,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - #ifndef __UTILS_H__ - #define __UTILS_H__ - --#ifdef USBMUXD_DAEMON - #include <poll.h> - - enum fdowner { -@@ -43,7 +42,6 @@ void fdlist_create(struct fdlist *list); - void fdlist_add(struct fdlist *list, enum fdowner owner, int fd, short events); - void fdlist_free(struct fdlist *list); - void fdlist_reset(struct fdlist *list); --#endif - - struct collection { - void **list; diff -uNr a/debian/patches/Set-OWNER-in-udev-rule.patch b/debian/patches/Set-OWNER-in-udev-rule.patch --- a/debian/patches/Set-OWNER-in-udev-rule.patch 2014-04-09 04:01:27.000000000 +0900 +++ b/debian/patches/Set-OWNER-in-udev-rule.patch 1970-01-01 09:00:00.000000000 +0900 @@ -1,22 +0,0 @@ -From: Julien Lavergne <julien.laver...@gmail.com> -Date: Fri, 4 Apr 2014 14:51:56 +0800 -Subject: Set OWNER in udev rule - -Bug-Debian: https://bugs.debian.org/572867 ---- - udev/85-usbmuxd.rules.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/udev/85-usbmuxd.rules.in b/udev/85-usbmuxd.rules.in -index 6f2186b..032dc16 100644 ---- a/udev/85-usbmuxd.rules.in -+++ b/udev/85-usbmuxd.rules.in -@@ -1,7 +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", RUN+="@CMAKE_INSTALL_PREFIX@/sbin/usbmuxd -u -U usbmux" -+ACTION=="add", SUBSYSTEM=="usb", OWNER="usbmux", 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" - - # 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 -uNr a/debian/patches/series b/debian/patches/series --- a/debian/patches/series 2014-04-09 04:01:27.000000000 +0900 +++ b/debian/patches/series 2014-04-01 16:29:56.239960143 +0900 @@ -1,4 +1 @@ -Set-OWNER-in-udev-rule.patch -Revert-ifdef-USBMUXD_DAEMON.patch Add-systemd-service-file-and-call-out-to-it-from-ude.patch -Disable-building-of-libusbmuxd-and-tools.patch diff -uNr a/debian/rules b/debian/rules --- a/debian/rules 2014-04-09 04:01:27.000000000 +0900 +++ b/debian/rules 2014-04-02 22:07:14.718722577 +0900 @@ -11,29 +11,6 @@ DEB_CFLAGS_MAINT_APPEND = -O2 endif -configure_flags += \ - -DCMAKE_INSTALL_PREFIX="/usr" \ - -DCMAKE_SKIP_RPATH=true \ - -DLIB_SUFFIX= \ - -DUSB_PKGCONF_INCLUDE_DIRS="/usr/include/libusb-1.0" - %: - dh $@ - -override_dh_auto_configure: - dh_auto_configure -- $(configure_flags) - -override_dh_install: - -#Install udev files only on arch which have udev -#see https://buildd.debian.org/quinn-diff/sid/Packages-arch-specific -ifeq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 kfreebsd-i386 hurd-i386)) - dh_install -pusbmuxd lib/udev/rules.d/* - dh_install -pusbmuxd lib/systemd/system/* -endif - rm -f debian/tmp/lib/udev/rules.d/* debian/tmp/lib/systemd/system/* - - dh_install --fail-missing + dh $@ --with autoreconf -override_dh_strip: - dh_strip --dbg-package=usbmuxd-dbg diff -uNr a/debian/usbmuxd.docs b/debian/usbmuxd.docs --- a/debian/usbmuxd.docs 2014-04-09 04:01:27.000000000 +0900 +++ b/debian/usbmuxd.docs 1970-01-01 09:00:00.000000000 +0900 @@ -1,3 +0,0 @@ -README -README.devel -AUTHORS diff -uNr a/debian/usbmuxd.install b/debian/usbmuxd.install --- a/debian/usbmuxd.install 2014-04-09 04:01:27.000000000 +0900 +++ b/debian/usbmuxd.install 1970-01-01 09:00:00.000000000 +0900 @@ -1 +0,0 @@ -usr/sbin/*