Package: surf Version: 2.0+git20201107-2 Severity: grave Tags: upstream Justification: renders package unusable
Dear Maintainer, surf does not start anymore since version 2.0+git20201107. Expected behaviour : surf should start. Steps to reproduce : $ /usr/bin/surf output : (WebKitWebProcess:94294): GLib-CRITICAL **: 02:49:52.728: the GVariant format string '(ii)' has a type of '(ii)' but the given value has a type of 'i' (WebKitWebProcess:94294): GLib-CRITICAL **: 02:49:52.728: g_variant_get: assertion 'valid_format_string (format_string, TRUE, value)' failed (WebKitWebProcess:94294): GLib-CRITICAL **: 02:49:52.729: the GVariant format string '(ii)' has a type of '(ii)' but the given value has a type of 'i' (WebKitWebProcess:94294): GLib-CRITICAL **: 02:49:52.729: g_variant_get: assertion 'valid_format_string (format_string, TRUE, value)' failed web process terminated: crashed And surf crashes. The problem can be traced back to this specific upstream commit : e92fd1aa5f38c399f8fc5d263026fbd9d34ddfbb Which can be found at https://git.suckless.org/surf/commit/e92fd1aa5f38c399f8fc5d263026fbd9d34ddfbb.html One possible fix/workaround is the following : diff --git a/surf.c b/surf.c index ac832ff..e84a538 100644 --- a/surf.c +++ b/surf.c @@ -1269,7 +1269,7 @@ initwebextensions(WebKitWebContext *wc, Client *c) if (spair[1] < 0) return; - gv = g_variant_new("i", spair[1]); + gv = g_variant_new("(ii)", spair[1]); webkit_web_context_set_web_extensions_initialization_user_data(wc, gv); webkit_web_context_set_web_extensions_directory(wc, WEBEXTDIR); diff --git a/webext-surf.c b/webext-surf.c index d087219..da16ddf 100644 --- a/webext-surf.c +++ b/webext-surf.c @@ -95,7 +95,7 @@ webkit_web_extension_initialize_with_user_data(WebKitWebExtension *e, webext = e; - g_variant_get(gv, "i", &sock); + g_variant_get(gv, "(ii)", &sock); gchansock = g_io_channel_unix_new(sock); g_io_channel_set_encoding(gchansock, NULL, NULL); But this workaround seems wrong when we look at the semantic of g_variant_new() in gvariant.c : - sock and spair[1] are ints, and should work with "i". - Similarly, "(ii)" should mean two extra arguments after the format, but only &sock works. And I don't know whether this fix breaks surf in another way. One other way would be to revert to 2.0+git20181009-4, or some other version inbetween. Thank you in advance for your time, Aymeric Agon-Rambosson -- System Information: Debian Release: bullseye/sid APT prefers testing-security APT policy: (500, 'testing-security'), (500, 'testing'), (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.10.0-6-amd64 (SMP w/16 CPU threads) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages surf depends on: ii libc6 2.31-11 ii libgcr-base-3-1 3.38.1-2 ii libgcr-ui-3-1 3.38.1-2 ii libglib2.0-0 2.66.8-1 ii libgtk-3-0 3.24.24-3 ii libjavascriptcoregtk-4.0-18 2.30.6-1 ii libwebkit2gtk-4.0-37 2.30.6-1 ii libx11-6 2:1.7.0-2 Versions of packages surf recommends: ii curl 7.74.0-1.2 ii stterm [x-terminal-emulator] 0.8.4-1 ii suckless-tools 46-1 ii x11-utils 7.7+5 Versions of packages surf suggests: ii apparmor 2.13.6-10 -- Configuration Files: /etc/apparmor.d/usr.bin.surf changed: /usr/bin/surf flags=(complain) { #include <abstractions/X> #include <abstractions/audio> #include <abstractions/base> #include <abstractions/enchant> #include <abstractions/dconf> #include <abstractions/fonts> #include <abstractions/freedesktop.org> #include <abstractions/gnome> #include <abstractions/mesa> #include <abstractions/nameservice> #include <abstractions/ssl_certs> #include <abstractions/surf-gstreamer> #include <abstractions/video> owner @{HOME}/.surf/ w, owner @{HOME}/.surf/** rwkl, owner @{HOME}/.cache/ rw, @{PROC}/@{pid}/cmdline r, @{PROC}/@{pid}/fd/ r, @{PROC}/@{pid}/smaps r, /dev/ r, /sys/devices/pci[0-9]*/** r, /sys/devices/platform/soc/soc:gpu/* r, /usr/share/glib-2.0/schemas/gschemas.compiled r, /usr/share/doc/** r, # WebKit /usr/lib/@{multiarch}/webkit2gtk-4.0/WebKit*Process ix, /{dev,run}/shm/WK2SharedMemory.* rw, /var/tmp/WebKit-Media-* rw, /usr/share/publicsuffix/public_suffix_list.{dat,dafsa} r, owner @{HOME}/.local/share/webkitgtk/ w, owner @{HOME}/.local/share/webkitgtk/** rw, owner @{HOME}/.cache/webkitgtk/ w, owner @{HOME}/.cache/webkitgtk/** rwk, # fontconfig /usr/share/fontconfig/conf.avail/ r, # dconf owner @{HOME}/.cache/dconf/user rw, owner /run/user/*/dconf/user rw, /usr/bin/surf ix, /{usr/,}bin/dash ix, /{usr/,}bin/sed ix, /usr/bin/dmenu ix, /usr/bin/printf ix, /usr/bin/xargs ix, /usr/bin/xprop ix, # for downloading files /dev/ptmx rw, /dev/pts/* rw, /usr/bin/st ix, # unconfined because it is called in (and downloading to) the cwd /usr/bin/curl Ux, # Site-specific additions and overrides. See local/README for details. #include <local/usr.bin.surf> } -- no debconf information

