-
Notifications
You must be signed in to change notification settings - Fork 0
Build From Source
A chronological walkthrough of building and standing up Rivolution
(the v6 fork) on a fresh Ubuntu 26.04 box, based on a real
first-time build — including the gaps that tripped it up and how they
were resolved. Each step assumes the previous one finished cleanly.
Nothing here gets installed for you later — install everything below before touching the source tree:
sudo apt install git g++ automake autoconf autoconf-archive libtool \
libltdl-dev make debhelper \
qt6-base-dev qt6-base-dev-tools qt6-l10n-tools qt6-webengine-dev \
qt6-webengine-dev-tools libqt6sql6-mysql \
libexpat1-dev libid3-3.8.3-dev libcurl4-gnutls-dev libcoverart-dev \
libdiscid-dev libmusicbrainz5-dev libcdparanoia-dev libsndfile1-dev \
libpam0g-dev libvorbis-dev libsamplerate0-dev libsoundtouch-dev \
libsystemd-dev libjack-jackd2-dev libasound2-dev libflac-dev \
libflac++-dev libmp3lame-dev libmad0-dev libtwolame-dev libssl-dev \
libtag1-dev libmagick++-dev \
docbook5-xml docbook-xsl-ns xsltproc fop libxml2-utils \
python3 python3-pycurl python3-pymysql python3-serial python3-requests \
python3-venv python3-virtualenv python3-build twine \
apache2 mariadb-server mariadb-client
sudo mysql_secure_installationThis list is verified directly against a real working build, not
copied from older, Qt5-era notes elsewhere. Pointing this Rivendell
host at a database on a different box instead of running one
locally? Drop mariadb-server — you only need the client to build and
connect.
git clone git@github.com:anjeleno/rivolution.git
cd rivolution./configure_build.sh
make -j$(nproc)
sudo make install
sudo ldconfigA few things going on in those four lines that aren't obvious from the outside:
-
Use
configure_build.sh, not./configuredirectly.configure_build.shauto-detects your distro and calls./configurewith the right flags, including--prefix=/usr. Run./configureyourself instead and you'll end up building against a non-standard prefix with its own gotchas — see Known Issues. -
sudo ldconfigat the end is required, not optional. Without it, every Rivendell binary fails immediately witherror while loading shared libraries: librd-*.so: cannot open shared object file: No such file or directory, even though the file genuinely exists —make installdoesn't refresh the linker's cache itself. See Known Issues for why.
Copy the sample config into place:
sudo cp conf/rd.conf-sample /etc/rd.confCreate a real database user — do not use the sample's default
password ("hackme") for anything beyond a true throwaway box.
Generate a real one and use it consistently below and in
/etc/rd.conf's [mySQL] section:
sudo mysql -u root <<'EOF'
create user if not exists 'rduser'@'localhost' identified by 'REPLACE_WITH_A_REAL_GENERATED_PASSWORD';
create database if not exists Rivendell;
grant select,insert,update,delete,create,drop,index,alter,lock tables on `Rivendell`.* to 'rduser'@'localhost';
flush privileges;
EOFMake sure /etc/rd.conf's [mySQL] Password= line matches whatever
you actually used above.
If you're provisioning via
rivendell-golden-ansibleinstead of by hand, itsfix-rivendell-user.shautomates this entire step — including generating a real random password for you — so you can skip the manual SQL above.
Then create the schema:
sudo systemctl restart mariadb
rddbmgr --create --generate-audiosystemctl start rivendellLaunch RDAdmin and RDAirplay from the Rivendell applications menu,
or directly from a terminal — doing the latter first is worth it even
if the menu works, since a terminal will actually show you a crash's
real error message instead of the app just silently failing to open.
QSqlDatabase: can not load requested driver (empty or QMYSQL3)
— either /etc/rd.conf doesn't exist yet (step 4), or you're on an
older checkout that still has the stale QMYSQL3 driver name (fixed
in source as of this writing — Qt6's actual driver names are
QMYSQL/QMARIADB, not the legacy Qt3-era QMYSQL3). Pull latest and
rebuild if you still see this.
cannot open shared object file — see step 3; run sudo ldconfig.
RDAdmin/RDAirplay icons in the applications menu do nothing when clicked — the menu shortcut swallows any crash output. Launch the binary directly from a terminal instead to see the actual error.