mirror of
				https://github.com/ElvishArtisan/rivendell.git
				synced 2025-10-31 22:24:02 +01:00 
			
		
		
		
	* Changed the shebang path in 'scripts/init_template_host.py' from '/usr/bin/python' to '/usr/bin/python3'. * Changed the shebang path in 'scripts/engine_conv.py' from '/usr/bin/python' to '/usr/bin/python3'. * Added 'qt5-qtbase-devel' and 'qt5-linguist' build dependencies to 'rivendell.spec.in'. Signed-off-by: Fred Gleason <fredg@paraelsystems.com>
		
			
				
	
	
		
			306 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			306 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| This is the installation file for the Rivendell package.
 | |
| 
 | |
| 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/.
 | |
| 
 | |
| ID3Lib
 | |
| An audio metadata tag library. Included in most distros, or available at 
 | |
| http://id3lib.sourceforge.net/.
 | |
| 
 | |
| 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.4 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.
 | |
| Pre-generated docs are included in the source tarball, so special tools will
 | |
| not normally be required to view or install them. However, if you need to
 | |
| rebuild them (either because you've modified the DocBook sources or are
 | |
| installing from the primary GitHub repository), then you will need the
 | |
| following:
 | |
| 
 | |
| 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/.
 | |
| 
 | |
| 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', 'make', followed (as root) by 'make install'. Those
 | |
| who obtained the source via CVS will need to do './autogen.sh' first.
 | |
| 
 | |
| The ./configure 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. Some known good values (assuming a default Apache
 | |
| setup):
 | |
| 
 | |
| RHEL 5:	  --libexecdir=/var/httpd/rd-bin --sysconfdir=/etc/httpd/conf.d
 | |
| 
 | |
| RHEL 6/7: --libexecdir=/var/www/rd-bin --sysconfdir=/etc/httpd/conf.d
 | |
| 
 | |
| SuSE:     --libexecdir=/srv/www/rd-bin --sysconfdir=/etc/apache2/conf.d
 | |
| 
 | |
| 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 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
 | |
| 
 | |
| 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 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 jack2-devel docbook5-style-xsl hpklinux-devel
 | |
| 
 | |
| Configure script invocation: ./configure --prefix=/usr --libdir=/usr/lib64 --libexecdir=/var/www/rd-bin --sysconfdir=/etc/httpd/conf.d
 | |
| 
 | |
| 
 | |
| 3) 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 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
 | |
| 
 | |
| 
 | |
| 3) 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
 | |
| 
 | |
| 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
 | |
| 
 |