Skip to content

Build on mac#9

Closed
bas524 wants to merge 27 commits into
masterfrom
build-on-mac
Closed

Build on mac#9
bas524 wants to merge 27 commits into
masterfrom
build-on-mac

Conversation

@bas524
Copy link
Copy Markdown
Owner

@bas524 bas524 commented Oct 12, 2024

Fix build on mac os
Disable fedora builds on non-x86 platforms

bas524 and others added 27 commits October 7, 2024 22:33
Documents build commands, architecture, and code style in CLAUDE.md.
Adds 9 task files under tasks/ covering threading safety, debug logging,
widget update batching, and other performance/correctness improvements.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Worker threads now only perform CPU-bound work (demangling, rule
application, filter check) and collect results into a std::vector.
The QListWidget is populated exclusively on the main thread after
all async work completes. Also adds setUpdatesEnabled batching,
removes the toStdString() heap allocation, and guards against
lines with fewer than 3 tokens.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Use ln -sf so the lib symlink is replaced rather than erroring when
it already exists from a previous build.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
macdeployqt copies Homebrew dylibs (libjpeg, libtiff, etc.) into the
bundle without signing them. macOS 15+ kills the process at launch with
CODESIGNING / Invalid Page when dyld tries to map an unsigned dylib page.

Adding a codesign --force --deep --sign - step after macdeployqt applies
an ad-hoc signature to the entire bundle, satisfying the OS requirement.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The qDebug block was removed when the fillExportTable lambda was
rewritten as part of the task-01 threading fix.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
toUtf8().constData() was already used in the rewritten fillExportTable
lambda, replacing the toStdString().c_str() heap allocation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…4, task-05)

Wrap the treeWidget population loop with setUpdatesEnabled(false/true)
to eliminate per-item repaints when loading large binaries. Also replace
QColor("red") constructed per line with the Qt::red compile-time constant.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Store MainWindow* as a member _mainWindow, set once in the constructor
from the dynamic_cast already performed there. Replace all subsequent
dynamic_cast<MainWindow*>(parent()) calls in insertNewRow and
on_buttonBox_accepted with the cached pointer.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Split and trim each line inline inside the execAndDoOnEveryLine callback,
removing the intermediate QStringList allocation and the second pass over
the data.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Iterate selectedItems() directly instead of looping by index and
fetching currentRow() each time. Multiple selected items are joined
with newlines so the clipboard gets all of them in one copy.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Normalize _fileName to an absolute path in the QLdd constructor so ldd/
otool always receives a fully-qualified path regardless of the caller's
working directory. Both QDir::setCurrent calls and the now-unused
_lddDirPath member are removed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
All 9 performance/correctness tasks have been resolved.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…shing-hammock)

C++ / warnings:
- Bump CMAKE_CXX_STANDARD 11→17 (all CI compilers gcc8+ support it)
- Replace std::result_of with std::invoke_result_t in execAndDoOnEveryLine
- Guard AA_EnableHighDpiScaling with #if QT_VERSION < 6.0.0 to silence
  the Qt6 deprecation warning while keeping Qt5 high-DPI behaviour

CI:
- Enable aarch64/fedora_latest in ubuntu-latest-nonx86 matrix (supported
  by run-on-arch-action); remove dead ppc64le/s390x fedora comments
  (fedora images don't exist for those architectures)
- Remove ubuntu-20-04 job (EOL April 2025; 22.04/24.04 matrix covers LTS)
- Replace debian-buster (EOL June 2024) with debian-bookworm (Debian 12);
  update devel-pkgs: python-nautilus → python3-nautilus
- Fix macOS job name: "macos-latest x86_64" → "macos-latest" (runner is
  now ARM64)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace the two separate extension files (pre-43 and 43+) with a single
dependency-viewer.py using *args to handle both Nautilus API versions:
- Nautilus <43: get_file_items(window, files)
- Nautilus 43+: get_file_items(files)

Both files registered the same class name, so whichever loaded second
silently shadowed the first, breaking the extension on half of all distros.
Remove the now-deleted dependency-viewer-43.py install rule from CMakeLists.txt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…kage name

- s390x: ubuntu_latest requires z15 hardware not available in QEMU emulation;
  downgrade to ubuntu22.04 which works on z14
- centos: centos:latest is EOL/gone; replace with quay.io/centos/centos:stream9
  and drop the CentOS 8 vault mirror hacks; enable CRB + EPEL for stream9
- fedora/centos: python3-nautilus no longer exists on Fedora 44+; use
  nautilus-python which is the correct RPM package name (matches CMakeLists.txt)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
redhat-lsb-core is absent from EPEL 9 and redhat-lsb is gone from Fedora 44.
lsb_release is only used for log messages and DEB package naming on Ubuntu/Debian,
neither of which applies to RPM builds. Degrade gracefully with a warning instead
of a fatal cmake error when the binary is not present.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
lsb_release is absent on CentOS Stream 9 and Fedora 44+ by default.
Parse /etc/os-release as a fallback — it is present on all systemd-based
distros. Capitalize the ID field to match lsb_release output so existing
Ubuntu/Debian codename checks downstream continue to work unchanged.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Chain a second find-and-replace step to strip '/' after ':' is replaced,
so the artifact name contains no invalid characters.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…onstraints

- CMakeLists.txt: bump version 1.2.1 -> 1.3.0
- CI: replace chained find-and-replace steps with tr ':/' '--' to correctly
  sanitize quay.io/centos/centos:stream9 into a valid artifact name
- CLAUDE.md: document no-auto-commit/push constraint

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ubuntu_latest resolves to Ubuntu 25.04 which includes Python 3.14; QEMU
emulation for ppc64le and s390x segfaults in Python's dpkg postinst.
Pin all four arches (aarch64, ppc64le, s390x, riscv64) to ubuntu22.04
which is stable under QEMU emulation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@bas524 bas524 closed this May 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant