-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FreeBSD Ports exp-run results #70
Comments
Uncovered while building with devel/samurai but can probably also happen with ninja eventually. There are some missing dependencies on the components module. In file included from /wrkdirs/usr/ports/audio/muse-sequencer/work/muse-muse_3_1_1/muse3/muse/waveedit/wavecanvas.cpp:72: /wrkdirs/usr/ports/audio/muse-sequencer/work/muse-muse_3_1_1/muse3/muse/components/copy_on_write.h:26:10: fatal error: 'ui_copy_on_write_base.h' file not found #include "ui_copy_on_write_base.h" ^~~~~~~~~~~~~~~~~~~~~~~~~ http://package18.nyi.freebsd.org/data/122amd64-default-foo/2021-04-05_21h03m50s/logs/errors/muse-sequencer-3.1.1_1.log michaelforney/samurai#70 PR: 254678 Obtained from: upstream (midieedit, waveedit patches)
Thanks for the update! That sounds really promising. I'm really happy to see FreeBSD consider using samurai since you have such a large ports tree. It should really open the door for other operating systems to try it as well.
Do you have plans to submit these patches upstream? It would be quite nice to get these sort of issues fixed for the benefit of everyone using samurai. If you have any doubts about any of the patches, let me know and I can try to take a look.
I pushed a fix for this in aff2085, let me know if that works. I wish the ninja manual was a bit more detailed about the syntax :/ |
I have doubts about all of the patches but let's see what the upstreams say. I have some trouble figuring out what the fbthrift issue even could be. It's a maze of CMake build files. I also cannot reproduce the failure on my machines...
Yes, thanks. That seems to work fine. |
This allows samurai to accept stray indented but otherwise empty lines and we can drop the fluxengine workaround. michaelforney/samurai#70
fbthrift bug should be fixed by facebook/fbthrift#422 Is it just bijiben that is left after this? |
gnome-notes (bijiben) pull request submitted: https://gitlab.gnome.org/GNOME/gnome-notes/-/merge_requests/116 |
…riftcpp2 target (D29353) One source file in this target, async/HeaderClientChannel.cpp, depends on the generated header RocketUpgradeAsyncClient.h, so it needs to depend on the target that generates this header. This causes a build error with samurai due to an incorrect build order, and can be reproduced with ninja as well by building thrift/lib/cpp2/CMakeFiles/thriftcpp2.dir/async/HeaderClientChannel.cpp.o directly with an empty .ninja_deps. michaelforney/samurai#70 PR: 254678
…ncy sources (D29353) The meson manual states that > Each target that depends on a generated header should add that > header to it's sources, as seen above with libfoo and myexe. This > is because there is no way for Meson or the backend to know that > myexe depends on foo.h just because libfoo does, it could be a > private header. Since biji-marshalers.h is included by the libbiji public header libbiji.h, it must be added as a source to all targets that depend on libbiji. This can be done by adding it to the sources of libbiji_dep. This should unbreak the build with samurai. michaelforney/samurai#70 PR: 254678
Thank you. I believe that bijiben was the last failure. I've applied your patches to the ports tree and have asked for another exp-run round. |
I've noticed something. qt5-webengine's configure fails to recognize samurai as valid system ninja and builds a bundled ninja(!). The check goes like this (
It tries to run
If I patch samu to return |
Done in ca5a6ba. |
This makes --version return 1.9.0 instead of 1.9. qt5-webengine's configure checks for system ninja and tries to parse --version and expects it to have 3 components. Without this qt5-webengine falls back to using a bundled copy of ninja instead. michaelforney/samurai#70 PR: 254678
This makes --version return 1.9.0 instead of 1.9. qt5-webengine's configure checks for system ninja and tries to parse --version and expects it to have 3 components. Without this qt5-webengine falls back to using a bundled copy of ninja instead. michaelforney/samurai#70 PR: 254678
The exp-run has finished and it looks good, only one new failure in deno. Something wrong with the bundled v8 build. Not sure what's going one with that. I might just hardcode ninja there for now to be done with it. On a more general note I noticed that some escape sequences for color compiler diagnostics make it through to the build logs. I disabled that for Meson builds by passing |
Uncovered while building with devel/samurai but can probably also happen with ninja eventually. There are some missing dependencies on the components module. In file included from /wrkdirs/usr/ports/audio/muse-sequencer/work/muse-muse_3_1_1/muse3/muse/waveedit/wavecanvas.cpp:72: /wrkdirs/usr/ports/audio/muse-sequencer/work/muse-muse_3_1_1/muse3/muse/components/copy_on_write.h:26:10: fatal error: 'ui_copy_on_write_base.h' file not found #include "ui_copy_on_write_base.h" ^~~~~~~~~~~~~~~~~~~~~~~~~ http://package18.nyi.freebsd.org/data/122amd64-default-foo/2021-04-05_21h03m50s/logs/errors/muse-sequencer-3.1.1_1.log michaelforney/samurai#70 PR: 254678 Obtained from: upstream (midieedit, waveedit patches)
This allows samurai to accept stray indented but otherwise empty lines and we can drop the fluxengine workaround. michaelforney/samurai#70
…riftcpp2 target (D29353) One source file in this target, async/HeaderClientChannel.cpp, depends on the generated header RocketUpgradeAsyncClient.h, so it needs to depend on the target that generates this header. This causes a build error with samurai due to an incorrect build order, and can be reproduced with ninja as well by building thrift/lib/cpp2/CMakeFiles/thriftcpp2.dir/async/HeaderClientChannel.cpp.o directly with an empty .ninja_deps. michaelforney/samurai#70 PR: 254678
…ncy sources (D29353) The meson manual states that > Each target that depends on a generated header should add that > header to it's sources, as seen above with libfoo and myexe. This > is because there is no way for Meson or the backend to know that > myexe depends on foo.h just because libfoo does, it could be a > private header. Since biji-marshalers.h is included by the libbiji public header libbiji.h, it must be added as a source to all targets that depend on libbiji. This can be done by adding it to the sources of libbiji_dep. This should unbreak the build with samurai. michaelforney/samurai#70 PR: 254678
This makes --version return 1.9.0 instead of 1.9. qt5-webengine's configure checks for system ninja and tries to parse --version and expects it to have 3 components. Without this qt5-webengine falls back to using a bundled copy of ninja instead. michaelforney/samurai#70 PR: 254678
Though this looks like the same type of error as other build-order issues (missing header error), I am a bit suspicious about this one since Additionally, we have these lines
Are you sure that the build with ninja does not have these problems? Can you reproduce the failure and poke around the build directory? I don't seem to be able to reproduce it locally when building rusty_v8 (but I tested on Linux since I don't have a FreeBSD install and the build took too long to run on sourcehut).
Sorry, I'm not sure. It seems these projects are hard-coding |
I went ahead and committed samurai support to the ports tree. It can be switched on by having
I have been unable to reproduce it myself. In the mean time deno was also updated, so maybe the problem is already gone (but rusty_v8 wasn't updated so probably not). I've asked for a rebuilt on the package builder and for a copy of the working directory in case it fails again.
Hmm, I'm not sure this is worth the trouble it might cause. It also feels like solving the problem at the wrong layer. What probably should happen is to implement something like |
I think that's all. Thanks for all your help. |
Thank you for tracking down all those failing packages :) |
Hi,
the first round of the exp-run has finished. There were only a handful of failures.
Our ninja package depends on Python and unsurprisingly there were many issues related to underspecified build dependencies as a result since samurai has no dependencies itself.
Many build order bugs. I tried addressing a few:
Remaining issues are
One self-made issue with argument order in our framework.
-v
was always added as the last argument to Ninja but thanks to SAMUFLAGS we do not even need to do this with Samurai.A samurai/ninja behavior difference in sysutils/fluxengine. It has its own Ninja generator which creates a build file with extra whitespace. Ninja accepts it but Samurai does not. This was easy enough to fix but I wonder if this could be considered a bug in Samurai. Please see the commit for more details: freebsd/freebsd-ports@7b1d905
The text was updated successfully, but these errors were encountered: