Date: Wed, 3 Sep 2014 15:45:06 +0200 From: Baptiste Daroussin <bapt@FreeBSD.org> To: Tijl Coosemans <tijl@FreeBSD.org> Cc: ports@freebsd.org Subject: Re: [BRAINSTORMING] simplifying maintainer's life Message-ID: <20140903134506.GJ63085@ivaldir.etoilebsd.net> In-Reply-To: <20140903143017.372e42a4@kalimero.tijl.coosemans.org> References: <20140903082538.GE63085@ivaldir.etoilebsd.net> <20140903120144.5bfc3fde@kalimero.tijl.coosemans.org> <20140903100751.GG63085@ivaldir.etoilebsd.net> <20140903143017.372e42a4@kalimero.tijl.coosemans.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--huG+SbfbdD6eblZQ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Sep 03, 2014 at 02:30:17PM +0200, Tijl Coosemans wrote: > On Wed, 3 Sep 2014 12:07:51 +0200 Baptiste Daroussin <bapt@FreeBSD.org> w= rote: > > On Wed, Sep 03, 2014 at 12:01:44PM +0200, Tijl Coosemans wrote: > >> On Wed, 3 Sep 2014 10:25:39 +0200 Baptiste Daroussin <bapt@FreeBSD.org= > wrote: > >>> 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 wi= ll > >>> not try to remove directories owned by another package. > >>>=20 > >>> 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 !=3D LOCALBASE) > >>=20 > >> I think you can avoid the hier package and thus the PREFIX !=3D LOCALB= ASE > >> problem. > >>=20 > >> 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. > >>=20 > >> 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. > >=20 > > We do already support empty directories natively we do not need the .ke= ep > > whatever and this works pretty well :) > > if a line in the plist is a directory (or @dirrm* ) then the directory = is > > considered as owned by the package and always created >=20 > Does this work: packages A and B both create the same empty directory > and package C installs files in that directory. Can you install and > deinstall A, B and C in any order and will that directory only be > deleted when you deinstall the last package? yes >=20 > Is pkg already keeping a reference count or something for every > directory? yes >=20 > > My only problem is to still provide the default grobal hier in provided > > by BSD.local.dist (like etc/rc.conf.d etc/libmap.d etc) that said we > > have actually only 4 empty directories all documented in the respective > > manpages from base where they are used, so yes probably I can just > > ignore the mtree at all > > Which makes the feature easy to implement then. >=20 > I don't think those directories actually need to exist. On a fresh > installation /usr/local is empty. true >=20 > > In anycase I will limit auto removal to PREFIX (the one supplied when > > creating the package) because base has its own mtree and I do not want > > to delete any empty directory from base at least until base is package > > itself. >=20 > Yes, it's probably a good idea to list everything outside PREFIX > explicitly. Maybe you can limit it to the current @cwd instead of > PREFIX but then some existing pkg-plists may need to be fixed. regards, Bapt --huG+SbfbdD6eblZQ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iEYEARECAAYFAlQHG2IACgkQ8kTtMUmk6Ex+mACgjeNi3AcKr0Zdbf1xXz913KXs qTwAoLqwjFzov3bcfiZu0UaEYbE17JcP =UghQ -----END PGP SIGNATURE----- --huG+SbfbdD6eblZQ--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140903134506.GJ63085>