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