webkitgtk - 1 file, 2MB compressed, flash & gxine work too

Browsers, email, chat, etc.
Post Reply
Message
Author
User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

webkitgtk - 1 file, 2MB compressed, flash & gxine work too

#1 Post by technosaurus »

Now that libICU is no longer required I thought I would revisit Midori, but in the mean time I found that the included "gtklauncher" would play youtube and embedded video using gxine and render most webpages quite well while only using ~half the resources as seamonkey

It is VERY basic though - VERY VERY basic, but it will play youtube

I renamed it to webkitgtk since there has already been a gtklauncher in puppy

just extract it anywhere it is a 2.2MB executable
http://puppy-development.googlecode.com ... gtk.tar.gz

Midori could take some time since it may need patched to use glib instead of ICU for unicode
Last edited by technosaurus on Sun 31 Jan 2010, 03:37, edited 1 time in total.
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#2 Post by technosaurus »

Ok, Midori is now built as well

Here is the forum thread
http://murga-linux.com/puppy/viewtopic.php?t=51971

Here is the 2.5MB pet package
http://puppy-development.googlecode.com ... 2.2-92.pet
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#3 Post by disciple »

I saw 2.2 and 2.5MB and thought someone had worked a miracle... but I see you upxed the executables, which made them dramatically smaller :)

If anyone wants to know, both of them fail on 4.1.x with

Code: Select all

./webkitgtk: symbol lookup error: ./webkitgtk: undefined symbol: g_resolver_get_default
Google suggests this is a problem with libsoup... so now we see the downside of building it in statically :)
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#4 Post by technosaurus »

Midori's pet is just over 3MB without being upx'd (its only an 8MB executable) - for binaries over 1MB, upx makes sense, but it doesn't really change the package size significantly (only half a MB here because gzip sucks - a pxt package using xz compressing and non-upx'd binary is only 2.2MB)
Here is the 2.2MB .pxt (xz compressed pet) with midori binary un-upx'd
http://puppy-development.googlecode.com ... 2.2-92.pxt

I can upload a non-UPX'd version so that you can run ldd to see what dependencies are missing - probable the gio/glib difference - it is actually more likely that the shared libraries that are the problem, but nice try - if it were fully static then all the symbols would be there - this is not a fully static build or it would be much larger

I did not link libsoup-2.4 and libwebkit-1.0 against static libraries, which required adding all of their FLAGS to midori so that the shared libraries got linked in (due to limitations of waf). Specifically I added a hack to _build/c4che/default.cache.py so that it would actually build
CHANGED
LINKFLAGS_GMODULE = ['-Wl,--export-dynamic']
TO
LINKFLAGS_GMODULE = ['-Wl,--export-dynamic,-lstdc++,-ljpeg,-lXt,-lsqlite3,-lxslt,-latk-1.0,-lgailutil,-lglib-2.0,-lxml2,-lsoup-2.4,-lwebkit-1.0,-lenchant']
There is probably a better way but this worked and I wasn't prepared to fix the whole waf build system

these are the shared libraries that you need:
linux-gate.so.1, libstdc++.so.6, libjpeg.so.62, libXt.so.6, libsqlite3.so.0, libxslt.so.1, libatk-1.0.so.0, libgailutil.so.18, libglib-2.0.so.0, libxml2.so.2, libenchant.so.1, libm.so.6, libgio-2.0.so.0, libgobject-2.0.so.0, libgmodule-2.0.so.0, libgthread-2.0.so.0, librt.so.1, libgtk-x11-2.0.so.0, libgdk-x11-2.0.so.0, libpangoft2-1.0.so.0, libgdk_pixbuf-2.0.so.0, libpangocairo-1.0.so.0, libcairo.so.2, libpango-1.0.so.0, libfreetype.so.6, libz.so.1, libfontconfig.so.1, libX11.so.6, libssl.so.0.9.8, libcrypto.so.0.9.8, libdl.so.2, libpthread.so.0, libc.so.6, libpng12.so.0, libgcc_s.so.1, /lib/ld-linux.so.2, libSM.so.6, libICE.so.6, libpcre.so.0, libXfixes.so.3, libresolv.so.2, libXi.so.6, libXext.so.6, libXrender.so.1, libXinerama.so.1, libXrandr.so.2, libXcursor.so.1, libexpat.so.1, libpixman-1.so.0, libXau.so.6, libXdmcp.so.6
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

User avatar
ttuuxxx
Posts: 11171
Joined: Sat 05 May 2007, 10:00
Location: Ontario Canada,Sydney Australia
Contact:

#5 Post by ttuuxxx »

Hi techno arora http://code.google.com/p/arora/ is a nice browser, its based on QT, and only needs a few QT libs,
libQtWebKit.so.4 => /usr/lib/libQtWebKit.so.4 (0xb651f000)
libQtScript.so.4 => /usr/lib/libQtScript.so.4 (0xb623d000)
libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb5610000)
libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xb54bb000)
libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb51dc000)
Arora and flash 10 work great together also. Fullscreen youtube etc works perfectly, no drag etc.
ttuuxxx
http://audio.online-convert.com/ <-- excellent site
http://samples.mplayerhq.hu/A-codecs/ <-- Codec Test Files
http://html5games.com/ <-- excellent HTML5 games :)

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#6 Post by technosaurus »

I tried arora before - static QT ended up making it pretty HUGE still and required several hacks to build it - it ended up being unstable and seamonkey's size if I remember correctly - that one got flushed with my ram on reboot

did I mention I hate the waf build system - not that it is bad - I just finally figured out how makefiles worked - waf has too much stuff hidden
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#7 Post by disciple »

Sorry, I wasn't suggesting an un-upxed package as well...
I did unupx it and run ldd, which says there aren't any dependencies missing.
if it were fully static then all the symbols would be there
Yes :)
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#8 Post by disciple »

OK, the problem is worse than I thought. I just tried it on my 4.3.1 install, and get the same error. What Puppy is it supposed to be for?
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

User avatar
ttuuxxx
Posts: 11171
Joined: Sat 05 May 2007, 10:00
Location: Ontario Canada,Sydney Australia
Contact:

#9 Post by ttuuxxx »

technosaurus wrote:I tried arora before - static QT ended up making it pretty HUGE still and required several hacks to build it - it ended up being unstable and seamonkey's size if I remember correctly - that one got flushed with my ram on reboot

did I mention I hate the waf build system - not that it is bad - I just finally figured out how makefiles worked - waf has too much stuff hidden
Hmmm when I downloaded it, it was using Qmake and not waf. Ya waf is a bit so so.
ttuuxxx
http://audio.online-convert.com/ <-- excellent site
http://samples.mplayerhq.hu/A-codecs/ <-- Codec Test Files
http://html5games.com/ <-- excellent HTML5 games :)

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#10 Post by technosaurus »

ttuuxxx wrote: Hmmm when I downloaded it, it was using Qmake and not waf. Ya waf is a bit so so.
ttuuxxx
sorry ttuuxxx for confusion - I was still referring to Midori

And I owe everyone a great BIG apology - I forgot that I had to upgrade glib to build libsoup...I will package it up
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#11 Post by disciple »

Wow, midori's really impressive, especially for such an obscure browser. The main downside seems to be just that the sidebar has a minimum width set by the number of (huge) buttons along the bottom :?

Unfortunately neither of these builds supports HTTPS, so they couldn't really replace seamonkey in a puplet. Was that one of the "large extensions" that you left out?
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#12 Post by technosaurus »

https support could be added - it may have required gnutls or a later version of openssl and I was just trying to see if it would build

the HUGE extensions are cookie-manager, web-cache, feed-panel, adblock and formhistory

It would even support html5 audio and video if we had gstreamer
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#13 Post by disciple »

Is it possible for you to post a matching _DEV file for the updated glib please?
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#14 Post by technosaurus »

sure
Attachments
glib_DEV-2.22.2-i486.pet
(174 KiB) Downloaded 927 times
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

disciple
Posts: 6984
Joined: Sun 21 May 2006, 01:46
Location: Auckland, New Zealand

#15 Post by disciple »

Great, thanks.
Do you know a good gtkdialog program? Please post a link here

Classic Puppy quotes

ROOT FOREVER
GTK2 FOREVER

earksiinni
Posts: 1
Joined: Tue 27 Apr 2010, 06:14

#16 Post by earksiinni »

Hi technosaur,

Could you explain briefly how you configured the waf scripts to get Midori to link statically?

User avatar
technosaurus
Posts: 4853
Joined: Mon 19 May 2008, 01:24
Location: Blue Springs, MO
Contact:

#17 Post by technosaurus »

Just compile your libraries that you want to link statically with --enable-static --disable-shared (or the equivalent) ... otherwise you can sometimes just delete the corresponding .so file (for more info see pet packaging 100 & 101)

However midori uses waf which appears to assume that everything is a shared lib so I added them manually

to find out the proper stuff to link in I should have used pkg-config (but actually I easter egged it based on the output)
pkg-config --cflags --libs webkit (or whatever the name of the *.pc file is)

I entered a bug report:
here
Check out my [url=https://github.com/technosaurus]github repositories[/url]. I may eventually get around to updating my [url=http://bashismal.blogspot.com]blogspot[/url].

User avatar
DaveS
Posts: 3685
Joined: Thu 09 Oct 2008, 16:01
Location: UK

#18 Post by DaveS »

Really glad to see Midori is not being forgotten. I have tried and tried to build this from scratch but the learning curve is steep for a mere user.
Spup Frugal HD and USB
Root forever!

Post Reply