<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>