git.iko.soy/typeable/nixpkgs
on master help sign in
kotatogram-desktop-with-webkit: init

This allows to get maximum from the dlopen-based code and install webkit dependency only when needed and without rebuilds Tested with https://t.me/ShopBot

commitdc508e7f5af09a01abdb41cdf580cd151ade72f2 authorIlya Fedin <fedin-ilja2010@ya.ru> dateSun 10 Apr 2022, 01:35 (5 years ago) parent54d5bb0
3 files changed+25−21
pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix−21 pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix+23 pkgs/top-level/all-packages.nix+2
pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix−21
@@ -7,7 +7,6 @@
77, ninja
88, clang
99, python3
10−, wrapGAppsHook
1110, wrapQtAppsHook
1211, removeReferencesTo
1312, extra-cmake-modules
@@ -27,7 +26,6 @@
2726, tl-expected
2827, hunspell
2928, glibmm
30−, webkitgtk
3129, jemalloc
3230, rnnoise
3331, abseil-cpp
@@ -65,7 +63,6 @@
6563, IOSurface
6664, Metal
6765, MetalKit
68−, withWebKit ? false
6966}:
7067
7168with lib;
@@ -113,9 +110,6 @@ stdenv.mkDerivation rec {
113110 --replace '"libasound.so.2"' '"${alsa-lib}/lib/libasound.so.2"'
114111 substituteInPlace Telegram/ThirdParty/libtgvoip/os/linux/AudioPulse.cpp \
115112 --replace '"libpulse.so.0"' '"${libpulseaudio}/lib/libpulse.so.0"'
116− '' + optionalString (stdenv.isLinux && withWebKit) ''
117− substituteInPlace Telegram/lib_webview/webview/platform/linux/webview_linux_webkit_gtk.cpp \
118− --replace '"libwebkit2gtk-4.0.so.37"' '"${webkitgtk}/lib/libwebkit2gtk-4.0.so.37"'
119113 '' + optionalString stdenv.isDarwin ''
120114 substituteInPlace Telegram/CMakeLists.txt \
121115 --replace 'COMMAND iconutil' 'COMMAND png2icns' \
@@ -124,10 +118,6 @@ stdenv.mkDerivation rec {
124118 --replace "\''${appicon_path}" "\''${appicon_path}/icon_16x16.png \''${appicon_path}/icon_32x32.png \''${appicon_path}/icon_128x128.png \''${appicon_path}/icon_256x256.png \''${appicon_path}/icon_512x512.png"
125119 '';
126120
127− # We want to run wrapProgram manually (with additional parameters)
128− dontWrapGApps = stdenv.isLinux;
129− dontWrapQtApps = stdenv.isLinux && withWebKit;
130−
131121 nativeBuildInputs = [
132122 pkg-config
133123 cmake
@@ -139,8 +129,6 @@ stdenv.mkDerivation rec {
139129 # to build bundled libdispatch
140130 clang
141131 extra-cmake-modules
142− ] ++ optionals (stdenv.isLinux && withWebKit) [
143− wrapGAppsHook
144132 ];
145133
146134 buildInputs = [
@@ -166,8 +154,6 @@ stdenv.mkDerivation rec {
166154 glibmm
167155 jemalloc
168156 wayland
169− ] ++ optionals (stdenv.isLinux && withWebKit) [
170− webkitgtk
171157 ] ++ optionals stdenv.isDarwin [
172158 Cocoa
173159 CoreFoundation
@@ -225,13 +211,6 @@ stdenv.mkDerivation rec {
225211 remove-references-to -t ${tg_owt.dev} $out/bin/$binName
226212 '';
227213
228− postFixup = optionalString (stdenv.isLinux && withWebKit) ''
229− # We also use gappsWrapperArgs from wrapGAppsHook.
230− wrapProgram $out/bin/kotatogram-desktop \
231− "''${gappsWrapperArgs[@]}" \
232− "''${qtWrapperArgs[@]}"
233− '';
234−
235214 passthru = {
236215 inherit tg_owt;
237216 };
pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nixnew file+23
@@ -0,0 +1,23 @@
1+{ stdenv, lib, kotatogram-desktop, glib-networking, webkitgtk, makeWrapper }:
2+
3+with lib;
4+
5+stdenv.mkDerivation {
6+ pname = "${kotatogram-desktop.pname}-with-webkit";
7+ version = kotatogram-desktop.version;
8+ nativeBuildInputs = [ makeWrapper ];
9+ dontUnpack = true;
10+ installPhase = ''
11+ mkdir -p $out
12+ cp -r ${kotatogram-desktop}/share $out
13+ '';
14+ postFixup = ''
15+ mkdir -p $out/bin
16+ makeWrapper ${kotatogram-desktop}/bin/kotatogram-desktop $out/bin/kotatogram-desktop \
17+ --prefix GIO_EXTRA_MODULES : ${glib-networking}/lib/gio/modules \
18+ --prefix LD_LIBRARY_PATH : ${makeLibraryPath [ webkitgtk ]}
19+ '';
20+ meta = kotatogram-desktop.meta // {
21+ platforms = platforms.linux;
22+ };
23+}
pkgs/top-level/all-packages.nix+2
@@ -27058,6 +27058,8 @@ with pkgs;
2705827058 abseil-cpp = abseil-cpp_202111;
2705927059 };
2706027060
27061+ kotatogram-desktop-with-webkit = callPackage ../applications/networking/instant-messengers/telegram/kotatogram-desktop/with-webkit.nix {};
27062+
2706127063 kpt = callPackage ../applications/networking/cluster/kpt { };
2706227064
2706327065 krane = callPackage ../applications/networking/cluster/krane { };