From 3082ca232799afb396346ed60188838dcbb5c216 Mon Sep 17 00:00:00 2001 From: Robin ALEXANDER Date: Fri, 4 Mar 2022 10:53:24 +0100 Subject: Rename odr-get into mmbtools-get --- install/README.md | 8 +- install/mmbtools-get | 266 ++++++++++++++++++++++++++++++++++++++++++++++ install/mmbtools-get.conf | 11 ++ install/odr-get | 266 ---------------------------------------------- install/odr-get.conf | 11 -- 5 files changed, 281 insertions(+), 281 deletions(-) create mode 100644 install/mmbtools-get create mode 100644 install/mmbtools-get.conf delete mode 100644 install/odr-get delete mode 100644 install/odr-get.conf (limited to 'install') diff --git a/install/README.md b/install/README.md index ce94d45..0fbcb3c 100644 --- a/install/README.md +++ b/install/README.md @@ -4,7 +4,7 @@ - [Removal](#removal) # Introduction -The goal of the odr-get shell script is to install: +The goal of the mmbtools-get shell script is to install: - the [odr-mmbtools](https://www.opendigitalradio.org/mmbtools) components developed by the [Open Digital Radio](https://www.opendigitalradio.org/) non-profit association on a clean debian environment - Working configuration files that you can later customize as you see fit @@ -41,10 +41,10 @@ If you want to quickly setup a lite clean debian environment, we suggest you use 1. Install the ODR-mmbTools suite and the sample configuration folder ``` # Install the stable version of odr-mmbTools - bash $HOME/dab-scripts/install/odr-get --branch master install + bash $HOME/dab-scripts/install/mmbtools-get --branch master install # Or install the next version of odr-mmbTools - bash $HOME/dab-scripts/install/odr-get --branch next install + bash $HOME/dab-scripts/install/mmbtools-get --branch next install ``` # Removal @@ -52,5 +52,5 @@ If you wish to remove the odr-mmbTools suite and the sample configuration folder 1. Stop all odr-mmbTools related jobs in supervisor 2. Remove the ODR-mmbTools software suite and the configuration folder ``` - bash $HOME/dab-scripts/install/odr-get remove + bash $HOME/dab-scripts/install/mmbtools-get remove ``` diff --git a/install/mmbtools-get b/install/mmbtools-get new file mode 100644 index 0000000..ac50d08 --- /dev/null +++ b/install/mmbtools-get @@ -0,0 +1,266 @@ +#!/bin/bash + +# mmbtools-get - Build, install, uninstall, remove the software stack +# Copyright (C) 20222 Robin ALEXANDER +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +## CONSTANTS +source $(realpath $(dirname $0))/mmbtools-get.conf + +print_usage () { + cat <<- EOF + Usage: + mmbtools-get [option] action + + Option: + -h, --help Print this help + -b, --branch Specify the odr-mmbTools branch to use + + Action: + install Install the programs and the configuration sample + remove Remove the programs and the configuration sample + +EOF +} + +install_base () { + # Install the essential tools and create the tools root directory + sudo apt-get update + sudo apt-get install -y build-essential automake libtool supervisor + + if [ ! -d ${DIR_MMB} ]; then + mkdir ${DIR_MMB} + fi + + if [ ! $(grep inet_http_server /etc/supervisor/supervisord.conf) ]; then + cat << EOF | sudo tee -a /etc/supervisor/supervisord.conf > /dev/null + +[inet_http_server] +port = 8001 +username = odr ; Auth username +password = odr ; Auth password +EOF + fi +} + +install_audioenc () { + # Install mmb-tools: audio encoder + sudo apt-get install -y libzmq3-dev libzmq5 libvlc-dev vlc-data vlc-plugin-base libcurl4-openssl-dev pkg-config + if [ ! -d ${DIR_AUDIO} ]; then + pushd ${DIR_MMB} + git clone https://github.com/Opendigitalradio/ODR-AudioEnc.git --branch ${1} + popd + fi + pushd ${DIR_AUDIO} + ./bootstrap + ./configure --enable-vlc + make + sudo make install + make clean + popd +} + +install_padenc () { + # Install mmb-tools: PAD encoder + sudo apt-get install -y libmagickwand-dev + if [ ! -d ${DIR_PAD} ]; then + pushd ${DIR_MMB} + git clone https://github.com/Opendigitalradio/ODR-PadEnc.git --branch ${1} + popd + fi + pushd ${DIR_PAD} + ./bootstrap + ./configure + make + sudo make install + make clean + popd +} + +install_dabmux () { + # Install mmb-tools: dab multiplexer + sudo apt-get install -y libboost-system-dev libcurl4-openssl-dev python3-zmq + if [ ! -d ${DIR_MUX} ]; then + pushd ${DIR_MMB} + git clone https://github.com/Opendigitalradio/ODR-DabMux.git --branch ${1} + popd + fi + pushd ${DIR_MUX} + ./bootstrap.sh + ## Temporary, until ODR-DabMux configure is modified + arch=$(uname -m) + if [ "${arch}" = "armv7l" ]; then + ./configure --with-boost-libdir=/usr/lib/arm-linux-gnueabihf + else + ./configure + fi + make + sudo make install + make clean + popd +} + +install_dabmod () { + # Install mmb-tools: modulator + sudo apt-get install -y libfftw3-dev libsoapysdr-dev libuhd-dev + if [ ! -d ${DIR_MOD} ]; then + pushd ${DIR_MMB} + git clone https://github.com/Opendigitalradio/ODR-DabMod.git --branch ${1} + popd + fi + pushd ${DIR_MOD} + ./bootstrap.sh + ./configure CFLAGS="-O3 -DNDEBUG" CXXFLAGS="-O3 -DNDEBUG" --enable-fast-math --disable-zeromq + make + sudo make install + make clean + popd +} + +install_fdkaac () { + # Install mmb-tools: fdk-aac + if [ ! -d ${DIR_FDKAAC} ]; then + pushd ${DIR_MMB} + git clone https://github.com/Opendigitalradio/fdk-aac.git + popd + fi + pushd ${DIR_FDKAAC} + ./bootstrap + ./configure + make + sudo make install + make clean + popd +} + +install_srccmp () { + # Install mmb-tools: source companion + if [ ! -d ${DIR_SRCCMP} ]; then + pushd ${DIR_MMB} + git clone https://github.com/Opendigitalradio/ODR-SourceCompanion.git --branch ${1} + popd + fi + pushd ${DIR_SRCCMP} + ./bootstrap + ./configure + make + sudo make install + make clean + popd +} + +install_encmgr () { + # Install mmb-tools: encoder manager + sudo apt-get install -y python3-cherrypy3 python3-jinja2 python3-serial python3-yaml supervisor python3-pysnmp4 + if [ ! -d ${DIR_ENCMGR} ]; then + pushd ${DIR_MMB} + git clone https://github.com/Opendigitalradio/ODR-EncoderManager.git --branch ${1} + popd + fi + ## Add the current user to the dialout and audio groups + sudo usermod --append --group dialout $(id --user --name) + sudo usermod --append --group audio $(id --user --name) +} + +install_config () { +# Copy the configuration files + if [ -d ${DIR_CONFIG} ]; then + rm -r ${DIR_CONFIG} + fi + cp -r $(realpath $(dirname $0))/../${CONFIG_NAME} ${DIR_CONFIG} + sudo ln -s ${DIR_CONFIG}/supervisor/*.conf /etc/supervisor/conf.d/ + + ## Adapt the supervisor configuration files + sed -e "s;user=pi;user=$(id --user --name);g" -i ${DIR_CONFIG}/supervisor/*.conf + sed -e "s;group=pi;group=$(id --group --name);g" -i ${DIR_CONFIG}/supervisor/*.conf + sed -e "s;/home/pi;${HOME};g" -i ${HOME}/config/supervisor/*.conf + + ## Adapt the ODR-EncoderManager configuration file + sed -e "s;/home/pi;${HOME};g" -i ${DIR_CONFIG}/encodermanager.json + sed -e "s;\"user\": \"pi\";\"user\": \"$(id --user --name)\";g" -i ${DIR_CONFIG}/encodermanager.json + sed -e "s;\"group\": \"pi\";\"group\": \"$(id --group --name)\";g" -i ${DIR_CONFIG}/encodermanager.json + + ## Adapt the odr-misc.conf + sed -e "s;--host=raspberrypi.local;--host=$(hostname -I | awk '{print $1}');" -i ${DIR_CONFIG}/supervisor/ODR-misc.conf + + ## Restart supervisor + sudo supervisorctl reread + sudo supervisorctl reload + + echo "Sample configuration files installed" +} + +install () { + # Clone the sources, build and install programs, clean-up + install_base ${1} + install_fdkaac ${1} + install_audioenc ${1} + install_padenc ${1} + install_dabmux ${1} + install_dabmod ${1} + install_srccmp ${1} + install_encmgr ${1} + install_config + sudo ldconfig + + sudo apt-get purge -y + sudo rm -rf /var/lib/apt/lists/* + + echo "ODR-mmbTools suite and configuration files installed" +} + +remove () { + # Uninstall programs + for makefile in $(ls ${DIR_MMB}/**/Makefile); do + pushd $(dirname ${makefile}) + sudo make uninstall + popd + done + + # Delete sources + rm -rf ${DIR_MMB} + + # Delete configuration files + rm -rf ${DIR_CONFIG} + + # Update supervisor + sudo rm /etc/supervisor/conf.d/ODR-* + sudo supervisorctl reread + sudo supervisorctl reload + + echo "ODR-mmbTools suite and configuration files removed" +} + +# MAIN PROGRAM +branch="master" +action="" + +while [ "$#" -gt 0 ] ; do + case "${1}" in + (-h|--help) print_usage; exit 0 ;; + (-b|--branch) branch="${2}" ; shift ;; + install) action="install" ;; + remove) action="remove" ;; + *) print_usage; exit 1 ;; + esac + shift +done + +if [ "${action}" == "install" ]; then + install ${branch} +else + remove +fi \ No newline at end of file diff --git a/install/mmbtools-get.conf b/install/mmbtools-get.conf new file mode 100644 index 0000000..e20380d --- /dev/null +++ b/install/mmbtools-get.conf @@ -0,0 +1,11 @@ +# DEFINE DIRECTORIES +CONFIG_NAME=config +DIR_CONFIG=${HOME}/${CONFIG_NAME} +DIR_MMB=${HOME}/ODR-mmbTools +DIR_AUDIO=${DIR_MMB}/ODR-AudioEnc +DIR_PAD=${DIR_MMB}/ODR-PadEnc +DIR_MUX=${DIR_MMB}/ODR-DabMux +DIR_MOD=${DIR_MMB}/ODR-DabMod +DIR_FDKAAC=${DIR_MMB}/fdk-aac +DIR_SRCCMP=${DIR_MMB}/ODR-SourceCompanion +DIR_ENCMGR=${DIR_MMB}/ODR-EncoderManager \ No newline at end of file diff --git a/install/odr-get b/install/odr-get deleted file mode 100644 index e6d7147..0000000 --- a/install/odr-get +++ /dev/null @@ -1,266 +0,0 @@ -#!/bin/bash - -# odr-get - Build, install, uninstall, remove the software stack -# Copyright (C) 20222 Robin ALEXANDER -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# - -## CONSTANTS -source $(realpath $(dirname $0))/odr-get.conf - -print_usage () { - cat <<- EOF - Usage: - odr-get [option] action - - Option: - -h, --help Print this help - -b, --branch Specify the odr-mmbTools branch to use - - Action: - install Install the programs and the configuration sample - remove Remove the programs and the configuration sample - -EOF -} - -install_base () { - # Install the essential tools and create the tools root directory - sudo apt-get update - sudo apt-get install -y build-essential automake libtool supervisor - - if [ ! -d ${DIR_MMB} ]; then - mkdir ${DIR_MMB} - fi - - if [ ! $(grep inet_http_server /etc/supervisor/supervisord.conf) ]; then - cat << EOF | sudo tee -a /etc/supervisor/supervisord.conf > /dev/null - -[inet_http_server] -port = 8001 -username = odr ; Auth username -password = odr ; Auth password -EOF - fi -} - -install_audioenc () { - # Install mmb-tools: audio encoder - sudo apt-get install -y libzmq3-dev libzmq5 libvlc-dev vlc-data vlc-plugin-base libcurl4-openssl-dev pkg-config - if [ ! -d ${DIR_AUDIO} ]; then - pushd ${DIR_MMB} - git clone https://github.com/Opendigitalradio/ODR-AudioEnc.git --branch ${1} - popd - fi - pushd ${DIR_AUDIO} - ./bootstrap - ./configure --enable-vlc - make - sudo make install - make clean - popd -} - -install_padenc () { - # Install mmb-tools: PAD encoder - sudo apt-get install -y libmagickwand-dev - if [ ! -d ${DIR_PAD} ]; then - pushd ${DIR_MMB} - git clone https://github.com/Opendigitalradio/ODR-PadEnc.git --branch ${1} - popd - fi - pushd ${DIR_PAD} - ./bootstrap - ./configure - make - sudo make install - make clean - popd -} - -install_dabmux () { - # Install mmb-tools: dab multiplexer - sudo apt-get install -y libboost-system-dev libcurl4-openssl-dev python3-zmq - if [ ! -d ${DIR_MUX} ]; then - pushd ${DIR_MMB} - git clone https://github.com/Opendigitalradio/ODR-DabMux.git --branch ${1} - popd - fi - pushd ${DIR_MUX} - ./bootstrap.sh - ## Temporary, until ODR-DabMux configure is modified - arch=$(uname -m) - if [ "${arch}" = "armv7l" ]; then - ./configure --with-boost-libdir=/usr/lib/arm-linux-gnueabihf - else - ./configure - fi - make - sudo make install - make clean - popd -} - -install_dabmod () { - # Install mmb-tools: modulator - sudo apt-get install -y libfftw3-dev libsoapysdr-dev libuhd-dev - if [ ! -d ${DIR_MOD} ]; then - pushd ${DIR_MMB} - git clone https://github.com/Opendigitalradio/ODR-DabMod.git --branch ${1} - popd - fi - pushd ${DIR_MOD} - ./bootstrap.sh - ./configure CFLAGS="-O3 -DNDEBUG" CXXFLAGS="-O3 -DNDEBUG" --enable-fast-math --disable-zeromq - make - sudo make install - make clean - popd -} - -install_fdkaac () { - # Install mmb-tools: fdk-aac - if [ ! -d ${DIR_FDKAAC} ]; then - pushd ${DIR_MMB} - git clone https://github.com/Opendigitalradio/fdk-aac.git - popd - fi - pushd ${DIR_FDKAAC} - ./bootstrap - ./configure - make - sudo make install - make clean - popd -} - -install_srccmp () { - # Install mmb-tools: source companion - if [ ! -d ${DIR_SRCCMP} ]; then - pushd ${DIR_MMB} - git clone https://github.com/Opendigitalradio/ODR-SourceCompanion.git --branch ${1} - popd - fi - pushd ${DIR_SRCCMP} - ./bootstrap - ./configure - make - sudo make install - make clean - popd -} - -install_encmgr () { - # Install mmb-tools: encoder manager - sudo apt-get install -y python3-cherrypy3 python3-jinja2 python3-serial python3-yaml supervisor python3-pysnmp4 - if [ ! -d ${DIR_ENCMGR} ]; then - pushd ${DIR_MMB} - git clone https://github.com/Opendigitalradio/ODR-EncoderManager.git --branch ${1} - popd - fi - ## Add the current user to the dialout and audio groups - sudo usermod --append --group dialout $(id --user --name) - sudo usermod --append --group audio $(id --user --name) -} - -install_config () { -# Copy the configuration files - if [ -d ${DIR_CONFIG} ]; then - rm -r ${DIR_CONFIG} - fi - cp -r $(realpath $(dirname $0))/../${CONFIG_NAME} ${DIR_CONFIG} - sudo ln -s ${DIR_CONFIG}/supervisor/*.conf /etc/supervisor/conf.d/ - - ## Adapt the supervisor configuration files - sed -e "s;user=pi;user=$(id --user --name);g" -i ${DIR_CONFIG}/supervisor/*.conf - sed -e "s;group=pi;group=$(id --group --name);g" -i ${DIR_CONFIG}/supervisor/*.conf - sed -e "s;/home/pi;${HOME};g" -i ${HOME}/config/supervisor/*.conf - - ## Adapt the ODR-EncoderManager configuration file - sed -e "s;/home/pi;${HOME};g" -i ${DIR_CONFIG}/encodermanager.json - sed -e "s;\"user\": \"pi\";\"user\": \"$(id --user --name)\";g" -i ${DIR_CONFIG}/encodermanager.json - sed -e "s;\"group\": \"pi\";\"group\": \"$(id --group --name)\";g" -i ${DIR_CONFIG}/encodermanager.json - - ## Adapt the odr-misc.conf - sed -e "s;--host=raspberrypi.local;--host=$(hostname -I | awk '{print $1}');" -i ${DIR_CONFIG}/supervisor/ODR-misc.conf - - ## Restart supervisor - sudo supervisorctl reread - sudo supervisorctl reload - - echo "Sample configuration files installed" -} - -install () { - # Clone the sources, build and install programs, clean-up - install_base ${1} - install_fdkaac ${1} - install_audioenc ${1} - install_padenc ${1} - install_dabmux ${1} - install_dabmod ${1} - install_srccmp ${1} - install_encmgr ${1} - install_config - sudo ldconfig - - sudo apt-get purge -y - sudo rm -rf /var/lib/apt/lists/* - - echo "ODR-mmbTools suite and configuration files installed" -} - -remove () { - # Uninstall programs - for makefile in $(ls ${DIR_MMB}/**/Makefile); do - pushd $(dirname ${makefile}) - sudo make uninstall - popd - done - - # Delete sources - rm -rf ${DIR_MMB} - - # Delete configuration files - rm -rf ${DIR_CONFIG} - - # Update supervisor - sudo rm /etc/supervisor/conf.d/ODR-* - sudo supervisorctl reread - sudo supervisorctl reload - - echo "ODR-mmbTools suite and configuration files removed" -} - -# MAIN PROGRAM -branch="master" -action="" - -while [ "$#" -gt 0 ] ; do - case "${1}" in - (-h|--help) print_usage; exit 0 ;; - (-b|--branch) branch="${2}" ; shift ;; - install) action="install" ;; - remove) action="remove" ;; - *) print_usage; exit 1 ;; - esac - shift -done - -if [ "${action}" == "install" ]; then - install ${branch} -else - remove -fi \ No newline at end of file diff --git a/install/odr-get.conf b/install/odr-get.conf deleted file mode 100644 index e20380d..0000000 --- a/install/odr-get.conf +++ /dev/null @@ -1,11 +0,0 @@ -# DEFINE DIRECTORIES -CONFIG_NAME=config -DIR_CONFIG=${HOME}/${CONFIG_NAME} -DIR_MMB=${HOME}/ODR-mmbTools -DIR_AUDIO=${DIR_MMB}/ODR-AudioEnc -DIR_PAD=${DIR_MMB}/ODR-PadEnc -DIR_MUX=${DIR_MMB}/ODR-DabMux -DIR_MOD=${DIR_MMB}/ODR-DabMod -DIR_FDKAAC=${DIR_MMB}/fdk-aac -DIR_SRCCMP=${DIR_MMB}/ODR-SourceCompanion -DIR_ENCMGR=${DIR_MMB}/ODR-EncoderManager \ No newline at end of file -- cgit v1.2.3