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.000000
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 2025-09-22 00:53 (UTC) (edited on 2025-09-22 00:54 (UTC) by Neko-san)

That's hard for me to answer given that I didn't even know it was possible to run into this issue; even if it isn't necessary, the build system would have to be adapted to exclude it and there isn't a switch for it for the initial setup to do so

Whatever the reason is, someone more familiar with it than I needs to look I into its importance and make a call on how to handle it (with which then I don't mind applying here). I'm not a C/C++ dev, myself: I just handle the packaging for it. The build system switching between C# and C++ has always been a bit odd to me, too

LunarN0v4 commented on 2025-09-22 00:36 (UTC) (edited on 2025-09-22 00:36 (UTC) by LunarN0v4)

The same problem occurred, but I found a warning that says the specific part of the build that fails. I'm wondering if OpenEXR is even needed, and if it isn't, could I skip building it?
Although, it seems to be a shader library, so I'm extremely worried that it won't work.

  /tellurium/UnrealEngine/Engine/Source/ThirdParty/openexr/UEOpenExr.Build.cs: warning: Referenced directory '/tellurium/UnrealEngine/Engine/Source/ThirdParty/openexr/Deploy/lib//Linux/StaticRelease' does not exist.

Neko-san commented on 2025-09-21 15:45 (UTC) (edited on 2025-09-21 15:49 (UTC) by Neko-san)

That is odd; I checked the source, and the folder exists Deploy. I'm guessing the build system UE4 uses believes it should have been built but it didn't for whatever reason (I don't think I've ever seen this before). To be frank, I'm not sure how that happened or how to prevent it with the PKGBUILD either; in the meantime, you might have to just follow the steps in the PLGBUILD manually and hope the build step corrects itself the second time around.

Make sure to export these:

https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=unreal-engine-4#n52
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=unreal-engine-4#n70

Assuming you didn't touch this section, you can ignore it:
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=unreal-engine-4#n78

Then continue from line 204 going forward:
https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=unreal-engine-4#n204

Assuming you did Line 180's block on your initial use with the AUR (you should've been prompted when you built the package), and it works, then you should know that the package() function step mainly just expects you to move the install to /opt/UnrealEngine and set permissions so that you can use it.
(You can create an unrealengine user and group, chown the install folder, afterwards, to both, then assign yourself to that group and set the folder permission to 774 recursively)

LunarN0v4 commented on 2025-09-21 14:09 (UTC) (edited on 2025-09-21 14:10 (UTC) by LunarN0v4)

I'm trying to compile UE4.23 using the PKGBUILD for reference, but I'm getting these errors.
They're coming from OpenEXR not being compiled, but I have zero clue what to do about that.

  [151/2083] Link (ld) libUE4Editor-ImageWrapper.so
  /tellurium/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v15_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: cannot find /tellurium/UnrealEngine/Engine/Source/ThirdParty/openexr/Deploy/lib//Linux/StaticRelease/x86_64-unknown-linux-gnu/libHalf.a: No such file or directory
  /tellurium/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v15_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: cannot find /tellurium/UnrealEngine/Engine/Source/ThirdParty/openexr/Deploy/lib//Linux/StaticRelease/x86_64-unknown-linux-gnu/libIex.a: No such file or directory
  /tellurium/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v15_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: cannot find /tellurium/UnrealEngine/Engine/Source/ThirdParty/openexr/Deploy/lib//Linux/StaticRelease/x86_64-unknown-linux-gnu/libIlmImf.a: No such file or directory
  /tellurium/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v15_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: cannot find /tellurium/UnrealEngine/Engine/Source/ThirdParty/openexr/Deploy/lib//Linux/StaticRelease/x86_64-unknown-linux-gnu/libIlmThread.a: No such file or directory
  /tellurium/UnrealEngine/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v15_clang-8.0.1-centos7/x86_64-unknown-linux-gnu/bin/x86_64-unknown-linux-gnu-ld: cannot find /tellurium/UnrealEngine/Engine/Source/ThirdParty/openexr/Deploy/lib//Linux/StaticRelease/x86_64-unknown-linux-gnu/libImath.a: No such file or directory
  clang++: error: linker command failed with exit code 1 (use -v to see invocation)

Neko-san commented on 2025-05-08 16:55 (UTC)

You can try, but I can't guarantee that will build.

oech3 commented on 2025-05-08 12:45 (UTC)

just spoofing CPATH by symkinks of latest icu?

Neko-san commented on 2025-05-08 12:00 (UTC)

I'd think so, given that Epic stopped working on UE4 a long time ago.

UE4 expects certain Steam $HOME folder dependencies, so it's best to keep it in as a dependency. As for icu63, that was the latest version required for it to build at the time it was last supported (if I recall correctly), and given that Epic has been focused on UE5 that shouldn't have changed.

oech3 commented on 2025-05-08 07:20 (UTC)

Is icu63 and steam still needed?

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.