|
Bugzilla – Full Text Bug Listing |
| Summary: | Yast2 Gtk crashes due to a lost libzypp.so.800()(64bit) library (zypp:Head) (fix provided!) | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE 11.2 | Reporter: | Carlo Strata <carlo.strata> |
| Component: | YaST2 | Assignee: | Forgotten User h13THG8RK1 <forgotten_h13THG8RK1> |
| Status: | RESOLVED WONTFIX | QA Contact: | Jiri Srain <jsrain> |
| Severity: | Normal | ||
| Priority: | P5 - None | CC: | forgotten_h13THG8RK1, ma |
| Version: | Final | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | openSUSE 11.2 | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: |
First Exception Alert Window
Second Exception Alert Window |
||
|
Description
Carlo Strata
2010-11-05 20:22:49 UTC
Created attachment 398836 [details]
First Exception Alert Window
Created attachment 398837 [details]
Second Exception Alert Window
Hi Carlo, So, the gtk plugin is linked to libzypp.so.800 when it should link to libzypp.so.807. The reason for that is that the gtk plugin over YaST:Head is no longer built for opensuse 11.2. In fact, since more recently, no yast2 package is being built for 11.2 at all -- so the ncurses and qt plugins will fail in the future too, as you upgrade libzypp. Your symlink worked because libzypp ABI happened to be backward compatible. I don't think they guarantee that's always the case -- otherwise I'd expect them telling libtool to link applications to the generic libzypp.so and not specific versions like libzypp.so.800. (If they do guarantee backward compatibility, then surely fixing libtool would be a better approach than keeping a trail of symlinks.) -- The QGtkStyle error message (a qt style that mimics gtk) can't be reproduced in 11.2, since I think QGtkStyle was only introduced in the qt version of 11.3. So, it's probably due to some system config file you're missing. It shouldn't happen I think if all package dependencies were well specified -- but given it's a minor issue, it's probably worth to swept it for under the carpet. You could try fixing it by firing "qtconfig" and then do "File > Save" (you will have to make some change in order for that menu entry be active). Hi Michael, Can you tell us if libzypp ABI is supposed to be backward compatible? If so, shouldn't applications be linking to libzypp.so, rather than specific versions like libzypp.so.807? (so that people can upgrade libzypp alone, and programs depending on it won't break.) (In reply to comment #3) > Hi Carlo, > > So, the gtk plugin is linked to libzypp.so.800 when it should link to > libzypp.so.807. > > The reason for that is that the gtk plugin over YaST:Head is no longer built > for opensuse 11.2. In fact, since more recently, no yast2 package is being > built for 11.2 at all -- so the ncurses and qt plugins will fail in the future > too, as you upgrade libzypp. > > Your symlink worked because libzypp ABI happened to be backward compatible. I > don't think they guarantee that's always the case -- otherwise I'd expect them > telling libtool to link applications to the generic libzypp.so and not specific > versions like libzypp.so.800. (If they do guarantee backward compatibility, > then surely fixing libtool would be a better approach than keeping a trail of > symlinks.) That s what I suppose: I think 8.0.7 and 8.0.0 version numbers sound better as well as a bug fix difference rather than an API change in my head (only in mime?). > > -- > > The QGtkStyle error message (a qt style that mimics gtk) can't be reproduced in > 11.2, since I think QGtkStyle was only introduced in the qt version of 11.3. > So, it's probably due to some system config file you're missing. It shouldn't > happen I think if all package dependencies were well specified -- but given > it's a minor issue, it's probably worth to swept it for under the carpet. Help -> "About QT" yields This program uses Qt version 4.7.0. This is because I'm also using these other repos http://download.opensuse.org/repositories/KDE:/Qt/openSUSE_11.2/ http://download.opensuse.org/repositories/KDE:/Release:/45/openSUSE_11.2/ Don't think my notebook is an heap broken all over: no it isn't. Is a dual Gnome 2.30.2/KDE 4.5.3 "release 8" (I use KDE only to sometimes take a look to him and to be able to use Kolour Paint and sometimes Dolphin). I use and test new yast2 (11.3) users' experience on my "updated 11.2" very well. If you are interest to know my all repos and an ordered list of all my installed packages to evaluate somethings, just ask to me for them, I will post them here asap. :-) > > You could try fixing it by firing "qtconfig" and then do "File > Save" (you > will have to make some change in order for that menu entry be active). That fix it, but I must really change something and not only make two opposite changes with the only purpose to light File -> Save menu item! ;-) Now only the "No index for key: "Name" value: "" " ramains, but certainly I swept it for under the carpet! I'm installing a clean hard disk with 11.3 in next weeks on my notebook (which 11.2 install come from an 11.1 upgrade that on his own come from 11.0!). It's time for a new 2.5" 7200 rpm sata harddisk, already on my desk, now with ext4 file system! Thank you. These are the "logs" (after the right File -> Save with pid 8314 qtconfig QGtkStyle error is fixed) carlobook:/home/carlo # qtconfig & [1] 8279 carlobook:/home/carlo # QGtkStyle was unable to detect the current GTK+ theme. [1]+ Done qtconfig carlobook:/home/carlo # carlobook:/home/carlo # yast2 --qt & [1] 8280 carlobook:/home/carlo # QGtkStyle was unable to detect the current GTK+ theme. No index for key: "Name" value: "" ^C carlobook:/home/carlo # carlobook:/home/carlo # qtconfig & [2] 8314 [1] Done yast2 --qt carlobook:/home/carlo # QGtkStyle was unable to detect the current GTK+ theme. QGtkStyle was unable to detect the current GTK+ theme. QGtkStyle was unable to detect the current GTK+ theme. [2]+ Done qtconfig carlobook:/home/carlo # qtconfig & [1] 8318 carlobook:/home/carlo # [1]+ Done qtconfig carlobook:/home/carlo # yast2 --qt & [1] 8319 carlobook:/home/carlo # No index for key: "Name" value: "" [1]+ Done yast2 --qt carlobook:/home/carlo # About the qt plugin error message, does it also show up when you run a specific tool. e.g.: yast2 users --qt I think the wrong remaining message may be relative to an incorrect access to an hash table with some bad initialized variables (generic "name" value for key)...
...
This is the output you ask for:
carlobook:/home/carlo # yast2 users --qt
Use of uninitialized value $Parse::RecDescent::skip in concatenation (.) or
string at /usr/lib/perl5/vendor_perl/5.10.0/Parse/RecDescent.pm line 2811 (#1)
(W uninitialized) An undefined value was used as if it were already
defined. It was interpreted as a "" or a 0, but maybe it was a mistake.
To suppress this warning assign a defined value to your variables.
To help you figure out what was undefined, perl will try to tell you the
name of the variable (if any) that was undefined. In some cases it cannot
do this, so it also tells you what operation you used the undefined value
in. Note, however, that perl optimizes your program and the operation
displayed in the warning may not necessarily appear literally in your
program. For example, "that $foo" is usually optimized into "that "
. $foo, and the warning will refer to the concatenation (.) operator,
even though there is no . in your program.
carlobook:/home/carlo #
...
I want to be clear: on my "updated 11.2 x86-64" all (!) yast2/zypp packages are all of the new type (11.3 style, thank to OBS repos) and I like it. The kernel is the 11.2 updated one (2.6.31.14-0.4-default).
Only one package still remains un-upgradable (unless I will force it): this is "libstorage" 2.20.4 (I have the 2.19.14 (2010-04-16 dated!) from YaST:Head / openSUSE_11.2) because it needs parted at least 2.2 (I have the 1.9.0 (2010-04-01 dated!) from OBS filesystems / openSUSE_11.2).
...
I think something like download all packages before installing them (like Windows 7 updates utility does) without paralleling the two tasks (download and install) may be difficult to do on low storage space systems (and I see on features.opensuse.org many people ask for return back in this). Surely may exist inconsistency problems if, e.g., network link fall down and you don't have new packages on local machine, ...
I also suggest you to use the global progress bar (from 0% to 50%, e.g.) to inform people on the global download status... and from 50% + 1 to 100% to inform on global install status. This if you don't change the current two-phase install.
Hth,
Carlo
I asked you to run "yast2 users" to launch a specific tool, bypassing the yast2 shell. The shell doesn't actually use the qt plugin (though it's also bundled in the yast2-qt package I think), so that would tell us what code was responsible for the message printing. But oh boy, the users tool is completely broken in your machine. Maybe all the tools that use yast2-perl are too. Given yast2 is no longer being maintained for 11.2 (and this is very likely a problem of packages not being upgraded in unison), I would just recommend you to upgrade your machine already. ;-) (In reply to comment #7) > I also suggest you to use the global progress bar (from 0% to 50%, e.g.) to > inform people on the global download status... and from 50% + 1 to 100% to > inform on global install status. This if you don't change the current two-phase > install. I completely agree on the progress bar. I am just an occasional contributor, but I'd think that problem is known and going to be addressed, given it's so egregious. But I cannot find any bug report on that, so please fill up one, so we can then assign it to whomever is most familiar with the code in question. :) (In reply to comment #4) > Hi Michael, > > Can you tell us if libzypp ABI is supposed to be backward compatible? > > If so, shouldn't applications be linking to libzypp.so, rather than specific > versions like libzypp.so.807? (so that people can upgrade libzypp alone, and > programs depending on it won't break.) This is true if you follow the officially released versions; for 11.2 this is libzypp-6.x. But this one here is: Version : 8.8.0 obs://build.opensuse.org/zypp:Head And https://build.opensuse.org/project/show?project=zypp:Head says: ZYpp HEAD branch USE AT YOUR OWN RISK Note, this project is based on the latest code which is highly experimental. This is the development branch towards 11.4, and of course we do have ABI changes there, while 11.4 is not out. That's why we even have a new major number (compared to 11.2,11.3). The changed minor between 8.0.0 and 8.7.0 tells you the ABI changed. Looking into the changelog you usually see how far backward compatible the new ABI is. version 8.8.0 (7) ^ back to 8.7.x If the 'libzypp.so.800 -> libzypp.so.807.1.0' symlink works, then by chance. We changed some structures and enum values, so if yast says 'left' zypp may easily hear 'right'... (In reply to comment #9) > If the 'libzypp.so.800 -> libzypp.so.807.1.0' symlink works, then by chance. We > changed some structures and enum values, so if yast says 'left' zypp may easily > hear 'right'... Thanks Michael for all the great info, that was more than I was bargaining for. ;-) Carlo, given yast2 head packages are no longer being built for 11.2, I'm afraid you'll have to upgrade your system if you want to keep using the latest and the greatest. :-) If you want to contest that decision, please bring up the topic over the yast2 mailing list: http://lists.opensuse.org/ No problem Ricardo, some weeks ago I decided to upgrade my notebook as I told above. I will do a clean install next days on my new 2.5" 7200 rpm hard disk! :-) Thank you all very much. Since five years ago and sometime I test the Yast2 future with respect to my OpenSuSE current version before upgrading it. As you suggest to me in comment 8, I open a new bug on "Yast2 install window evolution and improvements"; it's here https://bugzilla.novell.com/show_bug.cgi?id=652116 Have a nice evening, Carlo |