fix macos compliance

This commit is contained in:
Czarek Nakamoto
2024-05-24 07:34:48 +02:00
parent 54ed596ec5
commit fa8d4c70c3
4 changed files with 111 additions and 62 deletions

View File

@@ -2,6 +2,9 @@ name: compatibility check
on: [push]
jobs:
mingw:
strategy:
matrix:
coin: [monero, wownero]
runs-on: ubuntu-latest
container:
image: debian:bookworm
@@ -19,22 +22,17 @@ jobs:
git config --global --add safe.directory '*'
git config --global user.email "ci@mrcyjanek.net"
git config --global user.name "CI mrcyjanek.net"
./apply_patches.sh monero
./apply_patches.sh wownero
- name: monero/x86_64-w64-mingw32
run: ./build_single.sh monero x86_64-w64-mingw32 -j$(nproc)
- name: wownero/x86_64-w64-mingw32
run: ./build_single.sh wownero x86_64-w64-mingw32 -j$(nproc)
- name: monero/i686-w64-mingw32
run: ./build_single.sh monero i686-w64-mingw32 -j$(nproc)
- name: wownero/i686-w64-mingw32
run: ./build_single.sh wownero i686-w64-mingw32 -j$(nproc)
./apply_patches.sh ${{ matrix.coin }}
- name: ${{ matrix.coin }}/x86_64-w64-mingw32
run: ./build_single.sh ${{ matrix.coin }} x86_64-w64-mingw32 -j$(nproc)
- name: ${{ matrix.coin }}/i686-w64-mingw32
run: ./build_single.sh ${{ matrix.coin }} i686-w64-mingw32 -j$(nproc)
- name: rename artifacts
run: |
mkdir release/gh/
for i in release/monero/*
for i in release/${{ matrix.coin }}/*
do
mv "$i" "release/gh/monero_$(basename $i)"
mv "$i" "release/gh/${{ matrix.coin }}_$(basename $i)"
done
- name: Release
uses: softprops/action-gh-release@v2
@@ -42,6 +40,9 @@ jobs:
with:
files: release/gh/*
android:
strategy:
matrix:
coin: [monero, wownero]
runs-on: ubuntu-latest
container:
image: debian:bookworm
@@ -59,26 +60,19 @@ jobs:
git config --global --add safe.directory '*'
git config --global user.email "ci@mrcyjanek.net"
git config --global user.name "CI mrcyjanek.net"
./apply_patches.sh monero
./apply_patches.sh wownero
- name: monero/x86_64-linux-android
run: ./build_single.sh monero x86_64-linux-android -j$(nproc)
- name: wownero/x86_64-linux-android
run: ./build_single.sh wownero x86_64-linux-android -j$(nproc)
- name: monero/aarch64-linux-android
run: ./build_single.sh monero aarch64-linux-android -j$(nproc)
- name: wownero/aarch64-linux-android
run: ./build_single.sh wownero aarch64-linux-android -j$(nproc)
- name: monero/arm-linux-androideabi
run: ./build_single.sh monero arm-linux-androideabi -j$(nproc)
- name: wownero/arm-linux-androideabi
run: ./build_single.sh wownero arm-linux-androideabi -j$(nproc)
./apply_patches.sh ${{ matrix.coin }}
- name: ${{ matrix.coin }}/x86_64-linux-android
run: ./build_single.sh ${{ matrix.coin }} x86_64-linux-android -j$(nproc)
- name: ${{ matrix.coin }}/aarch64-linux-android
run: ./build_single.sh ${{ matrix.coin }} aarch64-linux-android -j$(nproc)
- name: ${{ matrix.coin }}/arm-linux-androideabi
run: ./build_single.sh ${{ matrix.coin }} arm-linux-androideabi -j$(nproc)
- name: rename artifacts
run: |
mkdir release/gh/
for i in release/monero/*
for i in release/${{ matrix.coin }}/*
do
mv "$i" "release/gh/monero_$(basename $i)"
mv "$i" "release/gh/${{ matrix.coin }}_$(basename $i)"
done
- name: Release
uses: softprops/action-gh-release@v2
@@ -86,6 +80,9 @@ jobs:
with:
files: release/gh/*
linux:
strategy:
matrix:
coin: [monero, wownero]
runs-on: ubuntu-latest
container:
image: debian:bookworm
@@ -103,26 +100,19 @@ jobs:
git config --global --add safe.directory '*'
git config --global user.email "ci@mrcyjanek.net"
git config --global user.name "CI mrcyjanek.net"
./apply_patches.sh monero
./apply_patches.sh wownero
- name: monero/x86_64-linux-gnu
run: ./build_single.sh monero x86_64-linux-gnu -j$(nproc)
- name: wownero/x86_64-linux-gnu
run: ./build_single.sh wownero x86_64-linux-gnu -j$(nproc)
- name: monero/aarch64-linux-gnu
run: ./build_single.sh monero aarch64-linux-gnu -j$(nproc)
- name: wownero/aarch64-linux-gnu
run: ./build_single.sh wownero aarch64-linux-gnu -j$(nproc)
- name: monero/i686-linux-gnu
run: ./build_single.sh monero i686-linux-gnu -j$(nproc)
- name: wownero/i686-linux-gnu
run: ./build_single.sh wownero i686-linux-gnu -j$(nproc)
./apply_patches.sh ${{ matrix.coin }}
- name: ${{ matrix.coin }}/x86_64-linux-gnu
run: ./build_single.sh ${{ matrix.coin }} x86_64-linux-gnu -j$(nproc)
- name: ${{ matrix.coin }}/aarch64-linux-gnu
run: ./build_single.sh ${{ matrix.coin }} aarch64-linux-gnu -j$(nproc)
- name: ${{ matrix.coin }}/i686-linux-gnu
run: ./build_single.sh ${{ matrix.coin }} i686-linux-gnu -j$(nproc)
- name: rename artifacts
run: |
mkdir release/gh/
for i in release/monero/*
for i in release/${{ matrix.coin }}/*
do
mv "$i" "release/gh/monero_$(basename $i)"
mv "$i" "release/gh/${{ matrix.coin }}_$(basename $i)"
done
- name: Release
uses: softprops/action-gh-release@v2
@@ -130,6 +120,9 @@ jobs:
with:
files: release/gh/*
darwin:
strategy:
matrix:
coin: [monero, wownero]
runs-on: ubuntu-latest
container:
image: debian:bookworm
@@ -149,20 +142,16 @@ jobs:
git config --global user.name "CI mrcyjanek.net"
./apply_patches.sh monero
./apply_patches.sh wownero
- name: monero/x86_64-apple-darwin11
run: ./build_single.sh monero x86_64-apple-darwin11 -j$(nproc)
- name: wownero/x86_64-apple-darwin11
run: ./build_single.sh wownero x86_64-apple-darwin11 -j$(nproc)
- name: monero/aarch64-apple-darwin11
run: ./build_single.sh monero aarch64-apple-darwin11 -j$(nproc)
- name: wownero/aarch64-apple-darwin11
run: ./build_single.sh wownero aarch64-apple-darwin11 -j$(nproc)
- name: ${{ matrix.coin }}/x86_64-apple-darwin11
run: ./build_single.sh ${{ matrix.coin }} x86_64-apple-darwin11 -j$(nproc)
- name: ${{ matrix.coin }}/aarch64-apple-darwin11
run: ./build_single.sh ${{ matrix.coin }} aarch64-apple-darwin11 -j$(nproc)
- name: rename artifacts
run: |
mkdir release/gh/
for i in release/monero/*
for i in release/${{ matrix.coin }}/*
do
mv "$i" "release/gh/monero_$(basename $i)"
mv "$i" "release/gh/${{ matrix.coin }}_$(basename $i)"
done
- name: Release
uses: softprops/action-gh-release@v2
@@ -191,12 +180,7 @@ jobs:
git config --global --add safe.directory '*'
git config --global user.email "ci@mrcyjanek.net"
git config --global user.name "CI mrcyjanek.net"
./apply_patches.sh monero
./apply_patches.sh wownero
./apply_patches.sh ${{ matrix.coin }}
- name: monero/host-apple-darwin
run: |
./build-single.sh monero host-apple-darwin -j$(sysctl -n hw.activecpu)
- name: wownero/host-apple-darwin
run: |
./build-single.sh wownero host-apple-darwin -j$(sysctl -n hw.activecpu)
./build-single.sh ${{ matrix.coin }} host-apple-darwin -j$(sysctl -n hw.activecpu)

View File

@@ -169,6 +169,9 @@ pushd $repo/contrib/depends
make $NPROC
popd
fi
pushd ../../../external/macos
./build_unbound.sh
popd
MACOS_LIBS_DIR="${PWD}/${HOST_ABI}"
rm -rf ${MACOS_LIBS_DIR}
mkdir -p ${MACOS_LIBS_DIR}/lib
@@ -180,7 +183,9 @@ pushd $repo/contrib/depends
export HOMEBREW_PREFIX=/usr/local
fi
fi
verbose_copy "${HOMEBREW_PREFIX}/lib/libunbound.a" ${MACOS_LIBS_DIR}/lib/libunbound.a
# NOTE: we can use unbound from brew but app store rejects the app
# verbose_copy "${HOMEBREW_PREFIX}/lib/libunbound.a" ${MACOS_LIBS_DIR}/lib/libunbound.a
verbose_copy "../../../external/macos/build/MACOS/lib/libunbound.a" ${MACOS_LIBS_DIR}/lib/libunbound.a
verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_chrono-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_chrono-mt.a
verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_locale-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_locale-mt.a
verbose_copy "${HOMEBREW_PREFIX}/lib/libboost_date_time-mt.a" ${MACOS_LIBS_DIR}/lib/libboost_date_time-mt.a

48
external/macos/build_unbound.sh vendored Executable file
View File

@@ -0,0 +1,48 @@
#!/bin/bash
set -x -e
. config.sh
#### add m4 to path
# NOTE: this may not be needed.
HOMEBREW_PREFIX="$(brew config | grep HOMEBREW_PREFIX | awk '{ print $2 }')"
M4_VERSION="$(brew info m4 | head -1 | awk '{ print $4 }')"
export PATH="${HOMEBREW_PREFIX}/Cellar/m4/${M4_VERSION}/bin/:$PATH"
#### expat
EXPAT_VERSION=R_2_4_8
EXPAT_HASH="3bab6c09bbe8bf42d84b81563ddbcf4cca4be838"
EXPAT_SRC_DIR=${EXTERNAL_MACOS_SOURCE_DIR}/libexpat
rm -rf $EXPAT_SRC_DIR
git clone https://github.com/libexpat/libexpat.git -b ${EXPAT_VERSION} ${EXPAT_SRC_DIR}
cd $EXPAT_SRC_DIR
test `git rev-parse HEAD` = ${EXPAT_HASH} || exit 1
cd $EXPAT_SRC_DIR/expat
./buildconf.sh
./configure --enable-static --disable-shared --prefix=${EXTERNAL_MACOS_DIR}
make
make install
#### unbound
UNBOUND_VERSION=release-1.16.2
UNBOUND_HASH="cbed768b8ff9bfcf11089a5f1699b7e5707f1ea5"
UNBOUND_URL="https://www.nlnetlabs.nl/downloads/unbound/unbound-${UNBOUND_VERSION}.tar.gz"
UNBOUND_DIR_PATH="${EXTERNAL_MACOS_SOURCE_DIR}/unbound-1.16.2"
echo "============================ Unbound ============================"
rm -rf ${UNBOUND_DIR_PATH}
git clone https://github.com/NLnetLabs/unbound.git -b ${UNBOUND_VERSION} ${UNBOUND_DIR_PATH}
cd $UNBOUND_DIR_PATH
test `git rev-parse HEAD` = ${UNBOUND_HASH} || exit 1
./configure --prefix="${EXTERNAL_MACOS_DIR}" \
--with-libexpat="${EXTERNAL_MACOS_DIR}" \
--enable-static \
--disable-shared \
--disable-flto
make
make install

12
external/macos/config.sh vendored Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/bash
export MACOS_SCRIPTS_DIR="$(pwd)"
export CW_ROOT="${MACOS_SCRIPTS_DIR}"
export EXTERNAL_DIR="${CW_ROOT}/build"
export EXTERNAL_MACOS_DIR="${EXTERNAL_DIR}/MACOS"
export EXTERNAL_MACOS_SOURCE_DIR="${EXTERNAL_MACOS_DIR}/sources"
export EXTERNAL_MACOS_LIB_DIR="${EXTERNAL_MACOS_DIR}/lib"
export EXTERNAL_MACOS_INCLUDE_DIR="${EXTERNAL_MACOS_DIR}/include"
mkdir -p "$EXTERNAL_MACOS_LIB_DIR"
mkdir -p "$EXTERNAL_MACOS_INCLUDE_DIR"