From 5963dc4f617497513f550ea63e90d277432f26eb Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 16 Oct 2021 14:51:39 +0300 Subject: [PATCH] Discover Tcl/Tk reliably and use active version (#2106) Link to the active version like other Homebrew deps -- this won't break when another binary-compatible version is installed. Use a discovery method that doesn't break when other versions are present alongside. --- plugins/python-build/bin/python-build | 13 +++++++------ plugins/python-build/test/build.bats | 15 ++++++--------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 4095ad21..fdd7aec2 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1533,12 +1533,13 @@ use_xcode_sdk_zlib() { use_homebrew_tcltk() { # get the version from the folder that homebrew versions - local tcltk_version_long="$(ls "$(brew --cellar tcl-tk)")" - local tcltk_version="${tcltk_version_long%.*}" - local tcltk_flags="--with-tcltk-includes=-I$tcltk_libdir/include --with-tcltk-libs=-L$tcltk_libdir/lib -ltcl$tcltk_version -ltk$tcltk_version" - echo "python-build: use tcl-tk from homebrew" - package_option python configure --with-tcltk-libs="-L$tcltk_libdir/lib -ltcl$tcltk_version -ltk$tcltk_version" - package_option python configure --with-tcltk-includes="-I$tcltk_libdir/include" + local tcltk_libdir="$(brew --prefix tcl-tk 2>/dev/null || true)" + if [ -d "$tcltk_libdir" ]; then + echo "python-build: use tcl-tk from homebrew" + local tcltk_version="$(sh -c '. '"$tcltk_libdir"'/lib/tclConfig.sh; echo $TCL_VERSION')" + package_option python configure --with-tcltk-libs="-L$tcltk_libdir/lib -ltcl$tcltk_version -ltk$tcltk_version" + package_option python configure --with-tcltk-includes="-I$tcltk_libdir/include" + fi } # FIXME: this function is a workaround for #1125 diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index e2f95331..f30ce9f8 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -242,18 +242,15 @@ OUT @test "tcl-tk is linked from Homebrew" { cached_tarball "Python-3.6.2" - - # python build + tcl_tk_version=8.6 tcl_tk_libdir="$TMP/homebrew-tcl-tk" - tcl_tk_version_long="8.6.10" - tcl_tk_version="${tcl_tk_version_long%.*}" - mkdir -p "$tcl_tk_libdir" - mkdir -p "$tcl_tk_libdir/$tcl_tk_version_long" + mkdir -p "$tcl_tk_libdir/lib" + echo "TCL_VERSION='$tcl_tk_version'" >>"$tcl_tk_libdir/lib/tclConfig.sh" - # pyenv/pyenv#1026 - stub uname false false + stub uname false - stub brew "--prefix tcl-tk : echo '$tcl_tk_libdir'" "--cellar tcl-tk : echo '$TMP/homebrew-tcl-tk'" false + for i in {1..2}; do stub brew "--prefix tcl-tk : echo '$tcl_tk_libdir'"; done + stub brew false stub_make_install run_inline_definition <