File fxload-2008_10_13-prefer_DEVNAME.patch of Package fxload

Author: Stefan Seyfried <seife+obs@b1-systems.com>
Subject: Adapt fxload to newer udev

Actually this patch is from ubuntu:
https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/156085/comments/102
  * Use DEVNAME from the environment in preference to DEVICE,
    the former contains the modern /dev/bus/usb path. LP: #156085.

Index: b/main.c
===================================================================
--- a/main.c
+++ b/main.c
@@ -32,23 +32,23 @@
  *     -s <path>       -- use this second stage loader
  *     -c <byte>       -- Download to EEPROM, with this config byte
  *
  *     -L <path>       -- Create a symbolic link to the device.
  *     -m <mode>       -- Set the permissions on the device after download.
- *     -D <path>       -- Use this device, instead of $DEVICE
+ *     -D <path>       -- Use this device, instead of $DEVNAME or $DEVICE
  *
  *     -V              -- Print version ID for program
  *
  * This program is intended to be started by hotplug scripts in
  * response to a device appearing on the bus. It therefore also
  * expects these environment variables which are passed by hotplug to
  * its sub-scripts:
  *
- *     DEVICE=<path>
- *         This is the path to the device is /proc/bus/usb. It is the
- *         complete path to the device, that I can pass to open and
- *         manipulate as a USB device.
+ *     DEVNAME=<path>, DEVICE=<path>
+ *         This is the path to the device in /dev/bus/usb or
+ *         /proc/bus/usb. It is the complete path to the device, that
+ *         I can pass to open and manipulate as a USB device.
  */
 
 # include  <stdlib.h>
 # include  <stdio.h>
 # include  <getopt.h>
@@ -89,17 +89,20 @@ void logerror(const char *format, ...)
 
 int main(int argc, char*argv[])
 {
       const char	*link_path = 0;
       const char	*ihex_path = 0;
-      const char	*device_path = getenv("DEVICE");
+      const char	*device_path = getenv("DEVNAME");
       const char	*type = 0;
       const char	*stage1 = 0;
       mode_t		mode = 0;
       int		opt;
       int		config = -1;
 
+      if (!device_path)
+	      device_path = getenv("DEVICE");
+
       while ((opt = getopt (argc, argv, "2vV?D:I:L:c:lm:s:t:")) != EOF)
       switch (opt) {
 
 	  case '2':		// original version of "-t fx2"
 	    type = "fx2";
@@ -189,11 +192,11 @@ usage:
 	    fputs (argv [0], stderr);
 	    fputs (" [-vV] [-l] [-t type] [-D devpath]\n", stderr);
 	    fputs ("\t\t[-I firmware_hexfile] ", stderr);
 	    fputs ("[-s loader] [-c config_byte]\n", stderr);
 	    fputs ("\t\t[-L link] [-m mode]\n", stderr);
-	    fputs ("... [-D devpath] overrides DEVICE= in env\n", stderr);
+	    fputs ("... [-D devpath] overrides DEVNAME= and DEVICE= in env\n", stderr);
 	    fputs ("... device types:  one of an21, fx, fx2, fx2lp\n", stderr);
 	    fputs ("... at least one of -I, -L, -m is required\n", stderr);
 	    return -1;
       }