This software depends on several other software packages. If you wish to compile from source, also a number of development packages are needed. The names of the packages depend on your linux distribution.
The below software list may be incomplete or may contain no longer needed packages. Please open a ticket if you discover mistakes
On Fedora 33 or 34, install at least the following RPMs with sudo dnf install -y <PACKAGE>
:
sudo dnf install -y clang clang-tools-extra libtool boost-program-options boost-regex curl-devel \
log4cxx log4cxx-devel libconfig libconfig-devel wxGTK3 wxGTK3-devel gtk3-devel freeglut-devel \
librsvg2-devel libexif-devel libexif gobject-introspection expat-devel python3-wxpython4 \
python3-jinja2 python3-matplotlib-wx python3-sip-devel python3-gobject-base python3-configobj \
python3-regex python3-matplotlib-wx python3-scipy wxWidgets-devel wxBase3 wxBase3-devel mpv-libs-devel \
ffmpeg-devel ffmpeg-libs libX11-devel libglvnd-devel libdvbcsa-devel espeak mesa-dri-drivers fmt fmt-devel \
https://github.com/tsduck/tsduck/releases/download/v3.28-2551/tsduck-3.28-2551.fc34.x86_64.rpm
In addition, some python code needs to be installed using sudo pip3 install <PACKAGE>
;
at least the following packages are needed:
sudo pip3 install mpl_scatter_density
On Fedora 36: install at least the following RPMs with sudo dnf install -y <PACKAGE>
:
sudo dnf install -y redhat-lsb-core cmake clang clang-tools-extra libtool boost-program-options \
boost-devel boost-regex boost-context curl-devel log4cxx log4cxx-devel libconfig libconfig-devel \
wxGTK3 wxGTK3-devel gtk3-devel freeglut-devel librsvg2-devel libexif-devel libexif \
gobject-introspection expat-devel python3-wxpython4 python3-jinja2 python3-matplotlib-wx \
python3-sip-devel python3-cachetools python3-gobject-base python3-configobj \
python3-regex python3-matplotlib-wx python3-scipy wxWidgets-devel wxBase3 \
wxBase3-devel libX11-devel libglvnd-devel espeak mesa-dri-drivers mpv-libs-devel libdvbcsa-devel \
ffmpeg-devel mpv-libs-devel tsduck fmt fmt-devel
Some of these packages are provided by rpmfusion, which can be installed using the instructions at https://rpmfusion.org/Configuration
In addition, some python code needs to be installed using sudo pip3 install <PACKAGE>
;
at least the following packages are needed:
sudo pip3 install mpl_scatter_density
And some bugs need to be fixed by upgrading python3-matplotlib-wx to at least version 3.5.2:
sudo dnf update --enablerepo=updates-testing python3-matplotlib-wx
On Fedora 37: install at least the following RPMs with sudo dnf install -y <PACKAGE>
:
sudo dnf install -y redhat-lsb-core cmake clang clang-tools-extra libtool boost-program-options \
boost-devel boost-regex boost-context curl-devel log4cxx log4cxx-devel libconfig libconfig-devel \
wxGTK3 wxGTK-devel gtk3-devel freeglut-devel librsvg2-devel libexif-devel libexif gobject-introspection \
expat-devel python3-wxpython4 python3-jinja2 python3-matplotlib-wx python3-sip-devel python3-cachetools \
python3-gobject-base python3-configobj python3-regex python3-matplotlib-wx python3-scipy wxWidgets-devel \
wxBase3 wxBase-devel libX11-devel libglvnd-devel espeak mesa-dri-drivers mpv-libs-devel libdvbcsa-devel \
ffmpeg-devel mpv-libs-devel https://github.com/tsduck/tsduck/releases/download/v3.30-2710/tsduck-3.30-2710.fc35.x86_64.rpm \
https://github.com/tsduck/tsduck/releases/download/v3.30-2710/tsduck-devel-3.30-2710.fc35.x86_64.rpm \
fmt fmt-devel
Also make sure that the following packages are not installed, as they might lead to compiling or linking with the wrong libraries, resulting in crashes:
sudo dnf remove wxGTK3-devel
Some of these pacakges are provided by rpmfusion, which can be installed using the instructions at https://rpmfusion.org/Configuration
On Fedora 38: install at least the following RPMs with sudo dnf install -y <PACKAGE>
:
sudo dnf install -y redhat-lsb-core cmake clang clang-tools-extra libtool boost-program-options \
boost-devel boost-regex boost-context curl-devel log4cxx log4cxx-devel libconfig libconfig-devel \
wxGTK3 wxGTK-devel gtk3-devel freeglut-devel librsvg2-devel libexif-devel libexif gobject-introspection \
expat-devel python3-wxpython4 python3-jinja2 python3-matplotlib-wx python3-sip-devel python3-cachetools \
python3-gobject-base python3-configobj python3-regex python3-matplotlib-wx python3-scipy wxWidgets-devel \
wxBase3 wxBase-devel libX11-devel libglvnd-devel espeak mesa-dri-drivers mpv-libs-devel libdvbcsa-devel \
ffmpeg-devel mpv-libs-devel tsduck fmt fmt-devel
Also make sure that the following packages are not installed, as they might lead to compiling or linking with the wrong libraries, resulting in crashes:
sudo dnf remove wxGTK3-devel wxBase3-devel wxsvg-devel wxGTK3-devel
Some of these pacakges are provided by rpmfusion, which can be installed using the instructions at https://rpmfusion.org/Configuration
In addition, some python code needs to be installed using sudo pip3 install <PACKAGE>
;
at least the following packages are needed:
sudo pip3 install mpl_scatter_density
And some bugs need to be fixed by upgrading python3-matplotlib-wx to at least version 3.5.2:
sudo dnf update --enablerepo=updates-testing python3-matplotlib-wx
The following instructions may be incomplete/incorrect:
sudo dnf install -y libuuid-devel redhat-lsb-core cmake clang clang-tools-extra libtool boost-program-options \
boost-devel boost-regex boost-context curl-devel log4cxx log4cxx-devel libconfig libconfig-devel \
wxGTK wxGT-devel gtk3-devel freeglut-devel librsvg2-devel libexif-devel libexif gobject-introspection \
expat-devel python3-wxpython4 python3-jinja2 python3-matplotlib-wx python3-sip-devel python3-cachetools \
python3-gobject-base python3-configobj python3-regex python3-matplotlib-wx python3-scipy wxWidgets-devel \
wxBase3 wxBase-devel libX11-devel libglvnd-devel espeak mesa-dri-drivers mpv-libs-devel libdvbcsa-devel \
ffmpeg-devel mpv-libs-devel tsduck fmt fmt-devel
Some of these pacakges are provided by rpmfusion, which can be installed using the instructions at https://rpmfusion.org/Configuration
In addition, some python code needs to be installed using sudo pip3 install <PACKAGE>
;
at least the following packages are needed:
sudo pip3 install mpl_scatter_density
And some bugs need to be fixed by upgrading python3-matplotlib-wx to at least version 3.5.2:
sudo dnf update --enablerepo=updates-testing python3-matplotlib-wx
This seems to work after upgrading a working version from Ubuntu 23.04. Therefore the packages listed for older Ubuntu versions may be ok.
Found by trial and error: Also install
sudo apt install -y clang-16 clang-tools-16 libclang-16-dev libclang-cpp16 \
libstdc++-13-dev libwxgtk3.0-gtk3-dev libgtk-3-dev libwxgtk3.2-dev \
python3-packaging libwxgtk3.2-dev libwxgtk3.2-1 python3-sip-dev \
python3-matplotlib mpv libmpv-dev python3-mpl-scatter-density
The latest neumoDVB version may not work anymore because of an outdated libstdc++. You may need to upgrade.
Ubuntu 23.04 seems to be missing many of the required packages but one user report success by adding Ubuntu 22.04 repositories to /etc/apt/sources.list:
deb http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://archive.canonical.com/ubuntu/ jammy partner
The latest neumoDVB version may not work anymore because of an outdated libstdc++. You may need to upgrade.
sudo apt install -y libboost-all-dev libgtk-3-0 libgtk-3-dev curl libcurl4-openssl-dev libwxgtk-media3.0-gtk3-dev \
gettext libexif-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev python3-configobj python3-cachetools \
python3-jinja2 python3-pip clang-format python3-sip-dev libconfig-dev libconfig++-dev libdvbcsa-dev libmpv-dev \
freeglut3-dev libwxgtk3.0-gtk3-dev python3-wxgtk-media4.0 python3-wxgtk-webview4.0 python3-wxgtk4.0 python3-scipy \
clang lsb-core lsb-release python3-regex liblog4cxx12 liblog4cxx-dev freeglut3 fmt fmt-dev
In addition, some python code needs to be installed using sudo pip3 install <PACKAGE>
;
at least the following packages are needed:
sudo pip3 install mpl_scatter_density
Install clang and clang++ with a version number of at least 14. The newest neumoDVB code does not compile with the clang included in ubuntu
sudo apt install -y libboost-all-dev libgtk-3-0 libgtk-3-dev curl libcurl4-openssl-dev libwxgtk-media3.0-gtk3-dev \
gettext libexif-dev libavcodec-dev libavformat-dev libavutil-dev libswscale-dev python3-jinja2 python3-pip clang-format \
python3-sip-dev libconfig-dev libconfig++-dev libdvbcsa-dev libmpv-dev freeglut3-dev python-wxgtk3.0 python3-wxgtk-media4.0 \
python3-wxgtk-webview4.0 python3-wxgtk4.0 python3-scipy clang lsb-core lsb-release python3-regex fmt fmt-dev
In addition, some python code needs to be installed using sudo pip3 install <PACKAGE>
;
at least the following packages are needed:
sudo pip3 install mpl_scatter_density
The software can be downloaded as follows
cd ~/
git clone --recursive https://github.com/deeptho/neumodvb
Next, build NeumoDVB as follows:
cd ~/neumodvb
mkdir build
mkdir build_ext
cd ~/neumodvb/build
cmake ..
make -j`nproc`
In case of problems, first check for missing pre-requisite software. For some of the pre-requisite software, fairly recent versions are needed.
For troubleshooting, the following information may be useful:
-
Some of the source code being compiled is generated by a python script
src/neumodb/neumodb.py
, which takes its input from configuration filesdbdefs.py
located insrc/neumodb/chdb
, and similar directories. The resulting code is placed inbuild/src/neumodb/chdb
and similar places -
To speed up compilation, some C++ headers are pre-compiled. Usually this works fine, but in some cases, after making changes to header files, the precompiled headers become out of date and need to be rebuild, Usually this will be clear from compiler errors, but in rare cases, the result will be worse: neumoDVB will compile and then crash in strange ways. When this happens, remove all files under
/build
, runcmake ..
again in the build directory.Alternatively, modify the CMakeList.txt files to remove header pre-compilation
-
That being said, the normal and fastest way of recompiling after making changes to sources -- which should work in most cases -- is simply as follows:
cd ~/neumodvb/build;
make -j`nproc`
- In any case, if your distribution uses
ccache
, compilation will be much faster the second time around, even after you clearbuild/
completely. - NeumoDVB contains copies of some external software packages, some of which have been modified.
- Specifically, the database code
lmdb
(renamed toneumolmdb
to avoid confusion with any existing lmdb on your system) contains a few small, but crucial changes compared to the source (e.g., related to setting theFD_CLOEXEC
flag. - The
wxsvg
library (renamed toneumowxsvg
) has been more heavily modified. The modifications consist of added code to allow for efficient embedded of the mpv video player.
After NeumoDVB has been built successfully, you can install it if you wish. Installation is optional: you also run the software directly from the build tree. This makes it easier to debug problems.
cd ~/neumodvb/build
sudo make install
For packaging purposes, commands like make install DESTDIR=/tmp/temporary_location
also work fine.
neumoDVB can work with the regular linuxDVB drivers and supports all cards supported by these drivers.
If you own a supported card, it is best to install the neumo blindscan kernel drivers. These drivers are available at https://github.com/deeptho/blindscan.
Without these drivers, features like blindscan and spectral analysis will not work. neumoDVB has not been tested with the regular kernel drivers. Crashes may occur if you try to use unsupported features. These are bugs. Report them on the issue tracker.