-
Notifications
You must be signed in to change notification settings - Fork 0
Build From Source
This walks through building and standing up Rivolution (the v6 fork)
on a fresh Ubuntu box, based on a real first-time build — including the
gaps that tripped it up and how they were resolved.
configure_build.sh (see step 2) auto-detects your distro and invokes
./configure with the right flags, including --prefix=/usr — use it
instead of running ./configure directly, or you'll end up building
against a non-standard prefix with its own gotchas (see
Known Issues).
Most build dependencies are declared in configure.ac and checked
automatically. One easy thing to miss: the MariaDB/MySQL client
library is a build dependency, but the database server is not —
if you're running the database on the same box (rather than pointing
at a separate DB server), you need to install it yourself:
sudo apt install mariadb-server
sudo mysql_secure_installationgit clone git@github.com:anjeleno/rivolution.git
cd rivolution
./configure_build.sh
make -j$(nproc)
sudo make install
sudo ldconfigThe sudo ldconfig at the end is required, not optional — without
it, every Rivendell binary fails immediately with:
error while loading shared libraries: librd-*.so: cannot open shared object file: No such file or directory
even though the library file genuinely exists. make install doesn'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 3), 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 2; 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.