Package Details: unreal-engine-4 4.27.2-15

Git Clone URL: https://aur.archlinux.org/unreal-engine-4.git (read-only, click to copy)
Package Base: unreal-engine-4
Description: A 3D game engine by Epic Games which can be used non-commercially for free.
Upstream URL: https://www.unrealengine.com/
Keywords: 3d engine game game-engine ue4 unreal
Licenses: custom:UnrealEngine
Submitter: Neko-san
Maintainer: Neko-san
Last Packager: Neko-san
Votes: 6
Popularity: 0.016372
First Submitted: 2022-06-30 18:25 (UTC)
Last Updated: 2023-11-19 18:57 (UTC)

Pinned Comments

Neko-san commented on 2023-07-13 04:15 (UTC)

The issue with me including the Commit.gitdeps.xml alsongside the PKGBUILD manually is that it might be subject to a legal grey area since the UE repo is private and is technically a part of the source;

because the repo is private, having the PKGBUILD access it directly isn't a simple task because Github requires the URL request to have a generated timed authentication token that expires.

Meaning that I can't simply grab the URL and paste it into the PKBUILD willy-nilly because it is both not tied to your account and because the links have an expiration attached. I get why Epic chose this approach but their flawed "open-source" methodology is what makes this difficult.

Neko-san commented on 2022-10-15 20:50 (UTC) (edited on 2022-10-15 20:54 (UTC) by Neko-san)

I updated it to not use the Arch Clang compiler by default; I thought I had this opt-out but I didn't - the reason being that for UE4, there's actually a hard-coded reference to look for a Windows compiler (thanks Epic...) and using the Arch compiler has been the solution on the AUR for UE4 for a long time

That said, if it fails to compile by default now (at least if strictly using makepkg), the fault is entirely on Epic for not properly having the Unreal Build Tool (UBT) not handle the Linux build properly - proper support for this was implemented in UE5, so they should honestly backport that to UE4's codebase

I left a user toggle-able switch in the PKGBUILD if anyone wants to try the Arch Clang compiler patch again, for whatever reason

If anyone manages to figure out how to this otherwise, let me know and I'll add the fix

Latest Comments

1 2 3 4 5 Next › Last »

Neko-san commented on 2023-09-06 22:44 (UTC)

@h0m3 I modified your suggestion to be interactive rather than completely halting makepkg, so users can add it to srcdir themselves while the process waits for your confirmation.

h0m3 commented on 2023-09-06 18:33 (UTC) (edited on 2023-09-06 18:36 (UTC) by h0m3)

Hello, since makepkg will refetch the source from git every time it will override Commit.gitdeps.xml and I need to make a small change on PKGBUILD to copy the file before running ./Setup.sh

I propose the following change (with a better written message) before running ./Setup.sh on prepare:

  if [[ -f ${srcdir}/Commit.gitdeps.xml ]]
  then
    rm -v "${srcdir}/unreal-engine-4/Engine/Build/Commit.gitdeps.xml"
    cp -v "${srcdir}/Commit.gitdeps.xml" "${srcdir}/unreal-engine-4/Engine/Build/"
  else
    echo "Download 'Commit.gitdeps.xml' from 'https://github.com/EpicGames/UnrealEngine/releases/tag/4.27.2-release' into 'src'"
    exit 1
  fi

  ./Setup.sh

Its a workaround to a bug introduced by Epic but I think its a good idea to have the process at least partly automated.

AAR072 commented on 2023-07-13 18:47 (UTC)

My solution for others:

I didn't want to run the entire compilation again, so I ran make -j1 -k. This started again and it compiled.

My steps to install ue4 were: Download zip of release 4.27 Apply xml patch run ./Setup.sh, ./GenerateProjectFiles.sh run make -j1 -k

This may or may not be helpful to you ¯_(ツ)_/¯

Neko-san commented on 2023-07-13 04:45 (UTC)

The nature of your compilation error, from your log, isn't particularly clear to me.

Not exactly sure what's going on there, but if you find someone else who knows the problem and you get back to me, I'll add the fix for the error (not that it'll solve the bigger xml problem though)

AAR072 commented on 2023-07-13 04:38 (UTC)

Also, when building, getting the error AutomationTool exiting with ExitCode=6 (6) as jtljac said a few months ago.

Compiling on arch linux by cloning the package and applying the modification.

Log: https://pastebin.com/74wBqbEZ

Neko-san commented on 2023-07-13 04:35 (UTC)

You download it as an asset file from: https://github.com/EpicGames/UnrealEngine/releases/tag/4.27.2-release

But, again, this information still requires you to manually intervene in the build process; just having this knowledge doesn't stop you from having to figure it out

AAR072 commented on 2023-07-13 04:27 (UTC) (edited on 2023-07-13 04:28 (UTC) by AAR072)

Neko, can we at least add it somewhere as information, instead of having people figure it out?

Neko-san commented on 2023-07-13 04:15 (UTC)

The issue with me including the Commit.gitdeps.xml alsongside the PKGBUILD manually is that it might be subject to a legal grey area since the UE repo is private and is technically a part of the source;

because the repo is private, having the PKGBUILD access it directly isn't a simple task because Github requires the URL request to have a generated timed authentication token that expires.

Meaning that I can't simply grab the URL and paste it into the PKBUILD willy-nilly because it is both not tied to your account and because the links have an expiration attached. I get why Epic chose this approach but their flawed "open-source" methodology is what makes this difficult.

AAR072 commented on 2023-07-13 03:47 (UTC)

Getting the error again. I think the package needs to be updated with the correct Commit.gitdeps.xml:

Failed to download 'http://cdn.unrealengine.com/dependencies/2605550-2722e8035d7444a18952cbd04a5c58c7/0104416c142ca7b3174660267c22f049db573bdb'

Neko-san commented on 2023-06-15 20:10 (UTC)

@shad_amethyst Some of the things you see are from my implementation of the UE5 AUR work I did and some of these other things are from me forgetting to refactor some things

As for the ~/.cnfig folder, that was by a complaint on the UE5 side of someone claiming some paths such as this were necessary; therefore, I just made them in the event this is the case to prevent needing to troubleshoot arbitrary UE issues that could simply be solved by having a folder present (ideally, that obviously wouldn't be necessary but it's a small price to pay)

I'll refactor this to account for these issues when I have a moment this week