Trying to build Milkytracker

I’m trying to get Milkytracker running by building it from ports. It gets half way through building before complaining that SampleEditorControl.cpp can’t find execution_defs.h. Which package contains this file?

I cannot see the option to search packages for files on the haikudepot site or in the app. That would be a very nice feature to have. Can I search all haikudepot packages for a file on the command line?

try pkgman in Terminal

Haven’t checked for a while with this one, but at least it’s known: https://github.com/haikuports/haikuports/issues/6488

1 Like

I don’t think pkgman lets you search for files contained within packages.

Debian and Ubuntu have apt-file for this, as an example from one family of Linux distros.

It seems the missing file is already installed on my machine, under:

/boot/system/develop/tools/lib/gcc/x86_64-unknown-haiku/11.2.0/include/c++/pstl/execution_defs.h

The bit that concerns me there is the 11.2.0 part of the path which is obviously going to change on a regular basis so how do we update the recipe or jamrules to allow for that ie not have to update the recipe every time gcc gets updated?

/boot/system/develop/tools/lib/gcc/x86_64-unknown-haiku/11.2.0/include/c++/ is part of the standard search path for the c++ compiler. You should only need to use anything after that(i.e. pstl/execution_defs.h) in your source code. You can see the default search path for c++ by using g++ -v -x c++ -E /dev/null.

Milkytracker gets as far as trying to build SampleEditorControl.cpp, line 35 of which is:

#include <algorithm>

I can see cc1plus is then pulling in

/boot/system/develop/tools/lib/gcc/x86_64-unknown-haiku/11.2.0/include/c++/pstl/glue_algorithm_defs.h before complaining that execution_defs.h doesn’t exist.

I am unable to edit /boot/system/develop/tools/lib/gcc/x86_64-unknown-haiku/11.2.0/include/c++/pstl/glue_algorithm_defs.h to attempt to insert the extra pstl before execution_defs.h, I presume because its within a package?

Looking at the header/comments at the top of glue_algorithm_defs.h, it seems to be an include file from LLVM but haikuporter seems to be using gcc to build it. Can I safely use LLVM header files with gcc? It seems that isn’t the case here.

The algorithm library is a part of the standard template library, which is included with gcc. Some of my apps use this library and build correctly on Haiku. The problem must be somewhere else. Maybe the build system is doing something strange.
Btw, I can recreate your build error with Milkytracker, so the error is not related to some problem with your specific system.

EDIT: I just saw that Milkytracker is available via HaikuDepot/pkgman, so that means it compiles correctly somewhere on the build bots, right?. But the installed program crashes right after starting.
Best thing would be to create an issue on HaikuPorts and/or write to the haikuports mailing list.