diff --git a/pkgs/applications/emulators/rpcs3/0001-llvm-ExecutionEngine-IntelJITEvents-only-use-ITTAPI_.patch b/pkgs/applications/emulators/rpcs3/0001-llvm-ExecutionEngine-IntelJITEvents-only-use-ITTAPI_.patch deleted file mode 100644 index dccf06fc0786..000000000000 --- a/pkgs/applications/emulators/rpcs3/0001-llvm-ExecutionEngine-IntelJITEvents-only-use-ITTAPI_.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 9866ce8f538e1ab1f0902408b7575013b768f365 Mon Sep 17 00:00:00 2001 -From: Zane van Iperen -Date: Wed, 2 Feb 2022 23:41:59 +1000 -Subject: [PATCH] llvm/ExecutionEngine/IntelJITEvents: only use - ITTAPI_SOURCE_DIR - ---- - .../IntelJITEvents/CMakeLists.txt | 32 ++----------------- - 1 file changed, 2 insertions(+), 30 deletions(-) - -diff --git a/llvm/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt b/llvm/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt -index 0c5017c3..d20c35f3 100644 ---- a/llvm/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt -+++ b/llvm/lib/ExecutionEngine/IntelJITEvents/CMakeLists.txt -@@ -1,34 +1,6 @@ - include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/.. ) - --if(NOT DEFINED ITTAPI_GIT_REPOSITORY) -- set(ITTAPI_GIT_REPOSITORY https://github.com/intel/ittapi.git) --endif() -- --if(NOT DEFINED ITTAPI_GIT_TAG) -- set(ITTAPI_GIT_TAG v3.18.12) --endif() -- --if(NOT DEFINED ITTAPI_SOURCE_DIR) -- set(ITTAPI_SOURCE_DIR ${PROJECT_BINARY_DIR}) --endif() -- --if(NOT EXISTS ${ITTAPI_SOURCE_DIR}/ittapi) -- execute_process(COMMAND ${GIT_EXECUTABLE} clone ${ITTAPI_GIT_REPOSITORY} -- WORKING_DIRECTORY ${ITTAPI_SOURCE_DIR} -- RESULT_VARIABLE GIT_CLONE_RESULT) -- if(NOT GIT_CLONE_RESULT EQUAL "0") -- message(FATAL_ERROR "git clone ${ITTAPI_GIT_REPOSITORY} failed with ${GIT_CLONE_RESULT}, please clone ${ITTAPI_GIT_REPOSITORY}") -- endif() --endif() -- --execute_process(COMMAND ${GIT_EXECUTABLE} checkout ${ITTAPI_GIT_TAG} -- WORKING_DIRECTORY ${ITTAPI_SOURCE_DIR}/ittapi -- RESULT_VARIABLE GIT_CHECKOUT_RESULT) --if(NOT GIT_CHECKOUT_RESULT EQUAL "0") -- message(FATAL_ERROR "git checkout ${ITTAPI_GIT_TAG} failed with ${GIT_CHECKOUT_RESULT}, please checkout ${ITTAPI_GIT_TAG} at ${ITTAPI_SOURCE_DIR}/ittapi") --endif() -- --include_directories( ${ITTAPI_SOURCE_DIR}/ittapi/include/ ) -+include_directories( ${ITTAPI_SOURCE_DIR}/include/ ) - - if( HAVE_LIBDL ) - set(LLVM_INTEL_JIT_LIBS ${CMAKE_DL_LIBS}) -@@ -40,7 +12,7 @@ set(LLVM_INTEL_JIT_LIBS ${LLVM_PTHREAD_LIB} ${LLVM_INTEL_JIT_LIBS}) - add_llvm_component_library(LLVMIntelJITEvents - IntelJITEventListener.cpp - jitprofiling.c -- ${ITTAPI_SOURCE_DIR}/ittapi/src/ittnotify/ittnotify_static.c -+ ${ITTAPI_SOURCE_DIR}/src/ittnotify/ittnotify_static.c - - LINK_LIBS ${LLVM_INTEL_JIT_LIBS} - --- -2.34.1 - diff --git a/pkgs/applications/emulators/rpcs3/default.nix b/pkgs/applications/emulators/rpcs3/default.nix index b035c7b0d17f..cc38ad1fbcda 100644 --- a/pkgs/applications/emulators/rpcs3/default.nix +++ b/pkgs/applications/emulators/rpcs3/default.nix @@ -1,24 +1,43 @@ -{ lib, stdenv, fetchFromGitHub, wrapQtAppsHook, cmake, pkg-config, git -, qtbase, qtquickcontrols, qtmultimedia, openal, glew, vulkan-headers, vulkan-loader, libpng -, ffmpeg, libevdev, libusb1, zlib, curl, wolfssl, python3, pugixml, faudio, flatbuffers -, sdl2Support ? true, SDL2 -, cubebSupport ? true, cubeb -, waylandSupport ? true, wayland +{ lib +, stdenv +, fetchFromGitHub +, wrapQtAppsHook +, cmake +, pkg-config +, git +, qtbase +, qtquickcontrols +, qtmultimedia +, openal +, glew +, vulkan-headers +, vulkan-loader +, libpng +, libSM +, ffmpeg +, libevdev +, libusb1 +, zlib +, curl +, wolfssl +, python3 +, pugixml +, flatbuffers +, llvm_16 +, cubeb +, faudioSupport ? true +, faudio +, SDL2 +, waylandSupport ? true +, wayland }: let # Keep these separate so the update script can regex them - rpcs3GitVersion = "14840-842edbcbe"; - rpcs3Version = "0.0.27-14840-842edbcbe"; - rpcs3Revision = "842edbcbe795941981993c667c2d8a866126b5b0"; - rpcs3Sha256 = "1al4dx93f02k56k62dxjqqb46cwg0nkpjax1xnjc8v3bx4gsp6f6"; - - ittapi = fetchFromGitHub { - owner = "intel"; - repo = "ittapi"; - rev = "v3.18.12"; - sha256 = "0c3g30rj1y8fbd2q4kwlpg1jdy02z4w5ryhj3yr9051pdnf4kndz"; - }; + rpcs3GitVersion = "15372-38a5313ed"; + rpcs3Version = "0.0.28-15372-38a5313ed"; + rpcs3Revision = "38a5313ed2c4ebb626017a4f7f28ed0c0a89f931"; + rpcs3Hash = "sha256-tiByoxPf++TK/Xowo2VQ+OEojoYIpX/B8caDyaMZ3Qc="; in stdenv.mkDerivation { pname = "rpcs3"; @@ -29,11 +48,9 @@ stdenv.mkDerivation { repo = "rpcs3"; rev = rpcs3Revision; fetchSubmodules = true; - sha256 = rpcs3Sha256; + hash = rpcs3Hash; }; - patches = [ ./0001-llvm-ExecutionEngine-IntelJITEvents-only-use-ITTAPI_.patch ]; - passthru.updateScript = ./update.sh; preConfigure = '' @@ -55,17 +72,20 @@ stdenv.mkDerivation { "-DUSE_SYSTEM_FAUDIO=ON" "-DUSE_SYSTEM_PUGIXML=ON" "-DUSE_SYSTEM_FLATBUFFERS=ON" + "-DUSE_SYSTEM_SDL=ON" + "-DWITH_LLVM=ON" + "-DBUILD_LLVM=OFF" "-DUSE_NATIVE_INSTRUCTIONS=OFF" - "-DITTAPI_SOURCE_DIR=${ittapi}" + "-DUSE_FAUDIO=${if faudioSupport then "ON" else "OFF"}" ]; nativeBuildInputs = [ cmake pkg-config git wrapQtAppsHook ]; buildInputs = [ qtbase qtquickcontrols qtmultimedia openal glew vulkan-headers vulkan-loader libpng ffmpeg - libevdev zlib libusb1 curl wolfssl python3 pugixml faudio flatbuffers - ] ++ lib.optional sdl2Support SDL2 - ++ lib.optionals cubebSupport cubeb.passthru.backendLibs + libevdev zlib libusb1 curl wolfssl python3 pugixml flatbuffers llvm_16 libSM + ] ++ cubeb.passthru.backendLibs + ++ lib.optionals faudioSupport [ faudio SDL2 ] ++ lib.optional waylandSupport wayland; postInstall = '' diff --git a/pkgs/applications/emulators/rpcs3/update.sh b/pkgs/applications/emulators/rpcs3/update.sh index 0c8477c5282b..1efecc7ec88c 100755 --- a/pkgs/applications/emulators/rpcs3/update.sh +++ b/pkgs/applications/emulators/rpcs3/update.sh @@ -1,5 +1,5 @@ #!/usr/bin/env nix-shell -#!nix-shell -i bash --pure --keep GITHUB_TOKEN -p gnused jq nix-prefetch-git curl cacert +#!nix-shell -i bash --pure --keep GITHUB_TOKEN -p nix gnused jq nix-prefetch-git curl cacert set -eou pipefail @@ -48,12 +48,13 @@ final_ver="$major_ver-$git_ver" echo "INFO: Latest commit is $commit_sha" echo "INFO: Latest version is $final_ver" -nix_sha256=$(nix-prefetch-git --quiet --fetch-submodules https://github.com/RPCS3/rpcs3.git "$commit_sha" | jq -r .sha256) -echo "INFO: SHA256 is $nix_sha256" +nix_hash=$(nix-prefetch-git --quiet --fetch-submodules https://github.com/RPCS3/rpcs3.git "$commit_sha" | jq -r .sha256) +nix_hash=$(nix hash to-sri --type sha256 "$nix_hash") +echo "INFO: Hash is $nix_hash" sed -i -E \ -e "s/rpcs3GitVersion\s*=\s*\"[\.a-z0-9-]+\";$/rpcs3GitVersion = \"${git_ver}\";/g" \ -e "s/rpcs3Version\s*=\s*\"[\.a-z0-9-]+\";$/rpcs3Version = \"${final_ver}\";/g" \ -e "s/rpcs3Revision\s*=\s*\"[a-z0-9]+\";$/rpcs3Revision = \"${commit_sha}\";/g" \ - -e "s/rpcs3Sha256\s*=\s*\"[a-z0-9]+\";$/rpcs3Sha256 = \"${nix_sha256}\";/g" \ + -e "s|rpcs3Hash\s*=\s*\"sha256-.*\";$|rpcs3Hash = \"${nix_hash}\";|g" \ "$ROOT/default.nix"