Skip to main content
Participant
April 16, 2004
Question

FDK on Mac OS X 10.3

  • April 16, 2004
  • 8 replies
  • 2025 views
Hi

Has anyone got the FDK working in Mac OS X 10.3 (Panther)? It looks like FinishInstall.py only works with tcsh, and not bash (which is what Panther uses by default).

I have run FinishInstall.py with ~/ as my working directory, but all attempts at running MakeOTF.py have failed. (I am trying to generate the example font AdobeGaramondPro.) I get errors involving tracebacks and no tkinter support, which I would have thought of as given.

If you *are* running the FDK in Panther, I'd like to hear of it so that I know my efforts were the result of ignorance rather than impossible circumstance.

Thanks,
Will Robertson
This topic has been closed for replies.

8 replies

Participant
August 31, 2004
Read,

Any progress on the next version of the FDK? I am having the same exact problems that are listed above Unlike Will, I'm not really following this. I understand what you're saying but how to go about it is daunting to me as I'm not a UNIX person. No OS 9 here though
Participant
April 29, 2004
Hi Read

That all makes sense. I'll install Python 2.1 when I can, and after that I'm sure it'll all be fine. Thanks for all of your help, I hope everything goes well for your subsequent release! I appreciate the time you've taken to assist me.

Will Robertson
Inspiring
April 28, 2004
Well, you 've gotten past two problems, only to fnd a third. I see that you are using the command-line makeotf command, to avoid using the GUI. Your alias must be defined correctly, as it clearly is invoking MakeOTF.py. The error report dumps the sys.path list, and I see that all the necessary FDK paths are present. The error report is misleading, as the stack dump shows that the error is that the Python interpreter does find one of the FDK modules, but when it tries to load it, the module is missing some functions.

This problem can only be because the C modules are linked with an older version of Python. I'm afraid that until the next version of the FDK is released, the only work-around is going to be to install Python 2.1 for Mac OSX and use that. You can have two different versions of Python installed. Just make sure that you run FinishInstall.py from your home directory using the older Python. When simply saying 'python' gets you the newer Python, you can fix the aliases to call the older python by using the full path to the python interpreter in the alias definition. Python version 2.1 definitely does not support TK under Mac OS X.
Participant
April 28, 2004
Hi Read

Unfortunately I'm still stuck. I found out how to install tkinter on Mac OS X ( ), but I'm getting the same error I got when I tried running makeotf with forced non-GUI mode.

My FDK python paths are all good in site-packages:

'/Applications/Font/AdobeFDK/Tools/SharedData',
'/Applications/Font/AdobeFDK/Tools/Programs/OTFProof/exe/osx',
'/Applications/Font/AdobeFDK/Tools/Programs/tx/exe',
'/Applications/Font/AdobeFDK/Tools/Programs/tx/exe/osx'

(BTW, my python is in /System/Library/...)

My error is rather long, so I have included it at the end. Note that this is the same error as I got before trying to install all of the tkinter stuff, so I know what I've done since hasn't worsened the situation.

Worst comes to worst, I can just wait for your next release!

Thanks,
Will Robertson

rampion ~ $ makeotf -n
Error: Could not find makeotflib or makeotflibDB
['/Applications/Font/AdobeFDK/Tools/Programs/makeotf/exe', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python23.zip', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/plat-darwin', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/plat-mac', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/plat-mac/lib-scriptpackages', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/lib-tk', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages', '/Applications/Font/AdobeFDK/Tools/SharedData', '/Applications/Font/AdobeFDK/Tools/Programs/OTFProof/exe/osx', '/Applications/Font/AdobeFDK/Tools/Programs/tx/exe', '/Applications/Font/AdobeFDK/Tools/Programs/tx/exe/osx', '/Applications/Font/AdobeFDK/Tools/Programs/makeotf/exe/osx']
Getting Font Environment data from: /Applications/Font/AdobeFDK/Tools/SharedData/FontEnvironment.txt
Traceback (most recent call last):
File "/Applications/Font/AdobeFDK/Tools/Programs/makeotf/exe/MakeOTF.py", line 77, in ?
from encryptfilelib import *
ImportError: Failure linking new module: : dyld: python Undefined symbols:
/Applications/Font/AdobeFDK/Tools/Programs/makeotf/exe/osx/encryptfilelib.so undefined reference to _PyArg_ParseTuple expected to be defined in the executable
/Applications/Font/AdobeFDK/Tools/Programs/makeotf/exe/osx/encryptfilelib.so undefined reference to _PyDict_SetItemString expected to be defined in the executable
/Applications/Font/AdobeFDK/Tools/Programs/makeotf/exe/osx/encryptfilelib.so undefined reference to _PyErr_Occurred expected to
Participant
April 20, 2004
Hi Read

That all looks great. I'll try again with this info on the weekend and will no doubt succeed with such good instructions!

Many thanks,
Will Robertson

PS You could include this post (slightly altered) in the Mac OS X download as an interim measure before your new release.
Inspiring
April 19, 2004
The FDK has not been tested at Adobe under Mac OSX 10.3, but undoubtedly can be made to work. The next release that will be tested and configured for Mac OSX 10.3 will be out in late summer, early fall.<br /><br />In your e-mails, I have seen three problems.<br /><br />1) tk/Tkinter not installed.<br /><br />The built-in Python does not come with the tk/tKinter graphical user interface modules. Without these, the FDK tools can only be run in command-line mode. This means opening the Terminal windows, and typing commands in the Terminal window. It will work in this mode.<br /><br />You can get the GUI version working, but you'll be on your own for this, for the next few months. I'm pretty sure that all you need to do is to go the Python web site, and get the Acqua Tk download.<br /><br />2) FDK modules not found.<br /><br />The Python interpreter has a couple standard paths where it looks for modules. You can see these by starting it up by itself, and typing:<br />import sys<br />print sys.path<br /><br />sys.path is a list of file paths where Python looks to find modules. The location of all the FDK modules needs to be on this list.<br /><br />There are a couple ways to add to this list. The FDK uses the mechanism whereby you put the each additional file path in a simple text file, and put that fie in Python 'site-packages' directory. On my system, this is in:<br />/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages<br /><br />You can also look in the sys.path list to find where it is. <br /><br />Making these files is the one critical function of the FinishInstall.py script. You can also make them by hand. The list of needed extra file paths is:<br />/adobe/FDK/Tools/SharedData<br />/adobe/FDK/Tools/Programs/OTFProof/exe/osx<br />/adobe/FDK/Tools/Programs/tx/exe<br />/adobe/FDK/Tools/Programs/tx/exe/osx<br /><br />However, it is alot easier to run FinishInstall.py. I suggest that you simply run it using the 'tcsh', from your home directory<br />1) open a new "Terminal" window<br />2) say "tcsh". This switches you to using the 'tcsh' command shell.<br />3) Say " python <path to FDK>/FinishInstall.py"<br />4) say 'exit' when done, to return to the regular bash shell.<br /><br />Note that we do currently have a bug in that the '<path to FDK>' cannot contain spaces. <br /><br />This will accomplish the critical function of the FinishInstall.py script: the command lines for teh FDK will then work. However, it will not help you avoid typing by putting 'alias' commands in your home directory login file. The 'alias' command allows you to specify that a long command string should be substituted whenever you type a word at the beginning of a command line. For example. if you say:<br />alias makeotf="python /Users/will/Typesetting/Font/AdobeFDK/FDK1.6-OSX/Tools/Programs/makeotf/exe/MakeOTF.py "<br /><br />then thereafter you will need to type only 'makeotf', and the command interpreter will think you typed the whole thing.<br /><br />However, an alias lasts only until you close the Terminal window. To always have an 'alias' definition, available, you need to put it in your login file. For bash, this file is '.bash_login', in yoru home directory. (Note that the file name starts with a period, so it will be invisible in the Finder, and the Terminal command '"ls" will show it only if you specify the path). An easy way to get your alias commands into your bash login file is to copy the alias commands from the file made by FinishInit.py. This file is called 'FDK.init'. You will need to edit these commands, as the 'bash' syntax differs from the 'tcsh' syntax. <br />Changes:<br />Instead of saying:<br />setenv FDK_PROGRAM_ROOT '"<path to top level FDK directory>"'<br />you must say:<br />FDK_PROGRAM_ROOT='"<path to top level FDK directory>"'<br />with no spaces on either side of the equals sign.<br /><br />You must edit all the alias commands to change from:<br />alias makeotf python $FDK_PROGRAM_ROOT/makeotf/exe/MakeOTF.py<br />to<br />alias makeotf="python $FDK_PROGRAM_ROOT/makeotf/exe/MakeOTF.py"<br />with no spaces on either side of the equals sign.<br /><br />Hope this helps!
Participant
April 18, 2004
Hi Steve

Thanks for your help. If I post here, then others can see too.
Before we get started, can I clarify that you are using bash as your shell? If not, we may have some difficulties. "echo $SHELL" should tell you most conveniently (mine says /bin/bash).

So, I've run FinishInstall.py and it works. A file turns up in my home directory which contains:

"
setenv FDK_PROGRAM_ROOT /Users/will/Typesetting/Font/AdobeFDK/FDK1.6-OSX/Tools/Programs
alias makeotf python $FDK_PROGRAM_ROOT/makeotf/exe/MakeOTF.py
alias otfproof $FDK_PROGRAM_ROOT/otfproof/exe/osx/spot # a binary program, not a python script
alias cffchecker $FDK_PROGRAM_ROOT/tx/exe/osx/tx # a binary program, not a python script
alias otfcompare python $FDK_PROGRAM_ROOT/otfcompare/exe/OTFCompare.py
alias otftableeditor python $FDK_PROGRAM_ROOT/otftableeditor/exe/OTFTableEditor.py
alias comparefamily python $FDK_PROGRAM_ROOT/CompareFamily.py
"

setenv is a tcsh command, but the commands wouldn't be too hard to replicate in bash. If I'm not terribly mistaken, the command to run makeotf is "python /Users/will/Typesetting/Font/AdobeFDK/FDK1.6-OSX/Tools/Programs/makeotf/exe/MakeOTF.py". This works with the -h option, so far so good.

Now I get stuck, but since I haven't used the tools before I don't know if it's my fault or the software. I'm trying to build an example font I got somewhere from Adobe, which says "In order to use the project files in the examples, you must move the example font directory to the top level directory of the FDK."

I hope I am correct then by putting the font directory at
~/Typesetting/Font/AdobeFDK/FDK1.6-OSX/AdobeGaramondPro-Regular/

If I try to run MakeOTF.py as before (with no arguments) I get the following:

will $ python /Users/will/Typesetting/Font/AdobeFDK/FDK1.6-OSX/Tools/Programs/makeotf/exe/MakeOTF.py
Traceback (most recent call last):
File "/Users/will/Typesetting/Font/AdobeFDK/FDK1.6-OSX/Tools/Programs/makeotf/exe/MakeOTF.py", line 56, in ?
from Tkinter import *
File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/lib-tk/Tkinter.py", line 38, in ?
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter

If I try with the -n option (force non GUI mode) I get a long error that starts with: "Error: Could not find makeotflib or makeotflibDB".

Is what I've written making any sense to you? I haven't used python before, so I'm not too sure where to start debugging. Any suggestions you have will be most appreciated. Sorry for this long post!

Will Robertson
Participant
April 16, 2004
Yes, I have installed FDK 1.6 on Panther. I did have a minor problem with the shell scripts, but that was due to the fact that the path to my tools directory had spaces in it; if your ~/ path is similar to /Users/yourname, this would not be the reason for the FinishInstall.py problem, I'd guess.

If you send me (shspamsink@comcast.net) a transcript of your Terminal output, I might be able to suggest something more specific.

Best regards,

Steve Hartwell