Try again with Qt install on Rocky

This commit is contained in:
Thomas Krijnen
2026-05-10 13:44:58 +02:00
parent cd612dc988
commit 05e328339f
4 changed files with 76 additions and 2 deletions
+37 -1
View File
@@ -2,6 +2,12 @@ name: Build IfcOpenShell Linux
on:
workflow_dispatch:
inputs:
check_runtime_deps:
description: Run ldd checks before packaging
required: false
default: false
type: boolean
jobs:
build_ifcopenshell:
@@ -17,7 +23,7 @@ jobs:
bzip2 patch mesa-libGL-devel libffi-devel fontconfig-devel \
sqlite-devel bzip2-devel zlib-devel openssl-devel xz-devel \
readline-devel ncurses-devel libffi-devel libuuid-devel git-lfs \
findutils xz byacc patchelf
findutils xz byacc patchelf libxkbcommon-devel
python3 -m pip install typing_extensions aqtinstall
git config --global --add safe.directory '*'
@@ -84,6 +90,9 @@ jobs:
git push || true
- name: Package .zip archives
shell: bash
env:
IFCOPENSHELL_CHECK_RUNTIME_DEPS: ${{ inputs.check_runtime_deps }}
run: |
VERSION=v`cat VERSION`
cd ./build/`uname`/*/install/ifcopenshell
@@ -140,6 +149,32 @@ jobs:
printf "[Paths]\nPrefix = .\n" > "$dest/qt.conf"
}
check_runtime_dependencies() {
case "${IFCOPENSHELL_CHECK_RUNTIME_DEPS:-false}" in
1|true|TRUE|yes|YES|on|ON) ;;
*) return 0 ;;
esac
package_dir="$1"
missing=0
while IFS= read -r binary_file; do
readelf -h "$binary_file" >/dev/null 2>&1 || continue
if ! LD_LIBRARY_PATH="$package_dir:${QT_DIR:+$QT_DIR/lib:}${LD_LIBRARY_PATH:-}" ldd "$binary_file" > "$package_dir/.ldd.out" 2>&1; then
echo "ldd failed for $binary_file"
cat "$package_dir/.ldd.out"
missing=1
continue
fi
if grep -q "not found" "$package_dir/.ldd.out"; then
echo "Missing runtime dependencies for $binary_file"
grep "not found" "$package_dir/.ldd.out"
missing=1
fi
done < <(find "$package_dir" -type f \( -perm /111 -o -name "*.so" -o -name "*.so.*" \))
rm -f "$package_dir/.ldd.out"
return "$missing"
}
ls -d python-* | while read py_version; do
postfix=`echo ${py_version: -1} | sed s/[0-9]//`
numbers=`echo $py_version | grep -oE '[0-9]+\.[0-9]+' | tr -d '.'`
@@ -168,6 +203,7 @@ jobs:
patchelf --set-rpath '$ORIGIN' "$package_dir/$exe"
stage_runtime_payload "$package_dir"
stage_qt_runtime_payload "$exe_path" "$package_dir"
check_runtime_dependencies "$package_dir"
pushd "$package_dir" > /dev/null
zip -qq -r "$HOME/output/${exe}-${VERSION}-${GITHUB_SHA:0:7}-linux64.zip" .
popd > /dev/null
+37 -1
View File
@@ -2,6 +2,12 @@ name: Build IfcOpenShell Linux ARM
on:
workflow_dispatch:
inputs:
check_runtime_deps:
description: Run ldd checks before packaging
required: false
default: false
type: boolean
jobs:
build_ifcopenshell:
@@ -17,7 +23,7 @@ jobs:
bzip2 patch mesa-libGL-devel libffi-devel fontconfig-devel \
sqlite-devel bzip2-devel zlib-devel openssl-devel xz-devel \
readline-devel ncurses-devel libffi-devel libuuid-devel git-lfs \
findutils xz byacc patchelf
findutils xz byacc patchelf libxkbcommon-devel
python3 -m pip install typing_extensions aqtinstall
git config --global --add safe.directory '*'
@@ -84,6 +90,9 @@ jobs:
git push || true
- name: Package .zip archives
shell: bash
env:
IFCOPENSHELL_CHECK_RUNTIME_DEPS: ${{ inputs.check_runtime_deps }}
run: |
VERSION=v`cat VERSION`
cd ./build/`uname`/*/install/ifcopenshell
@@ -140,6 +149,32 @@ jobs:
printf "[Paths]\nPrefix = .\n" > "$dest/qt.conf"
}
check_runtime_dependencies() {
case "${IFCOPENSHELL_CHECK_RUNTIME_DEPS:-false}" in
1|true|TRUE|yes|YES|on|ON) ;;
*) return 0 ;;
esac
package_dir="$1"
missing=0
while IFS= read -r binary_file; do
readelf -h "$binary_file" >/dev/null 2>&1 || continue
if ! LD_LIBRARY_PATH="$package_dir:${QT_DIR:+$QT_DIR/lib:}${LD_LIBRARY_PATH:-}" ldd "$binary_file" > "$package_dir/.ldd.out" 2>&1; then
echo "ldd failed for $binary_file"
cat "$package_dir/.ldd.out"
missing=1
continue
fi
if grep -q "not found" "$package_dir/.ldd.out"; then
echo "Missing runtime dependencies for $binary_file"
grep "not found" "$package_dir/.ldd.out"
missing=1
fi
done < <(find "$package_dir" -type f \( -perm /111 -o -name "*.so" -o -name "*.so.*" \))
rm -f "$package_dir/.ldd.out"
return "$missing"
}
ls -d python-* | while read py_version; do
postfix=`echo ${py_version: -1} | sed s/[0-9]//`
numbers=`echo $py_version | grep -oE '[0-9]+\.[0-9]+' | tr -d '.'`
@@ -169,6 +204,7 @@ jobs:
patchelf --set-rpath '$ORIGIN' "$package_dir/$exe"
stage_runtime_payload "$package_dir"
stage_qt_runtime_payload "$exe_path" "$package_dir"
check_runtime_dependencies "$package_dir"
pushd "$package_dir" > /dev/null
zip -qq -r "$HOME/output/${exe}-${VERSION}-${GITHUB_SHA:0:7}-linuxarm64.zip" .
popd > /dev/null
+1
View File
@@ -823,6 +823,7 @@ def install_qt6() -> str:
"-O",
str(qt_install_root),
"--archives",
"icu",
"qtbase",
]
)
+1
View File
@@ -20,6 +20,7 @@
#ifndef IFCVIEWER_FULL_MEASUREMENT_H
#define IFCVIEWER_FULL_MEASUREMENT_H
#include <cstddef>
#include <cstdint>
#include <unordered_map>
#include <vector>