Thanks for checking in and apologies for not responding sooner. I was working on getting this setup on a build farm machine, in order to roll it out to all our build agents.
You have covered everything and I have managed to get it working on a build agent as well. It did require restarting the build agent, then doing an Editor build before everything registered. An Editor build without a restart was still not causing everything to register.
The only odd thing is that when installing via the Turnkey CLI, the AutoSdk is not registered as a valid AutoSdk. I need to select Show Invalid SDKs and request to install it. It still sets it up correctly, with Turnkey then registering the AutoSdk as installed. This occurred on my local machine and on the build agent.
Thought to feed this back in case.
Otherwise we are good to go! I really appreciate your time and help in walking me through the AutoSdk setup.
Just a further feedback and potential issue, the fact that the AutoSdk is not appearing as a valid SDK to install, means any automation using the Turnkey CLI will not work, I was just creating and testing the CLI, I ran:
.\RunUAT.bat turnkey -command=InstallSdk -SdkType=AutoSdk -platform=Linux -NeededOnlyBut it gets stuck on the below, requiring user input instead of just proceeding:
[Image Removed]
I am not sure how to use the CLI to tell it to install the invalid SDK. And as mentioned, I am uncertain why the Sdk is registering as invalid despite the setup being correct.
Is there any command line option for Turnkey to select Invalid and proceed with the Install?
Turnkey has an -AllowInvalid argument that should help in this case.
Thing is that the proper version for 5.6 is V25 and that would be the source of the problem with Turnkey. I was recently made aware that there we originally published the wrong installer for the 5.6 cross compile toolchain so my guess is that you got that wrong package when you started. Updating the P4 repo with the v25 toolchain should get things in order. https://dev.epicgames.com/documentation/en\-us/unreal\-engine/linux\-development\-requirements\-for\-unreal\-engine
Thanks for that Turnkey argument, I included that and ran the following command:
.\RunUAT.bat turnkey -command=InstallSdk -SdkType=AutoSdk -platform=Linux -NeededOnly -AllowInvalidHowever it seems it freezes and does not proceed any further as you can see in the screenshot below
[Image Removed]I did leave it in this state for some time and it did not proceed any further. Hitting Ctrl+C to exit gives the below:
[Image Removed]The Python script I wrote to interactively select the invalid SDK and install it, works well being automated through our Team City. I was successful in setting up a second build agent and producing a Linux Server build using the AutoSdk.
Thanks for the info on V25 for 5.6. We are currently still on 5.5 but are working towards moving to 5.6. So right now I still need to deploy V23. I will deploy V25 to the Perforce depot in the same way and upgrade to it once we move to 5.6.
I would expect that the V23 installer is correct and should be working as expected. So it is puzzling why the V23 Tool chain is being recognised as invalid.
Sorry for the comment on v25, I got confused with the case being tagged as version 5.6. V23 is the right toolchain for 5.5.
I dug through the Trunkey code and I’m not sure why the SDK is not detected as valid. The test is a comparison between the ExpVersion and the MainVersion field from Linux_SDK.json. You could change the manifest so the expanded version is used as part of the Name that is outputted. Would look like this:
`
Linux
$(ExpVersion)
Linux AutoSdk version $(ExpVersion)
…`
Which results in the following in my local tests: [Linux] Linux AutoSdk version v23_clang-18.1.0-rockylinux8
It should already be fine based on the information you shared in the previous exchanges but things have been changing so the content of the feed is confusing. Can you share the current state of the manifest so I can do another check?
Apologies for the confusion there and thank you for the feedback,
Here is the Turnkey manifest file I currently have defined:
`<?xml version="1.0" encoding="utf-8" ?>
Linux
$[ExpVersion]
AutoSdk
Linux Toolchain
fileexpansion:perforce://sdk/main/Host$(HOST_PLATFORM_NAME)/Linux_x64/$[ExpVersion]/Setup.bat
Win64
`Note that \ is the replaced by the real project name so it would be perforce://namesdk etc in the actual file.
The file is called TurnkeyManifest.xml and is located at ..\Engine\Platforms\Linux\Build\Turnkey
The top level TurnkeyManifest file is located at ..\Engine\Build\Turnkey and has not been modified from how Epic provides it, so the other manifest files are pointed at by:
[Image Removed]The toolchain is detected as valid in my case. The version validation is a string comparison so it would help to see what Turnkey is getting. Can you try with the ExpVersion as part of the Name so it display what Turnkey is seeing?
Thanks for the info and validation, I have changed the name line in my Turnkey manifest file to
<Name>Linux AutoSdk version $(ExpVersion)</Name>Here are the results from running RunUAT.bat turnkey -command=InstallSdk -SdkType=AutoSdk -platform=Linux -neededonly
[Image Removed]
Its definitely picking up the correct version and name change but still showing as invalid.
Just in case sharing the p4 depot structure again as it currently is.
Thanks for the information and update. I will do my best to debug this and provide information back from debugging.
I have been successfully using my Python work around to automate installing the AutoSdk on build agents and the Linux AutoSdk is being recognised and allowing our Linux Server to be built successfully.