• Hey! Guest! The 39th GMC Jam will take place between November 26th, 12:00 UTC and November 30th, 12:00 UTC. Why not join in! Click here to find out more!
  • Hello [name]! Thanks for joining the GMC. Before making any posts in the Tech Support forum, can we suggest you read the forum rules? These are simple guidelines that we ask you to follow so that you can get the best help possible for your issue.

Linux Linux build failure (PSCP/SCP command) using YYC build?

Japster

Member
Hi guys! - Finally got a Linux box set up, configured, and able to build my games for Linux!

They build fine using VM! - it's cool to see them running on Linux, ready for adding to Steam.... ...BUT...

...when I select YYC as the build method, the Linux build fails with the following:-


Code:
...
cd /home/japster/GameMakerStudio2/yyc/FromPC/TetraLogical; chmod +x execute.sh
pscp Y:\TetraLogical_7250E04E_YYC\Game\ /home/japster/GameMakerStudio2/yyc/FromPC/TetraLogical/Game/
Renci.SshNet.Common.ScpException: scp: error: unexpected filename:
   at Renci.SshNet.ScpClient.CheckReturnCode(Stream input)
   at Renci.SshNet.ScpClient.Upload(DirectoryInfo directoryInfo, String path)
   at ..(String , String , Boolean )
   at Igor.LinuxBuilder.pscp(String local, String remote, Boolean recursive)
   at Igor.LinuxBuilder.LinuxSendAndBuildMakefile(String _dir)
   at Igor.LinuxBuilder.Run()
Igor complete.
elapsed time 00:02:46.4094898s for command "C:\ProgramData\GameMakerStudio2\Cache\runtimes\runtime-2.2.1.287/bin/Igor.exe" -j=8 -options="C:\Users\A\AppData\Local\GameMakerStudio2\GMS2TEMP\build.bff" -q -- Linux Run started at 01/02/2020 17:27:22
"cmd"  /c subst Z: /d

elapsed time 00:00:00.0369018s for command "cmd" /c subst Z: /d started at 01/02/2020 17:30:08
"cmd"  /c subst Y: /d

elapsed time 00:00:00.0359034s for command "cmd" /c subst Y: /d started at 01/02/2020 17:30:08
"cmd"  /c subst X: /d

elapsed time 00:00:00.0369012s for command "cmd" /c subst X: /d started at 01/02/2020 17:30:08
FAILED: Run Program Complete
If anyone has seen errors similar to this before, or can help, I'd really appreciate it! - so close, but so far, and Linux is NOT my forte! - Took me way too long just to find out how to check the box's IP address! :(

No specific info given either :( :-

Renci.SshNet.Common.ScpException: scp: error: unexpected filename:
at Renci.SshNet.ScpClient.CheckReturnCode(Stream input)


Cheers all...
 

Japster

Member
Googled just in case it's a generic issue in Linux or MacOS, and it seems it might be related to security being tightened up...

https://superuser.com/questions/1403473/scp-error-unexpected-filename

@Nocturne - sorry to tag you mate, but the solution that some people have found that works is a slight modification to the command line in question, in their case:-

scp -r $(pwd) <remote_server>:<remote_folder>


...but obviously as it's part of the Linux build automated process within GMS2, I can't implement this? - does this look like a solution, or perhaps there's an app grab command to replace 'pscp' with a different one, in case I can get around it that way?

BTW, it's not project related, as my other project does the exact same thing:-

Code:
pscp Y:\GSRR_77EA4AB8_YYC\Game\ /home/japster/GameMakerStudio2/yyc/FromPC/GSRR/Game/
Renci.SshNet.Common.ScpException: scp: error: unexpected filename:

Cheers....
 

Japster

Member
....and... I forgot to mention - It's a Linux Mint 19.3 box...

Cheers...

EDIT - Just tried again after re-doing all steps in @Nocturne 's excellent Linux VM and YYC builds guide... still no joy - Complete output log here (PS - I can compile my Windows YYC just fine on this same dev machine) - I do note some JSON parse warnings earlier in the log, not sure if they're normal:-

Code:
"cmd"  /c subst Z: "C:\Users\A\AppData\Roaming\GameMakerStudio2\Cache\GMS2CACHE"

elapsed time 00:00:00.0538561s for command "cmd" /c subst Z: "C:\Users\A\AppData\Roaming\GameMakerStudio2\Cache\GMS2CACHE" started at 01/04/2020 21:30:41
"cmd"  /c subst Y: "C:\Users\A\AppData\Local\GameMakerStudio2\GMS2TEMP"

elapsed time 00:00:00.0508641s for command "cmd" /c subst Y: "C:\Users\A\AppData\Local\GameMakerStudio2\GMS2TEMP" started at 01/04/2020 21:30:41
"cmd"  /c subst X: "C:\ProgramData\GameMakerStudio2\Cache\runtimes\runtime-2.2.1.287"

elapsed time 00:00:00.0498665s for command "cmd" /c subst X: "C:\ProgramData\GameMakerStudio2\Cache\runtimes\runtime-2.2.1.287" started at 01/04/2020 21:30:41
Saving project to: C:\Users\A\Documents\GameMakerStudio2\GSRR\GSRR.yyp
Loaded Macros from C:\Users\A\AppData\Roaming\GameMakerStudio2\Cache\GMS2CACHE\GSRR_4139FE54\macros.json
Options: X:/bin\platform_setting_defaults.json
Options: C:\Users\A\AppData\Roaming/GameMakerStudio2\japsters.cavern_944082\local_settings.json
Options: C:\Users\A\AppData\Roaming\GameMakerStudio2\Cache\GMS2CACHE\GSRR_4139FE54\targetoptions.json
Reading project file....C:\Users\A\Documents\GameMakerStudio2\GSRR
Reading project file....X:\BaseProject
Reading config delta 'C:\Users\A\Documents\GameMakerStudio2\GSRR\options\main\inherited\options_main.inherited.yy'
GMFont - Unable to parse json entry - glyphOperations - text - 0
GMFont - Unable to parse json entry - hinting - text - 0
GMFont - Unable to parse json entry - interpreter - text - 0
GMFont - Unable to parse json entry - maintainGms1Font - text - False
GMFont - Unable to parse json entry - pointRounding - text - 0
GMFont - Unable to parse json entry - glyphOperations - text - 0
GMFont - Unable to parse json entry - hinting - text - 0
GMFont - Unable to parse json entry - interpreter - text - 0
GMFont - Unable to parse json entry - maintainGms1Font - text - False
GMFont - Unable to parse json entry - pointRounding - text - 0
GMFont - Unable to parse json entry - glyphOperations - text - 0
GMFont - Unable to parse json entry - hinting - text - 0
GMFont - Unable to parse json entry - interpreter - text - 0
GMFont - Unable to parse json entry - maintainGms1Font - text - False
GMFont - Unable to parse json entry - pointRounding - text - 0
finished.


X://bin/GMAssetCompiler.exe DONE (0)
Release build
Options: Z:/GSRR_4139FE54\MainOptions.json
Options: C:\Users\A\AppData\Roaming\GameMakerStudio2\Cache\GMS2CACHE\GSRR_4139FE54\steam_options.yy
mkdir -p ~/.ssh
cat ~/.ssh/authorized_keys
pwd
mkdir -p ~/.ssh
Options: Z:/GSRR_4139FE54\PlatformOptions.json
PlatformOptions
[Compile] Run asset compiler
Reading project file....C:\Users\A\Documents\GameMakerStudio2\GSRR
Reading project file....X:\BaseProject
Reading config delta 'C:\Users\A\Documents\GameMakerStudio2\GSRR\options\main\inherited\options_main.inherited.yy'
GMFont - Unable to parse json entry - glyphOperations - text - 0
GMFont - Unable to parse json entry - hinting - text - 0
GMFont - Unable to parse json entry - interpreter - text - 0
GMFont - Unable to parse json entry - maintainGms1Font - text - False
GMFont - Unable to parse json entry - pointRounding - text - 0
GMFont - Unable to parse json entry - glyphOperations - text - 0
GMFont - Unable to parse json entry - hinting - text - 0
GMFont - Unable to parse json entry - interpreter - text - 0
GMFont - Unable to parse json entry - maintainGms1Font - text - False
GMFont - Unable to parse json entry - pointRounding - text - 0
GMFont - Unable to parse json entry - glyphOperations - text - 0
GMFont - Unable to parse json entry - hinting - text - 0
GMFont - Unable to parse json entry - interpreter - text - 0
GMFont - Unable to parse json entry - maintainGms1Font - text - False
GMFont - Unable to parse json entry - pointRounding - text - 0
finished.
Compile Constants...finished.
Remove DnD...finished.
Compile Scripts...finished.
Compile Objects...finished.
Compile Timelines...finished.
Compile Triggers...finished.
Compile Rooms...finished.
Compile Extensions...finished.
Global scripts...finished.
collapsing enums.
Final Compile...finished.
Looking for built-in particle images in X:\bin\ParticleImages
Writing Chunk... GEN8
option_game_speed=60
Writing Chunk... OPTN
Writing Chunk... LANG
Writing Chunk... EXTN
Writing Chunk... SOND
Converting Thrusters to Ogg with bit rate 256, quality 4, mono @ 44100Hz
Converting SND_Beep to Ogg with bit rate 128, quality 2, stereo @ 44100Hz
Converting Race_Complete to Ogg with bit rate 128, quality 2, stereo @ 44100Hz
Converting Race_Start to Ogg with bit rate 128, quality 2, mono @ 44100Hz
Converting Hit_Wall to Ogg with bit rate 128, quality 2, mono @ 44100Hz
Converting Thrust to Wav 16bit mono @ 44100Hz
Converting Best_Beaten to Ogg with bit rate 128, quality 2, stereo @ 44100Hz
Converting Hit_Beacon to Ogg with bit rate 128, quality 2, stereo @ 44100Hz
Converting Checkpoint to Ogg with bit rate 128, quality 2, stereo @ 44100Hz
Converting SND_Alarm to Wav 16bit mono @ 44100Hz
Converting SND_Turret_Mine to Wav 16bit mono @ 44100Hz
Converting SND_Player_Shot to Wav 16bit mono @ 44100Hz
Converting Splash to Wav 16bit mono @ 44100Hz
Converting SND_Hit_Shield to Ogg with bit rate 128, quality 2, stereo @ 44100Hz
Converting SND_Turret_Shot to Wav 16bit mono @ 44100Hz
Converting SND_Confirm to Ogg with bit rate 128, quality 2, stereo @ 44100Hz
Writing Chunk... AGRP
Writing Chunk... SPRT
Writing Chunk... BGND
Writing Chunk... PATH
Writing Chunk... SCPT
Writing Chunk... GLOB
Writing Chunk... SHDR
Writing Chunk... FONT
Writing Chunk... TMLN
Writing Chunk... OBJT
Writing Chunk... ROOM
Writing Chunk... DAFL
Writing Chunk... EMBI
Writing Chunk... TPAGE
Texture Group - Default
Writing Chunk... TGIN
Writing Chunk... STRG
Writing Chunk... TXTR
0 Compressing texture... writing texture texture_0.png...
1 Compressing texture... writing texture texture_1.png...
2 Compressing texture... writing texture texture_2.png...
3 Compressing texture... writing texture texture_3.png...
4 Compressing texture... writing texture texture_4.png...
5 Compressing texture... writing texture texture_5.png...
6 Compressing texture... writing texture texture_6.png...
Writing Chunk... AUDO
saving file Y:/GSRR_1B490CAF_YYC\GSRR.zip
Stats : GMA : Elapsed=15510.819
Stats : GMA : sp=45,au=16,bk=0,pt=0,sc=30,sh=1,fo=3,tl=0,ob=52,ro=5,da=0,ex=3,ma=132,fm=0xC200B30D6CEC02B0


X://bin/GMAssetCompiler.exe DONE (0)
 [ -d "/home/japster/GameMakerStudio2/yyc/FromPC/GSRR" ] || mkdir -p "/home/japster/GameMakerStudio2/yyc/FromPC/GSRR"
pscp Y:\GSRR_1B490CAF_YYC\GameAssetsLinux.zip /home/japster/GameMakerStudio2/yyc/FromPC/GSRR/
pscp Y:\GSRR_1B490CAF_YYC\YYGML.h /home/japster/GameMakerStudio2/yyc/FromPC/GSRR/
pscp Y:\GSRR_1B490CAF_YYC\Ref.h /home/japster/GameMakerStudio2/yyc/FromPC/GSRR/
pscp Y:\GSRR_1B490CAF_YYC\YYStd.h /home/japster/GameMakerStudio2/yyc/FromPC/GSRR/
pscp Y:\GSRR_1B490CAF_YYC\libyoyo_yyc-x64.a /home/japster/GameMakerStudio2/yyc/FromPC/GSRR/
pscp Y:\GSRR_1B490CAF_YYC\makefile /home/japster/GameMakerStudio2/yyc/FromPC/GSRR/
pscp X:/linux\execute.sh /home/japster/GameMakerStudio2/yyc/FromPC/GSRR/
cd /home/japster/GameMakerStudio2/yyc/FromPC/GSRR; chmod +x execute.sh
pscp Y:\GSRR_1B490CAF_YYC\Game\ /home/japster/GameMakerStudio2/yyc/FromPC/GSRR/Game/
Renci.SshNet.Common.ScpException: scp: error: unexpected filename:
   at Renci.SshNet.ScpClient.CheckReturnCode(Stream input)
   at Renci.SshNet.ScpClient.Upload(DirectoryInfo directoryInfo, String path)
   at ..(String , String , Boolean )
   at Igor.LinuxBuilder.pscp(String local, String remote, Boolean recursive)
   at Igor.LinuxBuilder.LinuxSendAndBuildMakefile(String _dir)
   at Igor.LinuxBuilder.Run()
Igor complete.
elapsed time 00:01:02.9841251s for command "C:\ProgramData\GameMakerStudio2\Cache\runtimes\runtime-2.2.1.287/bin/Igor.exe" -j=8 -options="C:\Users\A\AppData\Local\GameMakerStudio2\GMS2TEMP\build.bff" -q -- Linux Run started at 01/04/2020 21:30:42
"cmd"  /c subst Z: /d

elapsed time 00:00:00.0508649s for command "cmd" /c subst Z: /d started at 01/04/2020 21:31:45
"cmd"  /c subst Y: /d

elapsed time 00:00:00.0478718s for command "cmd" /c subst Y: /d started at 01/04/2020 21:31:45
"cmd"  /c subst X: /d

elapsed time 00:00:00.0478720s for command "cmd" /c subst X: /d started at 01/04/2020 21:31:45
FAILED: Run Program Complete
 
Last edited:

Japster

Member
Well, it seems that there is a known issue, fixed in a later version (2.2.2.236 onwards) of the runtime:-

https://bugs.yoyogames.com/view.php?id=30513

...that I can't update to because of a 'data type corruption returning from recursive calls' issue that is ironically *INTRODUCED* in 2.2.2.236 (it still works fine when I test this in 2.2.1.291, although I was using 2.2.1.287 because of the alarm[x] 'set to <1' rounding down issue) (I've since followed Russell's advice and popped a 'min(1, room_speed * .03)' etc in all of the tight timing alarm setting code, but obviously, this recursion bug is now my showstopper to moving forwards to a newer runtime with the Linux YYC fix, aaaarrrgh!!!...

...great..... :( So this means that I still cannot release my TetraLogical game on the Linux platform, as it requires building via YYC to be able to calculate endgames in an acceptable time...

I've raised a bug report, for this parameter/data type corruption when using recursion, that someone else also mentioned about somewhere on the forums a while ago:-

https://forum.yoyogames.com/index.php?threads/recursion-depth-limit.35212/

The returned value is fine until a point, and the watched variable is as expected, then suddenly it's no longer a valid data type. Deffo seems like corruption, or possibly stack limits have been reduced since 2.2.1.x? - and in my case, no, YYC builds do not fix the issue... :(

Incidentally, I read that GM didn't originally handle great recursion depth (32, 50, etc), but my routine only goes down about 10 levels max before returning, and doesn't actually even go that far down unless close to endgame scenarios (and like I say, it WORKS fine, in older runtimes), so I'm stumped...

The standard response seems to be 'don't use recursion' - that's not a fix, and tbh, I doubt many people could re-write this routine in as manageable or speed optimised etc way (I certainly couldn't - it's not even my code, but a genius's who I luckily know), in none-recursive form, given what it's having to do - it is literally having to perform millions of checks, trial placements, piece assignments, etc in order to get a guaranteed list of optimised pieces for puzzle completions.

So, as I REALLY think I'm stuck with the recursion logic route, and it DID work up until 2.2.2.xxx, surely it's easier to track down and repair?!

...Could really do with some help please here guys, or at least acknowledgement that anyone from YoYo is even listening/able to look into this?
 
Last edited:

Japster

Member
I have to say, hats off to Scott at YoYo for helping me out so quickly - Seems the new versions are stricter, and I was apparently getting away with something that got by that on the old versions.

Sooo.... ...Looks like I need to re-work my code, but just to say, looks like it isn't recursion at fault after all (which I'm VERY happy with!), just array bounds checking tightened up - Thanks again guys, really fast help, and I know what to tackle next in order to sort this... :)
 

Japster

Member
Hey, did you every figure this out? I'm having the same problem even in an empty room. Any help would be greatly appreciated!
I'm afraid not.... I wish I did mate - I've tried EVERYTHING I can think of... :(

...it really seems like a simple script breakage (I'm guessing either due to changes in some of the Linux tools that require a small script command change for the YYC compiler to work again, or a genuine bug has crept in from YoYo's side), but not heard a thing back from YoYo support since submitting the bug report...

...it's honestly driving me crazy - I promised a bunch of Linux-based Steam users I'd soon have a Linux build of TetraLogical for them... ...Nothing like making users think you DGAF about them - I think this is going to cause me some bad rep until it's sorted, and possibly even after that... :(

YoYo? - PLEASE can this be looked at urgently? - It's obvious that more of your users/supporters are affected by this, and it's crazy that one of the 3 targets we paid a license for cannot be built!.... :(

...Yeah, I can use VM, but that build is NOT submissible due to speed issues (lack of it) - despite what I feel is the honestly SUPERB speed of GMS2, that recursive AI logic of mine needs ALL of the grunt it can get.... :( ....and of course, the smoothness and responsiveness of other bits would benefit too....


C'mon YoYo? - Pleeeeeeeaaaase? :D - I know it's Lockdown, but I haven't any indication that it's even going to be looked at, nor roughly when even?....
 
I'm having the problem with the iOS export. Both the VM and YYC builds don't work. It's creating the folders for the project on my Mac, but before the important files can be exported I get this error. I've posted twice to the forum with no luck. It's honestly depressing :confused:. This isn't the first time the export has broken down unexpectedly. I need to get an important update out to my app, but I can't because my $300 export doesn't work. At least I've finally found someone else with the same problem...

I'm going to submit a bug report now. I'm 100% sure it's a bug in GameMaker's system because I've triple checked my Mac and all its settings and even wiped XCode and of my project files. Hopefully this will be fixed soon -_-
 

Japster

Member
BTW you have the thread as solved :)
Weird! - I may have marked it as solved, regarding the recursion issue I was having, so that's probably not helped - I'll take a look mate, cheers... :(

Yep, interested if you also have the exact same issue? - Out of interest, it's deffo the same mate? - same error in the script etc?

Needs to be fixed asap....
 

RizbIT

Member
I get issues but only with Catalina and latest build of Xcode

X://bin/GMAssetCompiler.exe DONE (0)
CreateiOSExecutableYYC
RunCommandOnMac xcode-select -p | sed 's/.app.*/.app/'
xcode-select -p | sed 's/.app.*/.app/'
osascript -e 'tell app "Xcode" to quit'
mkdir -p "/Users/mojavebook/GameMakerStudio2/iOS/GMS2IOS/BeatDrop"
mkdir -p "/Users/mojavebook/GameMakerStudio2/iOS/GMS2IOS/BeatDrop/BeatDrop"
mkdir -p "/Users/mojavebook/GameMakerStudio2/iOS/GMS2IOS/BeatDrop/BeatDropFromPC"
pscp Y:/BeatDrop_736D27C7_YYC\BeatDrop/ /Users/mojavebook/GameMakerStudio2/iOS/GMS2IOS/BeatDrop/BeatDropFromPC/
Renci.SshNet.Common.ScpException: scp: error: unexpected filename:
at Renci.SshNet.ScpClient.CheckReturnCode(Stream input)
at Renci.SshNet.ScpClient.Upload(DirectoryInfo directoryInfo, String path)
at ..(String , String , Boolean )
at Igor.iOSBuilder.CreateiOSExecutableYYC()
at Igor.iOSBuilder.Package()
Igor complete.
elapsed time 00:00:26.0905759s for command "C:\ProgramData/GameMakerStudio2/Cache/runtimes\runtime-2.2.5.378/bin/Igor.exe" -j=8 -options="C:\Users\Master\AppData\Local\GameMakerStudio2\GMS2TEMP\build.bff" -v -- iOS Package started at 06/05/2020 17:06:16
"cmd" /c subst Z: /d
 

COWCAT

Member
Same here. Anyone reported this to YoyoGames?

Also, I can't notarize my game properly because I need the "hardened runtime" option... Except my project doesn't appear in XCode :/ So I can't change anything.
Did this happen to anyone?
 

Japster

Member
Sorry guys, I've not even attempted to build in earnest on Mac yet, just Linux - will be trying in a few weeks once I'm set up, so will let you know if I get the same issues, but I've not logged this bug, personally - probably worth doing so in order to speed up a fix, or checking if it's already been reported...

Cheers...
 

al-link

Member
Same problem here, someone found how to fix it? I am now on IDE v2.3.0.529

Renci.SshNet.Common.ScpException: scp: error: unexpected filename:
en Renci.SshNet.ScpClient.CheckReturnCode(Stream input)
en Renci.SshNet.ScpClient.UploadFileModeAndName(IChannelSession channel, Stream input, Int64 fileSize, String serverFileName)
en Renci.SshNet.ScpClient.Upload(FileInfo fileInfo, String path)
en ..(String , String , Boolean )
en Igor.LinuxBuilder.Run()
Igor complete.
elapsed time 00:09:04.5896444s for command "C:\ProgramData/GameMakerStudio2/Cache/runtimes\runtime-2.3.0.401/bin/Igor.exe" -j=8 -options="C:\Users\Aldyl\AppData\Local\GameMakerStudio2\GMS2TEMP\build.bff" -v -- Linux Run started at 09/22/2020 00:14:20
"cmd" /c subst Y: /d

elapsed time 00:00:04.0773969s for command "cmd" /c subst Y: /d started at 09/22/2020 00:23:26
"cmd" /c subst X: /d

elapsed time 00:00:00.4500260s for command "cmd" /c subst X: /d started at 09/22/2020 00:23:30
"cmd" /c subst W: /d

elapsed time 00:00:00.6014219s for command "cmd" /c subst W: /d started at 09/22/2020 00:23:30
FAILED: Run Program Complete
For the details of why this build failed, please review the whole log above and also see your Compile Errors window.
 
Last edited:

willkaiju

Member
Just want to add my two cents to this. I'm also getting this same error. Also on latest GMS 2.3 version, on a Windows computer, connected over the network to my Mac, which is connected to my iPhone--phew!

Oddly enough, this error only comes up when I try to run it via the above method. However, I then cloned my project and compiled directly on my Mac, it seemed to work. Hope that helps YYG fix this bug soon.
 
Top