Sunday, 29 September 2019

Re: [gccsdk] Patch to fix the URLs used when building the toolchain

I've commited this patch and the previous one. I also did a fresh build of
GCCSDK and it completed successfully.

Thanks.


In article
<CAN-tyhQ=8C0azFXiF6vQG9ui3X=aGtQKVKauA8moV0Fk8X2pxg@mail.gmail.com>,
Cameron Cawley <ccawley2011@gmail.com> wrote:
> Hi

> The attached patch updates the URLs used when building the toolchain to use
> HTTPS. It also fixes a broken link for libmpc, which required updating it
> from 0.8.2 to 1.1.0.

> Regards


_______________________________________________
GCCSDK mailing list gcc@gccsdk.riscos.info
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK

Wednesday, 25 September 2019

[gccsdk] Patch to fix the URLs used when building the toolchain

Hi

The attached patch updates the URLs used when building the toolchain to use HTTPS. It also fixes a broken link for libmpc, which required updating it from 0.8.2 to 1.1.0.

Regards

Re: Google and #spf

On Mon, Sep 23, 2019 at 03:27:59PM +0100, Jim Nagel wrote:
> Sure makes one wish for that "Javasccript on/off" button on the Netsurf
> button bar that we've oft wished for!

Please remember that there is no RISC OS front end maintainer for
NetSurf anymore - nobody is working on the RISC OS front end beyond
making it build with core changes. If anyone wants to volunteer for
this please step forward! Some people have expressed interest in the
past but have either vanished or discovered they did not have the spare
time they thought.

B.

Tuesday, 24 September 2019

Re: Unicode question

In message <6ebd88f857.boase@boase.myzen.co.uk>
Bernard Boase <b.boase@bcs.org> wrote:

> I have similar settings for Netsurf on Iyonix and ARMX6 and, for
> example, a UTF-8 encoded file of Cyrillic characters displays
> correctly on both. But Wikipedia's nav bar language lists differ.
>
> Having deleted RUfl_cache, Iyonix shows all correctly except Georgian
>
> ARMX6 showed all correctly except
> Korean, Japanese, Thai and Chinese
> until I deleted RUfl_cache, and now shows none of the non-Latin scripts.
>
> Why the differences?

Can't help here.

> Indeed how come only Acorn fonts are apparently
> needed in Netsurf Choices?

This is because the fonts you specify are defaults - what to use if the
web page doesn't include font information. Consequently, it only needs
8-bit fonts.

--
Nick Roberts tigger @ orpheusinternet.co.uk

Hanlon's Razor: Never attribute to malice that which
can be adequately explained by stupidity.

Re: Google and #spf

In article <57f8148b3bdave@triffid.co.uk>, Dave <dave@triffid.co.uk>
wrote:
> In article <5e2d0df857.jim@6.abbeypress.net>, Jim Nagel
> <netsurf@abbeypress.co.uk> wrote: [Snippy]

> > Have never found a way of programming Keystroke to do this. If
> > anyone has succeeded, please export the relevant Keystroke Selection
> > file & share it.

> Must confess I've tried with Keystroke a lot of times but never
> succeeded.

The only way to keep the JS setting on screen as a button is to
1. open choices
2. open content
3. minimise/put configuration on the iconbar
4. toggle JavaScript
5. click Set with Adjust
6. goto 4

--

Tim Hill
Webmaster, www.timil.com

websites : php : RISC OS

Unicode question

I have similar settings for Netsurf on Iyonix and ARMX6 and, for example,
a UTF-8 encoded file of Cyrillic characters displays correctly on both.
But Wikipedia's nav bar language lists differ.

Having deleted RUfl_cache, Iyonix shows all correctly except Georgian

ARMX6 showed all correctly except
Korean, Japanese, Thai and Chinese
until I deleted RUfl_cache, and now shows none of the non-Latin scripts.

Why the differences? Indeed how come only Acorn fonts are apparently
needed in Netsurf Choices? Setups are:

Iyonix OS 5.24
ARMX6 OS 5.25 (25-Apr-2018)

FontManager 3.79
FontDir Pro 3.23 (ARMX6 only)
Netsurf 3.10 (Dev CI #4851)
Netsurf Choices Fonts:
- Homerton
- Trinity
- Corpus
- Sassoon
- Pembroke
- Sans-serif
Unicode fonts available (but not specified to Netsurf) include:
- Cyberbit
- DejaVu (ARMX6 only)

--
Bernard

Monday, 23 September 2019

Re: Google and #spf

On 23 Sep, Brian Howlett wrote:

> Titanium here, JS enabled - works but vv slow with Netsurf 4851 and the
> previous version I had installed, 4845.

Actually, I may have to take that back - although it certainly worked in
4845, it eventually had a problem in 4851 - it just prints the JS to the
NS window, along with the text normally displayed on the page.

Neither version displays the Google Doodle wither, just a pink rectangle
which is a .png file.
--
Brian Howlett
--------------------------------------------
"There ain't half been some clever bastards"
- the late Ian Dury

Re: Google and #spf

On 23 Sep, Dave wrote:

> I can confirm...
> #4850 with Javascript enabled, google.co.uk doesn't work.

> With Javascript disabled, google does work okay.

> VRPC-DL running RISC OS 6.20

Titanium here, JS enabled - works but vv slow with Netsurf 4851 and the
previous version I had installed, 4845.
--
Brian Howlett
------------------------------------------------------------------
This place would be a paradise tomorrow, if every department had a
supervisor with a sub-machine gun.

Re: Google and #spf

In article <5e2d0df857.jim@6.abbeypress.net>,
Jim Nagel <netsurf@abbeypress.co.uk> wrote:
[Snippy]

> Have never found a way of programming Keystroke to do this. If anyone
> has succeeded, please export the relevant Keystroke Selection file &
> share it.

Must confess I've tried with Keystroke a lot of times but never succeeded.

Dave

--

Dave Triffid

Re: Google and #spf

Dave Sine Surnomine wrote on 23 Sep:
> #4850 with Javascript enabled, google.co.uk doesn't work.
> With Javascript disabled, google does work okay.

You're right!

Sure makes one wish for that "Javasccript on/off" button on the Netsurf
button bar that we've oft wished for! (Ancient Fresco had one, could
pinch the icon from Fresco.) So much handier than repetitititive trips to
iconbar Choices > Content > Disable Javascript > Set.

Have never found a way of programming Keystroke to do this. If anyone has
succeeded, please export the relevant Keystroke Selection file & share it.

Or a "switch" that could be added to an URL file to set Javascript off,
when relevant to that particular URL, as in this case.


And thanks for looking into the problem, Daniel.

--
Jim Nagel www.archivemag.co.uk

Sunday, 22 September 2019

Re: Google and #spf

In article <a4fddcf757.pittdj+@iyonix.home>,
David Pitt <pittdj@pittdj.co.uk> wrote:
> In message <20190923044637.GK1816@somnambulist.local>
> Daniel Silverstone <dsilvers@netsurf-browser.org> wrote:

> > On Mon, Sep 23, 2019 at 01:27:52 +0100, Jim Nagel wrote:
> >> For the past few days, telling Netsurf to go to http://google.co.uk
> >> results in an endless loop and no joy. What's this all about?
> >>
> >> The Netsurf URL bar changes from what I typed to this:
> >> http://www.google.co.uk/#spf=1569197185001
> >> The 13-digit number keeps changing, and the hourglass keeps running.
> >> With or without Javascript enabled.

> > Without JS enabled I'm not sure.

> [snip]

> #4850 is OK here with Javascript disabled as checked on a Titanium,
> Raspberry Pi Mk1, and RPCEmu.

> The recent 3.9 release is OK with Javascript enabled.

I can confirm...
#4850 with Javascript enabled, google.co.uk doesn't work.

With Javascript disabled, google does work okay.

VRPC-DL running RISC OS 6.20

Dave

--

Dave Triffid

Re: Google and #spf

In message <20190923044637.GK1816@somnambulist.local>
Daniel Silverstone <dsilvers@netsurf-browser.org> wrote:

> On Mon, Sep 23, 2019 at 01:27:52 +0100, Jim Nagel wrote:
>> For the past few days, telling Netsurf to go to http://google.co.uk
>> results in an endless loop and no joy. What's this all about?
>>
>> The Netsurf URL bar changes from what I typed to this:
>> http://www.google.co.uk/#spf=1569197185001
>> The 13-digit number keeps changing, and the hourglass keeps running.
>> With or without Javascript enabled.

> Without JS enabled I'm not sure.

[snip]

#4850 is OK here with Javascript disabled as checked on a Titanium,
Raspberry Pi Mk1, and RPCEmu.

The recent 3.9 release is OK with Javascript enabled.
--
David Pitt
Titanium

Re: Google and #spf

On Mon, Sep 23, 2019 at 01:27:52 +0100, Jim Nagel wrote:
> For the past few days, telling Netsurf to go to http://google.co.uk
> results in an endless loop and no joy. What's this all about?
>
> The Netsurf URL bar changes from what I typed to this:
> http://www.google.co.uk/#spf=1569197185001
> The 13-digit number keeps changing, and the hourglass keeps running.
> With or without Javascript enabled.

Without JS enabled I'm not sure. With JS enabled it's a performance issue.
I cannot replicate it on my laptop because it's so much faster than any RISC OS
system, but I believe it'll be due to some JS trying to work stuff out and
failing because it's too slow. I will attempt to root out the problem
but it's quite possible I won't be able to for a week or more. We're aware
of it as https://bugs.netsurf-browser.org/mantis/view.php?id=2702

D.

--
Daniel Silverstone http://www.netsurf-browser.org/
PGP mail accepted and encouraged. Key Id: 3CCE BABE 206C 3B69

Google and #spf

For the past few days, telling Netsurf to go to http://google.co.uk
results in an endless loop and no joy. What's this all about?

The Netsurf URL bar changes from what I typed to this:
http://www.google.co.uk/#spf=1569197185001
The 13-digit number keeps changing, and the hourglass keeps running.
With or without Javascript enabled.

Was using Netsurf #4845 when this phenomenon began. Downloaded #4850 just
now, but still no joy.

https://duckduckgo.com/html/search continues to work with no prob.

So what is Google playing at?
Is a fix likely for Netsurf?


--
Jim Nagel www.archivemag.co.uk

Monday, 9 September 2019

[PATCH] DirectFB port

diff -Naur libnsfb.orig/Makefile libnsfb/Makefile
--- libnsfb.orig/Makefile 2019-09-05 15:05:20.000000000 +0000
+++ libnsfb/Makefile 2019-09-05 15:05:32.000000000 +0000
@@ -44,11 +44,19 @@

# determine which surface handlers can be compiled based upon avalable library
$(eval $(call pkg_config_package_available,NSFB_VNC_AVAILABLE,libvncserver))
+$(eval $(call pkg_config_package_available,NSFB_DIRECTFB_AVAILABLE,directfb))
$(eval $(call pkg_config_package_available,NSFB_SDL_AVAILABLE,sdl))
$(eval $(call pkg_config_package_available,NSFB_XCB_AVAILABLE,$(NSFB_XCB_PKG_NAMES)))
$(eval $(call pkg_config_package_available,NSFB_WLD_AVAILABLE,wayland-client))

# Flags and setup for each support library
+ifeq ($(NSFB_DIRECTFB_AVAILABLE),yes)
+ $(eval $(call pkg_config_package_add_flags,directfb,CFLAGS,LDFLAGS))
+ $(eval $(call pkg_config_package_add_flags,directfb,TESTCFLAGS,TESTLDFLAGS))
+
+ REQUIRED_PKGS := $(REQUIRED_PKGS) directfb
+endif
+
ifeq ($(NSFB_SDL_AVAILABLE),yes)
$(eval $(call pkg_config_package_add_flags,sdl,CFLAGS))
$(eval $(call pkg_config_package_add_flags,sdl,TESTCFLAGS,TESTLDFLAGS))
diff -Naur libnsfb.orig/README libnsfb/README
--- libnsfb.orig/README 2019-09-05 15:05:20.000000000 +0000
+++ libnsfb/README 2019-09-05 15:05:32.000000000 +0000
@@ -18,6 +18,7 @@

The following libraries may also be installed:

+ + DirectFB (for the DirectFB surface)
+ SDL 1.2 (for the SDL surface)
+ libxcb* (for the X11 surface)
* wayland-client (for wayland surface)
diff -Naur libnsfb.orig/include/libnsfb.h libnsfb/include/libnsfb.h
--- libnsfb.orig/include/libnsfb.h 2019-09-05 15:05:20.000000000 +0000
+++ libnsfb/include/libnsfb.h 2019-09-05 15:05:32.000000000 +0000
@@ -36,6 +36,7 @@
enum nsfb_type_e {
NSFB_SURFACE_NONE = 0, /**< No surface */
NSFB_SURFACE_RAM, /**< RAM surface */
+ NSFB_SURFACE_DIRECTFB, /**< DirectFB surface */
NSFB_SURFACE_SDL, /**< SDL surface */
NSFB_SURFACE_LINUX, /**< Linux framebuffer surface */
NSFB_SURFACE_VNC, /**< VNC surface */
diff -Naur libnsfb.orig/src/surface/Makefile libnsfb/src/surface/Makefile
--- libnsfb.orig/src/surface/Makefile 2019-09-05 15:05:20.000000000 +0000
+++ libnsfb/src/surface/Makefile 2019-09-05 15:05:32.000000000 +0000
@@ -4,6 +4,7 @@
SURFACE_HANDLER_yes := surface.c ram.c

# optional surface handlers
+SURFACE_HANDLER_$(NSFB_DIRECTFB_AVAILABLE) += directfb.c
SURFACE_HANDLER_$(NSFB_SDL_AVAILABLE) += sdl.c
SURFACE_HANDLER_$(NSFB_XCB_AVAILABLE) += x.c
SURFACE_HANDLER_$(NSFB_VNC_AVAILABLE) += vnc.c
diff -Naur libnsfb.orig/src/surface/directfb.c libnsfb/src/surface/directfb.c
--- libnsfb.orig/src/surface/directfb.c 1970-01-01 00:00:00.000000000 +0000
+++ libnsfb/src/surface/directfb.c 2019-09-05 15:05:32.000000000 +0000
@@ -0,0 +1,271 @@
+/*
+ * Copyright 2019 Nicolas Caramelli
+ *
+ * This file is part of libnsfb, http://www.netsurf-browser.org/
+ * Licenced under the MIT License,
+ * http://www.opensource.org/licenses/mit-license.php
+ */
+
+#include <directfb.h>
+
+#include "libnsfb.h"
+#include "libnsfb_event.h"
+
+#include "surface.h"
+#include "plot.h"
+
+typedef struct directfb_priv_s {
+ IDirectFB *dfb;
+ IDirectFBDisplayLayer *layer;
+ IDirectFBWindow *window;
+ IDirectFBSurface *surface;
+ IDirectFBEventBuffer *buffer;
+} directfb_priv_t;
+
+static int directfb_set_geometry(nsfb_t *nsfb, int width, int height,
+ enum nsfb_format_e format)
+{
+ if (nsfb->surface_priv != NULL) {
+ return -1;
+ }
+
+ nsfb->width = width;
+ nsfb->height = height;
+ if (format != NSFB_FMT_XRGB8888) {
+ return -1;
+ }
+
+ select_plotters(nsfb);
+
+ return 0;
+}
+
+static int directfb_initialise(nsfb_t *nsfb)
+{
+ directfb_priv_t *directfb_priv;
+ int ret = DFB_OK;
+ DFBWindowDescription desc;
+
+ if (nsfb->surface_priv != NULL) {
+ return -1;
+ }
+
+ directfb_priv = calloc(1, sizeof(directfb_priv_t));
+ if (directfb_priv == NULL) {
+ fprintf(stderr, "DirectFB private data allocation failed\n");
+ return -1;
+ }
+
+ ret = DirectFBInit(NULL, NULL);
+ if (ret) {
+ fprintf(stderr, "DirectFBInit failed: %s\n", DirectFBErrorString(ret));
+ free(directfb_priv);
+ return -1;
+ }
+
+ ret = DirectFBCreate(&directfb_priv->dfb);
+ if (ret) {
+ fprintf(stderr, "DirectFBCreate failed: %s\n",
+ DirectFBErrorString(ret));
+ free(directfb_priv);
+ return -1;
+ }
+
+ ret = directfb_priv->dfb->GetDisplayLayer(directfb_priv->dfb, DLID_PRIMARY,
+ &directfb_priv->layer);
+ if (ret) {
+ fprintf(stderr, "GetDisplayLayer failed: %s\n",
+ DirectFBErrorString(ret));
+ directfb_priv->dfb->Release(directfb_priv->dfb);
+ free(directfb_priv);
+ return -1;
+ }
+
+ desc.flags = DWDESC_WIDTH | DWDESC_HEIGHT | DSDESC_PIXELFORMAT;
+ desc.width = nsfb->width;
+ desc.height = nsfb->height;
+ desc.pixelformat = DSPF_ARGB;
+ ret = directfb_priv->layer->CreateWindow(directfb_priv->layer, &desc,
+ &directfb_priv->window);
+ if (ret) {
+ fprintf(stderr, "CreateWindow failed: %s\n", DirectFBErrorString(ret));
+ directfb_priv->layer->Release(directfb_priv->layer);
+ directfb_priv->dfb->Release(directfb_priv->dfb);
+ free(directfb_priv);
+ return -1;
+ }
+
+ ret = directfb_priv->window->GetSurface(directfb_priv->window,
+ &directfb_priv->surface);
+ if (ret) {
+ fprintf(stderr, "GetSurface failed: %s\n", DirectFBErrorString(ret));
+ directfb_priv->window->Release(directfb_priv->window);
+ directfb_priv->layer->Release(directfb_priv->layer);
+ directfb_priv->dfb->Release(directfb_priv->dfb);
+ free(directfb_priv);
+ return -1;
+ }
+
+ directfb_priv->surface->Lock(directfb_priv->surface, DSLF_WRITE,
+ (void **)&nsfb->ptr, &nsfb->linelen);
+ directfb_priv->surface->Unlock(directfb_priv->surface);
+
+ ret = directfb_priv->window->SetOpacity(directfb_priv->window, 0xff);
+ if (ret) {
+ fprintf(stderr, "SetOpacity failed: %s\n", DirectFBErrorString(ret));
+ directfb_priv->surface->Release(directfb_priv->surface);
+ directfb_priv->window->Release(directfb_priv->window);
+ directfb_priv->layer->Release(directfb_priv->layer);
+ directfb_priv->dfb->Release(directfb_priv->dfb);
+ free(directfb_priv);
+ return -1;
+ }
+
+ ret = directfb_priv->dfb->CreateEventBuffer(directfb_priv->dfb,
+ &directfb_priv->buffer);
+ if (ret) {
+ fprintf(stderr, "CreateEventBuffer failed: %s\n",
+ DirectFBErrorString(ret));
+ directfb_priv->surface->Release(directfb_priv->surface);
+ directfb_priv->window->Release(directfb_priv->window);
+ directfb_priv->layer->Release(directfb_priv->layer);
+ directfb_priv->dfb->Release(directfb_priv->dfb);
+ free(directfb_priv);
+ return -1;
+ }
+
+ ret = directfb_priv->window->AttachEventBuffer(directfb_priv->window,
+ directfb_priv->buffer);
+ if (ret) {
+ fprintf(stderr, "AttachEventBuffer failed: %s\n",
+ DirectFBErrorString(ret));
+ directfb_priv->buffer->Release(directfb_priv->buffer);
+ directfb_priv->surface->Release(directfb_priv->surface);
+ directfb_priv->window->Release(directfb_priv->window);
+ directfb_priv->layer->Release(directfb_priv->layer);
+ directfb_priv->dfb->Release(directfb_priv->dfb);
+ free(directfb_priv);
+ return -1;
+ }
+
+ nsfb->surface_priv = directfb_priv;
+
+ return 0;
+}
+
+static int directfb_finalise(nsfb_t *nsfb)
+{
+ directfb_priv_t *directfb_priv = nsfb->surface_priv;
+
+ if (directfb_priv == NULL) {
+ return 0;
+ }
+
+ directfb_priv->buffer->Release(directfb_priv->buffer);
+ directfb_priv->surface->Release(directfb_priv->surface);
+ directfb_priv->window->Release(directfb_priv->window);
+ directfb_priv->layer->Release(directfb_priv->layer);
+ directfb_priv->dfb->Release(directfb_priv->dfb);
+ free(directfb_priv);
+
+ return 0;
+}
+
+static bool directfb_input(nsfb_t *nsfb, nsfb_event_t *event, int timeout)
+{
+ directfb_priv_t *directfb_priv = nsfb->surface_priv;
+ int ret = DFB_OK;
+ DFBWindowEvent dfb_event;
+
+ if (directfb_priv == NULL) {
+ return false;
+ }
+
+ ret = directfb_priv->buffer->WaitForEventWithTimeout(directfb_priv->buffer,
+ timeout / 1000,
+ timeout % 1000);
+ if (ret == DFB_TIMEOUT) {
+ event->type = NSFB_EVENT_CONTROL;
+ event->value.controlcode = NSFB_CONTROL_TIMEOUT;
+ return true;
+ }
+
+ directfb_priv->buffer->GetEvent(directfb_priv->buffer,
+ (DFBEvent *)&dfb_event);
+
+ if (dfb_event.type == DWET_KEYDOWN) {
+ event->type = NSFB_EVENT_KEY_DOWN;
+ event->value.keycode = dfb_event.key_symbol;
+ } else if (dfb_event.type == DWET_KEYUP) {
+ event->type = NSFB_EVENT_KEY_UP;
+ event->value.keycode = dfb_event.key_symbol;
+ } else if (dfb_event.type == DWET_BUTTONDOWN) {
+ event->type = NSFB_EVENT_KEY_DOWN;
+ switch (dfb_event.button) {
+ case DIBI_LEFT:
+ event->value.keycode = NSFB_KEY_MOUSE_1;
+ break;
+ case DIBI_MIDDLE:
+ event->value.keycode = NSFB_KEY_MOUSE_2;
+ break;
+ case DIBI_RIGHT:
+ event->value.keycode = NSFB_KEY_MOUSE_3;
+ break;
+ default:
+ break;
+ }
+ } else if (dfb_event.type == DWET_BUTTONUP) {
+ event->type = NSFB_EVENT_KEY_UP;
+ switch (dfb_event.button) {
+ case DIBI_LEFT:
+ event->value.keycode = NSFB_KEY_MOUSE_1;
+ break;
+ case DIBI_MIDDLE:
+ event->value.keycode = NSFB_KEY_MOUSE_2;
+ break;
+ case DIBI_RIGHT:
+ event->value.keycode = NSFB_KEY_MOUSE_3;
+ break;
+ default:
+ break;
+ }
+ } else if (dfb_event.type == DWET_MOTION) {
+ event->type = NSFB_EVENT_MOVE_ABSOLUTE;
+ event->value.vector.x = dfb_event.x;
+ event->value.vector.y = dfb_event.y;
+ event->value.vector.z = 0;
+ } else {
+ event->type = NSFB_EVENT_NONE;
+ }
+
+ return true;
+}
+
+static int directfb_update(nsfb_t *nsfb, nsfb_bbox_t *box)
+{
+ directfb_priv_t *directfb_priv = nsfb->surface_priv;
+
+ if (directfb_priv != NULL) {
+ directfb_priv->surface->Flip(directfb_priv->surface,
+ (DFBRegion *)box, DSFLIP_WAITFORSYNC);
+ }
+
+ return 0;
+}
+
+const nsfb_surface_rtns_t directfb_rtns = {
+ .geometry = directfb_set_geometry,
+ .initialise = directfb_initialise,
+ .finalise = directfb_finalise,
+ .input = directfb_input,
+ .update = directfb_update,
+};
+
+NSFB_SURFACE_DEF(directfb, NSFB_SURFACE_DIRECTFB, &directfb_rtns)
+
+/*
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * End:
+ */
Hi all,

DirectFB may belong to the past, but here is a patch for people still interested in using it.
A screenshot with NetSurf running directly on top of DirectFB is available on the HiGFXback (History of graphics backends) project.

Nicolas Caramelli