<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/8301cdf4ec1e9b1ba127d68e719997532c921782">https://github.com/macports/macports-base/commit/8301cdf4ec1e9b1ba127d68e719997532c921782</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 8301cdf4e Manage option_defaults for constant defaults
</span>8301cdf4e is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 8301cdf4ec1e9b1ba127d68e719997532c921782
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Fri Apr 12 15:42:16 2024 +1000

<span style='display:block; white-space:pre;color:#404040;'>    Manage option_defaults for constant defaults
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Not doing this meant re-registering the default for an option didn't
</span><span style='display:block; white-space:pre;color:#404040;'>    work as expected. Merged defaultc into default since most of what the
</span><span style='display:block; white-space:pre;color:#404040;'>    latter does can't be avoided. Still avoiding the read trace for
</span><span style='display:block; white-space:pre;color:#404040;'>    constant values.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/69721
</span>---
 src/package1.0/portarchivefetch.tcl | 12 ++++----
 src/package1.0/portpkg.tcl          |  2 +-
 src/package1.0/portunarchive.tcl    | 18 +++++------
 src/port1.0/portactivate.tcl        |  2 +-
 src/port1.0/portbuild.tcl           | 10 +++----
 src/port1.0/portchecksum.tcl        |  4 +--
 src/port1.0/portconfigure.tcl       | 60 ++++++++++++++++++-------------------
 src/port1.0/portdestroot.tcl        | 10 +++----
 src/port1.0/portdistcheck.tcl       |  2 +-
 src/port1.0/portextract.tcl         |  8 ++---
 src/port1.0/portfetch.tcl           | 54 ++++++++++++++++-----------------
 src/port1.0/portinstall.tcl         |  2 +-
 src/port1.0/portlivecheck.tcl       | 16 +++++-----
 src/port1.0/portmain.tcl            | 30 +++++++++----------
 src/port1.0/portpatch.tcl           |  4 +--
 src/port1.0/portsandbox.tcl         |  2 +-
 src/port1.0/portstartupitem.tcl     | 34 ++++++++++-----------
 src/port1.0/porttest.tcl            |  6 ++--
 src/port1.0/portuninstall.tcl       |  2 +-
 src/port1.0/portutil.tcl            | 38 +++++++++++------------
 20 files changed, 157 insertions(+), 159 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/package1.0/portarchivefetch.tcl b/src/package1.0/portarchivefetch.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 020f2fc8f..2d1cf4457 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/package1.0/portarchivefetch.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/package1.0/portarchivefetch.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -51,17 +51,17 @@ options archive_sites archivefetch.user archivefetch.password \
</span>     archive.subdir
 
 # user name & password
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc archivefetch.user {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc archivefetch.password {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default archivefetch.user {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default archivefetch.password {}
</span> # Use EPSV for FTP transfers
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc archivefetch.use_epsv no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default archivefetch.use_epsv no
</span> # Ignore SSL certificate
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc archivefetch.ignore_sslcert no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default archivefetch.ignore_sslcert no
</span> default archivefetch.pubkeys {$archivefetch_pubkeys}
 
 default archive_sites {[portarchivefetch::filter_sites]}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc archive_sites.listfile archive_sites.tcl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc archive_sites.listpath port1.0/fetch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default archive_sites.listfile archive_sites.tcl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default archive_sites.listpath port1.0/fetch
</span> default archive.subdir {${subport}}
 
 proc portarchivefetch::filter_sites {} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/package1.0/portpkg.tcl b/src/package1.0/portpkg.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 2cea5ba75..b140b3321 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/package1.0/portpkg.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/package1.0/portpkg.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -52,7 +52,7 @@ default package.resources {${workpath}/pkg_resources}
</span> default package.scripts  {${workpath}/pkg_scripts}
 # Need productbuild to make flat packages really work
 default package.flat     {[expr {[vercmp $macosx_deployment_target 10.6] >= 0}]}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc pkg.asroot no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default pkg.asroot no
</span> 
 set_ui_prefix
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/package1.0/portunarchive.tcl b/src/package1.0/portunarchive.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index e7fb2a958..a339ac058 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/package1.0/portunarchive.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/package1.0/portunarchive.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -47,16 +47,16 @@ namespace eval portunarchive {
</span> 
 # defaults
 default unarchive.dir {${destpath}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc unarchive.env {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc unarchive.cmd {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc unarchive.pre_args {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc unarchive.args {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc unarchive.post_args {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default unarchive.env {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default unarchive.cmd {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default unarchive.pre_args {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default unarchive.args {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default unarchive.post_args {}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc unarchive.type {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc unarchive.file {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc unarchive.path {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc unarchive.skip 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default unarchive.type {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default unarchive.file {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default unarchive.path {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default unarchive.skip 0
</span> 
 set_ui_prefix
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portactivate.tcl b/src/port1.0/portactivate.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index bb7876f50..7d3e2a7b9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portactivate.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portactivate.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -48,7 +48,7 @@ namespace eval portactivate {
</span> }
 
 options activate.asroot
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc activate.asroot no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default activate.asroot no
</span> 
 proc portactivate::activate_start {args} {
     global prefix_frozen
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portbuild.tcl b/src/port1.0/portbuild.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 82ccd5e49..344dfaceb 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portbuild.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portbuild.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -50,16 +50,16 @@ options build.asroot \
</span>         use_parallel_build
 commands build
 # defaults
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc build.asroot no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default build.asroot no
</span> default build.dir {${worksrcpath}}
 default build.cmd {[portbuild::build_getmaketype]}
 default build.nice {${buildnicevalue}}
 default build.jobs {[portbuild::build_getjobs]}
 default build.jobs_arg {[portbuild::build_getjobsarg]}
 default build.pre_args {[portbuild::build_getargs]}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc build.target all
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc build.type default
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc use_parallel_build yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default build.target all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default build.type default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default use_parallel_build yes
</span> 
 set_ui_prefix
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -85,7 +85,7 @@ proc portbuild::add_automatic_buildsystem_dependencies {} {
</span> port::register_callback portbuild::add_automatic_buildsystem_dependencies
 # and an option to turn it off if required
 options build.type.add_deps
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc build.type.add_deps yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default build.type.add_deps yes
</span> 
 proc portbuild::build_getmaketype {args} {
     global build.type os.platform
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portchecksum.tcl b/src/port1.0/portchecksum.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index c1043ba38..ce5943aef 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portchecksum.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portchecksum.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -55,8 +55,8 @@ namespace eval portchecksum {
</span> options checksums checksum.skip
 
 # Defaults
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc checksums {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc checksum.skip false
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default checksums {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default checksum.skip false
</span> 
 set_ui_prefix
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portconfigure.tcl b/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index ad3e7038d..b596453a9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portconfigure.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -160,27 +160,27 @@ proc portconfigure::configure_get_cxx_stdlib {} {
</span> options                            \
     compiler.require_fortran       \
     compiler.fortran_fallback
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc compiler.require_fortran      no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default compiler.require_fortran      no
</span> default compiler.fortran_fallback    {[portconfigure::get_fortran_fallback]}
 # ********** End Fortran **********
 
 # define options
 commands configure autoreconf automake autoconf xmkmf
 # defaults
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.env       {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.env       {}
</span> default configure.pre_args  {--prefix=${prefix}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.cmd       ./configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.cmd       ./configure
</span> default configure.nice      {${buildnicevalue}}
 default configure.dir       {${worksrcpath}}
 default autoreconf.dir      {${worksrcpath}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc autoreconf.args     {--install --verbose}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default autoreconf.args     {--install --verbose}
</span> default autoconf.dir        {${worksrcpath}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc autoconf.args       --verbose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default autoconf.args       --verbose
</span> default automake.dir        {${worksrcpath}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc automake.args       --verbose
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc xmkmf.cmd           xmkmf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default automake.args       --verbose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default xmkmf.cmd           xmkmf
</span> default xmkmf.dir           {${worksrcpath}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc use_configure       yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default use_configure       yes
</span> 
 option_proc use_autoreconf  portconfigure::set_configure_type
 option_proc use_automake    portconfigure::set_configure_type
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -242,13 +242,13 @@ proc portconfigure::set_configure_type {option action args} {
</span> }
 
 options configure.asroot
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.asroot no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.asroot no
</span> 
 # Configure special environment variables.
 # We could have m32/m64/march/mtune be global configurable at some point.
 options configure.m32 configure.m64 configure.march configure.mtune
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.march     {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.mtune     {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.march     {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.mtune     {}
</span> # We could have debug/optimizations be global configurable at some point.
 options configure.optflags \
         configure.cflags \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -257,7 +257,7 @@ options configure.optflags \
</span>         configure.fflags configure.f90flags configure.fcflags \
         configure.classpath
 # compiler flags section
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.optflags      -Os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.optflags      -Os
</span> default configure.cflags        {${configure.optflags}}
 default configure.objcflags     {${configure.optflags}}
 default configure.cppflags      {[portconfigure::configure_get_cppflags]}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -278,24 +278,24 @@ proc portconfigure::configure_get_ldflags {} {
</span>         return "-L${prefix}/lib -Wl,-headerpad_max_install_names"
     }
 }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.libs          {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.libs          {}
</span> default configure.fflags        {${configure.optflags}}
 default configure.f90flags      {${configure.optflags}}
 default configure.fcflags       {${configure.optflags}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.classpath     {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.classpath     {}
</span> 
 # tools section
 options configure.perl configure.python configure.ruby \
         configure.install configure.awk configure.bison \
         configure.pkg_config configure.pkg_config_path
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.perl              {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.python            {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.ruby              {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.perl              {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.python            {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.ruby              {}
</span> default configure.install           {${portutil::autoconf::install_command}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.awk               {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.bison             {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.pkg_config        {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.pkg_config_path   {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.awk               {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.bison             {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.pkg_config        {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.pkg_config_path   {}
</span> 
 options configure.build_arch configure.ld_archflags \
         configure.sdk_version configure.sdkroot \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -316,10 +316,10 @@ options configure.universal_archs configure.universal_args \
</span>         configure.universal_objcflags \
         configure.universal_cppflags configure.universal_ldflags
 default configure.universal_archs       {[portconfigure::choose_supported_archs ${universal_archs}]}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.universal_args        --disable-dependency-tracking
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.universal_args        --disable-dependency-tracking
</span> default configure.universal_cflags      {[portconfigure::configure_get_universal_archflags]}
 default configure.universal_objcflags   {${configure.universal_cflags}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.universal_cppflags    {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.universal_cppflags    {}
</span> default configure.universal_ldflags     {[portconfigure::configure_get_universal_archflags]}
 
 # Select a distinct compiler (C, C preprocessor, C++)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -336,8 +336,8 @@ foreach _portconfigure_tool {cc objc cpp f77 f90 fc javac} {
</span> unset _portconfigure_tool
 default configure.compiler      {[portconfigure::configure_get_default_compiler]}
 default compiler.fallback       {[portconfigure::get_compiler_fallback]}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc compiler.blacklist      {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc compiler.whitelist      {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default compiler.blacklist      {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default compiler.whitelist      {}
</span> 
 # Compiler Restrictions
 #   compiler.c_standard            Standard for the C programming language (1989, 1999, 2011, etc.)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -354,9 +354,9 @@ options                            \
</span> 
 default compiler.c_standard            {[expr {$supported_archs ne "noarch" ? 1989 : ""}]}
 default compiler.cxx_standard          {[expr {$supported_archs ne "noarch" ? 1998 : ""}]}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc compiler.openmp_version        {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc compiler.mpi                   {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc compiler.thread_local_storage  no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default compiler.openmp_version        {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default compiler.mpi                   {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default compiler.thread_local_storage  no
</span> 
 set_ui_prefix
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1666,7 +1666,7 @@ proc portconfigure::add_automatic_compiler_dependencies {} {
</span> port::register_callback portconfigure::add_automatic_compiler_dependencies
 # and an option to turn it off if required
 options configure.compiler.add_deps
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.compiler.add_deps yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.compiler.add_deps yes
</span> # helper function to add dependencies for a given compiler
 proc portconfigure::add_compiler_port_dependencies {compiler} {
     global os.major porturl
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1904,7 +1904,7 @@ proc portconfigure::configure_main {args} {
</span> 
 options configure.checks.implicit_function_declaration \
         configure.checks.implicit_function_declaration.whitelist
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc configure.checks.implicit_function_declaration yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default configure.checks.implicit_function_declaration yes
</span> default configure.checks.implicit_function_declaration.whitelist {[portconfigure::load_implicit_function_declaration_whitelist ${configure.sdk_version}]}
 
 proc portconfigure::check_implicit_function_declarations {} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portdestroot.tcl b/src/port1.0/portdestroot.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index c966dd56f..b0d8f67c9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portdestroot.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portdestroot.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -52,18 +52,18 @@ options destroot.target destroot.destdir destroot.clean destroot.keepdirs destro
</span> commands destroot
 
 # Set defaults
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc destroot.asroot no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default destroot.asroot no
</span> default destroot.dir {${build.dir}}
 default destroot.cmd {${build.cmd}}
 default destroot.pre_args {[portdestroot::destroot_getargs]}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc destroot.target install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default destroot.target install
</span> default destroot.post_args {${destroot.destdir}}
 default destroot.destdir {DESTDIR=${destroot}}
 default destroot.nice {${buildnicevalue}}
 default destroot.umask {$system_options(destroot_umask)}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc destroot.clean no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc destroot.keepdirs {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc destroot.violate_mtree no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default destroot.clean no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default destroot.keepdirs {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default destroot.violate_mtree no
</span> default destroot.delete_la_files {${delete_la_files}}
 
 set_ui_prefix
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portdistcheck.tcl b/src/port1.0/portdistcheck.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 935f3c704..0321bc068 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portdistcheck.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portdistcheck.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -48,7 +48,7 @@ namespace eval portdistcheck {
</span> options distcheck.type
 
 # defaults
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc distcheck.type moddate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default distcheck.type moddate
</span> 
 proc portdistcheck::distcheck_main {args} {
     global distcheck.type fetch.type fetch.ignore_sslcert \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portextract.tcl b/src/port1.0/portextract.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 1b8340575..edfe1a38c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portextract.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portextract.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -47,17 +47,17 @@ options extract.only extract.mkdir extract.rename extract.asroot
</span> commands extract
 
 # Set up defaults
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc extract.asroot no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default extract.asroot no
</span> # XXX call out to code in portutil.tcl XXX
 # This cleans the distfiles list of all site tags
 default extract.only {[portextract::disttagclean $distfiles]}
 
 default extract.dir {${workpath}}
 default extract.cmd {[findBinary gzip ${portutil::autoconf::gzip_path}]}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc extract.pre_args -dc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default extract.pre_args -dc
</span> default extract.post_args {| ${portutil::autoconf::tar_command} -xf -}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc extract.mkdir no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc extract.rename no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default extract.mkdir no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default extract.rename no
</span> 
 set_ui_prefix
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portfetch.tcl b/src/port1.0/portfetch.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index a5c1e2e0a..94468f35c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portfetch.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portfetch.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -62,63 +62,63 @@ commands cvs
</span> commands svn
 
 # Defaults
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc extract.suffix .tar.gz
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc fetch.type standard
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default extract.suffix .tar.gz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default fetch.type standard
</span> 
 default bzr.cmd {[findBinary bzr $portutil::autoconf::bzr_path]}
 default bzr.dir {${workpath}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc bzr.revision -1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc bzr.pre_args {--builtin --no-aliases checkout --lightweight --verbose}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc bzr.args {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default bzr.revision -1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default bzr.pre_args {--builtin --no-aliases checkout --lightweight --verbose}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default bzr.args {}
</span> default bzr.post_args {-r ${bzr.revision} ${bzr.url} ${worksrcdir}}
 
 default cvs.cmd {[findBinary cvs $portutil::autoconf::cvs_path]}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc cvs.password {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default cvs.password {}
</span> default cvs.dir {${workpath}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc cvs.method export
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default cvs.method export
</span> default cvs.module {$distname}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc cvs.tag {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc cvs.date {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default cvs.tag {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default cvs.date {}
</span> default cvs.env {CVS_PASSFILE=${workpath}/.cvspass}
 default cvs.pre_args {-z9 -f -d ${cvs.root}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc cvs.args {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default cvs.args {}
</span> default cvs.post_args {${cvs.module}}
 
 default svn.cmd {${prefix_frozen}/bin/svn}
 default svn.dir {${workpath}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc svn.method export
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc svn.revision {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc svn.env {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc svn.pre_args --non-interactive
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc svn.args {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc svn.post_args {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default svn.method export
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default svn.revision {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default svn.env {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default svn.pre_args --non-interactive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default svn.args {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default svn.post_args {}
</span> 
 default git.cmd {[portfetch::find_git_path]}
 default git.dir {${workpath}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc git.branch {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default git.branch {}
</span> 
 default hg.cmd {[findBinary hg $portutil::autoconf::hg_path]}
 default hg.dir {${workpath}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc hg.tag tip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default hg.tag tip
</span> 
 # Set distfiles
 default distfiles {[list [portfetch::suffix [join $distname]]]}
 default dist_subdir {${name}}
 
 # user name & password
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc fetch.user {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc fetch.password {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default fetch.user {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default fetch.password {}
</span> # Use EPSV for FTP transfers
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc fetch.use_epsv yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default fetch.use_epsv yes
</span> # Ignore SSL certificate
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc fetch.ignore_sslcert no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default fetch.ignore_sslcert no
</span> # Use remote timestamps
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc fetch.remote_time no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc fetch.user_agent {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default fetch.remote_time no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default fetch.user_agent {}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc global_mirror_site macports_distfiles
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc mirror_sites.listfile mirror_sites.tcl
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc mirror_sites.listpath port1.0/fetch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default global_mirror_site macports_distfiles
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default mirror_sites.listfile mirror_sites.tcl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default mirror_sites.listpath port1.0/fetch
</span> 
 # Option-executed procedures
 option_proc use_tar   portfetch::set_extract_type
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portinstall.tcl b/src/port1.0/portinstall.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 25fcd92c4..33ee3509e 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portinstall.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portinstall.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -48,7 +48,7 @@ namespace eval portinstall {
</span> options install.asroot
 
 # Set defaults
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc install.asroot no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default install.asroot no
</span> 
 set_ui_prefix
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portlivecheck.tcl b/src/port1.0/portlivecheck.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index f9c59b43d..1f238559f 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portlivecheck.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portlivecheck.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -49,15 +49,15 @@ options livecheck.url livecheck.type livecheck.md5 livecheck.regex livecheck.nam
</span> 
 # defaults
 default livecheck.url {$homepage}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc livecheck.type default
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc livecheck.md5 {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc livecheck.regex {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc livecheck.name default
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc livecheck.distname default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default livecheck.type default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default livecheck.md5 {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default livecheck.regex {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default livecheck.name default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default livecheck.distname default
</span> default livecheck.version {$version}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc livecheck.ignore_sslcert no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc livecheck.compression yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc livecheck.curloptions [list --append-http-header "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default livecheck.ignore_sslcert no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default livecheck.compression yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default livecheck.curloptions [list --append-http-header "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"]
</span> 
 proc portlivecheck::livecheck_main {args} {
     global livecheck.url livecheck.type livecheck.md5 livecheck.regex livecheck.name livecheck.distname livecheck.version \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portmain.tcl b/src/port1.0/portmain.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 7ff9152c5..76f9e119e 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portmain.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portmain.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -105,32 +105,32 @@ proc portmain::get_subbuildpath {} {
</span>     return [file normalize [file join $portbuildpath $subdir]]
 }
 default workpath {[getportworkpath_from_buildpath $subbuildpath]}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc prefix /opt/local
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc applications_dir /Applications/MacPorts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default prefix /opt/local
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default applications_dir /Applications/MacPorts
</span> default frameworks_dir {${prefix}/Library/Frameworks}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc destdir destroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default destdir destroot
</span> default destpath {${workpath}/${destdir}}
 # destroot is provided as a clearer name for the "destpath" variable
 default destroot {${destpath}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc filesdir files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc revision 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc epoch 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc license unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default filesdir files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default revision 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default epoch 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default license unknown
</span> default distname {${name}-${version}}
 default worksrcdir {$distname}
 default filespath {[file join $portpath [join $filesdir]]}
 default worksrcpath {[file join $workpath [join $worksrcdir]]}
 # empty list means all archs are supported
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc supported_archs {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc depends_skip_archcheck {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc add_users {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default supported_archs {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default depends_skip_archcheck {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default add_users {}
</span> 
 # Configure settings
 default install.user {${portutil::autoconf::install_user}}
 default install.group {${portutil::autoconf::install_group}}
 
 # Platform Settings
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc platforms darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default platforms darwin
</span> option_proc platforms _handle_platforms
 default os.platform {$os_platform}
 default os.subplatform {$os_subplatform}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -157,10 +157,10 @@ default universal_possible {[expr {${os.universal_supported} && [llength ${confi
</span> 
 default compiler.cpath {${prefix}/include}
 default compiler.library_path {${prefix}/lib}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc compiler.log_verbose_output yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc compiler.limit_flags no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc compiler.support_environment_paths no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc compiler.support_environment_sdkroot no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default compiler.log_verbose_output yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default compiler.limit_flags no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default compiler.support_environment_paths no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default compiler.support_environment_sdkroot no
</span> 
 # Record initial euid/egid
 set euid [geteuid]
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portpatch.tcl b/src/port1.0/portpatch.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 73a83ab94..70dcced5d 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portpatch.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portpatch.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -47,10 +47,10 @@ commands patch
</span> 
 options patch.asroot
 # Set up defaults
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc patch.asroot no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default patch.asroot no
</span> default patch.dir {${worksrcpath}}
 default patch.cmd {[portpatch::build_getpatchtype]}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc patch.pre_args -p0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default patch.pre_args -p0
</span> 
 proc portpatch::build_getpatchtype {args} {
     if {![exists patch.type]} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portsandbox.tcl b/src/port1.0/portsandbox.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index c053fd021..cff38a6d9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portsandbox.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portsandbox.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -37,7 +37,7 @@ namespace eval portsandbox {
</span> options portsandbox_supported portsandbox_active portsandbox_profile
 default portsandbox_supported {[file executable $portutil::autoconf::sandbox_exec_path]}
 default portsandbox_active {[expr {$portsandbox_supported && $sandbox_enable}]}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc portsandbox_profile {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default portsandbox_profile {}
</span> 
 # set up a suitable profile to pass to sandbox-exec, based on the target
 # command line usage would be:
<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 4cf681cb2..b6ed93ea1 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;'>@@ -98,30 +98,30 @@ options startupitems startupitem.autostart startupitem.debug \
</span>         startupitem.stop startupitem.type startupitem.uniquename \
         startupitem.user startupitem.daemondo.verbosity
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.autostart   no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.custom_file {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.debug       no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.executable  {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.group       {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.init        {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.autostart   no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.custom_file {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.debug       no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.executable  {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.group       {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.init        {}
</span> default startupitem.install     {$system_options(startupitem_install)}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.location    LaunchDaemons
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.logevents   no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.logfile     {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.location    LaunchDaemons
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.logevents   no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.logfile     {}
</span> default startupitem.logfile.stderr {${startupitem.logfile}}
 default startupitem.name        {${subport}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.netchange   no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.pidfile     {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.netchange   no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.pidfile     {}
</span> default startupitem.plist       {${startupitem.uniquename}.plist}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.requires    {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.restart     {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.start       {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.stop        {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.requires    {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.restart     {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.start       {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.stop        {}
</span> default startupitem.type        {[portstartupitem::get_startupitem_type]}
 default startupitem.uniquename  {org.macports.${startupitem.name}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.user        {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.user        {}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc startupitem.daemondo.verbosity  1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default startupitem.daemondo.verbosity  1
</span> 
 set_ui_prefix
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/porttest.tcl b/src/port1.0/porttest.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 11da38a19..9556712b7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/porttest.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/porttest.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -19,12 +19,12 @@ options test.asroot test.ignore_archs test.run test.target
</span> commands test
 
 # Set defaults
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc test.asroot no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default test.asroot no
</span> default test.dir {${build.dir}}
 default test.cmd {${build.cmd}}
 default test.pre_args {${test.target}}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc test.target test
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc test.ignore_archs no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default test.target test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default test.ignore_archs no
</span> 
 set_ui_prefix
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portuninstall.tcl b/src/port1.0/portuninstall.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index cfb8f2414..3375ca99b 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portuninstall.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portuninstall.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -45,7 +45,7 @@ namespace eval portuninstall {
</span> }
 
 options uninstall.asroot
<span style='display:block; white-space:pre;background:#ffe0e0;'>-defaultc uninstall.asroot no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default uninstall.asroot no
</span> 
 proc portuninstall::uninstall_start {args} {
     global prefix ports_dryrun
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portutil.tcl b/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 7534218f4..49f51595f 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -47,6 +47,7 @@ set all_variants [list]
</span> 
 namespace eval options {
     variable option_defaults [dict create]
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    variable defaults_const [dict create]
</span> }
 
 # option
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -482,11 +483,13 @@ proc command_exec {args} {
</span> # and adds a variable trace. The variable traces allows for delayed
 # variable and command expansion in the variable's default value.
 proc default {option val} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    global options::option_defaults $option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global options::option_defaults options::defaults_const $option
</span>     if {[dict exists $option_defaults $option]} {
         ui_debug "Re-registering default for $option"
         # remove the old trace
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        trace remove variable $option [list read write unset] default_check
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set is_const [expr {[dict exists $defaults_const $option] && [dict get $defaults_const $option]}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set oplist [expr {$is_const ? [list write unset] : [list read write unset]}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        trace remove variable $option $oplist default_check
</span>     } elseif {[info exists $option]} {
         # If option is already set and we did not set it
         # do not reset the value
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -494,17 +497,13 @@ proc default {option val} {
</span>     }
     dict set option_defaults $option $val
     set $option $val
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    trace add variable $option [list read write unset] default_check
</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;'>-# defaultc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Sets a variable to the supplied default if it does not exist.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# No trace is set, so this is suitable only for constant values.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-proc defaultc {option val} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    global $option
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {![info exists $option]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set $option $val
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Not completely accurate, but should match all simple constants,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # and unnecessarily setting the trace on complicated ones with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # backslashes, braces etc still gives correct results.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set is_const [expr {[string first {$} $val] == -1 && [string first {[} $val] == -1}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    dict set defaults_const $option $is_const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set oplist [expr {$is_const ? [list write unset] : [list read write unset]}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    trace add variable $option $oplist default_check
</span> }
 
 # default_check
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -514,18 +513,17 @@ proc default_check {varName index op} {
</span>     set optionName [namespace tail $varName]
     global options::option_defaults $optionName
     switch $op {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        write {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            dict unset option_defaults $optionName
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            trace remove variable $optionName [list read write unset] default_check
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            return
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span>         read {
             uplevel #0 [list set $optionName [uplevel #0 [list subst [dict get $option_defaults $optionName]]]]
             return
         }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        unset {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        unset -
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        write {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            global options::defaults_const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set is_const [expr {[dict exists $defaults_const $optionName] && [dict get $defaults_const $optionName]}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set oplist [expr {$is_const ? [list write unset] : [list read write unset]}]
</span>             dict unset option_defaults $optionName
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            trace remove variable $optionName [list read write unset] default_check
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            trace remove variable $optionName $oplist default_check
</span>             return
         }
     }
</pre><pre style='margin:0'>

</pre>