libtorrent icon indicating copy to clipboard operation
libtorrent copied to clipboard

New Release Linux auto-build+packager for Debian

Open beadon opened this issue 3 months ago • 1 comments

This GitHub Actions workflow builds the repository source, and packages a Debian .deb file. It appends this file to the release notes for this repository's release page, for easy download or distribution.

Workflow is triggered by the creation of the release, and the formatted tag starts with "v", followed by semver-compatible versioning. example: v0.16.0 . The package will not build when the version tag is not correct, example: 0.16.0 is invalid

Features --

  • Workflow auto-detects the number of CPU cores during the build process.
  • C++ compilation chooses an O3 optimization, performance at the expense of a larger library.
  • Build time is limited to 5 minutes This should keep the use of GitHub actions well below the free tier limits. When the github actions vm infrastructure is stressed by something causing a slowdown ( I have experienced network issues with this github action fetching small details from the github apt repository), then the job may exceed the timer. I believe it is safer and cheaper to hit this timeout and require a re-run later than to expend many github action minutes waiting for poor network conditions to resolve. Most build times are less than 2 minutes when 4 cores are detected (3 are used in the build process when a VM is provided that meets this criteria), all runs I have tested with detect 4 cores. I know this can change. If a self-hosted worker is provided at some point then this could build even faster without edits to this workflow.

If this workflow is accepted, the next stage is to have the rtorrent release build script snag this .deb file as it builds the rtorrent client.

Over time, this file is the start of packaging for Linux, and other packages could be packaged here rapidly by other contributors. These jobs could be started in parallel if a developer was inclined to add this.

beadon avatar Sep 12 '25 07:09 beadon

Have removed some of the old personal details not requiredfor this repo, just added to this PR.

Also, added in the config option to protect against alignment issues, and added xmlrpc support flags to exercise the compile since I believe most people want this.

beadon avatar Sep 20 '25 08:09 beadon