Skip to content

Add netsurf package#243

Merged
Eeems merged 3 commits into
vellum-dev:mainfrom
MaicroNotHard:main
Jun 27, 2026
Merged

Add netsurf package#243
Eeems merged 3 commits into
vellum-dev:mainfrom
MaicroNotHard:main

Conversation

@MaicroNotHard

Copy link
Copy Markdown
Contributor

Summary

Test plan

  • Built and ran on a reMarkable 2: basic browsing, on-screen keyboard, and touch input work.
  • Not tested on rM1 and RMPP*: no hardware available. I would appreciate testing/feedback others.

LLM Acknowledgement: Claude helped with this PR.

Comment thread packages/netsurf/VELBUILD Outdated
@Eeems

Eeems commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator

Your test plan mentions not testing on the rMPP, does this mean you tested on a rMPPM or rMPPure? If so, why is this marked as armv7 only?

@MaicroNotHard

Copy link
Copy Markdown
Contributor Author

@Eeems I wrote RMPP*. I thought this could pattern match any other rMPP-prefixed device names.
I only have rM2 so I can only test on it.
Should I mark it as armv7 only?

@Eeems

Eeems commented Jun 20, 2026

Copy link
Copy Markdown
Collaborator

It's already marked as armv7 only.

@MaicroNotHard

Copy link
Copy Markdown
Contributor Author

I know. And I think it is proper to be marked as armv7 only at this stage.

@Eeems

Eeems commented Jun 21, 2026

Copy link
Copy Markdown
Collaborator

I'm confused now, I asked why it was marked as armv7 only if your test plan seems to indicate that you want the aarch64 devices to be tested. You then asked if it should be marked as armv7 only, to which I replied that it already was. You are now saying you know it was and you think it should only be armv7 only at this stage.

So are you wanting aarch64 (rMPP, rMPPM, and rMPPure) testing to be done or not?

@MaicroNotHard

Copy link
Copy Markdown
Contributor Author

I want this to be tested on aarch64 devices, but I didn't understand how I should mark it. I think to express the interest, I need to mark it differently and include both armv7 and aarach64.
I had the (incorrected) impression that since I only tested it on rM2, which is armv7, then it should only be marked as what it had been tested on, and not marked as what it would be tested on.
Sorry for the confusion.

Currently there are gaps in cross-building on aarch64. I am making changes to close the gap.
arch= will eventually flip to "armv7 aarch64"

Comment thread packages/netsurf/VELBUILD Outdated
@Eeems

Eeems commented Jun 21, 2026

Copy link
Copy Markdown
Collaborator

Currently there are gaps in cross-building on aarch64. I am making changes to close the gap.
arch= will eventually flip to "armv7 aarch64"

What gaps are there currently? If it's not ready for building on aarch64, that is a different matter that doesn't need to hold up this PR, and can be resolved in a future PR.

@MaicroNotHard

Copy link
Copy Markdown
Contributor Author

Like you pointed out, the gap was that aarch64 build was bypassed.
Now both archs build a working nsfb binary end-to-end, including through the vbuild pipeline.
arch= is flipped to "armv7 aarch64" now.

@Eeems

Eeems commented Jun 22, 2026

Copy link
Copy Markdown
Collaborator

It looks like you did a bad merge and now there are 267 different commits, and unresolved merge conflicts in the tree.

Ports the MaicroNotHard/netsurf-reMarkable framebuffer browser
(previously a Toltec package, originally by alex0809, now archived) to
a Vellum VELBUILD recipe, running through appload + qtfb-shim like
tilem/yaft. Bundles libevdev statically (matching the other VELBUILD
dependencies), fetches DejaVu fonts and Noto Sans CJK SC for CJK
fallback rendering, and pulls the netsurf-reMarkable source from
upstream at build time (no Vellum font package exists yet; keeps
binary blobs out of git history).

Reuses the OS-provided OpenSSL 3.x/curl rather than cross-building
static OpenSSL 1.1.1k/curl 7.75.0, since the reMarkable OS already
ships matching libssl.so.3/libcrypto.so.3/libcurl.so.4.

QTFB_SHIM_INPUT_MODE is set to NATIVE so the shim passes real evdev
devices through unmodified, matching what netsurf's own
libevdev-capability-based device scanner expects (and, separately,
ensures /sys/devices/soc0/machine reflects the true hardware model
rather than a virtualized one, which matters for netsurf's own
native rM1/rM2 detection and X-axis touch handling).
…pport)

Bumps the pinned netsurf-reMarkable commit to pick up a rebase onto
latest upstream NetSurf plus WebP and JPEG-XL image decoder support,
and drops the now-unneeded v0.5.0-wip branch reference from CI. All
curl fetches in the upstream build scripts now retry on transient
network failures (observed once on freedesktop.org's libevdev mirror).

Enables aarch64 (RMPP/RMPPM/RMPPure): netsurf-reMarkable's input layer
now recognizes the RMPP machine names and treats them like RM2 (no
x-axis invert). Verified armv7 and aarch64 both build a working nsfb
binary end-to-end; the touch-input mapping itself is unverified on
real RMPP hardware - please report back if it's wrong.

license is GPL-2.0-only, not GPL-2.0-or-later: upstream's COPYING
grants "version 2 of the License" with no or-later clause, and netsurf
statically links that GPL-2.0-only core. GPL-2.0-only also matches the
repo's own precedent for v2-only packages (puzzles,
vellum-bash-completion, netevent).
@MaicroNotHard

Copy link
Copy Markdown
Contributor Author

Yeah, I did a bad merge...

The latest forch-push should be good and fixing things.

@Eeems

Eeems commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator

/publish-testing

@github-actions

Copy link
Copy Markdown

Packages published to testing repo:

  • netsurf

Install with:

vellum add netsurf@testing

@Eeems Eeems left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • The netsurf icon does not look good on any of the devices (rM1, rM2, rMPP, and rMPPM), it can be hard to read, is there an alternative that can be use?
  • When opening on the rMPPM nothing displays until you swipe down from the top
  • Pen/touch input do not work on the rMPP and rMPPM appears to have x and y inverted, either set QTFB_SHIM_MODEL to RM1 for all devices, or properly implement input handling for the other devices. The rMPPure should have the same issue.
  • The onscreen keyboard fills the empty spaces where there is no key with black instead of white

@MaicroNotHard

Copy link
Copy Markdown
Contributor Author

Supporting changes are merged into the libnsfb-reMarkable, netsurf-base-reMarkable and netsurf-reMarkable; the package pins their main commits. Verified on rM2 and built green for armv7+aarch64 in my fork's CI.

@Eeems

Eeems commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

@MaicroNotHard why are both of your netsurf-reMarkable and netsurf-base-reMarkable forks wildly out of sync with the upstream? I would only expect to see it saying you are ahead commits, not behind by almost the same number.

Review fixes for the Paper Pro (and general polish):
- Replace the wide wordmark launcher icon with a square, high-contrast
  NetSurf globe that stays legible on all devices.
- Switch the qtfb-shim to RM1 emulation (QTFB_SHIM_MODEL=RM1) so input and
  framebuffer go through the same translation layer used by every other
  appload app. This is viable now that libnsfb no longer hard-requires the
  RM1-only physical-button device.
- Bump netsurf-reMarkable to pull the libnsfb fixes (optional gpio device +
  full-screen refresh on first frame) and the white on-screen keyboard.
@MaicroNotHard

MaicroNotHard commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

Cleaned up the fork hygiene so each one is ahead-only:

  • netsurf base: the old netsurf-base-reMarkable was a fork of alex0809's netsurf-base (abandoned since 2021), and its embedded netsurf history had been re-imported with re-hashed commit SHAs that match neither netsurf-browser's GitHub mirror nor the canonical git.netsurf-browser.org, so it had no common ancestor with upstream at all. Replaced it with a clean fork made directly from the official repo: MaicroNotHard/netsurf. The reMarkable framebuffer port is now 4 reviewable commits on top of netsurf-browser/netsurf master (remarkable branch) -> ahead 4, behind 0.
  • netsurf-reMarkable: replayed the build/packaging changes on top of alex0809/netsurf-reMarkable:main -> ahead 3, behind 0. (The old 128/112 divergence was rebase-history noise; the actual delta was ~11 build files.)

The package now pins those clean main commits, and all netsurf-base-reMarkable references are gone. Builds green on armv7 + aarch64.

@Eeems

Eeems commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

/publish-testing

@github-actions

Copy link
Copy Markdown

Packages published to testing repo:

  • netsurf

Install with:

vellum add netsurf@testing

@Eeems Eeems merged commit 327bb40 into vellum-dev:main Jun 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants