Merge pull request #305929 from Cryolitia/wechat

wehat-uos: link license to prevent being garbage collected
This commit is contained in:
Aleksana 2024-04-24 02:30:48 +08:00 committed by GitHub
commit 76e6d8b1a8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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