Mod-plugin-builder on ubuntu inside virtualbox

Hi all

I am trying to install the mod-plugin-builder on a virtual box ubuntu studio 24 . It was a very long process (getting on for two hours) but seemed to fail right at the end on installing some kind of “boost” program (unfortunately I closed down the terminal by accident so cant cite the exact program).

Anyway, I still tried compiling a plugin - but it failed on the invocation of the first lv2 library

fatal error: lv2/atom/atom.h: No such file or directory
#include “lv2/atom/atom.h”
^~~~~~~~~~~~

Am just wondering if anyone might know a quick fix for this

1 Like

What happens if you simply create that file in that directory and run it again?

That’s not going to work. You need to the correct headers to build plugins.

I’d say the “quick fix” would be to use the docker image instead of building the entire toolchain yourself.

1 Like

You could try to install the boost library as described here and then try to build the tool chain again

Or you could try to use the docker (I couldn’t do it on fedora, but maybe on Ubuntu…)

When you say “use the docker image”, do you mean from following the instructions at:
https://wiki.mod.audio/wiki/How_To_Use_Docker_Toolbox_With_MPB
If that is the case, and given that I am compiling for the mod dwarf, I belive i would have to follow the instructions in the section " Full build (advanced, long)" - is that right?

Thanks for this - but I think I need the boost libraries “inside” the mod-plugin-builder. Im not sure how I can get into it to do apt-get etc

Run ./bootstrap.sh moddwarf again and check the error message you get.
I’ve build the mod plugin builder several times on debian/sid and it requires a couple of patches to get it building. My usual workflow was to check the error message I get and then patch the required source files to make it work.

Thanks for that. This is the feedback in the bootstrap.log file in the build/boost.1.60 folder

###
### Using 'gcc' toolset.
###
rm -rf bootstrap
mkdir bootstrap
gcc -o bootstrap/jam0 command.c compile.c constants.c debug.c execcmd.c frames.c function.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c object.c option.c output.c parse.c pathsys.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c class.c cwd.c native.c md5.c w32_getreg.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c execunix.c fileunix.c pathunix.c
execcmd.c: In function ‘onintr’:
execcmd.c:120:5: error: implicit declaration of function ‘out_printf’ [-Wimplicit-function-declaration]
  120 |     out_printf( "...interrupted\n" );
      |     ^~~~~~~~~~
make.c: In function ‘make’:
make.c:132:13: error: implicit declaration of function ‘out_printf’ [-Wimplicit-function-declaration]
  132 |             out_printf( "...found %d target%s...\n", counts->targets,
      |             ^~~~~~~~~~
make.c: In function ‘make0’:
make.c:735:13: error: implicit declaration of function ‘out_flush’ [-Wimplicit-function-declaration]
  735 |             out_flush();
      |             ^~~~~~~~~
modules/path.c: In function ‘path_exists’:
modules/path.c:16:12: error: implicit declaration of function ‘file_query’ [-Wimplicit-function-declaration]
   16 |     return file_query( list_front( lol_get( frame->args, 0 ) ) ) ?
      |            ^~~~~~~~~~

Sorry for my ignorance, but when you say

Does that mean edit the source files - or replace them from somewhere?

Thanks

Yes, I mean edit the source files as required. For the issue you run into here the solution is this patch:

You’ll properly find a patch for any error message which will come up in the next step.