Re: pcl2fax: setting of 'PCLFONTSOURCE'

Bram <[email protected]> Wed, 11 Sep 2013 14:59:20 +0200
Newsgroups gmane.comp.telephony.fax.hylafax.devel
Message-ID <[email protected]>
Yes, this does work.
I was already using something similar.

However, I don't know if this is 'acceptable' as a general solution..
Possible reasons for it to be not 'acceptable':
* it is bash-syntax
* it could be an issue on Windows but I suppose that's not really relevant
* ...

Best regards,

Bram


Quoting Aidan Van Dyk <[email protected]>:

> If all you need is to change : to ; for PCLFONTSOURCE if it's set form
> FONTPATH, does this work for you?
>
> PCLFONTSOURCE=${FONTPATH//:/;}
>
>
> On Wed, Sep 11, 2013 at 8:06 AM, Bram <[email protected]> wrote:
>
>> Hi,
>>
>> [I'm cross-posting this to both '[email protected]' and '
>> hylafax-devel@lists.**sourceforge.net<[email protected]>'
>> since I'm unsure how they related to each other - apologies if this is not
>> appropriate]
>>
>>
>> There exists a problem with the setting of the 'PCLFONTSOURCE' variable in
>> the 'pcl2fax' script.
>> This script sets 'PCLFONTSOURCE' to the value of 'FONTPATH' as set in the
>> 'setup.cache' file.
>>
>> Code from 'pcl2fax':
>>         if [ ! "$PCLFONTSOURCE" -a -n "$FONTPATH" ] ; then
>>             PCLFONTSOURCE=$FONTPATH
>>         fi
>>         if [ -n "$PCLFONTSOURCE" ] ; then
>>             export PCLFONTSOURCE
>>         fi
>>
>> It then runs the '$PCL6CMD'.
>>
>> The problem however is that FONTPATH appears to be separated by ':' while
>> pcl6 *seems to* expect the 'PCLFONTSOURCE' to be separated by ';' [note:
>> this is determined by looking at the source of pcl6].
>> This causes an error when multiple paths are set in FONTPATH: it fails to
>> find fonts.
>>
>> The easiest way to see this is by using strace:
>>
>> Separated by using ':'
>>         $ export PCLFONTSOURCE='/tmp/aa/:/tmp/**bb/:/tmp/cc/:/tmp/dd/' ;
>>   strace -f /usr/bin/pcl6  -sOutputFile="output" input 2>&1 | grep
>> '/tmp/[abcd]'
>>         openat(AT_FDCWD, "/tmp/aa/:/tmp/bb/:/tmp/cc/:/**tmp/dd",
>> O_RDONLY|O_NONBLOCK|O_**LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = -1 ENOENT
>> (No such file or directory)
>>         openat(AT_FDCWD, "/tmp/aa/:/tmp/bb/:/tmp/cc/:/**tmp/dd",
>> O_RDONLY|O_NONBLOCK|O_**LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = -1 ENOENT
>> (No such file or directory)
>>
>> Separated by using ';'
>>         export PCLFONTSOURCE='/tmp/aa/;/tmp/**bb/;/tmp/cc/;/tmp/dd/' ;
>> strace -f /usr/bin/pcl6  -sOutputFile="output" input 2>&1 | grep
>> '/tmp/[abcd]'
>>         openat(AT_FDCWD, "/tmp/aa", O_RDONLY|O_NONBLOCK|O_**
>> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 3
>>         openat(AT_FDCWD, "/tmp/bb", O_RDONLY|O_NONBLOCK|O_**
>> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 3
>>         openat(AT_FDCWD, "/tmp/cc", O_RDONLY|O_NONBLOCK|O_**
>> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 3
>>         openat(AT_FDCWD, "/tmp/dd", O_RDONLY|O_NONBLOCK|O_**
>> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 3
>>         openat(AT_FDCWD, "/tmp/aa", O_RDONLY|O_NONBLOCK|O_**
>> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 4
>>         openat(AT_FDCWD, "/tmp/bb", O_RDONLY|O_NONBLOCK|O_**
>> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 4
>>         openat(AT_FDCWD, "/tmp/cc", O_RDONLY|O_NONBLOCK|O_**
>> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 4
>>         openat(AT_FDCWD, "/tmp/dd", O_RDONLY|O_NONBLOCK|O_**
>> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 4
>>
>>
>> I'm not entirely sure how many ways there exists in the 'faxsetup' script
>> to set the 'FONTPATH' variable.
>> One method at least - and the method that appears to be used in our case -
>> is the 'getGSFonts()' function:
>>         getGSFonts()
>>         {
>>                 $PATH_GSRIP -h 2>/dev/null | $AWK -F '[ ]' '
>>                         BEGIN { start = 0; }
>>                         /Search path:/ { start = 1 }
>>                         {
>>                                 if (start == 1) {
>>                                                 if ($1 == "") {
>>                                                 gsub(" ","")
>>                                                 gsub("^[.]","")
>>                                                 gsub("^:","")
>>                                                 printf "%s", $0
>>                                         } else if ($1 != "Search") start =
>>
>>                                 }
>>                         }
>>                 '
>>         }
>>
>> PATH_GSRIP is set to /usr/bin/gs.
>> Running the command:
>>         $ /usr/bin/gs -h
>>         GNU Ghostscript 7.07 (2003-05-17)
>>         ...
>>         Search path:
>>            /usr/share/ghostscript/7.07/**lib :
>> /usr/share/ghostscript/fonts :
>>            /usr/share/ghostpcl/fonts
>>
>>
>> (Note: this is an older version of gs but I don't think the output changed)
>>
>>
>> Looking at the source of ghostpcl/ghostpdl shows that it at one point did
>> use ':' to separate paths.
>>
>> http://git.ghostscript.com/?p=**ghostpdl.git;a=commit;f=pl/**pjparse.c;h=*
>> *64a01c3a07371098ac4eecab0df660**81f638b0a4<http://git.ghostscript.com/?p=ghostpdl.git;a=commit;f=pl/pjparse.c;h=64a01c3a07371098ac4eecab0df66081f638b0a4>
>>         author  Henry Stiles <[email protected]>
>>                 Sun, 3 Sep 2000 20:42:24 +0200 (18:42 +0000)
>>         committer       Henry Stiles <[email protected]>
>>                 Sun, 3 Sep 2000 20:42:24 +0200 (18:42 +0000)
>>         commit  64a01c3a07371098ac4eecab0df660**81f638b0a4
>>
>>         Change to use `;' instead of ':' as a separator for the font path.
>>
>>         git-svn-id: http://svn.ghostscript.com/**
>> ghostpcl/trunk/ghostpcl@1189<http://svn.ghostscript.com/ghostpcl/trunk/ghostpcl@1189>06663e23-700e-0410-b217-
>> **a244a6096597
>>
>>
>> Best regards,
>>
>> Bram
>>
>>
>> ------------------------------**------------------------------**----
>> This message was sent using IMP, the Internet Messaging Program.
>>
>>
>> ____________________ HylaFAX(tm) Developers Mailing List
>> ____________________
>>  To subscribe/unsubscribe, click http://lists.hylafax.org/cgi-**
>> bin/lsg2.cgi <http://lists.hylafax.org/cgi-bin/lsg2.cgi>
>> On UNIX: mail -s unsubscribe  
>> hylafax-devel-request@hylafax.**org<[email protected]><  
>> /dev/null
>>
>>
>
>
> --
> Aidan Van Dyk                                             Create like a god,
> [email protected]                                       command like a king,
> http://www.highrise.ca/                                   work like a
> slave.
>
>
>
>
>



----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.


____________________ HylaFAX(tm) Developers Mailing List ____________________
  To subscribe/unsubscribe, click http://lists.hylafax.org/cgi-bin/lsg2.cgi
On UNIX: mail -s unsubscribe [email protected] < /dev/null