ENIGMA Forums

Outsourcing saves money => Issues Help Desk => Topic started by: mistermano on April 15, 2019, 09:57:09 am

Title: Cannot compile the source ("solved")
Post by: mistermano on April 15, 2019, 09:57:09 am
Following the installation guide, this is what I get whenever I run make
Code: [Select]
$ make
make -C shared/protos/
make[1]: Entering directory '/d/enigma/enigma-dev/shared/protos'
which: no grpc_cpp_plugin in (/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/)
make codegen
make[2]: Entering directory '/d/enigma/enigma-dev/shared/protos'
which: no grpc_cpp_plugin in (/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/)
mkdir -p codegen/
protoc -I=. -I=/usr/include --cpp_out=codegen/ Action.proto
make[2]: protoc: Command not found
make[2]: *** [Makefile:35: codegen//Action.pb.cc] Error 127
make[2]: Leaving directory '/d/enigma/enigma-dev/shared/protos'
make[1]: *** [Makefile:47: lib] Error 2
make[1]: Leaving directory '/d/enigma/enigma-dev/shared/protos'
make: *** [Makefile:29: libProtocols] Error 2
Searched for "grpc_cpp_plugin" in the forum, found this thread (https://enigma-dev.org/forums/index.php?topic=2949.msg27316#msg27316), installed the packages, make still gives the same error. What's going on?
Running on Windows 10, installed msys2 and followed all the steps of updating it before running the stuff in the wiki.

Quick edit: apparently, this is the culprit? https://github.com/grpc/grpc/issues/8774 - How do I work around this? Compile grpc and overwrite stuff in the msys folders?

PS: A bit off topic, but why not leave a link for the Discord channel in the homepage?

Edit2: Ok, I managed to make it work with something i can only see as a stupid oversight. That error above was running with msys-64. With 32, the plugin was found and it worked until it tried to run g++ (make[2]: g++: Command not found). At that failure, I ran make with the 64 again, and things followed without a problem. Seriously, what the fuck??
As a side note, someone should update the wiki to mention doing these things (pacman -Sy mingw-w64-grpc as per the linked thread + running make with msys32 first then with msys64), I doubt i'm the only one who suffered through this (exact same problem on 2 completely different win10 computers, no less).
Title: Re: Cannot compile the source ("solved")
Post by: Goombert on April 15, 2019, 02:19:07 pm
Hi mistermano! I'm sorry for the frustration but am glad you at least managed to get past it. This is going to sound awful, but I don't yet have an explanation for this. This is all relatively new stuff we've built and added (the protocol buffers being moved into the compiler). I do recall when we first got started there was a problem finding that GRPC plugin for me on Windows too. However, nobody else has reported your issue here or had any similar issues, which is why I am confused. One thing I am considering is if you already had MSYS2 installed prior to trying to set up ENIGMA today?

The fact that restarting, trying the 32 bit MSYS, then restarting again and trying the 64 bit MSYS again finally worked is odd too. If you followed the Wiki, G++ would not be found because you likely only installed the 64 bit dependencies and thus the 64 bit G++ would not be found in the 32 bit MSYS by design. What I think actually happened is you missed the crucial step in the MSYS2 installation procedure on their site where you restart MSYS2 and then continue the system upgrade a second time (I know MSYS2 setup is convoluted and messy and why I want to create an automated installer builder for ENIGMA). So I think it would have fixed it if you had just restarted the 64 bit MSYS without bothering with the 32 bit one, I don't think the 32 bit MSYS had anything to do with it.

Regardless, this does seem to be a one off, and you've got past it now. If you can maybe reason through my questions and give some more feedback then maybe we can see if something should be changed. For now, I can't really say whether or not we can improve the makefile or this was just a fluke.

Edit: Also, I should mention a community member has been maintaining an easy setup installation method for future reference.
https://enigma-dev.org/forums/index.php?topic=2954
Title: Re: Cannot compile the source ("solved")
Post by: mistermano on April 15, 2019, 02:49:29 pm
It's possible I only installed specific architecture libraries and didn't notice, which would explain why the plugin only worked with 32, while g++ only worked with 64, at least regarding that

What I think actually happened is you missed the crucial step in the MSYS2 installation procedure on their site where you restart MSYS2 and then continue the system upgrade a second time (I know MSYS2 setup is convoluted and messy and why I want to create an automated installer builder for ENIGMA)
I followed that one to the letter. pacman -Syu, force close the window as the command line states, then open it again, run pacman -Su to finish it proper.
Afterwards, I ran the line for the 64bit packages: pacboy -S git: toolchain:x make: boost:x protobuf:x libpng:x rapidjson:x pugixml:x yaml-cpp:x openal:x dumb:x libvorbis:x libogg:x flac:x mpg123:x libsndfile:x libgme:x sfml:x gtk2:x zlib:x libffi:x box2d:x bullet:x glew:x glm:x alure:x grpc:x - While running msys64. Immediately, running make gave the grpc_cpp_plugin error.

I will also note that I only ran this line after that first problem with grpc
2. install grpc package:
for x86_64:
pacman -Sy mingw-w64-i686-grpc

I should probably test redoing everything I just did, but with msys32 from the beginning and the 32bit packages.

In the machine I managed this fix, I never installed msys before, so it's impossible the reason was any sort of leftovers.

Also, I should mention a community member has been maintaining an easy setup installation method for future reference.
https://enigma-dev.org/forums/index.php?topic=2954
I'll try that one later today on another machine
Title: Re: Cannot compile the source ("solved")
Post by: Goombert on April 15, 2019, 02:53:42 pm
I think I see what the problem might be. Which target did you make? Was it just [snip]make[/snip] or [snip]make all[/snip]? The default installation in the Wiki is not supposed to have people building with GRPC yet (that's for the GRPC server which RGM uses for remote compiling). The default installation is only supposed to have you make the protocol buffers, compiler, and libraries.
Title: Re: Cannot compile the source ("solved")
Post by: mistermano on April 15, 2019, 08:01:34 pm
I only ran make. Was I supposed to run make all?

EDIT: Used that collection of .bat and script to install stuff. After running the x64 "install-or-update" ones, I've tried manually running make again. Now, here's something interesting:
Running MSYS2 MSYS, I got the same error as in the OP, which: no grpc_cpp_plugin in (/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Windows/System32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0/:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl)
Running MSYS2 MinGW 32, I also got that error
Running MSYS2 MinGW 64, the compiling works, both the grpc plugin and g++

So there's also THAT to look out for, whether you're running msys2 or one of the mingw prompts.
Title: Re: Cannot compile the source ("solved")
Post by: Goombert on April 16, 2019, 01:26:56 am
No, you were supposed to run just [snip]make[/snip] like you did correctly. I'll have to look at that soon, I mean by default the setup on the Wiki is not even supposed to have anything to do with GRPC yet. I list the dependency to be installed just so when we announce its readyness, some users will already have it installed. Other than that, you shouldn't be seeing that make error. I'll look into it.
Title: Re: Cannot compile the source ("solved")
Post by: Goombert on May 17, 2019, 08:48:12 pm
Alright, I've sent a pull request which has just been merged into master and should address this. We now filter out the GRPC interfaces, which should stop the makefile from looking for the GRPC plugin.
https://github.com/enigma-dev/enigma-dev/pull/1724

If anybody has more problems please post about them here or on GitHub so we can find them and get them resolved. Cheers! (Y)