Ubuntu 24.04 Noble Numbat (Desktop & Server): Install piaware, dump1090-fa, dump978-fa, and piaware-web

No release of Ubuntu 24 is yet available. Only “daily-build” is available.

The daily build Ubuntu 24.04 Desktop CD is currently non-installable on HDD and can only be run from RAM as live cd.

The daily build Ubuntu 24.04 Server CD is installable on HDD.

Both these live CDs are changing daily as Ubuntu 24.04 is being developed.

It is like a rolling release till Ubuntu 24.04 LTS will be released.

On both the Ubuntu 24.04 Noble Numbat Desktop and on Ubuntu 24.04 Noble Numbat Server , I successfully installed following:

  • piaware
  • dump1090-fa
  • dump978-fa
  • piaware-web.

The above packages were very easily installed using installation scripts at:

piaware-ubuntu-debian-amd64

However since “daily-Builds” are rolling releases and are changing everyday, there is no guarantee my script will continue working on Ubuntu 24.04 LTS when it is release later in 2024.

 

Click on Screenshot to See Larger Size

 

Click on Screenshot to See Larger Size

 

3 Likes

this is amazing. Much appreciation for all of the work you do on this, @abcd567 .

2 Likes

FlightRadar24 and Planefinder feeders also installed successfully

Click on Screenshot to See Larger Size

 

3 Likes

image

 

@obj
@eric1tran
Piaware fails to build on Ubuntu 24.04 Daily build dated 2024-02-25

 

Detailed log:

Successfully built cx_Freeze-6.15.9-cp312-cp312-linux_x86_64.whl
/home/abcd/piaware_builder/package-bookworm/debian/venv/bin/python -m pip install --no-index --no-deps --ignore-installed --require-virtualenv /home/abcd/piaware_builder/package-bookworm/wheels/cx_Freeze-6.15.9-*.whl
Processing ./wheels/cx_Freeze-6.15.9-cp312-cp312-linux_x86_64.whl
Installing collected packages: cx-Freeze
Successfully installed cx-Freeze-6.15.9
# build mlat-client proper
/home/abcd/piaware_builder/package-bookworm/debian/venv/bin/python -m build --skip-dependency-check --no-isolation --wheel -C="--build-option=--plat-name" -C="--build-option=linux-x86_64" --outdir /home/abcd/piaware_builder/package-bookworm/wheels mlat-client
* Building wheel...
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
    main()
  File "/usr/lib/python3/dist-packages/pyproject_hooks/_in_process/_in_process.py", line 335, in main
    json_out['return_val'] = hook(**hook_input['kwargs'])
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
    return _build_backend().build_wheel(wheel_directory, config_settings,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 434, in build_wheel
    return self._build_with_temp_dir(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 419, in _build_with_temp_dir
    self.run_setup()
  File "/usr/lib/python3/dist-packages/setuptools/build_meta.py", line 341, in run_setup
    exec(code, locals())
  File "<string>", line 24, in <module>
  File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 107, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/setuptools/_distutils/core.py", line 147, in setup
    _setup_distribution = dist = klass(attrs)
                                 ^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 485, in __init__
    _Distribution.__init__(
  File "/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py", line 283, in __init__
    self.finalize_options()
  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 925, in finalize_options
    for ep in sorted(loaded, key=by_order):
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 924, in <lambda>
    loaded = map(lambda e: e.load(), filtered)
                           ^^^^^^^^
  File "/usr/lib/python3.12/importlib/metadata/__init__.py", line 205, in load
    module = import_module(match.group('module'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/home/abcd/piaware_builder/package-bookworm/debian/venv/lib/python3.12/site-packages/cx_Freeze/__init__.py", line 12, in <module>
    from .command.build_exe import BuildEXE as build_exe
  File "/home/abcd/piaware_builder/package-bookworm/debian/venv/lib/python3.12/site-packages/cx_Freeze/command/build_exe.py", line 13, in <module>
    from cx_Freeze.freezer import Freezer
  File "/home/abcd/piaware_builder/package-bookworm/debian/venv/lib/python3.12/site-packages/cx_Freeze/freezer.py", line 30, in <module>
    from .finder import ModuleFinder
  File "/home/abcd/piaware_builder/package-bookworm/debian/venv/lib/python3.12/site-packages/cx_Freeze/finder.py", line 33, in <module>
    IMPORT_STAR = opcode.opmap["IMPORT_STAR"]
                  ~~~~~~~~~~~~^^^^^^^^^^^^^^^
KeyError: 'IMPORT_STAR'

ERROR Backend subprocess exited when trying to invoke build_wheel
make[1]: *** [debian/rules:86: build_mlat-client] Error 1
make[1]: Leaving directory '/home/abcd/piaware_builder/package-bookworm'
make: *** [debian/rules:116: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
[ERROR] Error in line 164 when executing: dpkg-buildpackage -b --no-sign
abcd@ubuntu-24:~$

 

@obj
@eric1tran

I think the reason for failure of building piaware on Ubuntu 24.o4 Noble Nimbat (daily-build dated 2024-02-25) is due to Python version upgraded from 3.11 to 3.12, resulting in failure to build fa-mlat-client

I tried to down-grade python3.12 to python3.11, but Ubuntu apt refused to downgrade, saying version 3.11 is not available.

 

Ubuntu24.04 Noble (Daily built dated 2024-02-05)

 

I have checked Debian 13 Trixi SID, and it still uses python3.11, but it may also change to 3.12 anytime

I am blocked in the same place…
Any chances for resolution?:slight_smile:

Yes, if and when Flightaware staff @obj and/or @eric1tran take action to resolve it.

May be they have already resolved this issue in development branch, but I did not bother to check it as Ubuntu24 (noble) is in testing stage and is changing continously. Also Flightaware’s focus is on Debian, and not on Ubuntu. The Debian 13 (testing trixie) still uses python3.11 and has still no issues in building fa-mlat-client.

2 Likes

no cx_Freeze release with 3.12 support yet.

2 Likes

@sq6emm

I could successfully build piaware 9.0.1, on Ubuntu-24 (noble testing) but WITHOUT mlat support.

git clone https://github.com/flightaware/piaware_builder
cd piaware_builder
./sensible-build.sh bookworm 
cd package-bookworm/
sudo nano debian/rules

## From file "piaware_builder/package-bookworm/debian/rules", 
## deleted all entries pertaining to "fa-mlat-client", and saved file
## after removing all entries of fa-mlat-client and saving file "rules"
## issued following commands

sudo dpkg-build-package -b --no-sign 
cd ../
sudo dpkg -i piaware_9.0.1_amd64.deb  

 

 

 

1 Like

I confirm, workaround works!
Thanks @abcd567

Dawid

1 Like

@obj
@eric1tran

Tried to use cx_Freeze-6.16.0.dev68, but still failed to build fa-mlat-client

STEP-1

abcd@ubuntu-24:~$ wget https://marcelotduarte.github.io/packages/cx-freeze/cx_Freeze-6.16.0.dev68.tar.gz

abcd@ubuntu-24:~$ sha256sum cx_Freeze-6.16.0.dev68.tar.gz
b24e24d72660c6553890c0c87d41b99cc3e894ff0f1932dcc826473284f1020e  cx_Freeze-6.16.0.dev68.tar.gz

STEP-2

abcd@ubuntu-24:~$ git clone https://github.com/flightaware/piaware_builder

STEP-3

abcd@ubuntu-24:~$ sudo nano piaware_builder/sensible-build.sh

## REPLACED
    bookworm)
        fetch_archive cx_Freeze-6.15.9 \
                      https://github.com/marcelotduarte/cx_Freeze/archive/refs/tags/6.16.0.tar.gz \
                      d32b309b355f2b377dae585a839e39e3251b3f9716f2b4983be92972c2863000 

## BY THIS
    bookworm)
        fetch_archive cx_Freeze-6.16.0.dev68 \
                      https://marcelotduarte.github.io/packages/cx-freeze/cx_Freeze-6.16.0.dev68.tar.gz \
                      b24e24d72660c6553890c0c87d41b99cc3e894ff0f1932dcc826473284f1020e  

STEP-4

abcd@ubuntu-24:~$ sudo sed -i 's/cx_Freeze-6.15.9/cx_Freeze-6.16.0.dev68/g' piaware_builder/bookworm/rules   

STEP-5

abcd@ubuntu-24:~$ cd piaware_builder
./sensible-build.sh bookworm

abcd@ubuntu-24:~/piaware_builder$ cd package-bookworm

abcd@ubuntu-24:~/piaware_builder/package-bookworm$ sudo dpkg-buildpackage -b --no-sign  

 

 

 

 

 

 

@obj
@eric1tran

After failure to build fa-mlat-client (see above post - filelock not found), installed package python3-filelock, and gave command to build piaware package:

sudo apt install python3-filelock   

sudo dpkg-buildpackage -b --no-sign   

Succeeded in building mlat-client, but got stuck in install and dh-clean stages (Errors in Lines 94 & 118 of file debian/rules)

 

 

 

@obj
@eric1tran
 

@obj
@eric1tran

 

@obj

Used cx_Freeze-6.16.0.dev77
piaware .deb package built & installed successfully.

fa-mlat-client gives following runtime error:
ModuleNotFoundError: No module named ‘asyncore’

asyncore — Asynchronous socket handler

Source code: Lib/asyncore.py

Deprecated since version 3.6, will be removed in version 3.12: The asyncore module is deprecated (see PEP 594 for details). Please use asyncio instead.

 

@obj

Yep, I guess that is a fundamental incompatibility with newer python that will need a rework of the client to resolve. asyncio had only just arrived when I originally wrote mlat-client, and wasn’t available on the Debian installs of the time, so that’s why it is still asyncore.

It is good that the Debian13 Trixie (testing) has not yet switched to python3.12, and is still using python3.11, so building piaware and fa-mlat-client did NOT create any problem and was as smooth as on Bookworm and Bullseye.

@obj

Replaced all occurrences of “asyncore” by “asyncio” in all files of folder “package-bookworm/mlat-client” by following command

abcd@ubuntu-24:~$ grep -rl 'asyncore' piaware_builder/package-bookworm/mlat-client | xargs sed -i 's/asyncore/asyncio/g'

Build, installed and ran piaware.
Got following Runtime error:

AttributeError: module 'asyncio' has no attribute 'dispatcher'

Seems I have to wait till you update mlat-client to suite python3.12.
Since Ubuntu24.04 is still in testing stage, and expected to be release by the end of this year, there is no hurry.
Anyway, all this exercise was a good experiment and something to keep me busy. :slight_smile:

 

 

Yeah, asyncio is not at all a drop-in replacement for asyncore, they work quite differently and there will be development work needed to port mlat-client to use asyncio.

1 Like