about summary refs log tree commit diff
path: root/pkgs/by-name/we/wechat-uos/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/we/wechat-uos/package.nix')
-rw-r--r--pkgs/by-name/we/wechat-uos/package.nix35
1 files changed, 27 insertions, 8 deletions
diff --git a/pkgs/by-name/we/wechat-uos/package.nix b/pkgs/by-name/we/wechat-uos/package.nix
index 7a8f806426ce0..0fd6dbd8ea0ba 100644
--- a/pkgs/by-name/we/wechat-uos/package.nix
+++ b/pkgs/by-name/we/wechat-uos/package.nix
@@ -60,11 +60,7 @@
       └── uos
           └── .license.key
   */
-  uosLicense ? requireFile {
-    name = "license.tar.gz";
-    url = "https://www.uniontech.com";
-    sha256 = "53760079c1a5b58f2fa3d5effe1ed35239590b288841d812229ef4e55b2dbd69";
-  }
+  uosLicense ? null
 }:
 let
   wechat-uos-env = stdenvNoCC.mkDerivation {
@@ -87,6 +83,30 @@ let
     preferLocalBuild = true;
   };
 
+  uosLicenseUnzipped = stdenvNoCC.mkDerivation {
+    name = "uos-license-unzipped";
+    src =
+      if uosLicense == null then
+        requireFile
+          {
+            name = "license.tar.gz";
+            url = "https://www.uniontech.com";
+            sha256 = "53760079c1a5b58f2fa3d5effe1ed35239590b288841d812229ef4e55b2dbd69";
+          } else uosLicense;
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out
+      cp -r * $out/
+
+      runHook postInstall
+    '';
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    outputHash = "sha256-pNftwtUZqBsKBSPQsEWlYLlb6h2Xd9j56ZRMi8I82ME=";
+  };
+
   wechat-uos-runtime = with xorg; [
     stdenv.cc.cc
     stdenv.cc.libc
@@ -195,11 +215,10 @@ let
         dpkg -x $src ./wechat-uos
         dpkg -x $uosSrc ./wechat-uos-old-source
 
-        tar -xvf $uosLicense
-
         runHook postUnpack
       '';
 
+      # Use ln for license to prevent being garbage collection
       installPhase = ''
         runHook preInstall
         mkdir -p $out
@@ -207,7 +226,7 @@ let
         cp -r wechat-uos/* $out
 
         mkdir -pv $out/usr/lib/wechat-uos/license
-        cp -r license/* $out/usr/lib/wechat-uos/license
+        ln -s ${uosLicenseUnzipped}/* $out/usr/lib/wechat-uos/license/
         cp -r wechat-uos-old-source/usr/lib/license/libuosdevicea.so $out/usr/lib/wechat-uos/license/
 
         runHook postInstall