pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg/35340 (pkgsrc OWN_DIRS bug where empty directories are pruned too earnestly)

The following reply was made to PR pkg/35340; it has been noted by GNATS.

From: David Holland <>
Subject: Re: pkg/35340 (pkgsrc OWN_DIRS bug where empty directories are
 pruned too earnestly)
Date: Sun, 9 Aug 2015 23:14:57 +0000

 On Sun, Aug 09, 2015 at 10:55:56PM +0000, wrote:
  > I can replicate this with a simple test package.
 The problem is not that the wrong things are listed at the end of
 +DIRS; the problem is that +DIRS uses rmdir -p to remove dirs, so that
 any empty ancestor directories are pruned regardless of whether pkgsrc
 owns them or not.
 This could be changed; however, because +DIRS also uses mkdir -p, this
 may cause intermediate dirs created by pkgsrc to get left around.
 I note that +DIRS sets MKDIR to mkdir -p, and then uses ${MKDIR} -p in
 places, suggesting that this may not have been originally intended.
 It seems to me that the right fix is to not use either rmdir -p or
 mkdir -p, and to fix packages that don't explicitly create ancestor
 directories. (That is, if you have
    OWN_DIRS_PERMS+=	/var/thingy/boojum root wheel 755
    OWN_DIRS_PERMS+=	/var/thingy/snark  root wheel 755
 without an explicit entry for /var/thingy, nothing will create
 /var/thingy and installation of the binary package will fail.)
 This is probably a good thing, at least for OWN_DIRS, as the
 permissions on directories created by mkdir -p depend on the umask and
 maybe other things and aren't necessarily as repeatable as we'd like.
 However, this introduces two other issues: (a) where do we stop (do we
 need OWN_DIRS for /var? surely not; but what about e.g. /var/db, which
 probably doesn't exist on say Linux?) and (b) does mucking with the
 +DIRS script affect other directory creation that we aren't prepared
 to deal with or where using mkdir -p is necessary and appropriate? I
 don't know...
 btw, the replication example is to just add e.g.
    OWN_DIRS+=	/var/thingy/boojum root wheel 755
 to something simple and install/deinstall. Currently creating
 /var/thingy beforehand is not necessary, because it will be created by
 mkdir -p.
 David A. Holland

Home | Main Index | Thread Index | Old Index