Subject: bug#500: Package: usbmuxd calls systemd in its udev rules so it will never start in Devuan

From: Vernon Van Steenkist <[email-masked]>
Date: Tue, 28 Jul 2020 22:50:58 -0400

Package: usbmuxd
Version: 1.1.1~git20181007.f838cf6-1 i386

Beowulf usbmuxd is maintained by Debian. A Devuan usbmuxd package 
probably should be created because the Debian version references systemd 
in its udev rules so usbmuxd will never start under Devuan.

Debian usbmuxd /lib/udev/rules.d/39-usbmuxd.rules file contents

# systemd should receive all events relating to device
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", 
ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", TAG+="systemd"

# Initialize iOS devices into "deactivated" USB configuration state and 
activate usbmuxd
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", 
ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", ACTION=="add", 
ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}="0", 
OWNER="usbmux", ENV{SYSTEMD_WANTS}="usbmuxd.service"

# Make sure properties don't get lost when bind action is called
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", 
ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", ACTION=="bind", 
ENV{USBMUX_SUPPORTED}="1", OWNER="usbmux", 
ENV{SYSTEMD_WANTS}="usbmuxd.service"

# Exit usbmuxd when the last device is removed
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", 
ENV{PRODUCT}=="5ac/12[9a][0-9a-f]/*", ACTION=="remove", 
RUN+="/usr/sbin/usbmuxd -x"

Suggested /lib/udev/rules.d/85-usbmuxd.rules for a  new Devuan usbmuxd 
package.

# 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+="/usr/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+="/usr/sbin/usbmuxd -x"

Please don't hesitate to contact me if you have any questions.

Thanks,
Vernon