diff --git a/cups-uri-compat.patch b/cups-uri-compat.patch new file mode 100644 index 0000000..dd55b66 --- /dev/null +++ b/cups-uri-compat.patch @@ -0,0 +1,51 @@ +diff -up cups-1.4rc1/backend/usb-unix.c.uri-compat cups-1.4rc1/backend/usb-unix.c +--- cups-1.4rc1/backend/usb-unix.c.uri-compat 2009-07-15 10:48:46.992133677 +0100 ++++ cups-1.4rc1/backend/usb-unix.c 2009-07-15 10:49:05.305008114 +0100 +@@ -63,11 +63,34 @@ print_device(const char *uri, /* I - De + int device_fd; /* USB device */ + size_t tbytes; /* Total number of bytes written */ + struct termios opts; /* Parallel port options */ ++ char *fixed_uri = strdup (uri); ++ char *p; + + + (void)argc; + (void)argv; + ++ p = strchr (fixed_uri, ':'); ++ if (p++ != NULL) ++ { ++ char *e; ++ p += strspn (p, "/"); ++ e = strchr (p, '/'); ++ if (e > p) ++ { ++ size_t mfrlen = e - p; ++ e++; ++ if (!strncasecmp (e, p, mfrlen)) ++ { ++ char *x = e + mfrlen; ++ if (!strncmp (x, "%20", 3)) ++ /* Take mfr name out of mdl name for compatibility with ++ * Fedora 11 before bug #507244 was fixed. */ ++ strcpy (e, x + 3); puts(fixed_uri); ++ } ++ } ++ } ++ + /* + * Open the USB port device... + */ +@@ -107,10 +130,10 @@ print_device(const char *uri, /* I - De + strncasecmp(hostname, "Minolta", 7); + #endif /* __FreeBSD__ || __NetBSD__ || __OpenBSD__ || __DragonFly__ */ + +- if (use_bc && !strncmp(uri, "usb:/dev/", 9)) ++ if (use_bc && !strncmp(fixed_uri, "usb:/dev/", 9)) + use_bc = 0; + +- if ((device_fd = open_device(uri, &use_bc)) == -1) ++ if ((device_fd = open_device(fixed_uri, &use_bc)) == -1) + { + if (getenv("CLASS") != NULL) + { diff --git a/cups.spec b/cups.spec index 9a28dcd..0214cde 100644 --- a/cups.spec +++ b/cups.spec @@ -53,7 +53,8 @@ Patch26: cups-str3231.patch Patch27: cups-str3244.patch Patch28: cups-str3258.patch Patch29: cups-str3259.patch -Patch30: cups-avahi.patch +Patch30: cups-uri-compat.patch +Patch31: cups-avahi.patch Patch100: cups-lspp.patch Epoch: 1 Url: http://www.cups.org/ @@ -204,7 +205,8 @@ module. %patch27 -p1 -b .str3244 %patch28 -p1 -b .str3258 %patch29 -p1 -b .str3259 -#%patch30 -p1 -b .avahi +%patch30 -p1 -b .uri-compat +#%patch31 -p1 -b .avahi %if %lspp %patch100 -p1 -b .lspp @@ -498,6 +500,8 @@ rm -rf $RPM_BUILD_ROOT %changelog * Wed Jul 15 2009 Tim Waugh 1:1.4-0.rc1.10 +- Accept incorrect device URIs in the (non-libusb) usb backend for + compatibility with Fedora 11 before bug #507244 was fixed. - Applied patch to fix incorrect device URIs (STR #3259, bug #507244). - Applied patch to fix job-hold-until for remote queues (STR #3258, bug #497376).