-
Notifications
You must be signed in to change notification settings - Fork 64
/
INSTALL
363 lines (246 loc) · 18 KB
/
INSTALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
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 python3-virtualenv 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 python3-venv python3-virtualenv python3-build python3-virtualenv twine 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) Ubuntu 24.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 python3-venv python3-virtualenv python3-build twine python3-virtualenv 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
7) Debian 11 "Bullseye"
Required build packages: autoconf automake libtool g++ qtbase5-dev libqt5sql5-mysql libqt5webkit5-dev 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 python3-virtualenv 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
8) Debian 12 "Bookworm"
Required build packages: autoconf automake libtool g++ qtbase5-dev libqt5sql5-mysql libqt5webkit5-dev 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 python3-virtualenv 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