Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Sep 2014 12:01:44 +0200
From:      Tijl Coosemans <tijl@FreeBSD.org>
To:        Baptiste Daroussin <bapt@FreeBSD.org>
Cc:        ports@freebsd.org
Subject:   Re: [BRAINSTORMING] simplifying maintainer's life
Message-ID:  <20140903120144.5bfc3fde@kalimero.tijl.coosemans.org>
In-Reply-To: <20140903082538.GE63085@ivaldir.etoilebsd.net>
References:  <20140903082538.GE63085@ivaldir.etoilebsd.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 3 Sep 2014 10:25:39 +0200 Baptiste Daroussin <bapt@FreeBSD.org> wrote:
> On of the most borring thing IMHO in the plist maintainance is all the
> directories.
> 
> I have been working on some evolutions I want to share and discuss before
> making them official.
> 
> First you have to know that since pkg 1.3 @dirrm and @dirrmtry are
> equivalent.
> 
> Evolutions:
> 1/ stop prepending directories in plist with @dir*: let pkg discover
> the path correspond to a directory and handle it as such (easy)

Good.

> 2/ make pkg automatically remove directories under PREFIX without the
> need of adding them in plist, such as only empty directories and
> directories not under PREFIX will have to be listed. Of course pkg will
> not try to remove directories owned by another package.
> 
> To achieve the point 2 that will mean we will stop using the mtree
> inside packages and create a "hier" package that will have the default
> hierarchy and every package but pkg will depend on this hier package
> (except if PREFIX != LOCALBASE)

I think you can avoid the hier package and thus the PREFIX != LOCALBASE
problem.

Assume there are no packages with empty directories, then pkg can
always remove empty directories when deinstalling a package, because
no files in the directory means no package requires it.  You don't need
a hier package in this case.

You can add support for packages with empty directories in two ways:
- Put a dummy file in the directory, e.g. .PKGNAME.keepme
  (simple to implement, but maybe some packages really need the
  directory to be empty or maybe they only expect a specific type of
  files)
- Record something like .PKGNAME.keepme in the pkg db but don't
  actually create that file.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140903120144.5bfc3fde>