diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b0b1ccb..bf2c818 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,8 +34,8 @@ jobs: - name: Install dependencies and build run: | - sudo apt-get -y update - sudo apt-get -y install build-essential cmake libfftw3-dev libusb-1.0-0-dev librtlsdr-dev libcurl4-gnutls-dev cppcheck iwyu + sudo apt-get update + sudo apt-get -y --no-install-recommends install build-essential cmake libfftw3-dev libusb-1.0-0-dev librtlsdr-dev libcurl4-gnutls-dev cppcheck help2man make - name: Perform CodeQL Analysis (SAST) diff --git a/.gitignore b/.gitignore index db9da29..d826622 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ *.o *.a *.iq +*.c2 rtlsdr_wsprd fftw_wisdom.dat hashtable.txt diff --git a/Dockerfile b/Dockerfile index 5585336..a8e9e4c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,8 @@ RUN apt-get update && \ libfftw3-dev \ libusb-1.0-0-dev \ pkg-config \ - unzip && \ + unzip \ + help2man && \ rm -rf /var/lib/apt/lists/* ADD https://github.com/steve-m/librtlsdr/archive/master.zip /root/librtlsdr-master.zip diff --git a/Makefile b/Makefile index ec41078..0ded5d3 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ LIBS = -lusb-1.0 -lrtlsdr -lpthread -lfftw3f -lcurl -lm OBJS = rtlsdr_wsprd.o wsprd/wsprd.o wsprd/wsprsim_utils.o wsprd/wsprd_utils.o wsprd/tab.o wsprd/fano.o wsprd/nhash.o -TARGETS = rtlsdr_wsprd #rtlsdr_wsprd.1 +TARGETS = rtlsdr_wsprd rtlsdr_wsprd.1 .PHONY: all clean @@ -21,12 +21,12 @@ rtlsdr_wsprd: $(OBJS) $(CC) -o $@ $^ $(LIBS) clean: - rm -f *.o wsprd/*.o $(TARGETS) fftw_wisdom.dat hashtable.txt selftest.iq + rm -f *.o *.1.gz wsprd/*.o $(TARGETS) fftw_wisdom.dat hashtable.txt selftest.iq install: install rtlsdr_wsprd /usr/local/bin/rtlsdr_wsprd - #install rtlsdr_wsprd.1.gz /usr/local/man/man1/rtlsdr_wsprd.1.gz + install rtlsdr_wsprd.1.gz /usr/local/man/man1/rtlsdr_wsprd.1.gz %.1: %.c | % - -help2man --no-info --output=$@ ./$| - #gzip rtlsdr_wsprd.1 + -help2man --no-info --no-discard-stderr --output=$@ ./$| + gzip rtlsdr_wsprd.1 diff --git a/README.md b/README.md index 3ccb788..b354ef1 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ To install and use your dongle on a Raspberry Pi with a Raspberry Pi OS, follow ```bash echo "== Install dependencies" -sudo apt-get update && sudo apt-get -y install build-essential clang cmake libfftw3-dev libusb-1.0-0-dev libcurl4-gnutls-dev ntp git +sudo apt-get update && sudo apt-get -y install build-essential clang cmake libfftw3-dev libusb-1.0-0-dev libcurl4-gnutls-dev help2man ntp git echo "== Install rtl-sdr library (on RPi, don't use your distro package)" git clone https://github.com/osmocom/rtl-sdr @@ -64,7 +64,7 @@ This application written in C does: 3. Install dependencies & useful tools (for example, [NTP](https://en.wikipedia.org/wiki/Network_Time_Protocol) for time synchronization). Example with a Debian based OS, like Rasbian, or Raspberry Pi OS: ```bash - sudo apt-get update && sudo apt-get -y install build-essential clang cmake libfftw3-dev libusb-1.0-0-dev libcurl4-gnutls-dev ntp git + sudo apt-get update && sudo apt-get -y install build-essential clang cmake libfftw3-dev libusb-1.0-0-dev libcurl4-gnutls-dev help2man ntp git ``` 4. Install `rtl-sdr` library manually. **Do not use the `librtlsdr-dev` package on Raspberry PiOS**. There is a know bug with this lib and rtlsdr_wsprd will not be able to get enough samples (don't decode anything & 100% CPU pattern). diff --git a/rtlsdr_wsprd.c b/rtlsdr_wsprd.c index 2b43185..8027e7f 100644 --- a/rtlsdr_wsprd.c +++ b/rtlsdr_wsprd.c @@ -836,7 +836,7 @@ int main(int argc, char **argv) { initDecoder_options(); if (argc <= 1) - usage(stderr, 1); + usage(stdout, EXIT_SUCCESS); while ((opt = getopt_long(argc, argv, short_options, long_options, &option_index)) != -1) { switch (opt) {