Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fb6b37bade | ||
|
|
429c772e4a | ||
|
|
d843716e8b |
@@ -63,6 +63,15 @@ jobs:
|
|||||||
echo "SHORT_SHA=${SHORT_SHA}" >> $GITHUB_ENV
|
echo "SHORT_SHA=${SHORT_SHA}" >> $GITHUB_ENV
|
||||||
mv Argyll_V*_win64_exe.zip "Argyll_${TAG}_${SHORT_SHA}_win64_exe.zip"
|
mv Argyll_V*_win64_exe.zip "Argyll_${TAG}_${SHORT_SHA}_win64_exe.zip"
|
||||||
|
|
||||||
|
- name: Verify Package Contents
|
||||||
|
run: |
|
||||||
|
ZIP_FILE=$(ls Argyll_*_win64_exe.zip)
|
||||||
|
echo "Verifying contents of ${ZIP_FILE}..."
|
||||||
|
unzip -l "${ZIP_FILE}" | grep "usb/ArgyllCMS.inf"
|
||||||
|
unzip -l "${ZIP_FILE}" | grep "usb/bin/amd64/libusb0.sys"
|
||||||
|
unzip -l "${ZIP_FILE}" | grep "doc/ArgyllDoc.html"
|
||||||
|
unzip -l "${ZIP_FILE}" | grep "ReadMe.txt"
|
||||||
|
|
||||||
- name: Upload Artifact
|
- name: Upload Artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -65,6 +65,15 @@ jobs:
|
|||||||
echo "SHORT_SHA=${SHORT_SHA}" >> $GITHUB_ENV
|
echo "SHORT_SHA=${SHORT_SHA}" >> $GITHUB_ENV
|
||||||
mv Argyll_V*_win64_exe.zip "Argyll_${TAG}_${SHORT_SHA}_win64_exe.zip"
|
mv Argyll_V*_win64_exe.zip "Argyll_${TAG}_${SHORT_SHA}_win64_exe.zip"
|
||||||
|
|
||||||
|
- name: Verify Package Contents
|
||||||
|
run: |
|
||||||
|
ZIP_FILE=$(ls Argyll_*_win64_exe.zip)
|
||||||
|
echo "Verifying contents of ${ZIP_FILE}..."
|
||||||
|
unzip -l "${ZIP_FILE}" | grep "usb/ArgyllCMS.inf"
|
||||||
|
unzip -l "${ZIP_FILE}" | grep "usb/bin/amd64/libusb0.sys"
|
||||||
|
unzip -l "${ZIP_FILE}" | grep "doc/ArgyllDoc.html"
|
||||||
|
unzip -l "${ZIP_FILE}" | grep "ReadMe.txt"
|
||||||
|
|
||||||
- name: Upload Artifact
|
- name: Upload Artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
<h1>[V3.4.1 -> V3.5.0] 4th February 2026<br>
|
<h1>[V3.4.1 -> V3.5.0] 4th February 2026<br>
|
||||||
</h1>
|
</h1>
|
||||||
<ul>
|
<ul>
|
||||||
|
<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>
|
||||||
<li>Added Mac ARM release.</li>
|
<li>Added Mac ARM release.</li>
|
||||||
|
|||||||
+16
-8
@@ -167,13 +167,21 @@ fi
|
|||||||
rm -rf $TOPDIR
|
rm -rf $TOPDIR
|
||||||
mkdir $TOPDIR
|
mkdir $TOPDIR
|
||||||
|
|
||||||
|
# Ensure catalog copies exist if needed for Windows packaging
|
||||||
|
if [ -d usb ] ; then
|
||||||
|
if [ -f usb/ArgyllCMS.cat ] ; then
|
||||||
|
[ ! -f usb/ArgyllCMS_x64.cat ] && cp usb/ArgyllCMS.cat usb/ArgyllCMS_x64.cat
|
||||||
|
[ ! -f usb/ArgyllCMS_arm64.cat ] && cp usb/ArgyllCMS.cat usb/ArgyllCMS_arm64.cat
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Collect the names of all the files that we're going to package
|
# Collect the names of all the files that we're going to package
|
||||||
unset topfiles; for i in `cat binfiles`; do topfiles="$topfiles ${i}"; done
|
unset topfiles; for i in `tr -d '\r' < binfiles`; do topfiles="$topfiles ${i}"; done
|
||||||
unset docfiles; for i in `cat doc/afiles`; do docfiles="$docfiles doc/${i}"; done
|
unset docfiles; for i in `tr -d '\r' < doc/afiles`; do docfiles="$docfiles doc/${i}"; done
|
||||||
unset usbfiles;
|
unset usbfiles;
|
||||||
for j in ${USBDIRS}; do
|
for j in ${USBDIRS}; do
|
||||||
if [ ${j} ]; then
|
if [ ${j} ]; then
|
||||||
for i in `cat ${j}/${USBBINFILES}`; do usbfiles="$usbfiles ${j}/${i}"; done
|
for i in `tr -d '\r' < ${j}/${USBBINFILES}`; do usbfiles="$usbfiles ${j}/${i}"; done
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -183,16 +191,16 @@ allfiles="${topfiles} bin/* ref/* ${docfiles} ${usbfiles}"
|
|||||||
for i in ${allfiles}; do
|
for i in ${allfiles}; do
|
||||||
path=${i%/*} # extract path without filename
|
path=${i%/*} # extract path without filename
|
||||||
file=${i##*/} # extract filename
|
file=${i##*/} # extract filename
|
||||||
if [ $path = $i ] ; then
|
if [ "$path" = "$i" ] ; then
|
||||||
path=
|
path=
|
||||||
fi
|
fi
|
||||||
if [ X$path != "X" ] ; then
|
if [ X"$path" != "X" ] ; then
|
||||||
mkdir -p $TOPDIR/${path}
|
mkdir -p "$TOPDIR/${path}"
|
||||||
fi
|
fi
|
||||||
if [ X${file} = "Xafiles" ] ; then
|
if [ X"${file}" = "Xafiles" ] ; then
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
cp $i $TOPDIR/$i
|
cp "$i" "$TOPDIR/$i" || { echo "Failed to copy $i to $TOPDIR/$i"; exit 1; }
|
||||||
done
|
done
|
||||||
|
|
||||||
# Create the package
|
# Create the package
|
||||||
|
|||||||
+13
-12
@@ -203,36 +203,37 @@ static int con_char(int wait) {
|
|||||||
/* We assume pipe has been set to NOWAIT mode. */
|
/* We assume pipe has been set to NOWAIT mode. */
|
||||||
} else if (stdin_type == FILE_TYPE_PIPE) {
|
} else if (stdin_type == FILE_TYPE_PIPE) {
|
||||||
int i, bib;
|
int i, bib;
|
||||||
//fprintf(stderr,"~1 top of pipe\n");
|
DWORD bytes_avail = 0;
|
||||||
|
|
||||||
|
/* Check available bytes in pipe before blocking */
|
||||||
|
if (!PeekNamedPipe(stdinh, NULL, 0, NULL, &bytes_avail, NULL) || bytes_avail == 0) {
|
||||||
|
if (!wait) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (bib = 0; bib < 10;) {
|
for (bib = 0; bib < 10;) {
|
||||||
//fprintf(stderr,"~1 got %d in buf\n",bib);
|
if (!wait) {
|
||||||
|
if (!PeekNamedPipe(stdinh, NULL, 0, NULL, &bytes_avail, NULL) || bytes_avail == 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
if ((!ReadFile(stdinh, buf + bib, 10 - bib, &bread, NULL) || bread == 0)
|
if ((!ReadFile(stdinh, buf + bib, 10 - bib, &bread, NULL) || bread == 0)
|
||||||
&& !wait) {
|
&& !wait) {
|
||||||
//fprintf(stderr,"~1 no chars waiting\n");
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
bib += bread;
|
bib += bread;
|
||||||
|
|
||||||
for (i = 0; i < bib; i++) {
|
for (i = 0; i < bib; i++) {
|
||||||
if (buf[i] == '\n' || buf[i] == '\r' || buf[i] == 0x3) {
|
if (buf[i] == '\n' || buf[i] == '\r' || buf[i] == 0x3) {
|
||||||
//fprintf(stderr,"~1 found lf at ix %d\n",i);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (i < bib) {
|
if (i < bib) {
|
||||||
//fprintf(stderr,"~1 found lf\n");
|
|
||||||
break; /* Found '\n' */
|
break; /* Found '\n' */
|
||||||
}
|
}
|
||||||
Sleep(100); /* Wait for a line ending in '\n' */
|
Sleep(100); /* Wait for a line ending in '\n' */
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (bread > 0) {
|
|
||||||
//fprintf(stderr,"~1 read %d: ",bread);
|
|
||||||
//for (i = 0; i < bread; i++)
|
|
||||||
//fprintf(stderr," 0x%x",buf[i]);
|
|
||||||
//fprintf(stderr,"\n//");
|
|
||||||
//}
|
|
||||||
rv = buf[0];
|
rv = buf[0];
|
||||||
|
|
||||||
/* Assume a file. This will have very limited functionality. */
|
/* Assume a file. This will have very limited functionality. */
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user