From 76728f724b7ee0d5c013b9671eab6cc00f37c02d Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Tue, 28 Jul 2026 13:58:54 +0800 Subject: Add support for Arch ARM No cef package yet, so at-spi2-core & minizip must be directly depended on. Also, the package compression used in Arch ARM is different. --- README.md | 17 +++++++++++++++-- indra/cmake/CEFPlugin.cmake | 4 ++-- indra/media_plugins/cef/CMakeLists.txt | 10 ++++++++-- indra/newview/CMakeLists.txt | 5 +++++ indra/newview/PKGBUILD.in | 2 +- 5 files changed, 31 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 6e15ce8036..cca1d69062 100644 --- a/README.md +++ b/README.md @@ -17,14 +17,27 @@ $ mkdir build-`uname -s|tr '[:upper:]' '[:lower:]'`-`uname -m` $ cd build-`uname -s|tr '[:upper:]' '[:lower:]'`-`uname -m` ``` -### Arch +### Arch ARM ``` -$ sudo pacman -S cmake base-devel patchelf python freealut apr-util boost cef fltk glm glu hunspell minizip nanosvg libnghttp2 openjpeg2 libpipewire sdl2 vlc libvorbis xxhash +$ sudo pacman -S cmake base-devel patchelf python freealut apr-util boost fltk glm glu hunspell minizip nanosvg libnghttp2 openjpeg2 libpipewire sdl2 vlc libvorbis xxhash +$ export LL_BUILD="-O3 -std=c++20 -fPIC -DLL_LINUX=1" +$ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:STRING=64 -DUSE_OPENAL:BOOL=ON -DUSE_FMODSTUDIO:BOOL=OFF -DENABLE_MEDIA_PLUGINS:BOOL=ON -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=ON -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=ON -DCMAKE_INSTALL_PREFIX=/usr ../indra +$ make -j`nproc` +$ makepkg -R +$ sudo pacman -U megapahit-`cat newview/viewer_version.txt|sed 's/\(.*\)\./\1-/'`-`uname -m`.pkg.tar.xz +$ sudo pacman -D --asdeps freealut apr-util fltk glu hunspell minizip libnghttp2 openjpeg2 sdl2 vlc libvorbis +$ megapahit +``` + +### Arch x86-64 +``` +$ sudo pacman -S cmake base-devel patchelf python freealut apr-util boost cef fltk glm glu hunspell nanosvg libnghttp2 openjpeg2 libpipewire sdl2 vlc libvorbis xxhash $ export LL_BUILD="-O3 -std=c++20 -fPIC -DLL_LINUX=1" $ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:STRING=64 -DUSE_OPENAL:BOOL=ON -DUSE_FMODSTUDIO:BOOL=OFF -DENABLE_MEDIA_PLUGINS:BOOL=ON -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=ON -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=ON -DCMAKE_INSTALL_PREFIX=/usr ../indra $ make -j`nproc` $ makepkg -R $ sudo pacman -U megapahit-`cat newview/viewer_version.txt|sed 's/\(.*\)\./\1-/'`-`uname -m`.pkg.tar.zst +$ sudo pacman -D --asdeps freealut apr-util cef fltk glu hunspell libnghttp2 openjpeg2 sdl2 vlc libvorbis $ megapahit ``` diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake index 1fc28ad415..dd670e6cf8 100644 --- a/indra/cmake/CEFPlugin.cmake +++ b/indra/cmake/CEFPlugin.cmake @@ -5,7 +5,7 @@ include(Prebuilt) include_guard() add_library( ll::cef INTERFACE IMPORTED ) -if (${LINUX_DISTRO} MATCHES arch) +if (${LINUX_DISTRO} MATCHES arch AND (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64)) if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/dullahan_installed OR NOT ${dullahan_installed} EQUAL 0) file( COPY /usr/src/cef/libcef_dll @@ -290,7 +290,7 @@ elseif (LINUX) WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/bin/release ) endif () - if (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES fedora)) + if (${LINUX_DISTRO} MATCHES arch AND (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64) OR (${LINUX_DISTRO} MATCHES fedora)) target_include_directories( ll::cef SYSTEM INTERFACE /usr/include/cef/include) if (${LINUX_DISTRO} MATCHES fedora) set(LIB_SUFFIX ${ADDRESS_SIZE}) diff --git a/indra/media_plugins/cef/CMakeLists.txt b/indra/media_plugins/cef/CMakeLists.txt index 1a4d61616c..1622d3091f 100644 --- a/indra/media_plugins/cef/CMakeLists.txt +++ b/indra/media_plugins/cef/CMakeLists.txt @@ -51,7 +51,7 @@ if (LINUX) list(APPEND media_plugin_cef_SOURCE_FILES ${LINUX_VOLUME_CATCHER}) set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--build-id") - if (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES fedora)) + if (${LINUX_DISTRO} MATCHES arch AND (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64) OR (${LINUX_DISTRO} MATCHES fedora)) if (${LINUX_DISTRO} MATCHES fedora) set(LIB_SUFFIX ${ADDRESS_SIZE}) endif () @@ -178,6 +178,12 @@ if (INSTALL) PROGRAMS ${AUTOBUILD_INSTALL_DIR}/bin/release/dullahan_host DESTINATION lib/${VIEWER_BINARY_NAME} ) + if (CMAKE_SYSTEM_PROCESSOR MATCHES aarch64) + install( + PROGRAMS ${AUTOBUILD_INSTALL_DIR}/bin/release/chrome-sandbox + DESTINATION lib/${VIEWER_BINARY_NAME} + ) + endif () elseif (${LINUX_DISTRO} MATCHES fedora) install( PROGRAMS ${AUTOBUILD_INSTALL_DIR}/bin/release/dullahan_host @@ -191,7 +197,7 @@ if (INSTALL) DESTINATION libexec/${VIEWER_BINARY_NAME} ) endif () - if (NOT (${LINUX_DISTRO} MATCHES arch OR (${LINUX_DISTRO} MATCHES fedora))) + if (NOT (${LINUX_DISTRO} MATCHES arch AND (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64) OR (${LINUX_DISTRO} MATCHES fedora))) install( FILES ${ARCH_PREBUILT_DIRS_RELEASE}/libEGL.so diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 6ff0b3977a..d42561d05e 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2369,6 +2369,11 @@ if (LINUX) if (PACKAGE) if (${LINUX_DISTRO} MATCHES arch) + if (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64) + set(ARCH_DEPS cef) + else () + set(ARCH_DEPS "at-spi2-core minizip") + endif () configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/PKGBUILD.in ${CMAKE_BINARY_DIR}/PKGBUILD diff --git a/indra/newview/PKGBUILD.in b/indra/newview/PKGBUILD.in index b2830ed145..8b57e62f58 100644 --- a/indra/newview/PKGBUILD.in +++ b/indra/newview/PKGBUILD.in @@ -6,7 +6,7 @@ pkgdesc="${VIEWER_PACKAGE_COMMENT}" arch=('${CMAKE_SYSTEM_PROCESSOR}') url="https://${VIEWER_PACKAGE_DOMAIN_NAME}" license=('LGPL-2.1') -depends=(freealut apr-util at-spi2-core boost-libs cef fltk glu hunspell libnghttp2 openjpeg2 sdl2 vlc libvorbis) +depends=(freealut apr-util boost-libs fltk glu hunspell libnghttp2 openjpeg2 sdl2 vlc libvorbis ${ARCH_DEPS}) package() { cd "$startdir" -- cgit v1.3 From e7ad84c6d1374d21c3d055fa3fa2618d17ae23cf Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Wed, 29 Jul 2026 14:24:04 +0800 Subject: Can use CMake 4.4.0 on vcpkg --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cca1d69062..6529075bbe 100644 --- a/README.md +++ b/README.md @@ -153,7 +153,7 @@ $ megapahit $ vcpkg install python3 freealut apr-util boost curl freetype hunspell libjpeg-turbo meshoptimizer minizip nanosvg nghttp2 openjpeg sse2neon libvorbis libxml2[tools] xxhash $ vcpkg install --allow-unsupported boost-fiber $ export LL_BUILD="/MD /O2 /Ob2 /std:c++20 /Zc:wchar_t- /Zi /GR /DLL_RELEASE=1 /DLL_RELEASE_FOR_DOWNLOAD=1 /DNDEBUG /D_SECURE_STL=0 /D_HAS_ITERATOR_DEBUGGING=0 /DWIN32 /D_WINDOWS /DLL_WINDOWS=1 /DUNICODE /D_UNICODE /DWINVER=0x0602 /D_WIN32_WINNT=0x0602 /Zc:preprocessor" -$ export PATH="$VCPKG_ROOT/downloads/tools/cmake-4.3.3-windows/cmake-4.3.3-windows-arm64/bin:$VCPKG_ROOT/installed/arm64-windows/tools/libxml2:/c/Program Files (x86)/Microsoft Visual Studio/18/BuildTools/MSBuild/Current/Bin:$PATH" +$ export PATH="$VCPKG_ROOT/downloads/tools/cmake-4.4.0-windows/cmake-4.4.0-windows-arm64/bin:$VCPKG_ROOT/installed/arm64-windows/tools/libxml2:/c/Program Files (x86)/Microsoft Visual Studio/18/BuildTools/MSBuild/Current/Bin:$PATH" $ export PYTHON="$VCPKG_ROOT/installed/arm64-windows/tools/python3" $ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:STRING=64 -DUSE_OPENAL:BOOL=ON -DUSE_FMODSTUDIO:BOOL=OFF -DENABLE_MEDIA_PLUGINS:BOOL=OFF -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=OFF -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=Megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=ON -DCMAKE_TOOLCHAIN_FILE:FILEPATH=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake -DVS_DISABLE_FATAL_WARNINGS:BOOL=ON ../indra $ MSBuild.exe Megapahit.slnx -p:Configuration=Release @@ -165,7 +165,7 @@ $ start Megapahit-`cat newview/viewer_version.txt`-win64.exe ``` $ vcpkg install python3 freealut apr-util boost freetype glm hunspell libjpeg-turbo meshoptimizer minizip nanosvg nghttp2 openjpeg libvorbis libxml2[tools] xxhash $ export LL_BUILD="/MD /O2 /Ob2 /std:c++20 /Zc:wchar_t- /Zi /GR /DLL_RELEASE=1 /DLL_RELEASE_FOR_DOWNLOAD=1 /DNDEBUG /D_SECURE_STL=0 /D_HAS_ITERATOR_DEBUGGING=0 /DWIN32 /D_WINDOWS /DLL_WINDOWS=1 /DUNICODE /D_UNICODE /DWINVER=0x0602 /D_WIN32_WINNT=0x0602" -$ export PATH="$VCPKG_ROOT/downloads/tools/cmake-4.3.3-windows/cmake-4.3.3-windows-x86_64/bin:$VCPKG_ROOT/installed/x64-windows/tools/libxml2:/c/Program Files (x86)/Microsoft Visual Studio/18/BuildTools/MSBuild/Current/Bin:$PATH" +$ export PATH="$VCPKG_ROOT/downloads/tools/cmake-4.4.0-windows/cmake-4.4.0-windows-x86_64/bin:$VCPKG_ROOT/installed/x64-windows/tools/libxml2:/c/Program Files (x86)/Microsoft Visual Studio/18/BuildTools/MSBuild/Current/Bin:$PATH" $ export PYTHON="$VCPKG_ROOT/installed/x64-windows/tools/python3" $ cmake -DCMAKE_BUILD_TYPE:STRING=Release -DADDRESS_SIZE:STRING=64 -DUSE_OPENAL:BOOL=ON -DUSE_FMODSTUDIO:BOOL=OFF -DENABLE_MEDIA_PLUGINS:BOOL=ON -DLL_TESTS:BOOL=OFF -DNDOF:BOOL=ON -DROOT_PROJECT_NAME:STRING=Megapahit -DVIEWER_CHANNEL:STRING=Megapahit -DVIEWER_BINARY_NAME:STRING=Megapahit -DBUILD_SHARED_LIBS:BOOL=OFF -DINSTALL:BOOL=ON -DPACKAGE:BOOL=ON -DCMAKE_TOOLCHAIN_FILE:FILEPATH=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake -DVS_DISABLE_FATAL_WARNINGS:BOOL=ON ../indra $ MSBuild.exe Megapahit.slnx -p:Configuration=Release -- cgit v1.3 From f25c70283308df26de5f12ddf881d60a776ef57a Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Wed, 29 Jul 2026 14:24:24 +0800 Subject: Upgrade Discord Social SDK --- indra/cmake/Discord.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/cmake/Discord.cmake b/indra/cmake/Discord.cmake index 28d32cd668..270b4c09a6 100644 --- a/indra/cmake/Discord.cmake +++ b/indra/cmake/Discord.cmake @@ -9,7 +9,7 @@ target_compile_definitions(ll::discord_sdk INTERFACE LL_DISCORD=1) if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/discord_sdk_installed OR NOT ${discord_sdk_installed} EQUAL 0) file(ARCHIVE_EXTRACT - INPUT $ENV{HOME}/Downloads/DiscordSocialSdk-1.9.17379.zip + INPUT $ENV{HOME}/Downloads/DiscordSocialSdk-1.10.18247.zip DESTINATION ${CMAKE_BINARY_DIR} ) file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/include/discord_sdk) -- cgit v1.3 From bb748f993bbdd3be537558d5ba1941e7d20e3b35 Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Thu, 30 Jul 2026 06:40:13 +0800 Subject: Upgrade Dullahan to embed_scheme on Arch as its system CEF has been upgraded to 150.0.17. v1.40.0-CEF_150.0.16.embed_scheme is chosen here instead of the latest one because the latest one use 150.0.18. Anticipating newest Dullahan version using not yet available API on Arch CEF 150.0.17. --- indra/cmake/CEFPlugin.cmake | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/indra/cmake/CEFPlugin.cmake b/indra/cmake/CEFPlugin.cmake index dd670e6cf8..452e2afbbf 100644 --- a/indra/cmake/CEFPlugin.cmake +++ b/indra/cmake/CEFPlugin.cmake @@ -29,26 +29,26 @@ if (${LINUX_DISTRO} MATCHES arch AND (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64)) DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE} ) endif () - if (NOT EXISTS ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.13.accel.tar.gz) + if (NOT EXISTS ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.16.embed_scheme.tar.gz) file(DOWNLOAD - https://github.com/secondlife/dullahan/archive/refs/tags/v1.40.0-CEF_150.0.13.accel.tar.gz - ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.13.accel.tar.gz + https://github.com/secondlife/dullahan/archive/refs/tags/v1.40.0-CEF_150.0.16.embed_scheme.tar.gz + ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.16.embed_scheme.tar.gz ) endif () file(ARCHIVE_EXTRACT - INPUT ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.13.accel.tar.gz + INPUT ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.16.embed_scheme.tar.gz DESTINATION ${CMAKE_BINARY_DIR} ) try_compile(DULLAHAN_RESULT PROJECT dullahan - SOURCE_DIR ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.13.accel - BINARY_DIR ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.13.accel + SOURCE_DIR ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.16.embed_scheme + BINARY_DIR ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.16.embed_scheme CMAKE_FLAGS -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX:PATH=${LIBS_PREBUILT_DIR} -DCMAKE_INSTALL_LIBDIR:PATH=${ARCH_PREBUILT_DIRS_RELEASE} -DCEF_WRAPPER_DIR:PATH=/usr/include/cef - -DCEF_WRAPPER_BUILD_DIR:PATH=${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.13.accel + -DCEF_WRAPPER_BUILD_DIR:PATH=${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.16.embed_scheme -DCEF_LIBRARY_RELEASE:FILEPATH=${INSTALL_PREFIX}/lib/cef/libcef.so -DCEF_DLL_LIBRARY_RELEASE:FILEPATH=${ARCH_PREBUILT_DIRS_RELEASE}/libcef_dll_wrapper.a "-DCMAKE_CXX_FLAGS:STRING=-I/usr/include/cef -I/usr/src/cef -DWRAPPING_CEF_SHARED" @@ -56,7 +56,7 @@ if (${LINUX_DISTRO} MATCHES arch AND (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64)) if (${DULLAHAN_RESULT}) file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/bin/release) file( - COPY ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.13.accel/dullahan_host + COPY ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.16.embed_scheme/dullahan_host DESTINATION ${LIBS_PREBUILT_DIR}/bin/release ) if (CMAKE_BUILD_TYPE MATCHES Release) @@ -66,14 +66,14 @@ if (${LINUX_DISTRO} MATCHES arch AND (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64)) ) endif () file( - COPY ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.13.accel/libdullahan.a + COPY ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.16.embed_scheme/libdullahan.a DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE} ) file(MAKE_DIRECTORY ${LIBS_PREBUILT_DIR}/include/cef) file( COPY - ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.13.accel/src/dullahan.h - ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.13.accel/src/dullahan_version.h + ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.16.embed_scheme/src/dullahan.h + ${CMAKE_BINARY_DIR}/dullahan-1.40.0-CEF_150.0.16.embed_scheme/src/dullahan_version.h DESTINATION ${LIBS_PREBUILT_DIR}/include/cef ) file(WRITE ${PREBUILD_TRACKING_DIR}/dullahan_installed "0") -- cgit v1.3