Bug 30865 - webkit2 updates breaks drakconf(mcc - Mageia Contol Center )
Summary: webkit2 updates breaks drakconf(mcc - Mageia Contol Center )
Status: NEW
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: Mageia tools maintainers
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-09-19 15:39 CEST by Aurelian R
Modified: 2023-01-06 18:07 CET (History)
9 users (show)

See Also:
Source RPM: webkit2-2.38.0-1.mga9.src.rom
CVE:
Status comment:


Attachments
drakconf-webkit2-issue (20.39 KB, text/plain)
2022-09-25 13:28 CEST, Nicolas Nicolas
Details

Description Aurelian R 2022-09-19 15:39:04 CEST
After updating "webkit2" to version 2.38.0 the drakconf(mcc) started to fail with error:
  
ERROR **: Unable to spawn a new child process: Failed to spawn child process “/usr/libexec/webkit2gtk-4.0/WebKitNetworkProcess” (No such file or directory) at /usr/lib64/perl5/vendor_perl/Glib/Object/Introspection.pm line 67.

Version-Release number of selected component (if applicable):
webkit2-2.38.0-1.mga9

How reproducible:
always

Steps to Reproduce:
1.upgrade webkit2 to version 2.38.0
  webkit2-2.38.0-1.mga9.x86_64.rpm
  lib64webkit2gtk4.1_0-2.38.0-1.mga9.x86_64.rpm
  lib64javascriptcoregtk4.1_0-2.38.0-1.mga9.x86_64.rpm
2.run mcc or drakconf in a terminal to see the error.

Regards.
Comment 1 Marja Van Waes 2022-09-19 21:08:15 CEST
Confirming the issue.

It seems tv wants to rebuild webkit2:

* Mon Sep 19 2022 tv <tv> 2.38.0-1.mga9
+ Revision: 1890568
+ rebuild (emptylog)

* Sun Sep 18 2022 wally <wally> 2.38.0-1.mga9
+ Revision: 1889798
- new version 2.38.0 (from ns80)
- build with soup3
- new api 4.1

But the release number (1) wasn't changed.

Anyway, assigning to the mageiatools maintainers and CC'ing tv, because there is no registered maintainer for webkit2 and because MCC needs it to be fixed.

Assignee: bugsquad => mageiatools
CC: (none) => marja11, thierry.vignaud

Comment 2 Aurelian R 2022-09-19 23:18:46 CEST
If package perl-Glib-Object-Introspection-0.49.0-5.mga9 is just rebuild with the new webkit2 then this error pops out:
 
Typelib file for namespace 'WebKit2', version '4.0' not found at /usr/lib64/perl5/vendor_perl/Glib/Object/Introspection.pm line 108.
BEGIN failed--compilation aborted at /usr/libexec/drakconf line 49.

This looks like a wrong api, which may suggest a mix-up in api definitions. Maybe this tidbit is helpful somehow.
Comment 3 Ben McMonagle 2022-09-24 22:19:51 CEST
new install of Gnome has no drakconf/mcc.

webkit2-2.38.0-2.mga9.x86_64

# mcc

 <snip>

Typelib file for namespace 'WebKit2', version '4.0' not found at /usr/lib64/perl5/vendor_perl/Glib/Object/Introspection.pm line 108.
BEGIN failed--compilation aborted at /usr/libexec/drakconf line 49.

CC: (none) => westel

Comment 4 Thomas Backlund 2022-09-25 07:32:13 CEST
webkit2 is now at api 4.1, so I've rebuilt  drakconf-13.27-4.mga9 to see if it picks up the path change...
Comment 5 Jean Claude Stiegler 2022-09-25 09:53:13 CEST
[root@localhost cauldron]# drakconf
Too late to run INIT block at /usr/lib64/perl5/vendor_perl/Glib/Object/Introspection.pm line 257.
Ignore the following Glib::Object::Introspection & Gtk3 warnings
Subroutine Gtk3::main redefined at /usr/share/perl5/vendor_perl/Gtk3.pm line 539.
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed at /usr/lib64/perl5/DynaLoader.pm line 223.
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed at /usr/lib64/perl5/DynaLoader.pm line 223.
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed at /usr/lib64/perl5/DynaLoader.pm line 223.
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed at /usr/lib64/perl5/DynaLoader.pm line 223.
ERROR **: Unable to spawn a new child process: L’exécution du processus fils « /usr/libexec/webkit2gtk-4.0/WebKitNetworkProcess » a échoué (Aucun fichier ou dossier de ce type) at /usr/lib64/perl5/vendor_perl/Glib/Object/Introspection.pm line 67.
[root@localhost cauldron]#

CC: (none) => jcstiegler

Comment 6 Nicolas Lécureuil 2022-09-25 10:39:13 CEST
strange it searches for /usr/libexec/webkit2gtk-4.0/WebKitNetworkProcess
as tmb told the new path is /usr/libexec/webkit2gtk-4.1/WebKitNetworkProcess.

does an other package needs a rebuild against new webkit2 ?

CC: (none) => mageia

Comment 7 Nicolas Nicolas 2022-09-25 10:53:36 CEST
Hello,

i saw there was an update of drakconf and perl-Gtk3-Webkit2 this morning.

Unfortunately i was not asked to install the lib64webkit2gtk-gir4.1 package (maybe the package was not on the repository when the --auto-update was run).

So installed it manually.

Then as it was not working i made a change in the /usr/share/perl5/vendor_perl/Gtk3/WebKit2.pm file to change the version in the import function from 4.0 to 4.1.

Then drakconf was allowed to run and i also get back icons in the right panel.

But i can't be sure that theses changes have an impact or not on other applications ( as a try i had also try to make a symbolic link to make /usr/libexec/webkit2gtk-4.0/ link to /usr/libexec/webkit2gtk-4.1/ ( but not sure i removed it) .

CC: (none) => joe_c_moi

Comment 8 Aurelian R 2022-09-25 12:21:39 CEST
Seems that Nicolas( comment #7 ) found the culprit i.e. perl-Gtk3-Webkit2 rpm, more specifically, a patch in the source rpm that manually sets webkit2 api( look for " basename  => 'WebKit2' "). This should be an easy fix for a consequent manual hack or maybe try a more generic fix to avoid it for the next api change of webkit2.
Comment 9 Thomas Backlund 2022-09-25 13:02:32 CEST
is  lib64webkit2gtk-gir4.1 installed ?

if not, does installing it help ?
Comment 10 Nicolas Nicolas 2022-09-25 13:27:25 CEST
Hello,

Seems installing the package is not enough.
Comment 11 Nicolas Nicolas 2022-09-25 13:28:03 CEST
Created attachment 13399 [details]
drakconf-webkit2-issue
Comment 12 Nicolas Nicolas 2022-09-25 13:36:22 CEST
Hello,

Here is what i get after modifying the /usr/share/perl5/vendor_perl/Gtk3/WebKit2.pm file: 

"[root@localhost usertest]# locate WebKit2 | grep perl
/usr/share/doc/perl-Gtk3-WebKit2
/usr/share/doc/perl-Gtk3-WebKit2/COPYING
/usr/share/doc/perl-Gtk3-WebKit2/Changes
/usr/share/doc/perl-Gtk3-WebKit2/LICENSE
/usr/share/doc/perl-Gtk3-WebKit2/META.yml
/usr/share/doc/perl-Gtk3-WebKit2/MYMETA.yml
/usr/share/doc/perl-Gtk3-WebKit2/README
/usr/share/doc/perl-Gtk3-WebKit2/examples
/usr/share/doc/perl-Gtk3-WebKit2/examples/browser.pl
/usr/share/perl5/vendor_perl/Gtk3/WebKit2.pm
[root@localhost usertest]# nano /usr/share/perl5/vendor_perl/Gtk3/WebKit2.pm
[root@localhost usertest]# chmod 744 /usr/share/perl5/vendor_perl/Gtk3/WebKit2.pm
[root@localhost usertest]# nano /usr/share/perl5/vendor_perl/Gtk3/WebKit2.pm
[root@localhost usertest]# grep -C6 4.1 /usr/share/perl5/vendor_perl/Gtk3/WebKit2.pm 
$EXPORT_TAGS{all} = \@EXPORT_OK;


sub import {
    my %setup = (
        basename  => 'WebKit2',
        version   => '4.1',
        package   => __PACKAGE__,
    );

    my @args;
    for (my $i = 0; $i < @_; ++$i) {
        my $arg = $_[$i];
[root@localhost usertest]# drakconf
Too late to run INIT block at /usr/lib64/perl5/vendor_perl/Glib/Object/Introspection.pm line 257.
Ignore the following Glib::Object::Introspection & Gtk3 warnings
Subroutine Gtk3::main redefined at /usr/share/perl5/vendor_perl/Gtk3.pm line 539.
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed at /usr/lib64/perl5/DynaLoader.pm line 223.
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed at /usr/lib64/perl5/DynaLoader.pm line 223.
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed at /usr/lib64/perl5/DynaLoader.pm line 223.
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed at /usr/lib64/perl5/DynaLoader.pm line 223.
"cannot run /usr/sbin/isodumper" since it is not installed [Writing ISO] at /usr/libexec/drakconf line 833.
>> disabling Snapshots
Overriding existing handler for signal 10. Set JSC_SIGNAL_FOR_GC if you want WebKit to use a different signal
[root@localhost usertest]#"
Comment 13 Aurelian R 2022-09-25 13:49:00 CEST
(In reply to Thomas Backlund from comment #9)
> is  lib64webkit2gtk-gir4.1 installed ?
Yes

Here is a list of webkit related packages that I had/have installed since I noticed the bug:  

[aurelian@ryzen-ux ~]$ rpm -qa --last | grep webkit
lib64webkit2gtk-gir4.1-2.38.0-2.mga9.x86_64   Thu 22 Sep 2022 04:48:00 PM EEST
webkit2-2.38.0-2.mga9.x86_64                  Thu 22 Sep 2022 04:47:59 PM EEST
lib64webkit2gtk4.1_0-2.38.0-2.mga9.x86_64     Thu 22 Sep 2022 04:47:59 PM EEST
lib64proxy-webkit-0.4.18-2.mga9.x86_64        Mon 19 Sep 2022 10:59:11 AM EEST
lib64kf5webkit5-5.98.0-1.mga9.x86_64          Thu 15 Sep 2022 10:11:30 AM EEST
kdewebkit-5.98.0-1.mga9.x86_64                Thu 15 Sep 2022 10:11:30 AM EEST
lib64qt5webkitwidgets5-5.212.0-1.alpha4.12.mga9.x86_64 Sun 11 Sep 2022 11:01:10 PM EEST
lib64qt5webkit5-5.212.0-1.alpha4.12.mga9.x86_64 Sun 11 Sep 2022 11:01:10 PM EEST
Comment 14 Thomas Backlund 2022-09-25 19:10:18 CEST
(In reply to Nicolas Nicolas from comment #10)
> Hello,
> 
> Seems installing the package is not enough.

Ah, yeah I forgot I had a locally fixed  perl-Gtk3-WebKit...

and I see papoteur has now pushed the same api bump fix in  perl-Gtk3-WebKit-0.60.0-14.mga9
Comment 15 Pascal Terjan 2022-09-25 19:32:00 CEST
The package deletes WebKit.pm and has a patch to add a new Webkit2 which is WebKit.pm with WebKit replaced with WebKit2 and the version 3.0 replaced with 4.1.

https://metacpan.org/dist/Gtk3-WebKit didn't get an update in 8 years, however there is https://metacpan.org/dist/Gtk3-WebKit2 which is very similar to what we have with this added:

+# # TODO call me from the extension
+# sub on_page_created {
+#     my ($self, $callback) = @_;
+#     return $callback->();
+# }
+
+use FindBin qw($Bin);
+
+sub add_extension_to {
+    my ($class, $context) = @_;
+
+    $context->set_web_extensions_directory("$Bin/../../extensions");
+
+    return;
+}
+
+

So we should probably just switch to this one. It however points to version 4.0 so we would need a one line patch for 4.1, or to do something smarter.

CC: (none) => pterjan

Barry Jackson 2022-09-26 22:24:47 CEST

CC: (none) => zen25000

Comment 16 Ben McMonagle 2022-09-28 07:09:19 CEST
update to (49 packages) inc:

perl-Gtk3-WebKit2              0.60.0       16.mga9       noarch 

 mcc
Too late to run INIT block at /usr/lib64/perl5/vendor_perl/Glib/Object/Introspection.pm line 257.
Ignore the following Glib::Object::Introspection & Gtk3 warnings
Subroutine Gtk3::main redefined at /usr/share/perl5/vendor_perl/Gtk3.pm line 539.
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed at /usr/lib64/perl5/DynaLoader.pm line 223.
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed at /usr/lib64/perl5/DynaLoader.pm line 223.
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed at /usr/lib64/perl5/DynaLoader.pm line 223.
GLib-GObject-CRITICAL **: g_boxed_type_register_static: assertion 'g_type_from_name (name) == 0' failed at /usr/lib64/perl5/DynaLoader.pm line 223.
"cannot run /usr/sbin/isodumper" since it is not installed [Writing ISO] at /usr/libexec/drakconf line 833.
Overriding existing handler for signal 10. Set JSC_SIGNAL_FOR_GC if you want WebKit to use a different signal

a unpopulated Mageia Control Centre pops up.

adding isodumper resolves this issue

# urpmi isodumper
In order to satisfy the 'isodumper-gui' dependency, one of the following packages is needed:
 1- isodumper-gtk-1.41-4.mga9.noarch: IsoDumper for GTK (to install)
 2- isodumper-qt-1.41-4.mga9.noarch: IsoDumper for Qt (to install)
What is your choice? (1-2) 1

new bug for MCC if isodumper not installed or to include in dependencies?
Comment 17 Ben McMonagle 2022-09-28 10:15:20 CEST
however a new net-install of gnome and mcc works fine
Comment 18 Thomas Andrews 2023-01-06 18:07:44 CET
A new Xfce install on real 32-bit hardware(Dell Inspiron 5100, 32-bit P4, Radeon RV200 graphics) from the second round of the beta1 CI iso does not show any problem with running MCC, so this may very well be fixed in Cauldron.

However, drakconf in Mageia 8 still does not work correctly with this hardware. See Bug 30332. 

I don't know if the two situations are related, but since drakconf and webkit2 are involved in both bugs, it seems to me to be possible.

CC: (none) => andrewsfarm


Note You need to log in before you can comment on or make changes to this bug.