This is the same portage problem referenced in Bug #624 and Bug #2167 and needs to be worked around. The ebuild creates empty directories, but during an upgrade or reinstall, after the installation makes sure those empty dirs exist, the "safe unmerge" deletes them (this really should be fixed in portage, IMHO, but the accepted solution seems to be to workaround this for the time being). In the case of horde-pear, I think this definitely needs to be fixed within the ebuild. For the other horde apps (I'm sure others besides just horde and horde-imp are affected), perhaps this needs to be addressed in the webapp eclass? ############################################################ # emerge -av horde horde-imp horde-pear ...success... # qpkg -c -v horde net-www/horde-2.2.5 * net-www/horde-imp-3.2.4 * net-www/horde-pear-1.3-r1 * # emerge -av horde horde-imp horde-pear ... <<< dir /usr/share/webapps/horde/2.2.5/sqlscripts <<< dir /usr/share/webapps/horde/2.2.5/hostroot/icons <<< dir /usr/share/webapps/horde/2.2.5/hostroot/error <<< dir /usr/share/webapps/horde/2.2.5/hostroot/cgi-bin <<< dir /usr/share/webapps/horde/2.2.5/hostroot ... <<< dir /usr/share/webapps/horde-imp/3.2.4/sqlscripts <<< dir /usr/share/webapps/horde-imp/3.2.4/hostroot/icons <<< dir /usr/share/webapps/horde-imp/3.2.4/hostroot/error <<< dir /usr/share/webapps/horde-imp/3.2.4/hostroot/cgi-bin <<< dir /usr/share/webapps/horde-imp/3.2.4/hostroot ... <<< dir /usr/lib/php/tests/DB/tests/pgsql <<< dir /usr/lib/php/tests/DB/tests/odbc <<< dir /usr/lib/php/tests/DB/tests/oci8 <<< dir /usr/lib/php/tests/DB/tests/mysql <<< dir /usr/lib/php/tests/DB/tests/ibase <<< dir /usr/lib/php/docs/HTML_TreeMenu/docs <<< dir /usr/lib/php/docs/HTML_TreeMenu <<< dir /usr/lib/php/docs/DB/DB <<< dir /usr/lib/php/data/HTML_TreeMenu/imagesAlt2 <<< dir /usr/lib/php/data/HTML_TreeMenu/imagesAlt <<< dir /usr/lib/php/data/HTML_TreeMenu/images <<< dir /usr/lib/php/data/HTML_TreeMenu <<< dir /usr/lib/php/HTML/docs ...otherwise, successful... # qpkg -c -v horde net-www/horde-2.2.5 * /usr/share/webapps/horde/2.2.5/sqlscripts !not exist! /usr/share/webapps/horde/2.2.5/hostroot !not exist! /usr/share/webapps/horde/2.2.5/hostroot/error !not exist! /usr/share/webapps/horde/2.2.5/hostroot/icons !not exist! /usr/share/webapps/horde/2.2.5/hostroot/cgi-bin !not exist! 5/462 net-www/horde-imp-3.2.4 * /usr/share/webapps/horde-imp/3.2.4/sqlscripts !not exist! /usr/share/webapps/horde-imp/3.2.4/hostroot !not exist! /usr/share/webapps/horde-imp/3.2.4/hostroot/error !not exist! /usr/share/webapps/horde-imp/3.2.4/hostroot/icons !not exist! /usr/share/webapps/horde-imp/3.2.4/hostroot/cgi-bin !not exist! 5/411 net-www/horde-pear-1.3-r1 * /usr/lib/php/HTML/docs !not exist! /usr/lib/php/data/HTML_TreeMenu !not exist! /usr/lib/php/data/HTML_TreeMenu/imagesAlt2 !not exist! /usr/lib/php/data/HTML_TreeMenu/images !not exist! /usr/lib/php/data/HTML_TreeMenu/imagesAlt !not exist! /usr/lib/php/docs/DB/DB !not exist! /usr/lib/php/docs/HTML_TreeMenu !not exist! /usr/lib/php/docs/HTML_TreeMenu/docs !not exist! /usr/lib/php/tests/DB/tests/oci8 !not exist! /usr/lib/php/tests/DB/tests/odbc !not exist! /usr/lib/php/tests/DB/tests/ibase !not exist! /usr/lib/php/tests/DB/tests/mysql !not exist! /usr/lib/php/tests/DB/tests/pgsql !not exist! 13/525 ############################################################ ############################################################ # emerge info Portage 2.0.50-r8 (default-x86-2004.0, gcc-3.3.3, glibc-2.3.3.20040420-r0, 2.6.7-gentoo-r5) ================================================================= System uname: 2.6.7-gentoo-r5 i686 Intel(R) Pentium(R) 4 CPU 2.53GHz Gentoo Base System version 1.4.16 Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -march=pentium4 -pipe -fomit-frame-pointer -fstack-protector" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -march=pentium4 -pipe -fomit-frame-pointer -fstack-protector" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://gentoo.chem.wisc.edu/gentoo/ http://128.213.5.34/gentoo/ http://gentoo.netnitco.net http://mirror.cpsc.ucalgary.ca/mirror/gentoo.org http://cudlug.cudenver.edu/gentoo/ http://gentoo.ccccom.com http://gentoo.binarycompass.org" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="alsa apache2 arts avi crypt cups encode flash foomaticdb gd gif gtk2 imagemagick imap imlib jpeg lcms libg++ libwww mad mcal memlimit mikmod mmx mpeg mysql ncurses nls oggvorbis opengl oss pam pdflib perl png ppds python quicktime readline samba sasl sdl slang slp spell sse ssl svga tcpd tiff truetype usb vhosts x86 xml xml2 xmms zlib" ############################################################
the first three cases you point out are directories made by webapp-config, not horde the 4th case i dont see it being a bug since, afaik, those directories dont really need to exist to function correctly
When I made this report, I didn't realize that it's the webapp eclass that handles those skeleton directories. Those were my main concern, not the PEAR dirs. I do still consider the horde-pear case a minor bug, though. Any merge that leaves you with a package that thinks it's incomplete (functional though it may be) is a bug. IMHO, unnecessary empty dirs should either not be merged in the first place or should be preserved through an update/reinstall (wouldn't some keep files solve this?). I realize the shortcoming is in portage, though, and merely cosmetic in the case of horde-pear (incidentally, for *some* apps, it's not cosmetic: e.g. for postfix, its spool directories are required to exist; however, it doesn't like to see .keep files in them, so the ebuild works around this issue by creating those directories in pkg_postinst so that they don't get unmerged during an updat -- but I digress).
Stu - thoughts?
wrobel - thoughts?
The webapp.eclass uses "dodir" in webapp_src_preinst which leads to this effect. We ensured that w-c won't complain when these dirs are missing.