Linux Setup Notes

name and address
created aug 9, 2008

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

Back