Jibble

The AGS Awards ceremony will take place starting 20:00GMT on Saturday 30 March! Check out the thread for more details and to get the client.

Author Topic: Linux version does not build ags64 and ags 32  (Read 1239 times)

Linux version does not build ags64 and ags 32
« on: 10 Mar 2017, 18:07 »
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?

Re: Linux version does not build ags64 and ags 32
« Reply #1 on: 10 Mar 2017, 18:19 »
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.

Re: Linux version does not build ags64 and ags 32
« Reply #2 on: 10 Mar 2017, 19:54 »
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.

Re: Linux version does not build ags64 and ags 32
« Reply #3 on: 12 Mar 2017, 13:34 »
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


Re: Linux version does not build ags64 and ags 32
« Reply #4 on: 28 Mar 2017, 18:55 »
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)"

Re: Linux version does not build ags64 and ags 32
« Reply #5 on: 28 Mar 2017, 21:08 »
Hmm, I am afraid I know not much about that. Better ask someone more Linux savvy.

Re: Linux version does not build ags64 and ags 32
« Reply #6 on: 31 Mar 2017, 21:51 »
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).

Re: Linux version does not build ags64 and ags 32
« Reply #7 on: 19 Jan 2018, 12:50 »
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?
« Last Edit: 19 Jan 2018, 12:53 by Crimson Wizard »

Snarky

  • Global Moderator
  • Private Insultant
    • I can help with proof reading
    • I can help with translating
Re: Linux version does not build ags64 and ags 32
« Reply #8 on: 19 Jan 2018, 15:42 »
You can just set the flag manually in Linux and package it from there.

Re: Linux version does not build ags64 and ags 32
« Reply #9 on: 19 Jan 2018, 18:43 »
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) or create an archive class that writes the file out manually.