Another CLC fix:
*load-truename* is assumed to point to the source directory that also contains the icons/ directory. In CLC, this isn't the case as all fasl are loaded from /var/cache/common-lisp-controller/.
I changed Apps/Listener/package.lisp to also probe in #.*compile-file-truename*, that most likely point to a directory containing the icons too.
The problem is that I used cl-fad for directory probing. I personally don't mind to have mcclim use cl-fad, as I have it installed anyway and it's pretty lightweight, but on the other hand that might not be true for the mcclim project as a whole, especially as it needs only a single function.
The CLC way of doing things seems a good idea first, but needs to be improved. Probably, CLC should introduce a new asdf class, for instance "auxilary". All files/directories that are tagged as auxilary are symlinked in /var/cache/common-lisp-controller to the original sources. So in the code, we don't have to give up the assumption that *load-truename* contains stuff from the distribution tarball.
Or probably CLC shouldn't wait for ":auxilary" and create a mirror of all files in /usr/share/common-lisp/source per default via symlinks. This doesn't seem too costly. Especially when we create symlinks for directories and only when we need to add content these symlinked /var/cache/common-lisp-controller subdirectories turn them into real directories after filling them with the respective symlinks. Kind of lazy symlinking. But err, I'm starting to get off-topic.
Here is the patch. If the list objects cl-fad, I'd suggest to copy the respective ~15 lines of code from cl-fad.