From 825dc1fe5bd3ee78d649e169869d2c66f0cadd2e Mon Sep 17 00:00:00 2001 From: CherryNate Date: Fri, 16 Jan 2026 15:23:35 +0100 Subject: [PATCH 1/2] Packaging: MacOS liboqs build --- docs/AppData.md | 7 ++ packaging/os_prereqs/macos_packages/liboqs.sh | 56 +++++++++++ .../macos/arm64/requirements-auto.txt | 99 ++++++++++++++++++- 3 files changed, 160 insertions(+), 2 deletions(-) create mode 100644 docs/AppData.md create mode 100755 packaging/os_prereqs/macos_packages/liboqs.sh diff --git a/docs/AppData.md b/docs/AppData.md new file mode 100644 index 0000000..6404f67 --- /dev/null +++ b/docs/AppData.md @@ -0,0 +1,7 @@ +### MacOS + +~/Library/Application Support/Endra + +### Linux + +~/.local/share/Endra \ No newline at end of file diff --git a/packaging/os_prereqs/macos_packages/liboqs.sh b/packaging/os_prereqs/macos_packages/liboqs.sh new file mode 100755 index 0000000..dca3f3f --- /dev/null +++ b/packaging/os_prereqs/macos_packages/liboqs.sh @@ -0,0 +1,56 @@ +#!/bin/bash +# Compile and install liboqs + +set -euo pipefail # Exit if any command/script fails + +# Compilation configuration +LIBOQS_REPO="https://github.com/open-quantum-safe/liboqs.git" +LIBOQS_TAG="0.14.0" # adjust if needed +LIBOQS_INSTALL_PREFIX="/usr/local" +export LD_LIBRARY_PATH="/usr/local/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" +# Number of parallel build jobs +NPROC=$(( $(getconf _NPROCESSORS_ONLN) - 1 )) + + +SCRIPT_DIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" +cd $SCRIPT_DIR +source $SCRIPT_DIR/../os_package_utils.sh +source $SCRIPT_DIR/../os_platform_info.sh + + + +WORK_DIR=/tmp/EndraAppBuildLiboqs +LIBOQS_BUILD_DIR="$WORK_DIR/liboqs-build" + + +if [ -e "$LIBOQS_INSTALL_PREFIX/lib/liboqs.dylib" ]; then + echo "Liboqs is already installed, skipping." + exit 0 +fi + + +echo "=== Clone liboqs ===" +if [ ! -d "$WORK_DIR" ]; then + git clone --depth 1 --branch "${LIBOQS_TAG}" "${LIBOQS_REPO}" $WORK_DIR +else + echo "liboqs directory exists, skipping clone" +fi + +cd $WORK_DIR +git checkout ${LIBOQS_TAG} # ensure we're on the desired branch + +echo "=== Configure and build liboqs ===" +rm -rf "${LIBOQS_BUILD_DIR}" +mkdir -p "${LIBOQS_BUILD_DIR}" + +echo "$(which cmake)" +cmake -S $WORK_DIR -B $LIBOQS_BUILD_DIR \ + -DCMAKE_INSTALL_PREFIX="$LIBOQS_INSTALL_PREFIX" \ + -DOQS_DIST_BUILD=OFF \ + -DBUILD_SHARED_LIBS=ON \ + -DOQS_BUILD_ONLY_LIB=ON \ + -DOQS_OPT_TARGET=generic + +cmake --build $LIBOQS_BUILD_DIR --parallel $NPROC +cmake --build $LIBOQS_BUILD_DIR --target install + diff --git a/packaging/pyinstaller/macos/arm64/requirements-auto.txt b/packaging/pyinstaller/macos/arm64/requirements-auto.txt index fa8dd08..fc7bfed 100644 --- a/packaging/pyinstaller/macos/arm64/requirements-auto.txt +++ b/packaging/pyinstaller/macos/arm64/requirements-auto.txt @@ -1,2 +1,97 @@ -# Auto-generated requirements for macOS -# This file will be generated by get_python_deps.sh +Kivy-Garden==0.1.5 +Kivy==2.3.1 +Pygments==2.19.2 +annotated-types==0.7.0 +anyio==4.12.1 +appdirs==1.4.4 +async-generator==1.10 +attrs==25.4.0 +base58==2.1.1 +blake3==1.0.8 +brenthy_tools_beta==4.0.11 +cachetools==6.2.4 +certifi==2026.1.4 +cffi==2.0.0 +charset-normalizer==3.4.4 +codec-versioning==0.1.0 +coincurve==21.0.0 +cytoolz==1.1.0 +dataclasses-json==0.6.7 +decorate-all==0.1.1 +dnspython==2.8.0 +docutils==0.22.4 +eciespy==0.4.6 +emtest==0.0.8 +endra==0.6.5 +environs==14.5.0 +eth-hash==0.7.1 +eth-keys==0.7.0 +eth-typing==5.2.1 +eth-utils==5.3.1 +filetype==1.2.0 +h11==0.16.0 +httpcore==1.0.9 +httpx==0.28.1 +idna==3.11 +importlib_metadata==8.7.1 +iniconfig==2.3.0 +ipfs_node==0.1.12rc6 +ipfs_tk==0.1.11 +ipfs_toolkit==0.6.0rc8 +kivy-garden.qrcode==2021.314 +liboqs-python==0.14.1 +loguru==0.7.3 +marshmallow==3.26.2 +mmh3==5.2.0 +morphys==1.0 +multi_crypt==0.1.3 +multiaddr==0.1.1 +mypy_extensions==1.1.0 +netaddr==1.3.0 +outcome==1.3.0.post0 +packaging==25.0 +pathspec==1.0.3 +pluggy==1.6.0 +plyer==2.1.0 +portalocker==3.2.0 +protobuf==6.33.4 +psutil==7.2.1 +py-cid==0.4.0 +py-multibase==2.0.0 +py-multicodec==1.0.0 +py-multihash==3.0.0 +py-strict-typing==0.1.1 +pycparser==2.23 +pycryptodome==3.23.0 +pydantic==2.12.5 +pydantic_core==2.41.5 +pytest==9.0.2 +python-baseconv==1.2.2 +python-dotenv==1.2.1 +pyzbar==0.1.9 +pyzmq==27.1.0 +qrcode==8.2 +requests==2.32.5 +rfc3987==1.3.8 +setuptools==80.9.0 +six==1.17.0 +sniffio==1.3.1 +sortedcontainers==2.4.0 +termcolor==3.3.0 +toolz==1.1.0 +tqdm==4.67.1 +trio-typing==0.10.0 +trio==0.32.0 +typing-inspect==0.9.0 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +urllib3==2.6.3 +varint==1.0.2 +walytis_beta==2.4.34 +walytis_beta_api==2.4.16 +walytis_beta_embedded==0.0.14 +walytis_identities==0.5.0 +walytis_mutability==0.1.7 +walytis_offchain==0.5.1 +wheel==0.45.1 +zipp==3.23.0 From ee89cb13d8e2f0a2dc82a404286a31817bd802cb Mon Sep 17 00:00:00 2001 From: CherryNate Date: Fri, 16 Jan 2026 16:46:50 +0100 Subject: [PATCH 2/2] Build: MacOS x86_64 --- .../macos/x86_64/requirements-auto.txt | 97 +++++++++++++++++++ 1 file changed, 97 insertions(+) diff --git a/packaging/pyinstaller/macos/x86_64/requirements-auto.txt b/packaging/pyinstaller/macos/x86_64/requirements-auto.txt index fa8dd08..25b4e79 100644 --- a/packaging/pyinstaller/macos/x86_64/requirements-auto.txt +++ b/packaging/pyinstaller/macos/x86_64/requirements-auto.txt @@ -1,2 +1,99 @@ # Auto-generated requirements for macOS # This file will be generated by get_python_deps.sh +Kivy-Garden==0.1.5 +Kivy==2.3.1 +Pygments==2.19.2 +annotated-types==0.7.0 +anyio==4.12.1 +appdirs==1.4.4 +async-generator==1.10 +attrs==25.4.0 +base58==2.1.1 +blake3==1.0.8 +brenthy_tools_beta==4.0.11 +cachetools==6.2.4 +certifi==2026.1.4 +cffi==2.0.0 +charset-normalizer==3.4.4 +codec-versioning==0.1.0 +coincurve==21.0.0 +cytoolz==1.1.0 +dataclasses-json==0.6.7 +decorate-all==0.1.1 +dnspython==2.8.0 +docutils==0.22.4 +eciespy==0.4.6 +emtest==0.0.8 +endra==0.6.5 +environs==14.5.0 +eth-hash==0.7.1 +eth-keys==0.7.0 +eth-typing==5.2.1 +eth-utils==5.3.1 +filetype==1.2.0 +h11==0.16.0 +httpcore==1.0.9 +httpx==0.28.1 +idna==3.11 +importlib_metadata==8.7.1 +iniconfig==2.3.0 +ipfs_node==0.1.12rc6 +ipfs_tk==0.1.11 +ipfs_toolkit==0.6.0rc8 +kivy-garden.qrcode==2021.314 +liboqs-python==0.14.1 +loguru==0.7.3 +marshmallow==3.26.2 +mmh3==5.2.0 +morphys==1.0 +multi_crypt==0.1.3 +multiaddr==0.1.1 +mypy_extensions==1.1.0 +netaddr==1.3.0 +outcome==1.3.0.post0 +packaging==25.0 +pathspec==1.0.3 +pluggy==1.6.0 +plyer==2.1.0 +portalocker==3.2.0 +protobuf==6.33.4 +psutil==7.2.1 +py-cid==0.4.0 +py-multibase==2.0.0 +py-multicodec==1.0.0 +py-multihash==3.0.0 +py-strict-typing==0.1.1 +pycparser==2.23 +pycryptodome==3.23.0 +pydantic==2.12.5 +pydantic_core==2.41.5 +pytest==9.0.2 +python-baseconv==1.2.2 +python-dotenv==1.2.1 +pyzbar==0.1.9 +pyzmq==27.1.0 +qrcode==8.2 +requests==2.32.5 +rfc3987==1.3.8 +setuptools==80.9.0 +six==1.17.0 +sniffio==1.3.1 +sortedcontainers==2.4.0 +termcolor==3.3.0 +toolz==1.1.0 +tqdm==4.67.1 +trio-typing==0.10.0 +trio==0.32.0 +typing-inspect==0.9.0 +typing-inspection==0.4.2 +typing_extensions==4.15.0 +urllib3==2.6.3 +varint==1.0.2 +walytis_beta==2.4.34 +walytis_beta_api==2.4.16 +walytis_beta_embedded==0.0.14 +walytis_identities==0.5.0 +walytis_mutability==0.1.7 +walytis_offchain==0.5.1 +wheel==0.45.1 +zipp==3.23.0