{ fetchFromGitHub, gperf, openssl, readline, zlib, cmake, lib, stdenv }: stdenv.mkDerivation { pname = "tdlib"; version = "1.8.33"; src = fetchFromGitHub { owner = "tdlib"; repo = "td"; # The tdlib authors do not set tags for minor versions, but # external programs depending on tdlib constrain the minor # version, hence we set a specific commit with a known version. rev = "cb164927417f22811c74cd8678ed4a5ab7cb80ba"; hash = "sha256-917w8KZPkgW4O5ftONi9UzpbNIPm9YBgSz11OPFX6lw="; }; buildInputs = [ gperf openssl readline zlib ]; nativeBuildInputs = [ cmake ]; # https://github.com/tdlib/td/issues/1974 postPatch = '' substituteInPlace CMake/GeneratePkgConfig.cmake \ --replace 'function(generate_pkgconfig' \ 'include(GNUInstallDirs) function(generate_pkgconfig' \ --replace '\$'{prefix}/'$'{CMAKE_INSTALL_LIBDIR} '$'{CMAKE_INSTALL_FULL_LIBDIR} \ --replace '\$'{prefix}/'$'{CMAKE_INSTALL_INCLUDEDIR} '$'{CMAKE_INSTALL_FULL_INCLUDEDIR} '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) '' sed -i "/vptr/d" test/CMakeLists.txt ''; meta = with lib; { description = "Cross-platform library for building Telegram clients"; homepage = "https://core.telegram.org/tdlib/"; license = [ licenses.boost ]; platforms = platforms.unix; maintainers = [ maintainers.vyorkin ]; }; }