Install packages
sudo dnf install fedora-packager
and add yourself to group
mock, logout, login. (See references at the end.)
rpmdev-setuptree will create the
~/rpmbuild structure (from any location, it is a super old shell script!)
Either specify an URL in the source or specify just a file.
IF you just specify a file:
- Download the sources
spectool -R -g ../SPECS/drumgizmo.spec will download in
SOURCES/ ...
Before DrumGizmo, we have to build LibSmf-Devel because this dependency is not in standard repos.
Note: Using make --disable-cli ... in DrumGizmo spec file allow to bypass libsmf issue ... But the Drumgizmo command line tool can be useful.
libsmf is a serious problem. Should really be included in Fedora!
LibSmf is really a simple library with very few dependencies and the spec file is already OK. We can create the RPM and then Mock allows to
Build packages that depend on packages not in a repository.
1/ Build All LibSmf:
rpmbuild -ba SPECS/libsmf.spec
2/ Prepare your DrumGizmo source RPM:
rpmbuild -bs SPECS/drumgizmo.spec
3/ Install the RPMs in mock and build (note: libsmf-devel requires libsmf):
mock --init
mock --install RPMS/x86_64/libsmf{-devel,}-1.3.692e728-3.fc28.x86_64.rpm
mock --no-clean --rebuild SRPMS/drumgizmo-0.9.15-1.fc28.src.rpm
You get the idea, by default mock would clean the environment. So here we init, install out RPM and build the new one while keeping our installed RPM.
The idea is to:
- modify the drumgizmo spec
- rebuild the source RPM
- test with mock if the rpm build
You can rebuild multiple times with --no-clean,
but in the end, be sure to test
from init.
Once everything build OK. Try on your own PC...
sudo dnf install ./RPMS/x86_64/libsmf-1.3...rpm and libsmf-devel
rpmbuild -ba SPECS/drumgizmo.spec
I had a QA "minor issue" with hard coded rpath '/usr/lib64'. I did not find other solution than to ignore it:
QA_RPATHS=0x0001 rpmbuild -ba SPECS/drumgizmo.spec
sudo dnf install ./RPMS/x86_64/drumgizmo...rpm
Done.
Note: the plugin is installed for everyone, in
/usr/lib64/lv2. If you follow the Drumgizmo guide, it will be installed only in your own
~/.lv2/ directory.
Beware that maybe the DrumGizmo plugin and its host (Ardour typically) require the same lib versions. At least, I read that it could be an issue sometimes.
References: