FlightAware Discussions

Howto Install dump1090-fa on FEDORA and RHEL x86_64

How to install dump1090-fa on FEDORA and RED HAT x86_64

This method has been tested on

  • Fedora 31
  • Red Hat Enterprise Linux (RHEL) 8.1

(1) Install dependencies and build tools

FEDORA - Tools & Dependencies

sudo dnf install git wget   
sudo dnf install make cmake libusb-devel ncurses-devel  

RHEL- Tools & Dependencies

sudo dnf install git wget 
sudo dnf install gcc-c++ make cmake libusbx-devel ncurses-devel  

## In case of issues in building binaries, use following command to install build tool package
## sudo dnf groupinstall 'Development Tools'

.

(2) Fedora & RHEL - Build & Install librtlsdr from source code.

NOTE: The command starting with sudo cmake ../ has 4 flags after it and is very long, and full command is not visible directly. Please scroll right to see and copy it in full.

cd ~/   
git clone https://github.com/steve-m/librtlsdr.git   
cd librtlsdr   
sudo mkdir build && cd build   
sudo cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON -DLIB_INSTALL_DIR=/usr/lib64 -DCMAKE_INSTALL_PREFIX=/usr    
sudo make  
sudo make install  
sudo ldconfig  

.

(3) Fedora & RHEL - Build dump1090-fa linux binary from source code .

cd ~/  
sudo git clone https://github.com/flightaware/dump1090.git dump1090-fa  
cd dump1090-fa  
sudo make BLADERF=no  

.

(4) Fedora & RHEL - Test the Linux Binary

cd ~/dump1090-fa  
sudo ./dump1090  

Sat Jan 25 16:52:54 2020 EST  dump1090-fa  starting up.
rtlsdr: using device #0: Generic RTL2832U (Realtek, RTL2832UFA, SN 00000101)
Detached kernel driver
Found Rafael Micro R820T tuner
rtlsdr: tuner gain set to 49.6 dB

*8dc07976235130f2c79820d7f6ee;
CRC: 000000
RSSI: -3.4 dBFS
Score: 1400
Time: 8240.83us
DF:17 AA:C07976 CA:5 ME:235130F2C79820
 Extended Squitter Aircraft identification and category (4) (reliable)
  ICAO Address:  C07976 (Mode S / ADS-B)
  Air/Ground:    airborne
  Ident:         TSC219
  Category:      A3

.

(5) Fedora & RHEL - Configure & enable systemd for dump1090-fa by copying necessary files from cloned source code.

sudo cp ~/dump1090-fa/dump1090 /usr/bin/dump1090-fa  
sudo cp ~/dump1090-fa/debian/dump1090-fa.default /etc/default/dump1090-fa  
sudo cp ~/dump1090-fa/debian/dump1090-fa.service /usr/lib/systemd/system/dump1090-fa.service  

sudo mkdir -p /usr/share/dump1090-fa/  
sudo cp ~/dump1090-fa/debian/start-dump1090-fa /usr/share/dump1090-fa/start-dump1090-fa   
sudo cp -r ~/dump1090-fa/public_html /usr/share/dump1090-fa/html   
sudo useradd --system dump1090   

sudo systemctl enable dump1090-fa   
sudo systemctl start dump1090-fa    
sudo systemctl status dump1090-fa   

## If status shows FAILED, then reboot the computer, and after reboot check status again
sudo reboot
sudo systemctl status dump1090-fa

(6) Install lighttpd web server

Fedora

sudo dnf install lighttpd   

RHEL

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm  
sudo dnf install lighttpd  

(7) Fedora & RHEL - Copy necessary dump1090-fa’s lighttpd integration & configuration files from source code.

sudo cp ~/dump1090-fa/debian/lighttpd/89-dump1090-fa.conf /etc/lighttpd/conf.d/89-dump1090-fa.conf   

sudo chmod 666 /etc/lighttpd/lighttpd.conf   
echo "server.modules += ( \"mod_alias\" )" >> /etc/lighttpd/lighttpd.conf   
echo "include \"/etc/lighttpd/conf.d/89-dump1090-fa.conf\"" >> /etc/lighttpd/lighttpd.conf   

sudo sed -i 's/server.use-ipv6 = "enable"/server.use-ipv6 = "disable"/' /etc/lighttpd/lighttpd.conf

sudo chmod 644 /etc/lighttpd/lighttpd.conf   

sudo systemctl enable lighttpd   
sudo systemctl start lighttpd   

(8) Fedora & RHEL - Configure SELinux to run permissive for httpd

This will enable lighttpd to pull aircraft data from folder /var/run/dump1090-fa/ :

sudo semanage permissive -a httpd_t   

(9) Fedora & RHEL - Configure Firewall to permit display of SkyView from LAN/internet

sudo firewall-cmd --add-service=http
sudo firewall-cmd --runtime-to-permanent 
sudo firewall-cmd --reload

(10) Reboot Computer

.

Map dispaly in browser of Fedora at localhost/dump1090-fa/

Map dispaly in browser of RHEL at localhost/dump1090-fa/

Map display in browser of another computer on same LAN at IP-of-Fedora:8080

How to install piaware data feeder on Fedora 31 x86_64

Will be posted when & if I succeeded to build piaware data feeder from source code on Fedora.

How to install Planefinder and Flightradar24 data feeders on Fedora 31 and RHEL 8.1 x86_64

(A) PLANEFINDER DATA FEEDER

NOTE:
Planefinder does NOT offer an x64 feeder. It offers only i386 feeder. We will therefore use the i386 feeder.
On fedora the “pfclient_4.1.1_i386.deb” package cannot be installed.
We will therefore use linux binary tarball “pfclient_4.1.1_i386.tar.gz”.
Since the tarball does not contain any configuration, init, or service files, we will create all this manually.

1 - Prepare x86_64 OS to accept i386 linux binary

Fedora

sudo dnf install glibc.i686  glibc.x86_64 audit.x86_64   

.
RHEL

sudo dnf install glibc.i686 libgcc.i686 libgcc.x86_64 audit.x86_64
 

.

2 - Download and uncompress tarball “pfclient_4.1.1_i386.tar.gz”

sudo dnf install wget  
sudo mkdir /usr/share/pfclient  
sudo wget -O /usr/share/pfclient/pfclient_4.1.1_i386.tar.gz "http://client.planefinder.net/pfclient_4.1.1_i386.tar.gz"  
sudo tar zxvf /usr/share/pfclient/pfclient_4.1.1_i386.tar.gz -C /usr/share/pfclient/  
sudo cp /usr/share/pfclient/pfclient /usr/bin/pfclient  

.

3 - Create configuration file

sudo touch /etc/pfclient-config.json  
sudo chmod 666 /etc/pfclient-config.json  
sudo echo "{}" > /etc/pfclient-config.json  

4 - Setup systemd service for auto-start at boot, and for start, stop & status.

4.1 - Create system user pfc to run the pfclient

sudo useradd --system pfc  


4.2 - Create a new blank file pfclient.service

sudo dnf install nano  
sudo nano /lib/systemd/system/pfclient.service  


4.3 - In file pfclient.service , copy-paste following code:

[Unit]
Description=Planefinder Feeder
After=network-online.target

[Service]
Type=simple
SyslogIdentifier=pfclient
RuntimeDirectory=pfclient
RuntimeDirectoryMode=0755
User=pfc
PermissionsStartOnly=true
ExecStartPre=-/bin/mkdir -p /var/log/pfclient
ExecStartPre=-/bin/chown pfc /var/log/pfclient
ExecStart=/usr/bin/pfclient --config_path=/etc/pfclient-config.json --log_path=/var/log/pfclient $ 2>/var/log/pfclient/error.log
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target  

Save file (Ctrl+o) and close file (Ctrl+x)

5 - Enable the pfclient service by following command

sudo systemctl enable pfclient  
sudo systemctl restart pfclient  
sudo systemctl status pfclient  

.

6 - RHEL only: Configure firewall

This is necessary to enable display of Planefinder Configuration and Map page at IP:30053 in browser of another computer on same LAN

sudo firewall-cmd --zone=public --add-port=30053/tcp
firewall-cmd --runtime-to-permanent 
sudo firewall-cmd --reload

##Give following command to see that port 30053 is included in the list
sudo firewall-cmd --list-all --zone=public

7 - Configuring Planefinder Feeder:

In RHEL or Fedora computer, go to page localhost:30053 (or to IP:30053 from another computer) and add your sharing key, latitude, longitude.

.

8 - Useful Commands:

sudo systemctl status pfclient  
sudo systemctl restart pfclient  
sudo systemctl stop pfclient  

.

(B) FLIGHTRADAR24 DATAFEEDER

1 - Download and uncompress tarball “fr24feed_1.0.24-5_amd64.tgz”

sudo mkdir /usr/share/fr24 
sudo wget -O /usr/share/fr24/fr24feed_1.0.24-5_amd64.tgz "https://repo-feed.flightradar24.com/linux_x86_64_binaries/fr24feed_1.0.24-5_amd64.tgz"
sudo tar xvzf /usr/share/fr24/fr24feed_1.0.24-5_amd64.tgz -C /usr/share/fr24
sudo cp /usr/share/fr24/fr24feed_amd64/fr24feed /usr/bin/

.

2 - Create configuration file “fr24feed.ini”

sudo nano /etc/fr24feed.ini

.

3 - Copy-paste following code in the newly created blank file fr24feed.ini

receiver="beast-tcp"
host="127.0.0.1:30005"
fr24key=""

bs="no"
raw="no"
logmode="1"
logpath="/var/log/fr24feed/"
mlat="no"
mlat-without-gps="no"

use-http=yes
http-timeout=20

.

4 - Create user fr24 to run service

sudo useradd --system fr24

.

5 - Create Service file fr24feed.service

sudo nano /lib/systemd/system/fr24feed.service

.

6 - Copy-paste following code in newly created blank file fr24feed.service

[Unit]
Description=Flightradar24 Feeder
After=network-online.target
[Service]
Type=simple
Restart=always
LimitCORE=infinity
RuntimeDirectory=fr24feed
RuntimeDirectoryMode=0755
ExecStartPre=-/bin/mkdir -p /var/log/fr24feed
ExecStartPre=-/bin/chown fr24 /var/log/fr24feed
ExecStart=/usr/bin/fr24feed
User=fr24
PermissionsStartOnly=true
StandardOutput=null
[Install]
WantedBy=multi-user.target

.

7 - Enable and start fr24feed service

sudo systemctl enable fr24feed
sudo systemctl restart fr24feed

.

8 - Installation Completed, please SIGNUP as below:

Option-1
If you already have a feeder key, open file fr24feed.ini by following command and add fr24key:

sudo nano /etc/fr24feed.ini 

Save (Ctrl+o) and Close (Ctrl+x) file fr24feed.ini
Restart fr24feed by following command:

sudo systemctl restart fr24feed

Option-2
Alternatively signup using following command

sudo nano fr24feed --signup 

.

9 - RHEL only: Configure firewall

This is necessary to enable display of Flightradar24 Status & Configuration page at IP:8754 in browser of another computer on same LAN

sudo firewall-cmd --zone=public --add-port=8754/tcp
firewall-cmd --runtime-to-permanent 
sudo firewall-cmd --reload

##Give following command to see that port 8754 is included in the list
sudo firewall-cmd --list-all --zone=public

10 - Checks:

In your RHEL/Fedora computer’s browser, go to web interface at
localhost:8754

In another computer on same LAN, go to web interface at
http://ip-of-fedora:8754

To see status:
sudo systemctl status fr24feed

To restart:
sudo systemctl restart fr24feed

To stop:
sudo systemctl stop fr24feed

Update:

“How to” for dump1090-fa updated to include steps for RHEL (Red Hat Enterpise Linux)

1 Like

Failed attempt to build piaware linux binary from source-code on Red Hat (RHEL)

What have I done wrong?

git clone https://github.com/flightaware/piaware.git
cd piaware 
mkdir build && cd build 
sudo cmake ../

CMake Error: The source directory "/home/abcd/piaware" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.

EDIT:
Search failed

sudo find / -name CMakeLists.txt
[sudo] password for abcd:
find: ‘/run/user/1000/gvfs’: Permission denied
/usr/share/cmake/Modules/FortranCInterface/Verify/CMakeLists.txt
/usr/share/cmake/Modules/FortranCInterface/CMakeLists.txt
/usr/share/cmake/Modules/IntelVSImplicitPath/CMakeLists.txt
/home/abcd/librtlsdr/CMakeLists.txt
/home/abcd/librtlsdr/include/CMakeLists.txt
/home/abcd/librtlsdr/src/CMakeLists.txt
/home/abcd/rtl-sdr/CMakeLists.txt
/home/abcd/rtl-sdr/include/CMakeLists.txt
/home/abcd/rtl-sdr/src/CMakeLists.txt

uh… why are you trying to use cmake? piaware doesn’t use cmake.

(cmake is entirely different to regular make)

$ sudo dnf install tcl  

$ ls -l /bin/tclsh
lrwxrwxrwx. 1 root root 8 Aug 12  2018 /bin/tclsh -> tclsh8.6

.

$ git clone https://github.com/flightaware/piaware.git
$ cd piaware

$ sudo make
'make install' as root to install client package and program

$ sudo make install
make -C package install
make[1]: Entering directory '/home/abcd/piaware/package'
echo 'pkg_mkIndex .' | /bin/tclsh
install -d /usr/lib/piaware_packages /usr/lib/piaware_packages/ca
install fa_piaware_config.tcl fa_adept_client.tcl fa_sudo.tcl fa_services.tcl fa_sysinfo.tcl fa_gps.tcl piaware.tcl tryfinallyshim.tcl egm96.tcl egm96geoid.tcl pkgIndex.tcl /usr/lib/piaware_packages  
install ca/*.pem /usr/lib/piaware_packages/ca
c_rehash /usr/lib/piaware_packages/ca
make[1]: c_rehash: Command not found
make[1]: *** [Makefile:17: install] Error 127
make[1]: Leaving directory '/home/abcd/piaware/package'
make: *** [Makefile:18: install] Error 2

EDIT-1

Done this:

$ sudo find /usr -iname c_rehash
## Above command outputs nothing

$ sudo dnf install openssl 
Package openssl-1:1.1.1c-2.el8.x86_64 is already installed.

$ sudo dnf install openssl-perl 

$ sudo find /usr -iname c_rehash
/usr/bin/c_rehash

Tried make install again
FAILED due to mising tcllauncher (not available in RHEL repository)

$ sudo make install
make -C package install
make[1]: Entering directory '/home/abcd/piaware/package'
install -d /usr/lib/piaware_packages /usr/lib/piaware_packages/ca
install fa_piaware_config.tcl fa_adept_client.tcl fa_sudo.tcl fa_services.tcl fa_sysinfo.tcl fa_gps.tcl piaware.tcl tryfinallyshim.tcl egm96.tcl egm96geoid.tcl pkgIndex.tcl /usr/lib/piaware_packages
install ca/*.pem /usr/lib/piaware_packages/ca
c_rehash /usr/lib/piaware_packages/ca
Doing /usr/lib/piaware_packages/ca
make -C helpers install
make[2]: Entering directory '/home/abcd/piaware/package/helpers'
cc  -Wall -Werror -O  -o droproot droproot.c
install -d /usr/lib/piaware_packages/helpers
install -m 0755 update-piaware-config droproot /usr/lib/piaware_packages/helpers
make[2]: Leaving directory '/home/abcd/piaware/package/helpers'
make -C fa_adept_codec install
make[2]: Entering directory '/home/abcd/piaware/package/fa_adept_codec'
echo 'pkg_mkIndex . fa_adept_codec.tcl fa_adept_schema.tcl none.codec adept_1.x.codec adept_2.1.codec adept_2.2.codec' | /bin/tclsh
install -d /usr/lib/fa_adept_codec
install fa_adept_codec.tcl fa_adept_schema.tcl none.codec adept_1.x.codec adept_2.1.codec adept_2.2.codec pkgIndex.tcl /usr/lib/fa_adept_codec
make[2]: Leaving directory '/home/abcd/piaware/package/fa_adept_codec'
make[1]: Leaving directory '/home/abcd/piaware/package'
make -C programs/piaware install
make[1]: Entering directory '/home/abcd/piaware/programs/piaware'
which: no tcllauncher in (/sbin:/bin:/usr/sbin:/usr/bin)
install -d /usr/bin /usr/lib/piaware
install -m 0755  /usr/bin/piaware
install: missing destination file operand after '/usr/bin/piaware'
Try 'install --help' for more information.
make[1]: *** [Makefile:15: install] Error 1
make[1]: Leaving directory '/home/abcd/piaware/programs/piaware'
make: *** [Makefile:19: install] Error 2

.

$ sudo dnf install tcllauncher

Updating Subscription Management repositories.
Last metadata expiration check: 0:08:47 ago on Sun 02 Feb 2020 02:17:22 PM EST.
No match for argument: tcllauncher
Error: Unable to find a match: tcllauncher

EDIT-2

Built and installed tcllauncher

# I have installed tcl already
$ sudo dnf install tcl-devel autoconf

$ git clone https://github.com/flightaware/tcllauncher.git  
$ cd tcllauncher 
$ autoconf -f 
$ ./configure  
$ make  
$ sudo make install  

$ sudo find / -name tcllauncher
find: ‘/run/user/1000/gvfs’: Permission denied
/usr/bin/tcllauncher
/home/abcd/tcllauncher
/home/abcd/tcllauncher/tcllauncher

.

Tried make install again

$ cd piaware
$ sudo make install  

make -C package install
make[1]: Entering directory '/home/abcd/piaware/package'
install -d /usr/lib/piaware_packages /usr/lib/piaware_packages/ca
install fa_piaware_config.tcl fa_adept_client.tcl fa_sudo.tcl fa_services.tcl fa_sysinfo.tcl fa_gps.tcl piaware.tcl tryfinallyshim.tcl egm96.tcl egm96geoid.tcl pkgIndex.tcl /usr/lib/piaware_packages
install ca/*.pem /usr/lib/piaware_packages/ca
c_rehash /usr/lib/piaware_packages/ca
Doing /usr/lib/piaware_packages/ca
make -C helpers install
make[2]: Entering directory '/home/abcd/piaware/package/helpers'
install -d /usr/lib/piaware_packages/helpers
install -m 0755 update-piaware-config droproot /usr/lib/piaware_packages/helpers
make[2]: Leaving directory '/home/abcd/piaware/package/helpers'
make -C fa_adept_codec install
make[2]: Entering directory '/home/abcd/piaware/package/fa_adept_codec'
install -d /usr/lib/fa_adept_codec
install fa_adept_codec.tcl fa_adept_schema.tcl none.codec adept_1.x.codec adept_2.1.codec adept_2.2.codec pkgIndex.tcl /usr/lib/fa_adept_codec
make[2]: Leaving directory '/home/abcd/piaware/package/fa_adept_codec'
make[1]: Leaving directory '/home/abcd/piaware/package'
make -C programs/piaware install
make[1]: Entering directory '/home/abcd/piaware/programs/piaware'
install -d /usr/bin /usr/lib/piaware
install -m 0755 /bin/tcllauncher /usr/bin/piaware
install *.tcl /usr/lib/piaware
make -C helpers install
make[2]: Entering directory '/home/abcd/piaware/programs/piaware/helpers'
install -d /usr/lib/piaware/helpers
install -m 0755 run-apt-get /usr/lib/piaware/helpers
install -m 0644 flightaware-archive-keyring.gpg /usr/lib/piaware/helpers
make[2]: Leaving directory '/home/abcd/piaware/programs/piaware/helpers'
make[1]: Leaving directory '/home/abcd/piaware/programs/piaware'
make -C programs/piaware-config install
make[1]: Entering directory '/home/abcd/piaware/programs/piaware-config'
install -d /usr/bin /usr/lib/piaware-config
install -m 0755 /bin/tcllauncher /usr/bin/piaware-config
install *.tcl /usr/lib/piaware-config
make[1]: Leaving directory '/home/abcd/piaware/programs/piaware-config'
make -C programs/piaware-status install
make[1]: Entering directory '/home/abcd/piaware/programs/piaware-status'
install -d /usr/bin /usr/lib/piaware-status
install -m 0755 /bin/tcllauncher /usr/bin/piaware-status
install *.tcl /usr/lib/piaware-status
make[1]: Leaving directory '/home/abcd/piaware/programs/piaware-status'
make -C programs/pirehose install
make[1]: Entering directory '/home/abcd/piaware/programs/pirehose'
install -d /usr/bin /usr/lib/pirehose
install -m 0755 /bin/tcllauncher /usr/bin/pirehose
install *.tcl /usr/lib/pirehose
install -m 0755 *.sh /usr/lib/pirehose
make[1]: Leaving directory '/home/abcd/piaware/programs/pirehose'
make -C doc install
make[1]: Entering directory '/home/abcd/piaware/doc'
install -d /usr/share/man/man1
install faup1090.1 piaware.1 piaware-config.1 piaware-status.1 /usr/share/man/man1
make[1]: Leaving directory '/home/abcd/piaware/doc'
make -C scripts install
make[1]: Entering directory '/home/abcd/piaware/scripts'
install -d /etc/init.d
install -m 0755 piaware-rc-script /etc/init.d/piaware
install -d /etc/systemd/system
install piaware.service /etc/systemd/system/piaware.service
install generate-pirehose-cert.service /etc/systemd/system/generate-pirehose-cert.service
make[1]: Leaving directory '/home/abcd/piaware/scripts'
make -C etc install
make[1]: Entering directory '/home/abcd/piaware/etc'
Not installing sudoers file (set INSTALL_SUDOERS=1 to enable)
make[1]: Leaving directory '/home/abcd/piaware/etc'

.

Checked

$ sudo find / -name piaware 

find: ‘/run/user/1000/gvfs’: Permission denied
/etc/rc.d/init.d/piaware
/usr/bin/piaware
/usr/lib/piaware
/home/abcd/piaware
/home/abcd/piaware/programs/piaware

.

$ piaware
application-specific initialization failed: can't find package Tcllauncher exactly 1.10
can't find package Tclx
    while executing
"package require Tclx"
    (file "/usr/lib/Tcllauncher1.10/tcllauncher.tcl" line 5)


EDIT-3

Built & Installed tclx

$ git clone https://github.com/flightaware/tclx.git
$ cd tclx  
$ ./configure  
$ sudo make  
$ sudo make install  

## Checked
$ sudo find / -name  tclx* 

find: ‘/run/user/1000/gvfs’: Permission denied
/usr/lib/tclx8.6
/usr/lib/tclx8.6/tclx.tcl
/home/abcd/tclx
/home/abcd/tclx/library/tclx.tcl
/home/abcd/tclx/win/tclx.rc 

Piaware still fails, wants Tcllauncher1.10

.

Next I re-built and re-installed tcllauncher after giving this command

$ cd tcllauncher 
$ git checkout v1.10

Piaware still FAILS, wants Tcllauncher1.10 :angry:

FWIW, the standard build of piaware uses tcllauncher 1.8 (I wouldn’t expect any problems with 1.10, though, piaware_builder just hasn’t been updated to use a newer tag). The “can’t find package Tcllauncher” error means you have a build/install problem with tcllauncher somewhere; that package is part of tcllauncher (look for tcllauncher-support.tcl)

$ sudo find / -name tcllauncher-support.tcl 

find: ‘/run/user/1000/gvfs’: Permission denied
/usr/lib/Tcllauncher1.10/tcllauncher-support.tcl
/home/abcd/tcllauncher/tcllauncher-support.tcl

.

$ piaware 

application-specific initialization failed: can't find package Tcllauncher exactly 1.10
can't find package Tclx
    while executing
"package require Tclx"
    (file "/usr/lib/Tcllauncher1.10/tcllauncher.tcl" line 5)

.

$ sudo dnf install tcl
Updating Subscription Management repositories.
Last metadata expiration check: 0:02:05 ago on Mon 03 Feb 2020 11:52:01 AM EST.
Package tcl-1:8.6.8-2.el8.x86_64 is already installed.

$ sudo dnf install tclx
Updating Subscription Management repositories.
Last metadata expiration check: 0:03:22 ago on Mon 03 Feb 2020 11:52:01 AM EST.
No match for argument: tclx
Error: Unable to find a match: tclx

Well, you have a tclx installation problem then…

Rebuilt & reinstalled tclx

$ sudo rm -rf tclx

$ git clone https://github.com/flightaware/tclx.git
$ cd tclx  
$ ./configure 
checking for correct TEA configuration... ok (TEA 3.9)
configure: configuring tclx 8.6
checking for Tcl configuration... found /usr/lib64/tclConfig.sh
checking for gcc... gcc
checking whether the C compiler works... yes
.... .... ....
.... .... ....
checking for tclsh... /usr/bin/tclsh8.6
configure: creating ./config.status
config.status: creating Makefile
config.status: WARNING:  'Makefile.in' seems to ignore the --datarootdir setting

$ make 

$ sudo make install
 /bin/sh ./tclconfig/install-sh -c libtclx8.6.so /usr/lib/tclx8.6/libtclx8.6.so
 : /usr/lib/tclx8.6/libtclx8.6.so
 Install tclx.tcl /usr/lib/tclx8.6/tclx.tcl
 Install autoload.tcl /usr/lib/tclx8.6/autoload.tcl
 Install arrayprocs.tcl /usr/lib/tclx8.6/arrayprocs.tcl
 Install compat.tcl /usr/lib/tclx8.6/compat.tcl
 Install convlib.tcl /usr/lib/tclx8.6/convlib.tcl
 Install edprocs.tcl /usr/lib/tclx8.6/edprocs.tcl
 Install events.tcl /usr/lib/tclx8.6/events.tcl
 Install forfile.tcl /usr/lib/tclx8.6/forfile.tcl
 Install globrecur.tcl /usr/lib/tclx8.6/globrecur.tcl
 Install help.tcl /usr/lib/tclx8.6/help.tcl
 Install profrep.tcl /usr/lib/tclx8.6/profrep.tcl
 Install pushd.tcl /usr/lib/tclx8.6/pushd.tcl
 Install setfuncs.tcl /usr/lib/tclx8.6/setfuncs.tcl
 Install showproc.tcl /usr/lib/tclx8.6/showproc.tcl
 Install stringfile.tcl /usr/lib/tclx8.6/stringfile.tcl
 Install tcllib.tcl /usr/lib/tclx8.6/tcllib.tcl
 Install fmath.tcl /usr/lib/tclx8.6/fmath.tcl
 Install buildhelp.tcl /usr/lib/tclx8.6/buildhelp.tcl
 Install pkgIndex.tcl /usr/lib/tclx8.6
Installing header files in /usr/include
Installing ./generic/tclExtend.h
Installing documentation in /usr/share/man
Installing ./doc/TclX.n

Tested, no luck

$ piaware
application-specific initialization failed: can't find package Tcllauncher exactly 1.10
can't find package Tclx
    while executing
"package require Tclx"
    (file "/usr/lib/Tcllauncher1.10/tcllauncher.tcl" line 5)

Noted the tclx files are installed in /usr/lib.
Tried to rebuild and reinstall in /usr/lib64 by using modified ./configure command
./configure --prefix=/usr/lib64
The command sudo make install again installed everything in /usr/lib. :angry:

Red Hat Enterprise Linux

[abcd@localhost ~]$ tclsh
% package require Tclx
can't find package Tclx
% exit

[abcd@localhost ~]$ sudo find / -name tclx8.6
find: ‘/run/user/1000/gvfs’: Permission denied
/usr/lib/tclx8.6
/usr/lib64/tclx8.6

Piaware SD Card image 3.8.0

pi@piaware:~ $ tclsh
% package require Tclx
8.4
% exit

pi@piaware:~ $ sudo find / -name tclx8.4
/usr/lib/tclx8.4
/usr/share/doc/tclx8.4

Piaware Package Install (Built from piaware_builder)

pi@orangepipc:~$ tclsh
% package require Tclx
8.4
% exit

pi@orangepipc:~$ sudo find / -name tclx8.4
find: ‘/proc/2931’: No such file or directory
/usr/lib/tclx8.4
/usr/share/doc/tclx8.4
1 Like

I am having the same problem as you. Building on CentOS 7

$ piaware
application-specific initialization failed: can’t find package Tcllauncher exactly 1.10
can’t find package piaware
while executing
“package require piaware”
(file “/lib/piaware/main.tcl” line 10)
invoked from within
“source /lib/piaware/main.tcl”
(“uplevel” body line 1)
invoked from within
“uplevel #0 source $path”
from tcllauncher running “piaware”

currently stucked here too.

1 Like

Although dump1090-fa is working OK and SkyView map is live and normally updating, this warning keeps popping up every 20~30 seconds. Anybody any thoughts?

lighttpd stat caching is the issue most likely.

1 Like

Anyway, it is irritating, but not a big issue.

By the way, I think I have succeeded (almost) in running piaware, which was failing due to piaware / tclsh not finding tclx.

I was about to complete when in order to remove old copy of tcllauncher, by mistake I issued command
sudo rm -rf /usr/lib64
instead of
sudo rm -rf /usr/lib64/Tcllauncher1.10

After this any command I issue, I started getting
bash: sudo: command not found
bash: su: command not found
and RHEL wont login to root or abcd. :frowning:

I have now deleted its hard drive in VM (RHEL 8.1.vdi), created new HD and reinstalling it from DVD :cry:

Yep. This is why that the setting to disable the cache is there, unfortunately.

(The problem is that the file changes frequently and with the stat cache enabled, lighttpd will sometimes cache a file size that is smaller than the current actual file size, and end up sending only part of the file)

Oops…

OK, reinstalled RHEL, but now new problem.
While building & installing tclx, got error when issued make command.
This did not happen on previous install.
 

$ git clone https://github.com/flightaware/tclx.git
$ cd tclx
$ ./configure
$ make

gcc -DPACKAGE_NAME=\"tclx\" -DPACKAGE_TARNAME=\"tclx\" -DPACKAGE_VERSION=\"8.6\" -DPACKAGE_STRING=\"tclx\ 8.6\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DFULL_VERSION=\"8.6.0\" -DBUILD_tclx=/\*\*/ -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DTCL_THREADS=1 -DMODULE_SCOPE=extern\ __attribute__\(\(__visibility__\(\"hidden\"\)\)\) -DHAVE_HIDDEN=1 -DHAVE_CAST_TO_UNION=1 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_IS_LONG=1 -DUSE_TCL_STUBS=1 -DHAVE_SYS_SELECT_H=1 -DRETSIGTYPE=void -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_STRUCT_TM_TM_ZONE=1 -DHAVE_TM_ZONE=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DNO_UNION_WAIT=1  -I"./generic" -I"./unix" -I"/home/abcd/tcl/generic" -I"/home/abcd/tcl/unix"    -pipe -O2 -fomit-frame-pointer -DNDEBUG -Wall -fPIC  -c `echo ./generic/tclXbsearch.c` -o tclXbsearch.o
In file included from ./generic/tclExtdInt.h:22,
                 from ./generic/tclXbsearch.c:19:
./generic/tclExtend.h:100:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘TCL_VARARGS_DEF’
 EXTERN void TclX_AppendObjResult TCL_VARARGS_DEF(Tcl_Interp *, interpArg);
                                  ^~~~~~~~~~~~~~~
./generic/tclExtend.h:102:48: error: unknown type name ‘CONST’; did you mean ‘CONST86’?
 EXTERN char * TclX_DownShift (char *targetStr, CONST char *sourceStr);
                                                ^~~~~
                                                CONST86
./generic/tclExtend.h:104:27: error: unknown type name ‘CONST’; did you mean ‘CONST86’?
 EXTERN int TclX_StrToInt (CONST char *string, int base, int *intPtr);
                           ^~~~~
                           CONST86
./generic/tclExtend.h:106:32: error: unknown type name ‘CONST’; did you mean ‘CONST86’?
 EXTERN int TclX_StrToUnsigned (CONST char *string,
                                ^~~~~
                                CONST86
./generic/tclExtend.h:111:31: error: unknown type name ‘CONST’; did you mean ‘CONST86’?
                               CONST char *sourceStr);
                               ^~~~~
                               CONST86
./generic/tclExtend.h:146:36: error: unknown type name ‘CONST’; did you mean ‘CONST86’?
 EXTERN void_pt TclX_HandleTblInit (CONST char *handleBase,
                                    ^~~~~
                                    CONST86
./generic/tclExtend.h:164:35: error: unknown type name ‘CONST’; did you mean ‘CONST86’?
                                   CONST  char *handle);
                                   ^~~~~
                                   CONST86
In file included from ./generic/tclXbsearch.c:19:
./generic/tclExtdInt.h:247:19: error: unknown type name ‘CONST’; did you mean ‘CONST86’?
 TclX_StrToOffset (CONST char *string,
                   ^~~~~
                   CONST86
./generic/tclXbsearch.c:55:36: error: expected ‘;’, ‘,’ or ‘)’ before ‘objv’
                     Tcl_Obj *CONST objv[]);
                                    ^~~~
./generic/tclXbsearch.c: In function ‘TclProcKeyCompare’:
./generic/tclXbsearch.c:128:9: warning: implicit declaration of function ‘TclX_AppendObjResult’; did you mean ‘Tcl_AppendResult’? [-Wimplicit-function-declaration]
         TclX_AppendObjResult (searchCBPtr->interp, "invalid integer \"",
         ^~~~~~~~~~~~~~~~~~~~
         Tcl_AppendResult
./generic/tclXbsearch.c: At top level:
./generic/tclXbsearch.c:299:36: error: expected ‘;’, ‘,’ or ‘)’ before ‘objv’
                     Tcl_Obj *CONST objv[])
                                    ^~~~
./generic/tclXbsearch.c: In function ‘TclX_BsearchInit’:
./generic/tclXbsearch.c:372:27: error: ‘TclX_BsearchObjCmd’ undeclared (first use in this function); did you mean ‘Tcl_LsearchObjCmd’?
                           TclX_BsearchObjCmd,
                           ^~~~~~~~~~~~~~~~~~
                           Tcl_LsearchObjCmd
./generic/tclXbsearch.c:372:27: note: each undeclared identifier is reported only once for each function it appears in
At top level:
./generic/tclXbsearch.c:247:1: warning: ‘BinSearch’ defined but not used [-Wunused-function]
 BinSearch (binSearchCB_t *searchCBPtr)
 ^~~~~~~~~
make: *** [Makefile:288: tclXbsearch.o] Error 1

I imagined you had seen both lighttpd configuration files for dump1090-fa, one of them disables stat caching.
If you use that option the error should stop.