<pre style='margin:0'>
Kurt Hindenburg (kurthindenburg) pushed a commit to branch master
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/ba6e65bfb4be375ed7ae65ee39338c2e97f856bf">https://github.com/macports/macports-base/commit/ba6e65bfb4be375ed7ae65ee39338c2e97f856bf</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new ba6e65b startupitem_type: remove SystemStarter
</span>ba6e65b is described below
<span style='display:block; white-space:pre;color:#808000;'>commit ba6e65bfb4be375ed7ae65ee39338c2e97f856bf
</span>Author: Kurt Hindenburg <kurt.hindenburg@gmail.com>
AuthorDate: Wed Oct 4 11:49:15 2017 -0400
<span style='display:block; white-space:pre;color:#404040;'> startupitem_type: remove SystemStarter
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Tiger introduced launchd and is the earliest OS that macports supports.
</span><span style='display:block; white-space:pre;color:#404040;'> This removes the obsolete startupitem_type SystemStarter.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> see https://trac.macports.org/ticket/36770
</span>---
doc/macports.conf.5 | 2 +-
doc/macports.conf.5.txt | 2 +-
doc/macports.conf.in | 1 -
doc/portfile.7 | 2 +-
src/port1.0/portstartupitem.tcl | 295 +---------------------------------------
5 files changed, 4 insertions(+), 298 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/doc/macports.conf.5 b/doc/macports.conf.5
</span><span style='display:block; white-space:pre;color:#808080;'>index 5c640c1..8f6bfff 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/doc/macports.conf.5
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/doc/macports.conf.5
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -395,7 +395,7 @@ lt lt.
</span> T{
\fBSupported types:\fR
T}:T{
<span style='display:block; white-space:pre;background:#ffe0e0;'>-none, SystemStarter, launchd, default, rcNG\&.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+none, launchd, default, rcNG\&.
</span> T}
T{
\fBDefault:\fR
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/doc/macports.conf.5.txt b/doc/macports.conf.5.txt
</span><span style='display:block; white-space:pre;color:#808080;'>index 6ddb9d3..769dd50 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/doc/macports.conf.5.txt
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/doc/macports.conf.5.txt
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -139,7 +139,7 @@ startupitem_type::
</span> Set the default type of startupitems to be generated, overridable by
Portfiles that explicitly state a startupitem.type key. If set to "default",
then a type will be selected that's appropriate to the OS.
<span style='display:block; white-space:pre;background:#ffe0e0;'>- *Supported types:*;; none, SystemStarter, launchd, default, rcNG.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *Supported types:*;; none, launchd, default, rcNG.
</span> *Default:*;; default
destroot_umask::
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/doc/macports.conf.in b/doc/macports.conf.in
</span><span style='display:block; white-space:pre;color:#808080;'>index 2b3d5ae..a10cc29 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/doc/macports.conf.in
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/doc/macports.conf.in
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -121,7 +121,6 @@ universal_archs @UNIVERSAL_ARCHS@
</span>
# Type of generated StartupItems.
# - launchd: Create StartupItems for use with launchd.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# - systemstarter: Create StartupItems for use with SystemStarter.
</span> # - rcng: Create StartupItems for use with the rc.d system.
# - default: Create StartupItems for launchd on OS X and for rc.d on
# other platforms.
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/doc/portfile.7 b/doc/portfile.7
</span><span style='display:block; white-space:pre;color:#808080;'>index a259baa..11576e6 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/doc/portfile.7
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/doc/portfile.7
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1509,7 +1509,7 @@ on prior Mac OS X systems. A global default may be specified with the startupite
</span> .Em default
.br
.Sy Values:
<span style='display:block; white-space:pre;background:#ffe0e0;'>-.Em SystemStarter launchd default rcNG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.Em launchd default rcNG
</span> .br
.Sy Example
.Dl startupitem.type launchd
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portstartupitem.tcl b/src/port1.0/portstartupitem.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index a4920b3..0c70005 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portstartupitem.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portstartupitem.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -55,12 +55,10 @@
</span> # startupitem.logfile logpath
# Log to the specified file -- if not specified then output to /dev/null
# - for launchd, just set this as the standard out key
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# - for systemstarter, redirect to this
</span> #
# startupitem.logevents yes/no
# Log events to the log
# - for launchd, generate log messages inside daemondo
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# - for systemstarter, generate log messages in our generated script
</span> #
# startupitem.autostart yes/no
# Automatically load the startupitem after activating. Defaults to no.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -120,291 +118,6 @@ proc portstartupitem::startupitem_create_rcng {args} {
</span> close ${fd}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-proc portstartupitem::startupitem_create_darwin_systemstarter {args} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- global UI_PREFIX prefix destroot destroot.keepdirs subport os.platform \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- startupitem.name startupitem.requires startupitem.init \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- startupitem.start startupitem.stop startupitem.restart startupitem.executable \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- startupitem.pidfile startupitem.logfile startupitem.logevents \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- startupitem.autostart
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set scriptdir ${prefix}/etc/startup
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set itemname ${startupitem.name}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set uppername [string toupper ${startupitem.name}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[getuid] == 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set itemdir /Library/StartupItems/${itemname}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set itemdir ${prefix}/Library/StartupItems/${itemname}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set startupItemDir ${destroot}${itemdir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set startupItemScript ${startupItemDir}/${itemname}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set startupItemPlist ${startupItemDir}/StartupParameters.plist
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Interpret the pidfile spec
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # There are four cases:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # (1) none (or none specified)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # (2) auto [pidfilename]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # (3) clean [pidfilename]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # (4) manual [pidfilename]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set createPidFile false
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set deletePidFile false
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set pidFile ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set pidfileArgCnt [llength ${startupitem.pidfile}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { ${pidfileArgCnt} > 0 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { $pidfileArgCnt == 1 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set pidFile "${prefix}/var/run/${itemname}.pid"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- lappend destroot.keepdirs "${destroot}${prefix}/var/run"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set pidFile [lindex ${startupitem.pidfile} 1]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { $pidfileArgCnt > 2 } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_error "$UI_PREFIX [msgcat::mc "Invalid parameter count to startupitem.pidfile: 2 expected, %d found" ${pidfileArgCnt}]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set pidStyle [lindex ${startupitem.pidfile} 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- switch ${pidStyle} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- none { set createPidFile false; set deletePidFile false; set pidFile "" }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- auto { set createPidFile false; set deletePidFile false }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- clean { set createPidFile false; set deletePidFile true }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- manual { set createPidFile true; set deletePidFile true }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- default {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_error "$UI_PREFIX [msgcat::mc "Unknown pidfile style %s presented to startupitem.pidfile" ${pidStyle}]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { [llength ${startupitem.executable}] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ![llength ${startupitem.init}] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ![llength ${startupitem.start}] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ![llength ${startupitem.stop}] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ![llength ${startupitem.restart}] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # An executable is specified, and there is no init, start, stop, or restart
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { ![llength ${startupitem.start} ] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set startupitem.start [list "sh ${scriptdir}/${subport}.sh start"]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { ![llength ${startupitem.stop} ] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set startupitem.stop [list "sh ${scriptdir}/${subport}.sh stop"]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { ![llength ${startupitem.requires} ] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set startupitem.requires [list Disks NFS]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { ![llength ${startupitem.logfile} ] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set startupitem.logfile "/dev/null"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Create the startup item directory
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file mkdir ${startupItemDir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[getuid] == 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file attributes ${startupItemDir} -owner root -group wheel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Generate the startup item script
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set item [open "${startupItemScript}" w 0755]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[getuid] == 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file attributes "${startupItemScript}" -owner root -group wheel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Emit the header
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} {#!/bin/sh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# MacPorts generated StartupItem
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "prefix=$prefix"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Source the utilities package and the MacPorts config file
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} {[ -r "/etc/rc.common" ] && . "/etc/rc.common"}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} {[ -r "${prefix}/etc/rc.conf" ] && . "${prefix}/etc/rc.conf"}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Emit the Configuration Section
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "NAME=${itemname}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "ENABLE_FLAG=\${${uppername}:=-NO-}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "PIDFILE=\"${pidFile}\""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "LOGFILE=\"${startupitem.logfile}\""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "EXECUTABLE=\"${startupitem.executable}\""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "HAVE_STARTCMDS=[expr {[llength ${startupitem.start}] ? "true" : "false"}]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "HAVE_STOPCMDS=[expr {[llength ${startupitem.stop}] ? "true" : "false"}]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "HAVE_RESTARTCMDS=[expr {[llength ${startupitem.restart}] ? "true" : "false"}]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "DELETE_PIDFILE=${createPidFile}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "CREATE_PIDFILE=${deletePidFile}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "LOG_EVENTS=[expr {[tbool ${startupitem.logevents}] ? "true" : "false"}]"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Emit the init lines
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach line ${startupitem.init} { puts ${item} ${line} }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Emit the _Cmds
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach kind { start stop restart } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[llength [set "startupitem.$kind"]]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "${kind}Cmds () \{"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach line [set "startupitem.$kind"] {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "\t${line}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} "\}\n"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # vvvvv START BOILERPLATE vvvvvv
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Emit the static boilerplate section
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${item} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-IsEnabled () {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- [ "${ENABLE_FLAG}" = "-YES-" ]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return $?
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-CreatePIDFile () {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- echo $1 > "$PIDFILE"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-DeletePIDFile () {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- rm -f "$PIDFILE"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-ReadPID () {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if [ -r "$PIDFILE" ]; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- read pid < "$PIDFILE"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pid=0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- echo $pid
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-CheckPID () {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pid=$(ReadPID)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (($pid)); then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- kill -0 $pid >& /dev/null || pid=0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- echo $pid
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-NoteEvent () {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ConsoleMessage "$1"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $LOG_EVENTS && [ -n "$LOGFILE" ] && echo "$(date) $NAME: $1" >> $LOGFILE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-StartService () {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if IsEnabled; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NoteEvent "Starting $NAME"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if $HAVE_STARTCMDS; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- startCmds
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- elif [ -n "$EXECUTABLE" ]; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- $EXECUTABLE &
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pid=$!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if $CREATE_PIDFILE; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CreatePIDFile $pid
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-StopService () {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NoteEvent "Stopping $NAME"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gaveup=false
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if $HAVE_STOPCMDS; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # If we have stop cmds, use them
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- stopCmds
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Otherwise, get the pid and try to stop the program
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- echo -n "Stopping $NAME..."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pid=$(CheckPID)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (($pid)); then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Try to kill the process with SIGTERM
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- kill $pid
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Wait for it to really stop
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- for ((CNT=0; CNT < 15 && $(CheckPID); ++CNT)); do
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- echo -n "."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sleep 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- done
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Report status
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (($(CheckPID))); then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- gaveup=true
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- echo "giving up."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- echo "stopped."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- echo "it's not running."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Cleanup the pidfile if we've been asked to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ! $gaveup && $DELETE_PIDFILE; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- DeletePIDFile
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-RestartService () {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if IsEnabled; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NoteEvent "Restarting $NAME"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if $HAVE_RESTARTCMDS; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # If we have restart cmds, use them
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- restartCmds
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Otherwise just stop/start it
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- StopService
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- StartService
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-RunService "$1"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # ^^^^^^ END BOILERPLATE ^^^^^^
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- close ${item}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ########################
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Generate the plist
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set para [open "${startupItemPlist}" w 0644]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[getuid] == 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file attributes "${startupItemPlist}" -owner root -group wheel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${para} "\{"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${para} "\tDescription\t= \"${itemname}\";"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${para} "\tProvides\t= (\"${itemname}\");"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts -nonewline ${para} "\tRequires\t= ("
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts -nonewline ${para} [format {"%s"} [join ${startupitem.requires} {", "}]]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${para} ");"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${para} "\tOrderPreference\t= \"None\";"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${para} "\}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- close ${para}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Emit some information for the user
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[tbool startupitem.autostart]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "###########################################################"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "# A startup item has been generated that will aid in"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "# starting ${subport} with SystemStarter. It will be"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "# started automatically on activation."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "###########################################################"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "###########################################################"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "# A startup item has been generated that will aid in"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "# starting ${subport} with SystemStarter. It is disabled"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "# by default. Add the following line to /etc/hostconfig"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "# or ${prefix}/etc/rc.conf to start it at startup:"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "#"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "# ${uppername}=-YES-"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_notice "###########################################################"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> proc portstartupitem::startupitem_create_darwin_launchd {args} {
global UI_PREFIX prefix destroot destroot.keepdirs subport macosx_deployment_target \
startupitem.name startupitem.uniquename startupitem.plist startupitem.location \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -660,12 +373,7 @@ proc portstartupitem::startupitem_create {args} {
</span> if {${startupitem.type} eq "default" || ${startupitem.type} eq ""} {
switch -exact ${os.platform} {
darwin {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set haveLaunchd ${portutil::autoconf::have_launchd}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if { [tbool haveLaunchd] } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set startupitem.type "launchd"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set startupitem.type "systemstarter"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set startupitem.type "launchd"
</span> }
default {
set startupitem.type "rcng"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -680,7 +388,6 @@ proc portstartupitem::startupitem_create {args} {
</span>
switch -- ${startupitem.type} {
launchd { startupitem_create_darwin_launchd }
<span style='display:block; white-space:pre;background:#ffe0e0;'>- systemstarter { startupitem_create_darwin_systemstarter }
</span> rcng { startupitem_create_rcng }
default { ui_error "$UI_PREFIX [msgcat::mc "Unrecognized startupitem type %s" ${startupitem.type}]" }
}
</pre><pre style='margin:0'>
</pre>