You are not logged in.
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
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
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
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
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
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
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
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
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
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 ![]()
Offline
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
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 ![]()
Offline