Help - Search - Members - Calendar
Full Version: Inkscape
OESF Forums > Distros, Development, and Model Specific Forums > Distro Support and Discussion > pdaXrom
Pages: 1, 2
Armagon
Update: Feb 27, 2006

I've got inkscape compiled and packaged up. See post 18

-------------------------------------------------------------------------

Greetings.

I thought inkscape ( http://www.inkscape.org/ ) would be great to run on the Z. I even tried version 0.38 under OZ/GPE. Unfortunately, 1) I didn't like GPE as much as pdaXrom, 2) the toolbars don't all fit on the screen on my C1000, 3) it was slow, and 4) it didn't have the latest and greatest features.

I thought I could resolve the issues by 1) (cross-)compiling for pdaXrom, 2) resizing the toolbar icon art, 3) hoping the floating-point emulation would help, and look into reducing the rendering quality, and 4) by compiling version 0.43.

Despite being a C++ programmer, I'm new to building (and especially cross-compiling) under linux [and I'd really like to thank the person who put up cross-compiler how-to at http://mail.pdaxrom.org/contrib/docs/cross-compiler.html ].

I downloaded the tarball source packages that inkscape said it needed [see http://wiki.inkscape.org/wiki/index.php/CompilingInkscape ] and built Boehm-GC and libSigc++. I had problems with GlibMM (and haven't tried GtkMM yet). They seem to be relying on the PKG_CONFIG_PATH environment variable, which I thought I set appropriately...

What is worse, though, is the other dependancies:

QUOTE
configure: error: Package requirements (sigc++-2.0 >= 2.0.0 glib-2.0 >= 2.8.0 gobject-2.0 >= 2.8.0 gmodule-2.0 >= 2.8.0) were not met.


It appears to me, by looking at this list of everything available at the pdaXrom site ( http://mail.pdaxrom.org/contrib/list.txt ), that glib is at version 1.2, and that gobject, and gmodule are currently unavailable.

So, am I just better off forgetting about trying to compile inkscape? I get the impression that a whole bunch of gnome libraries need to be compiles, and balk at the thought.

Or, is there some miraculous developer out there to whom these tasks do not seem insurmountable? Or is it not as bad as it seems to me?

Thanks for your insights,
Armagon
desertrat
QUOTE(Armagon @ Feb 17 2006, 10:59 PM)
I thought inkscape ( http://www.inkscape.org/ ) would be great to run on the Z.  I even tried version 0.38 under OZ/GPE.  Unfortunately, 1) I didn't like GPE as much as pdaXrom, 2) the toolbars don't all fit on the screen on my C1000, 3) it was slow, and 4) it didn't have the latest and greatest features.

You can try running the Debian version. I did once and found it too slow, plus it and its dependencies used at least 57MB, so I uninstalled it smile.gif

-- cheers
pgas
note that the list on the contrib site list only the contributed packages
here:
http://mail.pdaxrom.org/1.1.0beta1/Zaurus-7x0-860/feed/
you'll find:
glib2_2.8.1-1_armv5tel.ipk
Armagon
QUOTE(desertrat @ Feb 17 2006, 03:38 PM)
QUOTE(Armagon @ Feb 17 2006, 10:59 PM)
I thought inkscape ( http://www.inkscape.org/ ) would be great to run on the Z.  I even tried version 0.38 under OZ/GPE.  Unfortunately, 1) I didn't like GPE as much as pdaXrom, 2) the toolbars don't all fit on the screen on my C1000, 3) it was slow, and 4) it didn't have the latest and greatest features.

You can try running the Debian version. I did once and found it too slow, plus it and its dependencies used at least 57MB, so I uninstalled it smile.gif

-- cheers
*




Wow. That is a bit much.

How did you like Pocket Debian?
Armagon
QUOTE(pgas @ Feb 17 2006, 04:23 PM)
note that the list on the contrib site list only the contributed packages


Oh. Thanks for letting me know.

QUOTE(pgas @ Feb 17 2006, 04:23 PM)


Excellent.

I should add that I really don't have much time, and will only be working on this on and off, slowly ... (Sigh)
koen
If you are cross compiling you'll probably need this patch: http://dominion.kabel.utwente.nl/koen/pda/...ion-check.patch
That's all I needed to crosscompile it.
Armagon
QUOTE(koen @ Feb 20 2006, 11:03 AM)
If you are cross compiling you'll probably need this patch: http://dominion.kabel.utwente.nl/koen/pda/...ion-check.patch
That's all I needed to crosscompile it.
*


Thank you so much, koen, I really appreciate that.

I dare say that my hopes were high with the statement "that's all I needed to crosscompile it", and with a name of "no-boehm-version-check.patch" -- I thought that might be all that I'd need and I could miraculously avoid having to compile and link in a whole bunch of libraries. [Yes, I see now that I was wrong.]

I freshly extracted the inkscape-0.43 source, and applied the patch. Then I tried to configure it:

QUOTE
./configure --host=armv5tel-cacko-linux --build=i686-linux --prefix=$HOME/Zaurus/Cross/install


the configuration went along for a while, and terminated with:

QUOTE
configure: error: libgc (the Boehm Conservative Collector) 6.4+, is needed to compile inkscape -- http://www.hpl.hp.com/personal/Hans_Boehm/gc


Ah. Thus I see the need for the patch. I tried applying the patch again, but patch asked me what on earth I was thinking -- the file was already patched.

I tried with a slightly different command line, as the dependancies I have built are in $HOME/Zaurus/Cross/install:

QUOTE
CPPFLAGS=-I$HOME/Zaurus/Cross/install/include LDFLAGS=-L$HOME/Zaurus/Cross/install/lib ./configure --host=armv5tel-cacko-linux --build=i686-linux --prefix=$HOME/Zaurus/Cross/install



This time I got a little bit further, with:

QUOTE
checking gc.h usability... yes
checking gc.h presence... yes
checking for gc.h... yes
checking for GC_init in -lgc... no
checking for GC_malloc in -lgc... yes
checking libgc version 6.4+... configure: error: cannot run test program while cross compiling
See `config.log' for more details.


I looked at the config.log, especially near the end, and I couldn't make out anything there that had to do with the error, aside from the actual error message on line 1045. [I have attached the file to this post.]

I 'kompare'd the patched configure.ac to a pristine copy, and the patch looks good to me (although this is the first time I've ever looked at an autoconfiguration file.)

Any thoughts?

Thank you,
Armagon
pgas
the configure.ac is used to generate the configure script.
So you probably need to either recreate the configure script
or patch directly the configure script that comes with the sources.

http://www.gnu.org/software/autoconf/manua...f_13.html#SEC13
Armagon
QUOTE(pgas @ Feb 21 2006, 10:47 PM)
the configure.ac is used to generate the configure script.
So you probably need to either recreate the configure script
or patch directly the configure script that comes with the sources.

http://www.gnu.org/software/autoconf/manua...f_13.html#SEC13
*


Oh. Thanks pgas. It hadn't occured to me that I'd need to recreate the configure script. [Talk about getting a crash-course in cross-compiling -- ./configure doesn't automagically recreate itself. Hmm... Of course not -- I am a programmer -- I really should've known better.]

I tried:

QUOTE
autoconf


and got:

QUOTE
autom4te: need GNU m4 1.4 or later: /opt/native/i686/3.4.5-2.2.5/bin/m4


performing "which" on autoconf, autom4te, and m4, I got:

QUOTE
/opt/cross/arm/3.4.5-xscale-softvfp/bin/autoconf
/opt/cross/arm/3.4.5-xscale-softvfp/bin/autom4te
/usr/bin/m4


I was all set to upgrade my version of m4, but saw that the error occured while looking for an m4 in the native sdk (in /opt/native/i686/3.4.5-2.2.5/bin/m4), while I am using the cross-sdk.

Is there any way I can fix this, or should I just go on to pgas' next suggestion, and try patching the configure file itself?

Oh, and BTW, how do you do a meaningful forum search for 'm4'? I got a whole bunch of hits that didn't look useful (and only one hit came up for 'autom4te').

Thanks,
Armagon
desertrat
QUOTE(Armagon @ Feb 22 2006, 08:45 PM)
I was all set to upgrade my version of m4, but saw that the error occured while looking for an m4 in the native sdk (in /opt/native/i686/3.4.5-2.2.5/bin/m4), while I am using the cross-sdk.

Is there any way I can fix this, or should I just go on to pgas' next suggestion, and try patching the configure file itself?

Strange, see my bug report and quick fix here:

http://www.pdaxrom.org/buglist.php?doactio...owbug&bugid=352

-- cheers
Armagon
QUOTE(desertrat @ Feb 22 2006, 03:59 PM)
Strange, see my bug report and quick fix here:

http://www.pdaxrom.org/buglist.php?doactio...owbug&bugid=352

-- cheers
*



Thank you, desertrat:

QUOTE
M4=`which m4` autoconf


worked like a charm.

Ah. And now, I just need to compile a whole bunch of dependancies:

QUOTE
configure: error: Package requirements (gdkmm-2.4  glibmm-2.4  gtkmm-2.4  gtk+-2.0 >= 2.4.0  libxml-2.0 >= 2.6.0  libxslt >= 1.0.15  sigc++-2.0 >= 2.0.3    gthread-2.0 >= 2.0) were not


Well, maybe "just" isn't quite the right word. No wonder it took 57 MB for dependancies under pocket debian ...

Thank you so much -- I am certainly getting closer.
Amagon
Armagon
Way back in my first post, I said:

QUOTE(Armagon @ Feb 17 2006, 02:59 PM)
They seem to be relying on the PKG_CONFIG_PATH environment variable, which I thought I set appropriately...
*

Boy, was I wrong.

So, for anyone else new to cross-compiling:

QUOTE
pkg-config is a helper tool used when compiling applications and libraries. It helps you insert the correct compiler options on the command line so an application can use  gcc -o test test.c `pkg-config --libs --cflags glib-2.0`  for instance, rather than hard-coding values on where to find glib (or other libraries).


pkg-config does a lot of tedious work for you, to make it easier to compile something that uses libraries. It uses .pc files, which (somehow) tell it where to find things. However, you must tell it where to find the .pc files. The PKG_CONFIG_PATH environment variable specifies this. When you execute runsdk.sh, the smart people behind pdaXrom make it set that path to find all the libraries in the SDK.

If you compile some of your own libraries to link to, you need to add them to the path! In my case, I'm installing cross-compiled modules into ~/Zaurus/Cross/install. So, I need to do this after starting the sdk, if I want to configure or make anything that uses libraries I've compiled:

CODE
export PKG_CONFIG_PATH=~/Zaurus/Cross/install/lib/pkgconfig:$PKG_CONFIG_PATH



And lo! it works! I'm able to compile and link with libraries!

Armagon
koen
QUOTE(Armagon @ Feb 25 2006, 07:24 PM)
CODE
export PKG_CONFIG_PATH=~/Zaurus/Cross/install/lib/pkgconfig:$PKG_CONFIG_PATH



And lo! it works!  I'm able to compile and link with libraries!
*


You might want to leave out the $PKG_CONFIG_PATH at the end, because that usually points to the .pc files for the host (e.g. x86 stuff).
Armagon
QUOTE(koen @ Feb 25 2006, 11:13 PM)
You might want to leave out the $PKG_CONFIG_PATH at the end, because that usually points to the .pc files for the host (e.g. x86 stuff).
*


That would definitely mess things up!

I just double checked, and get these results:

QUOTE
$ echo $PKG_CONFIG_PATH

$ /opt/cross/arm/3.4.5-xscale-softvfp/runsdk.sh
Type exit for leave armv5tel-cacko-linux cross environment.
$ echo $PKG_CONFIG_PATH
/opt/cross/arm/3.4.5-xscale-softvfp/armv5tel-cacko-linux/lib/pkgconfig


Fortunately, on my machine, it did not include any paths to x86 libraries. Presuming that that is the case for everybody, I believe it is important to append the original path, so that the SDK's libraries can be linked.

Thanks,
Armagon

Edit: I just did one more test where I changed the PKG_CONFIG_PATH before running the SDK. After initializing the SDK, the path contained the SDK's library path, and nothing else.
macwiz
Er... for those of us who are non-techies and would just like to draw with this application, is there any way you could build an ipk? It would be a really good app to have running on the Z.

I'd be asking for Scribus next, of course!

Thanks
Armagon
QUOTE(macwiz @ Feb 26 2006, 08:36 AM)
Er... for those of us who are non-techies and would just like to draw with this application, is there any way you could build an ipk? It would be a really good app to have running on the Z.

I'd be asking for Scribus next, of course!

Thanks
*


I've been working on it, really! Indeed, I posted this thread so that I could compile it, with the full intention of posting an .ipk when I'm done.

I have got everything (seemingly) compiled, and am working on creating the .ipk. Then I'll need to test it, and if it works (and is less than the 5 MB posting limit), I'll post it here.

Armagon
macwiz
Super. Hope it goes well!
Armagon
DRUM ROLL PLEASE:

For your computing enjoyment, I give you: inkscape!

I have finally got it compiled and packaged up. It should work on all the Zaurus models except the 5x00s.

There are two packages:
  • inkscape_0.43-Z1_armv5tel.ipk - the actual program
  • inkscape-data_0.43_armv5tel.ipk - tutorials and example files (see more about it, below)
Note: When I uploaded the files, the dashes were changed to underscores. I don't know if that matters.

PERFORMACE:

I'm afraid inkscape really wants a more powerful machine than my C1000. Not to scare you off, but:
  • the window is larger than the screen, and can't be resized [thank goodness for alt-dragging!]
  • it takes 30 seconds to start up
  • if I try to load a tutorial file (from the data package), it uses up all my RAM and terminates.
  • it really eats up the CPU! It'll often be running at 100%, and it still seems unresponsive
On the plus side:
  • it sure looks nice
  • it will save and load files
  • the calligraphy tool is great with a touch screen!
Note: I decided it didn't serve much point to have the data files if you couldn't load them, which is why I put them in a separate .ipk.

For best performance, I found (and I can't believe I'm recommending this) that it works better if you overclock your machine. [20 seconds to load instead of 30!] Also, I expect that if you had a swap partition that it would work better for you.


DEPENDANCIES:

I believe I entered the dependancies into the .ipk correctly. But, if you are like me, and don't have automatic dependancies working, the following may be useful (note that all version numbers are from the 1.1.0beta1 feeds. I have no idea if it'll work with earlier versions.):

You most likely need to install the following:
  • libxslt_1.1.0_armv5tel.ipk
  • gnome-vfs_2.10.0_armv5tel.ipk
  • gconf_2.10.0-1_armv5tel.ipk
  • libbonobo_2.8.1_armv5tel.ipk
  • orbit2_2.10.2_armv5tel.ipk
You probably don't need to install these dependancies, as I believe they come with the standard pdaXrom install.
  • gtk2_2.6.2_armv5tel.ipk
  • atk_1.10.1_armv5tel.ipk
  • pango_1.10.0_armv5tel.ipk
  • libstdcxx_5.0.5_armv5tel.ipk
  • libxml2_2.6.13-1_armv5tel.ipk
  • libpng_1.2.5_armv5tel.ipk
  • popt_1.7_armv5tel.ipk
  • glib2_2.8.1-1_armv5tel.ipk
  • xfree_4.4.0_armv5tel.ipk
  • fontconfig_2.2.96_armv5tel.ipk
  • libiconv_1.9.2_armv5tel.ipk
  • freetype_2.1.9_armv5tel.ipk
  • libz_2.3_armv5tel.ipk
  • glibc_2.2.5_armv5tel.ipk
  • libgcc_1_armv5tel.ipk
  • expat_1.95.8_armv5tel.ipk
WHAT'S NEXT?

Well, I'd like to hear how well it works for you. If you'd like to mirror the files, go right ahead. I hope to look at the code and see if I can make it work better for the Z, but I'm not giving any guarantees that it can be made to work better.

Oh, and I hope to post some more build notes, for anyone who is interested.

Armagon
Armagon
BUILD NOTES

Here are some more technical notes on how I compiled inkscape. I'm posting them so they can be a reference for other people compiling this, or something similar, and so that more knowledgeable people can tell me how to do it better. Many of the issues discussed in this thread are included in the notes (although without any detail as to the "why" they are done.)


TARGET DIRECTORY

I installed the libraries and application into ~/Zaurus/Cross/install, by using the --prefix=$HOME/Zaurus/Cross/install when I configured the compilations. Anything using a previously compiled library needs to know where it is. After initializing the SDK, execute this in the shell:

CODE
export PKG_CONFIG_PATH=~/Zaurus/Cross/install/lib/pkgconfig:$PKG_CONFIG_PATH


BUILDING THE LIBRARIES

In the end, I only did need to build the libraries mentioned in http://wiki.inkscape.org/wiki/index.php/CompilingInkscape :
  • Boehm-GC
  • libSigc++
  • GlibMM
  • GtkMM
The wiki page links to the source code, and recommends building the files as static libraries, which I did. [At some future date, I may try building them as dynamic libraries.]

My standard config line was:

CODE
CPPFLAGS=-I$HOME/Zaurus/Cross/install/include LDFLAGS=-L$HOME/Zaurus/Cross/install/lib ./configure --host=armv5tel-cacko-linux --build=i686-linux --prefix=$HOME/Zaurus/Cross/install --enable-static --disable-shared


followed by a "make" and "make install"

The order of building was also important, as later libraries depended upon the former.


GtkMM caused me a little bit of trouble. I grabbed the latest version (2.8.3), which required GTK+ >= 2.8.0. Inkscape itself only requires GTK+-2.0 >= 2.4.0. pdaXrom 1.1.0beta1 provides GTK+ 2.6.2 (and I didn't feel it was worthwhile recompiling that!)

I downloaded an earlier version of GtkMM (2.4.11), and it didn't compile right. I then tried version 2.6.5, and it didn't compile right, either. I noticed, however, that it was in the examples folder that it was having trouble, and decided to "make install" it anyways. It worked. I presume some of the examples have greater dependancies than the library itself.


BUILDING INKSCAPE

To cross-compile inkscape, you first need to patch it -- as, in one of the configure steps, it tests that the Boehm-GC library works, by trying to build something with it and then run it -- which will not work when cross-compiling.

koen provided a patch. After applying the patch, you need to regenerate the configure script, by executing:

CODE
M4=`which m4` autoconf


Now you can configure it:

CODE
CPPFLAGS=-I$HOME/Zaurus/Cross/install/include LDFLAGS=-L$HOME/Zaurus/Cross/install/lib ./configure --host=armv5tel-cacko-linux --build=i686-linux --prefix=$HOME/Zaurus/Cross/install


This next step is a kludge. I'm sure there is a better way to do it, likely by specifying something in the configure command. If anyone knows how, please tell me!

Edit the config.h file. You need to change three paths.
INKSCAPE_DATADIR becomes "/usr/share"
INKSCAPE_LIBDIR becomes "/usr/lib"
PACKAGE_LOCALE_DIR becomes "/usr/share/locale"

Before editing, these paths were all in "~/Zaurus/Cross/install" instead of "/usr". Without making this change, assets such as the toolbar icons can not be found when you run the application.

Now, you need to "M4=`which m4` make" and then "make install"

And that's it. Not nearly as bad in retrospect as it was before I'd done it.

Finally, I'll have to admit I was amazed when I stripped the executable, and it went down in size from 52 MB to 7 MB!

Thanks for your help everyone,
Armagon
Armagon
I realized that I didn't invoke any compiler optimizations when I built this.

Doing just a little bit of searching, I came across a post about compiling advanced MAME for the Z.

He used this configure line:

CODE
./configure CFLAGS="-O3 -march=armv5te -mtune=xscale -fomit-frame-pointer" LDFLAGS="-s"


and asked for feedback. One response was:

QUOTE
if you compile it with gcc 3.3.4 and with -march=iwmmx it will run faster on C1000/C3x00.



I therefore tried this for inkscape:

CODE
CFLAGS="-O3 -march=iwmmx -mtune=xscale -fomit-frame-pointer" CPPFLAGS="-I$HOME/Zaurus/Cross/install/include" LDFLAGS="-L$HOME/Zaurus/Cross/install/lib -s" ./configure --host=armv5tel-cacko-linux --build=i686-linux --prefix=$HOME/Zaurus/Cross/install


and got an error that the c compiler cannot create executables.

I removed the -march flag, and it configured happily [and is slowly compiling right now.]

How do I enable the iwmmx optimizations? Oh, and there is an option I can pass to configure that will enable MMX optimisations. Would those be x86 specific, or would they provide a boost here?

I recognize that the iwmmx optimizations limits the executables to the C1000 and C3x00. Does the -mtune=xscale have a similar effect?

One last question. Does it help to recompile the libraries with these flags, or is it not worth the effort?

Thank you,
Armagon
Armagon
Curiously, this new "optimised" build seems to be a little bit slower, taking 35 seconds to load.
koen
QUOTE(Armagon @ Feb 28 2006, 06:04 AM)
I recognize that the iwmmx optimizations limits the executables to the C1000 and C3x00.  Does the -mtune=xscale have a similar effect?
*


-mtune=xscale would be ok, -mcpu=xscale not.

From http://gcc.gnu.org/onlinedocs/gcc-4.0.2/gc...M-Options.html:

QUOTE
-mtune=name
This option is very similar to the -mcpu= option, except that instead of specifying the actual target processor type, and hence restricting which instructions can be used, it specifies that GCC should tune the performance of the code as if the target were of the type specified in this option, but still choosing the instructions that it will generate based on the cpu specified by a -mcpu= option. For some ARM implementations better performance can be obtained by using this option.


You might also try using -Os, which does the same optimizations as -O2, but produces smaller binaries (= faster load time + more free ram)
john4
Great work!!!!!
iamasmith
May I suggest if you haven't tried it already... Dia is also a great tool to have on the Zaurus.. I have sodipodi for arty vector graphics and Dia for more serious diagrams.

-Andy
koen
QUOTE(iamasmith @ Mar 1 2006, 12:53 PM)
May I suggest if you haven't tried it already... Dia is also a great tool to have on the Zaurus.. I have sodipodi for arty vector graphics and Dia for more serious diagrams.

*


You do know that inkscape is the successor or sodipodi, right?
iamasmith
QUOTE(koen @ Mar 1 2006, 01:36 PM)
QUOTE(iamasmith @ Mar 1 2006, 12:53 PM)
May I suggest if you haven't tried it already... Dia is also a great tool to have on the Zaurus.. I have sodipodi for arty vector graphics and Dia for more serious diagrams.

*


You do know that inkscape is the successor or sodipodi, right?
*



Actually inkscape is a fork of sodipodi, sodipodi has undergone some work since inkscape, it's in the OpenBSD ports tree and does everything that I want... I'm not suggesting using sodipodi though. I'm just suggesting that Dia is better than both inkscape and sodipodi for certain types of diagram.

-Andy
koen
QUOTE(iamasmith @ Mar 1 2006, 04:32 PM)
QUOTE(koen @ Mar 1 2006, 01:36 PM)
QUOTE(iamasmith @ Mar 1 2006, 12:53 PM)
May I suggest if you haven't tried it already... Dia is also a great tool to have on the Zaurus.. I have sodipodi for arty vector graphics and Dia for more serious diagrams.

*


You do know that inkscape is the successor or sodipodi, right?
*



Actually inkscape is a fork of sodipodi, sodipodi has undergone some work since inkscape, it's in the OpenBSD ports tree and does everything that I want... I'm not suggesting using sodipodi though. I'm just suggesting that Dia is better than both inkscape and sodipodi for certain types of diagram.
*



I just added dia 0.95-pre3 to OE. It crosscompiled cleanly and didn't need to many deps:

QUOTE
Depends: dia-locale*, libxml2 (>= 2.6.22), libglib-2.0-0 (>= 2.8.4), libc6 (>= 2.3.5+cvs20050627), gtk+ (>= 2.8.9), libgcrypt11 (>= 1.2.2), libgpg-error0 (>= 1.0), libxext6 (>= 0.0+cvs20060301), libxcursor1 (>= 1.1.2), libxfixes0 (>= 2.0.1), libatk-1.0-0 (>= 1.10.1), pango (>= 1.10.2), libcairo2 (>= 1.0.2), libxrender1 (>= 0.8.4), libx11-6 (>= 6.2.1+cvs20060301), libxau0 (>= 0.1.1), libpng12-0 (>= 1.2.8), libfontconfig1 (>= 2.2.95), libexpat1 (>= 2.0.0), libfreetype6 (>= 2.1.10), libz1 (>= 1.2.3), libgcc1 (>= 4.0.2)


That's basically gtk+, expat and libxml2.

So it shouldn't be too hard to compile it for pdaX.
Armagon
I've been experimenting with different compilation flags. I've even made a shell script to automate the process -- if I stop tweaking it so much, I'll post it.

Unfortunately, none of them have seemed to have helped matters, and some of them have hindered things.

I had to try --host=iwmmx and --host=scale, and neither of those worked. It also seems like -mtune=iwmmx is a bad idea [I read about another app segfaulting, and had really strange behaviour -- but that may not be the source of my problems.]

I did try the --enable-mmx flag when configuring inkscape, and got errors like:

QUOTE
armv5tel-cacko-linux-gcc  -Wall -W -O3 -march=iwmmxt -mcpu=iwmmxt -fomit-frame-pointer -w -c -o libnr/have_mmx.o `test -f 'libnr/have_mmx.S' || echo './'`libnr/have_mmx.S
have_mmx.S: Assembler messages:
have_mmx.S:10: Error: alignment too large: 15 assumed
have_mmx.S:12: Error: unrecognized symbol type ""
have_mmx.S:15: Error: bad instruction `push %ebx'
have_mmx.S:19: Error: bad instruction `pushfl'
have_mmx.S:20: Error: bad instruction `popl %eax'
have_mmx.S:21: Error: bad instruction `movl %eax,%ebx'
have_mmx.S:22: Error: bad instruction `xorl $0x00200000,%eax'
have_mmx.S:23: Error: bad instruction `pushl %eax'
have_mmx.S:24: Error: bad instruction `popfl'
have_mmx.S:25: Error: bad instruction `pushfl'
have_mmx.S:26: Error: bad instruction `popl %eax'
have_mmx.S:28: Error: bad instruction `cmpl %eax,%ebx'
have_mmx.S:30: Error: bad instruction `je .notfound'
have_mmx.S:34: Error: bad instruction `movl $1,%eax'
have_mmx.S:35: Error: bad instruction `cpuid'
...


I guess they are using x86 assembly, with mmx instructions. As I understand it, the iwmmx extensions include the mmx ones ... but obviously the arm chip wont run x86 instructions.

And then the other thing I need to figure out is how to make it so they aren't fighting against my flags. It seems to me (and I need to do more research) that -Wall -W and -w don't mix, and nor do -g and -O.

Well, I'll keep plugging away at it.
Armagon
Armagon
Here is my script to help compile inkscape, build_inkscape.sh. I hope someone finds it useful. Please let me know if you encounter a bug.

[I ran out or hard drive space, and thought I had backed everything up, but I nearly missed this file! With a full hdd, and needing to update anyways, I'm upgrading my laptop from Mandrake 10.1 to kubuntu Breezy (5.10)]

Next, I need to look into how to profile an application under linux.

Armagon
desertrat
QUOTE(Armagon @ Feb 28 2006, 05:49 AM)
[*]libSigc++
[*]GlibMM
[*]GtkMM

GtkMM caused me a little bit of trouble.  I grabbed the latest version (2.8.3), which required GTK+ >= 2.8.0.  Inkscape itself only requires GTK+-2.0 >= 2.4.0.  pdaXrom 1.1.0beta1 provides GTK+ 2.6.2 (and I didn't feel it was worthwhile recompiling that!)

I downloaded an earlier version of GtkMM (2.4.11), and it didn't compile right.  I then tried version 2.6.5, and it didn't compile right, either.  I noticed, however, that it was in the examples folder that it was having trouble, and decided to "make install" it anyways.  It worked.  I presume some of the examples have greater dependancies than the library itself.


Any chance of making these available? I'm trying to compile

http://icculus.org/~jcspray/GNUDoku/GNUDoku-0.93.tar.gz

-- cheers
Armagon
QUOTE(desertrat @ Mar 16 2006, 02:20 AM)
QUOTE(Armagon @ Feb 28 2006, 05:49 AM)

[*]libSigc++
[*]GlibMM
[*]GtkMM
<snip>


Any chance of making these available? I'm trying to compile

http://icculus.org/~jcspray/GNUDoku/GNUDoku-0.93.tar.gz

-- cheers
*



I'd be happy to (especially since it appears that this last bout of overtime is finished at work).

Obviously I'll need to make .ipks with the release libraries in them.

What is the best way to make a dev package that works for both native and cross-compilation? I presume that it'd be an .ipk and you just have to do a little bit of extra work to extract it on your PC. (I do hope that the files are easily relocatable.)

Armagon
desertrat
QUOTE(Armagon @ Mar 16 2006, 03:26 PM)
Obviously I'll need to make .ipks with the release libraries in them. 

What is the best way to make a dev package that works for both native and cross-compilation?  I presume that it'd be an .ipk and you just have to do a little bit of extra work to extract it on your PC.  (I do hope that the files are easily relocatable.)

I only need the native stuff, as so far I do all my compilations on board. But regardless of what [standard] format you package them in I should be able to make use of it.

-- cheers
Armagon
The libraries used in building inkscape are now available at http://mail.pdaxrom.org/contrib/armagon/

These are:
  • glibmm2: C++ wrapper for GLib
  • gtkmm2: C++ wrapper for GTK+
  • libgc: Boehm-GC - A garbage collector for C and C++
  • libsigc++2: Typesafe signal and callback system for C++
The libraries come in normal and developer variants.

The rest of the post is for developers wink.gif

-----------

Most of the libraries use package config. I have edited the /usr/lib/pkgconfig/*.pc files, so that instead of using
CODE
prefix=/home/blackmore/Zaurus/Cross/install

they use
CODE
prefix=/usr

which should be appropriate for native development. If you are cross-compiling, you will need to edit the .pc files.

Please note that I haven't tested these files. I did a rudimentary check of the .so files, but I haven't tried developing with the -devel packages.

I believe I got the important dependancies down; at some level a library doesn't really have dependancies, but the applications that use it do.

Note that glibmm-devel may depend on perl and Perl::XMLParser. OTOH, that might just have been a requirement to compile it -- If someone can verify this, I'd appreciate it.

Please let me know if you have any problems with these libraries. I think they will work.

Armagon

PS. My goodness, but it was a fair bit of work to compile and package everything. How do Laze and Sash do it?
Armagon
QUOTE(koen @ Mar 1 2006, 08:47 AM)
QUOTE(iamasmith @ Mar 1 2006, 12:53 PM)
May I suggest if you haven't tried it already... Dia is also a great tool to have on the Zaurus.. I have sodipodi for arty vector graphics and Dia for more serious diagrams.

<snipped other quotes>

I just added dia 0.95-pre3 to OE. It crosscompiled cleanly and didn't need to many deps:

<snip>

So it shouldn't be too hard to compile it for pdaX.
*



Sorry that I never replied to this ... I've been rather busy. Anyways, I've just compiled dia 0.94 (and while I haven't tried running it yet, I think it built successfully). I haven't packaged it up yet. I'm not very familiar with CVS, but if someone would give me the command to get the 0.95-pre3 tree (as opposed to the latest, possibly unstable version), I'd be happy to try to compile it.

Armagon
cycle_55
QUOTE(Armagon @ Feb 27 2006, 01:17 PM)
DRUM ROLL PLEASE:

For your computing enjoyment, I give you: inkscape!

I have finally got it compiled and packaged up.  It should work on all the Zaurus models except the 5x00s.

There are two packages:
  • inkscape_0.43-Z1_armv5tel.ipk - the actual program
  • inkscape-data_0.43_armv5tel.ipk - tutorials and example files (see more about it, below)
Note: When I uploaded the files, the dashes were changed to underscores.  I don't know if that matters.

PERFORMACE:

I'm afraid inkscape really wants a more powerful machine than my C1000.  Not to scare you off, but:
  • the window is larger than the screen, and can't be resized [thank goodness for alt-dragging!]
  • it takes 30 seconds to start up
  • if I try to load a tutorial file (from the data package), it uses up all my RAM and terminates.
  • it really eats up the CPU!  It'll often be running at 100%, and it still seems unresponsive
On the plus side:
  • it sure looks nice
  • it will save and load files
  • the calligraphy tool is great with a touch screen!
Note: I decided it didn't serve much point to have the data files if you couldn't load them, which is why I put them in a separate .ipk.

For best performance, I found (and I can't believe I'm recommending this) that it works better if you overclock your machine.  [20 seconds to load instead of 30!]  Also, I expect that if you had a swap partition that it would work better for you.


DEPENDANCIES:

I believe I entered the dependancies into the .ipk correctly.  But, if you are like me, and don't have automatic dependancies working, the following may be useful (note that all version numbers are from the 1.1.0beta1 feeds.  I have no idea if it'll work with earlier versions.):

You most likely need to install the following:
  • libxslt_1.1.0_armv5tel.ipk
  • gnome-vfs_2.10.0_armv5tel.ipk
  • gconf_2.10.0-1_armv5tel.ipk
  • libbonobo_2.8.1_armv5tel.ipk
  • orbit2_2.10.2_armv5tel.ipk
You probably don't need to install these dependancies, as I believe they come with the standard pdaXrom install.
  • gtk2_2.6.2_armv5tel.ipk
  • atk_1.10.1_armv5tel.ipk
  • pango_1.10.0_armv5tel.ipk
  • libstdcxx_5.0.5_armv5tel.ipk
  • libxml2_2.6.13-1_armv5tel.ipk
  • libpng_1.2.5_armv5tel.ipk
  • popt_1.7_armv5tel.ipk
  • glib2_2.8.1-1_armv5tel.ipk
  • xfree_4.4.0_armv5tel.ipk
  • fontconfig_2.2.96_armv5tel.ipk
  • libiconv_1.9.2_armv5tel.ipk
  • freetype_2.1.9_armv5tel.ipk
  • libz_2.3_armv5tel.ipk
  • glibc_2.2.5_armv5tel.ipk
  • libgcc_1_armv5tel.ipk
  • expat_1.95.8_armv5tel.ipk
WHAT'S NEXT?

Well, I'd like to hear how well it works for you.  If you'd like to mirror the files, go right ahead.  I hope to look at the code and see if I can make it work better for the Z, but I'm not giving any guarantees that it can be made to work better.

Oh, and I hope to post some more build notes, for anyone who is interested.

Armagon
*

Not sure if this is the right place to put this but on my C3100 running 1.1.0beta1 inkscape starts up in under 11 seconds and other than the large screen it's great, just what I needed. Thanks for all your hard work.

cycle_55
Armagon
QUOTE(cycle_55 @ Mar 23 2006, 07:15 PM)
Not sure if this is the right place to put this but on my C3100 running 1.1.0beta1 inkscape starts up in under 11 seconds and other than the large screen it's great, just what I needed. Thanks for all your hard work.

cycle_55
*


Wow! I'm envious. Glad to hear it works so well.

Thanks for the feedback -- it is always nice to know one's work is appreciated.

Armagon
Jon_J
I know this is a really old post, but I cannot save my preferences under "Documents Preferences".
Should there be an [OK] or [Close] or [Apply] button. there is a large area at the bottom of the dialog, that is blank.
I'm trying to set my paper size, and using the enter key on my zaurus, doesn't close the dialog.
If I close the dialog, using the 'x' at the top, after setting my paper size, it doesn't save the preferences.
I also tried holding my pointer over the blank spot where a button should be, and clicking it or using enter on the keyboard.
There seems to be an absence of the button there.

Thanks for this really cool app! This is the closest thing to CorelDraw I have found for the Zaurus
There used to be some very basic, simple vector draw programs around during the Windows 3.1 days, but they have all seemed to have disappeared...
desertrat
QUOTE(Jon_J @ Mar 15 2007, 10:08 PM)
If I close the dialog, using the 'x' at the top, after setting my paper size, it doesn't save the preferences.

It works for me (v0.43). Does the paper size change immediately (ie before you close dialog)?

Inkscape seems to follow its own demented rules for gui design and the absence of [OK] / [Cancel] appears to be intentional.
Jon_J
Yes the paper size is saved, but if I start inkscape at a later time, I have to input my paper size and orientation once again, unless I open a previously saved file.
It doesn't remember that I use inches for paper size. I guess I'll have to get used to it, I'm used to Coreldraw. It saved all preferences for all documents, unless you told it not to.
I'm using the one downloaded from this thread, I had to look in package manager, cause help about didn't open. it's 0.43-Z1
Jon_J
Is there a way to import Coreldraw graphics into inkscape?
Is there a place I can get all the graphics file import/export filters all at one location?

EDIT: These extensions are not present.
I edited this post, but decided to leave this long list of extensions here for reference.
This is a copy of /home/root/.inkscape/extension-errors.log (just after install and first run)
CODE
Extension "GIMP Gradients" failed to load because a dependency was not met.
Dependency::
 type: plugin
 location: path
 string: gimpgrad

Extension "Dia Input" failed to load because a dependency was not met.
Dependency::
 type: executable
 location: path
 string: dia
 description: In order to import Dia files, Dia itself must be installed.  You can get Dia at http://www.gnome.org/projects/dia/

Extension "Text Input" failed to load because a dependency was not met.
Dependency::
 type: executable
 location: path
 string: perl

Extension "EPSI Output" failed to load because a dependency was not met.
Dependency::
 type: executable
 location: path
 string: ps2epsi

Extension "AI Output" failed to load because a dependency was not met.
Dependency::
 type: executable
 location: path
 string: gs

Extension "PDF Output" failed to load because a dependency was not met.
Dependency::
 type: executable
 location: path
 string: ps2pdf

Extension "AI Input" failed to load because a dependency was not met.
Dependency::
 type: executable
 location: path
 string: perl

Extension "DXF Input" failed to load because a dependency was not met.
Dependency::
 type: executable
 location: path
 string: dxf2svg
 description: dxf2svg may come with Inkscape, but is also at http://dxf-svg-convert.sourceforge.net/

Extension "Postscript Input" failed to load because a dependency was not met.
Dependency::
 type: executable
 location: path
 string: pstoedit

Extension "EPS Input" failed to load because a dependency was not met.
Dependency::
 type: extension
 location: path
 string: org.inkscape.input.ps

Extension "EPS Input" failed to load because a dependency was not met.
Dependency::
 type: executable
 location: path
 string: gs

Extension "Sketch Input" failed to load because a dependency was not met.
Dependency::
 type: executable
 location: path
 string: skconvert

Extension "Windows Metafile Input" failed to load because a dependency was not met.
Dependency::
 type: executable
 location: path
 string: wmf2svg

Extension "DXF Output" failed to load because a dependency was not met.
Dependency::
 type: executable
 location: path
 string: pstoedit
 description: pstoedit must be installed to run see http://www.pstoedit.net/pstoedit
Drake01
QUOTE(Jon_J @ Mar 15 2007, 06:49 PM)
Yes the paper size is saved, but if I start inkscape at a later time, I have to input my paper size and orientation once again, unless I open a previously saved file.
It doesn't remember that I use inches for paper size. I guess I'll have to get used to it, I'm used to Coreldraw. It saved all preferences  for all documents, unless you told it not to.
I'm using the one downloaded from this thread, I had to look in package manager, cause help about didn't open. it's 0.43-Z1
*

The man page suggests that you may be able to edit the config file. If this is a "saveable" preference, it would probably be listed in this file. You could try editing this file directly and see if that buys you anything.

From the Unix man page:
The preferences.xml configuration file located in ~/.inkscape/ is used to customize the application settings for the user.
Jon_J
Thanks, that doesn't help me because it's not a plain text file. it's an xml file. it's formatted in a way that is unfamiliar to me, but thanks anyway. I'm a complete newb when it comes to editing files other than plain text files. I was hoping for some hidden setting in inkscape itself, buried in a menu somewhere.
desertrat
QUOTE(Jon_J @ Mar 15 2007, 11:49 PM)
Yes the paper size is saved, but if I start inkscape at a later time, I have to input my paper size and orientation once again, unless I open a previously saved file.

Maybe create a (some) blank document(s) with your commonly used defaults?

QUOTE
Is there a way to import Coreldraw graphics into inkscape?

I wish there was. I don't think there are any CDR converters around. What I did once was to write a coreldraw script which went through all the clipart files and exported them as WMF (so I could use them in OOo).
Jon_J
one last question desertrat.
What about *.cgm files?
These used to be very popular and I have a ton of them besides my 5 to 6 versions of Coreldraw CD's laying around, going back to 3.0
EDIT: Is there a complete list of import/export filters for inkscape somewhere?
Meanie
QUOTE(Jon_J @ Mar 16 2007, 12:14 PM)
one last question desertrat.
What about *.cgm files?
These used to be very popular and I have a ton of them besides my 5 to 6 versions of Coreldraw CD's laying around, going back to 3.0
EDIT: Is there a complete list of import/export filters for inkscape somewhere?
*


on the inkscape website?
Jon_J
apparently getting extensions working in inkscape is a long process.
"Extensions" is inkscape's terminology for graphics import/export filters.
This doesn't include *.cgm and a couple others I don't remember offhand.
http://wiki.inkscape.org/wiki/index.php/Ge...tensionsWorking
Does anyone have libwmf or libwmf2 in IPK?
Searching the forum returned 0 results.
I found one for openBSD, libwmf-0.2.8.3.tgz
and another one that is newer, but looks like a source, libwmf-0.2.8.4.tar.gz
Jon_J
Closing a drawing results in inkscape shutting down.
Is there a way to close a current document without inkscape shutting down?
The "File" menu has these 2 selections:
Close
Quit

"Close" needs to close the current document, so I can open a new one.
I don't want to open more than one drawing at a time on my zaurus.

I just discovered that CorelDraw 10 (my newest version) will save as *.svg smile.gif
SVG = Scalable Vector Graphics
(I didn't know what this extension was used for until I installed inkscape)
So I can "convert" all my CorelDraw drawings to a format that inkscape opens natively. smile.gif
I just tried this, and several of my drawings open with no problems in inkscape
Now I hope i don't have any probs with editing and re-saving these drawings on my Zaurus. smile.gif

EDIT:
I edited out a previous attempt to open an extremely complex file.
This file, when saved as *.svg in CorelDraw, resulted in a file that CorelDraw could not open.
Other similar files, but with less objects give me no problems.
Try this one, (biker2.svg in zip) it opens in CorelDraw properly.
EDIT2:
This file opens in inkscape and also displays a preview in the File>Open dialog.
This is really cool! smile.gif I can finally open and edit vector graphics on my Zaurus. smile.gif
And not just simple images, some complex images can also be drawn, edited and saved with this cool program. smile.gif
I'm still looking for the libwmf or libwmf2 extension so I can open/save *.wmf files that also open in Picsel Browser. wink.gif
I found 2 versions of libwmf
One is for openBSD and the other one needs to be compiled (I think)
I haven't a clue as how to compile stuff, I'm still searching for an IPK
(maybe one of those Japanese sites has one already in an IPK)
Jon_J
Is there any way to resize inkscape's interface?
I can drag the lower corners and make it larger, but I cannot make it any smaller.
I'm following a tutorial that requires you to use the layers tool and layers list.
The layers tool is on the top and the layers list is on the bottom.
When I use [alt]+drag, to move the interface, so as to access these interface items, inkscape interprets [alt] as this function:
----------------------------------
"select under, move selected"
----------------------------------
This affects selecting objects and layers.
Drake01
QUOTE(Jon_J @ Mar 16 2007, 05:50 PM)
When I use [alt]+drag, to move the interface, so as to access these interface items, inkscape interprets [alt] as this function:
----------------------------------
"select under, move selected"
----------------------------------
This affects selecting objects and layers.
*

I can't help you with resizing the interface, but you should still be able to move the window (although, not as conveniently as using alt) by selecting move from the left window button.
Jon_J
Thanks, that works, but when I'm at the bottom, that button is offscreen and not accessible, I'll have to figure out something else.
BTW, does anyone have the WMF extension (libwmf or wmf2svg) compiled for the zaurus?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2014 Invision Power Services, Inc.