From cb94be5b3c9cbae007429d5fa7ea50ccf38c1da6 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sat, 20 Apr 2024 17:30:35 +0200 Subject: [PATCH 1/3] Post-release updates --- setup/macos/build.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/setup/macos/build.sh b/setup/macos/build.sh index 1ffca83f..6f70a515 100755 --- a/setup/macos/build.sh +++ b/setup/macos/build.sh @@ -123,7 +123,7 @@ cp $SRC_DIR/setup/macos/novelwriter.icns novelWriter.app/Contents/Resources/ # Create entry script echo "Creating entry script ..." -cat > novelWriter.app/Contents/MacOS/novelWriter <<\EOF +cat > novelWriter.app/Contents/MacOS/novelWriter << EOF #!/bin/bash DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" $DIR/../Resources/bin/python -sE $DIR/../Resources/novelWriter/novelWriter.py $@ @@ -173,8 +173,8 @@ brew install create-dmg create-dmg --volname "novelWriter $VERSION" --volicon $SRC_DIR/setup/macos/novelwriter.icns \ --window-pos 200 120 --window-size 800 400 --icon-size 100 \ --icon novelWriter.app 200 190 --hide-extension novelWriter.app \ - --app-drop-link 600 185 $RLS_DIR/novelWriter-"${VERSION}".dmg "$BUILD_DIR"/ + --app-drop-link 600 185 $RLS_DIR/novelWriter-"${VERSION}"-amd64.dmg "$BUILD_DIR"/ pushd $RLS_DIR || exit 1 -shasum -a 256 novelWriter-"${VERSION}".dmg | tee novelWriter-"${VERSION}".dmg.sha256 +shasum -a 256 novelWriter-"${VERSION}"-amd64.dmg | tee novelWriter-"${VERSION}"-amd64.dmg.sha256 popd || exit 1 From 4d153b8d9929357b2ece1959d9cd32345b9acf7d Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sun, 21 Apr 2024 13:14:38 +0200 Subject: [PATCH 2/3] Backport ARM build for MacOS from 2.5 branch --- .github/workflows/build.yml | 47 +++++++++++++++++++++++++++++++------ setup/macos/build.sh | 29 ++++++++++++++++------- 2 files changed, 61 insertions(+), 15 deletions(-) mode change 100755 => 100644 setup/macos/build.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 492bb5f4..e6a4b254 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,7 +9,7 @@ jobs: - name: Python Setup uses: actions/setup-python@v5 with: - python-version: "3.11" + python-version: "3.12" architecture: x64 - name: Install Packages (apt) @@ -35,7 +35,7 @@ jobs: novelwriter/assets/manual.pdf novelwriter/assets/i18n/*.qm if-no-files-found: error - retention-days: 1 + retention-days: 14 buildLinux: needs: buildAssets @@ -72,11 +72,16 @@ jobs: name: AppImage-${{ matrix.python-version }}-${{ matrix.linux-tag }} path: dist_appimage if-no-files-found: error - retention-days: 1 + retention-days: 14 - buildMac: + buildMac-AMD64: needs: buildAssets + # Stay on macos-12 due to https://github.com/create-dmg/create-dmg/issues/143 runs-on: macos-12 + env: + PYTHON_VERSION: "3.12" + PACKAGE_ARCH: x86_64 + MINICONDA_ARCH: x86_64 steps: - name: Checkout uses: actions/checkout@v4 @@ -88,12 +93,40 @@ jobs: path: novelwriter/assets - name: Build App Bundle - run: ./setup/macos/build.sh + run: ./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH - name: Upload DMG uses: actions/upload-artifact@v4 with: - name: MacOS-DMG + name: MacOS-AMD64-DMG path: dist_macos if-no-files-found: error - retention-days: 1 + retention-days: 14 + + buildMac-M1: + needs: buildAssets + runs-on: macos-14 + env: + PYTHON_VERSION: "3.12" + PACKAGE_ARCH: aarch64 + MINICONDA_ARCH: arm64 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Download Artifacts + uses: actions/download-artifact@v4 + with: + name: nw-assets + path: novelwriter/assets + + - name: Build App Bundle + run: ./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH + + - name: Upload DMG + uses: actions/upload-artifact@v4 + with: + name: MacOS-M1-DMG + path: dist_macos + if-no-files-found: error + retention-days: 14 diff --git a/setup/macos/build.sh b/setup/macos/build.sh old mode 100755 new mode 100644 index 6f70a515..e57b3f8d --- a/setup/macos/build.sh +++ b/setup/macos/build.sh @@ -1,5 +1,18 @@ #! /bin/bash +if [[ -z "$1" || -z "$2" || -z "$3" ]]; then + echo "Not enouch input arguments" + exit 1 +fi + +PYTHON="$1" +ARCH="$2" +CONDA="$3" + +echo "Python Version: $PYTHON" +echo "Architecture: $ARCH" +echo "Miniconda Architecture: $CONDA" + # Use RAM disk if possible if [ -d /dev/shm ]; then TEMP_BASE=/dev/shm @@ -76,13 +89,13 @@ pushd "$BUILD_DIR"/ || exit 1 # --- Create Miniconda Env ---------------------------------------------------------------------- # echo "Downloading Miniconda ..." -curl -LO https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -bash Miniconda3-latest-MacOSX-x86_64.sh -b -p ~/miniconda -f -rm Miniconda3-latest-MacOSX-x86_64.sh +curl -LO https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-$CONDA.sh +bash Miniconda3-latest-MacOSX-$CONDA.sh -b -p ~/miniconda -f +rm Miniconda3-latest-MacOSX-$CONDA.sh export PATH="$HOME/miniconda/bin:$PATH" echo "Creating Conda env ..." -conda create -n novelWriter -c conda-forge python=3.11 --yes +conda create -n novelWriter -c conda-forge python=$PYTHON --yes source activate novelWriter echo "Installing dictionaries ..." @@ -125,8 +138,8 @@ cp $SRC_DIR/setup/macos/novelwriter.icns novelWriter.app/Contents/Resources/ echo "Creating entry script ..." cat > novelWriter.app/Contents/MacOS/novelWriter << EOF #!/bin/bash -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -$DIR/../Resources/bin/python -sE $DIR/../Resources/novelWriter/novelWriter.py $@ +DIR="\$( cd "\$( dirname "\${BASH_SOURCE[0]}" )" && pwd )" +\$DIR/../Resources/bin/python -sE \$DIR/../Resources/novelWriter/novelWriter.py \$@ EOF # Make it executable @@ -173,8 +186,8 @@ brew install create-dmg create-dmg --volname "novelWriter $VERSION" --volicon $SRC_DIR/setup/macos/novelwriter.icns \ --window-pos 200 120 --window-size 800 400 --icon-size 100 \ --icon novelWriter.app 200 190 --hide-extension novelWriter.app \ - --app-drop-link 600 185 $RLS_DIR/novelWriter-"${VERSION}"-amd64.dmg "$BUILD_DIR"/ + --app-drop-link 600 185 $RLS_DIR/novelWriter-"${VERSION}"-$ARCH.dmg "$BUILD_DIR"/ pushd $RLS_DIR || exit 1 -shasum -a 256 novelWriter-"${VERSION}"-amd64.dmg | tee novelWriter-"${VERSION}"-amd64.dmg.sha256 +shasum -a 256 novelWriter-"${VERSION}"-$ARCH.dmg | tee novelWriter-"${VERSION}"-$ARCH.dmg.sha256 popd || exit 1 From d3c9168ebf48b9f6e3b337f03af2e3c0f6631d42 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Sun, 21 Apr 2024 13:17:55 +0200 Subject: [PATCH 3/3] Make MacOS build script executable --- setup/macos/build.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 setup/macos/build.sh diff --git a/setup/macos/build.sh b/setup/macos/build.sh old mode 100644 new mode 100755