Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dependency umu-launcher is unproporionally large and is likely to time out when fetched #204

Open
Sntx626 opened this issue Sep 29, 2024 · 1 comment

Comments

@Sntx626
Copy link

Sntx626 commented Sep 29, 2024

This is the error I get when trying to run nix flake update in my system configuration.

[7.0 MiB DL] fetching Git repository 'https://github.com/Open-Wine-Components/umu-launcher/'error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)
error: 7586 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
error:
       … while updating the lock file of flake 'git+file:///home/sntx/Documents/projects/2024-04-02_hive'

       … while updating the flake input 'nix-gaming'

       … while updating the flake input 'nix-gaming/umu'

       … while fetching the input 'git+https://github.com/Open-Wine-Components/umu-launcher/'

       error: program 'git' failed with exit code 128

I recognise this is likely an upstream issue, but wanted to raise awareness here first.

Would it be feasable to pin umu-launcher to a specific commit to avoid redownloading it on nix flake update?

@fufexan
Copy link
Owner

fufexan commented Oct 5, 2024

From what I've noticed while testing, having an unreliable connection causes git to fail the download.

Here's what I've come up with: using npins to track the repo, and hackily importing the flake (could be done with flake-compat instead) to get the package. Though this suffers from the same problem, at least it's deferred to wherever umu is needed.

umu.diff
diff --git a/flake.lock b/flake.lock
index 63c3198..8edb4ae 100644
--- a/flake.lock
+++ b/flake.lock
@@ -49,32 +49,7 @@
     "root": {
       "inputs": {
         "flake-parts": "flake-parts",
-        "nixpkgs": "nixpkgs",
-        "umu": "umu"
-      }
-    },
-    "umu": {
-      "inputs": {
-        "nixpkgs": [
-          "nixpkgs"
-        ]
-      },
-      "locked": {
-        "dir": "packaging/nix",
-        "lastModified": 1727227288,
-        "narHash": "sha256-82fIhNN93zk0vmc5rltsbYJlD96AHzEFY2q1KizLP0A=",
-        "ref": "refs/heads/main",
-        "rev": "5cc1c3f23e2ecc9e03267c097e990d1702416852",
-        "revCount": 730,
-        "submodules": true,
-        "type": "git",
-        "url": "https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix"
-      },
-      "original": {
-        "dir": "packaging/nix",
-        "submodules": true,
-        "type": "git",
-        "url": "https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix"
+        "nixpkgs": "nixpkgs"
       }
     }
   },
diff --git a/flake.nix b/flake.nix
index 8529b1d..5b3eecb 100644
--- a/flake.nix
+++ b/flake.nix
@@ -4,10 +4,6 @@
   inputs = {
     nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
     flake-parts.url = "github:hercules-ci/flake-parts";
-    umu = {
-      url = "git+https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging\/nix&submodules=1";
-      inputs.nixpkgs.follows = "nixpkgs";
-    };
   };
 
   outputs = {self, ...} @ inputs:
diff --git a/npins/sources.json b/npins/sources.json
index f8420c4..d7f2c4d 100644
--- a/npins/sources.json
+++ b/npins/sources.json
@@ -117,6 +117,17 @@
       "url": "https://github.com/GloriousEggroll/proton-wine/archive/39021e609a24b6aeffdf9c4695a286d71e7dffbc.tar.gz",
       "hash": "000d5kba7vs5nc1sc3946jkpqmch4w09qz74i5zgc7nh7znck6f8"
     },
+    "umu-launcher": {
+      "type": "Git",
+      "repository": {
+        "type": "Git",
+        "url": "https://github.com/open-wine-components/umu-launcher"
+      },
+      "branch": "main",
+      "revision": "5cc1c3f23e2ecc9e03267c097e990d1702416852",
+      "url": null,
+      "hash": "0xy0iybrk2avxhij0mm7w0sjwyszhisjphkl13xdl2jvvivfzksm"
+    },
     "vkd3d-proton": {
       "type": "GitRelease",
       "repository": {
diff --git a/pkgs/default.nix b/pkgs/default.nix
index cb5fbbd..9afe12e 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -31,8 +31,14 @@
           }
           // extra))
         .${wine};
+
+      umu-src = import "${pins.umu-launcher}/packaging/nix/flake.nix";
+      umu-flake = umu-src.outputs {
+        self = umu-flake;
+        inherit (inputs) nixpkgs;
+      };
     in {
-      inherit (inputs.umu.packages.${system}) umu;
+      inherit (umu-flake.packages.${system}) umu;
       dxvk = pkgs.callPackage ./dxvk {inherit pins;};
       dxvk-w32 = pkgs.pkgsCross.mingw32.callPackage ./dxvk {inherit pins;};
       dxvk-w64 = pkgs.pkgsCross.mingwW64.callPackage ./dxvk {inherit pins;};

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants