# No icons/ thumbnails in Gnome



## skeelol (Feb 18, 2012)

I ended up seriously breaking some libraries and Gnome itself trying to update Firefox on my computer. Finally got Gnome working, however I do not have any icons. Icons either come up blank or use a default black square type icon. Not seeing any errors displayed. I did however try to take a screenshot as an example, and did get 
	
	



```
Fatal error in PNG image file: Incompatible libpng version in application and library
```
 I imagine a broken libpng and/or libjpeg is responsible, however I'm not sure how to fix these. 

Pointers on how to fix will be well appreciated!


----------



## skeelol (Feb 19, 2012)

I want to try a reinstall of libpng by doing a *make clean* in /usr/ports/graphics/png, however I'm kind of iffy as last time I uninstalled it for an update and tried reinstalling, it failed I believe due to some dependency. However, as far as I can tell I don't see any dependencies for libpng in the ports updates file. 

Any suggestions for my situation?


----------



## ahavatar (Feb 19, 2012)

You can find broken ports due to missing/incompatible libraries by running *pkg_libchk* command from bsdadminscripts port. You need to build the broken ports with portupgrade.


----------



## skeelol (Feb 19, 2012)

Sweet, this sounds like exactly what I need. However, I installed bsdadminscripts but it doesn't look like I got pkg_libchk with it:


```
hardlinking: /usr/local/sbin/rcstart -> /usr/local/sbin/rcstatus
hardlinking: /usr/local/sbin/rcstart -> /usr/local/sbin/rcstop
hardlinking: /usr/local/sbin/rcstart -> /usr/local/sbin/rcrestart
hardlinking: /usr/local/sbin/rcstart -> /usr/local/sbin/rconestart
hardlinking: /usr/local/sbin/rcstart -> /usr/local/sbin/rconestatus
hardlinking: /usr/local/sbin/rcstart -> /usr/local/sbin/rconestop
hardlinking: /usr/local/sbin/rcstart -> /usr/local/sbin/rconerestart
hardlinking: /usr/local/sbin/portconfig -> /usr/local/sbin/portbuild
hardlinking: /usr/local/sbin/portconfig -> /usr/local/sbin/portclean
hardlinking: /usr/local/sbin/portconfig -> /usr/local/sbin/portfetch
hardlinking: /usr/local/sbin/portconfig -> /usr/local/sbin/portpackage
hardlinking: /usr/local/sbin/portconfig -> /usr/local/sbin/portconfig-recursive
hardlinking: /usr/local/sbin/portconfig -> /usr/local/sbin/portfetch-recursive
===>   Registering installation for bsdadminscripts-6.1.1
pit87# pkg_libchk
pkg_libchk: Command not found.
```


----------



## skeelol (Feb 19, 2012)

Woops nevermind, it was installed, found it in /usr/local/sbin/pkg_libchk. I'll see what I can do from here, thanks!


----------



## wblock@ (Feb 19, 2012)

rehash.


----------



## skeelol (Feb 19, 2012)

Ok, so here's the deal. *pkg_libchk* found missing .so files for libpng, libjpeg, libgcrypt, and libintl. I realize that portupgrade can be used to fix the actual ports, however I don't believe the actual ports are broken. 

To fix the broken libraries, can I copy over the missing .so files from /usr/local/lib/compat/pkg/ to /usr/local/lib/? For instance, libchk said:

```
yelp-2.28.1_1: /usr/local/bin/yelp misses libpng.so.5
```

So will copying /usr/local/lib/compat/pkg/libpng.so.5 to /usr/local/lib solve this problem?


----------



## DutchDaemon (Feb 20, 2012)

Start formatting your posts, please.


----------



## Beeblebrox (Feb 20, 2012)

> I want to try a reinstall of libpng ... however I'm kind of iffy as last time I uninstalled it for an update and tried reinstalling, it failed I believe due to some dependency.


You might have several problems on your system, not just one. Generally, dependency problems are something you do not want. cd to /usr/ports, then:
`# make clean -C graphics/png`
just cleans out the build folders for that port
`# make missing -C graphics/png`
Will give you list of missing depends. You can even try to build & install the port:
`# make -C graphics/png`
only builds the port, does not install it
`# make install -C graphics/png`
This will try to install, but will stop with the message "cannot install, please de-install the port before trying to re-instal it", or something to that effect. But this last command will start to install all missing depends BEFORE it gets to the fail point, thereby completing the missing.
You should really read through ports(7)().


> will copying /usr/local/lib/compat/pkg/libpng.so.5 to /usr/local/lib solve this problem


 Trying it wont break anything, if it does not work, just remember to undo whatever you did. You don't have to copy it you can soft-link it (ln -s).  However, you seem to have overlooked this:


> Incompatible libpng version


Just to be sure, look for all libpng.so*. Let's see if there is a libpng.so.6 or libpng.so.4 anywhere...
`# find /usr -name "libpng.so*"`
Also check what your environment has for path:
`# echo $PATH`


----------



## ahavatar (Feb 20, 2012)

By running [CMD=""]portupgrade -fO -R <port>[/CMD] you can re-compile and install the port and other ports that it depends on.


----------



## wblock@ (Feb 20, 2012)

skeelol said:
			
		

> Ok, so here's the deal. *pkg_libchk* found missing .so files for libpng, libjpeg, libgcrypt, and libintl.



Somebody has not been reading /usr/ports/UPDATING.



> I realize that portupgrade can be used to fix the actual ports, however I don't believe the actual ports are broken.
> 
> To fix the broken libraries, can I copy over the missing .so files from /usr/local/lib/compat/pkg/ to /usr/local/lib/? For instance, libchk said:
> 
> ...



No.  Or rather, it will fix it temporarily in a way that will come back to haunt you later.  Don't copy in obsolete libraries or symlink them unless it's an emergency.  Instead, rebuild the programs that need those old libraries so that they use the new ones.  When that is needed, the procedure needed is shown in /usr/ports/UPDATING.  From above, rebuild yelp, but it's not going to be just that one.


----------



## Beeblebrox (Feb 20, 2012)

@ wblock: Now you can see why I chose that profile pic.


----------



## skeelol (Feb 21, 2012)

Ok, a lot of good stuff here guys....thanks much I will give it a go.


----------

