Package Details: unreal-engine 5.4.4-0

Git Clone URL: https://aur.archlinux.org/unreal-engine.git (read-only, click to copy)
Package Base: unreal-engine
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 ue5 Unreal
Licenses: GPL3, custom:UnrealEngine
Submitter: acerix
Maintainer: Shatur (Neko-san)
Last Packager: Neko-san
Votes: 75
Popularity: 0.63
First Submitted: 2016-05-01 18:37 (UTC)
Last Updated: 2024-09-04 18:39 (UTC)

Required by (1)

Sources (6)

Pinned Comments

Neko-san commented on 2022-11-01 02:32 (UTC) (edited on 2023-06-25 01:19 (UTC) by Neko-san)

@juancarlospaco this is easily done on your own system, not in a PKGBUILD, given that building packages runs as root:

sudo groupadd unrealengine-users
sudo usermod -aG unrealengine-users (your-username)
sudo chown -R root:unrealengine-users /opt/unreal-engine
sudo chmod -R 775 /opt/unreal-engine

Permission issues like this are already mentioned on the UE Arch wiki page: https://wiki.archlinux.org/title/Unreal_Engine_4#Installing_from_the_AUR

This is a user system problem; I already did what I could without needing users to do the above by giving the 777 permissions. If it still gives you trouble, you'll have to use the example to solve it or change the install location to somewhere you have user permissions by default (as I cannot do this for you).

zerophase commented on 2021-05-27 08:15 (UTC) (edited on 2021-05-30 08:41 (UTC) by zerophase)

Will update to 5.0 when it is released.

Latest Comments

« First ‹ Previous 1 .. 24 25 26 27 28 29 30 31 32 33 34 .. 81 Next › Last »

Paul4936 commented on 2022-01-11 16:50 (UTC)

@zerophase Maybe it is better to keep this outdated package(in case if someone will strive for UE4) and create a new one for UE5?

ruestique commented on 2022-01-11 16:14 (UTC)

hey @Neko-san - consider to create 5.0 aur package ;)

Neko-san commented on 2022-01-09 03:01 (UTC)

I updated the PKGBUILD below again to a branch of UE5 that's more stable.

Neko-san commented on 2021-12-24 07:50 (UTC)

Fixed; read the post for more info

lehthanis commented on 2021-12-24 04:56 (UTC)

@Neko-san I tried your UE5 PKGBUILD and I can't get it to work...I'd really like to get this working on Arch...any suggestions? It's currently giving me a not found error for https://github.com/EpicGames/UnrealEngine/tree/5.0.0-early-access-2.git

I tried replacing it with https://github.com/EpicGames/UnrealEngine/tree/ue5-early-access.git but same error.

Neko-san commented on 2021-12-08 10:18 (UTC) (edited on 2022-01-09 03:00 (UTC) by Neko-san)

For anyone who wants to try using UE5, I have a version of the PKGBUILD here that you can use.

Just don't expect the ccache or system mono patches to work because, in my experience, the mono one specifically just breaks the build process.

EDIT: I edited the PKGBUILD to target UE5-main instead since targeting Early Access 2 with git is a pain. This should resolve issues with not being able to clone the repo.

Side note: The Clang patch isn't needed anymore, for UE5; UE5 can detect its needed toolchain for Linux properly now (unless someone at Epic decides to mess that code up in the future).

Another note: if you build in a chroot, don't, unless you know how to work with them well. Contacting github for permission for access to the repo doesn't work properly in a chroot and attempting to do so will give you headaches and wasted hours.

# Maintainer: Dylan Ferris <dylan@psilly.com>
# Maintainer: Michael Lojkovic <mikelojkovic@gmail.com>
# Maintainer: Shatur95 <genaloner@gmail.com>
# Updated for UE5 by Neko-san <nekoNexus at protonmail dot ch>

# The source is about 200 MiB, with an extra ~11 GiB of dependencies downloaded in Setup.sh, and may take several hours to compile.
# If you want to turn on additional patches there are switches below.
pkgname=unreal-engine
pkgver=5.0
pkgrel=1
pkgdesc='A 3D game engine by Epic Games which can be used non-commercially for free.'
arch=(x86_64 x86_64_v3)
url=https://www.unrealengine.com/
makedepends=(git openssh)
depends=(icu sdl2 python lld xdg-user-dirs dos2unix)
optdepends=('qt5-base: qmake build system for projects'
            'cmake: build system for projects'
            'qtcreator: IDE for projects'
            'codelite: IDE for projects'
            'kdevelop: IDE for projects'
            'clion: IDE for projects')
license=(custom:UnrealEngine)
source=(com.unrealengine.UE4Editor.desktop
        ccache_executor.patch
        stop_mono_clone.patch)
sha256sums=('15e9f9d8dc8bd8513f6a5eca990e2aab21fd38724ad57d213b06a6610a951d58'
            '33982486f7fafac35a33dfa37c85cfba8543aa78b5fe13c395d9cccf691ef4b3'
            'aa9eb83c9f58c539d3cd43e919a4ebd6714c0aa2d32eb9b320049cf04dd01587')
# Not sure if compiling Unreal with LTO is legal? Lot's of different proprietary software goes into Unreal
options=(!strip staticlibs !lto) # Package is 3 Gib smaller with "strip" but it takes a long time and generates many warnings

#PACMAN_AUTH=(doas)

## Patches probably don't work for this build
#_ccache_support=false # Patches for ccache. More optimizations might be needed.
#_system_mono=false # Uses System mono for unreal. Must set UE_USE_SYSTEM_MONO in your environment for it to work after install.
_install_dir="opt/$pkgname" # Default engine installation directory. Can be useful if you do not have a lot of space in /opt directory.

if [[ $_ccache_support == true ]]
then
  depends+=(ccache)
fi

if [[ $_system_mono == true ]]
then
  depends+=(mono mono-msbuild)
fi

prepare() {
  # Check access to the repository
  if ! git ls-remote git@github.com:EpicGames/UnrealEngine &>/dev/null
  then
    error 'You must register at unrealengine.com and link your github account to access this private repo. See the wiki for more info: https://wiki.archlinux.org/index.php/Unreal_Engine_4'
    exit 1
  fi

  # Download Unreal Engine source or update if the folder exists
  if [[ ! -d $pkgname ]]
  then
    git clone --depth=1 --branch=5.0 git@github.com:EpicGames/UnrealEngine $pkgname
    cd $pkgname
  else
    cd $pkgname
    rm -f .git/index.lock
    git fetch --depth=1 origin tag @{upstream}
    git reset --hard @{upstream}
  fi

  # Apply custom patches
  #patch -p1 -i "$srcdir/clang_path_fix.patch" # Replace Windows specific search with the correct path (used for -mode=GenerateClangDatabase in UBT)
  if [[ $_system_mono == true ]]
  then
    export UE_USE_SYSTEM_MONO=1
    patch -p1 -i "$srcdir/stop_mono_clone.patch"
  fi
  if [[ $_ccache_support == true ]]
  then
    patch -p1 -i "$srcdir/ccache_executor.patch"
  fi

  # Qt Creator source code access
  if [[ ! -d Engine/Plugins/Developer/QtCreatorSourceCodeAccess ]]
  then
    git -C Engine/Plugins/Developer clone --depth=1 git@github.com:fire/QtCreatorSourceCodeAccess
  fi

  # For some reason, despite this file explicitly asking not to be removed, it was removed from the UE5 source; it has to be re-added or the build will fail
  if [[ ! -f $pkgname/Engine/Source/ThirdParty/Linux/HaveLinuxDependencies ]]
  then
    mkdir -p $pkgname/Engine/Source/ThirdParty/Linux/
    touch $pkgname/Engine/Source/ThirdParty/Linux/HaveLinuxDependencies
    sed -i "1c\This file must have no extension so that GitDeps considers it a binary dependency - it will only be pulled by the Setup script if Linux is enabled. Please do not remove this file." $pkgname/Engine/Source/ThirdParty/Linux/HaveLinuxDependencies
  fi

  ./Setup.sh
}

build() {
  cd $pkgname
  Engine/Build/BatchFiles/RunUAT.sh BuildGraph -target="Make Installed Build Linux" -script=Engine/Build/InstalledEngineBuild.xml -set:WithDDC=false -set:HostPlatformOnly=true
}

package() {
  # Desktop entry
  if [[ "$_install_dir" != "opt/$pkgname" ]] # Set new path if dir changed
  then
    if [[ -f com.unrealengine.UE4Editor.desktop ]]
    then
      sed -i "5c\Path=/$_install_dir/Engine/Binaries/Linux/" com.unrealengine.UE4Editor.desktop
      sed -i "6c\Exec=/$_install_dir/Engine/Binaries/Linux/UnrealEditor %F" com.unrealengine.UE4Editor.desktop
      sed -i 's/Unreal Engine 4 Editor/Unreal Engine 5 Editor/g' com.unrealengine.UE4Editor.desktop
      sed -i 's/Icon=ue4editor/Icon=ue5editor/g' com.unrealengine.UE4Editor.desktop
      mv com.unrealengine.UE4Editor.desktop com.unrealengine.UE5Editor.desktop
      install -Dm775 com.unrealengine.UE5Editor.desktop "$pkgdir/usr/share/applications/com.unrealengine.UE5Editor.desktop"
    else
      install -Dm775 com.unrealengine.UE5Editor.desktop "$pkgdir/usr/share/applications/com.unrealengine.UE5Editor.desktop"
    fi
  fi

  cd $pkgname

  # Icon for Desktop entry
  install -Dm770 Engine/Source/Programs/UnrealVS/UnrealVS.2022/Resources/Preview.png "$pkgdir/usr/share/pixmaps/ue5editor.png"

  # License
  install -Dm770 LICENSE.md "$pkgdir/usr/share/licenses/UnrealEngine/LICENSE.md"

  # Engine
  install -dm770 "$pkgdir/$_install_dir/Engine"
  mv LocalBuilds/Engine/Linux/* "$pkgdir/$_install_dir"
}

12eason commented on 2021-11-08 13:03 (UTC)

This package is basically broken and unmaintained at the moment.

shuriken commented on 2021-10-28 22:18 (UTC) (edited on 2021-10-28 22:19 (UTC) by shuriken)

4.27.1 is out and appart from ccache executor patch everything else works, If anyone wants to use the patches all the other patches are working as expected. Simply change the pkgver to the desired branch version.

shuriken commented on 2021-09-18 22:57 (UTC)

Only the ccache_executor.patch needs an update due to the commits in 4.27 version. Everything else is fine on the pkgver 4.27.0 :)