Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Dec 2004 16:15:28 -0500
From:      Paul Chvostek <paul+fbsd@it.ca>
To:        Sergey Matveychuk <sem@FreeBSD.org>
Cc:        freebsd-gnats-submit@FreeBSD.org
Subject:   Re: ports/75018: [maintainer update]: net-mgmt/rotorouter was missing a file from its plist...
Message-ID:  <20041214211528.GC74668@it.ca>
In-Reply-To: <41BE4CAA.9000208@FreeBSD.org>
References:  <41BE4CAA.9000208@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--FL5UXtIhxfXey3p5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Tue, Dec 14, 2004 at 05:15:06AM +0300, Sergey Matveychuk wrote:
> 
> I don't think it's a good idea to remove conf file this way.
> 
> Use something like this instead:
> @unexec if cmp -s %D/etc/rotorouter.conf %D/etc/rotorouter.conf-example; 
> then rm -f %D/etc/rotorouter.conf; fi

Agreed, that's more consistent with what other ports are doing.  I've
attached a replacement diff against the original port.

But ...

While this is indeed consistent with how other ports work, it brings up
a philosophical question.  Should port behaviour upon uninstall be
controlled by the port, or by the ports system itself?

By simply including the conf file in the +CONTENTS, without this
@unexec, a `pkg_delete` will remove the package but leave an altered
conf file, while `make deinstall` will remove the conf file as well.
Both will display a warning about the MD5 not matching, and neither will
return an error, whatever happens.

Could this be improved?  I think so.  (I'm CCing ports@ for discussion.)

So ... we have a "convention" amongst other ports of comparing config
files against their "-dist" or "-example" counterparts.  Should this
behaviour be made standard?  Perhaps a variable in the Makefile (i.e.
SAVEFILES or DO_NOT_DELETE) that contains a list of prefix-less files
that should kept rather than deleted if their MD5 is wrong?

For basic implementation of this, we wouldn't need to change the pkg_*
tools; the existence of the file in the variable could cause bsd.port.mk
to generate exactly the @unexec you've recommended above.  Unless of
course we wanted some kind of override option that would let us say "ya,
delete the bugger, I don't care."

Is there any merit to any of this, or should folks installing ports just
be able to clean up after themselves?

p

-- 
  Paul Chvostek                                             <paul@it.ca>
  Operations / Abuse / Whatever
  it.canada, hosting and development                   http://www.it.ca/


--FL5UXtIhxfXey3p5
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="rotorouter-1.0_1.diff-2"

diff -ruN /usr/ports/net-mgmt/rotorouter/pkg-plist rotorouter/pkg-plist
--- /usr/ports/net-mgmt/rotorouter/pkg-plist	Mon Jun 14 13:56:41 2004
+++ rotorouter/pkg-plist	Tue Dec 14 16:11:03 2004
@@ -1,3 +1,4 @@
 sbin/rotorouter
 etc/rc.d/rotorouter.sh
 etc/rotorouter.conf-example
+@unexec if cmp -s %D/etc/rotorouter.conf %D/etc/rotorouter.conf-example; then rm -f %D/etc/rotorouter.conf; fi

--FL5UXtIhxfXey3p5--



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