The PPD URIs of the PPD collection handling of libppd are not
identical with the PPD URIs of CUPS and so not identical with the PPD
URIs used by the dynamic PPD generator executables (the ones which are
in /usr/lib/cups/driver/ for CUPS). The difference is in the scheme,
the part before the colon. The schemes for the dynamic PPD generator
did not get extracted correctly. Most dynamic PPD generatores do not
use the scheme internally and therefore work also with the scheme
corrupted, like pyppd or HPLIP, but Gutenprint does not, as it checks
the version by the scheme,
This commit fixes the extraction of the scheme and so all dynamic PPD
generators should work now.
ptr = strrchr(realname, '/');
if (ptr == NULL)
ptr = realname;
- ptr = strstr(ppduri, ptr);
+ else
+ ptr ++;
+ ptr = ppduri + (ptr - realname);
if (access(realname, X_OK))
{
/*
/*
* Yes, let it cat the PPD file...
*/
+ if (log) log(ld, FILTER_LOGLEVEL_DEBUG,
+ "libppd: [PPD Collections] Grabbing PPD via command: \"%s cat %s\"",
+ realname, ptr);
argv[0] = realname;
argv[1] = (char *)"cat";