@Pulec, It compiles for me take 20 minutes, but I run on an NVMe 3GB/s read/2.5GB/s write, Ryzen 7 1700 (this is a laptop). Comes to ~93GB with extra plugins, too. Hm. Edit: I manually build, I don't use the AUR.
Search Criteria
Package Details: unreal-engine 5.4.4-0
Package Actions
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.26 |
First Submitted: | 2016-05-01 18:37 (UTC) |
Last Updated: | 2024-09-04 18:39 (UTC) |
Dependencies (29)
- coreutils (coreutils-gitAUR, busybox-coreutilsAUR, coreutils-hybrid-gitAUR, coreutils-uutilsAUR, coreutils-hybridAUR, coreutils-selinuxAUR)
- dos2unix (dos2unix-gitAUR)
- dotnet-runtime (dotnet-runtime-2.2AUR, dotnet-runtime-3.0AUR, dotnet-runtime-2.1AUR, dotnet-runtime-5.0-binAUR, dotnet-runtime-7.0-binAUR, dotnet-runtime-preview-binAUR, dotnet-runtime-binAUR, dotnet-runtime-6.0-binAUR)
- dotnet-sdk (dotnet-sdk-2.2AUR, dotnet-sdk-2.2-vs2017AUR, dotnet-sdk-3.0AUR, dotnet-sdk-2.1AUR, dotnet-sdk-5.0-binAUR, dotnet-sdk-6.0.110-binAUR, dotnet-sdk-7.0-binAUR, dotnet-sdk-8.0.300-binAUR, dotnet-sdk-preview-binAUR, dotnet-sdk-binAUR, dotnet-sdk-6.0-binAUR)
- findutils (findutils-gitAUR, busybox-coreutilsAUR, findutils-selinuxAUR)
- icu63AUR
- lld (llvm-rocm-gitAUR, llvm-gitAUR)
- openssl (openssl-gitAUR, openssl-staticAUR)
- python (python37AUR, python311AUR, python310AUR)
- sdl2 (sdl2-compat-gitAUR, sdl2-gitAUR)
- steam
- vulkan-icd-loader (vulkan-icd-loader-gitAUR)
- xdg-user-dirs
- git (git-gitAUR, git-glAUR) (make)
- glibc (glibc-gitAUR, glibc-linux4AUR, glibc-eacAUR, glibc-eac-binAUR, glibc-eac-rocoAUR) (make)
- grep (grep-gitAUR, busybox-coreutilsAUR, grep-compatAUR) (make)
- openssh (openssh-gitAUR, openssh-gssapiAUR, openssh-dotconfigAUR, openssh-dotconfig-binAUR, openssh-hpn-shimAUR, openssh-selinuxAUR) (make)
- sed (busybox-coreutilsAUR, sed-gitAUR) (make)
- wget (wget-gitAUR, wurlAUR) (make)
- clionAUR (optional) – IDE for projects
- cmake (cmake-gitAUR) (optional) – build system for projects
- codeliteAUR (codeliteAUR, codelite-unstableAUR, codelite-binAUR, codelite-gitAUR) (optional) – IDE for projects
- fake-ms-fontsAUR (optional) – Font support for "demo/free/sample/example/tutorial" projects
- kdevelop (kdevelop-gitAUR) (optional) – IDE for projects
- pacman-contrib (pacman-contrib-gitAUR) (optional) – for the paccache cleaning hook
- polly (llvm-rocm-gitAUR, llvm-gitAUR) (optional) – for potentially increased performance
- qt5-base (qt5-base-gitAUR, qt5-base-headlessAUR) (optional) – qmake build system for projects
- qtcreator (qtcreator-gitAUR, qtcreator-prereleaseAUR) (optional) – IDE for projects
- ttf-ms-fontsAUR (ttf-win7-fontsAUR, ttf-ms-win8AUR, ttf-ms-win8-arabicAUR, ttf-ms-win8-hebrewAUR, ttf-ms-win8-seaAUR, ttf-ms-win8-indicAUR, ttf-ms-win8-japaneseAUR, ttf-ms-win8-koreanAUR, ttf-ms-win8-zh_cnAUR, ttf-ms-win8-zh_twAUR, ttf-ms-win8-thaiAUR, ttf-ms-win8-otherAUR, ttf-ms-win10AUR, ttf-ms-win10-cdnAUR, fake-ms-fontsAUR, ttf-ms-win10-autoAUR, ttf-ms-win11AUR, ttf-ms-win11-autoAUR) (optional) – Font support for "demo/free/sample/example/tutorial" projects
Required by (1)
Sources (6)
Latest Comments
« First ‹ Previous 1 .. 23 24 25 26 27 28 29 30 31 32 33 .. 81 Next › Last »
OdinVex commented on 2022-04-16 17:51 (UTC) (edited on 2022-04-16 17:52 (UTC) by OdinVex)
Pulec commented on 2022-04-16 16:47 (UTC)
Thanks @ Neko-san!
Things to note: src can swell up to 150GB, then another 50GB is duplicated when the build is finished, which is then moved to pkg. Amazingly the package gets compressed to 15GB. So prepare plenty of space. On R5 3600 no OC, 32GB DDR4 2400, and SSD it took ~6 hours.
I ran out of space (or canceled the process) during git clone in prepare() and when I tried to continue I got from git: fatal: Invalid refspec '+refs/heads/:refs/remotes/:origin/'. I suspect something funky with 'rm -f .git/index.lock' goes on.
BTW: Be careful when changing _install_dir. I had a silly link /d/$drive/ where /d is a link to -> /run/media/$user. So it was _install_dir="d/toshiba_512/${pkgname}", the package was built fine but it didn't sit well with pacman. Luckily my foolishness was stopped by not having 50GB free on /. I fixed that using hard mount /toshiba_512 so _install_dir="toshiba_512/${pkgname}".
To get these pkg changes I tried --repackage but that just quickly went through and done. So I had to run --build again... Twice.
The first re-run was just over an hour as the build() focused on UnrealGame and not on UnrealEditor, second re-run basically rebuilt the whole thing, so 6 hours, yay.
I put the whole uncleaned 200GB folder to 7z archive, will see how 'fun' will be to build updates.
Tak2Hu commented on 2022-04-12 13:26 (UTC)
Thanks @ Neko-san!
Kamack38 commented on 2022-04-06 18:34 (UTC)
Unreal Engine 5.0 has been finally released!
Neko-san commented on 2022-04-06 17:57 (UTC) (edited on 2022-04-29 20:51 (UTC) by Neko-san)
This updated PKGBUILD should be fine for the new officially released UE5 source; just compiled it myself
# Maintainer: Dylan Ferris <dylan@psilly.com>
# Maintainer: Michael Lojkovic <mikelojkovic@gmail.com>
# Maintainer: Shatur95 <genaloner@gmail.com>
# 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')
#'960c5a100e0c3732f3c73fb645d3989d39acf4576d74615bbef38ebeee008b90')
# 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
## Uncomment this if you prefer opendoas; the benefit here is that doas won't time out on you if you wait too long to authenticate after compilation
#PACMAN_AUTH=(doas)
## Set this value to "true"" if the CPU architecture named for the build is desired.
## IF MORE THAN ONE is listed below, ONLY select ONE architecture type.
## Note: the resulting package will still be named containing "x86_64" unless the build was done with an "official" Arch distro for that architecture (like Arch ARM - [I don't advise using Arch ARM though])
## or if you manage to trick your Arch installation to accept other architecture extensions by fiddling with the $CARCH variable and /etc/pacman.conf - this method has flaws, namely:
## that it doesn't work with "makechrootpkg" - though, this PKGBUILD doesn't work in with this method anyway because of Github SSH Agent nonsense
x86_64_v3=false
if [[ ${x86_64_v3} == true ]]
then
export CFLAGS="-march=x86-64-v3 -mtune=x86-64-v3 -O3 -pipe -fno-plt -minline-all-stringops -fexceptions -Wall \
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection"
export CXXFLAGS="${CFLAGS} -Wp,-D_GLIBCXX_ASSERTIONS"
export LDFLAGS="-Wl,-O3,--sort-common,--as-needed,-z,relro,-z,now"
fi
## 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=ue5-main git@github.com:EpicGames/UnrealEngine {$pkgname}
git clone --depth=1 --branch=5.0.0-release 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=false -set:WithLinux=true -set:WithWin64=true -set:WithWin32=false -set:WithMac=false -set:WithAndroid=false -set:WithIOS=false -set:WithTVOS=false -set:WithLumin=false -set:WithHTML5=false
}
package() {
# Desktop entry
if [[ -f com.unrealengine.UE4Editor.desktop ]] || [[ -f com.unrealengine.UE5Editor.desktop ]] && [[ "${_install_dir}" != "opt/${pkgname}" ]]
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
if [[ -f com.unrealengine.UE4Editor.desktop ]]
then
mv com.unrealengine.UE4Editor.desktop com.unrealengine.UE5Editor.desktop
fi
install -Dm775 com.unrealengine.UE5Editor.desktop "${pkgdir}/usr/share/applications/com.unrealengine.UE5Editor.desktop"
else
if [[ -f com.unrealengine.UE4Editor.desktop ]] || [[ -f com.unrealengine.UE5Editor.desktop ]] && [[ "${_install_dir}" == "opt/${pkgname}" ]]
then
sed -i "5c\Path=/opt/${pkgname}/Engine/Binaries/Linux/" com.unrealengine.UE4Editor.desktop
sed -i "6c\Exec=/opt/${pkgname}/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
if [[ -f com.unrealengine.UE4Editor.desktop ]]
then
mv com.unrealengine.UE4Editor.desktop com.unrealengine.UE5Editor.desktop
fi
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}"
}
Sematre commented on 2022-04-05 19:22 (UTC)
Unreal Engine 5 was released today
Neko-san commented on 2022-01-18 16:05 (UTC)
@Galaxy That folder is a product of Unreal; delete it at your own consequence
In addition, that's just how fat Unreal normally is; if you don't like it, I advise not using Unreal Lmao
Galaxy commented on 2022-01-18 12:01 (UTC)
@Neko-san, I find many files are not necessary, like this pkg/unreal-engine/opt/unreal-engine/Engine/Plugins/ScriptPlugin/Intermediate/Build/LinuxArm64/93821A52/UnrealGame/Development/ScriptPlugin/Module.ScriptPlugin.cpp.o
.
Would you add some command to delete those Intermediate
dir ?
I got a Installed Size of 47344.48 MiB, which is too huge.
Neko-san commented on 2022-01-18 04:41 (UTC)
@Galaxy For now, just delete any excess folders in your building folder to clone it fresh from the source; I'll check that out when I have a moment
Another way to basically do this is using: makepkg -sfcCr
or makepkg -sfcCri
instead of makepkg -si
If you use a AUR helper, you may have to find the equivalent settings or flags for it to reproduce that automatic behavior
Galaxy commented on 2022-01-18 04:27 (UTC)
@Neko-san How to rebuild ? The @upstream in git fetch --depth=1 origin tag @{upstream}
is not working.
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:
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.