Getting sawfish to compile under cygwin
CAVEAT: This is a hurridly written and poorly constructed document. I will try to edit it into a more useable form later. I can't tell you what underlying cygwin modules are required, except to say that I have a full developer install with importantly:
- all the gdbm database modules installed.
- pkgconfig
- pango-devel
Sawfish relies on a number of other projects, which take varying efforts to install.
1/ Imlib image library
Download the latest Imlib bundle from http://sourceforge.net/projects/cygwin-ports/ and untar it with tar zxf (or tar jxf if it's a bzip file)
You will end up with the original source tar file and a bunch of patch related files. Simply running ./imlib-1.9.14-1.sh all will unpack, patch, compile and install imlib for you.
It will also delete the build directory when it's done, so if you want to go through the build process yourself it will take more steps, starting with ./imlib-1.9.14-1.sh mkdirs; ./imlib-1.9.14-1.sh prep. The rest is left to the reader ;)
NOTHING I tried could make it compile.
It turns out, you can make the gnome 1.4 binary versions work from cygnome.
Run the cygwin installer as per normal, but set your mirror to http://cygnome.sourceforge.net - you will find a whole load of GNOME-* categories. From memory the auto dependancies don't select everything you need, but be careful not to click things you don't need as you may end up un-installing some newer versions from the current cygwin installation.
In fact I reccomend making a backup of your entire cygwin directory - I broke mine once and was glad to have a backup.
Now you're installed, you need to setup your PATH to include /opt/gnome/bin and your library path to include /opt/gnome/lib.
I added these two lines to my /usr/X11R6/bin/startxwin.sh file:
export PATH=/usr/X11R6/bin:"$PATH":/opt/gnome/bin
export LD_LIBRARY_PATH="/usr/lib:/usr/X11/lib: :/usr/local/lib:/opt/gnome/lib"
and put a (sawfish &) at the end.
Note that for some reason, sawfish doesn't decorate any already running windows, so I don't start any apps from the startxwin.sh - instead I start them from my .sawfishrc file eg:
(system "xsetroot -solid lightblue") (system "xterm -e bash &") (system "xload &")
The makefile won't compile pager (no surprise) - I used this commandline to produce pager.exe within the aforementioned sawfish1.2-gtk1 environment:
gcc -DUSE_SAWFISH_LIBCLIENT -DFRAMEOVER -I/opt/gnome/include/gtk-1.2 -I/opt/gnome/include/glib-1.2 -I/opt/gnome/lib/glib/include -I/usr/X11R6/include -L/opt/gnome/libexec/rep/i686-pc-cygwin/sawfish -L/opt/gnome/bin -L/usr/X11R6/lib -lgtk -lgdk -lgmodule -lglib -lintl -lXext -lX11 pager.c /opt/gnome/libexec/rep/i686-pc-cygwin/sawfish/client.dll -o pager
You will also need to add /opt/gnome/libexec/rep/i686-pc-cygwin/sawfish/ to your PATH so the dll loader can find it.
do a make private-install to copy and compile the lisp files. It will fail to copy pager.exe, so just cp pager.exe ~/.sawfish yourself.
If you have no pager, and executing ~/.sawfish/pager.exe by hand yields:
error: can't connect to socket
/tmp/.sawfish-MYUser/AA053174.pc.domain.com%0.0
or similar, just delete the socket file it found and restart sawfish. Actually, you need to delete the whole /tmp/.sawfish-MYUser directory, otherwise the next time sawfish starts it won't create a socket file. And then all sorts of wierdness ensues.
Sweet.
Forgot: You also need to let cygwin find client.dll by adding /opt/gnome/libexec/rep/i686-pc-cygwin/sawfish/ to your PATH.
02:26 PM, 01 Oct 2004 by Mark Aufflick Permalink | Short Link







