<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Whoops, that’s my error. bazel does respect that.<div class=""><br class=""></div><div class="">Here’s a working Portfile for py-dm-tree that could be used to simplify the py-tensorflow Portfile in a few spots:</div><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div class=""><font face="Menlo" style="font-size: 14px;" class=""># -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">PortSystem          1.0</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">PortGroup           github 1.0</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">PortGroup           java 1.0</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">PortGroup           python 1.0</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">github.setup        deepmind tree 63e7c35242369cd307e9cb3407c8ab608b226a22</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""># no official release; version from __init__.py plus github commit date</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">version             0.1.6.20200602</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">name                py-dm-${github.project}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">revision 0</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">platforms           darwin</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">license             Apache-2</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">maintainers         nomaintainer</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">description         Deepmind tree is a library for working with nested\</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                    data structures.</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">long_description    ${description} In a way, tree generalizes the builtin\</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                    map function which only supports flat sequences, and\</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                    allows to apply a function to each "leaf" preserving\</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                    the overall structure.</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">homepage            <a href="https://github.com/deepmind/tree" class="">https://github.com/deepmind/tree</a></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">distname            ${github.project}-${version}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">checksums           rmd160  f355b4b190be6f5d56ffd0f4b3ad0b031223ccb8 \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                    sha256  953229df22300f490690e2dedf6dfcd73c68422d12efd9e18cb8a775eaf1e4c3 \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                    size    35259</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">python.versions     37 38</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""># Required java version</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">java.version        11+</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""># JDK port to install if required java not found</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">java.fallback       openjdk14</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""># JDK only needed at build time, but java PG sets lib dependency so</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""># declare no conflict to allow redistribution of binaries.</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">license_noconflict  ${java.fallback}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">proc python_listify {tcl_list} {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    set python_list {}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    foreach item [lreverse ${tcl_list}] {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        set python_list "'${item}', ${python_list}"</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    return ${python_list}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">if {${name} ne ${subport}} {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    depends_build-append \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                    port:bazel \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                    port:py${python.version}-setuptools</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    depends_run-append \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                    port:py${python.version}-six \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    depends_test-append \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                    port:py${python.version}-absl \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                    port:py${python.version}-attrs \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                    port:py${python.version}-numpy \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                    port:py${python.version}-wrapt</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    # Limit the number of parallel jobs to the number of physical, not logical, cpus.</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    # First current setting to ensure we would be reducing the current setting.</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    set physicalcpus [sysctl hw.physicalcpu]</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    if { ${build.jobs} > ${physicalcpus} } {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        build.jobs ${physicalcpus}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    # Build using the wonderful bazel build system ...</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    set bazel_output_user_root ${workpath}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    set bazel_cmd "bazel --max_idle_secs=15 --output_user_root=${bazel_output_user_root}"</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    set bazel_build_opts "--subcommands --compilation_mode=opt --verbose_failures"</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    # Limit bazel resource utilisation</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    set bazel_build_opts "${bazel_build_opts} --jobs ${build.jobs} --local_ram_resources=HOST_RAM*0.75 --local_cpu_resources=HOST_CPUS*.75"</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    # Explicitly pass SDK <a href="https://github.com/bazelbuild/rules_go/issues/1554" class="">https://github.com/bazelbuild/rules_go/issues/1554</a></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    # Check versioned SDK actually exists... <a href="https://trac.macports.org/ticket/60317" class="">https://trac.macports.org/ticket/60317</a></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    if {[string first ${configure.sdk_version} ${configure.sdkroot}] != -1} {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        set bazel_build_opts "${bazel_build_opts} --macos_sdk_version=${configure.sdk_version}"</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    } else {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        ui_warn "configure.sdkroot='${configure.sdkroot}' does not match configure.sdk_version='${configure.sdk_version}'"</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    # hack to try and transfer MP c, c++ and ld options to bazel...</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    foreach opt [list {*}${configure.cflags} ] {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        set bazel_build_opts "${bazel_build_opts} --conlyopt \"${opt}\""</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    foreach opt [list {*}${configure.cxxflags} ] {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        set bazel_build_opts "${bazel_build_opts} --cxxopt \"${opt}\""</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    foreach opt [list {*}${configure.ldflags} ] {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        set bazel_build_opts "${bazel_build_opts} --linkopt \"${opt}\""</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    ui_debug "Bazel build command : ${bazel_cmd}"</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    ui_debug "Bazel build options : ${bazel_build_opts}"</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    # diff -NaurdwB ./dm-tree-orig/setup.py ./dm-tree-new/setup.py | sed -E -e 's/\.\/dm-tree-(orig|new)*\/(setup\.py)(\.[[:alnum:]]+)*/\.\/setup.py/' > ./setup.py.patch</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    patchfiles      setup.py.patch</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    post-patch {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        reinplace \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">            "s|@BAZEL_CMD@|[python_listify ${bazel_cmd}]|g" \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">            ${worksrcpath}/setup.py</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        reinplace \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">            "s|@BAZEL_BUILD_OPTS@|[python_listify ${bazel_build_opts}]|g" \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">            ${worksrcpath}/setup.py</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    build.env-append \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        JAVA_HOME=${java.home}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    set bazel_lib ${worksrcpath}/build/lib</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    pre-destroot {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        xinstall -d ${destroot}${python.pkgd}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        if {![file isdirectory ${bazel_lib}]} {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">            foreach dir [glob -directory ${worksrcpath}/build -nocomplain -type d lib.*] {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                set bazel_lib ${dir}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                break</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">            }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    destroot {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        copy ${bazel_lib}/${github.project} ${destroot}${python.pkgd}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    pre-test {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        if {![file isdirectory ${bazel_lib}]} {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">            foreach dir [glob -directory ${worksrcpath}/build -nocomplain -type d lib.*] {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                set bazel_lib ${dir}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                break</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">            }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">            test.env-replace \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                PYTHONPATH=${worksrcpath}/build/lib \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">                PYTHONPATH=${bazel_lib}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    test.run        yes</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    test.cmd        python${python.branch}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    test.target     ${github.project}/tree_test.py</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    test.env-append PYTHONPATH=${bazel_lib}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    post-destroot {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        set docdir ${prefix}/share/doc/${subport}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        xinstall -d ${destroot}${docdir}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">        xinstall -m 0644 -W ${worksrcpath} LICENSE README.md \</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">            ${destroot}${docdir}</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    }</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class=""><br class=""></font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    livecheck.type      none</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">} else {</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">    livecheck.type      pypi</font></div><div class=""><font face="Menlo" style="font-size: 14px;" class="">}</font></div></blockquote></div><div class=""><div class=""><br class=""></div></div><div class=""><br class=""></div><div class=""><br class=""><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jul 7, 2020, at 6:52 PM, Ryan Schmidt <<a href="mailto:ryandesign@macports.org" class="">ryandesign@macports.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">And that's a bug that they could fix by respecting the value of the TMPDIR environment variable.<br class=""><br class=""><blockquote type="cite" class="">On Jul 7, 2020, at 17:21, Steven Smith wrote:<br class=""><br class="">“The wonderful bazel build system” expects to see ./tmp, not ./.tmp.<br class=""><br class=""><blockquote type="cite" class="">On Jul 7, 2020, at 3:45 PM, Ryan Schmidt <<a href="mailto:ryandesign@macports.org" class="">ryandesign@macports.org</a>> wrote:<br class=""><br class="">On Jul 7, 2020, at 12:53, Steven Smith wrote:<br class=""><br class=""><blockquote type="cite" class="">Fixed the issue: requires creation of TMPDIR<br class=""><br class="">xinstall -d ${worksrcpath}/tmp<br class=""></blockquote><br class="">MacPorts already sets the TMPDIR environment variable to ${workpath}/.tmp and creates that directory for you. Sounds like this build system needs to be fixed to use $TMPDIR if set.<br class=""><br class=""></blockquote><br class=""></blockquote><br class=""></div></div></blockquote></div><br class=""></div></div></body></html>