summary refs log tree commit diff
diff options
context:
space:
mode:
authorZane van Iperen <zane@zanevaniperen.com>2023-07-22 15:08:02 +1000
committerAnderson Torres <torres.anderson.85@protonmail.com>2023-07-29 11:15:59 -0300
commite6ab46982debeab9831236869539a507f670a129 (patch)
tree883d870b1fd672a40fb06165f3113d6adc72e2d6
parent52858df957d9ef6f5d2954171f403cecc02371f6 (diff)
downloadnixpkgs-e6ab46982debeab9831236869539a507f670a129.tar
nixpkgs-e6ab46982debeab9831236869539a507f670a129.tar.gz
nixpkgs-e6ab46982debeab9831236869539a507f670a129.tar.bz2
nixpkgs-e6ab46982debeab9831236869539a507f670a129.tar.lz
nixpkgs-e6ab46982debeab9831236869539a507f670a129.tar.xz
nixpkgs-e6ab46982debeab9831236869539a507f670a129.tar.zst
nixpkgs-e6ab46982debeab9831236869539a507f670a129.zip
rpcs3: 0.0.27-14840-842edbcbe -> 0.0.28-15372-38a5313ed
* Cubeb support is unconditional now, remove the check.
* SDL is only required for FAudio, so rename the check to faudioSupport.
* Use system LLVM now that upstream supports it :tada:
-rw-r--r--pkgs/applications/emulators/rpcs3/0001-llvm-ExecutionEngine-IntelJITEvents-only-use-ITTAPI_.patch62
-rw-r--r--pkgs/applications/emulators/rpcs3/default.nix68
-rwxr-xr-xpkgs/applications/emulators/rpcs3/update.sh9
3 files changed, 49 insertions, 90 deletions
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 dccf06fc078..00000000000
--- 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 <zane@zanevaniperen.com>
-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 b035c7b0d17..cc38ad1fbcd 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 0c8477c5282..1efecc7ec88 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"