pUPnGO 2012

A home for all kinds of Puppy related projects
Message
Author
starhawk
Posts: 4906
Joined: Mon 22 Nov 2010, 06:04
Location: Everybody knows this is nowhere...

#316 Post by starhawk »

technosaurus wrote:btw I don't think there was a gtk1 opera, only qt3
From a few pages back... ;)
Last link tested in pUPnGO2012, IIRC it needs GTK+ but whatever. It also needs libpng and libjpg and probably other junk...

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

#317 Post by technosaurus »

I just built the latest netsurf-git with musl. Though the javascript support is still very minimal, the framebuffer version looks pretty good on the xcb backend

notes on the netsurf framebuffer version:
my build works with xcb in X or linux framebuffer and chooses the correct mode according to whether X is running (I didn't build the sdl, vnc or wayland backends and didn't actually test the linux framebuffer side)
rendering is extremely fast and light (<10mb ram)
I only builtin png, gif and jpeg support - not webp, jng, bmp or mng
It can support video via gstreamer, but it doesn't lend itself to a static build.
window size cannot be changed - I patched it to default to maximized rather than their default 800x600 (so it will work on 640x480 screens too)
I built it with javascript support but it doesn't seem to do any javascript (maybe my errror - will need to test further)
it has https and css support (unlike dillo)
the framebuffer doesn't support svg yet (though there is an example for rendering svg in the framebuffer sources, so it may be patchable)

The binary size is 2.6Mb with (apparently non-functional:() javascript support builtin or ~2Mb without it.... but most of the size is libcurl and libssl(for https) so it should be really small on a shared library build

any preferences on which build to test???
I am thinking the non-js version would be preferable for now... at least until I figure out how to get the js working.
Attachments
nsfb.png
this is the default page
(38.43 KiB) Downloaded 926 times
Last edited by technosaurus on Wed 10 Apr 2013, 12:22, 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].

amigo
Posts: 2629
Joined: Mon 02 Apr 2007, 06:52

#318 Post by amigo »

Actually, opera *did* use gtk1 -but that was a very long time ago opera 4 or 5 IIRC. It was still very buggy and low-featured in those days. Still, it would be nice if they open-sourced it.

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#319 Post by goingnuts »

any preferences on which build to test???
I am thinking the non-js version would be preferable for now... at least until I figure out how to get the js working.
Sounds right - its looking good! Is it impossible to do a static build or was that just the gstreamer part?
Might also be a new back-port target (gtk2->gtk1...)?

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

#320 Post by technosaurus »

it looks to me (I ran ldd and strings on the binaries all the way back to 4.0) like opera for linux possibly began as motif and shifted to qt2 then qt3 and qt4 and now use an in house toolkit ... I also figured out that for versions <9.0, motif is required for plugins to work.

On a side note I now have a light svg viewer based on the netsurf framebuffer and libtinysvg (my build uses the xcb backend, but could be modified to use the linux framebuffer as well)

The static netsurf framebuffer tarball is too big to post
Last edited by technosaurus on Thu 11 Apr 2013, 22:04, 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
Keef
Posts: 987
Joined: Thu 20 Dec 2007, 22:12
Location: Staffordshire

#321 Post by Keef »

I did a framebuffer build of Netsurf some time back. If you actually ran it in the framebuffer, it was impossible to exit, and also I think that links would not work, as in you had to type in URLs in the address bar.

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#322 Post by goingnuts »

technosaurus: I cant run your binary - probably libc version problem. pUPnGO2012 support the framebuffer.

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

#323 Post by technosaurus »

goingnuts wrote:technosaurus: I cant run your binary - probably libc version problem. pUPnGO2012 support the framebuffer.
Wary's glibc somehow got linked in. Here is a static musl only rebuild of svgtiny, uploading pets of nsfb to my uis.edu page now too ... one with builtin (ugly but light/fast) fonts and the other with freetype support. The uncompressed binary is pushing 3Mb, but should be able to remove some unused font support and curl protocols (smtp, etc...) to reduce it closer to 2. It would be a lot smaller, but I added support for freetype fonts and javascript as well as bmp/ico, webp and svg images - the freetype version looks better than seamonkey

Notes: There is the option to build in support for pdf export and printing via libharu, but I don't see a way to actually do it in the framebuffer so I left it out for now. It also needs some form of download dialog - probably using the nsfbtk with curl since it is already included.

http://uisacad5.uis.edu/~bconroy/netsur ... 1-i486.pet
http://uisacad5.uis.edu/~bconroy/netsur ... 1-i486.pet

TODO - fix the x framebuffer backend (based on argv[0]?) to output a title for swallowing in jwm - could be useful for tray applets.
Attachments
svgtiny.tar.gz
(138.88 KiB) Downloaded 427 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].

User avatar
mavrothal
Posts: 3096
Joined: Mon 24 Aug 2009, 18:23

#324 Post by mavrothal »

technosaurus wrote: uploading pets of nsfb to my uis.edu page now too ... one with builtin (ugly but light/fast) fonts and the other with freetype support.
I tried your "heavy" freetype-version in my low-spec XOs running Precise-5.5 and the speed is jaw-dropping :shock: , while it handles A LOT of difficult sites, just fine :!:

I was wondering if there is any way to save user changes, ie, default font size, bookmarks, etc.
It supposes to save user data in ~/.netsurf but this folder is not generated and if you make it remains empty.
`about:config' also does not allow you to change anything.
Is it something that I miss/know how to do?

Thx
== [url=http://www.catb.org/esr/faqs/smart-questions.html]Here is how to solve your[/url] [url=https://www.chiark.greenend.org.uk/~sgtatham/bugs.html]Linux problems fast[/url] ==

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

#325 Post by technosaurus »

mavrothal wrote:Is it something that I miss/know how to do?
If so, I missed it too even after looking through ~50% of the source. What would you like to see changed? I already rebuilt it to change the window size where you can see the on screen keyboard button... I'd like to see someone make an arm build for android tablets (the java/dalvik ones are pretty slow on low end tablets) Right now I am looking through the source to see where urls with unhandled mime types go so I can set up a handler to pass the url to (something like a download manager / xdg-open) ... right now it is basically a kiosk mode browser (the gtk version is much more robust)
Attachments
nsfb-hist-nav.png
ever want to find a web page you went to from google,
but lost because you later went to a different page....
(42.31 KiB) Downloaded 620 times
nsfb-oskb.png
(54.75 KiB) Downloaded 645 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].

User avatar
mavrothal
Posts: 3096
Joined: Mon 24 Aug 2009, 18:23

#326 Post by mavrothal »

technosaurus wrote:
mavrothal wrote:Is it something that I miss/know how to do?
If so, I missed it too even after looking through ~50% of the source. What would you like to see changed?
Able to bookmark pages is major I believe, though this means that should not be in kiosk mode.
Also changing font size is important to compensate for different screen dpi densities (or eye sight :) ).

Another thing I noticed is the you can not have the rubber-band function in mouse either on the page body or the address field. Would be handy to have
== [url=http://www.catb.org/esr/faqs/smart-questions.html]Here is how to solve your[/url] [url=https://www.chiark.greenend.org.uk/~sgtatham/bugs.html]Linux problems fast[/url] ==

User avatar
greengeek
Posts: 5789
Joined: Tue 20 Jul 2010, 09:34
Location: Republic of Novo Zelande

#327 Post by greengeek »

Tried this one on Slacko53 and it seems to be pretty functional. I had a couple of minor issues - lots of image tearing when scrolling (fixed by clicking refresh) and the keyboard seemed to confuse some of the keystrokes. Couldn't sign in to my email till I figured out I had to use the " key when I wanted the @ sign. Good potential as a fast simple browser.

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#328 Post by goingnuts »

Tested the freetype version in pupngo2012: Needs xserver with shm so installed the "pupngo_xorg_pack_412_static.pet". It works!
I thought the Xvesa was with shm support - will check up on that.
Could not run the nsfb from cli though.
Looking very promising :D :!:
Btw works in P412 as well...

User avatar
Keef
Posts: 987
Joined: Thu 20 Dec 2007, 22:12
Location: Staffordshire

#329 Post by Keef »

If you want a different window size, or start page, you can launch it with:

Code: Select all

nsfb -w 800 -h 600  murga-linux.com/puppy
You aren't able to save bookmarks as the framebuffer frontend is a bit crippled and basic. If you want that sort of thing, you will need the gtk stuff I believe.
I haven't had much luck with Techno's builds yet (tried both), keep getting segmentation faults (on Pupngo 2012, 412, and ThinSlacko).
For those who have had success, does the cursor show? It was invisible when I did it about a year ago (not static though, dont know how...)
And if anyone tries it on the framebuffer, can you quit without using the powerbutton?

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

#330 Post by technosaurus »

did anyone else notice you can also drag the screen like you would on a tablet (also pg up/down forces a redraw that fixes tearing) The history navigation window would make a good template for bookmarking, but the fbtk needs to add a popup window (for right click menu to include bookmark/download/view source/copy/paste etc..., javascript alerts, and others - it may be already be possible using some css tricks and existing fbtk widgets.

the paths in the pet are required, don't move them from /usr/local/share/netsurf or you will get segfaults... and truetype fonts must be in /usr/share/fonts/default/TTF as:

NETSURF_FB_FONTPATH := /usr/share/fonts/default/TTF
NETSURF_FB_FONT_SANS_SERIF := DejaVuSans.ttf
NETSURF_FB_FONT_SANS_SERIF_BOLD := DejaVuSans-Bold.ttf
NETSURF_FB_FONT_SANS_SERIF_ITALIC := DejaVuSans-Oblique.ttf
NETSURF_FB_FONT_SANS_SERIF_ITALIC_BOLD := DejaVuSans-BoldOblique.ttf
NETSURF_FB_FONT_SERIF := DejaVuSerif.ttf
NETSURF_FB_FONT_SERIF_BOLD := DejaVuSerif-Bold.ttf
NETSURF_FB_FONT_MONOSPACE := DejaVuSansMono.ttf
NETSURF_FB_FONT_MONOSPACE_BOLD := DejaVuSansMono-Bold.ttf
NETSURF_FB_FONT_CURSIVE := Comic_Sans_MS.ttf
NETSURF_FB_FONT_FANTASY := Impact.ttf

to change default settings try the css files in /usr/local/share/netsurf (one of them controls ad blocking too)

here is the code I modified in gui.c (process_cmdline) for x and linux backend to go full screen ... (it was defaulting to sdl and 800x600x32) if anyone cared to comment - I was just shotgunning it and probably need to close the (temporary) xcb connection

Code: Select all

	if (getenv("DISPLAY")){
#include <xcb/xcb.h>
		fename = "x";
		xcb_connection_t *c;
		int32_t screen_number; 
		xcb_screen_t     *screen;
		c = xcb_connect (NULL, &screen_number );
		screen = xcb_setup_roots_iterator(xcb_get_setup (c)).data;
		if (screen){
			fewidth = screen->width_in_pixels;
			feheight = screen->height_in_pixels - 48 ; //handle tray
			febpp = screen->root_depth;
		}
	}else{
#include <sys/ioctl.h>
#include <linux/fb.h>
		fename = "linux";
		struct fb_var_screeninfo variable_info;
		//ioctl (open ("/dev/fb0", O_RDWR), FBIOGET_VSCREENINFO, &variable_info);
		ioctl(STDOUT_FILENO, FBIOGET_VSCREENINFO, &variable_info);
		fewidth = variable_info.xres;
		feheight = variable_info.yres;
		febpp = variable_info.bits_per_pixel;
	}


	if ((nsoption_charp(homepage_url) != NULL) && 
	    (nsoption_charp(homepage_url)[0] != '\0')) {
		feurl = nsoption_charp(homepage_url);
	} else {
		feurl = NETSURF_HOMEPAGE;
	}
any preferences for homepage_url / NETSURF_HOMEPAGE?

Edit: framebuffer/fbtk/event.c should have this keymap instead:

static int sh_keymap[] = {
/* 0 1 2 3 4 5 6 7 8 9 */
-1, -1, -1, -1, -1, -1, -1, -1, 8, 9, /* 0 - 9 */
-1, -1, -1, 13, -1, -1, -1, -1, -1, -1, /* 10 - 19 */
-1, -1, -1, -1, -1, -1, -1, 27, -1, -1, /* 20 - 29 */
-1, -1, ' ', '!', '"', '~', '$', -1, '&', '"', /* 30 - 39 */
'(', ')', '*', '+', '<', '_', '>', '?', ')', '!', /* 40 - 49 */
'@', '#', '$', '%', '^', '&', '*', '(', ';', ':', /* 50 - 59 */
'<', '+', '>', '?', '@', -1, -1, -1, -1, -1, /* 60 - 69 */
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* 70 - 79 */
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* 80 - 89 */
-1, '{', '|', '}', '~', '_', '~', 'A', 'B', 'C', /* 90 - 99 */
'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', /* 100 - 109 */
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', /* 110 - 119 */
'X', 'Y', 'Z', -1, -1, -1, -1, -1, -1, -1, /* 120 - 129 */
};
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].

Ibidem
Posts: 549
Joined: Wed 26 May 2010, 03:31
Location: State of Jefferson

#331 Post by Ibidem »

http://comments.gmane.org/gmane.comp.we ... devel/9194
That's the state netsurf js was originally in, but...though they might have improved it, it sounds like improvements ran into "Can't do that yet".

But anyhow: a good page would be something related to puppy, but with a way to search...or Google.

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

#332 Post by technosaurus »

I fixed the keys and changed the homepage to the puppy standard. Is anyone interested in the vnc or wayland backend or have a reason to want sdl (sdl should be covered by wayland, linux and x) before I rebase my build environment (may do a gtk2 build in between)
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].

goingnuts
Posts: 932
Joined: Sun 07 Dec 2008, 13:33
Contact:

#333 Post by goingnuts »

When running from CLI the error I get is:
ioctl(1,FBIOGET_VSCREENINFO,0xbff64890) = -1 EINVAL (Invalid argument)
exit_group(1)
Any chance to get CLI going as well?
Tested in pUPnGO with Xvesa with shm - runs but without any content. Not sure but maybe xserver needs some fontserver capabilities as well?
When switch to Xorg it runs ok...

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

#334 Post by technosaurus »

goingnuts wrote:When running from CLI the error I get is:
ioctl(1,FBIOGET_VSCREENINFO,0xbff64890) = -1 EINVAL (Invalid argument)
exit_group(1)
Any chance to get CLI going as well?
Tested in pUPnGO with Xvesa with shm - runs but without any content. Not sure but maybe xserver needs some fontserver capabilities as well?
When switch to Xorg it runs ok...
:oops:
I added this code, note the //comment ... I was just guessing from some other code
It can probably just be removed and replaced with the standard default 800x600x32 (which can be overridden)

Code: Select all

#include <sys/ioctl.h> 
#include <linux/fb.h> 
      fename = "linux"; 
      struct fb_var_screeninfo variable_info; 
      //ioctl (open ("/dev/fb0", O_RDWR), FBIOGET_VSCREENINFO, &variable_info); 
      ioctl(STDOUT_FILENO, FBIOGET_VSCREENINFO, &variable_info); 
      fewidth = variable_info.xres; 
      feheight = variable_info.yres; 
      febpp = variable_info.bits_per_pixel; 
   } 
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:

#335 Post by technosaurus »

I redid the xcb/framebuffer logic and rebuilt
http://uisacad5.uis.edu/~bconroy/nsfb-git-i486.pet
Note: this is a temporary location - please mirror.
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].

Post Reply