diff options
author | Simo Fält <simo.falt@qt.io> | 2023-12-11 11:47:10 +0200 |
---|---|---|
committer | Simo Fält <simo.falt@qt.io> | 2024-02-02 07:23:25 +0000 |
commit | adf2deefeb485e890f5f00ba3aeb107829875ae9 (patch) | |
tree | db416695608412b057d801134f2ec61a2a829cb5 /coin/provisioning/common | |
parent | b89cbf3ee04c2af272ef38a90b034b14491c4ee5 (diff) |
COIN: Move arm Mac brew and pyenv install script under common directory
Pick-to: 6.7
Change-Id: I83c6b017d81bc98431f0d0421167890466e5b855
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
Diffstat (limited to 'coin/provisioning/common')
-rwxr-xr-x | coin/provisioning/common/macos/homebrew_for_arm_mac.sh | 30 | ||||
-rw-r--r-- | coin/provisioning/common/unix/pyenv.rb | 80 |
2 files changed, 110 insertions, 0 deletions
diff --git a/coin/provisioning/common/macos/homebrew_for_arm_mac.sh b/coin/provisioning/common/macos/homebrew_for_arm_mac.sh new file mode 100755 index 00000000..aa2f2195 --- /dev/null +++ b/coin/provisioning/common/macos/homebrew_for_arm_mac.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +# Copyright (C) 2021 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +# Will install homebrew package manager for macOS. +# WARNING: Requires commandlinetools + + +set -e + +. "$(dirname "$0")"/../unix/DownloadURL.sh +. "$(dirname "$0")"/../unix/SetEnvVar.sh + + +DownloadURL \ + http://ci-files01-hki.intra.qt.io/input/mac/homebrew/be699a568315f57b65519df576d7fc5840b8a5cc/install.sh \ + https://raw.githubusercontent.com/Homebrew/install/be699a568315f57b65519df576d7fc5840b8a5cc/install \ + f20e4a577f0cafbab5a44b4d239886d725b3b985 \ + /tmp/homebrew_install.sh + +DownloadURL "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" "/Users/qt/pw" +{ pw=$(cat "/Users/qt/pw"); } 2> /dev/null +sudo chmod 755 /tmp/homebrew_install.sh +{ (echo "$pw" | /tmp/homebrew_install.sh); } 2> /dev/null +rm -f "/Users/qt/pw" + +# No need to manually do `brew update`, the homebrew installer script does it. +### brew update + +SetEnvVar "PATH" "\$PATH:/opt/homebrew/bin" diff --git a/coin/provisioning/common/unix/pyenv.rb b/coin/provisioning/common/unix/pyenv.rb new file mode 100644 index 00000000..0c2781ff --- /dev/null +++ b/coin/provisioning/common/unix/pyenv.rb @@ -0,0 +1,80 @@ +class Pyenv < Formula + desc "Python version management" + homepage "https://github.com/pyenv/pyenv" + url "https://github.com/pyenv/pyenv/archive/refs/tags/v2.3.15.tar.gz" + sha256 "cf6499e1c8f18fb3473c2afdf5f14826fd42a1c4b051219faea104e38036e4bb" + license "MIT" + version_scheme 1 + head "https://github.com/pyenv/pyenv.git", branch: "master" + + livecheck do + url :stable + regex(/^v?(\d+(?:\.\d+)+(-\d+)?)$/i) + end + + bottle do + sha256 cellar: :any, arm64_ventura: "ff68efd633ee282abb0c0a6ba72f90d5248644f3143f40e15841b6ae7996e3cd" + sha256 cellar: :any, arm64_monterey: "af7621550cc7c005549d96218d2606a521e12595f2efc9ae9d8523cc46d318ba" + sha256 cellar: :any, arm64_big_sur: "69d69ceeea16fe45346d8856bf213c0a0e48220097635cf17d40b98fa8e12f83" + sha256 cellar: :any, ventura: "48fb21656dc11dc0a6ef25eb7cb5e8829485c1e1fac7d1ca596a46771a9ad91d" + sha256 cellar: :any, monterey: "96ba1d1702b7620dd9d0d2fe030af4d31c83504afea1b119910ab2e9c9fbb08c" + sha256 cellar: :any, big_sur: "f96dfcecefb40d4794a8ea3ef5981bdeab6e64c412f18f0c128b1d64fe87d913" + sha256 cellar: :any_skip_relocation, x86_64_linux: "83737a776f4828a7fb5eb289b10418b7cf829cccca3fc634d7dfe7c96aff4e7e" + end + + depends_on "autoconf" + depends_on "openssl@3" + depends_on "pkg-config" + depends_on "readline" + + uses_from_macos "python" => :test + uses_from_macos "bzip2" + uses_from_macos "libffi" + uses_from_macos "ncurses" + uses_from_macos "xz" + uses_from_macos "zlib" + + def install + inreplace "libexec/pyenv", "/usr/local", HOMEBREW_PREFIX + inreplace "libexec/pyenv-rehash", "$(command -v pyenv)", opt_bin/"pyenv" + inreplace "pyenv.d/rehash/source.bash", "$(command -v pyenv)", opt_bin/"pyenv" + + system "src/configure" + system "make", "-C", "src" + + prefix.install Dir["*"] + %w[pyenv-install pyenv-uninstall python-build].each do |cmd| + bin.install_symlink "#{prefix}/plugins/python-build/bin/#{cmd}" + end + + share.install prefix/"man" + + # Do not manually install shell completions. See: + # - pyenv/pyenv#1056#issuecomment-356818337 + # - Homebrew/homebrew-core#22727 + end + + test do + # Create a fake python version and executable. + pyenv_root = Pathname(shell_output("#{bin}/pyenv root").strip) + python_bin = pyenv_root/"versions/1.2.3/bin" + foo_script = python_bin/"foo" + foo_script.write "echo hello" + chmod "+x", foo_script + + # Test versions. + versions = shell_output("eval \"$(#{bin}/pyenv init --path)\" " \ + "&& eval \"$(#{bin}/pyenv init -)\" " \ + "&& #{bin}/pyenv versions").split("\n") + assert_equal 2, versions.length + assert_match(/\* system/, versions[0]) + assert_equal(" 1.2.3", versions[1]) + + # Test rehash. + system bin/"pyenv", "rehash" + refute_match "Cellar", (pyenv_root/"shims/foo").read + assert_equal "hello", shell_output("eval \"$(#{bin}/pyenv init --path)\" " \ + "&& eval \"$(#{bin}/pyenv init -)\" " \ + "&& PYENV_VERSION='1.2.3' foo").chomp + end +end |