Compiling anything without admin approval leads to bizzare errors?

Reporter: BPzeBanshee  |  Status: open  |  Last Modified: September 12, 2016, 12:35:23 PM

output_log.txt = http://pastebin.com/xm1uYtEH
Progress window = http://pastebin.com/g0TsWrQS
Updated ENIGMA today by running the git-bash.bat and then typing "update", when I run a blank room I get a "Failed to compile at C++ Level".
JoshDreamland  
Could you pastebin the lines of C:/ProgramData/ENIGMA/Preprocessor_Environment_Editable/IDE_EDIT_roomarrays.h above line 164? Or just the whole file?

faissaloo  

What version of GCC do you have? Have you tried reinstalling ENIGMA?

BPzeBanshee  

http://pastebin.com/tJXRxuRU

This is odd. I first tested with Warbird but when closing and starting the program I ran a blank room yet this IDE_EDIT_roomarrays.h still refers to the Warbird rooms.

git-bash.bat reports GCC 4.8.2, which would I assume be whatever the ENGIMA portable build came with at the time. I downloaded and reinstalled several times on the last problem I had which didn't help so I'm a bit apprehensive about doing the same here.

JoshDreamland  

That is bizarre... perhaps the file is really old, and that's why the room creation codes don't have the expected prototype? Try cleaning the build (there's a button for it in LGM if you can't do it manually).

BPzeBanshee  

I tried cleaning the build from the button you describe which didn't work, so I manually deleted the C:\ProgramData\ENIGMA folder. From there I was able to compile an empty room but when testing Warbird afterwards I got the return of this error: http://enigma-dev.org/forums/index.php?topic=1396.msg26047#msg26047
which I then solved by re-enabling Run as Administrator in the Compatibility tab for ENIGMA.exe.

Seems to be a permissions problem. Very obtuse way of showing it, and I don't recall it doing this in previous builds.

JoshDreamland  

Why does ENIGMA not have access to its own ProgramData folder, on Windows? ...bleh. I'll keep that in mind for next time.

RobertBColton  

ENIGMA should be run with administrative privileges, that much I already knew. But I think it's only AppData they can write to without admin privileges Josh. TBH, I really have no idea but I think that's the case since GMS uses %APPDATA%/Roaming. YYG did something before so you could install GM without admin rights.

Since ENIGMA created the ProgramData folder though it should have the rights to modify it in the ACL.
http://stackoverflow.com/a/22107884

JoshDreamland  

Not if the installer created the folder with administrative privileges. When is that folder created? What so is in it? Perhaps we should just move the compiler output to APPDATA on Windows. Linux stores it in ~/.enigma.

RobertBColton  

https://github.com/enigma-dev/enigma-dev/blob/master/settings.ey#L43

The Default-Windows stuff was my doing, I updated ey a long time ago to make it do that. So anyway it's a per project setting. The reason I did that was because I was thinking of other IDE's like Qt Creator and stuff where you normally specify that in a project file. Really though I don't think ENIGMA needs it at that level? Should we make it a global ENIGMA setting instead?

JoshDreamland  

I think it's fine to have it configured in the project. I don't know if people are using it, but it's a neat feature that's out of the way. What's important is a reasonable default. A reasonable default should work without admin rights, though.

RobertBColton  

The one downside though Josh is people were confused when they would take an EGM to a different platform and it wouldn't compile because it was trying to use a different platform's make directory. What could be done about that?

JoshDreamland  

Perhaps I misunderstand the purpose of the default values; are we copying them into people's project configs when they don't set them? We should probably not be copying defaults at all. While it's possible that breaking changes to defaults could be aggravating, I think the benefits outweigh the costs. I'll think more on that with time.

But we should definitely not be copying platform-specific defaults into a platform-agnostic field. This problem is bigger than this bug report, and will really bite us in the long run. What's the point of different default values for different platforms if you can't manually configure different values for different platforms? That's the first thing to address. We'll worry about the issue of removing this individual project setting later.

RobertBColton  

Right, exactly, that is the problem. I have nothing more to say for now. But either way that setting is what is used to write that file to begin with, probably the compiler source doing it somewhere. So if access rights are a problem, that's where to look.

RobertBColton  

Hey guys, I also found that GMS uses ProgramData for the educational version so that it can run without admin rights.
http://help.yoyogames.com/hc/en-us/articles/216755378-GameMaker-Studio-Education-Version

GameMaker still requires a place to write to, so it currently use the windows standard ProgramData (normally found in c:\ProgramData). All users must have read/write access to c:\ProgramData\GameMaker-Studio. Inside here, logs will be stored in a per-user folders. If you ever run into difficulty, then you should delete the contents of this folder, run GameMaker: Studio again, and then zip up the log files and get in touch via the Helpdesk

Anway Josh, I have a temporary solution for now. We should default it to "" and when that string is empty the compiler just picks one depending on what platform you are on.

Please sign in to post comments, or you can view this issue on GitHub.