-
Notifications
You must be signed in to change notification settings - Fork 29
Description
While this open-source project is very interesting, it also contains a lot of deficiencies affecting its distribution which could easily be repulsive of anyone remotely aware of shellscripting / linux programs installation and unsuitable for wider use:
💣 shell script: curl | sh (in its worst sudo version curl | sudo sh)
💣 No alternative packaging format/installation, no clear file tree/bundle
💣 Generates root-owned executable using shell-script templating and services from install-time interpolation instead of proper environment management (eg /lib/systemd/system/adsbexchange-mlat2.service)
💣 cp / rm /lib/systemd/, cp scripts/*.sh, ... with a special mention for the cat >> /etc/default/adsbexchange <<"EOF" [dozens of shell commands]...
💣 unclear dependencies + systemd/package/git operations but dependencies on two other Git repositories clone (one in Python, the other in C)
💣 exec(open('mlat/client/version.py').read()) because why not?
💣 Storing files in /boot/*, seriously? Because why not?
💣 Renaming adsbexchange/readsb.git's readsb to /usr/local/share/adsbexchange/feed-adsbx (let's have fun)
💣 No trace of apparmor / container nor any file/filesystem/permission formalism/restriction
There is no way such a "setup" could ever be understood/reproduced/verified/uninstalled... : too many layers/complexity/oddities.
(Out there, decades of packaging practices could show the proper way to install a program in a sane way. it'd be worth getting inspiration from them)
- The ~600 shellscript LoC from feedclient/ should rather almost disappear entirely because in the end it's just about running
readsb --net --net-only --quiet --write-json /run/adsbexchange-feed --net-beast-reduce-interval $REDUCE_INTERVAL $TARGET $NET_OPTIONS --lat "$LATITUDE" --lon "$LONGITUDE" $UUID_FILE $JSON_OPTIONS $UAT_SOURCE $SOURCE mlat-clientshould be optional- Clearer documentation (and separation) should exist between root-owner code, socket/network, parsing programs, misc-infra-services-distribution-specific-installation
- Avoid
whiptail/configure.shsteps in favor of a simply formatted configuration file - pip, .deb should be the obviously preferable distribution method (as mlat-client intended at some point)