Wesley Shields wrote:
On Thu, Oct 27, 2011 at 11:15:00AM +0200, Ed Schouten wrote:
Hi folks,

As crees@ suggested, I'm sending an email to ports@ about this.

What really bothers me when I use the FreeBSD Ports tree on one of my
systems, is that the behaviour of dealing with services is quite
inconsistent. As mentioned in the PR:

I agree inconsistency is a problem that could be addressed, but I don't
particularly agree with some of your statements.

- If I upgrade Apache, MySQL or PostgreSQL, it does not restart the
   service, meaning it won't use the freshly installed daemon. This has
   potential security issues.

I'd prefer that no services are started or stopped automatically, unless
absolutely necessary for the upgrade.

- If I upgrade Dovecot, it shuts it down during the upgrade, but won't
   restart it. This means that I have to watch portmaster to complete and
   must not forget to restart Dovecot afterwards.

Also Smartd from SmartMonTools and MySQL are stopped during upgrade process.

- There are some ports touching user modified files on install / uninstall. For example some Apache modules are touching httpd.conf which is not good in some cases. If I upgrade mod_bw or mod_proctitle, it removes (comment out) the LoadModule line on uninstall phase and not enable it again on install phase of new version. So I must manually edit httpd.conf after each upgrade before Apache restart.

Unless it is absolutely necessary to stop and restart dovecot during an
upgrade I would like to see this removed.

I think the main problem is that there is no difference between Uninstall and Upgrade (from ports perspective). It can be OK to shutdown daemon on uninstall. But somebody wants to restart services on upgrade and somebody wants to keep them running. Both have pros and cons.

As mentioned above with Apache modules case, if there will be way to distinguish between uninstall and upgrade, then there will be ways to handle this problems more carefully. But intil then I vote for removing all custom "stop" / "restart" / "edit files" on per port basis - because it is inconsistent and unpredictable.

My question is whether anyone has ever attempted to improve the
integration with rc-scripts? In the PR I propose something along these
lines:

        We know exactly which ports install rc scripts (USE_RC_SUBR).
        Why not run `/usr/local/etc/rc.d/${FOO} status' and
        `/usr/local/etc/rc.d/${FOO} stop' prior to installation. Based
        on the return value of the first, we can run
        `/usr/local/etc/rc.d/${FOO} start' after installation.

I'm of the opinion that ports/packages should not touch running services
unless absolutely necessary.

I think that the best would be to do some user configurable hooks on install / uninstall / upgrade actions in similar way as portupgrade does it. (e.g. somebody may want to stop another service before upgrade [restart] of mysql-server)

Miroslav Lachman
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to