<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch variant-support
in repository mpbb.
</pre>
<p><a href="https://github.com/macports/mpbb/commit/14e50dfc83ca9cf63195d6931c993ae456e6662c">https://github.com/macports/mpbb/commit/14e50dfc83ca9cf63195d6931c993ae456e6662c</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 14e50dfc83ca9cf63195d6931c993ae456e6662c
</span>Author: Clemens Lang <cal@macports.org>
AuthorDate: Sun Mar 11 16:43:20 2018 +0100
<span style='display:block; white-space:pre;color:#404040;'> Support specifying variants in list-subports
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Allow passing variants into list-subports by separating port name and
</span><span style='display:block; white-space:pre;color:#404040;'> variants specification with an "@" sign. @ is not a valid character in
</span><span style='display:block; white-space:pre;color:#404040;'> port names and should allow us to specify variants per port in the
</span><span style='display:block; white-space:pre;color:#404040;'> buildbot's portlist.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> When not using this new syntax, the output will look exactly as it did
</span><span style='display:block; white-space:pre;color:#404040;'> before to avoid breaking the existing setup.
</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/52742
</span>---
mpbb-list-subports | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
<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 724d6aa..fe2ca26 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;'>@@ -9,7 +9,7 @@ list-subports-usage() {
</span> # "prog" is defined in mpbb-help.
# shellcheck disable=SC2154
cat <<EOF
<span style='display:block; white-space:pre;background:#ffe0e0;'>-usage: $prog [<global opts>] list-subports [<opts>] <port> [<port2> [...]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+usage: $prog [<global opts>] list-subports [<opts>] <port>[@(+|-)variant [...]] [<port2>[@(+|-)variant [...]] [...]]
</span>
Print the name and subports of each given port to standard output.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -25,7 +25,8 @@ EOF
</span>
print-subports() {
local archive_site=$1
<span style='display:block; white-space:pre;background:#ffe0e0;'>- local portname=$2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ local portname=${2%%@*}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ local portvariants=${2:${#portname}+1}
</span> local port
local portgroup
local ports
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -44,16 +45,15 @@ print-subports() {
</span> exclude=0
exclude_reasons=()
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # FIXME: this doesn't take selected variants into account
</span> # $thisdir is set in mpbb
# shellcheck disable=SC2154
<span style='display:block; white-space:pre;background:#ffe0e0;'>- archive_path=$("${tclsh}" "${thisdir}/tools/archive-path.tcl" "${port}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ archive_path=$("${tclsh}" "${thisdir}/tools/archive-path.tcl" "${port}" "${portvariants}")
</span> if [[ -f "${archive_path}" ]]; then
archive_basename=$(basename "${archive_path}")
if curl -fIsL "${archive_site}/${port}/${archive_basename}" > /dev/null; then
exclude=1
exclude_reasons+=("it has already been built and uploaded")
<span style='display:block; white-space:pre;background:#ffe0e0;'>- elif ! "${tclsh}" "${option_jobs_dir}/port_binary_distributable.tcl" "${port}"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ elif ! "${tclsh}" "${option_jobs_dir}/port_binary_distributable.tcl" "${port}" "${portvariants}"; then
</span> exclude=1
exclude_reasons+=("it has already been built and is not distributable")
fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -66,7 +66,7 @@ print-subports() {
</span> else
# $thisdir is set in mpbb
# shellcheck disable=SC2154
<span style='display:block; white-space:pre;background:#ffe0e0;'>- for portgroup in $("${tclsh}" "${thisdir}/tools/portgroups.tcl" "$port"); do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for portgroup in $("${tclsh}" "${thisdir}/tools/portgroups.tcl" "${port}" "${portvariants}"); do
</span> if [ "$portgroup" = "obsolete-1.0" ]; then
exclude=1
exclude_reasons+=("it includes the obsolete 1.0 PortGroup")
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -76,7 +76,7 @@ print-subports() {
</span> fi
if [[ $exclude -eq 0 && ("${os_version}" = "10.6" || "${os_version}" = "10.5") ]]; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>- supported_archs=$("${tclsh}" "${thisdir}/tools/supported-archs.tcl" "${port}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ supported_archs=$("${tclsh}" "${thisdir}/tools/supported-archs.tcl" "${port}" "${portvariants}")
</span> if [[ -n "${supported_archs}" ]]; then
is_64bit_capable="$(sysctl -n hw.cpu64bit_capable)"
if [[ "${os_version}" = "10.6" && "${is_64bit_capable}" = "0" && ! ("${supported_archs}" == *"x86_64"* && "${supported_archs}" == *"i386"*) ]]; then
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -90,7 +90,11 @@ print-subports() {
</span> fi
if [ $exclude -eq 0 ]; then
<span style='display:block; white-space:pre;background:#ffe0e0;'>- echo "$port"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if [ -n "${portvariants}" ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "${port}@${portvariants}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "$port"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span> else
if [ ${#exclude_reasons[@]} -eq 1 ]; then
echo >&2 "Excluding '${port}' because ${exclude_reasons[0]}."
</pre><pre style='margin:0'>
</pre>