Coder Social home page Coder Social logo

mod-plugin-builder's Introduction

mod-plugin-builder

This repository contains the toolchain and libraries used in MOD Devices.

It allows developers to locally build plugins for MOD devices and also prepare for Cloud builds.
Currently this builder only supports Linux hosts.
If you're not running Linux see this HowTo.

There are several dependencies:

  • gcc & g++
  • git
  • subversion
  • hg/mercurial
  • autoconf
  • automake
  • bzip2
  • lzma
  • binutils
  • libtool
  • ncurses
  • rsync
  • wget
  • bc
  • bison
  • flex
  • help2man
  • gawk
  • gperf
  • texinfo

If you're running a debian based system you can install all dependencies by running:

sudo apt install acl bc curl cvs git mercurial rsync subversion wget \
bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip \
automake binutils build-essential cpio libtool libncurses-dev pkg-config python-is-python3 libtool-bin

Note that libtool-bin and python-is-python3 are not available on old distros.
If that is the case for you, simply skip these packages but install everything else.

To begin simply run:

./bootstrap.sh <platform>

Where platform is either modduo, modduox, moddwarf or x86_64.

The script will build the toolchain (ct-ng) and buildroot.
Depending on your machine it can take more than 1 hour.

All files will be installed in ~/mod-workdir.
Set the 'WORKDIR' environment variable before bootstraping if you wish to change that.

After the bootstrap process is complete, you can start building plugins.
See the 'plugins/package' folder in this repository for some examples.

Building plugins

To build a plugin, run:

./build <platform> <plugin-package>

Where platform is either modduo, modduox, moddwarf or x86_64 and plugin-package is a folder inside the plugins/package directory.

If everything goes well, you will have the final plugin bundle in ~/mod-workdir/<platform>/plugins.

To push the build plugin onto a MOD Device, run:

./build <platform> <plugin-package>-publish

Or if you feel like doing it manually, you can run something like:

cd /path/to/mod-workdir/plugins # adjust as needed
tar czf bundle1.lv2 bundle2.lv2 | base64 | curl -F 'package=@-' http://192.168.51.1/sdk/install; echo

For cleaning a build directory, run:

./build <platform> <plugin-package>-dirclean

NOTE: If you want to build the provided plugins in this repository you'll need to enable git submodules, like this:

git submodule init
git submodule update

To cleanup the build of a plugin, run:
./build <platform> <plugin-package>-dirclean

There's a more detailed HowTo explaining how to compile an LV2 Plugin using mod-plugin-builder.

Validating plugins (experimental)

It's possible to use the mod-plugin-builder to test a few aspects of a plugin. It's important that the plugin has been built successfully before running this test.

Firstly, the test can be used for ttl syntax validation. This is done through lv2/sord_validate. These tools need to be installed on the system. On a Debian based system these can be installed by running:

sudo apt install lilv-utils sordi

Secondly, this test can also be used for runtime tests for all x86_64 builds.

To do the test, run:

./validate <platform> <plugin-package>

The runtime test (for x86_64 plugins) can also be combined with valgrind for detecting memory issues.

For running this test do:

VALGRIND=1 ./validate <platform> <plugin-package>

Note about Camomile

The Camomile integration is under testing phase. Check the PR notes for more details.

mod-plugin-builder's People

Contributors

alercunha avatar bramgiesen avatar brummer10 avatar devcurmudgeon avatar dromer avatar falktx avatar henning avatar houston4444 avatar jesseverhage avatar jpcima avatar jwbverheesen avatar masarin avatar micahvdm avatar milksob avatar mrbollie avatar odurc avatar renemadeira avatar romi1502 avatar rominator1983 avatar ssj71 avatar vallsv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mod-plugin-builder's Issues

fresh debian x64, /lib/ld-linux-armhf.so.3: No such file or directory

I get this when attempting to build shiro-plugins, for instance. The Docker image doesn't have this problem. It appears that some copy step, or some config step has been skipped, since the required files can be found in mod-workdir/toolchain/arm-linux-gnueabihf/sysroot/lib

Allow generate default-preset tool to generate preset for given plugname only.

Hi
While working on deploying some plugs on the MOD, this little tool is very useful. Just, I prefer to generate the default-preset.ttl file only for the plug I'm working on, instead regenerate it for the complete folder I'm working in. The attached patch add this functionality to generate-default.cpp
This is dune with respect the previous behave, so new usage with this patch will be
usage: generate <lv2-folder> [lv2-plugnamer]
were lv2-plugname is optional.


diff --git a/generate-default-preset/generate.cpp b/generate-default-preset/generate.cpp
index 9215a9a..80a3f11 100644
--- a/generate-default-preset/generate.cpp
+++ b/generate-default-preset/generate.cpp
@@ -388,11 +388,12 @@ int main(int argc, char* argv[])
 {
     if (argc < 2)
     {
-        fprintf(stdout, "usage: %s <lv2-folder>\n", argv[0]);
+        fprintf(stdout, "usage: %s <lv2-folder>  [lv2-plugnamer]\n", argv[0]);
         return 1;
     }
 
     char* lv2_folder = argv[1];
+    char* lv2_plug = argv[2];
 
 #if 0
     stat(s);
@@ -415,11 +416,26 @@ int main(int argc, char* argv[])
 
     const LilvPlugins* const plugins = lilv_world_get_all_plugins(world);
 
-    LILV_FOREACH(plugins, iter, plugins)
+    if (lv2_plug != 0) {
+        LILV_FOREACH(plugins, iter, plugins)
+        {
+            const LilvPlugin* plugin = lilv_plugins_get(plugins, iter);
+            if (plugin)
+            {
+                if (strcmp(lilv_node_as_string(lilv_plugin_get_name(plugin)),lv2_plug) ==0)
+                {
+                    create_plugin_preset(world, plugin);
+                }
+            }
+        }
+    }
+    else
     {
-        create_plugin_preset(world, lilv_plugins_get(plugins, iter));
+        LILV_FOREACH(plugins, iter, plugins)
+        {
+            create_plugin_preset(world, lilv_plugins_get(plugins, iter));
+        }
     }
-
     lilv_world_free(world);
     free(lv2_folder);
 

Bootstrap fail with "ModuleNotFoundError: No module named 'imp'"

Hi,

./bootstrap.sh moddwarf fail with "ModuleNotFoundError: No module named 'imp'" on Ubuntu 24.04 LTS.

  GEN     /home/aki/mod-workdir/moddwarf/Makefile
#
# configuration written to /home/aki/mod-workdir/moddwarf/.config
#
/usr/bin/make -j1 O=/home/aki/mod-workdir/moddwarf HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" silentoldconfig
  GEN     /home/aki/mod-workdir/moddwarf/Makefile
BR2_DEFCONFIG='' KCONFIG_AUTOCONFIG=/home/aki/mod-workdir/moddwarf/build/buildroot-config/auto.conf KCONFIG_AUTOHEADER=/home/aki/mod-workdir/moddwarf/build/buildroot-config/autoconf.h KCONFIG_TRISTATE=/home/aki/mod-workdir/moddwarf/build/buildroot-config/tristate.config BR2_CONFIG=/home/aki/mod-workdir/moddwarf/.config BR2_EXTERNAL=/home/aki/git/mod-plugin-builder/plugins-dep HOST_GCC_VERSION="13" SKIP_LEGACY= /home/aki/mod-workdir/moddwarf/build/buildroot-config/conf --silentoldconfig Config.in
�[7m>>> host-libglib2 2.46.2 Installing to host directory�[27m
PATH="/home/aki/mod-workdir/moddwarf/host/bin:/home/aki/mod-workdir/moddwarf/host/sbin:/home/aki/mod-workdir/moddwarf/host/usr/bin:/home/aki/mod-workdir/moddwarf/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin" PKG_CONFIG="/home/aki/mod-workdir/moddwarf/host/usr/bin/pkg-config" PKG_CONFIG_SYSROOT_DIR="/" PKG_CONFIG_LIBDIR="/home/aki/mod-workdir/moddwarf/host/usr/lib/pkgconfig"  /usr/bin/make -j9 install -C /home/aki/mod-workdir/moddwarf/build/host-libglib2-2.46.2/
/usr/bin/make  install-recursive
Making install in .
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/bin'
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/lib/pkgconfig'
 /usr/bin/install -c glib-gettextize '/home/aki/mod-workdir/moddwarf/host/usr/bin'
 /usr/bin/install -c -m 644 glib-2.0.pc gobject-2.0.pc gmodule-2.0.pc gmodule-export-2.0.pc gmodule-no-export-2.0.pc gthread-2.0.pc gio-2.0.pc gio-unix-2.0.pc '/home/aki/mod-workdir/moddwarf/host/usr/lib/pkgconfig'
Making install in m4macros
/usr/bin/make  install-am
make[6]: Nothing to be done for 'install-exec-am'.
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/share/aclocal'
 /usr/bin/install -c -m 644 glib-2.0.m4 glib-gettext.m4 gsettings.m4 '/home/aki/mod-workdir/moddwarf/host/usr/share/aclocal'
Making install in glib
/usr/bin/make  install-recursive
Making install in libcharset
/usr/bin/make  install-am
/bin/bash /home/aki/mod-workdir/moddwarf/build/host-libglib2-2.46.2/install-sh -d /home/aki/mod-workdir/moddwarf/host/usr/lib
if test -f /home/aki/mod-workdir/moddwarf/host/usr/lib/charset.alias; then \
  sed -f ref-add.sed /home/aki/mod-workdir/moddwarf/host/usr/lib/charset.alias > /home/aki/mod-workdir/moddwarf/host/usr/lib/charset.tmp ; \
  /usr/bin/install -c -m 644 /home/aki/mod-workdir/moddwarf/host/usr/lib/charset.tmp /home/aki/mod-workdir/moddwarf/host/usr/lib/charset.alias ; \
  rm -f /home/aki/mod-workdir/moddwarf/host/usr/lib/charset.tmp ; \
else \
  if test yes = no; then \
    sed -f ref-add.sed charset.alias > /home/aki/mod-workdir/moddwarf/host/usr/lib/charset.tmp ; \
    /usr/bin/install -c -m 644 /home/aki/mod-workdir/moddwarf/host/usr/lib/charset.tmp /home/aki/mod-workdir/moddwarf/host/usr/lib/charset.alias ; \
    rm -f /home/aki/mod-workdir/moddwarf/host/usr/lib/charset.tmp ; \
  fi ; \
fi
Making install in pcre
/usr/bin/make  install-am
make[8]: Nothing to be done for 'install-exec-am'.
Making install in update-pcre
/usr/bin/make  install-am
make[8]: Nothing to be done for 'install-exec-am'.
Making install in .
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/lib'
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/bin'
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/lib/glib-2.0/include'
 /bin/bash ../libtool   --mode=install /usr/bin/install -c   libglib-2.0.la '/home/aki/mod-workdir/moddwarf/host/usr/lib'
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/include/glib-2.0/glib/deprecated'
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/share/glib-2.0/gdb'
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/include/glib-2.0'
 /usr/bin/install -c gtester-report '/home/aki/mod-workdir/moddwarf/host/usr/bin'
 /usr/bin/install -c -m 644 glibconfig.h '/home/aki/mod-workdir/moddwarf/host/usr/lib/glib-2.0/include'
 /usr/bin/install -c -m 644 deprecated/gallocator.h deprecated/gcache.h deprecated/gcompletion.h deprecated/gmain.h deprecated/grel.h deprecated/gthread.h '/home/aki/mod-workdir/moddwarf/host/usr/include/glib-2.0/glib/deprecated'
 /usr/bin/install -c glib.py '/home/aki/mod-workdir/moddwarf/host/usr/share/glib-2.0/gdb'
 /usr/bin/install -c -m 644 glib-unix.h glib-object.h glib.h '/home/aki/mod-workdir/moddwarf/host/usr/include/glib-2.0'
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/include/glib-2.0/glib'
 /usr/bin/install -c -m 644 glib-autocleanups.h galloca.h garray.h gasyncqueue.h gatomic.h gbacktrace.h gbase64.h gbitlock.h gbookmarkfile.h gbytes.h gcharset.h gchecksum.h gconvert.h gdataset.h gdate.h gdatetime.h gdir.h genviron.h gerror.h gfileutils.h ggettext.h ghash.h ghmac.h ghook.h ghostutils.h gi18n.h gi18n-lib.h giochannel.h gkeyfile.h glist.h gmacros.h gmain.h gmappedfile.h gmarkup.h gmem.h gmessages.h gnode.h goption.h gpattern.h gpoll.h '/home/aki/mod-workdir/moddwarf/host/usr/include/glib-2.0/glib'
 /usr/bin/install -c -m 644 gprimes.h gqsort.h gquark.h gqueue.h grand.h gregex.h gscanner.h gsequence.h gshell.h gslice.h gslist.h gspawn.h gstdio.h gstrfuncs.h gtestutils.h gstring.h gstringchunk.h gthread.h gthreadpool.h gtimer.h gtimezone.h gtrashstack.h gtree.h gtypes.h gunicode.h gurifuncs.h gutils.h gvarianttype.h gvariant.h gversion.h gversionmacros.h gwin32.h gprintf.h '/home/aki/mod-workdir/moddwarf/host/usr/include/glib-2.0/glib'
libtool: install: /usr/bin/install -c .libs/libglib-2.0.so.0.4600.2 /home/aki/mod-workdir/moddwarf/host/usr/lib/libglib-2.0.so.0.4600.2
libtool: install: (cd /home/aki/mod-workdir/moddwarf/host/usr/lib && { ln -s -f libglib-2.0.so.0.4600.2 libglib-2.0.so.0 || { rm -f libglib-2.0.so.0 && ln -s libglib-2.0.so.0.4600.2 libglib-2.0.so.0; }; })
/usr/bin/make  install-data-hook
libtool: install: (cd /home/aki/mod-workdir/moddwarf/host/usr/lib && { ln -s -f libglib-2.0.so.0.4600.2 libglib-2.0.so || { rm -f libglib-2.0.so && ln -s libglib-2.0.so.0.4600.2 libglib-2.0.so; }; })
libtool: install: /usr/bin/install -c .libs/libglib-2.0.lai /home/aki/mod-workdir/moddwarf/host/usr/lib/libglib-2.0.la
mkdir -p /home/aki/mod-workdir/moddwarf/host/usr/share/gdb/auto-load
/usr/bin/install -c ./libglib-gdb.py /home/aki/mod-workdir/moddwarf/host/usr/share/gdb/auto-load/libglib-2.0.so.0.4600.2-gdb.py
libtool: finish: PATH="/home/aki/mod-workdir/moddwarf/host/bin:/home/aki/mod-workdir/moddwarf/host/sbin:/home/aki/mod-workdir/moddwarf/host/usr/bin:/home/aki/mod-workdir/moddwarf/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/sbin" ldconfig -n /home/aki/mod-workdir/moddwarf/host/usr/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /home/aki/mod-workdir/moddwarf/host/usr/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/bin'
  /bin/bash ../libtool   --mode=install /usr/bin/install -c gtester '/home/aki/mod-workdir/moddwarf/host/usr/bin'
libtool: install: /usr/bin/install -c gtester /home/aki/mod-workdir/moddwarf/host/usr/bin/gtester
/usr/bin/make  install-exec-hook
for sf in gtester-report ; do \
  mv -f "/home/aki/mod-workdir/moddwarf/host/usr/bin/$sf" "/home/aki/mod-workdir/moddwarf/host/usr/bin/$sf".tmp \
  && sed < "/home/aki/mod-workdir/moddwarf/host/usr/bin/$sf".tmp > "/home/aki/mod-workdir/moddwarf/host/usr/bin/$sf" \
    -e '1,24s|^ *#@PKGINSTALL_CONFIGVARS_IN24LINES@|  "bindir"    	: "/home/aki/mod-workdir/moddwarf/host/usr/bin", "glib-version"  : "2.46.2"|' \
    -e '1,1s|#! /usr/bin/env python.*|#!/usr/bin/python|' \
  || exit $? ; \
  chmod a+x /home/aki/mod-workdir/moddwarf/host/usr/bin/$sf ; \
  rm -f "/home/aki/mod-workdir/moddwarf/host/usr/bin/$sf".tmp ; \
done
Making install in gmodule
/usr/bin/make  install-am
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/lib'
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/include/glib-2.0'
 /bin/bash ../libtool   --mode=install /usr/bin/install -c   libgmodule-2.0.la '/home/aki/mod-workdir/moddwarf/host/usr/lib'
 /usr/bin/install -c -m 644 gmodule.h '/home/aki/mod-workdir/moddwarf/host/usr/include/glib-2.0'
/usr/bin/make  install-data-hook
make[7]: Nothing to be done for 'install-data-hook'.
libtool: install: /usr/bin/install -c .libs/libgmodule-2.0.so.0.4600.2 /home/aki/mod-workdir/moddwarf/host/usr/lib/libgmodule-2.0.so.0.4600.2
libtool: install: (cd /home/aki/mod-workdir/moddwarf/host/usr/lib && { ln -s -f libgmodule-2.0.so.0.4600.2 libgmodule-2.0.so.0 || { rm -f libgmodule-2.0.so.0 && ln -s libgmodule-2.0.so.0.4600.2 libgmodule-2.0.so.0; }; })
libtool: install: (cd /home/aki/mod-workdir/moddwarf/host/usr/lib && { ln -s -f libgmodule-2.0.so.0.4600.2 libgmodule-2.0.so || { rm -f libgmodule-2.0.so && ln -s libgmodule-2.0.so.0.4600.2 libgmodule-2.0.so; }; })
libtool: install: /usr/bin/install -c .libs/libgmodule-2.0.lai /home/aki/mod-workdir/moddwarf/host/usr/lib/libgmodule-2.0.la
libtool: finish: PATH="/home/aki/mod-workdir/moddwarf/host/bin:/home/aki/mod-workdir/moddwarf/host/sbin:/home/aki/mod-workdir/moddwarf/host/usr/bin:/home/aki/mod-workdir/moddwarf/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/sbin" ldconfig -n /home/aki/mod-workdir/moddwarf/host/usr/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /home/aki/mod-workdir/moddwarf/host/usr/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Making install in gthread
/usr/bin/make  install-am
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/lib'
 /bin/bash ../libtool   --mode=install /usr/bin/install -c   libgthread-2.0.la '/home/aki/mod-workdir/moddwarf/host/usr/lib'
/usr/bin/make  install-data-hook
make[7]: Nothing to be done for 'install-data-hook'.
libtool: install: /usr/bin/install -c .libs/libgthread-2.0.so.0.4600.2 /home/aki/mod-workdir/moddwarf/host/usr/lib/libgthread-2.0.so.0.4600.2
libtool: install: (cd /home/aki/mod-workdir/moddwarf/host/usr/lib && { ln -s -f libgthread-2.0.so.0.4600.2 libgthread-2.0.so.0 || { rm -f libgthread-2.0.so.0 && ln -s libgthread-2.0.so.0.4600.2 libgthread-2.0.so.0; }; })
libtool: install: (cd /home/aki/mod-workdir/moddwarf/host/usr/lib && { ln -s -f libgthread-2.0.so.0.4600.2 libgthread-2.0.so || { rm -f libgthread-2.0.so && ln -s libgthread-2.0.so.0.4600.2 libgthread-2.0.so; }; })
libtool: install: /usr/bin/install -c .libs/libgthread-2.0.lai /home/aki/mod-workdir/moddwarf/host/usr/lib/libgthread-2.0.la
libtool: finish: PATH="/home/aki/mod-workdir/moddwarf/host/bin:/home/aki/mod-workdir/moddwarf/host/sbin:/home/aki/mod-workdir/moddwarf/host/usr/bin:/home/aki/mod-workdir/moddwarf/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/sbin" ldconfig -n /home/aki/mod-workdir/moddwarf/host/usr/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /home/aki/mod-workdir/moddwarf/host/usr/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Making install in gobject
/usr/bin/make  install-recursive
Making install in .
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/lib'
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/bin'
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/share/glib-2.0/gdb'
 /bin/bash ../libtool   --mode=install /usr/bin/install -c   libgobject-2.0.la '/home/aki/mod-workdir/moddwarf/host/usr/lib'
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/include/glib-2.0/gobject'
 /usr/bin/install -c gobject.py '/home/aki/mod-workdir/moddwarf/host/usr/share/glib-2.0/gdb'
 /usr/bin/install -c glib-mkenums '/home/aki/mod-workdir/moddwarf/host/usr/bin'
 /usr/bin/install -c -m 644 gobject-autocleanups.h glib-types.h gbinding.h gboxed.h gclosure.h genums.h gmarshal.h gobject.h gparam.h gparamspecs.h gsignal.h gsourceclosure.h gtype.h gtypemodule.h gtypeplugin.h gvalue.h gvaluearray.h gvaluecollector.h gvaluetypes.h gobjectnotifyqueue.c '/home/aki/mod-workdir/moddwarf/host/usr/include/glib-2.0/gobject'
/usr/bin/make  install-data-hook
libtool: install: /usr/bin/install -c .libs/libgobject-2.0.so.0.4600.2 /home/aki/mod-workdir/moddwarf/host/usr/lib/libgobject-2.0.so.0.4600.2
libtool: install: (cd /home/aki/mod-workdir/moddwarf/host/usr/lib && { ln -s -f libgobject-2.0.so.0.4600.2 libgobject-2.0.so.0 || { rm -f libgobject-2.0.so.0 && ln -s libgobject-2.0.so.0.4600.2 libgobject-2.0.so.0; }; })
mkdir -p /home/aki/mod-workdir/moddwarf/host/usr/share/gdb/auto-load/
libtool: install: (cd /home/aki/mod-workdir/moddwarf/host/usr/lib && { ln -s -f libgobject-2.0.so.0.4600.2 libgobject-2.0.so || { rm -f libgobject-2.0.so && ln -s libgobject-2.0.so.0.4600.2 libgobject-2.0.so; }; })
libtool: install: /usr/bin/install -c .libs/libgobject-2.0.lai /home/aki/mod-workdir/moddwarf/host/usr/lib/libgobject-2.0.la
/usr/bin/install -c ./libgobject-gdb.py /home/aki/mod-workdir/moddwarf/host/usr/share/gdb/auto-load//libgobject-2.0.so.0.4600.2-gdb.py
libtool: finish: PATH="/home/aki/mod-workdir/moddwarf/host/bin:/home/aki/mod-workdir/moddwarf/host/sbin:/home/aki/mod-workdir/moddwarf/host/usr/bin:/home/aki/mod-workdir/moddwarf/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/sbin" ldconfig -n /home/aki/mod-workdir/moddwarf/host/usr/lib
----------------------------------------------------------------------
Libraries have been installed in:
   /home/aki/mod-workdir/moddwarf/host/usr/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
     during execution
   - add LIBDIR to the `LD_RUN_PATH' environment variable
     during linking
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
   - have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/bin'
  /bin/bash ../libtool   --mode=install /usr/bin/install -c gobject-query glib-genmarshal '/home/aki/mod-workdir/moddwarf/host/usr/bin'
libtool: install: /usr/bin/install -c gobject-query /home/aki/mod-workdir/moddwarf/host/usr/bin/gobject-query
libtool: install: /usr/bin/install -c glib-genmarshal /home/aki/mod-workdir/moddwarf/host/usr/bin/glib-genmarshal
Making install in tests
/usr/bin/make  install-am
make[8]: Nothing to be done for 'install-exec-am'.
Making install in gio
/usr/bin/make  install-recursive
Making install in gdbus-2.0/codegen
/usr/bin/make  install-am
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/bin'
 /usr/bin/mkdir -p '/home/aki/mod-workdir/moddwarf/host/usr/share/glib-2.0/codegen'
 /usr/bin/install -c gdbus-codegen '/home/aki/mod-workdir/moddwarf/host/usr/bin'
 /usr/bin/install -c -m 644 __init__.py codegen.py codegen_main.py codegen_docbook.py config.py dbustypes.py parser.py utils.py '/home/aki/mod-workdir/moddwarf/host/usr/share/glib-2.0/codegen'
Traceback (most recent call last):
  File "<string>", line 2, in <module>
ModuleNotFoundError: No module named 'imp'
make[8]: *** [Makefile:982: install-codegenPYTHON] Error 1
make[7]: *** [Makefile:1284: install-am] Error 2
make[6]: *** [Makefile:1278: install] Error 2
make[5]: *** [Makefile:4092: install-recursive] Error 1
make[4]: *** [Makefile:4414: install] Error 2
make[3]: *** [Makefile:1211: install-recursive] Error 1
make[2]: *** [Makefile:1677: install] Error 2
make[1]: *** [package/pkg-generic.mk:208: /home/aki/mod-workdir/moddwarf/build/host-libglib2-2.46.2/.stamp_host_installed] Error 2
make: *** [Makefile:36: _all] Error 2

Maybe it's because of python 3.12.3?

When I ran ./bootstrap.sh generic-x86_64, it also failed.
I don't know when but I have plugins build on Ubuntu 24.04 LTS with MPB.

some issues on debian/sid

Hi
I run into some issues when building on a new setup debian/sid machine.
I tried with gcc-8 and gcc-5 without success, then finally use gcc-6.
First stop was at:

zconf.hash.c:167:1: error: conflicting types for ‘kconf_id_lookup’
kconf_id_lookup (register const char *str, register size_t len)
^~~~~~~~~~~~~~~
zconf.hash.c:34:31: note: previous declaration of ‘kconf_id_lookup’ was here
static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
^~~~~~~~~~~~~~~

which could be solved by edit mod-workdir/build/crosstool-ng-1.22.0/kconfig/zconf.hash.c line 34 and change unsined int to size_t. delete the .stamp_configured in crosstool-ng-1.22.0 and re-run ./bootstrap.sh

next stop was at:

Unescaped left brace in regex is illegal here in regex; marked by <-- HERE in m/${ <-- HERE ([^ \t=:+{}]+)}/

which could be solved by replace the line 3936 in mod-workdir/plugins-dep/host/usr/bin/automake with:
$text =~ s/\$\{([^ \t=:+\{\}]+)\}/substitute_ac_subst_variables_worker ($1)/ge;

next stop was at:

./python -E -S -m sysconfig --generate-posix-vars ;
if test $? -ne 0 ; then
echo "generate-posix-vars failed" ;
rm -f ./pybuilddir.txt ;
exit 1 ;
fi
Segmentation fault
generate-posix-vars failed

that could be solved by edit mod-workdir/plugins-dep/build/host-python-2.7.11/Include/objimpl.h applying this patch: python/cpython@0b91f8a

after that, compilation finished successfully.
I put it here as reference for others who may try to build the mod-plugin-builder to save some time while search for solutions.

failing to build neural-amp-modeler-lv2 for moddwarf on Ubuntu 22.04.4 LTS

As per title, I installed and successfully bootstrapped the builder for moddwarf on an Ubuntu 22.04.4 x86_64 server.

However if I try to compile the NAM plugin with:

./build moddwarf neural-amp-modeler-lv2

I get the following compilation error:

  GEN     /home/evilsocket/mod-workdir/moddwarf/Makefile
BR2_DEFCONFIG='' KCONFIG_AUTOCONFIG=/home/evilsocket/mod-workdir/moddwarf/build/buildroot-config/auto.conf KCONFIG_AUTOHEADER=/home/evilsocket/mod-workdir/moddwarf/build/buildroot-config/autoconf.h KCONFIG_TRISTATE=/home/evilsocket/mod-workdir/moddwarf/build/buildroot-config/tristate.config BR2_CONFIG=/home/evilsocket/mod-workdir/moddwarf/.config BR2_EXTERNAL=/home/evilsocket/lab/mod/mod-plugin-builder/plugins-dep HOST_GCC_VERSION="11" SKIP_LEGACY= /home/evilsocket/mod-workdir/moddwarf/build/buildroot-config/conf --silentoldconfig Config.in
>>> neural-amp-modeler-lv2 bae8b0a6275a42ebbfe9c9d957512419700dc797 Building
PATH="/home/evilsocket/mod-workdir/moddwarf/host/bin:/home/evilsocket/mod-workdir/moddwarf/host/sbin:/home/evilsocket/mod-workdir/moddwarf/host/usr/bin:/home/evilsocket/mod-workdir/moddwarf/host/usr/sbin:/home/evilsocket/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/evilsocket/.local/bin:/home/evilsocket/dotfiles/bin:/home/evilsocket/ida-7.0/:/opt/google/android/sdk/tools:/opt/google/android/sdk/platform-tools:/opt/google/android/ndk:/opt/google/android/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:/opt/google/android/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin:/home/evilsocket/clang-static-analyzer/bin:/opt/google/android/jadx/bin:/usr/local/cuda/bin:/usr/local/go/bin:/home/evilsocket/gocode/bin:/home/evilsocket/.local/bin:/home/evilsocket/.local/bin:/home/evilsocket/dotfiles/bin:/home/evilsocket/ida-7.0/:/opt/google/android/sdk/tools:/opt/google/android/sdk/platform-tools:/opt/google/android/ndk:/opt/google/android/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:/opt/google/android/ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin:/home/evilsocket/clang-static-analyzer/bin:/opt/google/android/jadx/bin:/usr/local/cuda/bin:/usr/local/go/bin:/home/evilsocket/gocode/bin:/home/evilsocket/.local/bin"  /usr/bin/make -j17  -C /home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/
[  8%] Building CXX object src/CMakeFiles/neural_amp_modeler.dir/nam_lv2.cpp.o
[ 16%] Building CXX object src/CMakeFiles/neural_amp_modeler.dir/nam_plugin.cpp.o
[ 25%] Building CXX object src/CMakeFiles/neural_amp_modeler.dir/__/deps/NeuralAmpModelerCore/NAM/dsp.cpp.o
[ 41%] Building CXX object src/CMakeFiles/neural_amp_modeler.dir/__/deps/NeuralAmpModelerCore/NAM/lstm.cpp.o
[ 41%] Building CXX object src/CMakeFiles/neural_amp_modeler.dir/__/deps/NeuralAmpModelerCore/NAM/get_dsp.cpp.o
[ 50%] Building CXX object src/CMakeFiles/neural_amp_modeler.dir/__/deps/NeuralAmpModelerCore/NAM/wavenet.cpp.o
[ 58%] Building CXX object src/CMakeFiles/neural_amp_modeler.dir/__/deps/NeuralAmpModelerCore/dsp/dsp.cpp.o
[ 66%] Building CXX object src/CMakeFiles/neural_amp_modeler.dir/__/deps/NeuralAmpModelerCore/NAM/convnet.cpp.o
[ 75%] Building CXX object src/CMakeFiles/neural_amp_modeler.dir/__/deps/NeuralAmpModelerCore/dsp/RecursiveLinearFilter.cpp.o
/home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/NAM/dsp.cpp:4:10: fatal error: filesystem: No such file or directory
 #include <filesystem>
          ^~~~~~~~~~~~
compilation terminated.
/home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/NAM/convnet.cpp:4:10: fatal error: filesystem: No such file or directory
 #include <filesystem>
          ^~~~~~~~~~~~
compilation terminated.
make[4]: *** [src/CMakeFiles/neural_amp_modeler.dir/build.make:132: src/CMakeFiles/neural_amp_modeler.dir/__/deps/NeuralAmpModelerCore/NAM/dsp.cpp.o] Error 1
make[4]: *** Waiting for unfinished jobs....
make[4]: *** [src/CMakeFiles/neural_amp_modeler.dir/build.make:188: src/CMakeFiles/neural_amp_modeler.dir/__/deps/NeuralAmpModelerCore/NAM/convnet.cpp.o] Error 1
In file included from /home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/NAM/get_dsp.cpp:6:0:
/home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/NAM/dsp.h:3:10: fatal error: filesystem: No such file or directory
 #include <filesystem>
          ^~~~~~~~~~~~
compilation terminated.
make[4]: *** [src/CMakeFiles/neural_amp_modeler.dir/build.make:146: src/CMakeFiles/neural_amp_modeler.dir/__/deps/NeuralAmpModelerCore/NAM/get_dsp.cpp.o] Error 1
/home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/dsp/dsp.cpp:4:10: fatal error: filesystem: No such file or directory
 #include <filesystem>
          ^~~~~~~~~~~~
compilation terminated.
make[4]: *** [src/CMakeFiles/neural_amp_modeler.dir/build.make:202: src/CMakeFiles/neural_amp_modeler.dir/__/deps/NeuralAmpModelerCore/dsp/dsp.cpp.o] Error 1
In file included from /home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/dsp/RecursiveLinearFilter.h:11:0,
                 from /home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/dsp/RecursiveLinearFilter.cpp:13:
/home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/dsp/dsp.h:3:10: fatal error: filesystem: No such file or directory
 #include <filesystem>
          ^~~~~~~~~~~~
compilation terminated.
make[4]: *** [src/CMakeFiles/neural_amp_modeler.dir/build.make:216: src/CMakeFiles/neural_amp_modeler.dir/__/deps/NeuralAmpModelerCore/dsp/RecursiveLinearFilter.cpp.o] Error 1
In file included from /home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/src/nam_plugin.h:24:0,
                 from /home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/src/nam_plugin.cpp:6:
/home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/NAM/dsp.h:3:10: fatal error: filesystem: No such file or directory
 #include <filesystem>
          ^~~~~~~~~~~~
compilation terminated.
make[4]: *** [src/CMakeFiles/neural_amp_modeler.dir/build.make:90: src/CMakeFiles/neural_amp_modeler.dir/nam_plugin.cpp.o] Error 1
In file included from /home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/src/nam_plugin.h:24:0,
                 from /home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/src/nam_lv2.cpp:14:
/home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/NAM/dsp.h:3:10: fatal error: filesystem: No such file or directory
 #include <filesystem>
          ^~~~~~~~~~~~
compilation terminated.
make[4]: *** [src/CMakeFiles/neural_amp_modeler.dir/build.make:76: src/CMakeFiles/neural_amp_modeler.dir/nam_lv2.cpp.o] Error 1
In file included from /home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/NAM/lstm.h:9:0,
                 from /home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/NAM/lstm.cpp:5:
/home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/NAM/dsp.h:3:10: fatal error: filesystem: No such file or directory
 #include <filesystem>
          ^~~~~~~~~~~~
compilation terminated.
make[4]: *** [src/CMakeFiles/neural_amp_modeler.dir/build.make:118: src/CMakeFiles/neural_amp_modeler.dir/__/deps/NeuralAmpModelerCore/NAM/lstm.cpp.o] Error 1
In file included from /home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/NAM/wavenet.h:9:0,
                 from /home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/NAM/wavenet.cpp:7:
/home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/deps/NeuralAmpModelerCore/NAM/dsp.h:3:10: fatal error: filesystem: No such file or directory
 #include <filesystem>
          ^~~~~~~~~~~~
compilation terminated.
make[4]: *** [src/CMakeFiles/neural_amp_modeler.dir/build.make:174: src/CMakeFiles/neural_amp_modeler.dir/__/deps/NeuralAmpModelerCore/NAM/wavenet.cpp.o] Error 1
make[3]: *** [CMakeFiles/Makefile2:126: src/CMakeFiles/neural_amp_modeler.dir/all] Error 2
make[2]: *** [Makefile:156: all] Error 2
make[1]: *** [package/pkg-generic.mk:198: /home/evilsocket/mod-workdir/moddwarf/build/neural-amp-modeler-lv2-bae8b0a6275a42ebbfe9c9d957512419700dc797/.stamp_built] Error 2
make: *** [Makefile:36: _all] Error 2

This seems related to the compiler version somehow, if I run:

/home/evilsocket/mod-workdir/moddwarf/toolchain/bin/aarch64-mod-linux-gnu-g++ -v

I get this:

Using built-in specs.
COLLECT_GCC=/home/evilsocket/mod-workdir/moddwarf/toolchain/bin/aarch64-mod-linux-gnu-g++
COLLECT_LTO_WRAPPER=/home/evilsocket/mod-workdir/moddwarf/toolchain/libexec/gcc/aarch64-mod-linux-gnu/7.5.0/lto-wrapper
Target: aarch64-mod-linux-gnu
Configured with: /home/evilsocket/mod-workdir/moddwarf/build/crosstool-ng-1.24.0/build/aarch64-mod-linux-gnu/src/gcc/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=aarch64-mod-linux-gnu --prefix=/home/evilsocket/mod-workdir/moddwarf/toolchain --with-sysroot=/home/evilsocket/mod-workdir/moddwarf/toolchain/aarch64-mod-linux-gnu/sysroot --enable-languages=c,c++,fortran --with-cpu=cortex-a35 --with-pkgversion='crosstool-NG 1.24.0' --enable-__cxa_atexit --disable-libmudflap --enable-libgomp --disable-libssp --enable-libquadmath --enable-libquadmath-support --disable-libsanitizer --disable-libmpx --with-gmp=/home/evilsocket/mod-workdir/moddwarf/build/crosstool-ng-1.24.0/build/aarch64-mod-linux-gnu/buildtools --with-mpfr=/home/evilsocket/mod-workdir/moddwarf/build/crosstool-ng-1.24.0/build/aarch64-mod-linux-gnu/buildtools --with-mpc=/home/evilsocket/mod-workdir/moddwarf/build/crosstool-ng-1.24.0/build/aarch64-mod-linux-gnu/buildtools --with-isl=/home/evilsocket/mod-workdir/moddwarf/build/crosstool-ng-1.24.0/build/aarch64-mod-linux-gnu/buildtools --enable-lto --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --enable-threads=posix --enable-target-optspace --with-linker-hash-style=gnu --disable-plugin --disable-nls --disable-multilib --with-local-prefix=/home/evilsocket/mod-workdir/moddwarf/toolchain/aarch64-mod-linux-gnu/sysroot --enable-long-long
Thread model: posix
gcc version 7.5.0 (crosstool-NG 1.24.0) 

Tab needed after dependency declaration

If you're adapting this makefile for use with your own plugins, be aware that you might need to insert an extra line after the first plugin build rule, containing only a single tab character:

myplugin: myplugin.lv2/myplugin$(LIB_EXT) myplugin.lv2/manifest.ttl
[TAB NEEDED HERE]

myplugin.lv2/myplugin$(LIB_EXT): myplugin.c
	$(CC) $^ $(BUILD_C_FLAGS) $(LINK_FLAGS) -lm $(SHARED) -o $@

This tab tells make that the dependency line of the rule is over and what follows is the action line (in this case containing no actions) to be followed when those dependencies change. Without the tab, make sometimes seems to "run on" and tries to interpret the next rule as if it were part of the first one (at least in my environment, YMMV).

For some reason, this particular makefile seems to work without the tab but it does seem to be necessary in general.

Bootstrapping has stucked while installing C library on Manjaro Linux.

Hello.

I am trying to bootstrap mod-plugin-builder to build the lv2 plugin for MOD Dwarf on Manjaro Linux.

Bootstrap stopped while installing the C library.
When I aborted with Ctrl+C, I got the following errors.

[ERROR]   ^C
[ERROR]  >>
[ERROR]  >>  Build failed in step 'Building for multilib 1/1: '''
[ERROR]  >>        called in step 'Installing C library'
[ERROR]  >>        called in step '(top-level)'
[ERROR]  >>
[ERROR]  >>  Error happened in: CT_DoExecLog[scripts/functions@376]
[ERROR]  >>        called from: glibc_backend_once[scripts/build/libc/glibc.sh@395]
[ERROR]  >>        called from: CT_IterateMultilibs[scripts/functions@1586]
[ERROR]  >>        called from: glibc_backend[scripts/build/libc/glibc.sh@74]
[ERROR]  >>        called from: glibc_main[scripts/build/libc/glibc.sh@44]
[ERROR]  >>        called from: do_libc_main[scripts/build/libc.sh@33]
[ERROR]  >>        called from: main[scripts/crosstool-NG.sh@696]
[ERROR]  >>
[ERROR]  >>  For more info on this error, look at the file: 'build.log'
[ERROR]  >>  There is a list of known issues, some with workarounds, in:
[ERROR]  >>      'docs/manual/B_Known_issues.md'
[ERROR]  >>
[ERROR]  >> NOTE: Your configuration includes features marked EXPERIMENTAL.
[ERROR]  >> Before submitting a bug report, try to reproduce it without enabling
[ERROR]  >> any experimental features. Otherwise, you'll need to debug it
[ERROR]  >> and present an explanation why it is a bug in crosstool-NG - or
[ERROR]  >> preferably, a fix.
[ERROR]  >>
[ERROR]  >>  If you feel this is a bug in crosstool-NG, report it at:
[ERROR]  >>      https://github.com/crosstool-ng/crosstool-ng/issues/
[ERROR]  >>
[ERROR]  >>  Make sure your report includes all the information pertinent to this issue.
[ERROR]  >>  Read the bug reporting guidelines here:
[ERROR]  >>      http://crosstool-ng.github.io/support/
[ERROR]   
[ERROR]  (elapsed: 27:55.46)
[27:55] / make: *** [ct-ng:261: build] Error 130

I have tried several times to bootstrap but it always stop at the same point.
I have waited for 3 hours and it never progresses.
Is there any workaround?

Errors on Fresh Ubuntu 18.04.1

  • I needed to install libtool-bin
  • I then get this error
  CC     'zconf.tab.o'
In file included from zconf.tab.c:212:0:
zconf.hash.c:167:1: error: conflicting types for ‘kconf_id_lookup’
 kconf_id_lookup (register const char *str, register size_t len)
 ^~~~~~~~~~~~~~~
zconf.hash.c:34:31: note: previous declaration of ‘kconf_id_lookup’ was here
 static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
                               ^~~~~~~~~~~~~~~
Makefile:88: recipe for target 'zconf.tab.o' failed

This appears to be a problem with gperf-3.1

Distrho ports v6 not building

I’m not sure if it ever built, but I’m really interested in SwankyAmp on MDX. Every time I try to build it, I get a fail due to sanitycheck.exe
Not sure how to get around it…

Shiro plugins not building. Shiro plugins Labs are. dpf folder missing

I noticed that when doing a ./build x86_64 shiro-plugins I get an error when building shiroverb (and the other plugins in the bundle).

I looked and saw tthat the bundle shiro-plugins-labs is using the same git commit of its repository (https://github.com/ninodewit/SHIRO-Plugins.git) in plugins/package/shiro-plugins/shiro-plugins.mk
So I dug further and noticed in mod-workdir that in shiro-plugins the dpf folder is missing during build while in shiro-plugins-labs it is present. When copying the folder dpf over it is sure building.

Looking at https://github.com/ninodewit/SHIRO-Plugins.git I saw that dpf is in the sub modules (https://github.com/ninodewit/SHIRO-Plugins/blob/master/.gitmodules) so there is probably some simple solution to this where during the build/bootstrap the repository does not get cloned with its sub-modules.

This has also been working some time (weeks/months?) ago since I have the modulay in a preset but found out it is missing on my pc after a new setup when using latest master-branches of everything.

I would have done a PR of course if I had gotten to the bottom of this. It shold be some simple one-line thing really I suppose.

dm-GrainDelay plugin won't load

After upgrading to 1.13.1 (almost) none of my built Rust plugins will load on the mod dwarf. These other plugins were also built with this builder tool.

So I thought I'd have a look and see if I can get things running and get the grain delay usable for others again.
I saw the glibc version was downgraded to 2.27. So I checked the glibc versions used by the grain delay binary.
2.17, 2.18, 2.25, 2.27 are being used in the binary. And the glibc version used for the build is "ldd (Ubuntu GLIBC 2.27-3ubuntu1.6) 2.27". So that seems all good.

Maybe this is not very helpful. But if there's anything I can help out with, drop me a line here.
Also, if you have any pointers on how I can get my own builder working that would be helpful for development of new plugins. Because I can't use the mod-plugin-builder for other rust plugins once it's working for the GrainDelay, right?

Dave

bootstrap fail to dowload projectNe10

Hi,
I'm getting 404 not found error when running boostrap

--2021-11-27 01:02:55--  https://codeload.github.com/projectNe10/Ne10/tar.gz/v1.2.1/ne10-v1.2.1
Résolution de codeload.github.com (codeload.github.com)... 140.82.121.10
Connexion vers codeload.github.com (codeload.github.com)|140.82.121.10|:443... connecté.
requête HTTP transmise, en attente de la réponse... 404 Not Found
2021-11-27 01:02:56 ERREUR 404: Not Found.

--2021-11-27 01:02:56--  http://sources.buildroot.net/ne10-v1.2.1.tar.gz
Résolution de sources.buildroot.net (sources.buildroot.net)... 2606:4700:20::ac43:4838, 2606:4700:20::681a:25, 2606:4700:20::681a:125, ...
Connexion vers sources.buildroot.net (sources.buildroot.net)|2606:4700:20::ac43:4838|:80... connecté.
requête HTTP transmise, en attente de la réponse... 404 Not Found
2021-11-27 01:02:56 ERREUR 404: Not Found.

Seems like the url is no longer valid.

Docker from docker hub is outdated for the ModDuoX

Hi,

Just a feed back for plugin compilation using the docker from docker hub.

The docker do not work out of the box.

As i am not familiar with all this stuffs, then here is what i do in order to have something working with the DuoX

It could be nice to update https://wiki.moddevices.com/wiki/How_To_Use_Docker_Toolbox_With_MPB

# apt have to be updated
sudo apt update

# the compiler is not there
sudo apt install gcc-4.9-aarch64-linux-gnu

cd mod-plugin-builder.git/
source local.env modduox

# the local.env point to a non-existing compiler
# -> aarch64-mod-linux-gnueabi-gcc
export CC=aarch64-linux-gnu-gcc-4.9

# lv2 header are missing
sudo apt install lv2-dev

# here it is fine
cd my_plugin
make

Hope it can be useful.

CMake Version Issue

I've been working to compile one of my plugins for MOD Devices, and I've run into an issue with CMake versioning. The version of CMake currently used in this buildroot setup is version 3.4. However, my plugin needs (minimum) version 3.15.Is there a way to update the CMake version used by buildroot? Or maybe there is another workaround I could try?

Thanks,
Jatin

readme deps, libtool-bin doesn't exist

at least on ubuntu 14.04. Libtool does, and changing it to that made the install work

from the current readme:
sudo apt-get install acl bc curl cvs git mercurial rsync subversion wget
bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip
automake binutils build-essential cpio libtool-bin libncurses-dev pkg-config

gcc compiler ICE

Hello,
we are facing some trouble on current gcc which is in mod-plugin-builder.
It's frequent that this compiler will crash with ICE, and it's hard sometimes to find a workaround for these problems.

This has happened in multiple occasions.
(recent example https://travis-ci.com/github/sfztools/sfizz/jobs/365846891)

Also would it be fine to attempt my own docker image with updated gcc, as device compatibility is concerned?

bootstrap.sh fails on arch

Getting these errors:

[INFO ] =================================================================
[INFO ] Installing final gcc compiler
[EXTRA] Configuring final gcc compiler
[EXTRA] Building final gcc compiler
[ERROR] cfns.gperf:101:1: error: 'const char* libc_name_p(const char_, unsigned int)' redeclared inline with 'gnu_inline' attribute
[ERROR] make[3]: *_* [Makefile:1058: cp/except.o] Error 1
[ERROR] make[2]: *** [Makefile:3975: all-gcc] Error 2
[ERROR] make[1]: *** [Makefile:863: all] Error 2
[ERROR]
[ERROR] >>
[ERROR] >> Build failed in step 'Installing final gcc compiler'
[ERROR] >> called in step '(top-level)'
[ERROR] >>
[ERROR] >> Error happened in: CT_DoExecLog[scripts/functions@257]
[ERROR] >> called from: do_gcc_backend[scripts/build/cc/100-gcc.sh@944]
[ERROR] >> called from: do_gcc_for_host[scripts/build/cc/100-gcc.sh@663]
[ERROR] >> called from: do_cc_for_host[scripts/build/cc.sh@56]
[ERROR] >> called from: main[scripts/crosstool-NG.sh@646]
[ERROR] >>
[ERROR] >> For more info on this error, look at the file: 'build.log'
[ERROR] >> There is a list of known issues, some with workarounds, in:
[ERROR] >> 'docs/B - Known issues.txt'
[ERROR]
[ERROR](elapsed: 14:07.29)
[14:07] / make: *** [ct-ng:152: build] Error 2

Seems to be related to this: jcmvbkbc/crosstool-NG#24

pcre-8.38 ftp link is broken during bootstrap

In bootstrap script this link is timing out
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre
I fixed up this line in my mod-workdir with another url:
PCRE_SITE = https://ftp.pcre.org/pub/pcre
It works for me, I'm not sure where this needs to be patched in the main script.

Please extend the dirclean target

I'm running into a very strange issue during working on a plugin. In the first build I've setup the modgui folder wrong, I corrected that, run ./build moddwarf plug-dirclean and rebuild. From that point on I always end up with a duplicated modgui contend in the root folder. It took me a long time to find out what goes wrong.
I found a copy of the first build under
/mod-workdir/moddwarf/target/usr/lib/lv2
and from there the builder copies over the old modgui contend to the fresh build in plugins.
After delete that one, I'm able to build my plug clean.
It would be very nice when you could add the deletion of the plugin copy under /mod-workdir/moddwarf/target/usr/lib/lv2 to the dirclean command to avoid such trouble.

Docker build fails

When I try to build a docker image from the provided Dockerfile, using docker build -t mod-plugin-builder docker, I get the following error during the execution of the ./bootstrap.sh script:

package/pkg-generic.mk:185: recipe for target '/home/builder/mod-workdir/plugins-dep/build/camomile-713be25fe02676dda825e33ef4566b1c458daf4f/.stamp_configured' failed make: *** [/home/builder/mod-workdir/plugins-dep/build/camomile-713be25fe02676dda825e33ef4566b1c458daf4f/.stamp_configured] Error 127 The command '/bin/sh -c ./bootstrap.sh && ./.clean-install.sh' returned a non-zero code: 2

This is quite frustrating since this step of the build takes more than two hours on my computer.
I also tried to build the docker without the ./bootstrap.sh && ./.clean-install.sh and ran the bootstrap.sh from within the docker container but got the same error.

I'm running Docker 18.06.1-ce, on Mac OS 10.13.6.

"No hash found for fftw-3.3.8.tar.gz:"

Got bootstrap error, when bootstraping on ubuntu 5.15.0-41-generic #44~20.04.1-Ubuntu
./bootstrap.sh modduox

ignis@linuxboxone:/mnt/shared_folder/mod-plugin-builder$ ./bootstrap.sh  modduox
  GEN     /home/ignis/mod-workdir/modduox/Makefile
#
# configuration written to /home/ignis/mod-workdir/modduox/.config
#
/usr/bin/make -j1 O=/home/ignis/mod-workdir/modduox HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" silentoldconfig
  GEN     /home/ignis/mod-workdir/modduox/Makefile
BR2_DEFCONFIG='' KCONFIG_AUTOCONFIG=/home/ignis/mod-workdir/modduox/build/buildroot-config/auto.conf KCONFIG_AUTOHEADER=/home/ignis/mod-workdir/modduox/build/buildroot-config/autoconf.h KCONFIG_TRISTATE=/home/ignis/mod-workdir/modduox/build/buildroot-config/tristate.config BR2_CONFIG=/home/ignis/mod-workdir/modduox/.config BR2_EXTERNAL=/mnt/shared_folder/mod-plugin-builder/plugins-dep HOST_GCC_VERSION="9" SKIP_LEGACY= /home/ignis/mod-workdir/modduox/build/buildroot-config/conf --silentoldconfig Config.in
>>> fftw-double 3.3.8 Downloading
--2022-07-22 04:15:31--  http://www.fftw.org/fftw-3.3.8.tar.gz
Resolving www.fftw.org (www.fftw.org)... 216.137.187.110
Connecting to www.fftw.org (www.fftw.org)|216.137.187.110|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4110137 (3,9M) [application/octet-stream]
Saving to: ‘/home/ignis/mod-workdir/modduox/build/.fftw-3.3.8.tar.gz.0UGJdX/output’

/home/ignis/mod-workdir/modduox/build/.fftw-3.3.8. 100%[===============================================================================================================>]   3,92M  2,43MB/s    in 1,6s    

2022-07-22 04:15:33 (2,43 MB/s) - ‘/home/ignis/mod-workdir/modduox/build/.fftw-3.3.8.tar.gz.0UGJdX/output’ saved [4110137/4110137]

ERROR: No hash found for fftw-3.3.8.tar.gz
--2022-07-22 04:15:33--  http://sources.buildroot.net/fftw-3.3.8.tar.gz
Resolving sources.buildroot.net (sources.buildroot.net)... 172.67.72.56, 104.26.1.37, 104.26.0.37, ...
Connecting to sources.buildroot.net (sources.buildroot.net)|172.67.72.56|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2022-07-22 04:15:33 ERROR 404: Not Found.

make[1]: *** [package/pkg-generic.mk:115: /home/ignis/mod-workdir/modduox/build/fftw-double-3.3.8/.stamp_downloaded] Error 1
make: *** [Makefile:36: _all] Error 2
ignis@linuxboxone:/mnt/shared_folder/mod-plugin-builder$ 

Looks like I was able to bypass this hash check by adding
BR_NO_CHECK_HASH_FOR=fftw-3.3.8.tar.gz to
mod-plugin-builder/global-packages/fftw/fftw-double/fftw-double.mk

some plugins fail to build with aarch64

Currently broken for aarch64:

  • blop
  • camomile
  • commercial-plugin-example
  • zam-plugins

weird errors regarding bundles:

  • artyfx
  • fomp
  • invada
  • qmidiarp (no bundles defined)

out-dated/non-available download links

Date: March 4th, 2017
Problem: out-dated/non-available download links

Description: bootstrap.sh bash script stops with errors while trying to build git cloned mod-plugin-builder on Linux box.

Reference: wiki.moddevices.com/wiki/How_To_Build_and_Deploy_LV2_Plugin_to_MOD_Duo#Prepare build tools

--Found issue nº1 - MXML PACKAGE:

unavailable url: http://www.msweet.org/files/project3/mxml-2.9.tar.gz

Workaround:

--Found issue nº2 - LIBGIG PACKAGE:

unavailable url: http://sources.buildroot.net/libgig-2855.tar.gz

Workaround:

  • download ftp://ftp.ru.debian.org/gentoo-distfiles/distfiles/libgig-4.0.0.tar.bz2
  • Extract all and then compress again but in gz format, with name : libgig-2855.tar.gz
  • Copy "libgig-2855.tar.gz" into folder : ~/mod-workdir/download/
  • Re-run: mod-plugin-builder/bootstrap.sh

bootstrap with Ubuntu 23.10 not working any more

I get an error during build of host-localedef on my Ubuntu 23.10 machine. I "think" it is working with Pop-OS or Ubuntu 23.04.
Sadly the scripts don't really write a success message.

I don't really know what's going on here.

/usr/bin/make -j1 O=/home/roman/mod-workdir/x86_64 HOSTCC="/usr/bin/gcc" HOSTCXX="/usr/bin/g++" silentoldconfig
  GEN     /home/roman/mod-workdir/x86_64/Makefile
BR2_DEFCONFIG='' KCONFIG_AUTOCONFIG=/home/roman/mod-workdir/x86_64/build/buildroot-config/auto.conf KCONFIG_AUTOHEADER=/home/roman/mod-workdir/x86_64/build/buildroot-config/autoconf.h KCONFIG_TRISTATE=/home/roman/mod-workdir/x86_64/build/buildroot-config/tristate.config BR2_CONFIG=/home/roman/mod-workdir/x86_64/.config BR2_EXTERNAL=/home/roman/mod/mod-plugin-builder/plugins-dep HOST_GCC_VERSION="13" SKIP_LEGACY= /home/roman/mod-workdir/x86_64/build/buildroot-config/conf --silentoldconfig Config.in
�[7m>>> host-localedef 2.14.1-r17443-ptx1 Building�[27m
PATH="/home/roman/mod-workdir/x86_64/host/bin:/home/roman/mod-workdir/x86_64/host/sbin:/home/roman/mod-workdir/x86_64/host/usr/bin:/home/roman/mod-workdir/x86_64/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin" PKG_CONFIG="/home/roman/mod-workdir/x86_64/host/usr/bin/pkg-config" PKG_CONFIG_SYSROOT_DIR="/" PKG_CONFIG_LIBDIR="/home/roman/mod-workdir/x86_64/host/usr/lib/pkgconfig"  /usr/bin/make -j5  -C /home/roman/mod-workdir/x86_64/build/host-localedef-2.14.1-r17443-ptx1/
/usr/bin/gcc -I/home/roman/mod-workdir/x86_64/host/usr/include -O2 -I/home/roman/mod-workdir/x86_64/host/usr/include -fgnu89-inline -DNO_SYSCONF -DLOCALE_PATH='"/usr/lib/locale:/usr/share/i18n"' -DLOCALEDIR='"/usr/lib/locale"' -DLOCALE_ALIAS_PATH='"/usr/share/locale"' -DCHARMAP_PATH='"/usr/share/i18n/charmaps"' -DREPERTOIREMAP_PATH='"/usr/share/i18n/repertoiremaps"' -DLOCSRCDIR='"/usr/share/i18n/locales"' -DNOT_IN_libc -DIN_GLIBC_LOCALEDEF -Iglibc/locale/programs -I./include -Iglibc/locale -I. -I. -include ./include/always.h -Wall -Wno-format -c -o charmap-dir.o glibc/locale/programs/charmap-dir.c
/usr/bin/gcc -I/home/roman/mod-workdir/x86_64/host/usr/include -O2 -I/home/roman/mod-workdir/x86_64/host/usr/include -fgnu89-inline -DNO_SYSCONF -DLOCALE_PATH='"/usr/lib/locale:/usr/share/i18n"' -DLOCALEDIR='"/usr/lib/locale"' -DLOCALE_ALIAS_PATH='"/usr/share/locale"' -DCHARMAP_PATH='"/usr/share/i18n/charmaps"' -DREPERTOIREMAP_PATH='"/usr/share/i18n/repertoiremaps"' -DLOCSRCDIR='"/usr/share/i18n/locales"' -DNOT_IN_libc -DIN_GLIBC_LOCALEDEF -Iglibc/locale/programs -I./include -Iglibc/locale -I. -I. -include ./include/always.h -Wall -Wno-format -c -o ld-address.o glibc/locale/programs/ld-address.c
/usr/bin/gcc -I/home/roman/mod-workdir/x86_64/host/usr/include -O2 -I/home/roman/mod-workdir/x86_64/host/usr/include -fgnu89-inline -DNO_SYSCONF -DLOCALE_PATH='"/usr/lib/locale:/usr/share/i18n"' -DLOCALEDIR='"/usr/lib/locale"' -DLOCALE_ALIAS_PATH='"/usr/share/locale"' -DCHARMAP_PATH='"/usr/share/i18n/charmaps"' -DREPERTOIREMAP_PATH='"/usr/share/i18n/repertoiremaps"' -DLOCSRCDIR='"/usr/share/i18n/locales"' -DNOT_IN_libc -DIN_GLIBC_LOCALEDEF -Iglibc/locale/programs -I./include -Iglibc/locale -I. -I. -include ./include/always.h -Wall -Wno-format -c -o ld-identification.o glibc/locale/programs/ld-identification.c
/usr/bin/gcc -I/home/roman/mod-workdir/x86_64/host/usr/include -O2 -I/home/roman/mod-workdir/x86_64/host/usr/include -fgnu89-inline -DNO_SYSCONF -DLOCALE_PATH='"/usr/lib/locale:/usr/share/i18n"' -DLOCALEDIR='"/usr/lib/locale"' -DLOCALE_ALIAS_PATH='"/usr/share/locale"' -DCHARMAP_PATH='"/usr/share/i18n/charmaps"' -DREPERTOIREMAP_PATH='"/usr/share/i18n/repertoiremaps"' -DLOCSRCDIR='"/usr/share/i18n/locales"' -DNOT_IN_libc -DIN_GLIBC_LOCALEDEF -Iglibc/locale/programs -I./include -Iglibc/locale -I. -I. -include ./include/always.h -Wall -Wno-format -c -o ld-measurement.o glibc/locale/programs/ld-measurement.c
/usr/bin/gcc -I/home/roman/mod-workdir/x86_64/host/usr/include -O2 -I/home/roman/mod-workdir/x86_64/host/usr/include -fgnu89-inline -DNO_SYSCONF -DLOCALE_PATH='"/usr/lib/locale:/usr/share/i18n"' -DLOCALEDIR='"/usr/lib/locale"' -DLOCALE_ALIAS_PATH='"/usr/share/locale"' -DCHARMAP_PATH='"/usr/share/i18n/charmaps"' -DREPERTOIREMAP_PATH='"/usr/share/i18n/repertoiremaps"' -DLOCSRCDIR='"/usr/share/i18n/locales"' -DNOT_IN_libc -DIN_GLIBC_LOCALEDEF -Iglibc/locale/programs -I./include -Iglibc/locale -I. -I. -include ./include/always.h -Wall -Wno-format -c -o ld-messages.o glibc/locale/programs/ld-messages.c
In file included from ./include/locale.h:1,
                 from glibc/locale/langinfo.h:592,
                 from glibc/locale/programs/ld-messages.c:23:
glibc/locale/locale.h:152:8: error: unknown type name ‘__locale_t’
  152 | extern __locale_t newlocale (int __category_mask, __const char *__locale,
      |        ^~~~~~~~~~
glibc/locale/locale.h:153:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  153 |                              __locale_t __base) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
glibc/locale/locale.h:187:8: error: unknown type name ‘__locale_t’
  187 | extern __locale_t duplocale (__locale_t __dataset) __THROW;
      |        ^~~~~~~~~~
glibc/locale/locale.h:187:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  187 | extern __locale_t duplocale (__locale_t __dataset) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
glibc/locale/locale.h:191:25: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  191 | extern void freelocale (__locale_t __dataset) __THROW;
      |                         ^~~~~~~~~~
      |                         __socklen_t
glibc/locale/locale.h:198:8: error: unknown type name ‘__locale_t’
  198 | extern __locale_t uselocale (__locale_t __dataset) __THROW;
      |        ^~~~~~~~~~
glibc/locale/locale.h:198:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  198 | extern __locale_t uselocale (__locale_t __dataset) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
In file included from ./include/locale.h:1,
                 from glibc/locale/langinfo.h:592,
                 from glibc/locale/programs/ld-identification.c:24:
glibc/locale/locale.h:152:8: error: unknown type name ‘__locale_t’
  152 | extern __locale_t newlocale (int __category_mask, __const char *__locale,
      |        ^~~~~~~~~~
glibc/locale/langinfo.h:595:45: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  595 | extern char *nl_langinfo_l (nl_item __item, __locale_t __l);
      |                                             ^~~~~~~~~~
      |                                             __socklen_t
glibc/locale/locale.h:153:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  153 |                              __locale_t __base) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
glibc/locale/locale.h:187:8: error: unknown type name ‘__locale_t’
  187 | extern __locale_t duplocale (__locale_t __dataset) __THROW;
      |        ^~~~~~~~~~
glibc/locale/locale.h:187:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  187 | extern __locale_t duplocale (__locale_t __dataset) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
glibc/locale/locale.h:191:25: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  191 | extern void freelocale (__locale_t __dataset) __THROW;
      |                         ^~~~~~~~~~
      |                         __socklen_t
glibc/locale/locale.h:198:8: error: unknown type name ‘__locale_t’
  198 | extern __locale_t uselocale (__locale_t __dataset) __THROW;
      |        ^~~~~~~~~~
glibc/locale/locale.h:198:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  198 | extern __locale_t uselocale (__locale_t __dataset) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
glibc/locale/langinfo.h:595:45: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  595 | extern char *nl_langinfo_l (nl_item __item, __locale_t __l);
      |                                             ^~~~~~~~~~
      |                                             __socklen_t
In file included from ./include/locale.h:1,
                 from /usr/include/libintl.h:103,
                 from ./include/libintl.h:2,
                 from glibc/locale/programs/charmap-dir.c:23:
glibc/locale/locale.h:152:8: error: unknown type name ‘__locale_t’
  152 | extern __locale_t newlocale (int __category_mask, __const char *__locale,
      |        ^~~~~~~~~~
glibc/locale/locale.h:153:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  153 |                              __locale_t __base) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
glibc/locale/locale.h:187:8: error: unknown type name ‘__locale_t’
  187 | extern __locale_t duplocale (__locale_t __dataset) __THROW;
      |        ^~~~~~~~~~
glibc/locale/locale.h:187:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  187 | extern __locale_t duplocale (__locale_t __dataset) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
glibc/locale/locale.h:191:25: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  191 | extern void freelocale (__locale_t __dataset) __THROW;
      |                         ^~~~~~~~~~
      |                         __socklen_t
glibc/locale/locale.h:198:8: error: unknown type name ‘__locale_t’
  198 | extern __locale_t uselocale (__locale_t __dataset) __THROW;
      |        ^~~~~~~~~~
glibc/locale/locale.h:198:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  198 | extern __locale_t uselocale (__locale_t __dataset) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
make[2]: *** [Makefile:64: ld-messages.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from ./include/locale.h:1,
                 from glibc/locale/langinfo.h:592,
                 from glibc/locale/programs/ld-address.c:25:
glibc/locale/locale.h:152:8: error: unknown type name ‘__locale_t’
  152 | extern __locale_t newlocale (int __category_mask, __const char *__locale,
      |        ^~~~~~~~~~
glibc/locale/locale.h:153:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  153 |                              __locale_t __base) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
glibc/locale/locale.h:187:8: error: unknown type name ‘__locale_t’
  187 | extern __locale_t duplocale (__locale_t __dataset) __THROW;
      |        ^~~~~~~~~~
glibc/locale/locale.h:187:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  187 | extern __locale_t duplocale (__locale_t __dataset) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
glibc/locale/locale.h:191:25: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  191 | extern void freelocale (__locale_t __dataset) __THROW;
      |                         ^~~~~~~~~~
      |                         __socklen_t
glibc/locale/locale.h:198:8: error: unknown type name ‘__locale_t’
  198 | extern __locale_t uselocale (__locale_t __dataset) __THROW;
      |        ^~~~~~~~~~
make[2]: *** [Makefile:64: charmap-dir.o] Error 1
In file included from ./include/locale.h:1,
                 from glibc/locale/langinfo.h:592,
                 from glibc/locale/programs/ld-measurement.c:24:
glibc/locale/locale.h:152:8: error: unknown type name ‘__locale_t’
  152 | extern __locale_t newlocale (int __category_mask, __const char *__locale,
      |        ^~~~~~~~~~
glibc/locale/locale.h:153:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  153 |                              __locale_t __base) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
glibc/locale/locale.h:187:8: error: unknown type name ‘__locale_t’
  187 | extern __locale_t duplocale (__locale_t __dataset) __THROW;
      |        ^~~~~~~~~~
glibc/locale/locale.h:198:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  198 | extern __locale_t uselocale (__locale_t __dataset) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
glibc/locale/locale.h:187:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  187 | extern __locale_t duplocale (__locale_t __dataset) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
glibc/locale/locale.h:191:25: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  191 | extern void freelocale (__locale_t __dataset) __THROW;
      |                         ^~~~~~~~~~
      |                         __socklen_t
glibc/locale/locale.h:198:8: error: unknown type name ‘__locale_t’
  198 | extern __locale_t uselocale (__locale_t __dataset) __THROW;
      |        ^~~~~~~~~~
glibc/locale/locale.h:198:30: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  198 | extern __locale_t uselocale (__locale_t __dataset) __THROW;
      |                              ^~~~~~~~~~
      |                              __socklen_t
glibc/locale/langinfo.h:595:45: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  595 | extern char *nl_langinfo_l (nl_item __item, __locale_t __l);
      |                                             ^~~~~~~~~~
      |                                             __socklen_t
glibc/locale/langinfo.h:595:45: error: unknown type name ‘__locale_t’; did you mean ‘__socklen_t’?
  595 | extern char *nl_langinfo_l (nl_item __item, __locale_t __l);
      |                                             ^~~~~~~~~~
      |                                             __socklen_t
make[2]: *** [Makefile:64: ld-identification.o] Error 1
make[2]: *** [Makefile:64: ld-measurement.o] Error 1
make[2]: *** [Makefile:64: ld-address.o] Error 1
make[1]: *** [package/pkg-generic.mk:198: /home/roman/mod-workdir/x86_64/build/host-localedef-2.14.1-r17443-ptx1/.stamp_built] Error 2
make: *** [Makefile:36: _all] Error 2

build errors for x86_64 because of m4/SIGSTKSZ

I am trying to run bootstrap.sh for x86_64, but i run into a compile error (non-erroneous output omitted, let me know if I shall add the full output):

$ ./bootstrap.sh x86_64 all
...
In file included from /usr/include/signal.h:328,
                 from ./signal.h:52,
                 from c-stack.c:49:
c-stack.c:55:26: error: missing binary operator before token "("
   55 | #elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
      |                          ^~~~~~~~
/usr/bin/gcc  -I.   -I/home/henning/mod-workdir/x86_64/host/usr/include  -O2 -I/home/henning/mod-workdir/x86_64/host/usr/include -c -o exitfail.o exitfail.c
/usr/bin/gcc  -I.   -I/home/henning/mod-workdir/x86_64/host/usr/include  -O2 -I/home/henning/mod-workdir/x86_64/host/usr/include -c -o fatal-signal.o fatal-signal.c
/usr/bin/gcc  -I.   -I/home/henning/mod-workdir/x86_64/host/usr/include  -O2 -I/home/henning/mod-workdir/x86_64/host/usr/include -c -o fd-hook.o fd-hook.c
make[5]: *** [Makefile:1842: c-stack.o] Error 1
make[5]: *** Waiting for unfinished jobs....
make[4]: *** [Makefile:1602: all] Error 2
make[3]: *** [Makefile:1506: all-recursive] Error 1
make[2]: *** [Makefile:1461: all] Error 2
make[1]: *** [package/pkg-generic.mk:198: /home/henning/mod-workdir/x86_64/build/host-m4-1.4.17/.stamp_built] Error 2
make: *** [Makefile:36: _all] Error 2

Some research shows that this seems to be a known issue somewhere in the m4 codebase, and there are also some possible patches, but seemingly only for newer versions of m4: https://git.buildroot.org/buildroot/tree/package/m4/0003-c-stack-stop-using-SIGSTKSZ.patch?id=5a9504831f3fa1ef3be334036c93da30150fde55
But I'm not sure if buildroot is the right location - there seem to be multiple versions and sources of m4 around in the toolchain.

Being not very experienced with this kind of embedded toolchains and the ways how they add patches to the libraries used, I tried a few things but am somehow stuck on how to resolve this properly. I simply don't understand where exactly to place the possible patches to work properly. I tried using newer versions of buildroot instead, but that also doesn't seem to be possible/simple.

Any hint on what to do about this?

Plugin build asks for github / ssh key passwords on multiple plugins

After getting the bootstrap process to work for x86_64, I try to run build for all available plugins.
I simply run an ls in the plugins directory and run build for each one.

So far, I have been asked one time for my ssh key password (and forgot to note where exactly/for which plugin), and now I get this:

Cloning into '/home/henning/data/produktion/sound-software-dev/mod-workdir/x86_64/build/wolf-shaper-labs-d0b46c9ece642488efed3cd255df22516966b334/plugins/wolf-shaper/Libs/inih'...
Username for 'https://github.com': 

Is there a reason for this to be like that?
Or can/should I look into it and try to fix it?

wolf-shaper not building since repositories got moved and deleted

Hi @falkTX

I wanted to build the wolf-shaper plugin (watched a cool vid from https://github.com/unfa and wanted to give it a try since it seems to be available on MOD) since I am running on x86_64. But I was getting weird github authentication prompts.
Turns out the URLs in plugins/package/wolf-shaper-labs/wolf-shaper-labs.mk are pointing to nirvana since the correct URL nowadays seems to be https://github.com/wolf-plugins/wolf-shaper instead of https://github.com/pdesaulniers/wolf-shaper. One gets a nice forward in a browser but obviously a prompt on the command line. Or maybe that was for the non existing .gitmodules (later on that)? Does not matter really.

I tried to make you a nice PR for the URL changes. But turns out that that's not so easy as the old commit hash d0b46c9ece642488efed3cd255df22516966b334 is now unuseable since the .gitmodules of that commit also points to several other repositories inside of https://github.com/pdesaulniers which now do neither exist in the old nor the new place.

So I tried to point everything to the newest commit hash d8dc0d0e1d3ac2bcfdff964cffdfbb143e8811c1 and thought I might run into troubles which I did. The new .gitmodules does not reference much excpept for DPF so that's fine. I tried to fiddle with the patch files that deactivate graphical stuff but finally got stuck when compiling DPF because of:

Compiling src/NanoVG.cpp (OpenGL variant)
Compiling src/pugl.cpp (OpenGL variant)
In file included from src/OpenGL.cpp:22:
src/../OpenGL.hpp:75:11: fatal error: GL/gl.h: No such file or directory
   75 | # include <GL/gl.h>
      |           ^~~~~~~~~
compilation terminated.
make[3]: *** [Makefile:182: ../build/dgl/OpenGL.cpp.opengl.o] Error 1
make[3]: *** Waiting for unfinished jobs....

This does not make sense since I have installed libgl-dev and '/usr/include/GL/gl.h ' exists on my ubuntu box.
But I do not develop c/c++ that much that I would know what is going on here with the include.
And anyways it seems from the old patch files that graphical stuff should be deactivated. But in DPF it is all over the place and I would not know where to start even beginning with a clean building state.

But now I have been trying to get things to work for a at least 2 hours without success and thought I gave you my insights by creating this issue. I recon you are way faster in fixing these things than I am.
If you could tell me what to change with at least some detail I might even try to implement, build and test that on my box and give you a PR.

At least now I know why that plugin is not listed in https://github.com/moddevices/mod-live-usb/blob/main/plugins/Makefile :-(

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.