summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/compat.yaml106
-rwxr-xr-xbuild_single.sh7
-rwxr-xr-xexternal/macos/build_unbound.sh48
-rwxr-xr-xexternal/macos/config.sh12
4 files changed, 111 insertions, 62 deletions
diff --git a/.github/workflows/compat.yaml b/.github/workflows/compat.yaml
index 5b57379..d838606 100644
--- a/.github/workflows/compat.yaml
+++ b/.github/workflows/compat.yaml
@@ -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)
- \ No newline at end of file
+ ./build-single.sh ${{ matrix.coin }} host-apple-darwin -j$(sysctl -n hw.activecpu) \ No newline at end of file
diff --git a/build_single.sh b/build_single.sh
index a4d95e7..f72e04d 100755
--- a/build_single.sh
+++ b/build_single.sh
@@ -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
diff --git a/external/macos/build_unbound.sh b/external/macos/build_unbound.sh
new file mode 100755
index 0000000..24ed54f
--- /dev/null
+++ b/external/macos/build_unbound.sh
@@ -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 \ No newline at end of file
diff --git a/external/macos/config.sh b/external/macos/config.sh
new file mode 100755
index 0000000..dcdf462
--- /dev/null
+++ b/external/macos/config.sh
@@ -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" \ No newline at end of file