When gtk20 installs from port or package it creates icon cache files in icon directories under LOCALBASE/share/icons/. When gtk20 deinstalls from port or package it deletes such cache files. There can be situations when there have been icons installed in such directories that were removed, e.g. from the kdelibs3 or kdebase3 package If those are deinstalled before gtk20 gets deinstalled empty icon directories will remain and will cause things such as tinderbox package build runs to fail in the end because of the left over directories. I discovered this problem with the x11-themes/gtk-qt-engine port which has dependencies for both kdelibs and gtk20. It also has an optional (used by default) dependency for libbonoboui. When the latter is used, during a tinderbox run upon reinstall, gtk20 will be removed after kdelibs/kdehier and the crystalsvg icon dir is left behind, causing an error like this: === Checking filesystem state after all packages deleted ================================================================ list of extra files and directories in / (not present on clean system but present after everything was deinstalled) 2784229 4 drwxr-xr-x 3 root wheel 512 Jan 25 22:58 usr/local/share/icons 2874128 4 drwxr-xr-x 2 root wheel 512 Jan 25 22:58 usr/local/share/icons/crystalsvg ================================================================ build of /usr/ports/x11-themes/gtk-qt-engine ended at Thu Jan 25 23:00:29 UTC 2007 The solution for this kind of problem seems to be to make sure no empty icon dirs are left behind after deleting any cachefile in them upon gtk20 deinstall. After applying this my tinderbox no longer complains about a left-over crystalsvg directory. Tinderbox log for current gtk-qt-engine-0.7_4 with this plist patch: http://freebsd.ricin.com/misc/gtk-qt-engine-0.7_4-with.log Tinderbox log for current gtk-qt-engine-0.7_4 without: http://freebsd.ricin.com/misc/gtk-qt-engine-0.7_4-without.log How-To-Repeat: Test gtk-qt-engine on tinderbox (problem found after PR'ing a revision of this port but with the current port the same problem will occur)
Responsible Changed From-To: freebsd-ports-bugs->gnome Over to maintainer
State Changed From-To: open->closed I don't believe your patch is correct. It's kdelibs' duty to clean up empty directories like crystalsvg.
The problem occurs (during tinderbox deinstall run, after package has been built) if kdehier has already been deinstalled but gtk20 hasn't. kdehier will not remove icon dirs that have files left inside (icon cache created by gtk package at install) then gtk will delete cachefile but not the dir. Dan
State Changed From-To: closed->open Well, if you put it this way, it needs to be solved.
State Changed From-To: open->feedback I think the real offender here is kdebase3. Since it doesn't use INSTALLS_ICONS, no cache is built by it for crystalsvg. Of course, to use INSTALLS_ICONS, kdebase3 would have to depend on gtk20. Is there anything in the KDE world that can build these icon cache files? If so, then perhaps KDE ports could be taught to use it.
State Changed From-To: feedback->suspended No reply lately; marking suspended (the problem is real)
lofi 2008-03-13 18:23:06 UTC FreeBSD ports repository Modified files: x11/kdelibs3 pkg-plist misc/kdehier pkg-plist Log: Icon-cleanup shenanigans, see PR: ports/108364 Suggested by: pav Revision Changes Path 1.13 +1 -1 ports/misc/kdehier/pkg-plist 1.75 +1 -0 ports/x11/kdelibs3/pkg-plist _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
State Changed From-To: suspended->closed Should be fixed, committed by lofi in kdelibs3 and kdehier.