From d584c09c37d8e2b70fb5b6b1b2c685698f7ac73d Mon Sep 17 00:00:00 2001 From: Brett Gilio Date: Wed, 27 Nov 2019 02:08:02 -0600 Subject: [PATCH] gnu: Add tdlib. * gnu/packages/messaging.scm (tdlib): New variable. --- gnu/packages/messaging.scm | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 33e752c9a0..b268805b9b 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2018 Leo Famulari ;;; Copyright © 2018 Pierre-Antoine Rouby ;;; Copyright © 2019 Tanguy Le Carrour +;;; Copyright © 2019 Brett Gilio ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,6 +58,7 @@ #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) + #:use-module (gnu packages gperf) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages icu4c) @@ -72,6 +74,7 @@ #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages photo) + #:use-module (gnu packages php) #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) @@ -1946,4 +1949,48 @@ Telegram messenger.") ;; itself is GPLv2+. (license license:gpl2+))) +(define-public tdlib + (let ((commit "afca63a4f43531058a079e91eb5c81f54ad744b5") + (revision "1") + (version "1.5.0")) + (package + (name "tdlib") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tdlib/td.git") + (commit commit))) + (sha256 + (base32 + "1aa3p4k32mfshgc6fv58gwg8pnaix39rv455hfx6znj7llr8na6k")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (arguments + `(#:tests? #t + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-failing-tests + (lambda _ + (substitute* "test/CMakeLists.txt" + ;; The test cases are compiled into a distinct binary + ;; which uses mtproto.cpp to attempt to connect to + ;; a remote server. Removing this file from the sources + ;; list disables those specific test cases. + (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/mtproto.cpp") "")) + #t))))) + (native-inputs + `(("gperf" ,gperf) + ("openssl" ,openssl) + ("zlib" ,zlib) + ("php" ,php) + ("doxygen" ,doxygen))) + (synopsis "Cross-platform library for building Telegram clients") + (description "Tdlib is a cross-platform library for creating custom +Telegram clients following the official Telegram API. It can be easily used +from almost any programming language with a C-FFI and features first-class +support for high performance Telegram Bot creation.") + (home-page "https://core.telegram.org/tdlib") + (license license:boost1.0)))) + ;;; messaging.scm ends here -- 2.24.0