There is now a proper PPDs class in the printer admin tool, capable of indexing the PPDs that CUPS returns in a variety of useful ways. This means system-config-printer no longer needs to parse the foomatic XML database when looking for a printer driver, starting from version 0.7.67.
We can index by make and model (even with some of the daft make-and-model strings from the vendor PPDs shipped with foomatic), and also by IEEE 1284 Device ID. When several drivers are capable of driving a particular device we use some simple rules to decide which to use. Previously we used the foomatic database “recommended driver”.
When CUPS 1.3 comes along with its CUPS_GET_PPD method we’ll be able to read through each candidate PPD file to look for Mike Sweet’s rating tags, and use those to decide on driver suitability.
The method for matching a Device ID to a driver also gives an indication of how good a match it found, and this will be useful for user notifications.