Successful Install of piaware 11.0~dev and dump1090-fa 11.0~dev on RPi OS Trixie

@obj

cat /proc/cpuinfo | grep Model
Model           : Raspberry Pi 4 Model B Rev 1.5

lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 13 (trixie)
Release:        13
Codename:       trixie

 

(1) Installation of piaware ver 11.0~dev

(1.1) Installed Dependencies:

sudo apt install -y \
debhelper \
tcl8.6-dev \
autoconf \
python3-dev \
python3-setuptools \
python3-wheel \
python3-build \
python3-pip \
libz-dev \
libboost-system-dev \
libboost-program-options-dev \
libboost-regex-dev \
libboost-filesystem-dev \
patchelf \
python3-filelock \
python3-pyasyncore 

(1.2) The apt provided tcl-tls ver 1.8.0-2 results in failure of piaware.
Build & installed Flightaware provided tcl-tls ver 1.7.22-2+fa1

sudo apt install -y \
libssl-dev \
tcl-dev \
chrpath

sudo apt --fix-broken install 

git clone --depth 1 http://github.com/flightaware/tcltls-rebuild 
cd tcltls-rebuild 
sudo ./prepare-build.sh bullseye 
cd package-bullseye 
sudo dpkg-buildpackage -b --no-sign 
cd ../ 
sudo dpkg -i tcl-tls_1.7.22-2+fa1_*.deb 
sudo apt-mark hold tcl-tls 

 

(1.3) Cloned source code, build and installed package:

git clone --depth 1 -b dev https://github.com/flightaware/piaware_builder piaware_builder-dev
cd piaware_builder-dev 
sudo ./sensible-build.sh trixie 
cd package-trixie 
sudo dpkg-buildpackage -b --no-sign 
cd ../
sudo dpkg -i piaware_11.0~dev_*.deb

(2) Installed dump1090-fa

(2.1) Installed Dependencies:

librtlsdr-dev \
libbladerf-dev \
libhackrf-dev \
liblimesuite-dev \
libsoapysdr-dev \
libusb-1.0-0-dev \
libncurses5-dev

sudo apt --fix-broken install 

 

(2.2) Cloned source code, build and installed package:

git clone --depth 1 -b dev https://github.com/flightaware/dump1090 dump1090-dev 
cd dump1090-dev 
sudo ./prepare-build.sh trixie 
cd package-trixie 
sudo dpkg-buildpackage -b --no-sign 
cd ../
sudo dpkg -i dump1090-fa_11.0~dev_*.deb

 

$ apt-cache policy piaware
piaware:
  Installed: 11.0~dev
  Candidate: 11.0~dev
  Version table:
 *** 11.0~dev 100
        100 /var/lib/dpkg/status



$ apt-cache policy dump1090-fa
dump1090-fa:
  Installed: 11.0~dev
  Candidate: 11.0~dev
  Version table:
 *** 11.0~dev 100
        100 /var/lib/dpkg/status

 

SITE-114692
https://www.flightaware.com/adsb/stats/user/abcd567

sudo journalctl -u piaware -b | grep site
Apr 02 22:34:05 rpios-Trixie piaware[1162]: site statistics URL: https://flightaware.com/adsb/stats/user/abcd567#stats-114692

 

pi@rpios-Trixie:~ $ sudo journalctl -u piaware -n 10 
Apr 02 22:54:37 rpios-Trixie piaware[1162]: 3093 msgs recv'd from dump1090-fa (767 in last 5m); 3073 msgs sent to FlightAware
Apr 02 22:59:37 rpios-Trixie piaware[1162]: 3914 msgs recv'd from dump1090-fa (821 in last 5m); 3894 msgs sent to FlightAware
Apr 02 23:04:37 rpios-Trixie piaware[1162]: 4744 msgs recv'd from dump1090-fa (830 in last 5m); 4724 msgs sent to FlightAware
Apr 02 23:05:25 rpios-Trixie piaware[1162]: mlat-client(1275): Receiver status: connected
Apr 02 23:05:25 rpios-Trixie piaware[1162]: mlat-client(1275): Server status:   synchronized with 278 nearby receivers
Apr 02 23:05:25 rpios-Trixie piaware[1162]: mlat-client(1275): Receiver:  113.4 msg/s received       48.5 msg/s processed (43%)
Apr 02 23:05:25 rpios-Trixie piaware[1162]: mlat-client(1275): Server:      0.0 kB/s from server    0.0kB/s TCP to server     0.6kB/s UDP to server
Apr 02 23:05:25 rpios-Trixie piaware[1162]: mlat-client(1275): Aircraft: 10 of 12 Mode S, 21 of 26 ADS-B used
Apr 02 23:09:37 rpios-Trixie piaware[1162]: 5472 msgs recv'd from dump1090-fa (728 in last 5m); 5452 msgs sent to FlightAware
Apr 02 23:14:37 rpios-Trixie piaware[1162]: 6204 msgs recv'd from dump1090-fa (732 in last 5m); 6184 msgs sent to FlightAware

Good news for sure. Will help the Ubuntu crowd out as well who have been on Python 3.12+ for quite some time now.

Support for Ubuntu 20 (focal), Ubuntu 22 (jammy) and Ubuntu 24 (noble) is NOT included.

Screenshot below shows relevant part of file piaware_builder/sensible-build.sh

Question to (2): doesn’t piaware_builder’s sensible-build.sh (i.e., piaware_builder/sensible-build.sh at dev · flightaware/piaware_builder · GitHub ) already clone dump1090-fa’s dev branch into /piaware_builder/package-trixie/dump1090

Yes, the piaware_builder does clone source code of dump1090, but the build process builds only faup1090 from it, and does NOT build dump1090-fa.

The user may re-use that code to build dump1090-fa package, but it is cleaner to separately clone dump1090 source code and build dump1090-fa package from it.

 

There is an ubuntu-packaging branch (GitHub - flightaware/piaware_builder at ubuntu-packaging · GitHub) that I created to experiment with jammy/noble support, since those are the two versions easily available via github actions runners. Unfortunately support is not entirely straightforward and will probably need release-specific debian/rules because of version drift between Ubuntu and the underlying Debian versions they were based on, i.e. it’s not sufficient to just take the trixie build unchanged on noble.

Current failure is due to a format change in pyproject metadata breaking the cxfreeze build (see sensible-build needs dch from devscripts, so install that earlier · flightaware/piaware_builder@a70737c · GitHub, at least until it expires)

I can’t really commit much time to fix those builds, but if anyone wants to work out the particular combination of setuptools / cxfreeze versions to get it working, PRs are welcome.

1 Like

@obj
@jprochazka

I have successfully installed piaware v10.2 & dump1090-fa v10.2 on:

  • Debian trixie
  • Debian forky
  • Ubuntu noble

I could do it by using modified piaware_builder/sensible-build.sh.
The relevant part of this modified file for cx_Freeze is as below:

199     bookworm)
200         fetch_archive cx_Freeze-6.15.9 \
201                       https://github.com/marcelotduarte/cx_Freeze/archive/refs/tags/6.15.9.tar.gz \
202                       d32b309b355f2b377dae585a839e39e3251b3f9716f2b4983be92972c2863000
203         ;;
204
205     trixie)
206         fetch_archive cx_Freeze-8.1.0 \
207                       https://github.com/marcelotduarte/cx_Freeze/archive/refs/tags/8.1.0.tar.gz \
208                       45d82f7e541ae4fb05ed4250c03a84f969ba94a43bac0112a86c0b7793a12c3b
209         ;;
210
211     forky)
212         fetch_archive cx_Freeze-8.1.0 \
213                       https://github.com/marcelotduarte/cx_Freeze/archive/refs/tags/8.1.0.tar.gz \
214                       45d82f7e541ae4fb05ed4250c03a84f969ba94a43bac0112a86c0b7793a12c3b
215         ;;
216
217     noble)
218         fetch_archive cx_Freeze-7.2.0 \
219                       https://github.com/marcelotduarte/cx_Freeze/archive/refs/tags/7.2.0.tar.gz \
220                       b2846d0215fd6e18a1dccc398f71a67840d77c1fb2f5ae911d87867d4330bcfa
221         ;;
222 esac

 

SITE 133993

abcd@ubuntu-24:~$ sudo journalctl -u piaware -b | grep site
Apr 03 14:31:09 ubuntu-24 piaware[13070]: site statistics URL: https://flightaware.com/adsb/stats/user/abcd567#stats-133993

abcd@ubuntu-24:~$ sudo journalctl -u piaware -n 10

Apr 03 14:32:15 ubuntu-24 piaware[13070]: Started faup1090 (pid 13143) to connect to dump1090-fa
Apr 03 14:36:41 ubuntu-24 piaware[13070]: 795 msgs recv'd from dump1090-fa (765 in last 5m); 795 msgs sent to FlightAware
Apr 03 14:41:41 ubuntu-24 piaware[13070]: 1572 msgs recv'd from dump1090-fa (777 in last 5m); 1572 msgs sent to FlightAware
Apr 03 14:46:10 ubuntu-24 piaware[13070]: mlat-client(13085): Receiver status: connected
Apr 03 14:46:11 ubuntu-24 piaware[13070]: mlat-client(13085): Server status:   not synchronized with any nearby receivers
Apr 03 14:46:11 ubuntu-24 piaware[13070]: mlat-client(13085): Receiver:  124.6 msg/s received       46.3 msg/s processed (37%)
Apr 03 14:46:11 ubuntu-24 piaware[13070]: mlat-client(13085): Server:      0.0 kB/s from server    0.0kB/s TCP to server     0.6kB/s UDP to server
Apr 03 14:46:11 ubuntu-24 piaware[13070]: mlat-client(13085): Aircraft: 3 of 5 Mode S, 17 of 18 ADS-B used
Apr 03 14:46:41 ubuntu-24 piaware[13070]: 2274 msgs recv'd from dump1090-fa (702 in last 5m); 2274 msgs sent to FlightAware
Apr 03 14:51:41 ubuntu-24 piaware[13070]: 3049 msgs recv'd from dump1090-fa (775 in last 5m); 3049 msgs sent to FlightAware

 

 

 

I made a pull request for it: Fix noble wheel packaging globs by caiusseverus · Pull Request #32 · flightaware/piaware_builder · GitHub

It builds ok in github actions, but I don’t have an ubuntu install to test it on.

I do not have a dedicated computer for trying different OS. Instead I have Oracle VM installed on Windows 11. I install any required OS through it. This is very handy for testing purposes.

Only about 2 hrs ago I installed Ubuntu 24.04.4 Server on it, then installed the piaware ver 10.2 and dump1090-fa ver10.2 using my modified sensible-build.sh as posted in my last post above.

I never putup any pull request because I dont know how to do it. I simply post my work here in this forum. :slight_smile:

1 Like

@obj
@jprochazka
@caius

If you want to see all modifications I made to piaware_builder, then please visit my fork of piaware_builder here:

https://github.com/abcd567a/piaware_builder

 

 

Successful install on RPi
Ubuntu 24 Noble arm64

IMPORTANT

While trying to install build tools & dependencies, installation of build-essential faile due to uninstallable bzip2. Solved this by following method:

sudo nano /etc/apt/sources.list.d/ubuntu.sources

In above file added missing “noble-updates” as shown in screenshot below. Next ran sudo apt update, and now all dependencies and build tools got installed

 

 

pi@rpi-noble:~$ sudo journalctl -u piaware -n 10 

Apr 03 20:32:03 rpi-noble piaware[941]: 306 msgs recv'd from dump1090-fa; 306 msgs sent to FlightAware
Apr 03 20:37:03 rpi-noble piaware[941]: 1831 msgs recv'd from dump1090-fa (1525 in last 5m); 1831 msgs sent to FlightAware
Apr 03 20:42:03 rpi-noble piaware[941]: 3367 msgs recv'd from dump1090-fa (1536 in last 5m); 3367 msgs sent to FlightAware
Apr 03 20:46:35 rpi-noble piaware[941]: mlat-client(1039): Receiver status: connected
Apr 03 20:46:35 rpi-noble piaware[941]: mlat-client(1039): Server status:   synchronized with 297 nearby receivers
Apr 03 20:46:35 rpi-noble piaware[941]: mlat-client(1039): Receiver:  290.1 msg/s received      114.3 msg/s processed (39%)
Apr 03 20:46:35 rpi-noble piaware[941]: mlat-client(1039): Server:      0.0 kB/s from server    0.0kB/s TCP to server     1.1kB/s UDP to server
Apr 03 20:46:35 rpi-noble piaware[941]: mlat-client(1039): Results:  2.3 positions/minute
Apr 03 20:46:35 rpi-noble piaware[941]: mlat-client(1039): Aircraft: 14 of 25 Mode S, 30 of 46 ADS-B used
Apr 03 20:47:03 rpi-noble piaware[941]: 4798 msgs recv'd from dump1090-fa (1431 in last 5m); 4798 msgs sent to FlightAware

 

 

@abcd567 Did not realize it until you said that. Looks like the addition of Nobel support was removed after mine and retornam changes were merged into dev the other day. Had Nobel support tested and working. Maybe something broke over time. The pull request was created at the time Trixie was still in testing. ¯_(ツ)_/¯

@obj I can take a look at ubuntu-packaging and see if I can retrofit the changes from pull request #26 once I am caught up with what I am working on.

EDIT:

PiAware actually installs fine on Ubuntu. Pre Nobel and Pixie versions work fine picking the closest Debian release and choosing to build using those options. I am guessing the same for Nobel in the dev branch would work by choosing trixie. The following has worked for lord knows how many installs.

Jammy use ./sensible-build.sh bullseye
Focal use ./sensible-build.sh bookworm

And I am guessing for the dev branch this should work…
Nobel use ./sensible-build.sh trixie

Basically what was going on here piaware_builder/sensible-build.sh at trixie · jprochazka/piaware_builder Simply set the appropriate Debian distro which worked on the associated Ubuntu version and added the Ubuntu version to the package after the build.

noble)
debdist=trixie
targetdist=noble
extraversion=“~ubuntu2404+”
;;

The fix in my pull request was to add support for the version of Python used by Trixie and Nobel then align the version of Python with the one which comes with the Ubuntu version in question with the Debian release using the same version of Python.

That’s it.

Just noticed I forgot to remove the not tested comments after testing. Might be why it was removed.

sadly, it does not – the version of the PR merged for trixie uses a more recent cxfreeze that then breaks on noble. But caius has a PR to fix that which I’ll look at on Monday

My initial testing for jammy failed because of a setuptools version constraint problem, but I’ll take another look and see whether that’s real or not. (edit: I turned on builds for 22.04 on the ubuntu-packaging branch and yeah, jammy fails to install build-deps. I’ll look more on Monday)

The short version is:

  • create a git branch with your changes, push it to your account on github
  • in the github interface, navigate to your branch, there should be a “contribute” button that when clicked lets you “open pull request”
  • select the right repository you want to send the PR for
  • create the PR, it will include all the commits / changes between the upstream repository and your branch

Of course the devil is in the details – the PR will include all the changes in your branch versus the upstream version. So if you have several modifications that are logically separate, or changes that are just local hacks that you don’t want to include in the PR, then you’ll need to curate separate branches with only the changes desired for each PR.

1 Like

Right, I made those changes. Like I said maybe something broke over time. Originally it worked like a charm. :slight_smile: Nobel at the time used the same version of cxfreeze. It was a stale pull request that apparently needed some minor tweaks to implement now. Guessing versions changed.

I use versions of cx_Freeze as follows:

  • Noble: cx_Freeze-7.2.0
  • Trixie & Forky: cx_Freeze-8.1.0

I have tested this on latest versions of these distros, not once but a dozen times. Works perfectly. Never caused any break.

 

205     trixie)
206         fetch_archive cx_Freeze-8.1.0 \
207                       https://github.com/marcelotduarte/cx_Freeze/archive/refs/tags/8.1.0.tar.gz \
208                       45d82f7e541ae4fb05ed4250c03a84f969ba94a43bac0112a86c0b7793a12c3b
209         ;;
210
211     forky)
212         fetch_archive cx_Freeze-8.1.0 \
213                       https://github.com/marcelotduarte/cx_Freeze/archive/refs/tags/8.1.0.tar.gz \
214                       45d82f7e541ae4fb05ed4250c03a84f969ba94a43bac0112a86c0b7793a12c3b
215         ;;
216
217     noble)
218         fetch_archive cx_Freeze-7.2.0 \
219                       https://github.com/marcelotduarte/cx_Freeze/archive/refs/tags/7.2.0.tar.gz \
220                       b2846d0215fd6e18a1dccc398f71a67840d77c1fb2f5ae911d87867d4330bcfa
221         ;;
222 esac

If I remember correctly, there is no package for cx-freeze in the Ubuntu or Debian repository. Pip should be used to install it so it is not distribution specific. There should be no reason if a particular version works with one it will not work with the other as they are compatible with the version of Python being used. As long as it is not an old version not compatible with Python 3.12+ which was the issue originally.

Ubuntu Noble ships Python 3.12
Debian Trixie ships Python 3.13

The latest version of cx-freeze (8.6.0) is compatible with both. If there is an issue bringing both in line as far as the latest version of cx-freeze is concerned the issue might not be with cx-freeze. Or possibly implementation?

To support Trixie, cx-freeze 8.x is needed. Being cx-freeze 8.x is compatible with Python 3.12 it might just be a matter of using 8.x for both. Although being 7.x is compatible with Python 3.12 I am really wondering if it is not a cx-freeze issue. I would have to give the install a try to see the actual errors the team is running into.

FYI cx-freeze 8.x is compatible back to Python 3.10 so I would recommend aligning your versions and going from there so the installs are not more “compatible” with each other if possible.

Looking back, I think Trixie was using Python 3.12 during their “test” phase. Might explain why using the “sensible build” for Trixie worked on Nobel when I made the pull request. God, I hate developing against beta quality releases where nothing is set in stone… LOL

Hope you find this useful @abcd567

Welcome to the club! This is one reason why supporting $yetanotherdistro is very much “it might work, and I’ll take patches to help support it, but I can’t spend much time on fixing it”

With the changes from retornam and caius (which use cxfreeze 8.5.0) it’s close to working so I’ll probably end up going with that as the path of least resistance.

I have found path of ZERO resistance (tested multiple times) by using cx_Freeze versions as follows:

  • Noble: cx_Freeze-7.2.0
  • Trixie & Forky: cx_Freeze-8.1.0

In my fork of piaware_builder, I had to add trixie, forky and noble in file sensible_build.sh, and creat following 3 folders in piaware_builder`:

  • piaware_builder/trixie
  • piaware_builder/noble
  • piaware_builder/forky

Tested multiple times on all above distros (amd64 and arm64), works flawlessly during build, install, and runtime.

 

Understood believe me. Working on some things for my project after which I am down to give it another shot now that we got an actual RTM Trixie to work with. Anything to help out.

Also, retornam and caius’s additions were spot on for sure. If they see this, thanks for updating the pull request and making it ready to merge!

Should not be an issue bring cxfreeze versions into parity as I mentioned earlier which should make for a possible one and done install process for both Nobel and Trixie even though Python versions differ. Fingers crossed.

If this is the case, I myself would be happy continuing to choose the “matching” Debian version to the current Ubuntu version saving the hassle of adding yet another distro to support. As stated earlier I had no problems doing so when installing on Ubuntu in the past. It was the breaking changes in cxfreeze and Python 3.12+ and Nobel being released prior to Trixie with a newer version of Python which brought this to a head.