diff --git a/provision/flake.lock b/provision/flake.lock index 94b47f36..6f1bba60 100644 --- a/provision/flake.lock +++ b/provision/flake.lock @@ -8,11 +8,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1723293904, - "narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=", + "lastModified": 1736955230, + "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=", "owner": "ryantm", "repo": "agenix", - "rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41", + "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c", "type": "github" }, "original": { @@ -46,11 +46,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "type": "github" }, "original": { @@ -59,24 +59,6 @@ "type": "github" } }, - "flake-utils": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -105,11 +87,11 @@ ] }, "locked": { - "lastModified": 1732482255, - "narHash": "sha256-GUffLwzawz5WRVfWaWCg78n/HrBJrOG7QadFY6rtV8A=", + "lastModified": 1738448366, + "narHash": "sha256-4ATtQqBlgsGqkHTemta0ydY6f7JBRXz4Hf574NHQpkg=", "owner": "nix-community", "repo": "home-manager", - "rev": "a9953635d7f34e7358d5189751110f87e3ac17da", + "rev": "18fa9f323d8adbb0b7b8b98a8488db308210ed93", "type": "github" }, "original": { @@ -121,11 +103,11 @@ "jovian-nixos": { "flake": false, "locked": { - "lastModified": 1732648910, - "narHash": "sha256-1F83DUfEHnCZpGY4UOlWaamWoDx8eZ9tHaUF51p2hng=", + "lastModified": 1738443663, + "narHash": "sha256-Rx3E+LRYRYvWFhjIE2bMpybL6Ac5NgdSpEOX70NATuE=", "ref": "development", - "rev": "e86d2ad72094354326887bd6fe156f327d63d491", - "revCount": 1033, + "rev": "bdf32c9d74f824250e683003bd44596f0b93c81a", + "revCount": 1099, "type": "git", "url": "https://github.com/Jovian-Experiments/Jovian-NixOS" }, @@ -138,17 +120,16 @@ "nixos-wsl": { "inputs": { "flake-compat": "flake-compat", - "flake-utils": "flake-utils", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1731682434, - "narHash": "sha256-HnZFPB7akVIy0KuPq/tEkiB+Brt1qi0DUIDzR8z25qI=", + "lastModified": 1736095716, + "narHash": "sha256-csysw/Szu98QDiA2lhWk9seYOyCebeVEWL89zh1cduM=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "a6b9cf0b7805e2c50829020a73e7bde683fd36dd", + "rev": "63c3b4ed1712a3a0621002cd59bfdc80875ecbb0", "type": "github" }, "original": { @@ -175,11 +156,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1732521221, - "narHash": "sha256-2ThgXBUXAE1oFsVATK1ZX9IjPcS4nKFOAjhPNKuiMn0=", + "lastModified": 1738410390, + "narHash": "sha256-xvTo0Aw0+veek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4633a7c72337ea8fd23a4f2ba3972865e3ec685d", + "rev": "3a228057f5b619feb3186e986dbe76278d707b6e", "type": "github" }, "original": { @@ -212,21 +193,6 @@ "repo": "default", "type": "github" } - }, - "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } } }, "root": "root", diff --git a/provision/modules/desktop/default.nix b/provision/modules/desktop/default.nix index 33f3b19e..6c3b8748 100644 --- a/provision/modules/desktop/default.nix +++ b/provision/modules/desktop/default.nix @@ -17,7 +17,6 @@ in { vesktop # Voice, video, and text communication platform for communities and friends inkscape # Vector graphics editor for creating illustrations, icons, logos, diagrams, and more libreoffice-fresh # Office suite compatible with Microsoft Office - xournal # Note-taking and sketching application mpv # Media player for playing audio and video files p7zip # Command-line file archiver with high compression ratio gimp # GNU Image Manipulation Program for editing and composing raster images diff --git a/provision/modules/desktop/gnome.nix b/provision/modules/desktop/gnome.nix index bb1852ec..8b54b1fb 100644 --- a/provision/modules/desktop/gnome.nix +++ b/provision/modules/desktop/gnome.nix @@ -25,7 +25,6 @@ in { evolution # Personal information management application that provides email, calendar, and contact management features gnomeExtensions.custom-hot-corners-extended # GNOME Shell extension for changing window focus behavior gnomeExtensions.alphabetical-app-grid # Alphabetically order the app grid and folders - gnome-fullscreen-to-empty-workspace # New, maximized and fullscreen windows will be moved to empty workspaces gnome-set-panel-monitor # Set monitor for panel to appear on stacks-in-gnome # TBD gnome-randr # Xrandr-like CLI for configuring displays on GNOME/Wayland @@ -63,7 +62,7 @@ in { }; # Enable sound and handle conflict (https://github.com/Jovian-Experiments/Jovian-NixOS/issues/99) - hardware.pulseaudio.enable = lib.mkForce false; + services.pulseaudio.enable = lib.mkForce false; xdg.mime = { enable = true; @@ -124,7 +123,6 @@ in { disable-user-extensions = false; enabled-extensions = [ "focus-changer@heartmire" - "fullscreen-to-empty-workspace@aiono.dev" "gnome-set-panel-monitor@tstarr.us" "custom-hot-corners-extended@G-dH.github.com" "AlphabeticalAppGrid@stuarthayhurst" diff --git a/provision/modules/gaming/emulation.nix b/provision/modules/gaming/emulation.nix index eadd04f0..fecef161 100644 --- a/provision/modules/gaming/emulation.nix +++ b/provision/modules/gaming/emulation.nix @@ -1,26 +1,23 @@ { config, lib, pkgs, user, ... }: let cfg = config.modules.gaming.emulation; + retroarchWithCores = (pkgs.retroarch.withCores (cores: with cores; [ + nestopia # Nintendo Entertainment System (NES) emulator + snes9x # Super Nintendo Entertainment System (SNES) emulator + mgba # Game Boy Advance emulator + melonds # Nintendo DS emulator + citra # Fuck Nintendo a third time + ])); in { options.modules.gaming.emulation.enable = lib.mkEnableOption "emulation"; config = lib.mkIf cfg.enable { environment.systemPackages = with pkgs; [ ryujinx # Fuck Nintendo - yuzu # Fuck Nintendo again - sudachi # Nintendo Switch emulator written in C++ dolphin-emu # GameCube and Wii emulator ppsspp # PSP emulator mgba # Game Boy Advance emulator rpcs3 # PS3 emulator/debugger - (retroarch.override { - cores = with libretro; [ - nestopia # Nintendo Entertainment System (NES) emulator - snes9x # Super Nintendo Entertainment System (SNES) emulator - mgba # Game Boy Advance emulator - melonds # Nintendo DS emulator - citra # Fuck Nintendo a third time - ]; - }) + retroarchWithCores # frontend for emulators and specific cores ]; }; } diff --git a/provision/modules/gaming/steam.nix b/provision/modules/gaming/steam.nix index 85af9fc9..eae1ff26 100644 --- a/provision/modules/gaming/steam.nix +++ b/provision/modules/gaming/steam.nix @@ -12,7 +12,7 @@ in { ]; hardware.graphics.enable = true; # https://github.com/NixOS/nixpkgs/issues/47932 - hardware.pulseaudio.support32Bit = config.hardware.pulseaudio.enable; + services.pulseaudio.support32Bit = config.hardware.pulseaudio.enable; hardware.steam-hardware.enable = true; programs.steam = { diff --git a/provision/modules/programs/kitty.nix b/provision/modules/programs/kitty.nix index 87dfa72a..dc438879 100644 --- a/provision/modules/programs/kitty.nix +++ b/provision/modules/programs/kitty.nix @@ -6,7 +6,7 @@ in { config = lib.mkIf cfg.enable { home-manager.users.${user} = { home.packages = with pkgs; [ - nerdfonts + nerd-fonts.jetbrains-mono ]; programs.kitty = { diff --git a/provision/overlays/default.nix b/provision/overlays/default.nix index 053abb96..e676ab3a 100644 --- a/provision/overlays/default.nix +++ b/provision/overlays/default.nix @@ -1,12 +1,8 @@ final: prev: { advcpmv = final.callPackage ../pkgs/advcpmv.nix {}; ftw = final.callPackage ../pkgs/ftw.nix {}; - gnome-fullscreen-to-empty-workspace = final.callPackage ../pkgs/gnome-fullscreen-to-empty-workspace/default.nix {}; gnome-set-panel-monitor = final.callPackage ../pkgs/gnome-set-panel-monitor.nix {}; stacks-in-gnome = final.callPackage ../pkgs/stacks-in-gnome.nix {}; - nx_tzdb = final.callPackage ../pkgs/nx_tzdb.nix {}; pySVS = final.callPackage ../pkgs/pySVS.nix {}; ryujinx = final.callPackage ../pkgs/ryujinx/default.nix {}; - sudachi = final.qt6.callPackage ../pkgs/sudachi/default.nix {}; - yuzu = final.libsForQt5.callPackage ../pkgs/yuzu/default.nix {}; } diff --git a/provision/pkgs/gnome-fullscreen-to-empty-workspace/default.nix b/provision/pkgs/gnome-fullscreen-to-empty-workspace/default.nix deleted file mode 100644 index 8d64645f..00000000 --- a/provision/pkgs/gnome-fullscreen-to-empty-workspace/default.nix +++ /dev/null @@ -1,35 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, glib }: - -stdenv.mkDerivation { - pname = "gnome-fullscreen-to-new-workspace"; - version = "git-2023-08-19"; - - src = fetchFromGitHub { - owner = "onsah"; - repo = "fullscreen-to-new-workspace"; - rev = "26014b6f8d569891381ab2ebc75c74a51d2454df"; - hash = "sha256-S9mvODQqOBCmA+L1TBJm/c1v5Y+qVKuFpQf799LEwcI="; - }; - - patches = [ - ./version.patch - ]; - - installPhase = '' - runHook preInstall - mkdir -p "$out/share/gnome-shell/extensions/fullscreen-to-empty-workspace@aiono.dev" - cp -r src/* "$out/share/gnome-shell/extensions/fullscreen-to-empty-workspace@aiono.dev" - runHook postInstall - ''; - - passthru = { - extensionUuid = "fullscreen-to-empty-workspace@aiono.dev"; - extensionPortalSlug = "fullscreen-to-empty-workspace"; - }; - - meta = with lib; { - description = "New, maximized and fullscreen windows will be moved to empty workspaces."; - maintainers = with maintainers; [ onsah starr-dusT ]; - homepage = "https://github.com/onsah/fullscreen-to-new-workspace"; - }; -} diff --git a/provision/pkgs/gnome-fullscreen-to-empty-workspace/version.patch b/provision/pkgs/gnome-fullscreen-to-empty-workspace/version.patch deleted file mode 100644 index bae98012..00000000 --- a/provision/pkgs/gnome-fullscreen-to-empty-workspace/version.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/src/metadata.json b/src/metadata.json -index 66a2ea3..a98e00c 100644 ---- a/src/metadata.json -+++ b/src/metadata.json -@@ -4,8 +4,9 @@ - "url": "https://github.com/onsah/fullscreen-to-new-workspace", - "uuid": "fullscreen-to-empty-workspace@aiono.dev", - "shell-version": [ -- "46" -+ "47" - ], - "version": 15, - "settings-schema": "org.gnome.shell.extensions.fullscreen-to-empty-workspace" --} -\ No newline at end of file -+} -+ diff --git a/provision/pkgs/nx_tzdb.nix b/provision/pkgs/nx_tzdb.nix deleted file mode 100644 index fbe15cff..00000000 --- a/provision/pkgs/nx_tzdb.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ stdenv, fetchurl, unzip, gitUpdater }: -stdenv.mkDerivation rec { - pname = "nx_tzdb"; - version = "221202"; - - src = fetchurl { - url = "https://git.tstarr.us/tstarr/tzdb_to_nx/releases/download/221202/221202.zip"; - hash = "sha256-mRzW+iIwrU1zsxHmf+0RArU8BShAoEMvCz+McXFFK3c="; - }; - - nativeBuildInputs = [ unzip ]; - - buildCommand = '' - unzip $src -d $out - ''; - - passthru.updateScript = gitUpdater { - url = "https://git.tstarr.us/tstarr/tzdb_to_nx"; - }; -} diff --git a/provision/pkgs/sudachi/default.nix b/provision/pkgs/sudachi/default.nix deleted file mode 100644 index 54efb9e8..00000000 --- a/provision/pkgs/sudachi/default.nix +++ /dev/null @@ -1,205 +0,0 @@ -{ - lib, - stdenv, - fetchzip, - fetchFromGitea, - cmake, - glslang, - pkg-config, - qttools, - wrapQtAppsHook, - boost, - fmt, - lz4, - nlohmann_json, - qtbase, - qtmultimedia, - qtwayland, - qtwebengine, - zlib, - zstd, - rapidjson, - libva, - libvdpau, - nv-codec-headers-12, - yasm, - autoconf, - automake, - libtool, - spirv-headers, - catch2_3, - vulkan-loader, - vulkan-headers, - SDL2, -}: - -let - # Derived from externals/nx_tzdb/CMakeLists.txt - nx_tzdb = fetchzip { - url = "https://github.com/lat9nq/tzdb_to_nx/releases/download/221202/221202.zip"; - hash = "sha256-YOIElcKTiclem05trZsA3YJReozu/ex7jJAKD6nAMwc="; - stripRoot = false; - }; - suyu = fetchFromGitea { - domain = "git.suyu.dev"; - owner = "suyu"; - repo = "suyu"; - rev = "ee365bad9501c73ff49936e72ec91cd9c3ce5c24"; - hash = "sha256-vw9VcSbCaG4MS0PL/fJ73CDALLbd3n0CBT7gkyp5hRc="; - fetchSubmodules = true; - }; -in -stdenv.mkDerivation (finalAttrs: { - pname = "sudachi"; - version = "1.0.11"; - - src = fetchzip { - url = "https://github.com/emuplace/sudachi.emuplace.app/releases/download/v1.0.11/latest.zip"; - hash = "sha256-HNNND8g9JyvrMjQxHq4udUtskGkqaISpq0TnzE2rb/U="; - stripRoot = false; - }; - - patches = [ - ./remove_agx.patch - ./sdl2_fix.patch - ]; - - nativeBuildInputs = [ - cmake - glslang - pkg-config - qttools - wrapQtAppsHook - ]; - - buildInputs = [ - vulkan-headers - boost - fmt - lz4 - SDL2 - nlohmann_json - qtbase - qtmultimedia - qtwayland - qtwebengine - zlib - zstd - - # vendored discord-rpc deps - rapidjson - - # vendored ffmpeg deps - libva # for accelerated video decode on non-nvidia - libvdpau # for accelerated video decode on non-nvidia - nv-codec-headers-12 # for accelerated video decode on nvidia - yasm - - # vendored libusb deps - autoconf - automake - libtool - - # vendored sirit deps - spirv-headers - ]; - - cmakeFlags = [ - # actually has a noticeable performance impact - "-DSUDACHI_ENABLE_LTO=ON" - - # build with qt6 - "-DENABLE_QT6=ON" - - # enable some optional features - "-DSUDACHI_USE_QT_WEB_ENGINE=ON" - "-DSUDACHI_USE_QT_MULTIMEDIA=ON" - "-DUSE_DISCORD_PRESENCE=ON" - - # compatibility list currently 404's - "-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" - - # don't check for missing submodules - "-DSUDACHI_CHECK_SUBMODULES=OFF" - - # use system libraries - # NB: "external" here means "from the externals/ directory in the source", - # so "off" means "use system" - "-DSUDACHI_USE_EXTERNAL_VULKAN_HEADERS=OFF" - - # Disable SDL2 - # SDL flags are broken somehow in 1.0.11 and fix is hacked in with a patch - - # don't use system ffmpeg, sudachi uses internal APIs - "-DSUDACHI_USE_BUNDLED_FFMPEG=ON" - "-DFFmpeg_COMPONENTS='swscale;avutil;avfilter;avcodec'" - "-DFFmpeg_PREFIX=$src/externals/ffmpeg/ffmpeg" - - # use system spriv headers for sirit - "-DSIRIT_USE_SYSTEM_SPIRV_HEADERS=ON" - ]; - - # Does some handrolled SIMD - env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isx86_64 "-msse4.1"; - - # This changes `ir/opt` to `ir/var/empty` in `externals/dynarmic/src/dynarmic/CMakeLists.txt` - # making the build fail, as that path does not exist - dontFixCmake = true; - - prePatch = '' - # Copy suyu externals - rm -R externals/ - cp -R ${suyu}/externals . - - # replace "SUYU" with "SUDACHI" in externals cmake args - chmod u+rw -R externals/ - grep -rl SUYU | xargs sed -i 's/SUYU/SUDACHI/g' - ''; - - preConfigure = '' - # see https://github.com/NixOS/nixpkgs/issues/114044, setting this through cmakeFlags does not work. - cmakeFlagsArray+=( - "-DTITLE_BAR_FORMAT_IDLE=${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) {}" - "-DTITLE_BAR_FORMAT_RUNNING=${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) | {}" - ) - - # provide pre-downloaded tz data - mkdir -p build/externals/nx_tzdb - ln -s ${nx_tzdb} build/externals/nx_tzdb/nx_tzdb - ''; - - doCheck = true; - checkInputs = [ catch2_3 ]; - - # Fixes vulkan detection. - # FIXME: patchelf --add-rpath corrupts the binary for some reason, investigate - qtWrapperArgs = [ "--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib" ]; - - postInstall = '' - install -Dm444 "$src/dist/72-sudachi-input.rules" "$out/lib/udev/rules.d/72-sudachi-input.rules" - mkdir -p "$out/share/sudachi" - cp -R "$src" "$out/share/sudachi/src" - ''; - - meta = with lib; { - description = "Nintendo Switch emulator written in C++"; - homepage = "https://sudachiemu.com/"; - changelog = "https://sudachi.emuplace.app/"; - mainProgram = "sudachi"; - platforms = [ - "aarch64-linux" - "x86_64-linux" - ]; - - license = with licenses; [ - gpl3Plus - - # Icons - asl20 - mit - cc0 - ]; - - maintainers = with maintainers; [ starr-dusT ]; - }; -}) diff --git a/provision/pkgs/sudachi/remove_agx.patch b/provision/pkgs/sudachi/remove_agx.patch deleted file mode 100644 index e6c5f535..00000000 --- a/provision/pkgs/sudachi/remove_agx.patch +++ /dev/null @@ -1,16 +0,0 @@ -Submodule externals/Vulkan-Utility-Libraries contains modified content -diff --git a/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h b/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h -index 9d2af46..bb490ac 100644 ---- a/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h -+++ b/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h -@@ -3478,8 +3478,8 @@ static inline const char* string_VkDriverId(VkDriverId input_value) { - return "VK_DRIVER_ID_MESA_NVK"; - case VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA: - return "VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA"; -- case VK_DRIVER_ID_MESA_AGXV: -- return "VK_DRIVER_ID_MESA_AGXV"; -+ //case VK_DRIVER_ID_MESA_AGXV: -+ // return "VK_DRIVER_ID_MESA_AGXV"; - default: - return "Unhandled VkDriverId"; - } diff --git a/provision/pkgs/sudachi/sdl2_fix.patch b/provision/pkgs/sudachi/sdl2_fix.patch deleted file mode 100644 index 63335f28..00000000 --- a/provision/pkgs/sudachi/sdl2_fix.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index ed30417..7c1da0b 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -535,34 +535,10 @@ if(ENABLE_QT) - - endif() - --# find SDL2 exports a bunch of variables that are needed, so its easier to do this outside of the sudachi_find_package --if (ENABLE_SDL2 AND NOT USE_SDL2_FROM_EXTERNALS) -- if (SUDACHI_USE_BUNDLED_SDL2) -- # Detect toolchain and platform -- if ((MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1940) AND ARCHITECTURE_x86_64) -- set(SDL2_VER "SDL2-2.28.2") -- else() -- message(FATAL_ERROR "No bundled SDL2 binaries for your toolchain. Disable SUDACHI_USE_BUNDLED_SDL2 and provide your own.") -- endif() -- -- if (DEFINED SDL2_VER) -- download_bundled_external("sdl2/" ${SDL2_VER} SDL2_PREFIX) -- endif() -- -- set(SDL2_FOUND YES) -- set(SDL2_INCLUDE_DIR "${SDL2_PREFIX}/include" CACHE PATH "Path to SDL2 headers") -- set(SDL2_LIBRARY "${SDL2_PREFIX}/lib/x64/SDL2.lib" CACHE PATH "Path to SDL2 library") -- set(SDL2_DLL_DIR "${SDL2_PREFIX}/lib/x64/" CACHE PATH "Path to SDL2.dll") -- -- add_library(SDL2::SDL2 INTERFACE IMPORTED) -- target_link_libraries(SDL2::SDL2 INTERFACE "${SDL2_LIBRARY}") -- target_include_directories(SDL2::SDL2 INTERFACE "${SDL2_INCLUDE_DIR}") -- elseif (USE_SDL2_FROM_EXTERNALS) -- message(STATUS "Using SDL2 from externals.") -- else() -- find_package(SDL2 2.26.4 REQUIRED) -- endif() --endif() -+# Nixos needs to use packaged SDL2. There is something up with these flags that -+# doesn't currently work properly so here is a quick hack. I'd investigate and -+# report to the dev, but you all are dicks who drove him out. Fuck you all. -+find_package(SDL2 2.26.4 REQUIRED) - - if (UNIX AND NOT APPLE AND NOT ANDROID) - find_package(PkgConfig REQUIRED) diff --git a/provision/pkgs/yuzu/default.nix b/provision/pkgs/yuzu/default.nix deleted file mode 100644 index 2645484b..00000000 --- a/provision/pkgs/yuzu/default.nix +++ /dev/null @@ -1,217 +0,0 @@ -{ lib -, stdenv -, fetchFromGitea -, nix-update-script -, wrapQtAppsHook -, autoconf -, boost -, catch2_3 -, cmake -, cpp-jwt -, cubeb -, discord-rpc -, enet -, fmt -, glslang -, libopus -, libusb1 -, libva -, lz4 -, nlohmann_json -, nv-codec-headers-12 -, pkg-config -, qtbase -, qtmultimedia -, qttools -, qtwayland -, qtwebengine -, SDL2 -, vulkan-headers -, vulkan-loader -, yasm -, zlib -, zstd -, fetchzip -, fetchgit -, runCommand -, gnutar -, nx_tzdb -}: - -let - suyu = fetchFromGitea { - domain = "git.suyu.dev"; - owner = "suyu"; - repo = "suyu"; - rev = "ee365bad9501c73ff49936e72ec91cd9c3ce5c24"; - hash = "sha256-vw9VcSbCaG4MS0PL/fJ73CDALLbd3n0CBT7gkyp5hRc="; - fetchSubmodules = true; - }; -in -stdenv.mkDerivation(finalAttrs: { - - pname = "yuzu"; - version = "4176"; - - src = fetchFromGitea { - domain = "git.tstarr.us"; - owner = "tstarr"; - repo = "yuzu-mainline"; - rev = "d3a974b64679229e77a3af921994dab82d092249"; - hash = "sha256-sn/CfaZkS3noDH9lmEtIES6Xc7aoZ5tbHo1AJc5nxac="; - fetchSubmodules = true; - }; - - patches = [ - ./remove_agx.patch - ]; - - nativeBuildInputs = [ - cmake - glslang - pkg-config - qttools - wrapQtAppsHook - ]; - - buildInputs = [ - # vulkan-headers must come first, so the older propagated versions - # don't get picked up by accident - vulkan-headers - - boost - catch2_3 - cpp-jwt - cubeb - discord-rpc - # intentionally omitted: dynarmic - prefer vendored version for compatibility - enet - - # vendored ffmpeg deps - autoconf - yasm - libva # for accelerated video decode on non-nvidia - nv-codec-headers-12 # for accelerated video decode on nvidia - # end vendored ffmpeg deps - - fmt - # intentionally omitted: gamemode - loaded dynamically at runtime - # intentionally omitted: httplib - upstream requires an older version than what we have - libopus - libusb1 - # intentionally omitted: LLVM - heavy, only used for stack traces in the debugger - lz4 - nlohmann_json - qtbase - qtmultimedia - qtwayland - qtwebengine - # intentionally omitted: renderdoc - heavy, developer only - SDL2 - # not packaged in nixpkgs: simpleini - # intentionally omitted: stb - header only libraries, vendor uses git snapshot - # not packaged in nixpkgs: vulkan-memory-allocator - # intentionally omitted: xbyak - prefer vendored version for compatibility - zlib - zstd - ]; - - # This changes `ir/opt` to `ir/var/empty` in `externals/dynarmic/src/dynarmic/CMakeLists.txt` - # making the build fail, as that path does not exist - dontFixCmake = true; - - cmakeFlags = [ - # actually has a noticeable performance impact - "-DYUZU_ENABLE_LTO=ON" - - # build with qt6 - "-DENABLE_QT6=ON" - "-DENABLE_QT_TRANSLATION=ON" - - # use system libraries - # NB: "external" here means "from the externals/ directory in the source", - # so "off" means "use system" - "-DYUZU_USE_EXTERNAL_SDL2=OFF" - "-DYUZU_USE_EXTERNAL_VULKAN_HEADERS=OFF" - - # don't use system ffmpeg, yuzu uses internal APIs - "-DYUZU_USE_BUNDLED_FFMPEG=ON" - - # don't check for missing submodules - "-DYUZU_CHECK_SUBMODULES=OFF" - - # enable some optional features - "-DYUZU_USE_QT_WEB_ENGINE=ON" - "-DYUZU_USE_QT_MULTIMEDIA=ON" - "-DUSE_DISCORD_PRESENCE=ON" - - # We dont want to bother upstream with potentially outdated compat reports - "-DYUZU_ENABLE_COMPATIBILITY_REPORTING=OFF" - "-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF" # We provide this deterministically - ]; - - # Does some handrolled SIMD - env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isx86_64 "-msse4.1"; - - # Fixes vulkan detection. - # FIXME: patchelf --add-rpath corrupts the binary for some reason, investigate - qtWrapperArgs = [ - "--prefix LD_LIBRARY_PATH : ${vulkan-loader}/lib" - ]; - - prePatch = '' - # Copy suyu externals - rm -R externals/ - cp -R ${suyu}/externals . - - # replace "SUYU" with "YUZU" in externals cmake args - chmod u+rw -R externals/ - grep -rl SUYU | xargs sed -i 's/SUYU/YUZU/g' - - ''; - - preConfigure = '' - # see https://github.com/NixOS/nixpkgs/issues/114044, setting this through cmakeFlags does not work. - cmakeFlagsArray+=( - "-DTITLE_BAR_FORMAT_IDLE=${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) {}" - "-DTITLE_BAR_FORMAT_RUNNING=${finalAttrs.pname} | ${finalAttrs.version} (nixpkgs) | {}" - ) - - # provide pre-downloaded tz data - mkdir -p build/externals/nx_tzdb - ln -s ${nx_tzdb} build/externals/nx_tzdb/nx_tzdb - ''; - - postInstall = '' - install -Dm444 $src/dist/72-yuzu-input.rules $out/lib/udev/rules.d/72-yuzu-input.rules - ''; - - passthru.updateScript = nix-update-script { - extraArgs = [ "--version-regex" "mainline-0-(.*)" ]; - }; - - meta = with lib; { - homepage = "https://yuzu-emu.org"; - changelog = "https://yuzu-emu.org/entry"; - description = "An experimental Nintendo Switch emulator written in C++"; - longDescription = '' - An experimental Nintendo Switch emulator written in C++. - Using the mainline branch is recommended for general usage. - Using the early-access branch is recommended if you would like to try out experimental features, with a cost of stability. - ''; - mainProgram = "yuzu"; - platforms = [ "aarch64-linux" "x86_64-linux" ]; - license = with licenses; [ - gpl3Plus - # Icons - asl20 mit cc0 - ]; - maintainers = with maintainers; [ - ashley - ivar - joshuafern - sbruder - k900 - ]; - }; -}) diff --git a/provision/pkgs/yuzu/remove_agx.patch b/provision/pkgs/yuzu/remove_agx.patch deleted file mode 100644 index e6c5f535..00000000 --- a/provision/pkgs/yuzu/remove_agx.patch +++ /dev/null @@ -1,16 +0,0 @@ -Submodule externals/Vulkan-Utility-Libraries contains modified content -diff --git a/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h b/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h -index 9d2af46..bb490ac 100644 ---- a/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h -+++ b/externals/Vulkan-Utility-Libraries/include/vulkan/vk_enum_string_helper.h -@@ -3478,8 +3478,8 @@ static inline const char* string_VkDriverId(VkDriverId input_value) { - return "VK_DRIVER_ID_MESA_NVK"; - case VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA: - return "VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA"; -- case VK_DRIVER_ID_MESA_AGXV: -- return "VK_DRIVER_ID_MESA_AGXV"; -+ //case VK_DRIVER_ID_MESA_AGXV: -+ // return "VK_DRIVER_ID_MESA_AGXV"; - default: - return "Unhandled VkDriverId"; - }