Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
1f3cf85
Remove old ubuntu versions, add jammy
mutability Apr 2, 2026
d42c95b
Workflow to test-build piaware on ubuntu 24.04
mutability Apr 2, 2026
0dcf511
Maybe fix the prepare-build path
mutability Apr 2, 2026
362c67e
piaware_builder calls it sensible-build not prepare-build
mutability Apr 2, 2026
a70737c
sensible-build needs dch from devscripts, so install that earlier
mutability Apr 2, 2026
e42748f
Fix noble wheel packaging globs
caiusseverus Apr 3, 2026
dd5d569
Enable test builds for jammy (22.04)
mutability Apr 4, 2026
80c5c92
Merge pull request #32 from caiusseverus/ubuntu-packaging
mutability Apr 4, 2026
9242838
Merge branch 'dev' into ubuntu-packaging
mutability Apr 6, 2026
92dcd9b
Try a dumb fix for the trixie-vs-noble wheel capitalization thing
mutability Apr 6, 2026
bdd75eb
restore noble build in sensible-build
mutability Apr 6, 2026
c0a818a
Turn on package resolver debug in mk-build-deps
mutability Apr 6, 2026
d2e2e4f
Try relaxing the bookworm setuptools version constraint
mutability Apr 6, 2026
0c87783
Relax wheel constraint too
mutability Apr 6, 2026
fb14190
Revert "Relax wheel constraint too"
mutability Apr 6, 2026
05f75b7
Revert "Try relaxing the bookworm setuptools version constraint"
mutability Apr 6, 2026
e339b88
Revert "Enable test builds for jammy (22.04)"
mutability Apr 6, 2026
58082b6
jammy is known not to work right now, remove it from sensible-build
mutability Apr 6, 2026
9811591
Preserve built packages as workflow outputs
mutability Apr 6, 2026
ae8a7b4
Build for 22.04 (jammy) based on bullseye
mutability Apr 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Build piaware packages

on: [ push, pull_request ]

jobs:
build:
name: Build piaware packages
strategy:
fail-fast: false
matrix:
image:
- ubuntu-22.04
- ubuntu-22.04-arm
- ubuntu-24.04
- ubuntu-24.04-arm
runs-on: ${{ matrix.image }}
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Prepare environment vars
run: |
echo "BUILDDIR=${{ runner.temp }}/build" >>$GITHUB_ENV
- name: Install early build prerequisites
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends devscripts equivs
- name: Prepare build tree
run: |
. /etc/os-release
$GITHUB_WORKSPACE/sensible-build.sh $VERSION_CODENAME $BUILDDIR
- name: Install build prerequisites
run: |
cd ${{ runner.temp }} && mk-build-deps --tool "apt-get -y -o Debug::pkgProblemResolver=yes --no-install-recommends" --root-cmd sudo --install --remove $BUILDDIR/debian/control
- name: Build package
run: |
cd $BUILDDIR && dpkg-buildpackage -b --no-sign
- name: Upload artifacts
uses: actions/upload-artifact@v6
with:
name: piaware-${{ matrix.image }}
path: ${{ runner.temp }}/*.deb
21 changes: 21 additions & 0 deletions cx_Freeze-8.5.0.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
diff -ur cx_Freeze-8.5.0/pyproject.toml cx_Freeze-8.5.0.new/pyproject.toml
--- cx_Freeze-8.5.0/pyproject.toml
+++ cx_Freeze-8.5.0.new/pyproject.toml
@@ -49,8 +49,7 @@
]
dynamic = ["version"]
keywords = ["cx-freeze cxfreeze cx_Freeze freeze python"]
-license = "PSF-2.0"
-license-files = ["LICENSE.md"]
+license = {text = "PSF-2.0"}
readme = "README.md"
requires-python = ">=3.10"

@@ -105,6 +104,7 @@

[tool.setuptools]
include-package-data = true
+license-files = ["LICENSE.md"]
zip-safe = false

[tool.setuptools.dynamic]
20 changes: 20 additions & 0 deletions freeze-core-0.4.2.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
diff -ur freeze-core-0.4.2/pyproject.toml freeze-core-0.4.2.new/pyproject.toml
--- freeze-core-0.4.2/pyproject.toml
+++ freeze-core-0.4.2.new/pyproject.toml
@@ -39,8 +39,7 @@
]
dynamic = ["version"]
keywords = ["freeze-core freeze cx-freeze cxfreeze cx_Freeze python"]
-license = "MIT"
-license-files = ["LICENSE"]
+license = {text = "MIT"}
readme = "README.md"
requires-python = ">=3.10"

@@ -68,6 +67,7 @@

[tool.setuptools]
include-package-data = true
+license-files = ["LICENSE"]
package-dir = {"" = "src"}
zip-safe = false
24 changes: 8 additions & 16 deletions sensible-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -59,23 +59,15 @@ case $dist in
targetdist=trixie
extraversion=""
;;
xenial)
# not tested
debdist=stretch
targetdist=xenial
extraversion="~ubuntu1604+"
;;
bionic)
# not tested
debdist=buster
targetdist=bionic
extraversion="~ubuntu1804+"
jammy)
debdist=bullseye
targetdist=jammy
extraversion="~ubuntu2204+"
;;
disco)
# not tested
debdist=buster
targetdist=disco
extraversion="~ubuntu1904+"
noble)
debdist=trixie
targetdist=noble
extraversion="~ubuntu2404+"
;;
*)
echo "unknown build distribution $1" >&2
Expand Down
9 changes: 7 additions & 2 deletions trixie/rules
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

# we need nocaseglob
SHELL := /bin/bash

PYTHON3 := /usr/bin/$(shell py3versions -d)

VENV=$(CURDIR)/debian/venv
Expand Down Expand Up @@ -70,10 +73,12 @@ build_mlat-client:
$(VENV)/bin/python -m build --skip-dependency-check --no-isolation --wheel --outdir $(CURDIR)/wheels freeze-core-0.4.2
$(VENV)/bin/python -m pip install --no-index --no-deps --ignore-installed --require-virtualenv $(CURDIR)/wheels/freeze_core-0.4.2*.whl
$(VENV)/bin/python -m build --skip-dependency-check --no-isolation --wheel --outdir $(CURDIR)/wheels cx_Freeze-8.5.0
$(VENV)/bin/python -m pip install --no-index --no-deps --ignore-installed --require-virtualenv $(CURDIR)/wheels/cx_freeze-8.5.0*.whl
# nb: trixie and noble produce wheels with different capitalization
shopt -s nocaseglob; $(VENV)/bin/python -m pip install --no-index --no-deps --ignore-installed --require-virtualenv $(CURDIR)/wheels/cx_freeze-8.5.0*.whl
# build mlat-client proper
$(VENV)/bin/python -m build --skip-dependency-check --no-isolation --wheel --outdir $(CURDIR)/wheels mlat-client
$(VENV)/bin/python -m pip install --no-index --no-deps --ignore-installed --require-virtualenv $(CURDIR)/wheels/mlatclient-*.whl
# nb: trixie and noble produce wheels with different capitalization
shopt -s nocaseglob; $(VENV)/bin/python -m pip install --no-index --no-deps --ignore-installed --require-virtualenv $(CURDIR)/wheels/mlatclient-*.whl

install_mlat-client:
# newer cxfreeze deletes --target-dir (see cxfreeze issue #1300), so we have to freeze to a temporary directory and
Expand Down