[Skencil-devel] Skencil build issues in modern environment

Adam Williamson awilliamson at mandriva.com
Thu May 3 10:42:02 CEST 2007

On Thu, 2007-03-05 at 10:30 +0200, Bernhard Reiter wrote:
> Hi Adam,
> thanks for the good write up and for fixing Skencil for Mandriva!
> On Thursday 03 May 2007 02:57, Adam Williamson wrote:
> > Note that I haven't yet tested the x86-64 build, not having an x86-64
> > machine handy to test on (I build via ssh on our build cluster's x86-64
> > machine, but I can't run X apps on it). I have tested the i586 build on
> > Mandriva 2007 and it appears to work OK.
> There has been a patch fixing a 64bit problem two days ago:
> http://wald.intevation.org/plugins/scmsvn/viewcvs.php/skencil/branches/skencil-0.6/Pax/fontobject.c?root=skencil&rev=694&r1=686&r2=694

Yes, that's in my package (it's SVN rev 695).

> > Hope this is interesting to all. If anyone wants to help on the Tcl/Tk
> > 8.5 / font issue, that would be greatly welcomed :)
> Yes, this is all very interesting!
> We need to incoporate your changes in the Skencil codebase 
> (and help with this is appreciated).

I'm not qualified for that, I'm not a coder at all :) I just try to make
the stuff build.

> What problems do remain for you after your changes?

No functional problems I know of. Just the thing about installing
to /usr/lib/skencil : it doesn't seem right.

I forgot to mention some other things in my mail...we have the following
two workarounds in the spec, too, they pre-date my changes:


# (fg) Install program is shitty to say the least, we have to substitute
# occurences of RPM_BUILD_{ROOT,DIR} to void :(
# Geoff says that the following is too disgusting to watch and harmful
# for your health.

set +x

  for i in `find -type f`; do
    perl -pi -e "s|$RPM_BUILD_ROOT||" $i;
    perl -pi -e "s|$RPM_BUILD_DIR||" $i;
set -x


# Now correct all the bugs the install script introduces:
%if %svn
cp Sketch/Modules/*so $RPM_BUILD_ROOT
cp Filter/*so Pax/*so $RPM_BUILD_ROOT
cp Sketch/Modules/*so $RPM_BUILD_ROOT
cp Filter/*so Pax/*so $RPM_BUILD_ROOT%{_libdir}/%{name}-%{version}/Lib/


I've verified both are actually still needed. Without the first, the
compiled files contain explicit references to our RPM build directory,
so obviously don't work. I really don't know what the hell the second
one is for, but without it, the build doesn't succeed on x86-64, with a
rather cryptic error.

Aside from this, another problem is that Skencil includes no icon and
no .desktop file. I took skencil-logo.png from the Fedora package (no
idea where they got it) to use as an icon, and I have these lines in the
spec to install freedesktop.org icon theme spec compliant icons:

mkdir -p %buildroot%{_iconsdir}/hicolor/{48x48,32x32,16x16}/apps
convert -scale 48x48 %SOURCE1 %buildroot%_iconsdir/hicolor/48x48/apps/%{name}.png
convert -scale 32x32 %SOURCE1 %buildroot%_iconsdir/hicolor/32x32/apps/%{name}.png
convert -scale 16x16 %SOURCE1 %buildroot%_iconsdir/hicolor/16x16/apps/%{name}.png

I have these lines to create a .desktop file:

mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
cat > $RPM_BUILD_ROOT%{_datadir}/applications/mandriva-%{name}.desktop << EOF
[Desktop Entry]
Comment=Drawing tool
Exec=%{_bindir}/%{name} %f

The X-MandrivaLinux-Multimedia-Graphics category is Mandriva-specific,
the rest should be generic.

More information about the Skencil-devel mailing list