Skip to content

project's installation/setup severe red flags #16

@drzraf

Description

@drzraf

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-client should 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.sh steps in favor of a simply formatted configuration file
  • pip, .deb should be the obviously preferable distribution method (as mlat-client intended at some point)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions