about summary refs log tree commit diff
path: root/pkgs/applications/networking/instant-messengers/qq/default.nix
diff options
context:
space:
mode:
authorDeadbeef <ent3rm4n@gmail.com>2022-12-28 17:36:26 +0800
committerDeadbeef <ent3rm4n@gmail.com>2022-12-29 23:03:14 +0800
commit354f6e9b7c4d484ffc96b2541320968955f0c475 (patch)
tree3bbe59ee465d004be2942aefd41d82b458f4eb1e /pkgs/applications/networking/instant-messengers/qq/default.nix
parentba6ba2b90096dc49f448aa4d4d783b5081b1cc87 (diff)
qq: init at 2.0.3-543
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/qq/default.nix')
-rw-r--r--pkgs/applications/networking/instant-messengers/qq/default.nix100
1 files changed, 100 insertions, 0 deletions
diff --git a/pkgs/applications/networking/instant-messengers/qq/default.nix b/pkgs/applications/networking/instant-messengers/qq/default.nix
new file mode 100644
index 0000000000000..6d1a2696a4c99
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/qq/default.nix
@@ -0,0 +1,100 @@
+{ alsa-lib
+, cups
+, dpkg
+, fetchurl
+, gjs
+, glib
+, gtk3
+, lib
+, libdrm
+, libgcrypt
+, libkrb5
+, mesa # for libgbm
+, nss
+, xorg
+, systemd
+, stdenv
+, at-spi2-core
+, autoPatchelfHook
+, wrapGAppsHook
+, copyDesktopItems
+, makeDesktopItem
+}:
+
+let
+  version = "2.0.3-543";
+  srcs = {
+    x86_64-linux = fetchurl {
+      url = "https://dldir1.qq.com/qqfile/qq/QQNT/50eed662/QQ-v${version}_x64.deb";
+      sha256 = "sha256-O8zaVHt/oXserPVHe/r6pAFpWFeLDVsiaazgaX7kxu8=";
+    };
+    aarch64-linux = fetchurl {
+      url = "https://dldir1.qq.com/qqfile/qq/QQNT/50eed662/QQ-v${version}_arm64.deb";
+      sha256 = "sha256-01ZpcoSDc5b0MCKAMq16N4cXzbouHNckOGsv+Z4et7w=";
+    };
+  };
+  src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+in
+stdenv.mkDerivation {
+  pname = "qq";
+  inherit version src;
+
+  unpackCmd = "dpkg-deb -x $curSrc source";
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    wrapGAppsHook
+    copyDesktopItems
+    dpkg
+  ];
+
+  buildInputs = [
+    alsa-lib
+    at-spi2-core
+    cups
+    libdrm
+    libgcrypt
+    libkrb5
+    mesa
+    nss
+    xorg.libXdamage
+  ];
+
+  runtimeDependencies = [
+    gtk3
+    (lib.getLib systemd)
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p "$out/share/icons/hicolor/0x0/apps"
+    cp usr/share/icons/hicolor/0x0/apps/qq.png $out/share/icons/hicolor/0x0/apps
+
+    mkdir -p "$out/opt"
+    cp -r "opt/"* $out/opt
+
+    mkdir -p "$out/bin"
+    ln -s "$out/opt/QQ/qq" "$out/bin/qq"
+    runHook postInstall
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      desktopName = "Tencent QQ";
+      genericName = "A messaging app";
+      categories = [ "Network" ];
+      icon = "qq";
+      exec = "qq";
+      name = "qq";
+    })
+  ];
+
+  meta = with lib; {
+    homepage = "https://im.qq.com/linuxqq/";
+    description = "Messaging app";
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
+    license = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    maintainers = with lib.maintainers; [ fee1-dead ];
+  };
+}