Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

netsurf: 3.9 → 3.10 #96177

Closed
wants to merge 13 commits into from
Closed

netsurf: 3.9 → 3.10 #96177

wants to merge 13 commits into from

Conversation

maxxk
Copy link
Contributor

@maxxk maxxk commented Aug 24, 2020

Motivation for this change

Update Netsurf to latest public release.
GTK+3 backend is usable in native Wayland. It is the default GTK backend upstream.
I use GTK+3 backend in Wayland occasionally for a few months without any problems.
For this PR I checked also GTK+2 (toolbar icons are missing; I tried updating NETSURF_GTK_RES_PATH as in docs, without any luck) and framebuffer/sixel (as in #65360 (comment) ) backends.

I'd like to ask @samueldr and @S-NA who updated netsurf to 3.9 to review these changes.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

nixpkgs-review fails:

jvzpgfxwj79nka6lb8cids7pgyvb-qtquickcontrols-5.14.2/lib/qt-5.14.2/qml/QtQuick/Controls/Styles/Base/images/needle.png
  mkdir: cannot create directory '/nix/store/w8k3lq0mxlwkjxqvak956p3jfrhhbmx7-qtdeclarative-5.14.2-bin/lib/qt-5.14.2/qml/QtQuick/Controls': Permission denied
  make[2]: *** [Makefile:1642: install_qmlcacheinst] Error 1
  make[2]: Leaving directory '/build/qtquickcontrols-everywhere-src-5.14.2/src/controls'
  make[1]: *** [Makefile:64: sub-controls-install_subtargets] Error 2
  make[1]: Leaving directory '/build/qtquickcontrols-everywhere-src-5.14.2/src'
  make: *** [Makefile:61: sub-src-install_subtargets] Error 2
cannot build derivation '/nix/store/7h32a8mlw3y566swsk5m6v4an2pqx22n-qtwayland-5.14.2.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/fgb7yzfif8j363xx95yzj7cl63385mdb-hook.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/gr6syv50qvlf9kc43m8fg3zkmyh0nvc2-gmic-qt-gimp-2.7.1.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/mmc5baix6wf81wmq64b9b73i8f26vil2-gimp-with-plugins-2.10.20.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/7ahcvxy0iqhkzpcm0yg2l4lvwxxql9ji-env.drv': 4 dependencies couldn't be built
[0 built (3 failed), 0.0 MiB DL]
error: build of '/nix/store/7ahcvxy0iqhkzpcm0yg2l4lvwxxql9ji-env.drv' failed
4 packages failed to build:
gimp-with-plugins gimpPlugins.focusblur gimpPlugins.gmic gimpPlugins.texturize

29 packages built:
gegl_0_4 gimp gimpPlugins.exposureBlend gimpPlugins.fourier gimpPlugins.gap gimpPlugins.gimplensfun gimpPlugins.lightning gimpPlugins.lqrPlugin gimpPlugins.resynthesizer gimpPlugins.ufraw gimpPlugins.waveletSharpen gnome-photos netsurf.browser netsurf.buildsystem netsurf.libcss netsurf.libdom netsurf.libhubbub netsurf.libnsbmp netsurf.libnsfb netsurf.libnsgif netsurf.libnslog netsurf.libnspsl netsurf.libnsutils netsurf.libparserutils netsurf.libsvgtiny netsurf.libutf8proc netsurf.libwapcaplet netsurf.nsgenbind ufraw

But it could be because of staging merge, I can't see anything related to netsurf libraries in output. Found these packages as broken in staging:

qtquickcontrols was failing in staging https://hydra.nixos.org/build/125404486 mentioned in #95492
gimpPlugins.gmic was failing in staging https://hydra.nixos.org/build/125459331
gimpPlugins.texturize is broken

meta.broken = true; # https://github.com/lmanul/gimp-texturize/issues/1

gimpPlugins.focusblur is broken

@samueldr
Copy link
Member

samueldr commented Aug 26, 2020

Verified with gtk3:

image


Tracked the GTK2 issue down to:

@samueldr
Copy link
Member

samueldr commented Aug 27, 2020

The peeps at #netsurf on freenode said the following:

[02:59:55] <Kinnison> samueldr: gtk2 is not meant to be on the way out, but we do default to gtk3 these days. If there're issues with gtk2 then we need to work out how to fix them, so ideas welcome.
[03:52:22] <kyllikki> samueldr: and the gtk stock icons are deprecated in GTK2 basically if there are missing icons in your setup the OS installation of GTK is missing a complete standard icon set. e.g. Debian ships https://packages.debian.org/buster/murrine-themes to provide such resources

Which would point toward something I had in mind, that it may be related to the current theme lacking the icon names desired.

@maxxk
Copy link
Contributor Author

maxxk commented Aug 27, 2020

Thank you! With your input I was able to fix GTK2 version by replacing "#ifdef" with unconditional NSGTK_USE_ICON_NAME here:

https://source.netsurf-browser.org/netsurf.git/tree/frontends/gtk/compat.h?id=11aa682154af6e0d4c7920bb2983df5a6ded126f#n31

For now I will probably test GTK3 version, just in case, and add a patch to this PR.

@maxxk
Copy link
Contributor Author

maxxk commented Aug 29, 2020

Ok, I was too optimistic; it wasn't that easy. I don't think it is possible to get "back" and "forward" buttons working in GTK+2 by icon names due to bidirectional icon handling. This issue is probably related:
https://bugzilla.mozilla.org/show_bug.cgi?id=621962
As noted in patch, it is probably possible to add more icons to menu, but I don't think it is worth doing for legacy code by complicating "happy path" for GTK.

Default "gtk" interface is updated to "gtk3" in `all-packages.nix.

I also removed "Makefile.conf": based on the source code it looks that it accepts only "Makefile.config" file name. Autodetection works fine and GLib version in nixpkgs supports GResource embedding anyway, there is no need in additional override.

@dotlambda
Copy link
Member

superseded by #98991

@dotlambda dotlambda closed this Feb 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants