<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository mpbb.
</pre>
<p><a href="https://github.com/macports/mpbb/commit/bb4a1f6089ee09fc20d00d3556311c3b0e7d2d99">https://github.com/macports/mpbb/commit/bb4a1f6089ee09fc20d00d3556311c3b0e7d2d99</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 bb4a1f6 mpbb: preprocessing improvements
</span>bb4a1f6 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit bb4a1f6089ee09fc20d00d3556311c3b0e7d2d99
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Mon Jan 4 23:31:46 2021 +1100
<span style='display:block; white-space:pre;color:#404040;'> mpbb: preprocessing improvements
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> * Start separate builds for unbuilt dependencies.
</span><span style='display:block; white-space:pre;color:#404040;'> * gather-archives can therefore consider only the port being built and
</span><span style='display:block; white-space:pre;color:#404040;'> not worry about its deps.
</span><span style='display:block; white-space:pre;color:#404040;'> * Exclude ports that have any dependency that sets 'known_fail yes'.
</span><span style='display:block; white-space:pre;color:#404040;'> * Exclude dependencies that have a failcache entry or have a recursive
</span><span style='display:block; white-space:pre;color:#404040;'> dependency that does. The ports that the build was actually requested
</span><span style='display:block; white-space:pre;color:#404040;'> for are still built even if a dep is in the failcache, so that the
</span><span style='display:block; white-space:pre;color:#404040;'> failure will be reported to maintainers.
</span><span style='display:block; white-space:pre;color:#404040;'> * Delete stale entries from the failcache for relevant ports while
</span><span style='display:block; white-space:pre;color:#404040;'> we're at it.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Fixes: https://trac.macports.org/ticket/60935
</span>---
functions | 6 --
mpbb-gather-archives | 2 +-
mpbb-install-dependencies | 5 +-
mpbb-install-port | 6 +-
mpbb-list-subports | 6 +-
tools/sort-with-subports.tcl | 156 ++++++++++++++++++++++++++++++++++++++-----
6 files changed, 150 insertions(+), 31 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/functions b/functions
</span><span style='display:block; white-space:pre;color:#808080;'>index 47d6c73..d3fd13f 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/functions
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/functions
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -178,12 +178,6 @@ failcache_test() {
</span> return 1
fi
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # Delete stale entries first
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ! failcache_cleanup $(echo "${key}" | cut -d ' ' -f1) $(echo "${key}" | cut -d ' ' -f3); then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # Nothing in the cache for this port, no need to check further
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> if [ -f "${option_failcache_dir}/${key}" ]; then
printf "port %s previously failed in build %s\n" "${key}" "$(<"${option_failcache_dir}/${key}")"
return 1
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mpbb-gather-archives b/mpbb-gather-archives
</span><span style='display:block; white-space:pre;color:#808080;'>index c0e1968..6d69128 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mpbb-gather-archives
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mpbb-gather-archives
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -64,7 +64,7 @@ gather-archives() {
</span> mkdir -p "${option_staging_dir}"/public "${option_staging_dir}"/private || return
status=0
<span style='display:block; white-space:pre;background:#ffe0e0;'>- for archive_path in $("${option_prefix}/bin/port" -q location installed and \( $(cat "${option_work_dir}/all_ports") \)); do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for archive_path in $("${option_prefix}/bin/port" -q location installed and \( $(cat "${option_work_dir}/requested_port") \)); do
</span> archive_port=$(basename "$(dirname "${archive_path}")")
archive_basename=$(basename "${archive_path}")
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mpbb-install-dependencies b/mpbb-install-dependencies
</span><span style='display:block; white-space:pre;color:#808080;'>index d7527b6..2324cba 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mpbb-install-dependencies
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mpbb-install-dependencies
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -38,6 +38,9 @@ install-dependencies() {
</span> mkdir -p "${option_log_dir}"
> "$log_status_dependencies"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ # clear the port list
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rm -f "${option_work_dir}/all_ports"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # calculate list of dependencies in-order
# $option_prefix and $thisdir are set in mpbb
# shellcheck disable=SC2154
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -90,8 +93,6 @@ install-dependencies() {
</span> return 1
fi
<span style='display:block; white-space:pre;background:#ffe0e0;'>- rm -f "${option_work_dir}/all_ports"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> while read -r dependency; do
# Split portname +variant1+variant2 into portname and active and
# requested variants, where the variants are optional.
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mpbb-install-port b/mpbb-install-port
</span><span style='display:block; white-space:pre;color:#808080;'>index a3303aa..b73e377 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mpbb-install-port
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mpbb-install-port
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -48,13 +48,15 @@ install-port() {
</span> #> "$log_port_contents"
> "$log_port_stats"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ rm -f "${option_work_dir}/requested_port"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # $option_prefix and $thisdir are set in mpbb
# shellcheck disable=SC2154
if [[ -f $("${option_prefix}/bin/port-tclsh" "${thisdir}/tools/archive-path.tcl" "$@") ]]; then
echo "$* already installed, nothing to do"
# log: summary for the portwatcher
echo "Building '$port' ... [OK]" >> "$log_subports_progress"
<span style='display:block; white-space:pre;background:#ffe0e0;'>- echo "$@" >> "${option_work_dir}/all_ports"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$@" >> "${option_work_dir}/requested_port"
</span> return 0
fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -139,5 +141,5 @@ install-port() {
</span> cp -f "$port_mainlog" "$log_port_main"
fi
<span style='display:block; white-space:pre;background:#ffe0e0;'>- echo "$@" >> "${option_work_dir}/all_ports"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$@" >> "${option_work_dir}/requested_port"
</span> }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/mpbb-list-subports b/mpbb-list-subports
</span><span style='display:block; white-space:pre;color:#808080;'>index 0606c01..074b9c6 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/mpbb-list-subports
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/mpbb-list-subports
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -38,8 +38,10 @@ print-subports() {
</span> # $option_prefix is set in mpbb
# shellcheck disable=SC2154
"${tclsh}" "${thisdir}/tools/sort-with-subports.tcl" --jobs_dir "${option_jobs_dir}" \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- --license_db_dir "${option_license_db_dir}" --archive_site_public "${archive_site_public}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --archive_site_private "${archive_site_private}" ${portnames} || return
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --license_db_dir "${option_license_db_dir}" --failcache_dir "${option_failcache_dir}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --archive_site_public "${archive_site_public}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --archive_site_private "${archive_site_private}" --include_deps \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${portnames} || return
</span> }
list-subports() {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/tools/sort-with-subports.tcl b/tools/sort-with-subports.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index df2d0c4..8307843 100755
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/tools/sort-with-subports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/tools/sort-with-subports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -34,6 +34,7 @@
</span> #
package require macports
<span style='display:block; white-space:pre;background:#e0ffe0;'>+package require sha256
</span>
proc ui_prefix {priority} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -59,6 +60,71 @@ proc process_port_deps {portname portdeps_in portlist_in} {
</span> lappend portlist $portname
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+proc check_failing_deps {portname} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[info exists ::failingports($portname)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return $::failingports($portname)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![info exists ::portdepinfo($portname)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ::failingports($portname) [list 0 ""]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return $::failingports($portname)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach portdep $::portdepinfo($portname) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set dep_ret [check_failing_deps $portdep]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # 0 = ok, 1 = known_fail, 2 = failcache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set status [lindex $dep_ret 0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$status != 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set failed_dep [lindex $dep_ret 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[info exists ::outputports($portname)] && $::outputports($portname) == 1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$status == 1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[info exists ::requestedports($portname)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts stderr "Excluding $::canonicalnames($portname) because its dependency '$failed_dep' is known to fail"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ::outputports($portname) 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {$status == 2 && ![info exists ::requestedports($portname)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Exclude deps that will fail due to their own dep being in the failcache.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # But still output requested ports so the failure will be reported.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ::outputports($portname) 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ::failingports($portname) [list $status $failed_dep]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return $::failingports($portname)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ::failingports($portname) [list 0 ""]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return $::failingports($portname)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc canonical_variants {mport} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ array set info [mportinfo $mport]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return $info(canonical_active_variants)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# slightly odd method as per mpbb's compute_failcache_hash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc port_files_checksum {porturl} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set portdir [macports::getportdir $porturl]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach f [list ${portdir}/Portfile {*}[glob -nocomplain -directory ${portdir}/files -types f *]] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lappend hashlist [::sha2::sha256 -hex -file $f]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach hash [lsort $hashlist] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ append compound_hash "${hash}\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return [::sha2::sha256 -hex $compound_hash]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc check_failcache {portname porturl mport} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set hash [port_files_checksum $porturl]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set key "$portname [canonical_variants $mport] $hash"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ret 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach f [glob -directory $::failcache_dir -nocomplain -tails "${portname} *"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$f eq $key} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ret 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {[lindex [split $f " "] end] ne $hash} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts stderr "removing stale failcache entry: $f"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete -force $f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return $ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span>
if {[catch {mportinit "" "" ""} result]} {
puts stderr "$errorInfo"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -67,8 +133,10 @@ if {[catch {mportinit "" "" ""} result]} {
</span>
set archive_site_private ""
set archive_site_public ""
<span style='display:block; white-space:pre;background:#e0ffe0;'>+set failcache_dir ""
</span> set jobs_dir ""
set license_db_dir ""
<span style='display:block; white-space:pre;background:#e0ffe0;'>+set include_deps no
</span> while {[string range [lindex $::argv 0] 0 1] eq "--"} {
switch -- [lindex $::argv 0] {
--archive_site_private {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -79,6 +147,10 @@ while {[string range [lindex $::argv 0] 0 1] eq "--"} {
</span> set archive_site_public [lindex $::argv 1]
set ::argv [lrange $::argv 1 end]
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ --failcache_dir {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set failcache_dir [lindex $::argv 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ::argv [lrange $::argv 1 end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> --jobs_dir {
set jobs_dir [lindex $::argv 1]
set ::argv [lrange $::argv 1 end]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -87,6 +159,9 @@ while {[string range [lindex $::argv 0] 0 1] eq "--"} {
</span> set license_db_dir [lindex $::argv 1]
set ::argv [lrange $::argv 1 end]
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ --include_deps {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set include_deps yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> default {
error "unknown option: [lindex $::argv 0]"
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -119,10 +194,11 @@ if {[lindex $argv 0] eq "-"} {
</span> foreach p $todo {
set inputports($p) 1
set outputports($p) 1
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ set requestedports($p) 1
</span> }
# process all recursive deps
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set depstypes {depends_fetch depends_extract depends_patch depends_build depends_lib depends_run}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-while {$todo ne {}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set depstypes [list depends_fetch depends_extract depends_patch depends_build depends_lib depends_run]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+while {[llength $todo] > 0} {
</span> set p [lindex $todo 0]
set todo [lrange $todo 1 end]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -144,8 +220,9 @@ while {$todo ne {}} {
</span> if {![info exists portdepinfo($splower)]} {
lappend todo $splower
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {![info exists outputports($splower)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![info exists requestedports($splower)]} {
</span> set outputports($splower) 1
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ set requestedports($splower) 1
</span> }
}
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -153,37 +230,69 @@ while {$todo ne {}} {
</span> set opened 0
if {[info exists outputports($p)] && $outputports($p) == 1} {
if {[info exists portinfo(replaced_by)]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- puts stderr "Excluding $portinfo(name) because it is replaced by $portinfo(replaced_by)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[info exists requestedports($p)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts stderr "Excluding $portinfo(name) because it is replaced by $portinfo(replaced_by)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> set outputports($p) 0
} elseif {[info exists portinfo(known_fail)] && [string is true -strict $portinfo(known_fail)]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- puts stderr "Excluding $portinfo(name) because it is known to fail"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[info exists requestedports($p)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts stderr "Excluding $portinfo(name) because it is known to fail"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> set outputports($p) 0
<span style='display:block; white-space:pre;background:#ffe0e0;'>- } elseif {$archive_site_public ne ""} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # FIXME: support non-default variants
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set failingports($p) [list 1 $portinfo(name)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } elseif {$failcache_dir ne "" && ![info exists requestedports($p)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # exclude dependencies with a failcache entry
</span> if {![catch {mportopen $portinfo(porturl) [list subport $portinfo(name)] ""} result]} {
set opened 1
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set workername [ditem_key $result workername]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set mport $result
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[check_failcache $portinfo(name) $portinfo(porturl) $mport] != 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set outputports($p) 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set failingports($p) [list 2 $portinfo(name)]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set outputports($p) 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$archive_site_public ne "" && [info exists outputports($p)] && $outputports($p) == 1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # FIXME: support non-default variants
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$opened == 1 || ![catch {mportopen $portinfo(porturl) [list subport $portinfo(name)] ""} result]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$opened != 1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set opened 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set mport $result
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set workername [ditem_key $mport workername]
</span> set archive_name [$workername eval {portfetch::percent_encode [get_portimage_name]}]
if {![catch {curl getsize ${archive_site_public}/$portinfo(name)/${archive_name}} size] && $size > 0} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- puts stderr "Excluding $portinfo(name) because it has already been built and uploaded to the public server"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[info exists requestedports($p)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts stderr "Excluding $portinfo(name) because it has already been built and uploaded to the public server"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> set outputports($p) 0
}
} else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- puts stderr "Excluding $portinfo(name) because it failed to open: $result"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[info exists requestedports($p)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts stderr "Excluding $portinfo(name) because it failed to open: $result"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> set outputports($p) 0
}
if {$outputports($p) == 1 && $archive_site_private ne "" && $jobs_dir ne ""} {
# FIXME: support non-default variants
set results [check_licenses $portinfo(name) [list]]
if {[lindex $results 0] == 1 && ![catch {curl getsize ${archive_site_private}/$portinfo(name)/${archive_name}} size] && $size > 0} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- puts stderr "Excluding $portinfo(name) because it is not distributable and it has already been built and uploaded to the private server"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[info exists requestedports($p)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts stderr "Excluding $portinfo(name) because it is not distributable and it has already been built and uploaded to the private server"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> set outputports($p) 0
}
}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {$outputports($p) == 1 && ($::macports::os_major <= 10 || $::macports::os_major >= 20)} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[info exists requestedports($p)] && ($::macports::os_major <= 10 || $::macports::os_major >= 20) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $outputports($p) == 1} {
</span> if {$opened == 1 || ![catch {mportopen $portinfo(porturl) [list subport $portinfo(name)] ""} result]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set supported_archs [_mportkey $result supported_archs]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$opened != 1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set opened 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set mport $result
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set supported_archs [_mportkey $mport supported_archs]
</span> switch $::macports::os_arch {
arm {
if {$supported_archs eq "noarch"} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -213,9 +322,10 @@ while {$todo ne {}} {
</span> set outputports($p) 0
}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {$outputports($p) == 1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set canonicalnames($p) $portinfo(name)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[info exists outputports($p)] && $outputports($p) == 1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set canonicalnames($p) $portinfo(name)
</span> }
if {![info exists outputports($p)] || $outputports($p) == 1} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -225,7 +335,12 @@ while {$todo ne {}} {
</span> foreach onedep $portinfo($depstype) {
set depname [string tolower [lindex [split [lindex $onedep 0] :] end]]
lappend deplist $depname
<span style='display:block; white-space:pre;background:#ffe0e0;'>- lappend todo $depname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![info exists portdepinfo($depname)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ lappend todo $depname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$include_deps && ![info exists outputports($depname)]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set outputports($depname) 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
}
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -240,8 +355,13 @@ if {$jobs_dir ne "" && $license_db_dir ne "" && $archive_site_public ne "" && $a
</span> write_license_db $license_db_dir
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+set sorted_portnames [lsort -dictionary [array names portdepinfo]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach portname $sorted_portnames {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ check_failing_deps $portname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> set portlist [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach portname [lsort -dictionary [array names portdepinfo]] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach portname $sorted_portnames {
</span> if {[info exists portdepinfo($portname)]} {
process_port_deps $portname portdepinfo portlist
}
</pre><pre style='margin:0'>
</pre>