Building fails in windows when username has spaces

For test results, bug reports, announcements of new builds etc.

Moderators: winston, another_commander, Getafix

Post Reply
Sotho Tal Ker
Above Average
Above Average
Posts: 17
Joined: Thu Jul 12, 2007 12:35 am

Building fails in windows when username has spaces

Post by Sotho Tal Ker »

Code: Select all

Sotho Tal Ker@HERCULES /gnustep-install-dir/Local/oolite/trunk
$ make
Making all for objc_program oolite...
 Creating Tal...
 Creating /home/Sotho...
make[1]: *** /home/Sotho: Invalid request code.  Stop.
make: *** [oolite.all.objc-program.variables] Error 2
Closely following the Wiki article on compiling in windows.

Well, maybe it is just me. But any help regarding this is appreciated. :D
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6683
Joined: Wed Feb 28, 2007 7:54 am

Post by another_commander »

MSYS make does not get along well with spaces in the pathnames. Not sure where MSYS tries to install itself by default, but I recommend that you ensure all MinGW, MSYS and GNUstep go in folders without any spaces. Looks like GNUstep is under gnustep-install-dir, which should be OK, but I cannot tell about the rest. What folders exist under your <MSYS install dir>/home? Probably something went wrong with MSYS installation in particular. Try reinstalling everything, ensuring no spaces are present in any filename you set for any installation.

If this does not work, I can put up for download a copy of my development environment, which I know works (be aware, size is bigger than 100MB) and you can see if you manage to make it function.
Sotho Tal Ker
Above Average
Above Average
Posts: 17
Joined: Thu Jul 12, 2007 12:35 am

Post by Sotho Tal Ker »

The problem is that my windows username has spaces.
When installed, it made a directory like this:
"C:\GNUstep\UserHomes\Sotho Tal Ker\GNUstep"

The other installation seems fine, though.
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6683
Joined: Wed Feb 28, 2007 7:54 am

Post by another_commander »

Just two quick questions, to be sure:
1. When you launch MSYS, are there any messages printed before you get the prompt? If yes, what are they?
2. Can you successfully run any of the tests and examples included in the GNUstep distribution?

Unfortuantely I cannot check the username with spaces situation on my system, but if all else fails, maybe you can try creating a new no-spaces user and run the installation from that account. If this succeeds, then we should update the Wiki entry accordingly.
Sotho Tal Ker
Above Average
Above Average
Posts: 17
Joined: Thu Jul 12, 2007 12:35 am

Post by Sotho Tal Ker »

1. No messages, so it works fine, i guess :)
2. I don't know.. how do I run a test? :P

Anyway... I created a username with no spaces and this worked ok.. except that compiling gives me a ton of errors now.

So indeed, usernames with a space are a NO GO for compiling with MSYS.

Anyway, the errors (only the beginning and end):

Code: Select all

Test@HERCULES /C/GNUstep/Local/oolite/trunk
$ make
Making all for objc_program oolite...
 Compiling file src/Core/Entities/Entity.m ...
 Compiling file src/Core/GameController.m ...
 Compiling file src/Core/GuiDisplayGen.m ...
      0 [main] sh 13592 open_stackdumpfile: Dumping stack trace to sh.exe.stackdump
In file included from src/Core/OOMaths.h:46,
                 from src/Core/GuiDisplayGen.h:29,
                 from src/Core/GuiDisplayGen.m:25:
src/Core/OOOpenGL.h:53:24: SDL_opengl.h: No such file or directory
In file included from src/Core/OOOpenGL.h:56,
                 from src/Core/OOMaths.h:46,
                 from src/Core/GuiDisplayGen.h:29,
                 from src/Core/GuiDisplayGen.m:25:
deps/Windows-x86-deps/include/GL/glext.h:3119: error: syntax error before "red"
Maybe I am missing some SDL stuff, but as i followed the Wiki article it should work with extracting Local.zip to the right folder.
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6683
Joined: Wed Feb 28, 2007 7:54 am

Post by another_commander »

Good to know that you made it work. It would have been a pain having to go through the GNUstep test suite to verify that the installation works.

Regarding the errors you are getting now, note that the SVN repository does not contain everything required to build Oolite. The oolite.exe depends on a lot of external libraries and obviously we could not put all dependencies on the Oolite tree. We do include, however, a few files that are not part of GNUstep or exist in many different versions, so that all developers refer for example to the same glext.h or libjs32.a. Now, before you go on and build, you need to install the OpenGL headers, the SDL and the SDL_mixer libraries (http://www.libsdl.org/download-1.2.php) and the libogg library (http://www.xiph.org/downloads/).

On with the errors:
1. Dumping stack trace.... Not sure what's going on there, but whatever it is it is not good. Looks like the shell is crashing for some reason. I would expect this to go away once your environment has been set up fully.

2. SDL_opengl.h: No such file or directory. Here you are missing the SDL library headers. This will be resolved automagically once SDL has been installed.

3. glext.h:3119: error: syntax error before "red"
The compiler does not know what a GLclampf is. Will be resolved once you have installed the OpenGL headers and libraries on your system.

[Edit] I had a look at the Local.zip file. It seems to contain some of the needed files. It must be just a question of putting them in the right path for the compiler to see them. You can try editing the GNUmakefile and insert the full paths of the files you need to look for. For example, if you want the compiler to see SDL.h and you have installed it in C:/gnustep/headers/SDL, you should append to the ADDITIONAL_INCLUDE_DIRS line

Code: Select all

-IC:/gnustep/headers/SDL 
(note the forward slashes).

You seem to have done most of the hard work fine, it should be just a matter of fine tuning the details.
Sotho Tal Ker
Above Average
Above Average
Posts: 17
Joined: Thu Jul 12, 2007 12:35 am

Post by Sotho Tal Ker »

Hm... now it does compile even with spaces in my username... maybe it is a bug in the last GNUStep (base-1.13.1-gui-0.11.0) which I used before.

With the version from the Wiki it works somehow. Except that sh.exe segfaults a few times while compile - that is where the errors come from.
Running make a few times finally compiled everything, but the executable is twice the size of what was in the death_actions hotfix O.O

Anyway, it is compiled now, yay! :D
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6683
Joined: Wed Feb 28, 2007 7:54 am

Post by another_commander »

Good job! As for the exe size, the executables that go for release get stripped to remove all debug info from them. This cuts down on size a lot. Just do a 'strip -s oolite.exe' inside the oolite.app folder and witness how much smaller your exe will become :wink:
Sotho Tal Ker
Above Average
Above Average
Posts: 17
Joined: Thu Jul 12, 2007 12:35 am

Post by Sotho Tal Ker »

Ah, debug info - i don't care, except this is responsible for the huge memory usage sometimes. :)

Also the newer GNUStep has problems with spaces in username.. but the sh.exe crash happens there, too. I just created a bug item on their bugtracker. :D
Sotho Tal Ker
Above Average
Above Average
Posts: 17
Joined: Thu Jul 12, 2007 12:35 am

Post by Sotho Tal Ker »

Well, this gets a bit offtopic now, but since i successfully built the game should I use the generated logcontrol.plist from build or the nice handmade one from the Oolite directory?
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post by JensAyton »

The legible one apparently doesn’t work under Windows (there was a suggestion it did, and then a suggestion it didn’t, so I’m not sure). If it works, go with it. Otherwise, copy and rename logcontrol.plist.xml (which is generated from the legible one whenever I build the project under Xcode and therefore tags along when I commit).
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6683
Joined: Wed Feb 28, 2007 7:54 am

Post by another_commander »

The legible (i.e. non-XML) version of logcontrol.plist works perfectly fine under Windows.
User avatar
JensAyton
Grand Admiral Emeritus
Grand Admiral Emeritus
Posts: 6657
Joined: Sat Apr 02, 2005 2:43 pm
Location: Sweden
Contact:

Post by JensAyton »

Oh, good. So how did the llama OXP shipdata not work?

Computers, eh?
another_commander
Quite Grand Sub-Admiral
Quite Grand Sub-Admiral
Posts: 6683
Joined: Wed Feb 28, 2007 7:54 am

Post by another_commander »

[Off Topic, apologies]
@Ahruman: I think we just got mixed up with the two different versions of the Llama shipdata when this was first reported. In any case, I have both versions (old and new) working now on my system and if need be I could upload them to berlios or emal them to you.
[/Off Topic, apologies]
Post Reply