Compare commits

...
Author SHA1 Message Date
gronod e0f86eec29 Merge development into main (v3.5.0-ICCery.1.4)
Linux x86_64 Release Build / build (push) Successful in 9m37s
Windows x86_64 Release Build / build (push) Successful in 9m38s
Merge pull request 'Merge development into main (v3.5.0-ICCery.1.4)' (#31) from development into main
2026-09-01 00:16:56 +01:00
gronod c196912bed Fix: Handle non-Mach-O files during macOS universal binary lipo assembly
Merge pull request 'Fix: Handle non-Mach-O files during macOS universal binary lipo assembly' (#30) from fix/macos-universal-non-macho-lipo into development
2026-09-01 00:16:49 +01:00
gronod ebbc675297 fix(ci): handle non-Mach-O files like metainfo.xml during universal lipo assembly 2026-09-01 00:16:11 +01:00
gronod 21d59d891c Merge development into main (v3.5.0-ICCery.1.3)
Windows x86_64 Release Build / build (push) Failing after 1m12s
Linux x86_64 Release Build / build (push) Successful in 8m34s
Merge pull request 'Merge development into main (v3.5.0-ICCery.1.3)' (#29) from development into main
2026-09-01 00:03:47 +01:00
gronod 7b3ebf4c87 Feature: Build and publish macOS Universal Binary release archive
Merge pull request 'Feature: Build and publish macOS Universal Binary release archive' (#28) from feature/issue-27-macos-universal-binaries into development
2026-09-01 00:03:36 +01:00
gronod cc61e2aa4c feat(ci): build and publish macOS universal binary release archive (fixes #27) 2026-09-01 00:02:53 +01:00
gronod a07a5d638d Merge pull request 'Merge development into main (v3.5.0-ICCery.1.2)' (#26) from development into main
Windows x86_64 Release Build / build (push) Successful in 9m11s
Linux x86_64 Release Build / build (push) Successful in 9m26s
Merge pull request #26 from development into main
2026-08-29 14:39:39 +01:00
gronod 5b75dd4284 Merge pull request 'Fix: Use PeekNamedPipe to prevent blocking ReadFile on anonymous stdin pipes' (#25) from fix/win32-pipe-peek-named-pipe into development
Merge pull request #25 from fix/win32-pipe-peek-named-pipe into development
2026-08-29 14:39:29 +01:00
gronod b02df94744 Merge pull request 'Merge development into main (v3.5.0-ICCery.1.1)' (#23) from development into main
Windows x86_64 Release Build / build (push) Successful in 9m34s
Linux x86_64 Release Build / build (push) Successful in 9m41s
Merge pull request #23 from development into main
2026-08-28 20:23:45 +01:00
gronod fe0230b3d5 Merge branch 'development' into main
Windows x86_64 Release Build / build (push) Successful in 7m43s
Linux x86_64 Release Build / build (push) Successful in 10m3s
2026-08-26 01:11:26 +01:00
gronod 885fa3fee8 Merge pull request 'Development' (#18) from development into main
Windows x86_64 Release Build / build (push) Has been cancelled
Linux x86_64 Release Build / build (push) Has been cancelled
Reviewed-on: #18
2026-08-26 01:02:30 +01:00
3 changed files with 123 additions and 15 deletions
+98
View File
@@ -64,6 +64,12 @@ jobs:
echo "SHORT_SHA=${SHORT_SHA}" >> $GITHUB_ENV echo "SHORT_SHA=${SHORT_SHA}" >> $GITHUB_ENV
mv Argyll_V*_${{ matrix.artifact }}.tgz "Argyll_${TAG}_${SHORT_SHA}_${{ matrix.artifact }}.tgz" mv Argyll_V*_${{ matrix.artifact }}.tgz "Argyll_${TAG}_${SHORT_SHA}_${{ matrix.artifact }}.tgz"
- name: Upload Raw Binaries
uses: actions/upload-artifact@v4
with:
name: raw-bin-${{ matrix.arch }}
path: bin/
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
@@ -77,3 +83,95 @@ jobs:
name: Release ${{ github.ref_name }} name: Release ${{ github.ref_name }}
body: "Release ${{ github.ref_name }} built from commit ${{ github.sha }}" body: "Release ${{ github.ref_name }} built from commit ${{ github.sha }}"
files: Argyll_*_${{ matrix.artifact }}.tgz files: Argyll_*_${{ matrix.artifact }}.tgz
universal:
needs: build
runs-on: macos-15
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download x86_64 binaries
uses: actions/download-artifact@v4
with:
name: raw-bin-x86_64
path: raw-bin-x86_64
- name: Download arm64 binaries
uses: actions/download-artifact@v4
with:
name: raw-bin-arm64
path: raw-bin-arm64
- name: Create Universal Binaries
run: |
mkdir -p bin
for file in raw-bin-arm64/*; do
bin_name=$(basename "$file")
if [ -f "raw-bin-x86_64/$bin_name" ]; then
if file "raw-bin-arm64/$bin_name" | grep -q "Mach-O" && file "raw-bin-x86_64/$bin_name" | grep -q "Mach-O"; then
echo "Creating universal binary with lipo: $bin_name"
lipo -create "raw-bin-x86_64/$bin_name" "raw-bin-arm64/$bin_name" -output "bin/$bin_name"
chmod +x "bin/$bin_name"
else
echo "Non Mach-O file, copying directly: $bin_name"
cp "$file" "bin/$bin_name"
fi
else
echo "Warning: $bin_name not found in raw-bin-x86_64, copying arm64 version"
cp "$file" "bin/$bin_name"
fi
done
for file in raw-bin-x86_64/*; do
bin_name=$(basename "$file")
if [ ! -f "bin/$bin_name" ]; then
echo "Warning: $bin_name only found in raw-bin-x86_64, copying x86_64 version"
cp "$file" "bin/$bin_name"
fi
done
- name: Verify Architecture & Smoke Tests
env:
ARGYLL_NOT_INTERACTIVE: "1"
ARGYLL_EXCLUDE_SERIAL_SCAN: "1"
run: |
echo "=== Binary Architecture Verification ==="
for file in bin/*; do
if [ -f "$file" ]; then
file "$file"
fi
done
echo "=== Smoke Tests ==="
./bin/dispcal -? || true
./bin/chartread -? || true
./bin/colprof -? || true
./bin/targen -? || true
- name: Package Universal Release
run: |
export OSTYPE=darwin
export MACHTYPE=universal-apple-darwin
export HOSTTYPE=universal
export NO_BUILD=1
./makepackagebin.sh
TAG="${{ github.ref_name }}"
SHORT_SHA="$(git rev-parse --short HEAD)"
echo "SHORT_SHA=${SHORT_SHA}" >> $GITHUB_ENV
mv Argyll_V*_macOS_universal_bin.tgz "Argyll_${TAG}_${SHORT_SHA}_macOS_universal_bin.tgz"
- name: Upload Universal Artifact
uses: actions/upload-artifact@v4
with:
name: Argyll_${{ github.ref_name }}_${{ env.SHORT_SHA }}_macOS_universal_bin
path: Argyll_*_macOS_universal_bin.tgz
- name: Upload Universal Release Asset
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
name: Release ${{ github.ref_name }}
body: "Release ${{ github.ref_name }} built from commit ${{ github.sha }}"
files: Argyll_*_macOS_universal_bin.tgz
+1
View File
@@ -19,6 +19,7 @@
<h1>[V3.4.1 -&gt; V3.5.0] 4th February 2026<br> <h1>[V3.4.1 -&gt; V3.5.0] 4th February 2026<br>
</h1> </h1>
<ul> <ul>
<li>Added macOS Universal Binary release archive (Intel x86_64 + Apple Silicon arm64).</li>
<li>Fixed non-blocking stdin polling deadlock on MSWindows anonymous pipes when running interactive measurement tools in subprocess mode.</li> <li>Fixed non-blocking stdin polling deadlock on MSWindows anonymous pipes when running interactive measurement tools in subprocess mode.</li>
<li>Added -d switch to printtarg to allow custom chart label strings or omit labelling entirely.</li> <li>Added -d switch to printtarg to allow custom chart label strings or omit labelling entirely.</li>
<li>Added MSWindows ARM release.</li> <li>Added MSWindows ARM release.</li>
+9
View File
@@ -113,6 +113,13 @@ else if [ "${OSTYPE#*darwin*}" != "$OSTYPE" ] ; then
echo "We're on MacOS arm64!" echo "We're on MacOS arm64!"
PACKAGE=${PRODUCT}_V${VERSION}_macOS_arm64_bin.tgz PACKAGE=${PRODUCT}_V${VERSION}_macOS_arm64_bin.tgz
export MACOSX_DEPLOYMENT_TARGET="11.0" # Minimum target platform version export MACOSX_DEPLOYMENT_TARGET="11.0" # Minimum target platform version
else if [ X$HOSTTYPE = "Xuniversal" \
-o X$MACHTYPE = "Xuniversal-apple-darwin" \
-o X$COMPILER = "XUNIVERSAL" ] ; then
echo "We're on MacOS Universal!"
PACKAGE=${PRODUCT}_V${VERSION}_macOS_universal_bin.tgz
export MACOSX_DEPLOYMENT_TARGET="10.15" # Minimum target platform version
fi
fi fi
fi fi
fi fi
@@ -145,6 +152,7 @@ fi
echo "Making GNU $PRODUCT binary distribution $PACKAGE for Version $VERSION" echo "Making GNU $PRODUCT binary distribution $PACKAGE for Version $VERSION"
if [ X$NO_BUILD = "X" ] ; then
# Clean up so we get a solid build # Clean up so we get a solid build
# .sp come from profile, .cht from scanin and .ti3 from spectro # .sp come from profile, .cht from scanin and .ti3 from spectro
rm -f bin/*.exe bin/*.dll rm -f bin/*.exe bin/*.dll
@@ -163,6 +171,7 @@ if ! jam -q -fJambase -j${NUMBER_OF_PROCESSORS:-1} -sBUILTIN_TIFF=true -sBUILTIN
echo "Build failed!" echo "Build failed!"
exit 1 exit 1
fi fi
fi
rm -rf $TOPDIR rm -rf $TOPDIR
mkdir $TOPDIR mkdir $TOPDIR