You are not logged in.

#1 2010-02-08 02:28:31

godlikejay
Member
Registered: 2010-01-19
Posts: 7

last update of libpng corrupts pcmanfm

After upgrading libpng 1.2 to 1.4, pcmanfm cannot be launched.
BTW, the mirror I used is ftp.archlinux.org.

$ ldd /usr/bin/pcmanfm 
    linux-gate.so.1 =>  (0xb771f000)
    libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0xb7355000)
    libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0xb72c3000)
    libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0xb72a9000)
    libcairo.so.2 => /usr/lib/libcairo.so.2 (0xb7236000)
    libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb71f4000)
    libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb71f0000)
    libfam.so.0 => /usr/lib/libfam.so.0 (0xb71ea000)
    libdbus-glib-1.so.2 => /usr/lib/libdbus-glib-1.so.2 (0xb71cd000)
    libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7193000)
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb70e0000)
    libhal-storage.so.1 => /usr/lib/libhal-storage.so.1 (0xb70d6000)
    libhal.so.1 => /usr/lib/libhal.so.1 (0xb70c6000)
    libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0xb708d000)
    libpthread.so.0 => /lib/libpthread.so.0 (0xb7074000)
    libstartup-notification-1.so.0 => /usr/lib/libstartup-notification-1.so.0 (0xb706c000)
    libc.so.6 => /lib/libc.so.6 (0xb6f24000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0xb6e0a000)
    libm.so.6 => /lib/libm.so.6 (0xb6de4000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0xb6dd6000)
    libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6dcd000)
    libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb6dca000)
    libXi.so.6 => /usr/lib/libXi.so.6 (0xb6dbc000)
    libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb6db5000)
    libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb6dac000)
    libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0xb6da2000)
    libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0xb6d9f000)
    libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb6d9b000)
    libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb6d96000)
    libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0xb6d7c000)
    libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0xb6cec000)
    libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb6cc8000)
    libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb6c44000)
    libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb6c15000)
    libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb6c12000)
    libpng12.so.0 => not found
    libpng12.so.0 => not found
    libpng12.so.0 => not found
    libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0xb6bb9000)
    libpng12.so.0 => not found
    libxcb-render-util.so.0 => /usr/lib/libxcb-render-util.so.0 (0xb6bb5000)
    libxcb-render.so.0 => /usr/lib/libxcb-render.so.0 (0xb6bae000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb6b96000)
    libz.so.1 => /usr/lib/libz.so.1 (0xb6b80000)
    librt.so.1 => /lib/librt.so.1 (0xb6b77000)
    libpcre.so.0 => /lib/libpcre.so.0 (0xb6b45000)
    /lib/ld-linux.so.2 (0xb7720000)
    libxcb-aux.so.0 => /usr/lib/libxcb-aux.so.0 (0xb6b42000)
    libxcb-event.so.1 => /usr/lib/libxcb-event.so.1 (0xb6b3f000)
    libxcb-atom.so.1 => /usr/lib/libxcb-atom.so.1 (0xb6b3a000)
    libSM.so.6 => /usr/lib/libSM.so.6 (0xb6b32000)
    libICE.so.6 => /usr/lib/libICE.so.6 (0xb6b1b000)
    libdl.so.2 => /lib/libdl.so.2 (0xb6b17000)
    libresolv.so.2 => /lib/libresolv.so.2 (0xb6b03000)
    libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb6adc000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0xb6ad9000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb6ad4000)
    libuuid.so.1 => /lib/libuuid.so.1 (0xb6ad0000)

Offline

#2 2010-02-08 02:35:54

djgera
Developer
From: Buenos Aires - Argentina
Registered: 2008-12-24
Posts: 723
Website

Re: last update of libpng corrupts pcmanfm

ldd not show any usefull.info, use LD_DEBUG=files pcmanfm 2>&1 | egrep "libpng12.*needed" to view what is the lib that tries to load the old libpng

Offline

#3 2010-02-08 02:44:04

godlikejay
Member
Registered: 2010-01-19
Posts: 7

Re: last update of libpng corrupts pcmanfm

thanks, it seems to be the gtk2's problem. As the network is slow here, I only upgraded the needed packages and left gtk2 alone.

Offline

#4 2010-02-08 02:58:05

godlikejay
Member
Registered: 2010-01-19
Posts: 7

Re: last update of libpng corrupts pcmanfm

Another question, gtk2 does not require libpng in its dependency. Isn't it comfusing?

$ pacman -Qi gtk2
Name           : gtk2
Version        : 2.18.5-1
URL            : http://www.gtk.org/
Licenses       : LGPL  
Groups         : None
Provides       : gail=1.22.3  
Depends On     : atk>=1.28.0  pango>=1.26.1  libxcursor  libxinerama  
                 libxrandr>=1.3.0  libxi>=1.2.1  libcups>=1.4.2  libxcomposite  
                 libxdamage  heimdal>=1.3.1  gnutls>=2.8.3  shared-mime-info  
Optional Deps  : None
Required By    : at-spi  clutter  emacs  fbpanel  flashplugin  gconf  gegl  
                 gftp  gimp  gnome-disk-utility  gnome-icon-theme  
                 gnome-session  gtk-engines  gtk-sharp-2  gtk-vnc  gtk2-perl  
                 gtkglext  gtkmm  gtksourceview2  gtkspell  gvim  libcanberra  
                 libepc  libglade  libgtkhtml  libnotify  librsvg  libsexy  
                 libunique  libwebkit  libwnck  linuxqq  nautilus-dropbox  
                 obconf  pcmanfm  polkit-gnome  poppler-glib  songbird-nightly  
                 totem-plparser  vte  wxgtk  xfconf  xulrunner  
Conflicts With : gtkprint-cups  gail  
Replaces       : gtkprint-cups  gail  
Installed Size : 29140.00 K
Packager       : Biru Ionut <ionut@archlinux.ro>
Architecture   : i686
Build Date     : Fri 11 Dec 2009 04:35:42 AM CST
Install Date   : Tue 19 Jan 2010 08:49:52 AM CST
Install Reason : Installed as a dependency for another package
Install Script : Yes
Description    : The GTK+ Toolkit (v2)

Offline

#5 2010-02-08 03:43:44

djgera
Developer
From: Buenos Aires - Argentina
Registered: 2008-12-24
Posts: 723
Website

Re: last update of libpng corrupts pcmanfm

because libpng dependency in gtk2 is already satifaced by cairo (on 2.18.6-1) and probably by another by another package listed as depends.

Offline

#6 2010-02-08 04:56:46

ngoonee
Forum Fellow
From: Between Thailand and Singapore
Registered: 2009-03-17
Posts: 7,362

Re: last update of libpng corrupts pcmanfm

godlikejay wrote:

thanks, it seems to be the gtk2's problem. As the network is slow here, I only upgraded the needed packages and left gtk2 alone.

That is generally a bad idea, especially when libraries update...


Allan-Volunteer on the (topic being discussed) mailn lists. You never get the people who matters attention on the forums.
jasonwryan-Installing Arch is a measure of your literacy. Maintaining Arch is a measure of your diligence. Contributing to Arch is a measure of your competence.
Griemak-Bleeding edge, not bleeding flat. Edge denotes falls will occur from time to time. Bring your own parachute.

Offline

#7 2010-02-08 05:02:40

flamelab
Member
From: Athens, Hellas (Greece)
Registered: 2007-12-26
Posts: 2,160

Re: last update of libpng corrupts pcmanfm

godlikejay wrote:

thanks, it seems to be the gtk2's problem. As the network is slow here, I only upgraded the needed packages and left gtk2 alone.

That's the problem: first fully update your system.

Offline

#8 2010-02-08 05:27:38

godlikejay
Member
Registered: 2010-01-19
Posts: 7

Re: last update of libpng corrupts pcmanfm

Yep, I should update the system fully. But I think it is also an example of faulty dependency handling. Cairo can only works with libpng 1.2.*, but not libpng 1.4.*, then it should not specify the dependency of libpng to be "libpng>=1.2.37".
I do not know if pacman can check the reverse dependency(I mean, check if the packages depends on the to-be-upgrade packages supports the new version), but if it can, in my case with the correctly dependency set, at least a warning should be raised as the old cairo does not support libpng1.4 to notify what might go wrong.

Offline

#9 2010-02-08 07:46:25

ngoonee
Forum Fellow
From: Between Thailand and Singapore
Registered: 2009-03-17
Posts: 7,362

Re: last update of libpng corrupts pcmanfm

godlikejay wrote:

Yep, I should update the system fully. But I think it is also an example of faulty dependency handling. Cairo can only works with libpng 1.2.*, but not libpng 1.4.*, then it should not specify the dependency of libpng to be "libpng>=1.2.37".
I do not know if pacman can check the reverse dependency(I mean, check if the packages depends on the to-be-upgrade packages supports the new version), but if it can, in my case with the correctly dependency set, at least a warning should be raised as the old cairo does not support libpng1.4 to notify what might go wrong.

Versioned deps break more than they solve, and add a LOT of work to packagers (they have to know, beforehand, exactly what versions of the library don't break the API/ABI/what-have-you?)

In the end, rolling release means versioned deps should be minimized, since part of the assumption is that everyone runs the same (updated) software and libs.


Allan-Volunteer on the (topic being discussed) mailn lists. You never get the people who matters attention on the forums.
jasonwryan-Installing Arch is a measure of your literacy. Maintaining Arch is a measure of your diligence. Contributing to Arch is a measure of your competence.
Griemak-Bleeding edge, not bleeding flat. Edge denotes falls will occur from time to time. Bring your own parachute.

Offline

#10 2010-02-08 09:46:16

godlikejay
Member
Registered: 2010-01-19
Posts: 7

Re: last update of libpng corrupts pcmanfm

ngoonee wrote:
godlikejay wrote:

Yep, I should update the system fully. But I think it is also an example of faulty dependency handling. Cairo can only works with libpng 1.2.*, but not libpng 1.4.*, then it should not specify the dependency of libpng to be "libpng>=1.2.37".
I do not know if pacman can check the reverse dependency(I mean, check if the packages depends on the to-be-upgrade packages supports the new version), but if it can, in my case with the correctly dependency set, at least a warning should be raised as the old cairo does not support libpng1.4 to notify what might go wrong.

Versioned deps break more than they solve, and add a LOT of work to packagers (they have to know, beforehand, exactly what versions of the library don't break the API/ABI/what-have-you?)

In the end, rolling release means versioned deps should be minimized, since part of the assumption is that everyone runs the same (updated) software and libs.

They really add a lot of work to packagers, but I don't understand why they break more than they solve. Don't they make Arch stabler and better?
As in every major release API .etc might be changed in a big chance, packages should take care of it. "A package requires >=libpng1.2  and <libpng1.3" sounds like a reasonable dep claim. And I think it doesn't avoid the minimum deps rule, or doesn't break it a lot.
Anyway, it is just my idea. I'm still a linux rookie, so that there must be something I said wrong. Hope I didn't offend you too much smile

Offline

#11 2010-02-08 09:49:34

Allan
Pacman
From: Brisbane, AU
Registered: 2007-06-09
Posts: 11,672
Website

Re: last update of libpng corrupts pcmanfm

godlikejay wrote:

As in every major release API .etc might be changed in a big chance, packages should take care of it. "A package requires >=libpng1.2  and <libpng1.3" sounds like a reasonable dep claim. And I think it doesn't avoid the minimum deps rule, or doesn't break it a lot.

But what if libpng1.3 was release and did not have a library soname bump?   Then we would have to rebuild all the packages for a bad dependency...

Offline

#12 2010-02-08 12:40:40

godlikejay
Member
Registered: 2010-01-19
Posts: 7

Re: last update of libpng corrupts pcmanfm

Allan wrote:

But what if libpng1.3 was release and did not have a library soname bump?   Then we would have to rebuild all the packages for a bad dependency...

Take cairo for example, though libpng makes major update from 1.2 to 1.3, cairo can take a minor update to update the new dependency. And as cairo only have a minor updates, packages depends on cairo will not be affected. I think it could avoid rebuilding all the packages but only the directly related ones.
This is only a small example, but maybe things go far away from my imagination. So it is just a suggestion smile

Offline

Board footer

Powered by FluxBB