From 6c7f289b9f504ada7d082def90f0e38d44fd257b Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Mon, 25 May 2026 17:24:03 +0530 Subject: [PATCH 01/15] fix: update bootstrap_mac.sh with modern Homebrew installer and dependencies Signed-off-by: Devansh-567 --- tools/macos/bootstrap_mac.sh | 86 ++++++++++++++++++------------------ 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/tools/macos/bootstrap_mac.sh b/tools/macos/bootstrap_mac.sh index 0ee232b33..46165c8b1 100755 --- a/tools/macos/bootstrap_mac.sh +++ b/tools/macos/bootstrap_mac.sh @@ -7,58 +7,58 @@ set -e set -x -tools_dir=`dirname $0` +# Installation helper. +brew_install() { + echo "\nInstalling $1" + if brew list $1 &>/dev/null; then + echo "${1} is already installed" + else + brew install --ignore-dependencies $1 && echo "$1 is installed" + fi +} -# check for brew, -if [[ -z `which brew` ]]; then - # install homebrew - /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" - # python pip installs in /usr/local/tests - sudo mkdir -p /usr/local/tests - sudo chown ${USER}:admin /usr/local/tests +# Check if Homebrew is already installed. +if ! which brew > /dev/null 2>&1; then + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" fi -# check for pip -if [[ -z `which pip` ]]; then - (>&2 echo 'Please install pip by "curl -O https://bootstrap.pypa.io/get-pip.py | sudo python3 get-pip.py"') - exit 1 +# Check if brew shellenv command is already in zprofile. +if ! grep -q 'brew shellenv' ~/.zprofile; then + if [[ $(uname -m) == 'arm64' ]]; then + (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zprofile + eval "$(/opt/homebrew/bin/brew shellenv)" + else + (echo; echo 'eval "$(/usr/local/bin/brew shellenv)"') >> ~/.zprofile + eval "$(/usr/local/bin/brew shellenv)" + fi fi -# check for clang version -cxx_full_version=`clang++ --version | grep version` -cxx_version=`echo $cxx_full_version | cut -f 4 -d " "` -if [[ $cxx_version < "8.0.0" ]]; then - echo "Please install Xcode 8 or command line tools v8 or higher." - echo "It is a requirement for thread_local support" - echo "" - echo "You have: $cxx_full_version" - exit 1 -fi - -brew update +# Source zprofile. +source ~/.zprofile -# install basic tools -brew install automake autoconf bison boost clang-format cmake coreutils \ - doxygen gcc@5 gmp libevent openssl pkg-config wget -# bison needs a bit more nudging -brew link --overwrite --force bison +HOMEBREW_PREFIX=$(brew --prefix) -# we need realpath from coreutils -brews_dir=`realpath $tools_dir`/brews - -# thrift -brew install --HEAD ${brews_dir}/thrift.rb --with-python --with-libevent +# Fetch the latest formulae. +brew update -brew install python -/usr/local/bin/pip install pcapy +REQUIRED_PACKAGES=( + autoconf automake cmake libtool + boost bison pkg-config + libevent openssl coreutils + nanomsg thrift + python3 +) -# nanomsg -brew install nanomsg +for package in "${REQUIRED_PACKAGES[@]}"; do + brew_install ${package} +done -# # scapy -pip install scapy +# bison needs to be on PATH before system bison. +if ! grep -q "$(brew --prefix bison)/bin" ~/.bash_profile; then + echo 'export PATH="$(brew --prefix bison)/bin:$PATH"' >> ~/.bash_profile +fi -# pynng -/usr/local/bin/pip install pynng==0.9.0 +source ~/.bash_profile -/usr/local/bin/pip install PyYAML +# Install Python dependencies. +pip3 install scapy pynng==0.9.0 PyYAML From e3738663a67e15ed3e842540db107401d34928f6 Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Tue, 26 May 2026 13:33:26 +0530 Subject: [PATCH 02/15] ci: add workflow to test macOS bootstrap script on x86_64 and arm64 Signed-off-by: Devansh-567 --- .github/workflows/test-macos-bootstrap.yml | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 .github/workflows/test-macos-bootstrap.yml diff --git a/.github/workflows/test-macos-bootstrap.yml b/.github/workflows/test-macos-bootstrap.yml new file mode 100644 index 000000000..8d6ef9e23 --- /dev/null +++ b/.github/workflows/test-macos-bootstrap.yml @@ -0,0 +1,69 @@ +# SPDX-FileCopyrightText: 2026 Contributors to the p4lang/behavioral-model project +# +# SPDX-License-Identifier: Apache-2.0 + +name: Test macOS bootstrap script + +on: + pull_request: + branches: + - main + paths: + - 'tools/macos/bootstrap_mac.sh' + push: + branches: + - main + paths: + - 'tools/macos/bootstrap_mac.sh' + +# Cancel any preceding run on the pull request. +concurrency: + group: test-macos-bootstrap-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} + +jobs: + check-changes: + name: Check whether tests need to be run based on diff + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: antrea-io/has-changes@v2 + id: check_diff + with: + paths-ignore: docs/* *.md + outputs: + has_changes: ${{ steps.check_diff.outputs.has_changes }} + + test-macos-bootstrap: + needs: check-changes + if: ${{ needs.check-changes.outputs.has_changes == 'yes' }} + runs-on: ${{ matrix.os }} + name: test-macos-bootstrap (${{ matrix.os }}) + strategy: + fail-fast: false + matrix: + os: + - macos-13 # x86_64 + - macos-14 # arm64 (Apple Silicon) + - macos-15 # arm64 (Apple Silicon, latest) + steps: + - uses: actions/checkout@v6 + with: + submodules: 'recursive' + + - name: Run macOS bootstrap script + run: | + bash tools/macos/bootstrap_mac.sh + + - name: Verify key dependencies were installed + run: | + # Verify that the core packages installed by the script are present + brew list automake + brew list autoconf + brew list cmake + brew list boost + brew list gmp + brew list openssl + brew list pkg-config + python3 --version + pip3 --version \ No newline at end of file From 4ead2bd4bcef01b5e0dbeca237ddf316c045022b Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Wed, 27 May 2026 10:20:08 +0530 Subject: [PATCH 03/15] ci: fix bootstrap script CI issues and remove macos-14 Signed-off-by: Devansh-567 --- .github/workflows/test-macos-bootstrap.yml | 10 +++- tools/macos/bootstrap_mac.sh | 59 ++++++++++------------ 2 files changed, 35 insertions(+), 34 deletions(-) diff --git a/.github/workflows/test-macos-bootstrap.yml b/.github/workflows/test-macos-bootstrap.yml index 8d6ef9e23..1d8fbd8e7 100644 --- a/.github/workflows/test-macos-bootstrap.yml +++ b/.github/workflows/test-macos-bootstrap.yml @@ -44,20 +44,26 @@ jobs: matrix: os: - macos-13 # x86_64 - - macos-14 # arm64 (Apple Silicon) - macos-15 # arm64 (Apple Silicon, latest) steps: - uses: actions/checkout@v6 with: submodules: 'recursive' + - name: Set up Homebrew PATH for arm64 + if: runner.arch == 'ARM64' + run: echo "/opt/homebrew/bin" >> $GITHUB_PATH + + - name: Set up Homebrew PATH for x86_64 + if: runner.arch == 'X64' + run: echo "/usr/local/bin" >> $GITHUB_PATH + - name: Run macOS bootstrap script run: | bash tools/macos/bootstrap_mac.sh - name: Verify key dependencies were installed run: | - # Verify that the core packages installed by the script are present brew list automake brew list autoconf brew list cmake diff --git a/tools/macos/bootstrap_mac.sh b/tools/macos/bootstrap_mac.sh index 46165c8b1..9e46fda53 100755 --- a/tools/macos/bootstrap_mac.sh +++ b/tools/macos/bootstrap_mac.sh @@ -7,58 +7,53 @@ set -e set -x -# Installation helper. +# Installation helper: skip already-installed packages. brew_install() { - echo "\nInstalling $1" - if brew list $1 &>/dev/null; then - echo "${1} is already installed" + if brew list "$1" &>/dev/null; then + echo "$1 is already installed, skipping" else - brew install --ignore-dependencies $1 && echo "$1 is installed" + brew install "$1" fi } # Check if Homebrew is already installed. -if ! which brew > /dev/null 2>&1; then +if ! command -v brew &>/dev/null; then /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" fi -# Check if brew shellenv command is already in zprofile. -if ! grep -q 'brew shellenv' ~/.zprofile; then - if [[ $(uname -m) == 'arm64' ]]; then - (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zprofile - eval "$(/opt/homebrew/bin/brew shellenv)" - else - (echo; echo 'eval "$(/usr/local/bin/brew shellenv)"') >> ~/.zprofile - eval "$(/usr/local/bin/brew shellenv)" - fi +# Add Homebrew to PATH for both arm64 (Apple Silicon) and x86_64. +if [[ $(uname -m) == 'arm64' ]]; then + eval "$(/opt/homebrew/bin/brew shellenv)" +else + eval "$(/usr/local/bin/brew shellenv)" fi -# Source zprofile. -source ~/.zprofile - -HOMEBREW_PREFIX=$(brew --prefix) - # Fetch the latest formulae. brew update +# Required packages for bmv2. REQUIRED_PACKAGES=( - autoconf automake cmake libtool - boost bison pkg-config - libevent openssl coreutils - nanomsg thrift + autoconf + automake + cmake + libtool + boost + bison + pkg-config + libevent + openssl + coreutils + gmp + nanomsg python3 ) for package in "${REQUIRED_PACKAGES[@]}"; do - brew_install ${package} + brew_install "${package}" done -# bison needs to be on PATH before system bison. -if ! grep -q "$(brew --prefix bison)/bin" ~/.bash_profile; then - echo 'export PATH="$(brew --prefix bison)/bin:$PATH"' >> ~/.bash_profile -fi - -source ~/.bash_profile +# bison installed via Homebrew must appear before system bison on PATH. +export PATH="$(brew --prefix bison)/bin:$PATH" # Install Python dependencies. -pip3 install scapy pynng==0.9.0 PyYAML +pip3 install --user scapy pynng==0.9.0 PyYAML From 6b89f7e841cb82cbf4b5b8e32334f642d06b42e1 Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Wed, 27 May 2026 10:26:00 +0530 Subject: [PATCH 04/15] fix: use --break-system-packages for pip3 install on modern macOS Signed-off-by: Devansh-567 --- tools/macos/bootstrap_mac.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/macos/bootstrap_mac.sh b/tools/macos/bootstrap_mac.sh index 9e46fda53..efcc57421 100755 --- a/tools/macos/bootstrap_mac.sh +++ b/tools/macos/bootstrap_mac.sh @@ -56,4 +56,6 @@ done export PATH="$(brew --prefix bison)/bin:$PATH" # Install Python dependencies. -pip3 install --user scapy pynng==0.9.0 PyYAML +# --break-system-packages is required on modern macOS (PEP 668) to allow +# pip to install into the system Python environment. +pip3 install --user --break-system-packages scapy pynng==0.9.0 PyYAML From 416634cf60c2bab1dff87b850f60f33663051247 Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Thu, 28 May 2026 13:21:13 +0530 Subject: [PATCH 05/15] ci: remove macos-13 runner as GitHub no longer supports it Signed-off-by: Devansh-567 --- .github/workflows/test-macos-bootstrap.yml | 9 --------- tools/macos/bootstrap_mac.sh | 2 +- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/.github/workflows/test-macos-bootstrap.yml b/.github/workflows/test-macos-bootstrap.yml index 1d8fbd8e7..9edfde6b4 100644 --- a/.github/workflows/test-macos-bootstrap.yml +++ b/.github/workflows/test-macos-bootstrap.yml @@ -43,21 +43,12 @@ jobs: fail-fast: false matrix: os: - - macos-13 # x86_64 - macos-15 # arm64 (Apple Silicon, latest) steps: - uses: actions/checkout@v6 with: submodules: 'recursive' - - name: Set up Homebrew PATH for arm64 - if: runner.arch == 'ARM64' - run: echo "/opt/homebrew/bin" >> $GITHUB_PATH - - - name: Set up Homebrew PATH for x86_64 - if: runner.arch == 'X64' - run: echo "/usr/local/bin" >> $GITHUB_PATH - - name: Run macOS bootstrap script run: | bash tools/macos/bootstrap_mac.sh diff --git a/tools/macos/bootstrap_mac.sh b/tools/macos/bootstrap_mac.sh index efcc57421..7acb8db8c 100755 --- a/tools/macos/bootstrap_mac.sh +++ b/tools/macos/bootstrap_mac.sh @@ -58,4 +58,4 @@ export PATH="$(brew --prefix bison)/bin:$PATH" # Install Python dependencies. # --break-system-packages is required on modern macOS (PEP 668) to allow # pip to install into the system Python environment. -pip3 install --user --break-system-packages scapy pynng==0.9.0 PyYAML +pip3 install --user --break-system-packages scapy pynng==0.9.0 PyYAML \ No newline at end of file From 885c4dd4b82790295cbba8608f9096dab77f2d36 Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Sat, 30 May 2026 15:19:20 +0530 Subject: [PATCH 06/15] ci: add full BMv2 build step to macOS bootstrap CI Signed-off-by: Devansh-567 --- .github/workflows/test-macos-bootstrap.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-macos-bootstrap.yml b/.github/workflows/test-macos-bootstrap.yml index 9edfde6b4..fb7ebbfcf 100644 --- a/.github/workflows/test-macos-bootstrap.yml +++ b/.github/workflows/test-macos-bootstrap.yml @@ -63,4 +63,16 @@ jobs: brew list openssl brew list pkg-config python3 --version - pip3 --version \ No newline at end of file + pip3 --version + + - name: Build BMv2 + run: | + # Ensure Homebrew bison is used instead of system bison + export PATH="$(brew --prefix bison)/bin:$PATH" + # Ensure Homebrew openssl is visible to the build system + export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig:$PKG_CONFIG_PATH" + export LDFLAGS="-L$(brew --prefix openssl)/lib" + export CPPFLAGS="-I$(brew --prefix openssl)/include" + ./autogen.sh + ./configure + make -j$(sysctl -n hw.logicalcpu) From f33b83da9e4c7280cd18e14dff94a611b4b21776 Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Sat, 30 May 2026 15:24:12 +0530 Subject: [PATCH 07/15] fix: add thrift to required packages for BMv2 build Signed-off-by: Devansh-567 --- tools/macos/bootstrap_mac.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/macos/bootstrap_mac.sh b/tools/macos/bootstrap_mac.sh index 7acb8db8c..6d7753be0 100755 --- a/tools/macos/bootstrap_mac.sh +++ b/tools/macos/bootstrap_mac.sh @@ -1,5 +1,4 @@ #! /bin/bash - # SPDX-FileCopyrightText: 2016 Barefoot Networks, Inc. # # SPDX-License-Identifier: Apache-2.0 @@ -45,6 +44,7 @@ REQUIRED_PACKAGES=( coreutils gmp nanomsg + thrift python3 ) @@ -58,4 +58,4 @@ export PATH="$(brew --prefix bison)/bin:$PATH" # Install Python dependencies. # --break-system-packages is required on modern macOS (PEP 668) to allow # pip to install into the system Python environment. -pip3 install --user --break-system-packages scapy pynng==0.9.0 PyYAML \ No newline at end of file +pip3 install --user --break-system-packages scapy pynng==0.9.0 PyYAML From 6a5ce441bc4893fe756148252a837fd9d6faecfc Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Sat, 30 May 2026 17:49:27 +0530 Subject: [PATCH 08/15] ci: add thrift include and lib paths for BMv2 configure Signed-off-by: Devansh-567 --- .github/workflows/test-macos-bootstrap.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-macos-bootstrap.yml b/.github/workflows/test-macos-bootstrap.yml index fb7ebbfcf..e4105ea16 100644 --- a/.github/workflows/test-macos-bootstrap.yml +++ b/.github/workflows/test-macos-bootstrap.yml @@ -69,10 +69,10 @@ jobs: run: | # Ensure Homebrew bison is used instead of system bison export PATH="$(brew --prefix bison)/bin:$PATH" - # Ensure Homebrew openssl is visible to the build system + # Ensure Homebrew openssl headers are visible export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig:$PKG_CONFIG_PATH" - export LDFLAGS="-L$(brew --prefix openssl)/lib" - export CPPFLAGS="-I$(brew --prefix openssl)/include" + export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix thrift)/lib" + export CPPFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix thrift)/include" ./autogen.sh ./configure make -j$(sysctl -n hw.logicalcpu) From 0372d8dd3270cfb954f8d16dd6ae70b7ec0f4d81 Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Sat, 30 May 2026 20:44:54 +0530 Subject: [PATCH 09/15] ci: add nanomsg lib path for BMv2 configure Signed-off-by: Devansh-567 --- .github/workflows/test-macos-bootstrap.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-macos-bootstrap.yml b/.github/workflows/test-macos-bootstrap.yml index e4105ea16..279ceb8c1 100644 --- a/.github/workflows/test-macos-bootstrap.yml +++ b/.github/workflows/test-macos-bootstrap.yml @@ -69,10 +69,10 @@ jobs: run: | # Ensure Homebrew bison is used instead of system bison export PATH="$(brew --prefix bison)/bin:$PATH" - # Ensure Homebrew openssl headers are visible + # Expose headers and libraries for keg-only packages export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig:$PKG_CONFIG_PATH" - export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix thrift)/lib" - export CPPFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix thrift)/include" + export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix thrift)/lib -L$(brew --prefix nanomsg)/lib" + export CPPFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix thrift)/include -I$(brew --prefix nanomsg)/include" ./autogen.sh ./configure make -j$(sysctl -n hw.logicalcpu) From 7c42cda4210bf6b053c3f9ae60d1d0c306bba839 Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Wed, 3 Jun 2026 16:04:42 +0530 Subject: [PATCH 10/15] ci: add gmp lib path for BMv2 configure Signed-off-by: Devansh-567 --- .github/workflows/test-macos-bootstrap.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-macos-bootstrap.yml b/.github/workflows/test-macos-bootstrap.yml index 279ceb8c1..25aad5f1f 100644 --- a/.github/workflows/test-macos-bootstrap.yml +++ b/.github/workflows/test-macos-bootstrap.yml @@ -69,10 +69,10 @@ jobs: run: | # Ensure Homebrew bison is used instead of system bison export PATH="$(brew --prefix bison)/bin:$PATH" - # Expose headers and libraries for keg-only packages + # Expose headers and libraries for keg-only and non-default packages export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig:$PKG_CONFIG_PATH" - export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix thrift)/lib -L$(brew --prefix nanomsg)/lib" - export CPPFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix thrift)/include -I$(brew --prefix nanomsg)/include" + export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix thrift)/lib -L$(brew --prefix nanomsg)/lib -L$(brew --prefix gmp)/lib" + export CPPFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix thrift)/include -I$(brew --prefix nanomsg)/include -I$(brew --prefix gmp)/include" ./autogen.sh ./configure make -j$(sysctl -n hw.logicalcpu) From 2dba8e29e035d4884fd1ca4cf5fac7e73c943e78 Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Thu, 4 Jun 2026 18:38:26 +0530 Subject: [PATCH 11/15] fix: add xxhash to macOS bootstrap required packages Signed-off-by: Devansh-567 --- tools/macos/bootstrap_mac.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/macos/bootstrap_mac.sh b/tools/macos/bootstrap_mac.sh index 6d7753be0..83917f770 100755 --- a/tools/macos/bootstrap_mac.sh +++ b/tools/macos/bootstrap_mac.sh @@ -45,6 +45,7 @@ REQUIRED_PACKAGES=( gmp nanomsg thrift + xxhash python3 ) From bf3973ed07d26e4ce943a5d68678d285694032e8 Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Mon, 8 Jun 2026 15:28:40 +0530 Subject: [PATCH 12/15] ci: add xxhash lib path for BMv2 configure Signed-off-by: Devansh-567 --- .github/workflows/test-macos-bootstrap.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test-macos-bootstrap.yml b/.github/workflows/test-macos-bootstrap.yml index 25aad5f1f..df4713209 100644 --- a/.github/workflows/test-macos-bootstrap.yml +++ b/.github/workflows/test-macos-bootstrap.yml @@ -67,12 +67,10 @@ jobs: - name: Build BMv2 run: | - # Ensure Homebrew bison is used instead of system bison export PATH="$(brew --prefix bison)/bin:$PATH" - # Expose headers and libraries for keg-only and non-default packages export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig:$PKG_CONFIG_PATH" - export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix thrift)/lib -L$(brew --prefix nanomsg)/lib -L$(brew --prefix gmp)/lib" - export CPPFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix thrift)/include -I$(brew --prefix nanomsg)/include -I$(brew --prefix gmp)/include" + export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix thrift)/lib -L$(brew --prefix nanomsg)/lib -L$(brew --prefix gmp)/lib -L$(brew --prefix xxhash)/lib" + export CPPFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix thrift)/include -I$(brew --prefix nanomsg)/include -I$(brew --prefix gmp)/include -I$(brew --prefix xxhash)/include" ./autogen.sh ./configure make -j$(sysctl -n hw.logicalcpu) From 2baddb5159114b067fcacf26161d6efb0817a57f Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Mon, 8 Jun 2026 21:09:15 +0530 Subject: [PATCH 13/15] fix: add jsoncpp to bootstrap packages and CI lib paths Signed-off-by: Devansh-567 --- .github/workflows/test-macos-bootstrap.yml | 6 +++--- tools/macos/bootstrap_mac.sh | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-macos-bootstrap.yml b/.github/workflows/test-macos-bootstrap.yml index df4713209..cc2142529 100644 --- a/.github/workflows/test-macos-bootstrap.yml +++ b/.github/workflows/test-macos-bootstrap.yml @@ -68,9 +68,9 @@ jobs: - name: Build BMv2 run: | export PATH="$(brew --prefix bison)/bin:$PATH" - export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig:$PKG_CONFIG_PATH" - export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix thrift)/lib -L$(brew --prefix nanomsg)/lib -L$(brew --prefix gmp)/lib -L$(brew --prefix xxhash)/lib" - export CPPFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix thrift)/include -I$(brew --prefix nanomsg)/include -I$(brew --prefix gmp)/include -I$(brew --prefix xxhash)/include" + export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig:$(brew --prefix jsoncpp)/lib/pkgconfig:$PKG_CONFIG_PATH" + export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix thrift)/lib -L$(brew --prefix nanomsg)/lib -L$(brew --prefix gmp)/lib -L$(brew --prefix xxhash)/lib -L$(brew --prefix jsoncpp)/lib" + export CPPFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix thrift)/include -I$(brew --prefix nanomsg)/include -I$(brew --prefix gmp)/include -I$(brew --prefix xxhash)/include -I$(brew --prefix jsoncpp)/include" ./autogen.sh ./configure make -j$(sysctl -n hw.logicalcpu) diff --git a/tools/macos/bootstrap_mac.sh b/tools/macos/bootstrap_mac.sh index 83917f770..2e13ffb58 100755 --- a/tools/macos/bootstrap_mac.sh +++ b/tools/macos/bootstrap_mac.sh @@ -46,6 +46,7 @@ REQUIRED_PACKAGES=( nanomsg thrift xxhash + jsoncpp python3 ) From 1dafbf3e76512cacf50a0b4c843eb409b8c68df3 Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Sat, 13 Jun 2026 22:05:09 +0530 Subject: [PATCH 14/15] ci: add boost headers path for BMv2 configure Signed-off-by: Devansh-567 --- .github/workflows/test-macos-bootstrap.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-macos-bootstrap.yml b/.github/workflows/test-macos-bootstrap.yml index cc2142529..91c78a93a 100644 --- a/.github/workflows/test-macos-bootstrap.yml +++ b/.github/workflows/test-macos-bootstrap.yml @@ -68,9 +68,9 @@ jobs: - name: Build BMv2 run: | export PATH="$(brew --prefix bison)/bin:$PATH" - export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig:$(brew --prefix jsoncpp)/lib/pkgconfig:$PKG_CONFIG_PATH" - export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix thrift)/lib -L$(brew --prefix nanomsg)/lib -L$(brew --prefix gmp)/lib -L$(brew --prefix xxhash)/lib -L$(brew --prefix jsoncpp)/lib" - export CPPFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix thrift)/include -I$(brew --prefix nanomsg)/include -I$(brew --prefix gmp)/include -I$(brew --prefix xxhash)/include -I$(brew --prefix jsoncpp)/include" + export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig:$(brew --prefix jsoncpp)/lib/pkgconfig:$PKG_CONFIG_PATH" + export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix thrift)/lib -L$(brew --prefix nanomsg)/lib -L$(brew --prefix gmp)/lib -L$(brew --prefix xxhash)/lib -L$(brew --prefix jsoncpp)/lib -L$(brew --prefix boost)/lib" + export CPPFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix thrift)/include -I$(brew --prefix nanomsg)/include -I$(brew --prefix gmp)/include -I$(brew --prefix xxhash)/include -I$(brew --prefix jsoncpp)/include -I$(brew --prefix boost)/include" ./autogen.sh ./configure make -j$(sysctl -n hw.logicalcpu) From 51c942bfed4ad90139d2b55661f0868b93d88313 Mon Sep 17 00:00:00 2001 From: Devansh-567 Date: Tue, 16 Jun 2026 18:52:00 +0530 Subject: [PATCH 15/15] ci: build BMv2 in subdirectory to avoid ../version include conflict Signed-off-by: Devansh-567 --- .github/workflows/test-macos-bootstrap.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-macos-bootstrap.yml b/.github/workflows/test-macos-bootstrap.yml index 91c78a93a..7535da777 100644 --- a/.github/workflows/test-macos-bootstrap.yml +++ b/.github/workflows/test-macos-bootstrap.yml @@ -72,5 +72,7 @@ jobs: export LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix thrift)/lib -L$(brew --prefix nanomsg)/lib -L$(brew --prefix gmp)/lib -L$(brew --prefix xxhash)/lib -L$(brew --prefix jsoncpp)/lib -L$(brew --prefix boost)/lib" export CPPFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix thrift)/include -I$(brew --prefix nanomsg)/include -I$(brew --prefix gmp)/include -I$(brew --prefix xxhash)/include -I$(brew --prefix jsoncpp)/include -I$(brew --prefix boost)/include" ./autogen.sh - ./configure + mkdir -p build && cd build + ../configure make -j$(sysctl -n hw.logicalcpu) +