2018-08-03

DrumGizmo RPM

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:

  1. modify the drumgizmo  spec
  2. rebuild the source RPM
  3. 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:

No comments:

2023 summary

  Life is bigger than what you can imagine.  Still using Roam  http://www.roamresearch.com/  to take notes Still using Mastodon mainly, but ...