From dde49d6a47321f1a5450641d0ca24ab33c356e32 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Thu, 7 Jan 2021 19:41:42 -0500
Subject: [PATCH 13/13] gnu: Add tdesktop.
* gnu/packages/telegram.scm: New module.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/packages/telegram.scm (tdesktop): New variable.
---
gnu/local.mk | 1 +
gnu/packages/telegram.scm | 180 ++++++++++++++++++++++++++++++++++++++
2 files changed, 181 insertions(+)
create mode 100644 gnu/packages/telegram.scm
@@ -534,6 +534,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/task-management.scm \
%D%/packages/tbb.scm \
%D%/packages/tcl.scm \
+ %D%/packages/telegram.scm \
%D%/packages/telephony.scm \
%D%/packages/terminals.scm \
%D%/packages/terraform.scm \
new file mode 100644
@@ -0,0 +1,180 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages telegram)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages aidc)
+ #:use-module (gnu packages audio)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages cmake)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages cpp)
+ #:use-module (gnu packages digest)
+ #:use-module (gnu packages fcitx)
+ #:use-module (gnu packages fcitx5)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages kde-frameworks)
+ #:use-module (gnu packages language)
+ #:use-module (gnu packages libreoffice)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages lxqt)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pulseaudio)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages telephony)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages video)
+ #:use-module (gnu packages xiph)
+ #:use-module (gnu packages xorg)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system glib-or-gtk)
+ #:use-module (guix build-system qt))
+
+(define-public tdesktop
+ (package
+ (name "tdesktop")
+ (version "2.5.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/telegramdesktop/tdesktop.git")
+ (commit
+ (string-append "v" version))
+ (recursive? #t)))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "1qw9vaa482dbz97mzwjzmy3fw72s5bk3hyacyz98ms652xgld6js"))))
+ (build-system qt-build-system)
+ (arguments
+ `(#:tests? #f ; No target
+ #:imported-modules
+ (,@%qt-build-system-modules
+ (guix build glib-or-gtk-build-system))
+ #:modules
+ ((guix build qt-build-system)
+ ((guix build glib-or-gtk-build-system)
+ #:prefix glib-or-gtk:)
+ (guix build utils))
+ #:configure-flags
+ (list
+ "-DTDESKTOP_API_ID=2791056"
+ "-DTDESKTOP_API_HASH=582d6d0b44f7a2de949e99271fd8b3f2")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'make-writable
+ (lambda _
+ (for-each make-file-writable
+ (find-files "."))
+ #t))
+ (add-after 'make-writable 'remove-thirdparty
+ (lambda _
+ (with-directory-excursion "Telegram/ThirdParty"
+ (for-each delete-file-recursively
+ (list
+ "Catch"
+ "GSL"
+ "QR"
+ "expected"
+ "fcitx-qt5"
+ "fcitx5-qt"
+ "hime"
+ "hunspell"
+ "libdbusmenu-qt"
+ ;; "libtgvoip"
+ "lz4"
+ "materialdecoration"
+ "minizip"
+ "nimf"
+ "qt5ct"
+ "range-v3"
+ ;; "rlottie"
+ "xxHash")))
+ #t))
+ (add-before 'configure 'patch-cxx-flags
+ (lambda _
+ (substitute* "cmake/options_linux.cmake"
+ (("class-memaccess")
+ "all"))
+ #t))
+ (add-after 'install 'glib-or-gtk-compile-schemas
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
+ (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+ (native-inputs
+ `(("cmake-shared" ,cmake-shared)
+ ("extra-cmake-modules" ,extra-cmake-modules)
+ ("gcc" ,gcc-9)
+ ("glib:bin" ,glib "bin")
+ ("gobject-introspection" ,gobject-introspection)
+ ("gtk+:bin" ,gtk+ "bin")
+ ("pkg-config" ,pkg-config)
+ ("python" ,python-wrapper)
+ ("qttools" ,qttools)))
+ (inputs
+ `(("alsa" ,alsa-lib)
+ ("catch" ,catch-framework2)
+ ("dconf" ,dconf)
+ ("expected" ,libexpected)
+ ("fcitx-qt5" ,fcitx-qt5)
+ ("fcitx5-qt" ,fcitx5-qt)
+ ("ffmpeg" ,ffmpeg)
+ ("glib" ,glib)
+ ("gsl" ,gsl)
+ ("gtk+" ,gtk+)
+ ("hime" ,hime)
+ ("hunspell" ,hunspell)
+ ("iconv" ,libiconv)
+ ("libdbusmenu-qt" ,libdbusmenu-qt)
+ ("libjpeg" ,libjpeg-turbo)
+ ;; ("libtgvoip" ,libtgvoip)
+ ("lz4" ,lz4)
+ ("materialdecoration" ,materialdecoration)
+ ("minizip" ,minizip)
+ ("nimf" ,nimf)
+ ("openal" ,openal)
+ ("openssl" ,openssl)
+ ("opus" ,opus)
+ ("pulseaudio" ,pulseaudio)
+ ("qrcodegen" ,qrcodegen-cpp)
+ ("qt" ,qtbase)
+ ("qt5ct" ,qt5ct)
+ ("qtwayland" ,qtwayland)
+ ("range-v3" ,range-v3)
+ ;; ("rlottie" ,rlottie)
+ ("tg_owt" ,tg_owt)
+ ("x11" ,libx11)
+ ("xcb" ,libxcb)
+ ("xcb-keysyms" ,xcb-util-keysyms)
+ ("xxhash" ,xxhash)
+ ("zlib" ,zlib)))
+ (synopsis "Telegram Desktop")
+ (description "Tdesktop is the official desktop application for telegram
+messenger.")
+ (home-page "https://desktop.telegram.org/")
+ (license license:gpl3+)))
--
2.30.0