Linux version does not build ags64 and ags 32

Started by Arcangelo Bonaparte, Fri 10/03/2017 18:07:49

Previous topic - Next topic

Arcangelo Bonaparte

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?

Crimson Wizard

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.

Arcangelo Bonaparte

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.

Crimson Wizard

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


Arcangelo Bonaparte

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)"

Crimson Wizard

Hmm, I am afraid I know not much about that. Better ask someone more Linux savvy.

morganw

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).

Crimson Wizard

#7
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?

Snarky

You can just set the flag manually in Linux and package it from there.

morganw

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) or create an archive class that writes the file out manually.

SMF spam blocked by CleanTalk