mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-05-19 06:32:34 +02:00
* Implemented the 'Load Message" ['LM'] RML. Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
337 lines
16 KiB
Plaintext
337 lines
16 KiB
Plaintext
This is the installation file for the Rivendell package.
|
|
|
|
HARDWARE REQUIREMENTS
|
|
A graphical display capable of at least 1680x1050 pixels resolution.
|
|
(1920x1080 or higher recommended).
|
|
|
|
|
|
MANDATORY PREREQUISITES
|
|
You will need the following installed and configured properly on your
|
|
system before building Rivendell:
|
|
|
|
Apache Web Server
|
|
Included with most distros, or available from: http://www.apache.org/.
|
|
|
|
Expat
|
|
A stream-oriented XML parser library. Available at https://libexpat.github.io/.
|
|
|
|
Icedax
|
|
A command-line utility for querying and extracting data from audio CDs.
|
|
Included with most distros.
|
|
|
|
ID3Lib
|
|
An audio metadata tag library. Included in most distros, or available at
|
|
http://id3lib.sourceforge.net/.
|
|
|
|
ImageMagick v6 (Magick++ C++ Language Interface)
|
|
A incredibly versatile library/utility for manipulating all sorts of graphical
|
|
and visual data. Available at https://imagemagick.org/script/index.php.
|
|
|
|
LibCurl, v7.19.0 or later
|
|
A client-side URL transfer library. Included with most distros, or
|
|
available at: http://curl.haxx.se/libcurl/.
|
|
|
|
LibCoverArt, v1.0.0 or later
|
|
A library for accessing the MusicBrainz Cover Art Archive.
|
|
Available at https://musicbrainz.org/
|
|
|
|
LibDiscId, v0.6.2 or later
|
|
A library for reading the attributes of audio CDs.
|
|
Available at https://musicbrainz.org/
|
|
|
|
LibMusicBrainz, v5.0.1 or later
|
|
A library for accessing the MusicBrainz open music encyclopedia
|
|
Available at https://musicbrainz.org/
|
|
|
|
LibParanoia
|
|
A library for ripping audio CDs. Included in most distributions, but also
|
|
available from http://www.xiph.org/paranoia/.
|
|
|
|
LibSndFile
|
|
An audio file support library, written by Erik de Castro Lopo. Included with
|
|
most distros, or you can find it at http://www.mega-nerd.com/libsndfile/.
|
|
|
|
MySQL/MariaDB Database Server
|
|
Included in most Linux distributions. See http://www.mysql.com/.
|
|
|
|
PAM Pluggable Authentication Modules
|
|
A suite of shared libraries that enable the local system administrator to
|
|
choose how applications authenticate users. Included with virtually all modern
|
|
distros, or see http://www.kernel.org/pub/linux/libs/pam/.
|
|
|
|
OggVorbis - Open Source Audio Coding Library. Needed for OggVorbis
|
|
importing and exporting. Included with most distros, or available at:
|
|
http://www.xiph.org/.
|
|
|
|
Python, v3.6 or later
|
|
Open source scripting language. Included with most distros, or available at:
|
|
https://www.python.org/.
|
|
|
|
PycURL, v7.43.0 or later
|
|
Python interface to libcurl. Available at http://pycurl.io/.
|
|
|
|
PyMySQL, v1.3.12 or later
|
|
Python library for accessing MySQL databases. Available at
|
|
https://github.com/PyMySQL/mysqlclient-python.
|
|
|
|
PySerial, v 3.2.1 or later
|
|
Python library for accessing serial devices. Available at
|
|
https://pythonhosted.org/pyserial/.
|
|
|
|
Requests, v2.12.5 or later
|
|
HTTP transfer library for Python. Available at
|
|
http://docs.python-requests.org/.
|
|
|
|
Qt5 Toolkit, v5.9 or better
|
|
Most modern Linux distros include this. It can also be downloaded directly
|
|
at http://www.qt.io/.
|
|
|
|
Secret Rabbit Code
|
|
A sample-rate converter library, written by Erik de Castro Lopo. Included
|
|
with most distros, or you can find it at http://www.mega-nerd.com/SRC/.
|
|
|
|
SoundTouch Audio Processing Library
|
|
A library for altering the pitch and/or tempo of digital audio data.
|
|
Available at http://www.surina.net/soundtouch/.
|
|
|
|
Systemd System and Service Manager
|
|
Most modern Linux distros include this.
|
|
|
|
TagLib Audio Meta-Data Library, v1.8 or better
|
|
A high-quality C++ library for reading and writing a variety of audio metadata
|
|
formats. Available at https://taglib.org/.
|
|
|
|
X11 Window System
|
|
Virtually all Linux distros should include this.
|
|
|
|
|
|
OPTIONAL PREREQUISITES
|
|
The following components are optional, but needed at build- and run- time in
|
|
order for particular features to work:
|
|
|
|
One or more audio driver libraries. Choices are:
|
|
|
|
AudioScience HPI Driver - v3.00 or greater.
|
|
For supporting AudioScience's line of high-end professional audio adapters.
|
|
See http://www.audioscience.com/.
|
|
|
|
The JACK Audio Connection Kit
|
|
A low latency audio server, designed from the ground up for
|
|
professional audio work. See http://jackaudio.org/.
|
|
|
|
The Advanced Linux Sound Architecture (ALSA) v1.0 or greater.
|
|
The standard soundcard driver for Linux for kernels 2.6.x or later.
|
|
See http://www.alsa-project.org/.
|
|
|
|
Free Lossless Audio Codec (FLAC), v1.2.x or greater
|
|
A "lossless" audio encoding library. Included with most distros, or
|
|
available from: http://flac.sourceforge.net/.
|
|
|
|
FAAD2 / mp4v2 - AAC/MP4 Decoding Libraries. Needed for MP4 file importation.
|
|
Available at http://www.audiocoding.com/faad2.html and
|
|
https://code.google.com/p/mp4v2/ respectively.
|
|
|
|
LAME - MPEG Layer 3 Encoder Library. Needed for MPEG Layer 3 exporting.
|
|
Available at http://lame.sourceforge.net/.
|
|
|
|
MAD - MPEG Audio Decoder Library. Needed for MPEG importing and playout.
|
|
Available at http://www.underbit.com/products/mad/.
|
|
|
|
TwoLAME - MPEG Layer 2 Encoder Library. Needed for MPEG Layer 2 exporting and
|
|
capture. Available at http://www.twolame.org/.
|
|
|
|
|
|
DOCUMENTATION
|
|
-------------
|
|
The larger pieces of the Rivendell documentation are written in XML-DocBook5.
|
|
The following tools are required to build them:
|
|
|
|
XML-DocBook5 Stylesheets. Available at
|
|
http://sourceforge.net/projects/docbook/. You will also need to create a
|
|
$DOCBOOK_STYLESHEETS variable in your environment that points to the top
|
|
of the stylesheet tree. More information can be found at
|
|
http://www.docbook.org/tdg5/en/html/appa.html#s.stylesheetinstall. On
|
|
RHEL-ish systems, they are also available in the 'docbook5-style-xsl'
|
|
package.
|
|
|
|
xsltproc. Command line XSLT processor. Available at
|
|
http://xmlsoft.org/XSLT/xsltproc2.html
|
|
|
|
Apache FOP. Formatting Objects (FO) processor. Available at
|
|
https://xmlgraphics.apache.org/fop/.
|
|
|
|
For a list of the required set of development packages for various popular
|
|
distros, see the 'DISTRO-SPECIFIC NOTES' section, below.
|
|
|
|
INSTALLATION
|
|
There are three major steps to getting a Rivendell system up and
|
|
running. They are:
|
|
|
|
1) Setting up pre-requisite software
|
|
|
|
2) Installing the Rivendell package
|
|
|
|
3) Initial configuration
|
|
|
|
|
|
1) Setting Up Prerequisites
|
|
|
|
The major prerequisite piece of software needed for a functioning
|
|
Rivendell system is the MySQL database engine. This needs to
|
|
be accessible from the target system (either by running on the local
|
|
host, or on a remote system) before Rivendell installation proper
|
|
is commenced. In practice, this means that the 'mysqld' daemon is
|
|
running and can be connected to using the mysql(1) client. You will
|
|
also need a login name/password for an account on the server with
|
|
administrative rights.
|
|
|
|
The process of configuring mySQL on a given host can be intricate and
|
|
is generally beyond the scope of this document. Details can be found
|
|
in a number of books on the subject, as well as in the very extensive
|
|
documentation that accompanies the server itself.
|
|
|
|
|
|
2) Installing the Rivendell Package
|
|
|
|
Once the prerequisites are set up, installation is most often a matter of
|
|
cd'ing to the top of the Rivendell source tree and typing
|
|
'./configure_build.sh', 'make', followed (as root) by 'make install'. The
|
|
'configure_build.sh' will attempt to determine which distribution is
|
|
running and automatically invoke the './configure' script with the
|
|
appropriate arguments. Should 'configure_build.sh' fail to recognize
|
|
the distro environment, './configure' can be run directly. Do
|
|
'./configure --help' for a list of the available arguments. This script
|
|
will auto-detect what sound drivers (HPI, JACK or ALSA) are available and
|
|
enable build support accordingly. To override this behavior, it's possible
|
|
to specify '--disable-hpi', '--disable-jack' or '--disable-alsa' as an
|
|
argument to './configure'. Be sure to see the important additional
|
|
information regarding configuration in the 'docs/JACK.txt' or 'docs/ALSA.txt'
|
|
files if you plan on using those sound driver architectures.
|
|
|
|
The installation of Rivendell's web services components are controlled
|
|
by two parameters passed to 'configure', as follows:
|
|
|
|
--libexecdir Location to install web scripts and static content
|
|
|
|
--sysconfdir Location to install Apache configuration
|
|
|
|
The specific values to pass will vary widely depending upon the specific
|
|
distro in question. For some specific examples for various popular distros,
|
|
see the 'DISTRO-SPECIFIC NOTES' section below.
|
|
|
|
After doing 'make install', be sure to restart the Apache web service.
|
|
|
|
|
|
3) Initial Configuration
|
|
|
|
Next, you'll need to install a small configuration file at
|
|
'/etc/rd.conf'. A sample can be found in 'conf/rd.conf-sample'. Much
|
|
of this can be used unchanged, with the exception of the entries in the
|
|
[Identity] section. These should be changed to reflect the user and group
|
|
name of the system accounts that will be running Rivendell.
|
|
|
|
The directory for the audio sample data next needs to be created, as
|
|
so:
|
|
|
|
mkdir /var/snd
|
|
|
|
This directory should owned, readable, writable and searchable by the user
|
|
and group specified in the 'AudioOwner=' and 'AudioGroup=' entires in
|
|
'/etc/rd.conf' and readable and searchable by Others (mode 0775).
|
|
|
|
Next, create an empty database on the MySQL/MariaDb server, as well as a
|
|
DB user to access it. This user should have the following privileges:
|
|
|
|
Select
|
|
Insert
|
|
Update
|
|
Delete
|
|
Create
|
|
Drop
|
|
References
|
|
Index
|
|
Alter
|
|
Create Temporary Table
|
|
Lock Tables
|
|
|
|
In the '[mySQL]' section of the '/etc/rd.conf' file, set the 'Database=',
|
|
'Loginname=' and 'Password=' parameters to the DB name, user and password
|
|
that you created. Then, create an initial Rivendell database and generate
|
|
the audio for the test-tone cart in the audio store audio cart by doing:
|
|
|
|
rddbmgr --create --generate-audio
|
|
|
|
If all goes well, this command should return with no output.
|
|
|
|
Finally, start up the Rivendell service by doing (as root):
|
|
|
|
systemctl start rivendell
|
|
|
|
You should now be able to run the various Rivendell components from the
|
|
Applications menu.
|
|
|
|
|
|
DISTRO-SPECIFIC NOTES
|
|
---------------------
|
|
1) RedHat Enterprise Linux 7
|
|
|
|
Required build packages: git gcc-c++ automake autoconf libtool qt5-qtbase-devel qt5-qtbase-mysql qt5-linguist qt5-qtwebkit-devel libcurl-devel cdparanoia-devel hpklinux-devel alsa-lib-devel jack-audio-connection-kit-devel libsamplerate-devel libsndfile-devel id3lib-devel libvorbis-devel flac-devel pam-devel soundtouch-devel twolame-devel libmad-devel lame-devel rpm-build createrepo fop docbook5-style-xsl libxslt kernel-devel rpm-sign man-pages openssl-devel taglib-devel libmusicbrainz5-devel libdiscid-devel libcoverart libcoverart-devel ImageMagick-c++-devel
|
|
|
|
Configure script invocation: ./configure --prefix=/usr --libdir=/usr/lib64 --libexecdir=/var/www/rd-bin --sysconfdir=/etc/httpd/conf.d
|
|
|
|
|
|
2) RedHat Enterprise Linux 8
|
|
Required build packages: git gcc-c++ automake autoconf libtool qt5-qtbase-devel qt5-linguist qt5-qtbase-mysql qt5-qtwebkit-devel libcurl-devel cdparanoia-devel alsa-lib-devel libsamplerate-devel libsndfile-devel libvorbis-devel flac-devel pam-devel soundtouch-devel twolame-devel libmad-devel lame-devel rpm-build createrepo libxslt kernel-devel rpm-sign man-pages openssl-devel taglib-devel libmusicbrainz5-devel id3lib-devel libdiscid-devel libcoverart libcoverart-devel jack-audio-connection-kit-devel docbook5-style-xsl ImageMagick-c++-devel fop-static hpklinux-devel
|
|
|
|
Configure script invocation: ./configure --prefix=/usr --libdir=/usr/lib64 --libexecdir=/var/www/rd-bin --sysconfdir=/etc/httpd/conf.d
|
|
|
|
|
|
3) RedHat Enterprise Linux 9
|
|
Required build packages: git gcc-c++ automake autoconf libtool qt5-qtbase-devel qt5-linguist qt5-qtbase-mysql qt5-qtwebkit-devel libcurl-devel cdparanoia-devel alsa-lib-devel libsamplerate-devel libsndfile-devel libvorbis-devel flac-devel pam-devel soundtouch-devel twolame-devel libmad-devel lame-devel rpm-build createrepo libxslt kernel-devel rpm-sign man-pages openssl-devel taglib-devel libmusicbrainz5-devel id3lib-devel libdiscid-devel libcoverart libcoverart-devel pipewire-jack-audio-connection-kit-devel docbook5-style-xsl ImageMagick-c++-devel fop-static hpklinux-devel
|
|
|
|
Configure script invocation: ./configure --prefix=/usr --libdir=/usr/lib64 --libexecdir=/var/www/rd-bin --sysconfdir=/etc/httpd/conf.d
|
|
|
|
|
|
4) Ubuntu 20.04 LTS
|
|
|
|
Required build packages: apache2 libexpat1-dev libexpat1 libid3-dev libcurl4-gnutls-dev libcoverart-dev libdiscid-dev libmusicbrainz5-dev libcdparanoia-dev libsndfile1-dev libpam0g-dev libvorbis-dev python3 python3-pycurl python3-pymysql python3-serial python3-requests libsamplerate0-dev qtbase5-dev libqt5sql5-mysql libqt5webkit5-dev libsoundtouch-dev libsystemd-dev libjack-jackd2-dev libasound2-dev libflac-dev libflac++-dev libmp3lame-dev libmad0-dev libtwolame-dev docbook5-xml libxml2-utils docbook-xsl-ns xsltproc fop make g++ libltdl-dev autoconf automake libssl-dev libtag1-dev qttools5-dev-tools debhelper openssh-server autoconf-archive gnupg pbuilder ubuntu-dev-tools apt-file
|
|
|
|
Configure script invocation: ./configure --prefix=/usr --libdir=/usr/lib --libexecdir=/var/www/rd-bin --sysconfdir=/etc/apache2/conf-enabled --enable-rdxport-debug MUSICBRAINZ_LIBS="-ldiscid -lmusicbrainz5cc -lcoverartcc"
|
|
|
|
Environmental variables: DOCBOOK_STYLESHEETS=/usr/share/xml/docbook/stylesheet/docbook-xsl-ns
|
|
|
|
Apache Web Server Configuration: CGI processing must be enabled. This can
|
|
be done by means of the following commands:
|
|
|
|
sudo ln -sf ../mods-available/cgid.conf /etc/apache2/mods-enabled/cgid.conf
|
|
sudo ln -sf ../mods-available/cgid.load /etc/apache2/mods-enabled/cgid.load
|
|
sudo systemctl restart apache2
|
|
|
|
|
|
5) Ubuntu 22.04 LTS
|
|
|
|
Required build packages: apache2 libexpat1-dev libexpat1 libid3-dev libcurl4-gnutls-dev libcoverart-dev libdiscid-dev libmusicbrainz5-dev libcdparanoia-dev libsndfile1-dev libpam0g-dev libvorbis-dev python3 python3-pycurl python3-pymysql python3-serial python3-requests libsamplerate0-dev qtbase5-dev libqt5sql5-mysql libqt5webkit5-dev libsoundtouch-dev libsystemd-dev libjack-jackd2-dev libasound2-dev libflac-dev libflac++-dev libmp3lame-dev libmad0-dev libtwolame-dev docbook5-xml libxml2-utils docbook-xsl-ns xsltproc fop make g++ libltdl-dev autoconf automake libssl-dev libtag1-dev qttools5-dev-tools debhelper openssh-server autoconf-archive gnupg pbuilder ubuntu-dev-tools apt-file hpklinux-dev libmagick++-dev
|
|
|
|
Configure script invocation: ./configure --prefix=/usr --libdir=/usr/lib --libexecdir=/var/www/rd-bin --sysconfdir=/etc/apache2/conf-enabled --enable-rdxport-debug MUSICBRAINZ_LIBS="-ldiscid -lmusicbrainz5cc -lcoverartcc"
|
|
|
|
Environmental variables:
|
|
DOCBOOK_STYLESHEETS=/usr/share/xml/docbook/stylesheet/docbook-xsl-ns
|
|
DEBUILD_MAKE_ARGS=<optional-gcc-flags>
|
|
|
|
Apache Web Server Configuration: CGI processing must be enabled. This can
|
|
be done by means of the following commands:
|
|
|
|
sudo ln -sf ../mods-available/cgid.conf /etc/apache2/mods-enabled/cgid.conf
|
|
sudo ln -sf ../mods-available/cgid.load /etc/apache2/mods-enabled/cgid.load
|
|
sudo systemctl restart apache2
|
|
|
|
|
|
6) Debian 11 "Bullseye"
|
|
|
|
Required build packages: autoconf automake libtool g++ qtbase5-dev libqt5sql5-mysql qttools5-dev-tools libexpat1 libexpat1-dev libssl-dev libsamplerate-dev libsndfile-dev libcdparanoia-dev libcoverart-dev libdiscid-dev libmusicbrainz5-dev libid3-dev libtag1-dev libcurl4-gnutls-dev libpam0g-dev libsoundtouch-dev docbook5-xml libxml2-utils docbook-xsl-ns xsltproc fop make libsystemd-dev libjack-jackd2-dev libasound2-dev libflac-dev libflac++-dev libmp3lame-dev libmad0-dev libtwolame-dev python3 python3-pycurl python3-pymysql python3-serial python3-requests libmagick++-dev debhelper
|
|
|
|
Configure script invocation: ./configure --prefix=/usr --libdir=/usr/lib --libexecdir=/var/www/rd-bin --sysconfdir=/etc/apache2/conf-enabled --enable-rdxport-debug MUSICBRAINZ_LIBS="-ldiscid -lmusicbrainz5cc -lcoverartcc"
|
|
|
|
Environmental variables: DOCBOOK_STYLESHEETS=/usr/share/xml/docbook/stylesheet/docbook-xsl-ns
|
|
|