CzADSB-Packages
Obsah
Úvod
Na následující stránce je postup na vytvoření balíčků pro Debian pro snadnou instalaci. Samozřejmě se časem může něco změnit, ale to teď nevím.
Instalace podpory
Prvně provedeme aktualizaci a nainstalujeme potřebné programy a moduly:
sudo apt update && sudo apt upgrade -y sudo apt install --no-install-recommends --no-install-suggests -y \ git build-essential debhelper libusb-1.0-0-dev pkg-config fakeroot libncurses-dev zlib1g-dev libzstd-dev librtlsdr-dev help2man rsync sudo apt install --no-install-recommends --no-install-suggests -y \ devscripts tcl8.6-dev autoconf python3-dev python3-venv python3-setuptools python3-build python3-pip python3-wheel \ libz-dev openssl libboost-system-dev libboost-program-options-dev libboost-regex-dev libboost-filesystem-dev patchelf
ReADSB
Zdroj: https://github.com/wiedehopf/readsb
cd git clone --depth 20 https://github.com/wiedehopf/readsb.git cd readsb rm -f ../readsb_*.deb export DEB_BUILD_OPTIONS=noddebs # Sestaveni bez podpory zavislosti na dalsi prijimace # dpkg-buildpackage -b -ui -uc -us # # Seatvani s podporou rtlsdr # dpkg-buildpackage -b -ui -uc -us --build-profiles=rtlsdr # # Sestaveni s podporou vsech zarizeni # dpkg-buildpackage -b -ui -uc -us --build-profiles=with_sdrs # dpkg-buildpackage -b -ui -uc -us ls -l ../readsb_*.deb . /etc/os-release rsync ../readsb_*.deb webser1:/home/tydyt/rxw/dists/${VERSION_CODENAME}/
Mlat klient
Zdroj https://github.com/mutability/mlat-client
cd git clone https://github.com/mutability/mlat-client.git cd mlat-client export DEB_BUILD_OPTIONS=noddebs dpkg-buildpackage -b -ui -uc -us ls -l ../mlat-client_*.deb . /etc/os-release rsync ../mlat-client_*.deb webser1:/home/tydyt/rxw/dists/${VERSION_CODENAME}/
PiAware
Zdroj https://github.com/flightaware/piaware_builder - bohužel k dnešnímu dni nepodporuje pořád trixie !
cd git clone https://github.com/flightaware/piaware_builder.git . /etc/os-release ./piaware_builder/sensible-build.sh ${VERSION_CODENAME} cd ./piaware_builder/package-${VERSION_CODENAME} export DEB_BUILD_OPTIONS=noddebs dpkg-buildpackage -b -ui -uc -us --no-sign ls -l ../piaware*.deb rsync ../piaware*.deb webser1:/home/tydyt/rxw/dists/${VERSION_CODENAME}/
Archytektury
(amd64, arm64, armhf, i386)
Multiarchitektura
Jde o jednodušší veriantu z možností kompilace deb balíčků pro různé platformy. Problém je v případě potřeby python3-dev, který je potřeba pro jednotlivé platformy, ale ty jsou vzájemném konfliktu. To se obchází přidáním parametru -d při bildování.
Příprava:
# Upgradujeme system, aktivujeme pozadovane platformy a aktualizujeme seznam balicku sudo apt update && sudo apt upgrade -y sudo dpkg --add-architecture arm64 sudo dpkg --add-architecture armhf sudo dpkg --add-architecture i386 sudo apt update # Doinstalujeme potrebne balicky sudo apt install -y git build-essential devscripts debhelper help2man help2man pkg-config sudo apt install -y crossbuild-essential-i386 libncurses-dev:i386 zlib1g-dev:i386 sudo apt install -y python3-all python3-dev python3-setuptools gcc-aarch64-linux-gnu gcc-arm-linux-gnueabihf sudo apt install -y libpython3-dev:* libzstd-dev:* # Vlastni projekty pak vyzaduji knihovny. Musi se nainstalovat jejich vyvojove verze (-dev) pro jednotlive platformy. Pokud o tom vime, rovnou doinstalujeme. sudo apt install -y libusb-1.0-0-dev:* librtlsdr-dev:* libncurses-dev:* zlib1g-dev:*
Následně se můžeme pustit do vlatní kompilace. Stáhneme projekt z gitu a postupně spustíme kompilaci. Pro mlat-client musíme ještě přidat parametr "-d" aby se ignoroval problem z python3-dev.
# Stahneme projekt z gitu a prepneme se do projektu git clone https://github.com/wiedehopf/readsb.git cd readsb # Nastavime options a postupne spustime bildovani export DEB_BUILD_OPTIONS="noautodbgsym nostrip" dpkg-buildpackage -aamd64 -us -uc -b dpkg-buildpackage -aarm64 -us -uc -b dpkg-buildpackage -aarmhf -us -uc -b dpkg-buildpackage -ai386 -us -uc -b
Hodnoty pro DEB_BUILD_OPTIONS:
- noautodbgsym: Zakáže vytváření -dbgsym balíčků.
- nostrip: Zabrání debhelperu v ořezávání binárek, což často vyřeší konflikt s křížovými nástroji.
Hodnoty pro dpkg-buildpackage
- -aarm64 > specifikuje cílovou architekturu
- -us -uc > přeskočí podepisování balíčku
- -b > znamená sestavit pouze binární balíček (ne source balíček)
Poznamka: Pokud při kompilaci budou chybět nějaké balíčky, zobrazí se v chybové správě. Většinou je stačí doinstalovat s příponou dle archytektury [ :arm64 | :armhf | ... ]
Pro mlat klienta pouzijeme jeste parametr -d:
dpkg-buildpackage -aarm64 -us -uc -b -d
Chroot
Jedná se o emulaci konkrétní platformy. Jde o složitější způsob, ale měl by být "čistčí". Přesto i zde nastavájí specifické problémy v závislosti na projektu.
Příprava:
# Upgradujeme system a nainstalujeme potrebne balicky sudo apt update && sudo apt upgrade -y sudo apt install -y sbuild debian-archive-keyring schroot debootstrap qemu-user-static binfmt-support python3-setuptools python3-all dh-python # Pro jistotu vycistine adresare a doinstalujeme pozadovane platformy: sudo rm -rf /srv/chroot/*-sbuild sudo sbuild-createchroot --arch=amd64 bookworm /srv/chroot/bookworm-amd64-sbuild http://deb.debian.org/debian/ sudo sbuild-createchroot --arch=arm64 bookworm /srv/chroot/bookworm-arm64-sbuild http://deb.debian.org/debian/ sudo sbuild-createchroot --arch=armhf bookworm /srv/chroot/bookworm-armhf-sbuild http://deb.debian.org/debian/ sudo sbuild-createchroot --arch=i386 bookworm /srv/chroot/bookworm-i386-sbuild http://deb.debian.org/debian/ sudo sbuild-createchroot --arch=amd64 trixie /srv/chroot/trixie-amd64-sbuild http://deb.debian.org/debian/ sudo sbuild-createchroot --arch=arm64 trixie /srv/chroot/trixie-arm64-sbuild http://deb.debian.org/debian/ sudo sbuild-createchroot --arch=armhf trixie /srv/chroot/trixie-armhf-sbuild http://deb.debian.org/debian/ # Nastavime prava na uzivatele, odhlasime se a znovu prihlasime aby se prava aplikovali (mozna jde pouzit newgrp) sudo sbuild-adduser $USER cp /usr/share/doc/sbuild/examples/example.sbuildrc /home/$USER/.sbuildrc logout
Po opětovném přihlášení se mužeme spustit do bildování. Pokud je repozitář správně připraven, tak by mělo být vše v pořádku. Často se stává že v souboru `debian/control` chybí v sekci `Build-Depends` potřebné knihovny. To lze pořešit přidáním parametru `--add-depends`.
# Stahneme z gitu pozadovany zdroj # Pro ARM 64-bit (misto prametru -b muze byt --debbuildopts="-b -us -uc -ui") export DEB_BUILD_OPTIONS="noautodbgsym nostrip" sbuild --arch=arm64 -d bookworm -b --no-run-lintian --add-depends=python3-setuptools,python3-all # Pro ARM 32-bit (armhf) export DEB_BUILD_OPTIONS="noautodbgsym nostrip" sbuild --arch=armhf -d bookworm -b --no-run-lintian --add-depends=python3-setuptools,python3-all