Adventure Game Studio | Forums

AGS Support => Beginners' Technical Questions => Topic started by: Arcangelo Bonaparte on Fri 10/03/2017 18:07:49

Title: Linux version does not build ags64 and ags 32
Post by: Arcangelo Bonaparte on Fri 10/03/2017 18:07:49
I converted my game to Linux.
Then I sent it to a friend.

He sais it is missing ags64 and ags32 files.

Do these files get built by ags or do they have to be installed seperately?
Title: Re: Linux version does not build ags64 and ags 32
Post by: Crimson Wizard on Fri 10/03/2017 18:19:57
Look into Compiled/Linux folder to see if there are ags32 and ags64 subfolders and files in them.

Previously we were reported a possible issue when AGS could not copy these files from its program file folder onto game's folder, if AGS is installed in C:/Program Files and user does not work as administrator.
I was planning to check that out, but forgot to do until now...

If that's the case, then try launching AGS as administrator and rebuild the game (or install AGS on different disk partition, like D).

Or just copy these folders and files yourself before sending Linux build to your friend.
Title: Re: Linux version does not build ags64 and ags 32
Post by: Arcangelo Bonaparte on Fri 10/03/2017 19:54:08
Thank you.
I launched AGS as administrator and rebuilt the whole game.
This resulted in the 64 ans 32 folder to fill with the files.
Title: Re: Linux version does not build ags64 and ags 32
Post by: Crimson Wizard on Sun 12/03/2017 13:34:35
I altered build process to just copy files if hardlinking them failed (this is what happens if it tries to hardlink libraries located in C:/Program Files). Could you (or anyone else) try this out and confirm that linux files are created even if AGS not run under administrator?

http://www.mediafire.com/file/6j5w6gjj0mkef5e/AGS.Editor.3.4.0.15--linux-files-fix.zip

Title: Re: Linux version does not build ags64 and ags 32
Post by: Arcangelo Bonaparte on Tue 28/03/2017 18:55:26
I've converted the game and sent it to a friend who has Linux.
He answered the following:

"Seems to work fine now! (Though RatChannel and
ags64 files needs to be made executable.. not sure if this can be
"pre" done though)"
Title: Re: Linux version does not build ags64 and ags 32
Post by: Crimson Wizard on Tue 28/03/2017 21:08:57
Hmm, I am afraid I know not much about that. Better ask someone more Linux savvy.
Title: Re: Linux version does not build ags64 and ags 32
Post by: morganw on Fri 31/03/2017 21:51:36
The archive that is used to distribute the game needs to preserve the execute bit on what should be executable, but because the game is compiled on Windows the execute bit won't be available to set and compression utilities on Windows will usually ignore it. So you would have to have a game build option which writes directly to an archive and flags which files should be executable within that archive (most likely extended headers in a zip file, or a standard tar file).
Title: Re: Linux version does not build ags64 and ags 32
Post by: Crimson Wizard on Fri 19/01/2018 12:50:38
Quote from: morganw on Fri 31/03/2017 21:51:36
The archive that is used to distribute the game needs to preserve the execute bit on what should be executable, but because the game is compiled on Windows the execute bit won't be available to set and compression utilities on Windows will usually ignore it. So you would have to have a game build option which writes directly to an archive and flags which files should be executable within that archive (most likely extended headers in a zip file, or a standard tar file).

At the moment the game is not archived by Editor at all. Do I understand correctly that it must be put into archive to accomplish this?

Also, how do other ppl who create Linux versions currently work around this?
Title: Re: Linux version does not build ags64 and ags 32
Post by: Snarky on Fri 19/01/2018 15:42:38
You can just set the flag manually in Linux and package it from there.
Title: Re: Linux version does not build ags64 and ags 32
Post by: morganw on Fri 19/01/2018 18:43:34
Quote from: Crimson Wizard on Fri 19/01/2018 12:50:38
At the moment the game is not archived by Editor at all. Do I understand correctly that it must be put into archive to accomplish this?
Yes. If you don't want to package it on another platform you would have to write the game files to an archive format that supports the flag, set the flag on the script and the engine binaries, and not extract it until you are on a filesystem that can maintain the flag (i.e. don't extract and re-archive it on Windows). I guess it just needs a library that could write the file (maybe this one) (https://icsharpcode.github.io/SharpZipLib/help/api/ICSharpCode.SharpZipLib.Tar.TarHeader.html#ICSharpCode_SharpZipLib_Tar_TarHeader_Mode) or create an archive class that writes the file out manually.