From: Tyler B. <ty...@us...> - 2002-12-10 21:43:59
|
On Tuesday, Dec 10, 2002, at 09:37 US/Central, Roger Leigh wrote: > Tyler Blessing <ty...@us...> writes: > >> I have recently added a new feature to the Gimp-Print Mac OS X >> installer. When updating Gimp-Print the installer will now scan the >> existing print queues looking for all queues that are currently >> configured with Gimp-Print drivers; any queues that it finds are >> updated to use the updated PPDs. This script is CUPS specific since >> CUPS is the only spooler on Mac OS X. > > Great! > >> Any comments or suggestions for improvement are welcome! Please note >> that it does not yet implement the retaining of default PPD options a >> la foomatic-configure... > > I think you can insert the PPD options with a little sed or awk magic, > which I'll have a look at later. ... or perl. I know about [ perl -p -i -e "s/search/replace/" filename ] so now I just need the perl (or awk or sed) equivalent of the ed/vi global addressing search and replace [ :g/search text/s/target text/replacement text/ ] for example in ed/vi you would just do :g/DefaultPageSize/s/.*/replacement text/ where "replacement text" is something like "*DefaultPageSize: Ledger", or whatever the correct option happens to be. I suppose that if I looked at foomatic-configure I would find my answer ... ;-) > Instead of requiring CUPS to be running, if it's stopped, you could > simply copy the new PPD in place (if that's allowed...). I think that (at least for OS X) cupsd should always be running, but the installer itself may send a SIGHUP and if you try to do lpadmin tasks during that time they may fail. I think it would probably be best to use lpadmin to update the PPD, but I suppose if that fails I could just write it directly instead of giving up. > I think I'll adapt the script for updating during the Debian package > upgrade, and it might also be useful to add this to update-cups-genppd > so you can regenerate the PPDs and update the ones CUPS uses at the > same time. > > One problem is that it won't handle localisation when multiple > languages are in use: > > I'm not sure the best way to map, for example, > *LanguageVersion: German-DE > *PCFileName: "escp2-c60.ppd" > to /usr/share/cups/model/gimp-print/de/escp2-c60.ppd.gz. This would > be where having CUPS store the full path to the original PPD would > really come in handy. Things like "English_GB" and "Swedish" don't > map to en_GB and sv quite so easily... perhaps this would be much easier if we modify the *LanguageVersion attribute in the Gimp-Print PPDs to be more closely aligned with what CUPS uses. For example, it would be simple to grab the correct CUPS PPD "language directory" if it is a portion of the attribute: *LanguageVersion: Chinese-cn *LanguageVersion: Danish-da *LanguageVersion: Dutch-nl *LanguageVersion: English-en ... > On Tuesday, Dec 10, 2002, at 14:16 US/Central, Michael Sweet wrote: > >> The LanguageVersion guideline for CUPS is simple - the language >> name is as defined by Adobe, plus an optional -CC or _CC on the >> end for the ISO country code. The conversion table in CUPS is: >> >> { "chinese", "cn" }, >> { "danish", "da" }, >> { "dutch", "nl" }, >> { "english", "en" }, >> { "finnish", "fi" }, >> { "french", "fr" }, >> { "german", "de" }, >> { "greek", "el" }, >> { "italian", "it" }, >> { "japanese", "jp" }, >> { "norwegian", "no" }, >> { "polish", "pl" }, >> { "portuguese", "pt" }, >> { "russian", "ru" }, >> { "slovak", "sk" }, >> { "spanish", "es" }, >> { "swedish", "sv" }, >> { "turkish", "tr" } |