Personal tools


From Rivendell Wiki

Revision as of 16:53, 7 April 2022 by Leon (Talk | contribs) (pypad system user and group)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Synthetic howto install rd3 on Debian10 (Buster) :

get rivendell sources

tar xf rivendell-3.2.0.tar.gz
cd rivendell-3.2.0

or from git sources, with master branch for example :

sudo apt install git
git clone -b master
cd rivendell
sudo apt install libtool m4 automake pkg-config
Bug in utils/rddbmgr/updateschema.cpp

Since 3.1.0, you have to apply this patch :

diff --git a/utils/rddbmgr/updateschema.cpp b/utils/rddbmgr/updateschema.cpp
index 9089bec0..cdd045de 100644
--- a/utils/rddbmgr/updateschema.cpp
+++ b/utils/rddbmgr/updateschema.cpp
@@ -9793,12 +9793,12 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg)

     sql=QString("create table if not exists NEXUS_STATIONS (")+
-      "STATION varchar(255) not null,"+
-      "CATEGORY varchar(10) not null,"+
+      "STATION varchar(255) not null default '',"+
+      "CATEGORY varchar(10) not null default '',"+
       "AUTO_MERGE enum('N','Y') default 'N',"+
-      "RD_SERVICE varchar(10) not null,"+
-      "RD_GROUP_NAME varchar(10) not null,"+
-      "RD_SCHED_CODE varchar(11) not null)"+
+      "RD_SERVICE varchar(10) not null default '',"+
+      "RD_GROUP_NAME varchar(10) not null default '',"+
+      "RD_SCHED_CODE varchar(11) not null default '')"+
       " charset utf8mb4 collate utf8mb4_general_ci"+
     if(!RDSqlQuery::apply(sql,err_msg)) {

Just copy/paste in your ../my_patch file and then run :

patch -p1 <../my_patch

Another solution is to turn off mysql strict mode, as explined here. Writing these 2 lines in a file called /etc/mysql/conf.d/disable_strict_mode.cnf will be enough to work with the non-patched code :


Restarting mysqld/mariadb service will be also be required :

sudo systemctl restart mariadb.service

compile rivendell

sudo apt install make gcc g++
sudo apt install libssh-dev libsamplerate0-dev libsndfile1-dev libcdparanoia-dev libid3-3.8.3-dev libcurl4-openssl-dev libpam0g-dev libsoundtouch-dev libasound2-dev libflac++-dev libmad0-dev libtwolame-dev libmp3lame-dev libfaad-dev libqt4-dev libexpat1-dev libtag1-dev
sudo apt install libjack-jackd2-dev
sudo apt install libdiscid-dev libmusicbrainz5-dev libcoverart-dev (since 3.3.0 version)
sudo apt install python3-mysqldb (to get pypad (icecast) running)
export PATH=/sbin:$PATH (since runuser is required)
./configure --libexecdir=/var/www/rd-bin --sysconfdir=/etc/apache2/conf-available
sudo apt install docbook-xsl fop xsltproc
export DOCBOOK_STYLESHEETS=/usr/share/xml/docbook/stylesheet/docbook-xsl

or if you don't want to compile the docs :

./configure --libexecdir=/var/www/rd-bin --sysconfdir=/etc/apache2/conf-available --disable-docbook

during this time...

prepare web server

sudo apt install apache2
sudo a2enmod cgid
systemctl restart apache2

prepare mysql server

sudo apt install mysql-server (or mariadb-server)
sudo mysql
> create database Rivendell;
> grant Select, Insert, Update, Delete, Create, Drop, References, Index, Alter, Create Temporary Tables, Lock Tables on Rivendell.* to rduser@'%' identified by 'letmein';
> quit;

prepare os

sudo adduser --uid 150 --system --group --home=/var/snd rivendell
sudo adduser alice rivendell
sudo chmod g+w /var/snd

ok, let's continue when the "make" made its job..

install rivendell

sudo make install
sudo ldconfig

install (and edit !) the configuration file

sudo cp conf/rd.conf-sample /etc/rd.conf

apache conf and restart :

sudo a2enconf rd-bin
systemctl reload apache2

database initalization :

sudo rddbmgr --create --generate-audio

or if updating :

sudo rddbmgr --modify

sound config (or edit /etc/asound.conf)

sudo rdalsaconfig

rivendell conf (if needed)


starting rivendell service :

systemctl start rivendell
rdairplay \o/

to run rivendell service at boot :

systemctl enable rivendell

known problems

PyPad scripts

Just following all these instructions will not be sufficient for pypad scripts to run. As the import pypad command fails, you can modify the scripts in /usr/local/lib64/rivendell/pypad/ by adding one line, as this :

import sys
import pypad

The pypad user/group may have to be created (if appearing in /etc/rd.conf) :

sudo adduser --uid 151 --system --group
sudo adduser pypad alice_group / sudo adduser alice pypad

M4A format not supported

M4A format won't be imported, as libmp4v2-dev is no more available in Debian 10.

"Field 'STATION' doesn't have a default value QMYSQL" error

$ sudo rddbmgr --create --generate-audio
DB connection re-established
invalid SQL or failed DB connection[Field 'STATION' doesn't have a default value QMYSQL: Unable to execute query]: insert into NEXUS_STATIONS set RD_SERVICE="Production"
rddbmgr: sql error: Field 'STATION' doesn't have a default value QMYSQL: Unable to execute query query: insert into NEXUS_STATIONS set RD_SERVICE="Production"

Please (re)read "Bug in utils/rddbmgr/updateschema.cpp" described in a precedent section