Skip to content

deb: build the package from debian/ with build-deb-action - #123

Merged
everoddandeven merged 1 commit into
libmonero:mainfrom
everoddandeven:ci/build-deb-action
Oct 30, 2026
Merged

everoddandeven merged 1 commit into
libmonero:mainfrom
everoddandeven:ci/build-deb-action

Conversation

@everoddandeven

Copy link
Copy Markdown
Member

debian/ becomes a Debian source package: the Build-Depends in control, a rules file with dh, a changelog and source/format. jtdor/build-deb-action installs the Build-Depends in a container of each release and runs dpkg-buildpackage. That replaces Dockerfile.linux, docker/build.sh and the buildx, cache and retry steps of the workflow, and dh computes the dependencies of the package, so nothing patches the control file or runs dpkg-shlibdeps by hand any more.

debian/changelog does not repeat the version: debian/set-version.sh adds the entry for the version of pyproject.toml and the release, and the package is still named python3-monero_0.9.10-1noble1_amd64.deb.

bin/build_monero_cpp.sh builds monero-project and monero-cpp, and debian/install-static-deps.sh the static expat and unbound, as the Dockerfile did. The flags of dpkg-buildflags are not passed to them.

@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.

@everoddandeven
everoddandeven force-pushed the ci/build-deb-action branch 3 times, most recently from 412989a to e2ea136 Compare October 30, 2026 07:34
debian/ becomes a Debian source package: the Build-Depends in control, a rules file with
dh, a changelog and source/format. jtdor/build-deb-action installs the Build-Depends in a
container of each release and runs dpkg-buildpackage. That replaces Dockerfile.linux,
docker/build.sh and the buildx, cache and retry steps of the workflow, and dh computes the
dependencies of the package, so nothing patches the control file or runs dpkg-shlibdeps by
hand any more.

debian/changelog does not repeat the version: debian/set-version.sh adds the entry for the
version of pyproject.toml and the release, and the package is still named
python3-monero_0.9.10-1noble1_amd64.deb.

bin/build_monero_cpp.sh builds monero-project and monero-cpp, and
debian/install-static-deps.sh the static expat and unbound, as the Dockerfile did. The
flags of dpkg-buildflags are not passed to them.

The packages are built on:
- pull requests: amd64 on trixie and bookworm.
- main: also amd64 on noble and jammy, and arm64 on trixie and bookworm.
- tags and manual runs with full: the three architectures on the four releases. release.yml
  checks the tag and the runs of main that it needs first, then calls build-deb.yml and
  takes the packages from its own run, so a missing run does not show up after the hours of
  the build.

arm64 and armhf are built natively on ubuntu-24.04-arm runners, which run 32 bit arm
containers, instead of under qemu, where they took 76 to 136 minutes against 10 to 14 for
amd64. A 32 bit container on a 64 bit arm kernel reports aarch64, which build_monero_cpp.sh
would take for a 64 bit build and the configure scripts for the host, so debian/rules runs
the steps of the build under linux32 there and the script knows armv7l and armv8l.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@everoddandeven
everoddandeven merged commit 381a29f into libmonero:main Oct 30, 2026
1 of 8 checks passed
@everoddandeven
everoddandeven deleted the ci/build-deb-action branch October 30, 2026 07:43
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