Skip to content

Commit

Permalink
fix: install arm brew on MacOS Arm to install libsodium
Browse files Browse the repository at this point in the history
  • Loading branch information
aminya committed Dec 4, 2022
1 parent e450c46 commit 94499e6
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 2 deletions.
11 changes: 9 additions & 2 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,11 +106,18 @@ jobs:
architecture: ${{ matrix.node_arch }}
cache: "pnpm"

- name: Install Mac-OS Dependencies
if: contains(matrix.os, 'macos')
- name: Install Mac-OS ${{ matrix.ARCH }} Dependencies
if: ${{ contains(matrix.os, 'macos') && matrix.ARCH == 'x86_64' }}
run: |
brew install libsodium gnutls
- name: Install Mac-OS ${{ matrix.ARCH }} Dependencies
if: ${{ contains(matrix.os, 'macos') && matrix.ARCH == 'arm64' }}
run: |
brew uninstall libsodium --force --ignore-dependencies
chmod +x ./script/macos-arm-deps.sh
./script/macos-arm-deps.sh
- name: Install Dependencies and Build
if: ${{ !matrix.docker }}
run: pnpm install
Expand Down
34 changes: 34 additions & 0 deletions script/macos-arm-deps.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/bin/sh
set -e

#! Install arm-brew on x86 MacOS Arm
#! Based on https://github.com/Homebrew/discussions/discussions/2843#discussioncomment-2243610

bottle_tag="arm64_big_sur" # Macos 11 is big sure
dependencies="libsodium gnutls"

mkdir -p ~/arm-target/bin
mkdir -p ~/arm-target/brew-cache
export PATH="$HOME/arm-target/bin:$PATH"

PREV_PWD="$PWD"
cd ~/arm-target

mkdir arm-homebrew
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C arm-homebrew
ln -s ~/arm-target/arm-homebrew/bin/brew ~/arm-target/bin/arm-brew

export HOMEBREW_CACHE=~/arm-target/brew-cache
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1

arm-brew fetch --deps --bottle-tag=$bottle_tag $dependencies |
grep -E "(Downloaded to:|Already downloaded:)" |
grep -v pkg-config |
awk '{ print $3 }' |
xargs -n 1 arm-brew install --ignore-dependencies --force-bottle

# Install host version of pkg-config so we can call it in the build system
arm-brew install pkg-config
ln -s ~/arm-target/arm-homebrew/bin/pkg-config ~/arm-target/bin/arm-pkg-config

cd "$PREV_PWD"

0 comments on commit 94499e6

Please sign in to comment.