v0.3.3
Zervo now builds for every platform it targets.
Installing
macOS (Apple Silicon, macOS 11+) — Zervo-0.3.3.dmg
Drag Zervo to Applications, then:
xattr -dr com.apple.quarantine /Applications/Zervo.app
That step is not optional and nothing is wrong with the download. macOS refuses
to open anything from the internet unless it is signed with a paid Apple
Developer ID and notarised, and reports it as "damaged" when it is not. If you
would rather not use a terminal: open it, let macOS refuse, then go to System
Settings → Privacy & Security and choose Open Anyway.
Debian and Ubuntu — zervo_0.3.3_amd64.deb
sudo apt install ./zervo_0.3.3_amd64.deb
Fedora — zervo-0.3.3-1.fc41.x86_64.rpm
sudo dnf install ./zervo-0.3.3-1.fc41.x86_64.rpm
Both packages declare their dependencies, so the package manager pulls in what
they need. Neither is signed, which on Linux is a warning rather than a wall.
Windows x64 — Zervo-0.3.3-windows-x64.zip
Unzip it anywhere and run Zervo.exe; it is self-contained. Windows SmartScreen
will warn about an unrecognised publisher, for the same reason macOS does:
nobody has paid for a signing certificate. Choose More info → Run anyway.
Please read this before trying the Linux or Windows builds
These are the first builds for either platform that have ever existed. They
compile, they package and they install — that is what has been verified. Nobody
has run one. Whether Zervo opens a window on Linux or Windows is untested: the
rendering context, X11 versus Wayland, and the GL setup are all unexercised
there. If it does not start, that is expected rather than surprising, and a bug
report saying so would be genuinely useful.
macOS is the only platform where the browser has actually been used.
What is new
Windows. One self-contained Zervo.exe, built as a GUI application so it
does not leave a terminal behind the window. No media there yet — GStreamer on
Windows means an MSI and a bundling step of its own. Downloads are in.
The navigation bar can be arranged. The wand beside the add-widget button
turns the row into things to move rather than press: drag items within a group
or across the address pill, with a caret showing where a drop lands; the x takes
one off; a tray underneath holds whatever is off the bar.
Widgets. They sit on a grid, drop anywhere on the shelf including a row with
nothing above it, and resize by dragging a corner or from a list of sizes. Cells
narrow with the window rather than the grid losing columns, so positions hold at
any window size. The clock and the two media widgets are real: Servo reports
media session metadata and takes playback actions, so the player controls drive
whatever the page is playing.
Fixes. Hover-only controls could not be clicked — remove and resize on
widgets, remove and rename on favourites — because registering a control on top
of a card is what stops the card counting as hovered. The favourites card grew
out of the star and swallowed the click that opened it.
Full detail in CHANGELOG.md;
what is still missing is written down in
docs/PARITY.md,
including the things that need engine work rather than embedder work.
Contributing
Most of what is left is embedder work rather than engine work, so it is more
approachable than "contribute to a browser" sounds. docs/PARITY.md lists the
gaps in the order they hurt, with where in the code each one lives.