Skip to content

fix(deb): drop 32-bit build-deps to match 64-bit-only build#19

Merged
not-matthias merged 1 commit into
masterfrom
fix/release-build
Jun 23, 2026
Merged

fix(deb): drop 32-bit build-deps to match 64-bit-only build#19
not-matthias merged 1 commit into
masterfrom
fix/release-build

Conversation

@not-matthias

Copy link
Copy Markdown
Member

PR #17 stopped installing gcc-multilib/libc6-dev-i386 in the Release
workflow (the deb already forces --enable-only64bit) but left them in
debian/control Build-Depends, so dpkg-checkbuilddeps aborted debuild
before any compile and the release produced no .deb assets.

@not-matthias not-matthias marked this pull request as ready for review June 23, 2026 09:29
@greptile-apps

greptile-apps Bot commented Jun 23, 2026

Copy link
Copy Markdown

Greptile Summary

Removes gcc-multilib [amd64] and libc6-dev-i386 [amd64] from the Build-Depends field in debian/control, aligning it with the 64-bit-only build that was already enforced by --enable-only64bit in debian/rules and confirmed by the release workflow's dependency installation step.

  • debian/rules passes --enable-only64bit to ./configure, so the 32-bit secondary toolchain was never actually used at compile time.
  • The release workflow (updated in PR feat: estimate cycles #17) no longer installs gcc-multilib/libc6-dev-i386, but dpkg-checkbuilddeps still validated debian/control before any compilation, causing the build to abort with no .deb output.
  • This one-line control-file fix is the minimal, correct change to restore .deb production in the release workflow.

Confidence Score: 5/5

Safe to merge — the two removed entries were already absent from the runtime install step, so this change only brings the metadata file in sync with actual build practice.

The removal is a direct consequence of the --enable-only64bit flag already present in debian/rules and the workflow already not installing the two packages. No compilation behaviour changes; the only effect is that dpkg-checkbuilddeps no longer aborts the build on unmet deps that were never needed.

No files require special attention.

Important Files Changed

Filename Overview
debian/control Drops gcc-multilib [amd64] and libc6-dev-i386 [amd64] from Build-Depends to match the --enable-only64bit build configuration; no other fields changed.

Sequence Diagram

%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
    participant GH as GitHub Release
    participant WF as release.yml
    participant DB as dpkg-checkbuilddeps
    participant DC as debian/control
    participant DR as debian/rules
    participant DEB as debuild

    GH->>WF: trigger (release created)
    WF->>WF: apt-get install gdb mpi-default-dev pkgconf ...
    note over WF: gcc-multilib / libc6-dev-i386 NOT installed (since PR #17)

    WF->>DEB: debuild -e CAPSTONE_DIR --no-tgz-check -nc
    DEB->>DB: dpkg-checkbuilddeps
    DB->>DC: read Build-Depends

    alt BEFORE this PR (broken)
        DC-->>DB: gcc-multilib [amd64], libc6-dev-i386 [amd64] listed
        DB-->>DEB: unmet build deps abort
        DEB-->>WF: build failed, no .deb produced
    else AFTER this PR (fixed)
        DC-->>DB: only gdb, mpi-default-dev, pkgconf, docbook, xsltproc
        DB-->>DEB: all deps satisfied
        DEB->>DR: invoke debian/rules with --enable-only64bit
        DR-->>DEB: 64-bit-only build succeeds
        DEB-->>WF: "valgrind_*.deb artifact ready"
        WF->>GH: upload release asset
    end
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
    participant GH as GitHub Release
    participant WF as release.yml
    participant DB as dpkg-checkbuilddeps
    participant DC as debian/control
    participant DR as debian/rules
    participant DEB as debuild

    GH->>WF: trigger (release created)
    WF->>WF: apt-get install gdb mpi-default-dev pkgconf ...
    note over WF: gcc-multilib / libc6-dev-i386 NOT installed (since PR #17)

    WF->>DEB: debuild -e CAPSTONE_DIR --no-tgz-check -nc
    DEB->>DB: dpkg-checkbuilddeps
    DB->>DC: read Build-Depends

    alt BEFORE this PR (broken)
        DC-->>DB: gcc-multilib [amd64], libc6-dev-i386 [amd64] listed
        DB-->>DEB: unmet build deps abort
        DEB-->>WF: build failed, no .deb produced
    else AFTER this PR (fixed)
        DC-->>DB: only gdb, mpi-default-dev, pkgconf, docbook, xsltproc
        DB-->>DEB: all deps satisfied
        DEB->>DR: invoke debian/rules with --enable-only64bit
        DR-->>DEB: 64-bit-only build succeeds
        DEB-->>WF: "valgrind_*.deb artifact ready"
        WF->>GH: upload release asset
    end
Loading

Reviews (2): Last reviewed commit: "fix(deb): drop 32-bit build-deps to matc..." | Re-trigger Greptile

@codspeed-hq

codspeed-hq Bot commented Jun 23, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 14.94%

❌ 3 regressed benchmarks
✅ 39 untouched benchmarks
⏩ 88 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Benchmark BASE HEAD Efficiency
test_valgrind[valgrind.codspeed, python3 testdata/test.py, full-with-inline-with-cycle-estimation] 7.9 s 9.6 s -17.74%
test_valgrind[valgrind-3.26.0, testdata/take_strings-aarch64 varbinview_non_null, full-no-inline] 3.1 s 3.6 s -14.62%
test_valgrind[valgrind-3.26.0, python3 testdata/test.py, full-no-inline] 7 s 8 s -12.36%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing fix/release-build (ce9d871) with master (56fdc88)

Open in CodSpeed

Footnotes

  1. 88 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

PR #17 stopped installing gcc-multilib/libc6-dev-i386 in the Release
workflow (the deb already forces --enable-only64bit) but left them in
debian/control Build-Depends, so dpkg-checkbuilddeps aborted debuild
before any compile and the release produced no .deb assets.
@not-matthias not-matthias merged commit ce9d871 into master Jun 23, 2026
8 of 9 checks passed
@not-matthias not-matthias deleted the fix/release-build branch June 23, 2026 11:47
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.

2 participants