Tiny Core Linux

Tiny Core Extensions => TCE Talk => Extension requests => Topic started by: daniel l. on January 16, 2019, 08:13:05 PM

Title: Netsurf
Post by: daniel l. on January 16, 2019, 08:13:05 PM
It's a lightweight browser. More modern and capable than Links or Dillo, but still extremely light. It doesn't play video, but unlike most, it does get the general formatting for simpler websites correct.

It also has a framebuffer version, netsurf-fb, that runs entirely without X. Which makes it perfect for kiosks or console junkies.
Title: Re: Netsurf
Post by: Rich on January 16, 2019, 08:27:01 PM
Hi daniel l.
You should also mention which architecture you are looking for. X86, X86_64, or ARM.
Title: Re: Netsurf
Post by: Pats on January 16, 2019, 08:54:15 PM
By the way, Netsurf browser was already available in TC 3.x repo   by Jason W , if IIRC !
Title: Re: Netsurf
Post by: Juanito on January 17, 2019, 12:02:44 AM
netsurf posted to tc-9.x x86 repo
Title: Re: Netsurf
Post by: neonix on October 22, 2019, 10:31:17 AM
There's an error in TC10 and  TC 9 I believe.

In netsurf-gtk when I want to go to http://tinycorelinux.net
I get "BadEncoding" error.

Netsurf don't work with some sites with iso-859-1, iso-2022-jp, windows-1250, windows-1252 encoding. For example http://tinycorelinux.net use iso-859-1 encoding.
Test page:
www.mountainminds.com/tools/paramencodingtest/page/iso-8859-2

Acording to this site:
bugs.netsurf-browser.org/mantis/view.php?id=2111
It has something to do with libiconv. The solution is to set
NETSURF_USE_LIBICONV_PLUG := NO
before compilation and use external libiconv like this
https://ftp.gnu.org/gnu/libiconv/libiconv-1.16.tar.gz

I also wonder that this browser support video playback and export pages  to PDF file. There is also javascript support but it's unstable and disable by default.
Title: Re: Netsurf
Post by: Juanito on October 22, 2019, 11:32:10 PM
I've just tried netsurf on tc-10.x x86 with the locale left as the tinycore default of "C" and do not see any errors at all when navigating to forum.tinycorelinux.net or the test case you gave.

Which locale are you using?
Title: Re: Netsurf
Post by: curaga on October 23, 2019, 12:15:07 AM
You may need to install glibc_gconv.
Title: Re: Netsurf
Post by: neonix on October 24, 2019, 02:41:34 AM
You may need to install glibc_gconv.
glib_gconv.tcz solved the problem, but there is another.
When I go to http://forum.tinycorelinux.net the browser crush and I get:
Code: [Select]
(netsurf-gtk:6303): Gtk-WARNING **: 11:18:36.099: Could not find the icon 'gtk-dialog-warning'. The 'hicolor' theme
was not found either, perhaps you need to install it.
You can get a copy from:
        http://icon-theme.freedesktop.org/releases
netsurf-gtk: Fatal IO error 0 (Success) on X server :0.0.

after installing hicolor-icon-theme.tcz the browser crush and I get:
Code: [Select]
tc@box:~$ netsurf-gtk
netsurf-gtk: Fatal IO error 0 (Success) on X server :0.0.
I'm using Xfbdev.
Title: Re: Netsurf
Post by: Juanito on October 24, 2019, 05:21:31 AM
What happens when you use Xorg-7.7?
Title: Re: Netsurf
Post by: neonix on October 24, 2019, 05:57:25 AM
What happens when you use Xorg-7.7?
In Xorg-7.7, it works without a problem, but still glib_gconv.tcz is missing in netsurf.tcz.dep file.
In Xvesa and Xfbdev it shows "Fatal IO error 0 (Success) on X server :0.0." error.
Title: Re: Netsurf
Post by: Rich on October 24, 2019, 06:21:22 AM
Hi neonix
What happens when you use Xorg-7.7?
In Xorg-7.7, it works without a problem, but still glib_gconv.tcz is missing in netsurf.tcz.dep file.
In Xvesa and Xfbdev it shows "Fatal IO error 0 (Success) on X server :0.0." error.

Interesting, a success code is returned and it results in a fatal error.
Title: Re: Netsurf
Post by: nick65go on May 04, 2021, 12:26:38 PM
The main advantage versus dillo 3.1 (which has https) is that netsurf has javascript feature ondemand, from menu.
Is any developer interested to build a FLTK (or GTK1)version for netsurf 3.10, for x86 architecture?

TC has netsurf 3.9 with gtk2, and netsurf 3.10 with gtk3, but recently I found that netsurf could have other interfaces:
https://git.netsurf-browser.org/netsurf.git/log/?h=vince/fltk (https://git.netsurf-browser.org/netsurf.git/log/?h=vince/fltk)
Title: Re: Netsurf
Post by: jazzbiker on May 05, 2021, 12:53:13 AM
Hi, nick65go!

Good news, indeed! netsurf-fltk might be the dream-browser. It appears, that not only bad news exist in our twisted universe :) Why didn;t You tried it? Jason W build instructions are fine. Long live fltk!
Title: Re: Netsurf
Post by: nick65go on May 05, 2021, 02:21:58 AM
Hi jazzbiker!
I am still slave/employed/busy. Not in the mood for compiling (pareto 80% eficiency with 20% effort). My goal is for a small + secure/izolated linux environment, such as qemu + virtual machines, or chroot in AlpineLinux (musl), with a small/secured browser for banking transactions only. So just https + javascripts, few graphic capabilites, but minimal dependencies (to reduce attack surfaces) and minimal total RAM demands (to run nomadic from USB) on most PC.

The near best suitable for netsurf is badwolf browser. But then we go for webkit, then monster ICU (language) library dependency etc.
PS: I try to avoid "two authentification factors" on cellphone appls, as is becoming a single point of failure (broken /stolen mobile, bloat apps 100+ MB?, tracking between institutions, all the usual shit).
Title: Re: Netsurf
Post by: nick65go on May 05, 2021, 12:41:24 PM
from TC12_x86:
Code: [Select]
tc@box:/tmp/tcloop/netsurf/usr/local/bin$ ldd ./netsurf-gtk
        statically linked
tc@box:/tmp/tcloop/netsurf/usr/local/bin$ ls -al *
-rwxr-xr-x    1 tc       staff      2248504 Feb 17  2020 netsurf-gtk
tc@box:/tmp/tcloop/netsurf/usr/local/bin$ cd /tmp/tcloop/netsurf-gtk3/usr/local/bin/
tc@box:/tmp/tcloop/netsurf-gtk3/usr/local/bin$ ls -al *
-rwxr-xr-x    1 root     root       4234668 Apr 13 17:41 netsurf-gtk3
tc@box:/tmp/tcloop/netsurf-gtk3/usr/local/bin$
Wow, so netsurf-gtk (gtk2) is statistically linked (no dependency) at 2.2MB, but dynamically linked netsurf-gtk3 is 4.2MB and also it drags a lot of dependencies?
Moreover, installing only netsurf-gtk3 will start with empty/bad window; only after i installed also netsurf (gtk2) and started/stoped it, then netsuft-gtk3 runs OK. So missing a dependency (maybe glibc_gconv, as I saw the loading order in control-panel/filesystem)
Code: [Select]
/dev/loop119              2.1M      2.1M         0 100% /tmp/tcloop/netsurf-gtk3
/dev/loop120              1.3M      1.3M         0 100% /tmp/tcloop/gcc_libs
/dev/loop121            128.0K    128.0K         0 100% /tmp/tcloop/gamin
/dev/loop122             92.0K     92.0K         0 100% /tmp/tcloop/dbus-glib
/dev/loop123            404.0K    404.0K         0 100% /tmp/tcloop/libasound
/dev/loop124             69.1M     69.1M         0 100% /tmp/tcloop/firefox85
/dev/loop125              3.0M      3.0M         0 100% /tmp/tcloop/glibc_gconv
/dev/loop126              2.3M      2.3M         0 100% /tmp/tcloop/gtk2
/dev/loop127              2.5M      2.5M         0 100% /tmp/tcloop/netsurf
Title: Re: Netsurf
Post by: nick65go on May 05, 2021, 01:31:01 PM
incited by netsurf small size (because statically linked), i found https://github.com/oasislinux/oasis
"All software in the base system is linked statically, including the display server (velox) and web browser (netsurf). Any POSIX system with git, lua, curl, a sha256 utility, standard compression utilities, and an x86_64-linux-musl cross compiler can be used to bootstrap oasis".
Oh, stop dreaming, back to tinycore...
Title: Re: Netsurf
Post by: jazzbiker on May 05, 2021, 10:28:23 PM
Hi, nick65go!

If netsurf-gtk is statically linked, then what the use is of netsurf.tcz.dep? ;)
And size of the binary file is very close to the size of the extension...
We live in the cruel world - netsurf-gtk is compressed self-extracting binary.

Sorry for destroying the sweet dreams....
Title: Re: Netsurf
Post by: nick65go on May 06, 2021, 12:48:56 AM
We live in the cruel world - netsurf-gtk is compressed self-extracting binary.
nice catch jazzbiker, you are rigth! from win10, I uncompressed netsurf.tcz with 7zip, then using notepad++ I saw in the file header the "UPX" string at offset 153.
BTW: still focused on FLTK as GUI all-over :) ; if not, then toybox + muslc + statically compiled for small appliances.
Title: Re: Netsurf
Post by: nick65go on May 06, 2021, 12:54:52 PM
From TC12_x64, I run qemu 3.1.0 with kvm-amd kernel module. The virtual machine is "oasis", a qcow file from https://github.com/oasislinux/oasis
 (https://github.com/oasislinux/oasis)The kernel is 5.9.11 x64 (in hex-editor I saw string Alpine 3.9 in it), the server is velox (something Wayland based, but ask for DRM acceleration) of 1.9 MB, and netsurf 3.10 is 3.5 MB statically linked. (No musl library! in this system, is basic for now). All devices are virtual (vga, network card, file system etc).
The amazing thing is the speed of this variant of netsurf x64 is the same (0.6 - 0.8 seconds for bbc.co.uk), even in qemu, versus the real TC12-x64 5.10.3 kernel with netsurf-gtk 3.9.

The main point (to take home) is that a common linux user can have a web-browser (with java script), as small as 3.6 MB.
EDIT: Sorry! Javascript is not enabled; or I do not know how to enable it in this new X environment (I see not menu/buttons).
Title: Re: Netsurf
Post by: jazzbiker on May 06, 2021, 01:43:51 PM
Hi, nick65go!

When I was building netsurf I tried netsurf-fbdev too. It has somewhat reduced interface - not tabs, fonts linked statically. Was not those netsurf, which You run in the VM, such a version? I expected, that fbdev version will run without X over native fbdev, but I didn't succeed, I was able to run it only under X.
Title: Re: Netsurf
Post by: nick65go on May 06, 2021, 03:15:36 PM
understanding "lua" programming is over my pay grade ;)
but from https://github.com/oasislinux/oasis/blob/master/pkg/netsurf/gen.lua
it seams to have true type fonts, wayland (so is not frame-buffer), but without JavaScript, because the only string "javascript" is
Code: [Select]
exe('netsurf', [[
  content/(
    handlers/(
      javascript/(fetcher.c none/none.c)

Title: Re: Netsurf
Post by: jazzbiker on May 06, 2021, 04:10:19 PM
Hi, nick65go!

It appears, that I saved netsurf for fb as tcz, and now write this post with its help. It isn't fully static, at least it needs curl. Font is dejavu only ttf. Screen size is fixed!!! Extension is 1.2M in size. How can I determine,  that js is on? Integration with the mouse is poor: I can use it for positioning cursor only. So strange enough, but small.




 
Title: Re: Netsurf
Post by: nick65go on May 07, 2021, 03:25:44 AM
Some clarification (these are notes to myself here):
Code: [Select]
https://en.wikipedia.org/wiki/NetSurf
but as of December 2012 there are some NetSurf preview-builds available which contain early-stage JavaScript support (later much improved).[14]
"NetSurf's JavaScript engine (Duktape)"
and
Code: [Select]
http://mirrors.dotsrc.org/tinycorelinux/4.x/x86/tcz/netsurf-fb.tcz.info
Title:        netsurf-fb.tcz
Size:        568K; Total size = 8.52 MB
Tags:        NetSurf fb framebuffer lightweight fast web browser
Current:    2012/03/09 First release. Version 2.8
and
Code: [Select]
http://mirrors.dotsrc.org/tinycorelinux/4.x/x86/tcz/netsurf-gtk.tcz.info
Title:        netsurf-gtk.tcz
Size:        1008K; Total size = 18.23 MB
Tags:        NetSurf Gtk2 lightweight fast web browser
Current:    2012/03/06 First release. Version 2.8
So, these mean that netsurf 2.8 (2012/03/09) did not have javascript (wikipedia shows it was after 2012/12/01)
And the netsurf-gtk 2.8 size + dependencies were 18+ MB already, in compressed tcz.
So uncompressed will double size and then staically liked maybe will shrink to half, and final result maybe still have around 18 MB, with GTK2 and X.org.
Then
Code: [Select]
https://en.wikipedia.org/wiki/NetSurf
In July 2019 NetSurf 3.9 was released, with support for CSS Media Queries (level 4) and improvements to JavaScript handling.
For PC, the RAM is important, because it can hardly be upgraded; but storage size matters less, because USB sticks are cheap and have big storage size.
Summary: maybe (not yet released in the internet) netsurf 3.10 (May 2020) with FLTK can reduce the total RAM size. The JavaScript engine (incomplet but maybe sufficient) is "Duktape", as wikipedia says it.
 
Title: Re: Netsurf
Post by: Juanito on May 09, 2021, 07:34:19 AM
TC has netsurf 3.9 with gtk2, and netsurf 3.10 with gtk3, but recently I found that netsurf could have other interfaces:
https://git.netsurf-browser.org/netsurf.git/log/?h=vince/fltk (https://git.netsurf-browser.org/netsurf.git/log/?h=vince/fltk)

I built netsurf-fltk, but it was unusable - perhaps I built it wrongly (it's a mess to build from git).
Title: Re: Netsurf
Post by: cast-fish on May 09, 2021, 07:37:19 AM
Hello,

Netsurf, is a Lovely browser   (somehow) .

Free of course.

........yes.

Thx

C