BSD.local.dist - share/locale

Stanislav Sedov ssedov at mbsd.msk.ru
Thu Aug 24 18:45:58 UTC 2006


On Thu, 24 Aug 2006 18:50:52 +0400
"Andrew Pantyukhin" <infofarmer at FreeBSD.org> mentioned:

> On 8/24/06, Jeremy Messenger <mezz7 at cox.net> wrote:
> > On Thu, 24 Aug 2006 08:26:53 -0500, Andrew Pantyukhin
> > <infofarmer at FreeBSD.org> wrote:
> >
> > > I can't help thinking that the way we're trying to deal with
> > > locale directories is far from optimal. IMHO, there are
> > > several ways to improve the state of things:
> >
> > I think the current how we handle locale is a bit silly, so I personal in
> > favor of create localehier like misc/gnomehier than four suggested below..
> > Honestly, I would be more rather to put mtree that is for ports in
> > somewhere of /usr/ports/ than /etc/mtree/ that way any version of FreeBSD
> > won't have any of left over directories problem.
> 
> It's a good idea, but we're back at the second question -
> what if someone fancies to pkg_delete -xf gnomehier?
> There will be no way to get a clean system after that
> other than by reinstalling gnomehier and deleting it after
> all the ports requiring it.
> 

That's not the main problem, and hasn't point at all since we
doesn't support such kind of deinstalls - dependent ports should
be deinstalled before dependencies. 

The main argument for deinstalling all files/direcotries that
port creates follows from FreeBSD ports goal to support different
PREFIXES. That is, you can install gettext into /usr/local and 
smth that depends on gettext into /usr/local/opt. In that case
all these share/locale/xxx dirs will be created under /usr/local/opt
PREFIX and if this dependent port will not make effort to remove
these files/directories on deinstall, they will stay under /usr/local/opt
forever, though not listed in ${MTREE_FILE}.

The only possible solution I can imagine is to add these direcories into
mtree file, but since all pacthes are alredy there, there is no reason
doing this now. Just port committers should check PLISTS accurately. This
could be achieved by installing port with non standard PREFIX=xxx,
deinstalling it and looking for directories/files left.

The other possible solution is to implement some technique to automatically
gather directories dependencies created and add them into plist. But this
rather can't be achieved now, since we currently doesn't list directories
in plist, and we can't rely on @dirrm for they can be deleted also with rm -rf,
rmdir and even with `set xxx=`mktemp /tmp/1.XXXXXX` && echo '#include <stdlib.h>\n#include <unistd.h>\nint main(){rmdir("/path/to/dir"); return 0;}' > ${xxx} &&
${CC} -o ${xxx:r} ${xxx} && ${xxx:r}` ;-)

-- 
Stanislav Sedov         MBSD labs, Inc.         <ssedov at mbsd.msk.ru>
Россия, Москва         http://mbsd.msk.ru

--------------------------------------------------------------------
If the facts don't fit the theory, change the facts.  -- A. Einstein
--------------------------------------------------------------------
PGP fingerprint:  F21E D6CC 5626 9609 6CE2  A385 2BF5 5993 EB26 9581
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20060824/3cd834c0/signature.pgp


More information about the freebsd-ports mailing list