Skip to content

pg_duckdb: drop build-id links so per-major packages coinstall - #81

Merged
maqeel75 merged 2 commits into
mainfrom
pg-duckdb-no-build-id
Aug 20, 2026
Merged

pg_duckdb: drop build-id links so per-major packages coinstall#81
maqeel75 merged 2 commits into
mainfrom
pg-duckdb-no-build-id

Conversation

@maqeel75

Copy link
Copy Markdown
Member

Summary

The bundled libduckdb.so is PG-major independent, so every per-major build produced it identically — same bytes, same build-id. Each package then claimed the same /usr/lib/.build-id/<xx>/<hash>, and the three majors refused to install side
by side:

file /usr/lib/.build-id/67/521b25... conflicts between attempted installs of
pgedge-pg-duckdb_16 and pgedge-pg-duckdb_18

The debuginfo packages collided on the same hash, and dpkg hit it too — dbgsym packages are build-id addressed by construction.

RPM (%global _build_id_links none): drops the build-id entries from the main and debuginfo packages. Debug files remain, addressed by path (/usr/lib/debug/usr/pgsql-NN/…), which differs per major, so nothing overlaps. debug_package
is deliberately left enabled — disabling it also disables the strip that produces debuginfo, which would leave DuckDB's full DWARF (~212 MB, measured on el10) inside each main package.

DEB (dh_strip --no-automatic-dbgsym): dbgsym has no equivalent knob, so the packages simply aren't produced. This does give up debug symbols on Debian, for pg_duckdb.so as well as the engine.

Verified in containers with the real spec and debian/rules

@maqeel75
maqeel75 requested a review from vyruss as a code owner August 20, 2026 16:04
@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: d7c92c22-cb51-4d20-a951-743e28eacaca

📥 Commits

Reviewing files that changed from the base of the PR and between 9e5ffc5 and b671e63.

📒 Files selected for processing (3)
  • packaging/coldfront-duckdb-extensions/rpm/coldfront-duckdb-extensions.spec
  • packaging/coldfront/rpm/coldfront.spec
  • packaging/pg_duckdb/rpm/pg_duckdb.spec
🚧 Files skipped from review as they are similar to previous changes (1)
  • packaging/pg_duckdb/rpm/pg_duckdb.spec

Included review availability: 4 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.


📝 Walkthrough

Walkthrough

The packaging configuration disables automatic debug-symbol artifacts for Debian and RPM builds. Three RPM changelog entries now use corrected weekday and date text.

Changes

Packaging metadata updates

Layer / File(s) Summary
Disable debug-symbol artifacts
packaging/pg_duckdb/deb/debian/rules, packaging/pg_duckdb/rpm/pg_duckdb.spec
Debian packaging disables automatic dbgsym package generation. RPM packaging disables build ID links.
Correct changelog dates
packaging/pg_duckdb/rpm/pg_duckdb.spec, packaging/coldfront-duckdb-extensions/rpm/coldfront-duckdb-extensions.spec, packaging/coldfront/rpm/coldfront.spec
Three RPM changelog entries use corrected weekday and date text.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Merge Risk: ⚪ Minimal · up to b671e

This packaging-only change adjusts build-id and Debian debug-symbol handling to support coinstallation; no actionable merge-blocking risk remains beyond normal checks and review.

Suggested reviewers: vyruss

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main packaging change that prevents build-ID link conflicts between PostgreSQL-major packages.
Description check ✅ Passed The description accurately explains the RPM and Debian packaging changes and the goal of side-by-side installation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch pg-duckdb-no-build-id

Comment @coderabbitai help to get the list of available commands.

@maqeel75
maqeel75 requested review from vyruss and removed request for vyruss August 20, 2026 16:04
@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@maqeel75
maqeel75 merged commit 9d71317 into main Aug 20, 2026
6 checks passed
@maqeel75
maqeel75 deleted the pg-duckdb-no-build-id branch August 20, 2026 16:27
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