Dominic Fandrey wrote:
On 31/10/2011 09:37, Doug Barton wrote:
On 10/31/2011 00:38, Dominic Fandrey wrote:
On 31/10/2011 07:28, Doug Barton wrote:
On 10/27/2011 09:27, Scott Lambert wrote:
On Thu, Oct 27, 2011 at 11:15:00AM +0200, Ed Schouten wrote:
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.

If all of that is contingent upon a boolean knob the admin can set,
something like NO_RESTART_SERVICES, I suspect everyone could get
what they want and the bikeshed would be limitted to what the default
for that boolean should be.

The people who don't want the services restarted automagically can
set it and, once things use the new ports framewoork properly, not
have to worry about suprises.  The people who want everything to
restarted as soon as possible can set the knob the other way.



I think Scott's on the right track. The way that I envision it working
would be a 3-knob system. One knob to always restart the services, one
to never do it; and then asking on a per-port basis, which should be the
default. I can imagine portmaster detecting this option in the pre-build
phase similarly to how it detects and warns about IS_INTERACTIVE now,
and giving the user a menu of options for how to handle it. I'm happy to
add more details if people are interested.

I think this should be handled in the pkg-install script. Pkg based
upgrade tools _do_ exist.

Yeah, that's what I said below. :)

Sorry about that, I read the entire thread in one go, might have overlooked
something. Ironic, because the purpose was to avoid posting redundant
feedback.

Where this actually becomes interesting is not in the ports
build/install process, which is pretty easy to deal with, but with
package installs/deinstalls. I definitely think it's doable, what we
probably want to do is put a knob for this in the port's Makefile, and
handle the stop/start for both the port and the package with a little
script that can be included in the package, and run with @exec and @unexec.

Note the Porters' Handboock chapter 6.23.1. The knob to stop services is
already there.

That feature as it exists currently isn't even close to adequate, and is
causing more problems than it solves. Hence the discussion.

Yes, and even if I would like to have possibility to restart some services after upgrade, I really hate this knob to just stop the service and leave it stopped. Can somebody add global knob to override this from make.conf?

Well, I am one of the people who see no need for this feature and my vote
is for default off, if it's implemented.

I agree with default off.

I just wanted to hint that such a function is already in place and I don't
think it would be difficult to add the possibility to start a service.

What has to be done after an update is often very specific, though.
I don't envy the person having to come up with an adequate implementation.
E.g. it's not always the service installed by the pkg that needs to be
restarted:
http://www.freebsd.org/cgi/cvsweb.cgi/ports/sysutils/automounter/pkg-message?rev=1.2;content-type=text%2Fplain

And that's why I propossed more general user scriptable hooks for before/after deinstall - install - upgrade actions. (It is on Doug's portmaster proposal list http://dougbarton.us/portmaster-proposal.html) Sometimes sysadmin needs more than just restart of the upgraded service. Sometimes we need to restart other service as well, or run some test script, send an alert, or for example change some file/directory permissions - real example is courier-authdaemon when used with Postfix for SMTP auth, we must change permissions of socket dir on each upgrade.

For me, it would be nice to be able to define "functions" with whatever content executed on particular action.

short example:

function_called_after_upgrade_of_authdaemon() {
    send notice to operator or write something to logfile
    chmod 0755 /var/run/authdaemond
    restart authdaemon
    execute "self-test" script to check SMTP auth is working
}

This in general is more useful than just call restart on installed rc.d script, but ofcourse, it is more complex task to implement and I am not sure, if it should be in ports or in some utility like portmaster.

I agree that whatever will be implemented as a result of this discussion, it should be optional feature off by default and ports system should not silently stop / restart / start services.

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