biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / applications / networking / instant-messengers / qq / default.nix
blobd0a7bbf2a1a9990786baafb8ad9a39145aafe8ae
1 { alsa-lib
2 , cups
3 , dpkg
4 , fetchurl
5 , glib
6 , gtk3
7 , lib
8 , libayatana-appindicator
9 , libdrm
10 , libgcrypt
11 , libkrb5
12 , libnotify
13 , mesa # for libgbm
14 , libGL
15 , nss
16 , xorg
17 , systemd
18 , stdenv
19 , vips
20 , at-spi2-core
21 , autoPatchelfHook
22 , makeShellWrapper
23 , wrapGAppsHook
24 , commandLineArgs ? ""
27 let
28   sources = import ./sources.nix;
29   srcs = {
30     x86_64-linux = fetchurl {
31       url = "https://dldir1.qq.com/qqfile/qq/QQNT/${sources.urlhash}/linuxqq_${sources.version}_amd64.deb";
32       hash = sources.amd64_hash;
33     };
34     aarch64-linux = fetchurl {
35       url = "https://dldir1.qq.com/qqfile/qq/QQNT/${sources.urlhash}/linuxqq_${sources.version}_arm64.deb";
36       hash = sources.arm64_hash;
37     };
38   };
39   src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
41 stdenv.mkDerivation {
42   pname = "qq";
43   version = sources.version;
44   inherit src;
46   nativeBuildInputs = [
47     autoPatchelfHook
48     makeShellWrapper
49     wrapGAppsHook
50     dpkg
51   ];
53   buildInputs = [
54     alsa-lib
55     at-spi2-core
56     cups
57     glib
58     gtk3
59     libdrm
60     libgcrypt
61     libkrb5
62     mesa
63     nss
64     vips
65     xorg.libXdamage
66   ];
68   dontWrapGApps = true;
70   runtimeDependencies = map lib.getLib [
71     systemd
72   ];
74   installPhase = ''
75     runHook preInstall
77     mkdir -p $out/bin
78     cp -r opt $out/opt
79     cp -r usr/share $out/share
80     substituteInPlace $out/share/applications/qq.desktop \
81       --replace "/opt/QQ/qq" "$out/bin/qq" \
82       --replace "/usr/share" "$out/share"
83     makeShellWrapper $out/opt/QQ/qq $out/bin/qq \
84       --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
85       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libGL ]}" \
86       --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
87       --add-flags ${lib.escapeShellArg commandLineArgs} \
88       "''${gappsWrapperArgs[@]}"
90     # Remove bundled libraries
91     rm -r $out/opt/QQ/resources/app/sharp-lib
93     # https://aur.archlinux.org/cgit/aur.git/commit/?h=linuxqq&id=f7644776ee62fa20e5eb30d0b1ba832513c77793
94     rm -r $out/opt/QQ/resources/app/libssh2.so.1
96     # https://github.com/microcai/gentoo-zh/commit/06ad5e702327adfe5604c276635ae8a373f7d29e
97     ln -s ${libayatana-appindicator}/lib/libayatana-appindicator3.so \
98       $out/opt/QQ/libappindicator3.so
100     ln -s ${libnotify}/lib/libnotify.so \
101       $out/opt/QQ/libnotify.so
103     runHook postInstall
104   '';
106   passthru.updateScript = ./update.sh;
108   meta = with lib; {
109     homepage = "https://im.qq.com/linuxqq/";
110     description = "Messaging app";
111     platforms = [ "x86_64-linux" "aarch64-linux" ];
112     license = licenses.unfree;
113     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
114     maintainers = with lib.maintainers; [ fee1-dead ];
115   };