Build on mac#9
Closed
bas524 wants to merge 27 commits into
Closed
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix build on mac os
Disable fedora builds on non-x86 platforms