On the way to solve the CUPS prob­lem

I opened a bug re­port for the prob­lem (have a look at the re­lated posts be­low) and got the re­sponse that it is a prob­lem in pstoras­ter. This means it is a prob­lem in ghost­script, not in CUPS.

So I had a look at pstoras­ter and seen that CUPS_​FONTPATH is ad­ded to GS_​LIB. The­or­et­ic­ally it should solve my is­sue when I set CUPS_​FONTPATH, but this as­sumes I can do it without CUPS dis­card­ing my set­tings.

Un­for­tu­nately this as­sump­tion is not true. I tried it and I still see the same be­ha­vi­or as be­fore.

Reas­on for the env passing prob­lem in CUPS

Today I had the time to have a look at the prob­lem I have to pass the value of the GD_​LIB vari­able from CUPS to ghost­script: CUPS is set­ting this vari­able on its own and thus over­rid­ing my set­ting. 🙁

It seems CUPS is not check­ing if I have my own GS_​LIB vari­able and adding its own path to the already set one. That is bad.

More prob­lems with CUPS (passing env vari­ables)

Sat­urday I had to print a post­script file. The file was gen­er­ated out of a tem­plate which I wrote my­self by hand sev­er­al years ago. There I use a non-​standard PS font which can not be changed. The font is not em­bed­ded, and I can print it via ghost­script by telling it the loc­a­tion where the font files are loc­ated (ex­port GS_LIB=/path/to/dir1/path/to/dir2). Now that I switched to use CUPS as my print­serv­er soft­ware, I had to teach it to set this for the call to gs (via foomat­ic). Un­for­tu­nately I failed to get it work­ing via the CUPS con­fig.

I ad­ded “SetEnv GS_​LIB /path/to/dir1:/path/to/dir2” to cups.conf and re­star­ted CUPS. This did not work. I ad­ded “PassEnv GS_​LIB” to cups.conf, ad­ded an ap­pro­pri­ate ex­port of GS_​LIB to /etc/rc.conf (just to make sure… I still had the SetEnv in cups.conf) and re­star­ted CUPS. This did not work either.

As I just wanted to print out some­thing and did not want to spend my time de­bug­ging this, I put a work­around in­to place: I moved gsc to gsc.bin and cre­ated a little shell script as gsc which sets the vari­able and starts gsc.bin.

At the next up­date of ghost­script this will break my print­ing (if I for­get that I have this work­around in place), so I should try to get some time to fix this. Maybe I can fix this by adding “env GS_​LIB=…” to the call of gs in the ppd, but this seems more like an­oth­er work­around to me, than a real fix.