Installing Cygwin and FontForge for Windows

February 27th, 2011 by zoltan · 50 Comments

Notes:

  • Since this article has been written, Fontforge has an official Windows port that runs without the need of Cygwin. If you (like most end users) don’t care if FontForge is not compiled with Cygwin support, then the official port is the simpler and easier option to use.
  • This post is a companion to my article on Converting @font-face Fonts Quickly In Any OS.
  • Update — May 29, 2012: Matthew Petroff has created an unofficial Windows installer for FontForge. I will be testing this package in the next little while to see how well it can be used with @font-face conversion script, but as a standalone desktop application, it seems to work really well! :-)
  • Updated May 12, 2012 to reflect small changes to the installation procedure (thanks to “Shanna” for information that helped find the solution).

FontForge is a great font editor, but it can be a pain to install for Windows users. Hopefully this article will help you.

FontForge, as far as I can tell, is the best free font editing and conversion tool available for all operating systems. Web developers edit images and photographs with tools like The Gimp and Photoshop, so why can’t we edit fonts? The problem is FontForge was originally a UNIX X-Windows application, and the average user may have difficulty getting it to work under Windows. Since a lot of web designers out there may not be familiar with UNIX command shells and Cygwin, I have written this blog post to help. If you find any errors, please let me know in the comments section below — I do want to make this as easy and as painless as I possibly can.

Step 1: Install Cygwin

First thing you must do in order to run FontForge under Windows is to install Cygwin. Cygwin is a way to allow programs that run under the Linux Operating System to compile under Windows. Do not worry … we are not going to compile any source code. FontForge has already been compiled under Cygwin and has been packaged up so that end users don’t have to. But in order to use it, you must install Cygwin first:

Cygwin has a nice setup program that downloads and installs the necessary Cygwin packages for you.

  1. Open the Cygwin, http://cygwin.com/ page in your web browser

  2. Click on the "setup.exe" link. This link downloads setup.exe from the primary Cygwin server; save setup.exe to the directory that you would like to store the downloaded packages in (e.g. c:\download); do not save setup.exe to c:\cygwin, as that is the default directory for the extraction and installation of the downloaded packages.

  3. Run setup.exe, you will see the welcome screen:

  4. Click Next to proceed to the next screen.

  5. Choose, Install from Internet, this will still save the package files to your download directory so that you can install Cygwin on any number of machines:

  6. Click Next to proceed to the next screen.

  7. The default Install Root is c:\cygwin which should be fine for most installations. Leave Default Text File Type as UNIX. Leave Install For set to All unless you lack local administrative privileges.

  8. Click Next to proceed to the next screen.

  9. Local Package Directory should default to the directory that you ran setup.exe from:

  10. Click Next to proceed to the next screen.

  11. Choose your proxy setup, or, just choose Direct Connection if no proxy is needed:

  12. Click Next to proceed to the next screen.

  13. Select your nearest mirror for downloading:

  14. Click Next to proceed to the next screen; setup will download a list of available packages as it moves to the next screen.

  15. On the next screen you will select the packages that will be downloaded and installed. A listing of the packages you will need is given below (This list has been updated as for May 11, 2012 thanks to Shanna's troubleshooting questions in the comments below):

    • Under the X11 category, install:
      • X-start-menu-icons (optional but recommended, adds icons for X Clients to the Start menu)

      • xinit (required, scripts for starting the X server: xinit, startx, startwin (and a shortcut on the Start Menu to run it), startxdmcp.bat )

      • xorg-docs (optional, man pages)

      • xorg-server (required, the Cygwin/X X Server)

      • libcairo2

      • libXi6

      • libXi-devel

    • Under the Gnome catagory, install the libxml2 and libpango1.0_0 packages.
    • Under the Graphics catagory, install the giflib, libpng, jpeg and libtiff packages (the latest non-beta version of libtiff at the time of this writing is libtiff5)
    • Under Editors, install vim.
    • Under Web, instal wget
    • Finally, install rxvt in the Shells category (just rxvt, not any of the rxvt-unicode-* packages)

  16. Click Next to begin the download process, you may want to try another mirror if you see a "Connecting" message on this screen for a long period of time:

  17. After the packages are downloaded, setup will automatically begin to install them:

  18. I highly recommend allowing Cygwin Setup to create Desktop and Start Menu icons for you; these icons simply launch a bash shell:

  19. Click Finish to close the setup program.

Step 2: Install FontForge

Now that you have successfully installed Cygwin and the libraries necessary to run FontForge, it is now to time to install FontForge itself. This part is not obvious, and is the main reason why I wrote these instructions.

There are two ways you can install FontForge: using the Cygwin setup program you just downloaded (not-so-easy) or using the "Unofficial Windows Port".

If you get stuck, there is more help available at the Official Cygwin Ports page.

Using the Cygwin Setup

This is my preferred method for installing FontForge, but may not always be successful because the download process stalls sometimes. If it doesn't work the first time, quit the process and try again. Note that I found that installing it this way works best at around 7:00 AM - 4:00 PM EST. I believe that this is because the Cygwin Ports server is busier at night, but I am just guessing. Your results may vary.

If you get really frustrated installing it this way, try the "Unofficial Windows Port" method instead.

  1. Go to the directory you saved Cygwin's setup.exe when you installed Cygwin.
  2. Right click on setup.exe and choose "Create Shortcut..."
  3. Right click on the shortcut that you created and choose "Properties". In the shortcut dialogue, change the Target field from setup.exe to setup.exe -K http://cygwinports.org/ports.gpg

  4. Double-click on the new shortcut. Go through the steps 3 - 12 of the installation instruction of Cygwin.
  5. When you get to step 13, you must enter ftp://ftp.cygwinports.org/pub/cygwinports into the User URL field and click Add button. When you do, it will be added to the list of download sites. Ensure that the new site is the only one chosen (sometimes two will be chosen at this point, the one you just added and one you used to install Cygwin), and click Next.

    Note that you will see this progress dialogue longer than you did in when installing Cygwin:

    Be patient. You should eventually get to the next dialogue. If it gives you an error about the version of setup.bz2 being earlier than the previous one or something similar, ignore it.
  6. At this point, the Select Packages will appear. Go the Graphics category and choose fontforge:

    Click Next.
  7. You will see a dialogue similar to this:

    This is just showing you it has to download the fontforge's dependencies as well. Just click Next
  8. You will see the download dialogue:

    This is the part that may take a long time to run, and may even stall. Let it run for a while. If it gets stuck for a long time, you may want to choose a different mirror.
  9. If you complete the install process, you should now have successfully installed fontforge. To test your install, do the following:
    • Go to the Start Menu, choose "Programs" and in the "Cygwin" Program Group, launch rxvt-native. Screenshot of how to launch rxvt under Windows XP
    • From the command line, enter the startxwin command. You should see the following output
      Welcome to the XWin X Server
      Vendor: The Cygwin/X Project
      Release: 1.9.4.0 (10904000)
      Package version 1.9.4-1 built 2011-02-07
      
      XWin was started with the following command line:
      
      X :0 -multiwindow 
      
      _XSERVTransSocketOpenCOTSServer: Unable to open socket for inet6
      _XSERVTransOpen: transport open failed for inet6/NB07023:0
      _XSERVTransMakeAllCOTSServerListeners: failed to open listener for inet6
      winInitializeScreens - 1
      winInitializeScreen - 0
      (II) xorg.conf is not supported
      (II) See http://x.cygwin.com/docs/faq/cygwin-x-faq.html for more information
      LoadPreferences: /home/haw5855/.XWinrc not found
      LoadPreferences: Loading /etc/X11/system.XWinrc
      LoadPreferences: Done parsing the configuration file...
      winGetDisplay: DISPLAY=:0.0
      winDetectSupportedEngines - Windows NT/2000/XP
      winDetectSupportedEngines - DirectDraw installed
      winDetectSupportedEngines - Allowing PrimaryDD
      winDetectSupportedEngines - DirectDraw4 installed
      winDetectSupportedEngines - Returning, supported engines 0000001f
      winSetEngine - Multi Window or Rootless => ShadowGDI
      winScreenInit - Using Windows display depth of 32 bits per pixel
      winAllocateFBShadowGDI - Creating DIB with width: 1280 height: 800 depth: 32
      winFinishScreenInitFB - Masks: 00ff0000 0000ff00 000000ff
      winInitVisualsShadowGDI - Masks 00ff0000 0000ff00 000000ff BPRGB 8 d 24 bpp 32
      null screen fn ReparentWindow
      null screen fn RestackWindow
      InitQueue - Calling pthread_mutex_init
      InitQueue - pthread_mutex_init returned
      InitQueue - Calling pthread_cond_init
      InitQueue - pthread_cond_init returned
      winInitMultiWindowWM - Hello
      winInitMultiWindowWM - Calling pthread_mutex_lock ()
      winMultiWindowXMsgProc - Hello
      Screen 0 added at virtual desktop coordinate (0,0).
      winMultiWindowXMsgProc - Calling pthread_mutex_lock ()
      MIT-SHM extension disabled due to lack of kernel support
      XFree86-Bigfont extension local-client optimization disabled due to lack of shared memory support in the kernel
      (II) AIGLX: Loaded and initialized /usr/lib/dri/swrast_dri.so
      (II) GLX: Initialized DRISWRAST GL provider for screen 0
      winPointerWarpCursor - Discarding first warp: 640 400
      (--) 3 mouse buttons found
      (--) Setting autorepeat to delay=500, rate=31
      (--) Windows keyboard layout: "00000409" (00000409) "US", type 4
      (--) Found matching XKB configuration "English (USA)"
      (--) Model = "pc105" Layout = "us" Variant = "none" Options = "none"
      Rules = "base" Model = "pc105" Layout = "us" Variant = "none" Options = "none"
      winInitMultiWindowWM - pthread_mutex_lock () returned.
      winMultiWindowXMsgProc - pthread_mutex_lock () returned.
      winMultiWindowXMsgProc - pthread_mutex_unlock () returned.
      winGetDisplay: DISPLAY=:0.0
      winMultiWindowXMsgProc - DISPLAY=:0.0
      winInitMultiWindowWM - pthread_mutex_unlock () returned.
      winProcEstablishConnection - Hello
      winInitClipboard ()
      winClipboardProc - Hello
      DetectUnicodeSupport - Windows NT/2000/XP
      winProcEstablishConnection - winInitClipboard returned.
      winGetDisplay: DISPLAY=:0.0
      winInitMultiWindowWM - DISPLAY=:0.0
      winGetDisplay: DISPLAY=:0.0
      winClipboardProc - DISPLAY=:0.0
      winMultiWindowXMsgProc - XOpenDisplay () returned and successfully opened the display.
      winInitMultiWindowWM - XOpenDisplay () returned and successfully opened the display.
      winClipboardProc - XOpenDisplay () returned and successfully opened the display.
      
      You should see the XWindows icon in the tray .
    • Next enter the command fontforge & (include the & if you want to run fontforge in the background so that you can enter in other commands into rxvt later). You will see the fontforge splash screen as well as a file dialogue box.
      The FontForge Splash Screen with File Dialogue

      The FontForge Splash Screen with File Dialogue

      If this is what you see, then congratulations, you installed it correctly!
    • If you get an error similar to "error while loading shared libraries: ?: cannot open shared object file", then you forgot to install one of the dependencies. You can find out which one is missing by entering in the command cygcheck fontforge. You should see output similar to this:
      $ cygcheck fontforge
      Found: C:\cygwin\bin\fontforge.exe
      Found: C:\cygwin\bin\fontforge.exe
      C:\cygwin\bin\fontforge.exe
        C:\cygwin\bin\cygfontforge-1.dll
          C:\cygwin\bin\cyggutils-1.dll
            C:\cygwin\bin\cyggunicode-3.dll
              C:\cygwin\bin\cygwin1.dll
                C:\Windows\system32\ADVAPI32.DLL
                  C:\Windows\system32\msvcrt.dll
                    C:\Windows\system32\KERNELBASE.dll
                      C:\Windows\system32\ntdll.dll
                    C:\Windows\system32\API-MS-Win-Core-Console-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-DateTime-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-Debug-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-ErrorHandling-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-Fibers-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-File-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-Handle-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-Heap-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-Interlocked-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-Localization-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-LibraryLoader-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-Memory-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-Misc-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-NamedPipe-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-ProcessEnvironment-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-ProcessThreads-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-Profile-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-String-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-Synch-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-SysInfo-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-Util-L1-1-0.dll
                  C:\Windows\system32\API-MS-WIN-Service-Core-L1-1-0.dll
                  C:\Windows\system32\API-MS-WIN-Service-winsvc-L1-1-0.dll
                  C:\Windows\system32\API-MS-WIN-Service-Management-L1-1-0.dll
                  C:\Windows\system32\API-MS-WIN-Service-Management-L2-1-0.dll
                  C:\Windows\system32\API-MS-Win-Core-LocalRegistry-L1-1-0.dll
                  C:\Windows\system32\API-MS-Win-Security-Base-L1-1-0.dll
                  C:\Windows\system32\KERNEL32.dll
                    C:\Windows\system32\API-MS-Win-Core-RtlSupport-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-IO-L1-1-0.dll
                    C:\Windows\system32\API-MS-Win-Core-ThreadPool-L1-1-0.dll
                  C:\Windows\system32\RPCRT4.dll
                    C:\Windows\system32\API-MS-Win-Core-DelayLoad-L1-1-0.dll
              C:\cygwin\bin\cyggcc_s-1.dll
              C:\cygwin\bin\cygiconv-2.dll
            C:\cygwin\bin\cygintl-8.dll
            C:\cygwin\bin\cygpng12.dll
              C:\cygwin\bin\cygz.dll
          C:\cygwin\bin\cygfreetype-6.dll
          C:\cygwin\bin\cygspiro-0.dll
          C:\cygwin\bin\cyguninameslist-0.dll
          C:\cygwin\bin\cygxml2-2.dll
          C:\cygwin\bin\libpython2.6.dll
        C:\cygwin\bin\cyggdraw-4.dll
          C:\cygwin\bin\cygX11-6.dll
            C:\cygwin\bin\cygxcb-1.dll
              C:\cygwin\bin\cygXau-6.dll
              C:\cygwin\bin\cygXdmcp-6.dll
          C:\cygwin\bin\cygXft-2.dll
            C:\cygwin\bin\cygXrender-1.dll
            C:\cygwin\bin\cygfontconfig-1.dll
              C:\cygwin\bin\cygexpat-1.dll
          C:\cygwin\bin\cygXi-6.dll
            C:\cygwin\bin\cygXext-6.dll
          C:\cygwin\bin\cygcairo-2.dll
            C:\cygwin\bin\cygglitz-1.dll
            C:\cygwin\bin\cygpixman-1-0.dll
            C:\cygwin\bin\cygxcb-render-util-0.dll
              C:\cygwin\bin\cygxcb-render-0.dll
          C:\cygwin\bin\cygpango-1.0-0.dll
            C:\cygwin\bin\cygglib-2.0-0.dll
              C:\cygwin\bin\cygpcre-0.dll
            C:\cygwin\bin\cyggmodule-2.0-0.dll
            C:\cygwin\bin\cyggobject-2.0-0.dll
              C:\cygwin\bin\cyggthread-2.0-0.dll
          C:\cygwin\bin\cygpangocairo-1.0-0.dll
            C:\cygwin\bin\cygpangoft2-1.0-0.dll
          C:\cygwin\bin\cygpangoxft-1.0-0.dll
      cygcheck: track_down: could not find cyggif-4.dll
      
      cygcheck: track_down: could not find cygjpeg-7.dll
      
      cygcheck: track_down: could not find cygtiff-5.dll
      
      In this case, the missing libraries are libgif, jpeg and libtiff. Go back to step 1 and ensure that you install them (Cygwin's setup will allow you to install them, even after you did the first install).

Using "unofficial fontforge-mingw"

A Japanese developer has posted a MingW port. This developer of the mingw port has recently made a standalone version of the Cygwin version of fontforge available as well, and I encourage you to download the Cygwin one instead of the MingW one, since it seems to be a bit more up-to-date. Both of these ports are available on the developer's Geocities Japan site (yes folks ... you read that right. Geocities still exists in Japan!) It is dead simple to install fontforge using this package:

  1. Download the package from the project's homepage. Even though the page is in Japanese, the Dowload link is in English. :-)
  2. unzip the package
  3. To test if the installation was successful, go into the directory that contains the package and run the fontforge.bat batch file.

Note:

By default, this program will run with a Japanese version of the user interface. In order to ensure it runs as English, you will need to edit the fontforge.bat and delete the following line:

set LANG=ja_JP.UTF-8

Thanks to Senne for leaving this tip in the comments below.

Even thought this method doesn't really need the fullblown version of Cygwin (since it is designed to be standalone), I suggest installing Cygwin in order to use the the CSS3 Font Converter.

Futher Reading

Copyright Notice

Some of the contents of this post have been taken from the Cygwin/X User's Guide, copyright © 2000 Harold L Hunt II and copyright © 2009, 2010, 2011 Jon Turney. As per that document's license, permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts.

Tags: @font-face · converting · Cygwin · FontForge · Fonts

50 responses so far ↓
  • 1 CheshireCat // Mar 7, 2011 at 6:59 pm

    It worked! There were some errors:
    startxwin: XFree86_VT property unexpectedly has 0 items instead of 1
    winClipboardProc – XOpenDisplay () returned and successfully opened the display.
    winInitMultiWindowWM – XOpenDisplay () returned and successfully opened the display.
    winMultiWindowXMsgProc – XOpenDisplay () returned and successfully opened the display.
    0 [main] xterm 8456 exception::handle: Exception: STATUS_ACCESS_VIOLATION
    550 [main] xterm 8456 open_stackdumpfile: Dumping stack trace to xterm.exe.stackdump
    0 [main] xterm 2112 exception::handle: Exception: STATUS_ACCESS_VIOLATION
    451 [main] xterm 2112 open_stackdumpfile: Dumping stack trace to xterm.exe.stackdump
    0 [main] xterm 8904 exception::handle: Exception: STATUS_ACCESS_VIOLATION
    457 [main] xterm 8904 open_stackdumpfile: Dumping stack trace to xterm.exe.stackdump
    0 [main] xterm 6248 child_copy: linked dll data write copy failed, 0x2CE000..0x2D27EC, done 0, windows pid 8420, Win32 error 487
    xterm: Error 29, errno 11: Resource temporarily unavailable
    Reason: spawn: fork() failed

    When I ran fontforge, the application ran but i didn’t see the splash scren. It seems to work though.

    The process was chronically slow and I needed to cancel downloads that had stuck on several occasions. All in all, I reckon it took from 1700 to well after midnight to get the Cygwin system updated and fontforge installed. Without these notes, I’m sure I would have given up, so thank you very much. It might be helpful to explain how one can generate a list of the co-requisite packages as it would probably be much quicker to download everything except the fontforge stuff from mirrors other than the cygwinports site.

  • 2 Richard fink // Apr 5, 2011 at 10:30 am

    Just wanted to let you know what a great job you did on this roundup. I’ll be spreading the word.

  • 3 Chris // Apr 15, 2011 at 8:24 am

    This is totally comprehensive — the missing manual for FontForge on Windows!

  • 4 zoltan // Apr 15, 2011 at 9:04 am

    @Chris: Thanks for this! It is what I intended it to be. When I first tried to install FontForge on Windows, it was very trying. I hope budding font-editors/font-builders will find it useful.

  • 5 Clint // Apr 22, 2011 at 11:20 pm

    This page helped me to get it up and running, too bad it took me 3 hours {with distractions}.
    Thanks.

  • 6 iari // May 20, 2011 at 10:28 am

    on step 5 when i enter and then next, this windows comes up saying : unable to get setup.ini from

    :S

  • 7 adumi // May 28, 2011 at 2:08 pm

    Thanks for this tutorial !
    I did manage to install cygwin with it but so far have not had much luck with Step2: installing fontforge.
    Using the cygwin setup I get halfway the installation while installing libGL1-7.10.1-2 I repeatedly get the message:
    Unable to extract /usr/lib/dri/swarst_dri.so — the file is in use.
    and the installation breaks.
    I tried it many times after a fresh restart of the machine and made sure nothing apears in the tray menu and looked up the processes (win7) but even if one of them is indeed somehow related to this problem I can`t spot it out.
    I searched the web and downloaded libGL1-7.10.1-2 seperately but I wouldn`t know where and how to plant it inside the Cygwin directory tree and and I am probably missing a lot of other stuff as well because the installation process didn`t allow me to just skip – but broke off.
    I tried the Japanese version, too, but I can`t seem to find any option in it`s menus to switch it to English, so it`s pretty much chinese to me. I`m very keen on installing that fontforge, so any advice from this point onwards would be very appreciated.

  • 8 zoltan // Jun 5, 2011 at 9:28 am

    @adumi: If a reboot of your machine doesn’t help, what you may want to do is download Process Explorer by Microsoft’s Mark Russinovich. It can tell you what process has opened the file so you can close it. If you do a lot of unusual things in Windows, this program is an invaluable tool.

    As for the the Japanese Fontforge, my version is actually in English, so I am quite surprised. It may have changed, so try again. I have also noticed that now on the same page, there is a Cygwin version of Fontforge available for download. I will be testing this out in the next little while to see if this suits the needs of English language developers, and if so, update this article (if anyone else does so before I do, please drop me a line and tell me of your experiences).

  • 10 adumi // Jun 21, 2011 at 9:53 am

    Thanks zoltan,
    A restart did not solve the problem so I`ll soon try locating the culprit process with Process Explorer, thank you. If you have access to that Fontforge version for download – I`d really appreciate any kind of directions as to how to get it. many thnaks, I`ll be back here to report soon.

  • 11 Dan // Sep 1, 2011 at 3:47 am

    Very very very helpful. I don’t know how I would have gotten FontForge up and running without this guide.

  • 12 dudefellow // Sep 4, 2011 at 4:13 pm

    I tried to test the download though cygwin using ftp://ftp.cygwinports.org/pub/cygwinports
    and received this message at the start of the download process:
    Cygwin Setup
    Mirror Error: Setup.ini signaure ftp://ftp.cygwinports.org/pub/cygwinports/setup.bz2.sig from ftp://ftp.cygwinports.org/pub/cygwinports failed to verify. Possible corrupt mirror? Setup.ini rejected.

  • 13 Ricardo // Sep 7, 2011 at 6:27 pm

    Hey! Thanks a lot for this very useful tutorial :)
    It helped me a lot.

  • 14 anisur rahman // Sep 24, 2011 at 12:34 pm

    I installed using japan method. But my fontforge is in japan language. I do not understand Japanese. So i cannot work on it. Is there any method to change the language from Japanese to English?

  • 15 zoltan // Sep 24, 2011 at 2:12 pm

    @anisur: I am not sure — I personally do not have this issue (my FontForge appeared in English with this package), but I’ll look further into it. In the meantime, the only thing I would suggest is using the other method to download FontForge. It may be a pain to do, but it would at least solve your language issue. Good luck!

  • 16 Steve // Oct 5, 2011 at 6:40 pm

    Couldn’t install X windows, tried the japan method and (surprise) the application is in Japanese! With no language selector! LINUX FOR THE DESKTOP LOL (nothing works correctly)

  • 17 trlkly // Oct 11, 2011 at 12:01 pm

    Can’t you just upload your package somewhere? Then we can see if it’s in English for us.

    Yes, I had the same problem with the intaller appearing in Japanese. And I am loathe to install Cygwin just for one project.

  • 18 zoltan // Oct 12, 2011 at 7:08 pm

    @trlkly: packaging up an English version of FontForge that doesn’t rely on installing a full-blown Cygwin may take a bit of time to do, and it would be necessary to keep track of updates of the official FontForge build to ensure that my version would be in sync. That said, it seems there is a need for this. I’m going to see how much effort this is .. if it isn’t too bad, maybe I can upload a copy to github for public consumption.

  • 19 Stefano // Oct 16, 2011 at 5:18 am

    Hi!
    at first, thank you for this guide, it really helped me to faster install what I need :-)
    But after intallation goes smoothly, I have a problem when starting XWindow: sthe startxwin command end p with a ‘unable to connect X server…” message.

    This is the starting session:

    ———————-
    Stefano@PC-Stefano ~
    $ startxwin

    Welcome to the XWin X Server
    Vendor: The Cygwin/X Project
    Release: 1.11.1.0
    OS: Windows 7 Service Pack 1 [Windows NT 6.1 build 7601] (WoW64)
    Package: version 1.11.1-1 built 2011-10-05

    XWin was started with the following command line:

    X :0 -multiwindow

    (II) xorg.conf is not supported
    (II) See http://x.cygwin.com/docs/faq/cygwin-x-faq.html for more information
    LoadPreferences: /home/Stefano/.XWinrc not found
    LoadPreferences: Loading /etc/X11/system.XWinrc
    LoadPreferences: Done parsing the configuration file…
    winDetectSupportedEngines – DirectDraw installed, allowing ShadowDD
    winDetectSupportedEngines – Windows NT, allowing PrimaryDD
    winDetectSupportedEngines – DirectDraw4 installed, allowing ShadowDDNL
    winDetectSupportedEngines – Returning, supported engines 0000001f
    winSetEngine – Multi Window or Rootless => ShadowGDI
    winScreenInit – Using Windows display depth of 32 bits per pixel
    winAllocateFBShadowGDI – Creating DIB with width: 2048 height: 1152 depth: 32
    winFinishScreenInitFB – Masks: 00ff0000 0000ff00 000000ff
    winInitVisualsShadowGDI – Masks 00ff0000 0000ff00 000000ff BPRGB 8 d 24 bpp 32
    winInitMultiWindowWM – Calling pthread_mutex_lock ()
    winMultiWindowXMsgProc – Calling pthread_mutex_lock ()
    Screen 0 added at virtual desktop coordinate (0,0).
    MIT-SHM extension disabled due to lack of kernel support
    XFree86-Bigfont extension local-client optimization disabled due to lack of shared memory support in the kernel
    (II) AIGLX: Loaded and initialized swrast
    (II) GLX: Initialized DRISWRAST GL provider for screen 0
    [dix] Could not init font path element /usr/share/fonts/TTF/, removing from list!
    [dix] Could not init font path element /usr/share/fonts/OTF/, removing from list!
    [dix] Could not init font path element /usr/share/fonts/Type1/, removing from list!
    1 [main] X 5792 fork: child 5236 – died waiting for dll loading, errno 11
    startxwin: giving up
    startxwin: unable to connect to X server: Connection refused
    startxwin: server error

    Stefano@PC-Stefano ~
    $

    ————-
    I have looked for similar questions on internet before wtiing here, but I had no luck.
    I know that this is probably beyond the purpose of your guide, but I please ask you to check if you’re able to help me to find what’s the wrong step I made.
    I presume it could be related to the O.S. version (Win 7 64 bit) and it’s permission rules, but any help will be appreciated.

    Thank you in advance.

  • 20 zoltan // Oct 16, 2011 at 10:39 am

    The most interesting part of your post has to do with this error message in your startx startup:

    1 [main] X 5792 fork: child 5236 – died waiting for dll loading, errno 11

    After reading about this error on the web, I think that you may need to rebase Cygwin. Look at this article and see if it helps:

    Cygwin: died waiting for dll loading by Gareth Hunt may help. Even though he had trouble with apache and mod_rewrite, it looks your problem is a symptom of the same problem.

    Good luck!

  • 21 Stefano // Oct 16, 2011 at 11:04 am

    GREAT! It worked for me!
    You saved my late sunday spare time :-)
    Thank you again for your prompt help.

  • 22 Larry Botha // Nov 2, 2011 at 4:57 pm

    Zoltan… you’ve explained perfectly and succinctly what dozens of other sites have failed to do.

    Thanks for the help!

  • 23 xyz // Nov 3, 2011 at 4:59 am

    Hey! I tried to install fontforge but to no avail… I’ve installed cygwin, but when accessing the setup from cygwin ports from the installer in Step 2:Install FontForge (substep 5), after a while it gives me the error “Unable to get setup.ini from ”

    Please help, I need to install fontforge urgently for work, I’ve tried installing through building Fontforge from source, and that didn’t work either for me.

    Awaiting your response

  • 24 Logra // Nov 3, 2011 at 9:44 am

    Urgh – there now seems a problem with at least one possibly corrupted file (setup.bz2.sig) on the ftp://ftp.cygwinports.org/pub/cygwinports system when you hit the fontforge-installation stage.

    As it can’t be verified correctly, the install…um… pops like a balloon, leaving you with no options (and, after kindly telling you it may be corrupted – with a nice question mark). Finding a mirror ftp site with fontforge is proving ‘interesting’, but I am still trying. Sorry to be the barer of such fantastic news…

  • 25 zoltan // Nov 3, 2011 at 5:04 pm

    @xyz: I have *just* went through the install process on a new Windows machine and I did not get this error. Note that I am not saying you are doing something wrong — I have seen this problem before. The problem, I believe, is on the cygwinports server, and it is usually fixed in a few hours. Try again and let me know if it does/doesn’t work.

  • 26 Rebecca2323 // Nov 3, 2011 at 5:10 pm

    http://www.youtube.com/watch?v=9az1Fh6tAas

    Check out my tutorial on how to make a font on FontForge!

  • 27 zoltan // Nov 3, 2011 at 5:16 pm

    @Logra: this problem is related to the one experienced earlier by @xyz in a previous comment. Unfortunately it seems like there was a problem with the cygwinports server. If you try it now, it will probably work (I just did it successfully a few moments ago).

    Thanks for posting this though — it *can* be quite frustrating dealing with the cygwinports server at times, but it will work if you are persistent. :-)

  • 28 j.g. owen // Nov 8, 2011 at 6:23 pm

    Tuesday, November 8, 2011 5:21 pm. I’m amazed. I’m running fontforge! I have no idea if/how it works and all, but I’m astonished I got this far…. Thanx much….

  • 29 nusushika // Nov 17, 2011 at 10:15 am

    Thank you thank you. Your post really did help me finally installed fontforge on windows 7.

    It seems install instructions on other websites (including fontforge on sourcefore.net) are all out of date.

    Thank you very much.

  • 30 zoltan // Nov 17, 2011 at 11:18 pm

    @nusushika: It’s why I created it this tutorial. Thanks for the feedback! :-)

  • 31 Senne // Dec 8, 2011 at 12:30 pm

    Found how to change the language to English:
    1. RM on fontforge.bat -> edit

    2. Search for the following line:

    set LANG=ja_JP.UTF-8

    3. Remove it.
    4. Safe, and run again.

    Easy As Pie ;)

  • 32 zoltan // Dec 9, 2011 at 11:12 am

    @Senne: Thanks for the tip! I’m going to update the article with this information. Since I don’t use the GUI too much, I haven’t delved a lot into this, and given the amount of questions on this subject, it seems like it was bugging a lot of people. :-)

  • 33 Id10t_ // Dec 11, 2011 at 3:35 am

    Solid work. I stumbled here while looking for a painless cygwin install and I got *exactly* what I was looking for… PLUS info on FontForge :) Big thanks!!

  • 34 SAKI // Jan 7, 2012 at 9:52 pm

    Thank you so much for posting this! After three failed attempts at installing fontforge the way it was described on the official site, I was ready to give up … but now I have a working install. :)

  • 35 zoltan // Jan 7, 2012 at 11:30 pm

    @SAKI: Thanks for your feedback. It’s comments like this that make posting stuff like this worthwhile. :-)

  • 36 Logra // Mar 23, 2012 at 12:02 pm

    I know it’s been months since I had my initial troubles installing FontForge (long story short: I acquired unrelated hardware issues, and it’s taken me a while to replace the PC in question with a permanent solution). I’ve got FontForge up and working, now. Thank you. :-) First order of business is creating comic breath-marks/ cat’s whiskers/ crow’s feet/ whatever marks to…er…the Komika font family, strangely enough. :-D Wish me luck!

  • 37 rcs // Apr 26, 2012 at 7:55 am

    Hi;
    Thank for the post.
    But I got some error,with the fontforge installation. Up to that point everything was ok. In the step 9 (as above steps) “From the command line, enter the startxwin command.”. When I enter ‘startxwin’ it ends with something like this.

    $ Warning: Missing charsets in String to FontSet conversion

    Further I enter ‘fontforge’ as mentioned in step 9 [Next enter the command fontforge & (include the & if you want to run fontforge in the background so that you can enter in other commands into rxvt later). You will see the fontforge splash screen as well as a file dialogue box.].

    But then I didnot get the fontforge splash screen as well as a file dialogue box and INSTEAD I got the following statement.

    bash: /usr/bin/fontforge: Bad address

    Please help me, where I heve been wrong. I need to run this software urgently.

  • 38 Shanna // May 11, 2012 at 4:18 pm

    Hello, I’m using windows7 and I’ve follow all the steps successfully except when I enter the font forge command I get this:

    $ fontforge
    bash: /usr/bin/fontforge: Bad Address

    Could you help me with this please? Thanks in advance.

  • 39 Shanna // May 11, 2012 at 4:52 pm

    Also,
    I got this when I ran cygcheck fontforge

    $ cygcheck fontforge
    Found: C:\cygwin\bin\fontforge.exe
    C:\cygwin\bin\fontforge.exe
    C:\cygwin\bin\cygfontforge-1.dll
    C:\cygwin\bin\cyggutils-1.dll
    C:\cygwin\bin\cyggunicode-3.dll
    C:\cygwin\bin\cygwin1.dll
    C:\windows\system32\KERNEL32.dll
    C:\windows\system32\API-MS-Win-Core-RtlSupport-L1-1-0.dll
    C:\windows\system32\ntdll.dll
    C:\windows\system32\KERNELBASE.dll
    C:\windows\system32\API-MS-Win-Core-ProcessThreads-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-Heap-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-Memory-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-Handle-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-Synch-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-File-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-IO-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-ThreadPool-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-LibraryLoader-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-NamedPipe-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-Misc-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-SysInfo-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-Localization-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-ProcessEnvironment-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-String-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-Debug-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-ErrorHandling-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-Fibers-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-Util-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-Profile-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Security-Base-L1-1-0.dll
    C:\cygwin\bin\cygiconv-2.dll
    C:\cygwin\bin\cyggif-4.dll
    C:\cygwin\bin\cyggcc_s-1.dll
    C:\cygwin\bin\cygX11-6.dll
    C:\cygwin\bin\cygxcb-1.dll
    C:\cygwin\bin\cygXau-6.dll
    C:\cygwin\bin\cygXdmcp-6.dll
    C:\cygwin\bin\cygintl-8.dll
    C:\cygwin\bin\cygjpeg-8.dll
    C:\cygwin\bin\cygpng14-14.dll
    C:\cygwin\bin\cygz.dll
    C:\cygwin\bin\cygtiff-5.dll
    C:\cygwin\bin\cygjbig-2.dll
    C:\cygwin\bin\cygfreetype-6.dll
    C:\cygwin\bin\cygbz2-1.dll
    C:\cygwin\bin\cygspiro-0.dll
    C:\cygwin\bin\cyguninameslist-0.dll
    C:\cygwin\bin\cyggdraw-4.dll
    C:\cygwin\bin\cygfontconfig-1.dll
    C:\cygwin\bin\cygexpat-1.dll
    C:\cygwin\bin\cygXft-2.dll
    C:\cygwin\bin\cygXrender-1.dll
    C:\windows\system32\ADVAPI32.DLL
    C:\windows\system32\msvcrt.dll
    C:\windows\system32\API-MS-Win-Core-Console-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-DateTime-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Core-Interlocked-L1-1-0.dll
    C:\windows\system32\API-MS-WIN-Service-Core-L1-1-0.dll
    C:\windows\system32\API-MS-WIN-Service-winsvc-L1-1-0.dll
    C:\windows\system32\API-MS-WIN-Service-Management-L1-1-0.dll
    C:\windows\system32\API-MS-WIN-Service-Management-L2-1-0.dll
    C:\windows\system32\API-MS-Win-Core-LocalRegistry-L1-1-0.dll
    C:\windows\system32\RPCRT4.dll
    C:\windows\system32\SspiCli.dll
    C:\windows\system32\CRYPTBASE.dll
    C:\windows\system32\API-MS-Win-Core-DelayLoad-L1-1-0.dll
    C:\windows\system32\API-MS-Win-Security-LSALookup-L1-1-0.dll
    cygcheck: track_down: could not find cygxml2-2.dll

    cygcheck: track_down: could not find libpython2.6.dll

    cygcheck: track_down: could not find cygcairo-2.dll

    cygcheck: track_down: could not find cygpango-1.0-0.dll

    cygcheck: track_down: could not find cygpangocairo-1.0-0.dll

    cygcheck: track_down: could not find cygpangoxft-1.0-0.dll

    cygcheck: track_down: could not find cygXi-6.dll

    cygcheck: track_down: could not find libpython2.6.dll

  • 40 zoltan // May 12, 2012 at 1:50 pm

    @Shanna: Thanks for your feedback. It seems that fontforge may have been updated since I wrote this post and requires a few more things to be installed through cygwin. If you look at the original post, go to step 13 in the “Install Cygwin” section and try finding the dependencies you have listed in your cygcheck dump. After doing this, it should fix the problem. I am going to look at this later today and tomorrow to see if I see the same thing. Thanks for pointing this out, and if you could keep me updated if you find out anything before I do, I’d really appreciate it.

  • 41 zoltan // May 12, 2012 at 4:47 pm

    @Shanna: I have been able to replicate the problem and have updated the article above. The new version of FontForge does require the following libraries in order to run:

    libcairo2, libXi6, and libXi-devel in the X11 category
    libxml2 and libpango1.0_0 in the Gnome category

    You must add these libraries by rerunning the steps in “Step1: Installing Cygwin” above. When you get to step 13, make sure you are using a mirror other than ftp://ftp.cygwinports.org/pub/cygwinports. Then when you get to step 15, and add the libraries I listed above. Continue all the rest of the steps (up to 19) and then try running FontForge. You shouldn’t get the Bad Address error any more. Please let me know if this does or doesn’t help you. And thanks again for your feedback, which is helping me ensure that this document is kept up-to-date.

  • 42 zoltan // May 12, 2012 at 5:48 pm

    @rcs: Please read my reply to Shanna. It fixes the “Bad Address” issue. As for the Warning when using startxwin, I don’t think it is an issue that will prevent you from using FontForge, but please let me know if you see otherwise. Good luck!

  • 43 RyFly // May 18, 2012 at 10:57 pm

    Awesome walk-through!

  • 44 Sam // Jun 25, 2012 at 5:20 am

    Hi, thanks for the great walkthrough, it really helps. I’ve followed everything to the letter (99% sure anyway) and Font Forge still won’t run – get “bash: /usr/bin/fontforge: bad address”

    when I cygcheck fontforge everything passes except I get this error:
    “cygcheck: track_down: could not find libpython2.6.dll”

    I re-ran Cygwin setup and added the python (version 2.6.7-1) package from the interpreter category and it seems to have done the trick.

    Just thought I would post in case others have a similar problem.

  • 45 Susan // Jun 30, 2012 at 3:00 pm

    Hi,

    Just yesterday I gave up on trying to install fontforge on a vista machine through cygwin. I’ve been creating fonts on Corel Draw X5, but have had issues with crashing every time I try to export characters into a TTF file. I decided to try a dedicated font creation program and was drawn to fontforge because it has the best reviews next to fontlab, but without the $650 pricetag. The instructions you gave are great, but I also encountered:

    This after starting xwin

    $ Warning: Missing charsets in String to FontSet conversion

    And this when trying to start fontforge

    & -bash: /usr/bin/fontforge: Bad Address

    After running cygcheck I got a similar dialogue to the one above, but it ended with:

    cygcheck: track_down: could not find cyggutils-1.dll

    cygcheck: track_down: could not find cyggutils-1.dll

    cygcheck: track_down: could not find cyggutils-1.dll

    For the life of me I cannot figure out what package this message is reffering to. I do know that google seems to detest it as a search item (it keeps trying to correct me). Any help figuring out what package I need to install would be great.

    I’m also very curious to know more about the mingw version of fontforge, and for any updates you might have to offer concerning the cygwin version available on the same site. On another blog, a user who also runs on vista said the mingw version was easy to install and use, but that it crashes every time he tries to create a ttf file. Have you encountered anything like this? I’d really like to try again soon so that I can add custom fonts to my design packages.

    Thanks again for all the help you’ve provided.

  • 46 zoltan // Jul 2, 2012 at 9:20 am

    @Susan: If you go through “Step 2: Install FontForge)” again, make sure you select cygutils when selecting your packages. This should fix the problem. It should have selected this when you installed fontforge. :-/

  • 47 DarkBorn // Jul 4, 2012 at 6:12 pm

    Just THANKS!

  • 48 Susan // Jul 5, 2012 at 1:28 pm

    Thanks so much :)

  • 49 Anne // Oct 27, 2012 at 8:45 am

    It doesn’t give me the libxml2 package in the Gnome category. It does give me that one to select in the Libs category. Is this the same?

  • 50 Anakin // Nov 30, 2012 at 11:47 pm

    Oh, and I found libxml2 in Libs category instead of Graphics.

Give Feedback

Don't be shy! Give feedback and join the discussion.

Please Note: If you are asking for help using the information on this page or if you are reporting a bug with the code featured here, please include a URL that shows the problem you are experiencing along with the browser/version number/operating system combination where the issue manifests itself. Without this information, I may not be able to respond.

An orange star denotes a required field.