- Switched to libusb1.0, with much help from folks of the wl500g project (http://wl500g.googlecode.com):
Vladislav Grishenko, Leonid Lisovskiy, Roman Samarev, Andrey Tikhomirov
- Major code and debug output cleanup
- man page corrections and additions (thanks to Thomas Haller)
- Experimental "systemd" and "upstart" integration, if present (see explanation below)
Explanation for systemd/upstart integration:
Newer udev versions kill all subprocesses, detached or not. The suggested way to handle longer running processes like the usb_modeswitch_dispatcher is to add simple services or tasks and start these by sending signals from the udev rule.
Attention, system integrators:
A crude install facility is included in the Makefile to check if "upstart" or "systemd" is active and to install the matching service file. You may want to adapt it better to your respective system, possibly adding dependencies or targets to the services.
Note that the udev starter script usb_modeswitch.sh (installed as "/lib/udev/usb_modeswitch") also checks for the existence of the service files.
The service integration was tested on Fedora 19, Ubuntu 13.04 and Mageia 3.