YAST gui not working - libpng error

I am running opensuse 13.1 . Some time after the initial install the yast gui stopped working. When I run yast2 from the command line I get repeated lines with the following::

libpng error: IDAT: invalid distance too far back.

Running rpm -qa | grep libpng results in :

libpng16-16-1.6.6-1.1.x86_64
libpng12-compat-devel-1.2.50-6.1.2.x86_64
libpng12-0-1.2.50-6.1.2.x86_64
libpng12-devel-1.2.50-6.1.2.x86_64
libpng16-16-32bit-1.6.6-1.1.x86_64
libpng16-devel-1.6.6-1.1.x86_64

I have


 rpm -qa|grep libpng
libpng16-devel-1.6.6-12.1.x86_64
libpng16-compat-devel-1.6.6-12.1.x86_64
libpng16-16-32bit-1.6.6-12.1.x86_64
libpng12-0-1.2.50-6.4.1.x86_64
libpng16-16-1.6.6-12.1.x86_64

Try updating your system with zypper

zypper up

Maybe off topic but rpm can search for packages just fine without using grep.

rpm -qa '*libpng*'

IMHO you need grep for searching packages with “case-insensitive” ie packages names can have capital letters or all of them are capital letters. using the i flag of grep.

rpm -qa | grep -i «packagename»

just saying :slight_smile:

Those error messages should not prevent YaST from starting.

Please post the last lines of your YaST log:

sudo tail /var/log/YaST2/y2log

And as deano_ferrari already pointed out, you should update your system.
There also was an update for YaST which made it more robust against custom ruby installations by forcing it to use the system’s ruby.

I looked at the log which had "… cannot require yast:cannot load such file – fast_gettext " .
I could find information on this. I had noticed that Yast is now using ruby. I am using ruby 1.9.2p290 that I installed with rvm. If I do

rvm use system

I get ruby 2.0.0p247 and now yast works. Regetably I am using other gems such as gtk2 which do not appear to install with the system ruby. My
needing a specific ruby should not break yast.

YaST’s modules are written in ruby. And YaST needs rubygem-fast_gettext as you can see in your log. Install that with rvm and YaST might work with that ruby.
But AFAIK YaST only supports ruby 2.0.
From the changelog:

* Mit Sep 11 2013 jreidinger@suse.com
- remove workaround for ruby 1.9 as only 2.0 is supported
  (to really fix $0 and ARGV, gh#yast/yast-ruby-bindings#74)

OTOH, a rubygem-gtk2 package is available on OBS:
http://software.opensuse.org/package/rubygem-gtk2

But you should update your system as you have been told twice already. As I wrote in my previous post, there is an update to YaST that should force it to use the system’s ruby so rvm should not interfere any more with YaST then.

# rpm -q --changelog yast2
* Fri May 02 2014 jreidinger@suse.com
- Make sure the system ruby is used (BNC#845897)
  ( thanks to Marc Schuetz <schuetz@gmx.net> )
- 3.0.14
...

I run “zypper up” on a regular basis. As recently as yesterday so my version of yast should be current.

I have an application built in ruby and have had problems with ruby 2. versions running correctly so I have been avoiding it.

I added the gem fast_gettext to the ruby I am using and now yast works fine.

Adding gems to the system installed ruby does not work for me. gem installs fail with “mkmf.rb can’t find header files for ruby at /usr/lib64/ruby/include/ruby.h” . The directory /usr/lib64/ruby/include does not exist.

The snark is not necessary. I can remember when much of Linux was a pain. I have been using SuSE since Andre Hedrick said that if I bought a copy at a Atlanta Linux Showcase he would fix X so it ran on my screwed up laptop (Which he did). I just want things to work. Recent releases have had too many problems.

But according to your first post, you have libpng16-16-1.6.6-1.1.x86_64 installed whereas the latest version in the update repo is libpng16-16-1.6.6-12.1.
So your system does not seem completely current.

What version of “yast2” do you have installed?

Adding gems to the system installed ruby does not work for me. gem installs fail with “mkmf.rb can’t find header files for ruby at /usr/lib64/ruby/include/ruby.h” . The directory /usr/lib64/ruby/include does not exist.

I don’t have any experience with rubygems, but /usr/lib64/ruby/include/ definitely sounds wrong.
ruby.h is in /usr/include/ruby-2.0.0/, contained in the package ruby20-devel.

And as I already said, most (all?) rubygems should be available as rpm packages in either the standard repos or on OBS.

But again, the current yast2 should use the system ruby anyway, even when rvm is in use.
If that doesn’t work for you, you should maybe reopen that bug report.
https://bugzilla.novell.com/show_bug.cgi?id=845897