From 3996cfcc77d952a42705a64d25725f1a041cedf5 Mon Sep 17 00:00:00 2001 From: Cryolitia PukNgae Date: Thu, 12 Sep 2024 21:24:24 +0800 Subject: [PATCH] wechat-uos: use libuosdevicea stub to get rid of openssl_1_1 --- pkgs/by-name/we/wechat-uos/libuosdevicea.c | 44 +++++++++++++++++ pkgs/by-name/we/wechat-uos/package.nix | 55 ++++++++++++++-------- 2 files changed, 79 insertions(+), 20 deletions(-) create mode 100644 pkgs/by-name/we/wechat-uos/libuosdevicea.c diff --git a/pkgs/by-name/we/wechat-uos/libuosdevicea.c b/pkgs/by-name/we/wechat-uos/libuosdevicea.c new file mode 100644 index 000000000000..0cdc0cecde7d --- /dev/null +++ b/pkgs/by-name/we/wechat-uos/libuosdevicea.c @@ -0,0 +1,44 @@ +// taken from https://aur.archlinux.org/cgit/aur.git/tree/libuosdevicea.c?h=wechat-universal + +/* + * licensestub - compat layer for libuosdevicea + * Copyright (C) 2024 Zephyr Lykos + * Copyright (C) 2024 Guoxin "7Ji" Pu + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ +#define _GNU_SOURCE + +#include + +#define declare_string_getter(suffix, constant) void uos_get_##suffix(char *const restrict out) { if (out) strcpy(out, constant); } + +declare_string_getter(mac, // MAC address with colon stripped + "000000000000") +declare_string_getter(hddsninfo, + "SN") +declare_string_getter(hwserial, // MD5 of hddsninfo + "92666505ce75444ee14be2ebc2f10a60") +declare_string_getter(mb_sn, // hardcoded + "E50022008800015957007202c59a1a8-3981-2020-0810-204909000000") +declare_string_getter(osver, + "UnionTech OS Desktop") +declare_string_getter(licensetoken, + "djEsdjEsMSwyLDk5QUFFN0FBQVdRQjk5OFhKS0FIU1QyOTQsMTAsOTI2NjY1MDVjZTc1NDQ0ZWUxNGJlMmViYzJmMTBhNjAsQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE6ZjA3NjAwYzZkNmMyMDkyMDBkMzE5YzU2OThmNTc3MGRlYWY1NjAyZTY5MzUxZTczNjI2NjlhNzIyZTBkNTJiOTNhYzk0MmM3YTNkZTgxNjIxMmUwMDA1NTUwODg4N2NlMDQ4ODMyNTExY2JhNGFiMjdmYzlmZjMyYzFiNTYwNjMwZDI3ZDI2NmE5ZGIxZDQ0N2QxYjNlNTNlNTVlOTY1MmU5YTU4OGY0NWYzMTMwZDE0NDc4MTRhM2FmZjRlZGNmYmNkZjhjMmFiMDc5OWYwNGVmYmQ2NjdiNGYwYzEwNDhkYzExNjYwZWU1NTdlNTdmNzBlNjA1N2I0NThkMDgyOA==") + +int uos_is_active() { + return 0; +} diff --git a/pkgs/by-name/we/wechat-uos/package.nix b/pkgs/by-name/we/wechat-uos/package.nix index 959d05c9f10d..ae7899be37c3 100644 --- a/pkgs/by-name/we/wechat-uos/package.nix +++ b/pkgs/by-name/we/wechat-uos/package.nix @@ -19,7 +19,6 @@ , mesa , alsa-lib , wayland -, openssl_1_1 , atk , qt6 , at-spi2-atk @@ -112,6 +111,40 @@ let outputHash = "sha256-pNftwtUZqBsKBSPQsEWlYLlb6h2Xd9j56ZRMi8I82ME="; }; + libuosdevicea = stdenv.mkDerivation rec { + name = "libuosdevicea"; + src = ./libuosdevicea.c; + + unpackPhase = '' + runHook preUnpack + + cp ${src} libuosdevicea.c + + runHook postUnpack + ''; + + buildPhase = '' + runHook preBuild + + $CC -shared -fPIC -o libuosdevicea.so libuosdevicea.c + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib + cp libuosdevicea.so $out/lib/ + + runHook postInstall + ''; + + meta = with lib; { + license = licenses.gpl2Plus; + }; + }; + wechat-uos-runtime = with xorg; [ # Make sure our glibc without hardening gets picked up first (lib.hiPrio glibcWithoutHardening) @@ -173,7 +206,6 @@ let wayland pulseaudio qt6.qt5compat - openssl_1_1 bzip2 ]; @@ -199,22 +231,6 @@ let }; }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported."); - # Don't blame about this. WeChat requires some binary from here to work properly - uosSrc = { - x86_64-linux = fetchurl { - url = "https://pro-store-packages.uniontech.com/appstore/pool/appstore/c/com.tencent.weixin/com.tencent.weixin_2.1.5_amd64.deb"; - hash = "sha256-vVN7w+oPXNTMJ/g1Rpw/AVLIytMXI+gLieNuddyyIYE="; - }; - aarch64-linux = fetchurl { - url = "https://pro-store-packages.uniontech.com/appstore/pool/appstore/c/com.tencent.weixin/com.tencent.weixin_2.1.5_arm64.deb"; - hash = "sha256-XvGFPYJlsYPqRyDycrBGzQdXn/5Da1AJP5LgRVY1pzI="; - }; - loongarch64-linux = fetchurl { - url = "https://pro-store-packages.uniontech.com/appstore/pool/appstore/c/com.tencent.weixin/com.tencent.weixin_2.1.5_loongarch64.deb"; - hash = "sha256-oa6rLE6QXMCPlbebto9Tv7xT3fFqYIlXL6WHpB2U35s="; - }; - }.${stdenv.system} or (throw "${pname}-${version}: ${stdenv.system} is unsupported."); - inherit uosLicense; nativeBuildInputs = [ dpkg ]; @@ -223,7 +239,6 @@ let runHook preUnpack dpkg -x $src ./wechat-uos - dpkg -x $uosSrc ./wechat-uos-old-source runHook postUnpack ''; @@ -237,7 +252,7 @@ let mkdir -pv $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/ + ln -s ${libuosdevicea}/lib/libuosdevicea.so $out/usr/lib/wechat-uos/license/ runHook postInstall '';