diff --git a/pkgs/applications/emulators/citra/default.nix b/pkgs/applications/emulators/citra/default.nix deleted file mode 100644 index a4e4578632ae..000000000000 --- a/pkgs/applications/emulators/citra/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ branch -, qt6Packages -, fetchFromGitHub -, fetchurl -}: - -let - # Fetched from https://api.citra-emu.org/gamedb - # Please make sure to update this when updating citra! - compat-list = fetchurl { - name = "citra-compat-list"; - url = "https://web.archive.org/web/20231111133415/https://api.citra-emu.org/gamedb"; - hash = "sha256-J+zqtWde5NgK2QROvGewtXGRAWUTNSKHNMG6iu9m1fU="; - }; -in { - nightly = qt6Packages.callPackage ./generic.nix rec { - pname = "citra-nightly"; - version = "2088"; - - src = fetchFromGitHub { - owner = "citra-emu"; - repo = "citra-nightly"; - rev = "nightly-${version}"; - sha256 = "0l9w4i0zbafcv2s6pd1zqb11vh0i7gzwbqnzlz9al6ihwbsgbj3k"; - fetchSubmodules = true; - }; - - inherit branch compat-list; - }; - - canary = qt6Packages.callPackage ./generic.nix rec { - pname = "citra-canary"; - version = "2766"; - - src = fetchFromGitHub { - owner = "citra-emu"; - repo = "citra-canary"; - rev = "canary-${version}"; - sha256 = "1gm3ajphpzwhm3qnchsx77jyl51za8yw3r0j0h8idf9y1ilcjvi4"; - fetchSubmodules = true; - }; - - inherit branch compat-list; - }; -}.${branch} diff --git a/pkgs/applications/emulators/citra/generic.nix b/pkgs/applications/emulators/citra/generic.nix deleted file mode 100644 index d247a181e07c..000000000000 --- a/pkgs/applications/emulators/citra/generic.nix +++ /dev/null @@ -1,149 +0,0 @@ -{ pname -, version -, src -, branch -, compat-list - -, lib -, stdenv -, cmake -, boost -, pkg-config -, catch2_3 -, cpp-jwt -, cryptopp -, enet -, ffmpeg -, fmt -, gamemode -, glslang -, httplib -, inih -, libusb1 -, nlohmann_json -, openal -, openssl -, SDL2 -, soundtouch -, spirv-tools -, zstd -, vulkan-headers -, vulkan-loader -, enableSdl2Frontend ? true -, enableQt ? true, qtbase, qtmultimedia, qtwayland, wrapQtAppsHook -, enableQtTranslation ? enableQt, qttools -, enableWebService ? true -, enableCubeb ? true, cubeb -, useDiscordRichPresence ? false, rapidjson -}: -stdenv.mkDerivation { - inherit pname version src; - - nativeBuildInputs = [ - cmake - pkg-config - ffmpeg - glslang - ] ++ lib.optionals enableQt [ wrapQtAppsHook ]; - - buildInputs = [ - boost - catch2_3 - cpp-jwt - cryptopp - # intentionally omitted: dynarmic - prefer vendored version for compatibility - enet - fmt - httplib - inih - libusb1 - nlohmann_json - openal - openssl - SDL2 - soundtouch - spirv-tools - vulkan-headers - # intentionally omitted: xbyak - prefer vendored version for compatibility - zstd - ] ++ lib.optionals enableQt [ qtbase qtmultimedia qtwayland ] - ++ lib.optional enableQtTranslation qttools - ++ lib.optional enableCubeb cubeb - ++ lib.optional useDiscordRichPresence rapidjson; - - cmakeFlags = [ - (lib.cmakeBool "USE_SYSTEM_LIBS" true) - - (lib.cmakeBool "DISABLE_SYSTEM_DYNARMIC" true) - (lib.cmakeBool "DISABLE_SYSTEM_GLSLANG" true) # The following imported targets are referenced, but are missing: SPIRV-Tools-opt - (lib.cmakeBool "DISABLE_SYSTEM_LODEPNG" true) # Not packaged in nixpkgs - (lib.cmakeBool "DISABLE_SYSTEM_VMA" true) - (lib.cmakeBool "DISABLE_SYSTEM_XBYAK" true) - - # We don't want to bother upstream with potentially outdated compat reports - (lib.cmakeBool "CITRA_ENABLE_COMPATIBILITY_REPORTING" true) - (lib.cmakeBool "ENABLE_COMPATIBILITY_LIST_DOWNLOAD" false) # We provide this deterministically - - (lib.cmakeBool "ENABLE_SDL2_FRONTEND" enableSdl2Frontend) - (lib.cmakeBool "ENABLE_QT" enableQt) - (lib.cmakeBool "ENABLE_QT_TRANSLATION" enableQtTranslation) - (lib.cmakeBool "ENABLE_WEB_SERVICE" enableWebService) - (lib.cmakeBool "ENABLE_CUBEB" enableCubeb) - (lib.cmakeBool "USE_DISCORD_PRESENCE" useDiscordRichPresence) - ]; - - # causes redefinition of _FORTIFY_SOURCE - hardeningDisable = [ "fortify3" ]; - - postPatch = let - branchCaptialized = (lib.toUpper (lib.substring 0 1 branch) + lib.substring 1 (-1) branch); - in '' - # Fix file not found when looking in var/empty instead of opt - mkdir externals/dynarmic/src/dynarmic/ir/var - ln -s ../opt externals/dynarmic/src/dynarmic/ir/var/empty - - # Prep compatibilitylist - ln -s ${compat-list} ./dist/compatibility_list/compatibility_list.json - - # We already know the submodules are present - substituteInPlace CMakeLists.txt \ - --replace "check_submodules_present()" "" - - # Add versions - echo 'set(BUILD_FULLNAME "${branchCaptialized} ${version}")' >> CMakeModules/GenerateBuildInfo.cmake - - # Add gamemode - substituteInPlace externals/gamemode/include/gamemode_client.h --replace "libgamemode.so.0" "${lib.getLib gamemode}/lib/libgamemode.so.0" - ''; - - postInstall = let - libs = lib.makeLibraryPath [ vulkan-loader ]; - in lib.optionalString enableSdl2Frontend '' - wrapProgram "$out/bin/citra" \ - --prefix LD_LIBRARY_PATH : ${libs} - '' + lib.optionalString enableQt '' - qtWrapperArgs+=( - --prefix LD_LIBRARY_PATH : ${libs} - ) - ''; - - meta = with lib; { - broken = (stdenv.isLinux && stdenv.isAarch64); - homepage = "https://citra-emu.org"; - description = "The ${branch} branch of an open-source emulator for the Nintendo 3DS"; - longDescription = '' - A Nintendo 3DS Emulator written in C++ - Using the nightly branch is recommended for general usage. - Using the canary branch is recommended if you would like to try out - experimental features, with a cost of stability. - ''; - mainProgram = if enableQt then "citra-qt" else "citra"; - platforms = platforms.linux; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ - abbradar - ashley - ivar - ]; - }; -} diff --git a/pkgs/applications/emulators/citra/update.sh b/pkgs/applications/emulators/citra/update.sh deleted file mode 100755 index e76121dac6ee..000000000000 --- a/pkgs/applications/emulators/citra/update.sh +++ /dev/null @@ -1,84 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i bash -p nix nix-prefetch-git coreutils curl jq gnused - -set -euo pipefail - -# Will be replaced with the actual branch when running this from passthru.updateScript -BRANCH="@branch@" - -if [[ ! "$(basename $PWD)" = "citra" ]]; then - echo "error: Script must be ran from citra's directory!" - exit 1 -fi - -getLocalVersion() { - pushd ../../../.. >/dev/null - nix eval --raw -f default.nix "$1".version - popd >/dev/null -} - -getLocalHash() { - pushd ../../../.. >/dev/null - nix eval --raw -f default.nix "$1".src.drvAttrs.outputHash - popd >/dev/null -} - -updateNightly() { - OLD_NIGHTLY_VERSION="$(getLocalVersion "citra-nightly")" - OLD_NIGHTLY_HASH="$(getLocalHash "citra-nightly")" - - NEW_NIGHTLY_VERSION="$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \ - "https://api.github.com/repos/citra-emu/citra-nightly/releases?per_page=1" | jq -r '.[0].name' | cut -d"-" -f2 | cut -d" " -f2)" - - if [[ "${OLD_NIGHTLY_VERSION}" = "${NEW_NIGHTLY_VERSION}" ]]; then - echo "citra-nightly is already up to date!" - - [ "$KEEP_GOING" ] && return || exit - else - echo "citra-nightly: ${OLD_NIGHTLY_VERSION} -> ${NEW_NIGHTLY_VERSION}" - fi - - echo " Fetching source code..." - - NEW_NIGHTLY_HASH="$(nix-prefetch-git --quiet --fetch-submodules --rev "nightly-${NEW_NIGHTLY_VERSION}" "https://github.com/citra-emu/citra-nightly" | jq -r '.sha256')" - - echo " Successfully fetched. hash: ${NEW_NIGHTLY_HASH}" - - sed -i "s|${OLD_NIGHTLY_VERSION}|${NEW_NIGHTLY_VERSION}|" ./default.nix - sed -i "s|${OLD_NIGHTLY_HASH}|${NEW_NIGHTLY_HASH}|" ./default.nix -} - -updateCanary() { - OLD_CANARY_VERSION="$(getLocalVersion "citra-canary")" - OLD_CANARY_HASH="$(getLocalHash "citra-canary")" - - NEW_CANARY_VERSION="$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \ - "https://api.github.com/repos/citra-emu/citra-canary/releases?per_page=1" | jq -r '.[0].name' | cut -d"-" -f2 | cut -d" " -f1)" - - if [[ "${OLD_CANARY_VERSION}" = "${NEW_CANARY_VERSION}" ]]; then - echo "citra-canary is already up to date!" - - [ "$KEEP_GOING" ] && return || exit - else - echo "citra-canary: ${OLD_CANARY_VERSION} -> ${NEW_CANARY_VERSION}" - fi - - echo " Fetching source code..." - - NEW_CANARY_HASH="$(nix-prefetch-git --quiet --fetch-submodules --rev "canary-${NEW_CANARY_VERSION}" "https://github.com/citra-emu/citra-canary" | jq -r '.sha256')" - - echo " Successfully fetched. hash: ${NEW_CANARY_HASH}" - - sed -i "s|${OLD_CANARY_VERSION}|${NEW_CANARY_VERSION}|" ./default.nix - sed -i "s|${OLD_CANARY_HASH}|${NEW_CANARY_HASH}|" ./default.nix -} - -if [[ "$BRANCH" = "nightly" ]]; then - updateNightly -elif [[ "$BRANCH" = "early-access" ]]; then - updateCanary -else - KEEP_GOING=1 - updateNightly - updateCanary -fi diff --git a/pkgs/applications/emulators/yuzu/compat-list.nix b/pkgs/applications/emulators/yuzu/compat-list.nix deleted file mode 100644 index 79b56948aeab..000000000000 --- a/pkgs/applications/emulators/yuzu/compat-list.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ stdenv, fetchFromGitHub, unstableGitUpdater }: -stdenv.mkDerivation { - pname = "yuzu-compatibility-list"; - version = "unstable-2024-02-26"; - - src = fetchFromGitHub { - owner = "flathub"; - repo = "org.yuzu_emu.yuzu"; - rev = "9c2032a3c7e64772a8112b77ed8b660242172068"; - hash = "sha256-ITh/W4vfC9w9t+TJnPeTZwWifnhTNKX54JSSdpgaoBk="; - }; - - buildCommand = '' - cp $src/compatibility_list.json $out - ''; - - passthru.updateScript = unstableGitUpdater {}; -} diff --git a/pkgs/applications/emulators/yuzu/default.nix b/pkgs/applications/emulators/yuzu/default.nix deleted file mode 100644 index 6852da378650..000000000000 --- a/pkgs/applications/emulators/yuzu/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ qt6Packages, makeScopeWithSplicing', generateSplicesForMkScope }: - -makeScopeWithSplicing' { - otherSplices = generateSplicesForMkScope "yuzuPackages"; - f = self: qt6Packages // { - compat-list = self.callPackage ./compat-list.nix {}; - nx_tzdb = self.callPackage ./nx_tzdb.nix {}; - - mainline = self.callPackage ./mainline.nix {}; - early-access = self.callPackage ./early-access {}; - }; -} diff --git a/pkgs/applications/emulators/yuzu/early-access/default.nix b/pkgs/applications/emulators/yuzu/early-access/default.nix deleted file mode 100644 index f2ad5197d0bb..000000000000 --- a/pkgs/applications/emulators/yuzu/early-access/default.nix +++ /dev/null @@ -1,37 +0,0 @@ -{ mainline, fetchzip, fetchgit, runCommand, gnutar }: -# The mirror repo for early access builds is missing submodule info, -# but the Windows distributions include a source tarball, which in turn -# includes the full git metadata. So, grab that and rehydrate it. -# This has the unfortunate side effect of requiring two FODs, one -# for the Windows download and one for the full repo with submodules. -let - sources = import ./sources.nix; - - zip = fetchzip { - name = "yuzu-ea-windows-dist"; - url = "https://github.com/pineappleEA/pineapple-src/releases/download/EA-${sources.version}/Windows-Yuzu-EA-${sources.version}.zip"; - hash = sources.distHash; - }; - - gitSrc = runCommand "yuzu-ea-dist-unpacked" { - src = zip; - nativeBuildInputs = [ gnutar ]; - } - '' - mkdir $out - tar xf $src/*.tar.xz --directory=$out --strip-components=1 - ''; - - rehydratedSrc = fetchgit { - name = "yuzu-ea-rehydrated"; - url = gitSrc; - fetchSubmodules = true; - hash = sources.fullHash; - }; -in mainline.overrideAttrs(old: { - pname = "yuzu-early-access"; - version = sources.version; - src = rehydratedSrc; - passthru.updateScript = ./update.sh; - meta = old.meta // { description = old.meta.description + " - early access branch"; }; -}) diff --git a/pkgs/applications/emulators/yuzu/early-access/sources.nix b/pkgs/applications/emulators/yuzu/early-access/sources.nix deleted file mode 100644 index c7653444a2e5..000000000000 --- a/pkgs/applications/emulators/yuzu/early-access/sources.nix +++ /dev/null @@ -1,7 +0,0 @@ -# Generated by ./update.sh - do not update manually! -# Last updated: 2024-02-27 -{ - version = "4174"; - distHash = "sha256:1hzwfsm4m2q29a2ihipk0ij0qakn4730283d6gwbrgr8lzmj8q49"; - fullHash = "sha256:1ayn7y595iz4smbxq10jjgip04ss35v4vrn8pa1mpnrmyikv79l9"; -} diff --git a/pkgs/applications/emulators/yuzu/early-access/update.sh b/pkgs/applications/emulators/yuzu/early-access/update.sh deleted file mode 100755 index f7ea2ca34a41..000000000000 --- a/pkgs/applications/emulators/yuzu/early-access/update.sh +++ /dev/null @@ -1,44 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i bash -p nix nix-prefetch-git gnutar curl jq unzip - -set -euo pipefail - -cd "$(dirname "$(readlink -f "$0")")" - -log() { - tput bold - echo "#" "$@" - tput sgr0 -} - -oldVersion="$(nix --experimental-features nix-command eval -f sources.nix --raw version)" -newVersion="$(curl "https://api.github.com/repos/pineappleEA/pineapple-src/releases?per_page=1" | jq -r '.[0].tag_name' | cut -d"-" -f2)" - -if [ "$oldVersion" == "$newVersion" ]; then - log "Already up to date" - exit 0 -fi - -fetched="$(nix-prefetch-url --unpack --print-path "https://github.com/pineappleEA/pineapple-src/releases/download/EA-${newVersion}/Windows-Yuzu-EA-${newVersion}.zip")" - -eaDistHash="$(echo "${fetched}" | head -n1)" -eaDist="$(echo "${fetched}" | tail -n1)" - -eaDistUnpacked="$(mktemp -d)" -trap 'rm -rf "$eaDistUnpacked"' EXIT - -log "Unpacking dist..." -tar xf "$eaDist"/*.tar.xz --directory="$eaDistUnpacked" --strip-components=1 - -log "Rehydrating..." -eaFullHash="$(nix-prefetch-git --fetch-submodules --quiet "$eaDistUnpacked" | jq -r '.sha256')" - -cat >sources.nix <