Attempts to compile skencil in SUSE Linux 11.0 on x86_64
Although SUSE Linux installs a Skencil, it does not run. Development of skencil appears to have been abandoned. This leaves Linux without a good drawing program. (Dia is close, but is missing many essential features. Xfig and tgif are still primitive. Latex works, but is extremely awkward to use.)
Download and install python 2.5.2 Warning: do not do this if you have python installed already. You should never have two different versions of python installed simultaneously. You could trash your SUSE system if you try to remove python, as yast2 depends on it. ./configure make su make install Download and install Python Imaging Library 1.1.6 python setup.py build_ext -i python selftest.py su python setup.py install Copy the include files from /usr/include to /usr/local/include so skencil can find them. cd /usr/local/include/Python2.5 cp /usr/include/python2.5/* . mkdir Numeric pygame cp /usr/include/python2.5/Numeric ./Numeric cp /usr/include/python2.5/Numeric/* ./Numeric/ cp /usr/include/python2.5/pygame/* ./pygame/ Edit the skencil installation script, setup.py: Change Line 258 from for version in ["8.4", "8.3", "8.2", "8.1", "8.0"]: to for version in ["8.5", "8.4", "8.3", "8.2", "8.1", "8.0"]: Apply patch in Pax/fontobject.c as described at: http://wald.intevation.org/plugins/scmsvn/viewcvs.php/skenc\ il/branches/skencil-0.6/Pax/fontobject.c?root=skencil&re\ v=694&r1=686&r2=694 Change return PyInt_FromLong(*(long *)((char *)(self->font_struct) + p->offset)); to return PyInt_FromLong(*(int *)((char *)(self->font_struct) + p->offset)); Compile skencil ./setup.py configure export BLDSHARED='gcc -shared' emerge skencil ./setup.py build su ./setup.py install It compiles successfully, but segfaults: ImportError: /usr/local/lib/skencil-0.6.17/Sketch/../Lib/paxtkinter.so: undefined symbol: PyFPE_jbuf Segmentation fault or if run from current directory: ImportError: /home/tjnelson/sketch/skencil-0.6.17/Sketch/../Pax/paxtkinter.so: undefined symbol: PyFPE_jbuf Segmentation fault ================================================================================= Installing sketch Configure ./setup.py configure looking for include dir for Imaging.h under /usr/local/include/python2.5 Imaging.h not found under /usr/local/include/python2.5 cd /home/tjnelson/python/Imaging-1.1.6/libImaging cp *.h /usr/local/include/python2.5 ./setup.py configure Edit setup.py Change line 253 from for version in ["8.3", "8.2", "8.1", "8.0"]: to for version in ["8.5", "8.4", "8.3", "8.2", "8.1", "8.0"]: Now it will say OSError: [Errno 2] No such file or directory: '/usr/include/tk8.5' Create the directories it is looking for cd /usr/include mkdir tk8.5 cp tk* tk8.5 mkdir tcl8.5 cp tcl* tcl8.5 ./setup.py configure export BLDSHARED='gcc -shared' emerge sketch ./setup.py build This produces compilation errors because of a deficiency in the script: gcc -pthread -fPIC -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes \ -I/usr/local/include/python2.5 -I/usr/local/include/python2.5 @DEFS@ \ -I/usr/include/tk8.5 -I/usr/include/tcl8.5 -I/usr/X11/include \ -c ././gcobject.c -o ./gcobject.o gcc: @DEFS@: No such file or directory To fix this, edit the makefiles cd Pax edit Makefile change line 101 from CFLAGS= $(OPT) -I$(INCLUDEPY) -I$(EXECINCLUDEPY) $(DEFS) to CFLAGS= $(OPT) -I$(INCLUDEPY) -I$(EXECINCLUDEPY) $(DEFS) make same change in line 100 in Filter/Makefile make same change in line 100 in Sketch/Modules/Makefile ./setup.py build Install su ./setup.py install Running sketch produces an error. sketch TypeError: function takes at most 4 arguments (8 given) *** glibc detected *** python: free(): invalid pointer: 0x00007f0d8ed91198 *** It prints several pages of error messages, then crashes ============================================================= sk1 is a replacement for skencil python setup.py install sk1 Cann't find Python binding for LittleCMS! install littlecms configure make make install goto opensuse.org and install python-lcms 1.17 repeat python setup.py config still same error http://download.opensuse.org/repositories/home:/sbrabec:/backports/openSUSE_11.0/repodata/repoview/python-lcms-0-1.17-44.1.html python-lcms-1.17-44.1.x86_64.rpm rpm -i error: failed to stat /home/tjnelson/.gvfs: Permission denied package python-lcms-1.17-44.1 is already installed nitrogen:/home/tjnelson# killall gvfsd nitrogen:/home/tjnelson# killall gvfsd-trash killall gvfsd-burn rpm -e python-lcms-1.17-44.1.x86_64 rpm -i -f python-lcms-1.17-44.1.x86_64.rpm same error rebuild lcms same error edit ./local/lib/python2.5/site-packages/sk1/app/managers/colormanager.py copy /usr/lib64/python2.5/site-packages/lcms.py /usr/local/lib/python2.5/site-packages no effect cd /usr/src/packages/SOURCE tar -xzvf tar -xzvf lcms-1.16.tar.gz patch File to patch: lcms-1.16/configure.ac patching file lcms-1.16/configure.ac cd lcms-1.16 configure make make install no effect nitrogen:/home/tjnelson/sketch/lcms-1.17$ cp /usr/src/packages/SOURCES/lcms-1.16-python-lib64.patch . patch< lcms-1.16-python-lib64.patch configure make make install no effect nitrogen:/usr/local/lib/python2.5# cp /usr/lib64/python2.5/site-packages/_lcms.so . no effect python import sys sys.path import lcms edit /usr/local/lib/python2.5/lcms.py, remove offending lines no effect