Bug 29679 - Isodumper-gtk does not start
Summary: Isodumper-gtk does not start
Status: RESOLVED INVALID
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: Cauldron
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: papoteur
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-11-20 17:54 CET by aguador
Modified: 2022-01-02 22:30 CET (History)
2 users (show)

See Also:
Source RPM: isodumper-1.41-2.mga9.src.rpm
CVE:
Status comment:


Attachments
isodumper gtk (177.14 KB, image/png)
2022-01-02 11:20 CET, Angelo Naselli
Details

Description aguador 2021-11-20 17:54:08 CET
Started from the menu, isodumper simply crashes with no information. From the terminal:

$ isodumper
terminate called after throwing an instance of 'YUICantLoadAnyUIException'
  what():  No $DISPLAY and stdout is not a tty
Abortado (`core' generado)

This is on a fully up-to-date Cauldron system running with the GTK interface installed. Default DE is Enlightenment, but isodumper crashes on startup in an IceWM Session as well.
Comment 1 Morgan Leijström 2021-11-21 11:50:10 CET
Thank you for the report

Assigning to maintainer.

I currently do not run a Cauldron

isodumper have two open/in progress enhancement bugs:

Bug 24038 - allow Isodumper to request user password rather than admin / root password

Bug 27744 - Current isodumper gui could use some improvements.

Assignee: bugsquad => yves.brungard_mageia
CC: (none) => fri

Comment 2 papoteur 2021-11-21 12:42:13 CET
Hello,
It works for me :/
I have updated my cauldron VM in LXQt.
I have tried 
isodumper
and 
isodumper --gtk
Tried by uninstalling isodumper-qt
Comment 3 aguador 2021-11-21 15:59:16 CET
Thanks, this helped. I should have tested with the Qt version. Installing the Qt version and the following dependencies:

- lib64yui-mga-qt15-1.2.0-1.mga9.x86_64
- lib64yui-qt15-4.2.16-1.mga9.x86_64

isodumper-Qt works. The Gtk version as well: a) without picking up the application theme and b) *until* the lib64yui-qt15-4.2.16-1.mga9.x86_64 dependency is removed. (I confirmed that the lib64yui Gtk libraries are installed.)

Version 1.35 works as expected in Mageia 8, so it would seem that at some point between the two releases something was omitted that called the appropriate Gtk library.
Comment 4 papoteur 2021-11-21 21:20:04 CET
Adding anaselli, because this is probably related to libyui

CC: (none) => anaselli

Comment 5 papoteur 2021-11-21 21:42:46 CET
ANd the start of the trace with gdb:
#0  0x00007ffff7af1b7c in __pthread_kill_implementation () at /lib64/libc.so.6
#1  0x00007ffff7aa8102 in raise () at /lib64/libc.so.6
#2  0x00007ffff7a9443b in abort () at /lib64/libc.so.6
#3  0x00007fffec3ba8ba in __gnu_cxx::__verbose_terminate_handler() [clone .cold] () at /lib64/libstdc++.so.6
#4  0x00007fffec3c607a in __cxxabiv1::__terminate(void (*)()) () at /lib64/libstdc++.so.6
#5  0x00007fffec3c60e5 in  () at /lib64/libstdc++.so.6
#6  0x00007fffec3c6378 in  () at /lib64/libstdc++.so.6
#7  0x00007fffec588532 in _YUI_THROW<YUICantLoadAnyUIException>(YUICantLoadAnyUIException const&, YCodeLocation const&)
    (exception_r=..., where_r=...) at /usr/src/debug/libyui-4.2.16-1.mga9.x86_64/libyui/src/YUIException.h:931
#8  0x00007fffec587bc4 in YUILoader::loadUI(bool) (withThreads=withThreads@entry=false)
    at /usr/src/debug/libyui-4.2.16-1.mga9.x86_64/libyui/src/YUILoader.cc:176
        isGtk = <optimized out>
        envDesktop = <optimized out>
        envDisplay = 0x7fffffffed34 ":0"
        envPreset = <optimized out>
        wantedGUI = ""
        __FUNCTION__ = "loadUI"
        cmdline = 
              {priv = {<boost::noncopyable_::noncopyable> = {<boost::noncopyable_::base_token> = {<No data fields>}, <No data fields>}, _impl = {px = 0x928860}}}
        wantGtk = <optimized out>
        wantNcurses = false
        wantQt = <optimized out>
        haveUIPreset = <optimized out>
        haveGtk = 16
        haveNcurses = false
        haveQt = false
#9  0x00007fffec5751f2 in YUI::ensureUICreated() () at /usr/src/debug/libyui-4.2.16-1.mga9.x86_64/libyui/src/YUI.cc:186
        __FUNCTION__ = "ensureUICreated"
#10 0x00007fffec5754c8 in YUI::app() () at /usr/src/debug/libyui-4.2.16-1.mga9.x86_64/libyui/src/YUI.cc:168
        app = 0x0
        __FUNCTION__ = "app"
#11 0x00007fffec6838f4 in _wrap_YUI_app () at /usr/lib64/python3.9/site-packages/_yui.so
#12 0x00007ffff7d66c79 in cfunction_vectorcall_NOARGS
    (func=0x7fffec77a680, args=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>) at Objects/methodobject.c:489
        tstate = 0x409220
        nargs = <optimized out>
        meth = <optimized out>
        result = <optimized out>
#13 0x00007ffff7d6087d in _PyObject_VectorcallTstate
Comment 6 papoteur 2021-11-21 21:50:50 CET
This was without any interface claimed.
With the option --gtk added, it carshes at the same line, but with other data:
#7  0x00007fffec588532 in _YUI_THROW<YUICantLoadAnyUIException>(YUICantLoadAnyUIException const&, YCodeLocation const&)
    (exception_r=..., where_r=...) at /usr/src/debug/libyui-4.2.16-1.mga9.x86_64/libyui/src/YUIException.h:931
#8  0x00007fffec587bc4 in YUILoader::loadUI(bool) (withThreads=withThreads@entry=false)
    at /usr/src/debug/libyui-4.2.16-1.mga9.x86_64/libyui/src/YUILoader.cc:176
        isGtk = <optimized out>
        envDesktop = <optimized out>
        envDisplay = 0x7fffffffed34 ":0"
        envPreset = <optimized out>
        wantedGUI = ""
        __FUNCTION__ = "loadUI"
        cmdline = 
    {priv = {<boost::noncopyable_::noncopyable> = {<boost::noncopyable_::base_token> = {<No data fields>}, <No data fields>}, _impl = {px = 0x92add0}}}
        wantGtk = <optimized out>
        wantNcurses = false
        wantQt = <optimized out>
        haveUIPreset = <optimized out>
        haveGtk = false
        haveNcurses = false
        haveQt = false
Comment 7 Angelo Naselli 2021-11-21 22:53:10 CET
Maybe new libyui has broken something against libyui-gtk but sounds odd, are you sure not to have any old libyui plugins installed?
Comment 8 Angelo Naselli 2021-11-21 22:55:33 CET
@papoteur on comment#6 i can't get the test you removed qt plugin and force gtk without gtk installed? Maybe it shouldn't crash, but you forced to run that way.
Comment 9 aguador 2021-11-22 01:07:34 CET
I just looked at the Gtk plugins on both my machines and maybe this is the problem:

All the plugins are named "lib64yui#-gtk" (e.g.,, "lib64yui12-gtk"), but the latest in the respositories is named "lib64yui-gtk15". I tried installing that, but it still fails.

If what I see in the respositories is correct, it appears that the version naming style has changed (as reflected in the Qt plugin). Could it be that the change was not picked up for Gtk in the isodumper code? The fact the latest plugin was not installed as a dependency might suggest that.
aguador 2021-11-22 01:08:54 CET

Summary: Isodumper does not start => Isodumper-gtk does not start

Comment 10 papoteur 2021-11-22 06:57:16 CET
haveGtk=false
Thus, this is because none of lib64yui-qt15 or lib64yui-gtk15 is installed
Comment 11 aguador 2021-11-22 10:26:30 CET
I don't need to do these things late at night. I just do stupid things.

Here are the dependencies of the current isodumper:

$ rpm -qR isodumper
config(isodumper) = 1.41-2.mga9
libyui-mga-ncurses
libyui-ncurses
polkit
python(abi) = 3.9
python3
python3-gnupg
python3-gobject
python3-manatools
python3-parted
python3-psutil
python3-pydbus
python3-yui
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsZstd) <= 5.4.18-1
sha3sum
typelib(GLib)
udisks2

There are no packages on my machine or in the current Cauldron repository named:

libyui-mga-ncurses
libyui-ncurses

but there are:

libyui-mga-ncurses15
libyui-ncurses15

These would be the parallels to the corresponding isodumper-1.35 dependencies:

libyui12-mga-ncurses
libyui12-ncurses
Comment 12 papoteur 2021-12-11 19:19:35 CET
Should we add a versionning in the dependencies of isodumper?
Comment 13 Angelo Naselli 2021-12-11 22:07:23 CET
Comment #9 seems the problem. porting specs from suse we've probably broke library versioning that should be the same as old spec file.
We need to check that, but i have no time before Christmas sorry.
Comment 14 Angelo Naselli 2022-01-01 18:53:07 CET
is this bug still valid? i seem Wally has fixed libyui-gtk already and here isodumper starts now
Comment 15 aguador 2022-01-01 19:36:04 CET
Still valid for my system. Do you also have the Qt version (or its dependencies) installed? That would allow it to start. (See comment 3.)

Two dependencies shown by isodumper in comment 11 do not exist. Why there was no error when the it last updated I do not know, but wouldn't the fix be to call:

libyui-mga-ncurses15
libyui-ncurses15

rather than

libyui-mga-ncurses
libyui-ncurses

(As an aside, since nothing else on my system uses the *-ncurses15 packages, they are not installed. As a test, I installed them, and still no go as they are not being called by isodumper-gtk. As noted in comment 3 one of the Qt dependencies *will* allow isodumper to start, but, of course, it does not pick up the Gtk theme.)
Comment 16 Angelo Naselli 2022-01-02 11:18:30 CET
Just to clarify my tests:
[root@localhost ~]# rpm -qa | grep isodumper
[root@localhost ~]#
[root@localhost ~]# rpm -qa | grep yui
[root@localhost ~]#
[root@localhost ~]# urpmi --auto-update 
il supporto "Core Release (distrib1)" risulta già aggiornato
il supporto "Core Updates (distrib3)" risulta già aggiornato
il supporto "Nonfree Release (distrib11)" risulta già aggiornato
il supporto "Nonfree Updates (distrib13)" risulta già aggiornato
il supporto "Tainted Release (distrib21)" risulta già aggiornato
il supporto "Tainted Updates (distrib23)" risulta già aggiornato
I pacchetti sono aggiornati
[root@localhost ~]#
[root@localhost ~]# urpmi isodumper
Per soddisfare le dipendenze di "isodumper-gui" serve uno dei seguenti pacchetti:
 1- isodumper-gtk-1.41-2.mga9.noarch: IsoDumper for GTK (da installare)
 2- isodumper-qt-1.41-2.mga9.noarch: IsoDumper for Qt (da installare)
Quale scegli? (1-2) 1
Per soddisfare le dipendenze, saranno installati i seguenti pacchetti:
  Pacchetto                      Versione     Release       Arch.   
(supporto "Core Release (distrib1)")
  isodumper                      1.41         2.mga9        noarch  
  isodumper-gtk                  1.41         2.mga9        noarch  (raccomandato)
  lib64yui-gtk15                 2.52.0       2.mga9        x86_64  (raccomandato)
  lib64yui-mga-gtk15             1.2.0        2.mga9        x86_64  (raccomandato)
  lib64yui-mga-ncurses15         1.2.0        1.mga9        x86_64  
  lib64yui-mga15                 1.2.1        3.mga9        x86_64  
  lib64yui-ncurses15             4.2.16       1.mga9        x86_64  
  lib64yui15                     4.2.16       1.mga9        x86_64  
  python3-manatools              0.0.4        1.mga9        noarch  
  python3-yui                    4.2.16       1.mga9        x86_64  
Altri 6.1MB di spazio disco saranno utilizzati.
verranno scaricati 1.5MB di pacchetti.
Procedo con l'installazione di 10 pacchetti? (S/n)s
[...]
In preparazione...               
     1/10: lib64yui15            
     2/10: lib64yui-mga15        
     3/10: python3-yui           
     4/10: lib64yui-ncurses15    
     5/10: lib64yui-gtk15        
     6/10: lib64yui-mga-gtk15    
     7/10: lib64yui-mga-ncurses15
     8/10: python3-manatools     
     9/10: isodumper-gtk         
    10/10: isodumper             
[root@localhost ~]# rpm -qa | grep yui
lib64yui15-4.2.16-1.mga9
lib64yui-mga15-1.2.1-3.mga9
python3-yui-4.2.16-1.mga9
lib64yui-ncurses15-4.2.16-1.mga9
lib64yui-gtk15-2.52.0-2.mga9
lib64yui-mga-gtk15-1.2.0-2.mga9
lib64yui-mga-ncurses15-1.2.0-1.mga9
[root@localhost ~]#
Comment 17 Angelo Naselli 2022-01-02 11:20:50 CET
Created attachment 13072 [details]
isodumper gtk

Here it starts
Comment 18 Angelo Naselli 2022-01-02 11:25:17 CET
and just to be sure once more:
[root@localhost ~]# cat /etc/release 
Mageia release 9 (Cauldron) for x86_64
Comment 19 aguador 2022-01-02 18:01:35 CET
OK, here is what I had after manually installing:

lib64yui-mga-ncurses15
lib64yoi-ncurses15

[aguador@localhost ~]$ rpm -qa | grep isodumper
isodumper-gtk-1.41-2.mga9
isodumper-1.41-2.mga9
[aguador@localhost ~]$ rpm -qa | grep yui
lib64yui9-mga-1.0.8-4.mga8
lib64yui11-3.9.3-2.mga8
lib64yui9-3.4.2-2.mga8
lib64yui8-mga-1.0.8-2.mga7
lib64yui11-mga-1.0.8-5.mga8
lib64yui12-mga-1.1.0-3.mga8
lib64yui8-ncurses-2.48.3-3.mga7
lib64yui9-ncurses-2.50.4-2.mga8
lib64yui11-mga-gtk-1.0.4-1.mga8
lib64yui12-mga-ncurses-1.1.0-4.mga8
lib64yui9-mga-gtk-1.0.3-5.mga8
lib64yui9-gtk-2.44.10-3.mga8
lib64yui12-gtk-2.49.0-5.mga8
lib64yui8-3.3.3-3.mga7
lib64yui12-mga-gtk-1.1.0-5.mga8
lib64yui8-mga-ncurses-1.0.3-5.mga7
lib64yui11-ncurses-2.54.5-1.mga8
lib64yui12-3.10.0-3.mga8
lib64yui12-ncurses-2.55.0-2.mga8
lib64yui8-mga-gtk-1.0.3-3.mga7
lib64yui9-mga-ncurses-1.0.3-8.mga8
lib64yui11-mga-ncurses-1.0.3-9.mga8
lib64yui8-gtk-2.44.9-3.mga7
lib64yui11-gtk-2.48.0-2.mga8
lib64yui-mga15-1.2.1-3.mga9
lib64yui15-4.2.16-1.mga9
python3-yui-4.2.16-1.mga9
lib64yui-ncurses15-4.2.16-1.mga9
lib64yui-mga-ncurses15-1.2.0-1.mga9

(It would seem that I need to do a fresh install of Cauldron at some point given all those old lib64yui packages, but that is another matter.)

Isodumper would not start with a gui, although it ran in terminal. I noticed that lib64yui-gtk15 was missing. After installing that, isodumper started normally with the gui.

At least on my system lib64yui-gtk15 would seem to be required, not a recommends.
Comment 20 Angelo Naselli 2022-01-02 20:06:44 CET
you don't need to do that :) Let's try to clean up this issue. let me check your answer well and i'll answer again
Comment 21 Angelo Naselli 2022-01-02 20:17:43 CET
As far as i can see you have a lot of old libyui packages, you probably updated your system at least since mageia 7. I would remove all of them as a first step.

libyui is not a vital package so you can remove and install it again, for instance with a command like (if the output you gave is not cut of course):

urpme `rpm -qa | grep yui`
note the char ` is the accent 

That command should remove all the libyui packages with their dependencies, so also isodumper and dnfdragora if you use it that also.

At this point install isodumper again (and dnfdragora if you use it that too).

urpmi isodumper
or
urpmi isodumper dnfdragora

It will ask for which one you want gtk or qt, that should fix your problem.
Let me know.
Comment 22 Angelo Naselli 2022-01-02 20:31:10 CET
Just to clarify:
"At least on my system lib64yui-gtk15 would seem to be required, not a recommends."

I don't remember which deps are added into our packages however isodumper needs (only) python3-yui and can run using ncurses (TUI) yui-gtk (or qt) is required by isodumper-gtk (or qt) to force the right graphic environment and dependencies.
Of course python3-yui requires libyui and libyui-mga...
Comment 23 aguador 2022-01-02 21:54:00 CET
OK, Angelo, I will close this.

I did dump all those old yui packages (and thank you for the command line!). You're right, after a snafu with a systemd update a few years back, I had to reinstall mga7 stable then switch back to Cauldron (as there was a problem installing Cauldron at that time). Hence all the yui junk. I suppose that when updating isodumper the newer yui packages were not brought in as there were older ones on the system.

My HD thanks you for freeing up that space.:-)

I also get it that lib64yui-gtk15 is a recommends for isodumper. I failed to check isodumper-gtk were it shows as a dependency. Sorry for all the noise and not keeping my system cleaned up. I'll probably wait until mga9 goes stable to do a reinstall on this machine.

Roy

Status: NEW => RESOLVED
Resolution: (none) => INVALID

Comment 24 Angelo Naselli 2022-01-02 22:30:06 CET
Perhaps it was when we update with a new libyui that changed its plugins dependency and we made a mistake, so i'd expect to update from mga8 without issues, but it could happen again (not only with libyui) to find old packages laying on system when new major libraries are added to distro.

You can always check old packages by looking for mgaX suffix (with X< last stable) and remove them if no packages - that you're using at least- require them...

Thanks for reporting this problem, no needs to apologize for this.

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