OESF Portables Forum
Model Specific Forums => Sharp Zaurus => Zaurus - pdaXrom => Topic started by: Armagon on February 17, 2006, 05:59:01 pm
-
Update: Feb 27, 2006
I've got inkscape compiled and packaged up. See post 18 (https://www.oesf.org/forums/index.php?showtopic=17787&view=findpost&p=116280)
-------------------------------------------------------------------------
Greetings.
I thought inkscape ( http://www.inkscape.org/ (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 (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 (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:
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 (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
-
I thought inkscape ( http://www.inkscape.org/ (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
-- cheers
-
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/ (http://mail.pdaxrom.org/1.1.0beta1/Zaurus-7x0-860/feed/)
you'll find:
glib2_2.8.1-1_armv5tel.ipk (http://mail.pdaxrom.org/1.1.0beta1/Zaurus-7x0-860/feed/glib2_2.8.1-1_armv5tel.ipk)
-
I thought inkscape ( http://www.inkscape.org/ (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
-- cheers
[div align=\"right\"][a href=\"index.php?act=findpost&pid=115205\"][{POST_SNAPBACK}][/a][/div]
Wow. That is a bit much.
How did you like Pocket Debian?
-
note that the list on the contrib site list only the contributed packages
Oh. Thanks for letting me know.
here:
http://mail.pdaxrom.org/1.1.0beta1/Zaurus-7x0-860/feed/ (http://mail.pdaxrom.org/1.1.0beta1/Zaurus-7x0-860/feed/)
you'll find:
glib2_2.8.1-1_armv5tel.ipk (http://mail.pdaxrom.org/1.1.0beta1/Zaurus-7x0-860/feed/glib2_2.8.1-1_armv5tel.ipk)
[div align=\"right\"][a href=\"index.php?act=findpost&pid=115209\"][{POST_SNAPBACK}][/a][/div]
Excellent.
I should add that I really don't have much time, and will only be working on this on and off, slowly ... (Sigh)
-
If you are cross compiling you'll probably need this patch: http://dominion.kabel.utwente.nl/koen/pda/...ion-check.patch (http://dominion.kabel.utwente.nl/koen/pda/files/no-boehm-version-check.patch)
That's all I needed to crosscompile it.
-
If you are cross compiling you'll probably need this patch: http://dominion.kabel.utwente.nl/koen/pda/...ion-check.patch (http://dominion.kabel.utwente.nl/koen/pda/files/no-boehm-version-check.patch)
That's all I needed to crosscompile it.
[div align=\"right\"][{POST_SNAPBACK}][/a][/div] (http://index.php?act=findpost&pid=115462\")
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:
./configure --host=armv5tel-cacko-linux --build=i686-linux --prefix=$HOME/Zaurus/Cross/install
the configuration went along for a while, and terminated with:
configure: error: libgc (the Boehm Conservative Collector) 6.4+, is needed to compile inkscape -- [a href=\"http://www.hpl.hp.com/personal/Hans_Boehm/gc]http://www.hpl.hp.com/personal/Hans_Boehm/gc[/url]
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:
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:
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
-
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 (http://www.gnu.org/software/autoconf/manual/autoconf-2.57/html_node/autoconf_13.html#SEC13)
-
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 (http://www.gnu.org/software/autoconf/manual/autoconf-2.57/html_node/autoconf_13.html#SEC13)
[div align=\"right\"][a href=\"index.php?act=findpost&pid=115672\"][{POST_SNAPBACK}][/a][/div]
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:
autoconf
and got:
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:
/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
-
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 (http://www.pdaxrom.org/buglist.php?doaction=showbug&bugid=352)
-- cheers
-
Strange, see my bug report and quick fix here:
http://www.pdaxrom.org/buglist.php?doactio...owbug&bugid=352 (http://www.pdaxrom.org/buglist.php?doaction=showbug&bugid=352)
-- cheers
[div align=\"right\"][a href=\"index.php?act=findpost&pid=115803\"][{POST_SNAPBACK}][/a][/div]
Thank you, desertrat:
M4=`which m4` autoconf
worked like a charm.
Ah. And now, I just need to compile a whole bunch of dependancies:
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
-
Way back in my first post, I said:
They seem to be relying on the PKG_CONFIG_PATH environment variable, which I thought I set appropriately...[div align=\"right\"][{POST_SNAPBACK}][/a][/div] (http://index.php?act=findpost&pid=115200\")
Boy, was I wrong.
So, for anyone else new to cross-compiling:
[a href=\"http://pkgconfig.freedesktop.org/wiki/FrontPage]pkg-config[/url] 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:
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
-
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!
[div align=\"right\"][a href=\"index.php?act=findpost&pid=116083\"][{POST_SNAPBACK}][/a][/div]
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).
-
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).
[div align=\"right\"][a href=\"index.php?act=findpost&pid=116116\"][{POST_SNAPBACK}][/a][/div]
That would definitely mess things up!
I just double checked, and get these results:
$ 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.
-
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
-
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
[div align=\"right\"][a href=\"index.php?act=findpost&pid=116145\"][{POST_SNAPBACK}][/a][/div]
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
-
Super. Hope it goes well!
-
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
-
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:
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 (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:
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 (http://dominion.kabel.utwente.nl/koen/pda/files/no-boehm-version-check.patch). After applying the patch, you need to regenerate the configure script, by executing:
M4=`which m4` autoconf
Now you can configure it:
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
-
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 (https://www.oesf.org/forums/index.php?showtopic=15026&view=findpost&p=95982) for the Z.
He used this configure line:
./configure CFLAGS="-O3 -march=armv5te -mtune=xscale -fomit-frame-pointer" LDFLAGS="-s"
and asked for feedback. One response was:
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:
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
-
Curiously, this new "optimised" build seems to be a little bit slower, taking 35 seconds to load.
-
I recognize that the iwmmx optimizations limits the executables to the C1000 and C3x00. Does the -mtune=xscale have a similar effect?
[div align=\"right\"][{POST_SNAPBACK}][/a][/div] (http://index.php?act=findpost&pid=116327\")
-mtune=xscale would be ok, -mcpu=xscale not.
From [a href=\"http://gcc.gnu.org/onlinedocs/gcc-4.0.2/gcc/ARM-Options.html:]http://gcc.gnu.org/onlinedocs/gcc-4.0.2/gc...M-Options.html:[/url]
-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)
-
Great work!!!!!
-
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
-
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.
[div align=\"right\"][a href=\"index.php?act=findpost&pid=116518\"][{POST_SNAPBACK}][/a][/div]
You do know that inkscape is the successor or sodipodi, right?
-
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.
[div align=\"right\"][a href=\"index.php?act=findpost&pid=116518\"][{POST_SNAPBACK}][/a][/div]
You do know that inkscape is the successor or sodipodi, right?
[div align=\"right\"][a href=\"index.php?act=findpost&pid=116523\"][{POST_SNAPBACK}][/a][/div]
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
-
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.
[div align=\"right\"][a href=\"index.php?act=findpost&pid=116518\"][{POST_SNAPBACK}][/a][/div]
You do know that inkscape is the successor or sodipodi, right?
[div align=\"right\"][a href=\"index.php?act=findpost&pid=116523\"][{POST_SNAPBACK}][/a][/div]
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.
[div align=\"right\"][a href=\"index.php?act=findpost&pid=116545\"][{POST_SNAPBACK}][/a][/div]
I just added dia 0.95-pre3 to OE. It crosscompiled cleanly and didn't need to many deps:
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.
-
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:
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
-
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
-
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 (http://icculus.org/~jcspray/GNUDoku/GNUDoku-0.93.tar.gz)
-- cheers
-
<snip>
Any chance of making these available? I'm trying to compile
http://icculus.org/~jcspray/GNUDoku/GNUDoku-0.93.tar.gz (http://icculus.org/~jcspray/GNUDoku/GNUDoku-0.93.tar.gz)
-- cheers
[div align=\"right\"][a href=\"index.php?act=findpost&pid=118834\"][{POST_SNAPBACK}][/a][/div]
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
-
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
-
The libraries used in building inkscape are now available at http://mail.pdaxrom.org/contrib/armagon/ (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
-----------
Most of the libraries use package config. I have edited the /usr/lib/pkgconfig/*.pc files, so that instead of using
prefix=/home/blackmore/Zaurus/Cross/install
they use
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?
-
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.
[div align=\"right\"][a href=\"index.php?act=findpost&pid=116549\"][{POST_SNAPBACK}][/a][/div]
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
-
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
[div align=\"right\"][a href=\"index.php?act=findpost&pid=116280\"][{POST_SNAPBACK}][/a][/div]
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
-
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
[div align=\"right\"][a href=\"index.php?act=findpost&pid=120023\"][{POST_SNAPBACK}][/a][/div]
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
-
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...
-
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.
-
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
-
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)
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
-
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
[div align=\"right\"][{POST_SNAPBACK}][/a][/div] (http://index.php?act=findpost&pid=156456\")
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 [a href=\"http://inkscape.modevia.com/inkscape-man.html]Unix man page:[/url]
The preferences.xml configuration file located in ~/.inkscape/ is used to customize the application settings for the user.
-
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.
-
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?
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).
-
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?
-
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?
[div align=\"right\"][a href=\"index.php?act=findpost&pid=156481\"][{POST_SNAPBACK}][/a][/div]
on the inkscape website?
-
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 (http://wiki.inkscape.org/wiki/index.php/GettingExtensionsWorking)
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
-
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
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.
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.
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! I can finally open and edit vector graphics on my Zaurus.
And not just simple images, some complex images can also be drawn, edited and saved with this cool program.
I'm still looking for the libwmf or libwmf2 extension so I can open/save *.wmf files that also open in Picsel Browser.
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)
-
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.
-
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.
[div align=\"right\"][a href=\"index.php?act=findpost&pid=156537\"][{POST_SNAPBACK}][/a][/div]
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.
-
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?
-
Capn_Fish compiled the libwmf library and it works well!
For those that don't know what libwmf does, here's a very short description.
libwmf contains wmf2svg and is used as an extension for inkscape to open and import windows metafile format files. *.wmf
http://wvware.sourceforge.net/libwmf.html (http://wvware.sourceforge.net/libwmf.html)
See this post. (file attached there)
https://www.oesf.org/forums/index.php?showt...ndpost&p=156557 (https://www.oesf.org/forums/index.php?showtopic=21898&view=findpost&p=156557)
One other thing I noticed about using inkscape, is that the swap partition doesn't get emptied out after closing inkscape.
I left my zaurus turned on, and sitting for an hour after closing inkscape, the free command shows: total used free
Swap: 250480 14412 236068
After restarting 'X' it is:
total used free
Swap: 250480 1560 248920
So I think restarting 'X' after a session in inkscape is a good idea.
-
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?
[div align=\"right\"][{POST_SNAPBACK}][/a][/div]
(http://index.php?act=findpost&pid=156477\")
I went here and tried these instructions in this FAQ.
[a href=\"http://wiki.inkscape.org/wiki/index.php/FAQ#Can_I_use_different_settings_for_the_new_documents_created_by_Inkscape.3F]http://wiki.inkscape.org/wiki/index.php/FA..._by_Inkscape.3F[/url]
------------------------------------------
Can I use different settings for the new documents created by Inkscape?
Yes. When you do File > New (Ctrl+N) or start a new Inkscape session, Inkscape loads the default template document which stores page format, grid and guide parameters, snapping and export settings, etc. It can even contain any pre-created objects. You can save any document as the default template by writing it to ~/.inkscape/templates/default.svg on Linux and [inkscape dir]/share/templates/default.svg on Windows. If you save it under any other name than default.svg in the same folder, it will appear in the File > New submenu but will not load automatically unless chosen.
------------------------------------------
Inkscape isn't "reading" this file for some reason. When I first created it, there wasn't a "templates" directory under ~/.inkscape/
I created it and saved the file, just like in above FAQ. Inkscape doesn't find it for some reason.
I dragged a copy of it to Rox desktop and "this" copy opens inkscape with my prefrences, but I was just wondering why the above method doesn't work?
Is it because the Zaurus doesn't follow a "true" linux filesystem?
I looked inside the inkscape IPK, but the only directories shown are /usr and directories under /usr