From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id IDUNAur4CGDdVwAA0tVLHw (envelope-from ) for ; Thu, 21 Jan 2021 03:45:46 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id WAxiOen4CGDBKgAAbx9fmQ (envelope-from ) for ; Thu, 21 Jan 2021 03:45:45 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id EBE029402A2 for ; Thu, 21 Jan 2021 03:45:43 +0000 (UTC) Received: from localhost ([::1]:40526 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l2Quk-000725-M0 for larch@yhetil.org; Wed, 20 Jan 2021 22:45:42 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49414) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l2Qu6-00071v-GL for guix-patches@gnu.org; Wed, 20 Jan 2021 22:45:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:45028) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l2Qu6-0002TH-8V for guix-patches@gnu.org; Wed, 20 Jan 2021 22:45:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1l2Qu6-000375-75 for guix-patches@gnu.org; Wed, 20 Jan 2021 22:45:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#45721] Telegram Desktop (v21) References: In-Reply-To: Resent-From: Raghav Gururajan Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Thu, 21 Jan 2021 03:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 45721 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: To: 45721@debbugs.gnu.org Received: via spool by 45721-submit@debbugs.gnu.org id=B45721.161120068811929 (code B ref 45721); Thu, 21 Jan 2021 03:45:02 +0000 Received: (at 45721) by debbugs.gnu.org; 21 Jan 2021 03:44:48 +0000 Received: from localhost ([127.0.0.1]:56574 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2Qtg-00036A-TO for submit@debbugs.gnu.org; Wed, 20 Jan 2021 22:44:48 -0500 Received: from relay9-d.mail.gandi.net ([217.70.183.199]:59907) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2Qtc-00035t-IA for 45721@debbugs.gnu.org; Wed, 20 Jan 2021 22:44:36 -0500 X-Originating-IP: 76.68.120.100 Received: from [192.168.5.10] (bras-vprn-toroon474rw-lp130-08-76-68-120-100.dsl.bell.ca [76.68.120.100]) (Authenticated sender: rg@raghavgururajan.name) by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id E17A4FF806; Thu, 21 Jan 2021 03:44:24 +0000 (UTC) From: Raghav Gururajan Message-ID: Date: Wed, 20 Jan 2021 22:44:23 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Icedove/78.6.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------DF67654C66070D3653AE6A52" Content-Language: en-US X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Leo Prikler Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -2.35 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: EBE029402A2 X-Spam-Score: -2.35 X-Migadu-Scanner: scn1.migadu.com X-TUID: f7Yev3Sxkuof This is a multi-part message in MIME format. --------------DF67654C66070D3653AE6A52 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit --------------DF67654C66070D3653AE6A52 Content-Type: text/x-patch; charset=UTF-8; name="0013-gnu-Add-telegram-desktop.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0013-gnu-Add-telegram-desktop.patch" >From 1a12e30930675959f63b9ac26071fb9894bc7896 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Sun, 17 Jan 2021 09:30:22 -0500 Subject: [PATCH 13/18] gnu: Add telegram-desktop. * gnu/packages/telegram.scm (telegram-desktop): New variable. --- gnu/packages/telegram.scm | 395 +++++++++++++++++++++++++++++++++++++- 1 file changed, 394 insertions(+), 1 deletion(-) diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm index 0fd47f4f5d..84edec0306 100644 --- a/gnu/packages/telegram.scm +++ b/gnu/packages/telegram.scm @@ -18,20 +18,42 @@ (define-module (gnu packages telegram) #:use-module (gnu packages) + #:use-module (gnu packages aidc) #:use-module (gnu packages assembly) + #: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 protobuf) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) + #:use-module (gnu packages qt) #: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 cmake)) + #:use-module (guix build-system cmake) + #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system qt)) (define-public tg-owt (let ((commit "fa86fcc00c218813d61a272a56feab55c76a1ab9") @@ -141,3 +163,374 @@ for its use in telegram desktop client.") license:gpl3 ;; LibSRTP, LibVPx, UsrSCTP and Others license:bsd-3))))) + +(define-public telegram-desktop + (package + (name "telegram-desktop") + (version "2.5.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/telegramdesktop/tdesktop.git") + (commit + (string-append "v" version)))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "1qw9vaa482dbz97mzwjzmy3fw72s5bk3hyacyz98ms652xgld6js")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-1))) + (snippet + `(begin + (let ((keep + '( ;; Custom forks which are incompatible with the ones in Guix. + "libtgvoip" "rlottie" + ;; Not available in Guix. + "SPMediaKeyTap" "statusnotifieritem" "tgcalls"))) + (with-directory-excursion "Telegram/ThirdParty" + (for-each delete-file-recursively + (lset-difference string=? + (scandir ".") + (cons* "." ".." keep)))) + #t))))) + (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 + ;; Client applications must provide their own API-ID and API-HASH, + ;; see also . + ;; In case, that the credentials below fail to work, contact + ;; Raghav Gururajan + "-DTDESKTOP_API_ID=2791056" + "-DTDESKTOP_API_HASH=582d6d0b44f7a2de949e99271fd8b3f2" + ;; Use bundled fonts as fallback. + "-DDESKTOP_APP_USE_PACKAGED_FONTS=OFF") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'copy-inputs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((to (string-append (getenv "TEMP") "/source")) + (cmake-helpers (assoc-ref inputs "cmake-helpers-for-telegram-desktop")) + (codegen (assoc-ref inputs "codegen")) + (lib-base (assoc-ref inputs "lib-base-for-telegram-desktop")) + (lib-crl (assoc-ref inputs "lib-crl-for-telegram-desktop")) + (lib-lottie (assoc-ref inputs "lib-lottie-for-telegram-desktop")) + (lib-qr (assoc-ref inputs "lib-qr-for-telegram-desktop")) + (lib-rlottie (assoc-ref inputs "lib-rlottie-for-telegram-desktop")) + (lib-rpl (assoc-ref inputs "lib-rpl-for-telegram-desktop")) + (lib-spellcheck (assoc-ref inputs "lib-spellcheck-for-telegram-desktop")) + (lib-storage (assoc-ref inputs "lib-storage-for-telegram-desktop")) + (lib-tl (assoc-ref inputs "lib-tl-for-telegram-desktop")) + (lib-ui (assoc-ref inputs "lib-ui-for-telegram-desktop")) + (lib-webrtc (assoc-ref inputs "lib-webrtc-for-telegram-desktop")) + (libtgvoip (assoc-ref inputs "libtgvoip-for-telegram-desktop")) + (rlottie (assoc-ref inputs "rlottie-for-telegram-desktop")) + (tgcalls (assoc-ref inputs "tgcalls-for-telegram-desktop"))) + (copy-recursively + cmake-helpers + (string-append to "/cmake")) + (copy-recursively + codegen + (string-append to "/Telegram/codegen")) + (copy-recursively + lib-base + (string-append to "/Telegram/lib_base")) + (copy-recursively + lib-crl + (string-append to "/Telegram/lib_crl")) + (copy-recursively + lib-lottie + (string-append to "/Telegram/lib_lottie")) + (copy-recursively + lib-qr + (string-append to "/Telegram/lib_qr")) + (copy-recursively + lib-rlottie + (string-append to "/Telegram/lib_rlottie")) + (copy-recursively + lib-rpl + (string-append to "/Telegram/lib_rpl")) + (copy-recursively + lib-spellcheck + (string-append to "/Telegram/lib_spellcheck")) + (copy-recursively + lib-storage + (string-append to "/Telegram/lib_storage")) + (copy-recursively + lib-tl + (string-append to "/Telegram/lib_tl")) + (copy-recursively + lib-ui + (string-append to "/Telegram/lib_ui")) + (copy-recursively + lib-webrtc + (string-append to "/Telegram/lib_webrtc")) + (copy-recursively + libtgvoip + (string-append to "/Telegram/ThirdParty/libtgvoip")) + (copy-recursively + rlottie + (string-append to "/Telegram/ThirdParty/rlottie")) + (copy-recursively + tgcalls + (string-append to "/Telegram/ThirdParty/tgcalls"))) + #t)) + (add-after 'copy-inputs 'make-writable + (lambda _ + (for-each make-file-writable (find-files ".")) + #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-helpers-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/cmake_helpers.git") + (commit "a81345a28d407fb5acd5267ec6afa1864f4e8d5b"))) + (file-name + (git-file-name "cmake-helpers-for-telegram-desktop" version)) + (sha256 + (base32 "0s5hxip68dmkaspjq6j30wx1r5v4prnrjza79hdbznz6i57a2248")))) + ("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) + ("c++-gsl" ,c++-gsl) + ("catch" ,catch-framework2) + ("codegen" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/codegen.git") + (commit "127968de8129e8ccfa6ac50721c70415a5a087c3"))) + (file-name + (git-file-name "codegen" version)) + (sha256 + (base32 "036hzjrsk134ky62192nra43rsln5kh5gz20q1920s922661zky2")))) + ("expected" ,libexpected) + ("fcitx-qt5" ,fcitx-qt5) + ("fcitx5-qt" ,fcitx5-qt) + ("ffmpeg" ,ffmpeg) + ("glib" ,glib) + ("gtk+" ,gtk+) + ("hime" ,hime) + ("hunspell" ,hunspell) + ("iconv" ,libiconv) + ("kwayland" ,kwayland) + ("lib-base-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/lib_base.git") + (commit "81df0d0b7842be2b6c88f93dfa136b8efea4c9ad"))) + (file-name + (git-file-name "lib-base-for-telegram-desktop" version)) + (sha256 + (base32 "0ikddprjnjvg0ic8jr2886xq0f18syp587q6z2kci9xmdnvjl217")))) + ("lib-crl-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/lib_crl.git") + (commit "16150bf71d79382738114b913f137ec1a1a7630c"))) + (file-name + (git-file-name "lib-crl-for-telegram-desktop" version)) + (sha256 + (base32 "0qhagdr26aqb9w7wnchcmk1j7ln28x3wbkkkm06b8h0mybksbj7q")))) + ("lib-lottie-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/lib_lottie.git") + (commit "fb40f379d82ffa1fc7506e9a8dddcf48847715ae"))) + (file-name + (git-file-name "lib-lottie-for-telegram-desktop" version)) + (sha256 + (base32 "1vq0mqxcrrv7akcqk9cl4mm61zw6dcfmy8adl0pcp49kynm64saw")))) + ("lib-qr-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/lib_qr.git") + (commit "92ce41a690a463eb462089a4eb1e51e019308018"))) + (file-name + (git-file-name "lib-qr-for-telegram-desktop" version)) + (sha256 + (base32 "182939nv7xs9b3bgah3gl5y9hx5r59mabd2jw3z6717vc96qi2pj")))) + ("lib-rlottie-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/lib_rlottie.git") + (commit "0671bf70547381effcf442ec9618e04502a8adbc"))) + (file-name + (git-file-name "lib-rlottie-for-telegram-desktop" version)) + (sha256 + (base32 "05qnza7j15356s8jq16pkbyp4zr586lssmd86lz5jq23lcb3raxv")))) + ("lib-rpl-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/lib_rpl.git") + (commit "e1b96399d9031c4ef0354631e6bb375029d29d9f"))) + (file-name + (git-file-name "lib-rpl-for-telegram-desktop" version)) + (sha256 + (base32 "1wvqazljd2kq1fxlj250jhjrig529499bym9p81dx33kh1l9dgss")))) + ("lib-spellcheck-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/lib_spellcheck.git") + (commit "1b540b38ed78e9a3cba93e9ba4ce4525ab692277"))) + (file-name + (git-file-name "lib-spellcheck-for-telegram-desktop" version)) + (sha256 + (base32 "0a7042h5zrdvgs7v153ral2dh1zj84di5yjcmgcry5k4s1im9di7")))) + ("lib-storage-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/lib_storage.git") + (commit "cbe51722b73cfa9ff27bd59294b08aa5ee33c936"))) + (file-name + (git-file-name "lib-storage-for-telegram-desktop" version)) + (sha256 + (base32 "045l5xsyagyz17gbhmmvl2miss4nb92p0dmza7yfs9pkg9gs0f87")))) + ("lib-tl-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/lib_tl.git") + (commit "404c83d77e5edb8a39f8e9f56a6340960fe5070e"))) + (file-name + (git-file-name "lib-tl-for-telegram-desktop" version)) + (sha256 + (base32 "1k34nkvvcjqw5q81n1qmklid60cvzjk4lmn9qjimk437m6wbii7f")))) + ("lib-ui-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/lib_ui.git") + (commit "1e2799245cf2720a329ecb5cf5644fded669cce6"))) + (file-name + (git-file-name "lib-ui-for-telegram-desktop" version)) + (sha256 + (base32 "0kd4njcvic2700f00qn25vn3b80vsd2flsm3pi2synnldkiy8lcw")))) + ("lib-webrtc-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/lib_webrtc.git") + (commit "4bc51d6f6d5740159fdb51cb1593e80ce149ed4e"))) + (file-name + (git-file-name "lib-webrtc-for-telegram-desktop" version)) + (sha256 + (base32 "06hpyq4qglrj3cb1xg8ghlmzm9ra8f5n6vm7hcy67n2wk8sy4cal")))) + ("libdbusmenu-qt" ,libdbusmenu-qt) + ("libjpeg" ,libjpeg-turbo) + ("libtgvoip-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/telegramdesktop/libtgvoip.git") + (commit "37d98e984fd6fa389262307db826d52ab86c8241"))) + (file-name + (git-file-name "libtgvoip-for-telegram-desktop" version)) + (sha256 + (base32 "13dzvyq8p20nlhjihv18aj6y97czk07qdl0k6v81vp6mbwcldg7h")))) + ("lz4" ,lz4) + ("materialdecoration" ,materialdecoration) + ("minizip" ,minizip) + ("nimf" ,nimf) + ("openal" ,openal) + ("openssl" ,openssl) + ("opus" ,opus) + ("pulseaudio" ,pulseaudio) + ("qrcodegen" ,qrcodegen-cpp) + ("qt" ,qtbase) + ("qt5ct" ,qt5ct) + ("qtimageformats" ,qtimageformats) + ("qtwayland" ,qtwayland) + ("range-v3" ,range-v3) + ("rlottie-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/rlottie.git") + (commit "cbd43984ebdf783e94c8303c41385bf82aa36d5b"))) + (file-name + (git-file-name "rlottie-for-telegram-desktop" version)) + (sha256 + (base32 "1lxpbgbhps9rmck036mgmiknqrzpjxpas8n7qxykv6pwzn0c8n0c")))) + ("tg-owt" ,tg-owt) + ("tgcalls-for-telegram-desktop" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/TelegramMessenger/tgcalls.git") + (commit "178983f72312ca8bd422bc73810fd63f1a89bd9d"))) + (file-name + (git-file-name "tgcalls-for-telegram-desktop" version)) + (sha256 + (base32 "1xad65c9m6mj6zdj08flafvh8xjkd7xi9r1agcyc64y69lr427d0")))) + ("x11" ,libx11) + ("xcb" ,libxcb) + ("xcb-keysyms" ,xcb-util-keysyms) + ("xxhash" ,xxhash) + ("zlib" ,zlib))) + (propagated-inputs + `(("dconf" ,dconf))) + (synopsis "Telegram Desktop") + (description "Telegram desktop is the official desktop version of the +Telegram instant messager.") + (home-page "https://desktop.telegram.org/") + (license + (list + ;; ThirdParty + license:lgpl2.1+ + ;; Others + license:gpl3+)))) -- 2.30.0 --------------DF67654C66070D3653AE6A52 Content-Type: text/x-patch; charset=UTF-8; name="0012-gnu-Add-tg-owt.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0012-gnu-Add-tg-owt.patch" >From 02e49ec324cbc6924c1a8f905a5b6a6fb053085f Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Thu, 7 Jan 2021 19:41:42 -0500 Subject: [PATCH 12/18] gnu: Add tg-owt. * gnu/packages/telegram.scm: New module. (tg-owt): New variable. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/telegram.scm | 143 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 144 insertions(+) create mode 100644 gnu/packages/telegram.scm diff --git a/gnu/local.mk b/gnu/local.mk index c8a578549d..c1347120bb 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -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 \ diff --git a/gnu/packages/telegram.scm b/gnu/packages/telegram.scm new file mode 100644 index 0000000000..0fd47f4f5d --- /dev/null +++ b/gnu/packages/telegram.scm @@ -0,0 +1,143 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2021 Raghav Gururajan +;;; +;;; 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 . + +(define-module (gnu packages telegram) + #:use-module (gnu packages) + #:use-module (gnu packages assembly) + #:use-module (gnu packages image) + #:use-module (gnu packages linux) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages protobuf) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages python) + #:use-module (gnu packages tls) + #:use-module (gnu packages video) + #:use-module (gnu packages xiph) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix build-system cmake)) + +(define-public tg-owt + (let ((commit "fa86fcc00c218813d61a272a56feab55c76a1ab9") + (revision "1")) + (package + (name "tg-owt") + (version + (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/desktop-app/tg_owt.git") + (commit commit))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "06gcrlym6vqqw7zlds9lpwyg37d5m81d87h16aps19v0v9gzan0l")) + (modules '((guix build utils) + (ice-9 ftw) + (srfi srfi-1))) + (snippet + `(begin + (let ((keep + '( ;; Custom forks which are incompatible with the ones in Guix. + "abseil-cpp" "libsrtp" "openh264" "rnnoise" + ;; Not available in Guix. + "pffft" "usrsctp" + ;; Has cmake support files for libvpx input. + "libvpx"))) + (with-directory-excursion "src/third_party" + (for-each delete-file-recursively + (lset-difference string=? + (scandir ".") + (cons* "." ".." keep)))) + #t))))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No target + #:configure-flags + (list + "-DCMAKE_C_FLAGS=-fPIC" + "-DCMAKE_CXX_FLAGS=-fPIC") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'copy-inputs + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((libvpx-from (assoc-ref inputs "libvpx")) + (libyuv-from (assoc-ref inputs "libyuv")) + (libvpx-to (string-append (getcwd) + "/src/third_party/libvpx/source/libvpx")) + (libyuv-to (string-append (getcwd) + "/src/third_party/libyuv"))) + (copy-recursively libvpx-from libvpx-to) + (copy-recursively libyuv-from libyuv-to)) + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("python" ,python-wrapper) + ("yasm" ,yasm))) + (inputs + `(("alsa" ,alsa-lib) + ("ffmpeg" ,ffmpeg) + ("libjpeg" ,libjpeg-turbo) + ("libvpx" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://chromium.googlesource.com/webm/libvpx") + (commit "5b63f0f821e94f8072eb483014cfc33b05978bb9"))) + (file-name + (git-file-name "libvpx-for-tg-owt" version)) + (sha256 + (base32 "1psvxaddihlw1k5n0anxif3qli6zyw2sa2ywn6mkb8six9myrp68")))) + ("libyuv" + ,(origin + (method git-fetch) + (uri + (git-reference + (url "https://chromium.googlesource.com/libyuv/libyuv") + (commit "ad890067f661dc747a975bc55ba3767fe30d4452"))) + (file-name + (git-file-name "libyuv-for-tg-owt" version)) + (sha256 + (base32 "01knnk4h247rq536097n9n3s3brxlbby3nv3ppdgsqfda3k159ll")))) + ("openssl" ,openssl) + ("opus" ,opus) + ("protobuf" ,protobuf) + ("pulseaudio" ,pulseaudio))) + (synopsis "WebRTC support for Telegram-Desktop") + (description "Tg_owt is a custom WebRTC fork by Telegram project, +for its use in telegram desktop client.") + (home-page "https://github.com/desktop-app/tg_owt") + (license + (list + ;; Abseil-CPP + license:asl2.0 + ;; LibYuv + (license:non-copyleft "file:///src/third_party/libyuv/LICENSE") + ;; OpenH264 + license:bsd-2 + ;; PFFFT + (license:non-copyleft "file:///src/third_party/pffft/LICENSE") + ;; RnNoise + license:gpl3 + ;; LibSRTP, LibVPx, UsrSCTP and Others + license:bsd-3))))) -- 2.30.0 --------------DF67654C66070D3653AE6A52 Content-Type: text/x-patch; charset=UTF-8; name="0011-gnu-Add-qt5ct.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0011-gnu-Add-qt5ct.patch" >From 9c6905c0a107542ebc4a08cb7b8349d9c81bd557 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Tue, 5 Jan 2021 17:50:16 -0500 Subject: [PATCH 11/18] gnu: Add qt5ct. * gnu/packages/qt.scm (qt5ct): New variable. Signed-off-by: Leo Prikler --- gnu/packages/qt.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 60e4f43c6a..a0409b0060 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -105,6 +105,61 @@ #:use-module (gnu packages xml) #:use-module (srfi srfi-1)) +(define-public qt5ct + (package + (name "qt5ct") + (version "1.1") + (source + (origin + (method url-fetch) + (uri + (string-append "mirror://sourceforge/qt5ct/qt5ct-" version ".tar.bz2")) + (sha256 + (base32 "1lnx4wqk87lbr6lqc64w5g5ppjjv75kq2r0q0bz9gfpryzdw8xxg")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; No target + #:imported-modules + (,@%gnu-build-system-modules + (guix build cmake-build-system) + (guix build qt-build-system)) + #:modules + ((guix build gnu-build-system) + ((guix build qt-build-system) + #:prefix qt:) + (guix build utils)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "qt5ct.pro" + (("\\$\\$\\[QT_INSTALL_BINS\\]/lrelease") + (string-append (assoc-ref inputs "qttools") + "/bin/lrelease"))) + #t)) + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (invoke "qmake" + (string-append "PREFIX=" out) + (string-append "BINDIR=" out "/bin") + (string-append "DATADIR=" out "/share") + (string-append "PLUGINDIR=" out "/lib/qt5/plugins"))) + #t)) + (add-after 'install 'qt-wrap + (assoc-ref qt:%standard-phases 'qt-wrap))))) + (native-inputs + `(("qttools" ,qttools))) + (inputs + `(("qtbase" ,qtbase) + ("qtsvg" ,qtsvg))) + (synopsis "Qt5 Configuration Tool") + (description "Qt5CT is a program that allows users to configure Qt5 +settings (such as icons, themes, and fonts) in desktop environments or +window managers, that don't provide Qt integration by themselves.") + (home-page "https://qt5ct.sourceforge.io/") + (license license:bsd-2))) + (define-public materialdecoration (package (name "materialdecoration") -- 2.30.0 --------------DF67654C66070D3653AE6A52 Content-Type: text/x-patch; charset=UTF-8; name="0010-gnu-Add-rlottie.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0010-gnu-Add-rlottie.patch" >From 48258c2c1bc21623985e208f0c943991d27d9f15 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Tue, 5 Jan 2021 00:52:37 -0500 Subject: [PATCH 10/18] gnu: Add rlottie. * gnu/packages/cpp.scm (rlottie): New variable. Signed-off-by: Leo Prikler --- gnu/packages/cpp.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 0d75b9237e..afb8be076f 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -39,12 +39,14 @@ #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages boost) #:use-module (gnu packages c) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages code) #:use-module (gnu packages compression) #:use-module (gnu packages crypto) @@ -64,6 +66,37 @@ #:use-module (gnu packages tls) #:use-module (gnu packages web)) +(define-public rlottie + (package + (name "rlottie") + (version "0.2") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/Samsung/rlottie.git") + (commit + (string-append "v" version)))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "10bxr1zf9wxl55d4cw2j02r6sgqln7mbxplhhfvhw0z92fi40kr3")))) + (build-system meson-build-system) + (arguments + `(#:configure-flags + (list + "-Dlog=true" + "-Dtest=true"))) + (native-inputs + `(("googletest" ,googletest) + ("pkg-config" ,pkg-config))) + (synopsis "Lottie Animation Library") + (description "Rlottie is a platform independent standalone c++ library for +rendering vector based animations and art in realtime.") + (home-page "https://github.com/Samsung/rlottie/") + (license license:expat))) + (define-public range-v3 (package (name "range-v3") -- 2.30.0 --------------DF67654C66070D3653AE6A52 Content-Type: text/x-patch; charset=UTF-8; name="0009-gnu-Add-range-v3.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0009-gnu-Add-range-v3.patch" >From 46f4660f5b23da77bffb620f00e943418af6bb65 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Mon, 4 Jan 2021 23:59:17 -0500 Subject: [PATCH 09/18] gnu: Add range-v3. * gnu/packages/cpp.scm (range-v3): New variable. Signed-off-by: Leo Prikler --- gnu/packages/cpp.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 2514af5a84..0d75b9237e 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -49,6 +49,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) + #:use-module (gnu packages documentation) #:use-module (gnu packages gcc) #:use-module (gnu packages libevent) #:use-module (gnu packages libunwind) @@ -63,6 +64,45 @@ #:use-module (gnu packages tls) #:use-module (gnu packages web)) +(define-public range-v3 + (package + (name "range-v3") + (version "0.11.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/ericniebler/range-v3.git") + (commit version))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "18230bg4rq9pmm5f8f65j444jpq56rld4fhmpham8q3vr1c1bdjh")))) + (build-system cmake-build-system) + (native-inputs + `(("doxygen" ,doxygen) + ("perl" ,perl))) + (inputs + `(("boost" ,boost))) + (synopsis "Range library for C++14/17/20") + (description "Range-v3 is an extension of the Standard Template Library that +makes its iterators and algorithms more powerful by making them composable. +Unlike other range-like solutions which, seek to do away with iterators, in +range-v3 ranges are an abstration layer on top of iterators.") + (home-page "https://github.com/ericniebler/range-v3/") + (license + (list + ;; Elements of Programming + (license:x11-style "file:///LICENSE.txt") + ;; SGI STL + license:sgifreeb2.0 + ;;; LibC++ (dual-licensed) + license:expat + license:ncsa + ;; Others + license:boost1.0)))) + (define-public c++-gsl (package (name "c++-gsl") -- 2.30.0 --------------DF67654C66070D3653AE6A52 Content-Type: text/x-patch; charset=UTF-8; name="0008-gnu-Add-materialdecoration.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0008-gnu-Add-materialdecoration.patch" >From 3e49d1c88f0b768648e6bd1a59f7396211f6126b Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Sun, 3 Jan 2021 19:08:43 -0500 Subject: [PATCH 08/18] gnu: Add materialdecoration. * gnu/packages/qt.scm (materialdecoration): New variable. Signed-off-by: Leo Prikler --- gnu/packages/qt.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 79d41b3e73..60e4f43c6a 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -45,6 +45,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module (guix packages) #:use-module (guix deprecation) #:use-module (guix utils) @@ -72,6 +73,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) + #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) @@ -103,6 +105,36 @@ #:use-module (gnu packages xml) #:use-module (srfi srfi-1)) +(define-public materialdecoration + (package + (name "materialdecoration") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/lirios/materialdecoration.git") + (commit "2079487116c6c794af3a15452342a69293039b46"))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "1pczmxbmnsgj9s1g6ap55qq2q4ccibcnhsw9b6cl5rzgc48izy06")))) + (build-system qt-build-system) + (native-inputs + `(("cmake-shared" ,cmake-shared) + ("extra-cmake-modules" ,extra-cmake-modules) + ("pkg-config" ,pkg-config))) + (inputs + `(("qtbase" ,qtbase) + ("qtwayland" ,qtwayland) + ("wayland" ,wayland))) + (synopsis "Material Decoration for Qt") + (description "MaterialDecoration is a client-side decoration for Qt +applications on Wayland.") + (home-page "https://github.com/lirios/materialdecoration") + (license license:lgpl3+))) + (define-public grantlee (package (name "grantlee") -- 2.30.0 --------------DF67654C66070D3653AE6A52 Content-Type: text/x-patch; charset=UTF-8; name="0007-gnu-Add-cmake-shared.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0007-gnu-Add-cmake-shared.patch" >From 846051b9ac972e45b6a3c7e91824cca7d0c1d0ab Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Sun, 3 Jan 2021 19:03:00 -0500 Subject: [PATCH 07/18] gnu: Add cmake-shared. * gnu/packages/cmake.scm (cmake-shared): New variable. Signed-off-by: Leo Prikler --- gnu/packages/cmake.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index 56b32792fe..ab74650066 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -31,6 +31,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix deprecation) #:use-module (guix build-system gnu) @@ -43,6 +44,7 @@ #:use-module (gnu packages curl) #:use-module (gnu packages file) #:use-module (gnu packages hurd) + #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages libevent) #:use-module (gnu packages ncurses) #:use-module (gnu packages serialization) @@ -52,6 +54,33 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) +(define-public cmake-shared + (package + (name "cmake-shared") + (version "1.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/lirios/cmake-shared.git") + (commit + (string-append "v" version)))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "1srd3jmlalf0szgyp88ymhbnwds4qiywmf8lq1pif9g8irjjhdry")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) ; No target + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules))) + (synopsis "Shared CMake functions and macros") + (description "CMake-Shared are shared functions and macros for projects +using the CMake build system.") + (home-page "https://github.com/lirios/cmake-shared/") + (license license:bsd-3))) + ;;; Build phases shared between 'cmake-bootstrap' and the later variants ;;; that use cmake-build-system. (define %common-build-phases -- 2.30.0 --------------DF67654C66070D3653AE6A52 Content-Type: text/x-patch; charset=UTF-8; name="0006-gnu-Add-nimf.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0006-gnu-Add-nimf.patch" >From b619c1bef5d21b4d9297da0d964e028b1e2558f8 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Thu, 14 Jan 2021 01:07:16 -0500 Subject: [PATCH 06/18] gnu: Add nimf. * gnu/packages/language.scm (nimf): New variable. Signed-off-by: Leo Prikler --- gnu/packages/language.scm | 138 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm index 221848f2b5..67b519aa56 100644 --- a/gnu/packages/language.scm +++ b/gnu/packages/language.scm @@ -26,10 +26,15 @@ #:use-module (gnu packages anthy) #:use-module (gnu packages autotools) #:use-module (gnu packages audio) + #:use-module (gnu packages base) + #:use-module (gnu packages docbook) + #:use-module (gnu packages emacs) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) + #:use-module (gnu packages ibus) #:use-module (gnu packages java) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) @@ -47,6 +52,7 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages web) #:use-module (gnu packages xml) + #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) #:use-module (guix packages) #:use-module (guix build-system cmake) @@ -62,6 +68,138 @@ #:use-module (guix git-download) #:use-module (guix utils)) +(define-public nimf + (package + (name "nimf") + (version "1.2") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/hamonikr/nimf.git") + (commit + (string-append "nimf-" version)))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "01qi7flmaqrn2fk03sa42r0caks9d8lsv88s0bgxahhxwk1x76gc")))) + (build-system glib-or-gtk-build-system) + (outputs '("out" "doc")) + (arguments + `(#:imported-modules + (,@%glib-or-gtk-build-system-modules + (guix build cmake-build-system) + (guix build qt-build-system)) + #:modules + ((guix build glib-or-gtk-build-system) + ((guix build qt-build-system) + #:prefix qt:) + (guix build utils)) + #:configure-flags + (list + "--with-im-config-data" + "--with-imsettings-data" + (string-append "--with-html-dir=" + (assoc-ref %outputs "doc") + "/share/gtk-doc/html")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-flags + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "configure.ac" + (("-Werror") + "-Wno-error")) + #t)) + (add-after 'patch-flags 'patch-docbook-xml + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "docs" + (substitute* "nimf-docs.xml" + (("http://www.oasis-open.org/docbook/xml/4.3/") + (string-append (assoc-ref inputs "docbook-xml-4.3") + "/xml/dtd/docbook/")))) + #t)) + (add-after 'patch-docbook-xml 'patch-paths + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "configure.ac" + (("/usr/share/anthy/anthy.dic") + (string-append (assoc-ref inputs "anthy") + "/share/anthy/anthy.dic"))) + (substitute* "configure.ac" + (("/usr/bin:\\$GTK3_LIBDIR/libgtk-3-0") + (string-append (assoc-ref inputs "gtk+:bin") + "/bin:$GTK3_LIBDIR/libgtk-3-0")) + (("/usr/bin:\\$GTK2_LIBDIR/libgtk2.0-0") + (string-append (assoc-ref inputs "gtk+-2:bin") + "/bin:$GTK2_LIBDIR/libgtk2.0-0"))) + (substitute* "modules/clients/gtk/Makefile.am" + (("\\$\\(GTK3_LIBDIR\\)") + (string-append (assoc-ref outputs "out") + "/lib")) + (("\\$\\(GTK2_LIBDIR\\)") + (string-append (assoc-ref outputs "out") + "/lib"))) + (substitute* "modules/clients/qt4/Makefile.am" + (("\\$\\(QT4_LIB_DIR\\)") + (string-append (assoc-ref outputs "out") + "/lib"))) + (substitute* "modules/clients/qt5/Makefile.am" + (("\\$\\(QT5_IM_MODULE_DIR\\)") + (string-append (assoc-ref outputs "out") + "/lib/qt5/plugins/inputmethods"))) + (substitute* '("bin/nimf-settings/Makefile.am" + "data/apparmor-abstractions/Makefile.am" + "data/Makefile.am" "data/im-config/Makefile.am" + "data/imsettings/Makefile.am") + (("/etc") + (string-append (assoc-ref outputs "out") + "/etc")) + (("/usr/share") + (string-append (assoc-ref outputs "out") + "/share"))) + #t)) + (add-after 'install 'qt-wrap + (assoc-ref qt:%standard-phases 'qt-wrap))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("docbook-xml-4.3" ,docbook-xml-4.3) + ("gettext" ,gettext-minimal) + ("gobject-introspection" ,gobject-introspection) + ("gtk+-2:bin" ,gtk+-2 "bin") + ("gtk+:bin" ,gtk+ "bin") + ("gtk-doc" ,gtk-doc) + ("intltool" ,intltool) + ("libtool" ,libtool) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("which" ,which))) + (inputs + `(("anthy" ,anthy) + ("appindicator" ,libappindicator) + ("gtk+-2" ,gtk+-2) + ("gtk+" ,gtk+) + ("hangul" ,libhangul) + ("m17n-db" ,m17n-db) + ("m17n-lib" ,m17n-lib) + ("qt-4" ,qt-4) + ("qtbase" ,qtbase) + ("rime" ,librime) + ("rsvg" ,librsvg) + ("wayland" ,wayland) + ("wayland-protocols" ,wayland-protocols) + ("x11" ,libx11) + ("xkbcommon" ,libxkbcommon) + ("xklavier" ,libxklavier))) + (propagated-inputs + `(("glib" ,glib))) + (synopsis "Lightweight input method framework") + (description "Nimf is a lightweight, fast and extensible input method +framework. This package provides a fork of the original nimf project, that +focusses especially on Korean input (Hangul, Hanja, ...).") + (home-page "https://github.com/hamonikr/nimf/") + (license lgpl3+))) + (define-public hime (package (name "hime") -- 2.30.0 --------------DF67654C66070D3653AE6A52 Content-Type: text/x-patch; charset=UTF-8; name="0005-gnu-Add-hime.patch" Content-Transfer-Encoding: 8bit Content-Disposition: attachment; filename="0005-gnu-Add-hime.patch" >From ff1d90c02ee57a9a74a92e7a496eddbaaa0235bf Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Thu, 14 Jan 2021 01:02:08 -0500 Subject: [PATCH 05/18] gnu: Add hime. * gnu/packages/language.scm (hime): New variable. Signed-off-by: Leo Prikler --- gnu/packages/language.scm | 78 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 77 insertions(+), 1 deletion(-) diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm index 621bc7f6e5..221848f2b5 100644 --- a/gnu/packages/language.scm +++ b/gnu/packages/language.scm @@ -23,8 +23,11 @@ (define-module (gnu packages language) #:use-module (gnu packages) + #:use-module (gnu packages anthy) #:use-module (gnu packages autotools) #:use-module (gnu packages audio) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages java) @@ -38,6 +41,7 @@ #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages perl-check) + #:use-module (gnu packages qt) #:use-module (gnu packages sqlite) #:use-module (gnu packages swig) #:use-module (gnu packages texinfo) @@ -45,16 +49,88 @@ #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (guix packages) + #:use-module (guix build-system cmake) + #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module ((guix licenses) #:select - (bsd-3 gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ perl-license zpl2.1)) + (bsd-3 gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ perl-license zpl2.1 fdl1.2+)) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix utils)) +(define-public hime + (package + (name "hime") + (version "0.9.11") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/hime-ime/hime.git") + (commit + (string-append "v" version)))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "1wn0ici78x5qh6hvv50bf76ld7ds42hzzl4l5qz34hp8wyvrwakw")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:tests? #f ; No target + #:imported-modules + (,@%glib-or-gtk-build-system-modules + (guix build cmake-build-system) + (guix build qt-build-system)) + #:modules + ((guix build glib-or-gtk-build-system) + ((guix build qt-build-system) + #:prefix qt:) + (guix build utils)) + #:configure-flags + (list + ;; FIXME + ;; error: unknown type name ‘GtkStatusIcon’ + "--disable-system-tray") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-std + (lambda _ + (substitute* "configure" + (("gnu17") + "gnu11") + (("gnu++17") + "gnu++11")) + #t)) + (add-after 'install 'qt-wrap + (assoc-ref qt:%standard-phases 'qt-wrap))))) + (native-inputs + `(("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config) + ("whereis" ,util-linux))) + (inputs + `(("anthy" ,anthy) + ("appindicator" ,libappindicator) + ("chewing" ,libchewing) + ("gtk+" ,gtk+) + ("qtbase" ,qtbase) + ("xtst" ,libxtst))) + (synopsis "HIME Input Method Editor") + (description "Hime is an extremely easy-to-use input method framework. It +is lightweight, stable, powerful and supports many commonly used input methods, +including Cangjie, Zhuyin, Dayi, Ranked, Shrimp, Greek, Anthy, Korean, Latin, +Random Cage Fighting Birds, Cool Music etc.") + (home-page "http://hime-ime.github.io/") + (license + (list + gpl2+ + lgpl2.1+ + ;; Documentation + fdl1.2+)))) + (define-public libchewing (package (name "libchewing") -- 2.30.0 --------------DF67654C66070D3653AE6A52 Content-Type: text/x-patch; charset=UTF-8; name="0004-gnu-Add-libchewing.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0004-gnu-Add-libchewing.patch" >From 224a511e7cb2d136512784ed4352ba4f03a39133 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Thu, 14 Jan 2021 00:53:40 -0500 Subject: [PATCH 04/18] gnu: Add libchewing. * gnu/packages/language.scm (libchewing): New variable. Signed-off-by: Leo Prikler --- gnu/packages/language.scm | 61 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm index 3f17465039..621bc7f6e5 100644 --- a/gnu/packages/language.scm +++ b/gnu/packages/language.scm @@ -31,12 +31,14 @@ #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages man) + #:use-module (gnu packages ncurses) #:use-module (gnu packages ocr) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages perl-check) + #:use-module (gnu packages sqlite) #:use-module (gnu packages swig) #:use-module (gnu packages texinfo) #:use-module (gnu packages web) @@ -53,6 +55,65 @@ #:use-module (guix git-download) #:use-module (guix utils)) +(define-public libchewing + (package + (name "libchewing") + (version "0.5.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/chewing/libchewing.git") + (commit + (string-append "v" version)))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "04d09w6xdd08v6laj9y4qmqsijw5i2jvshcilhh4vg6cfnfgl2my")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-failing-tests + (lambda _ + (substitute* "test/Makefile.am" + ((" test-bopomofo ") + "") + ((" test-config ") + "") + ((" test-reset ") + "") + ((" test-symbol ") + "") + ((" test-keyboardless ") + "") + ((" test-special-symbol ") + "") + ((" test-keyboard ") + "") + ((" test-regression ") + "") + ((" test-userphrase ") + "")) + #t))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("perl" ,perl) + ("pkg-config" ,pkg-config) + ("python" ,python-wrapper) + ("texinfo" ,texinfo))) + (inputs + `(("ncurses" ,ncurses) + ("sqlite" ,sqlite))) + (synopsis "Chinese phonetic input method") + (description "Chewing is an intelligent phonetic (Zhuyin/Bopomofo) input +method, one of the most popular choices for Traditional Chinese users.") + (home-page "http://chewing.im/") + (license lgpl2.1+))) + (define-public liblouis (package (name "liblouis") -- 2.30.0 --------------DF67654C66070D3653AE6A52 Content-Type: text/x-patch; charset=UTF-8; name="0003-gnu-libappindicator-Propagate-some-inputs-as-per-.pc.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename*0="0003-gnu-libappindicator-Propagate-some-inputs-as-per-.pc.pa"; filename*1="tch" >From 092da0e19bfe7618ff294d0a60027f8ea48eb76b Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Sat, 2 Jan 2021 23:51:51 -0500 Subject: [PATCH 03/18] gnu: libappindicator: Propagate some inputs as per .pc file. * gnu/packages/freedesktop.scm (libappindicator) [inputs]: Move gtk+ and libdbusmenu to ... [propagated-inputs]: ... here. Signed-off-by: Leo Prikler --- gnu/packages/freedesktop.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index ef35349ec2..6dd37005ae 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -2021,14 +2021,15 @@ useful with system integration.") ("xvfb" ,xorg-server-for-tests))) (inputs `(("dbus-glib" ,dbus-glib) - ("gtk+" ,gtk+) - ("libdbusmenu" ,libdbusmenu) ("libindicator" ,libindicator) ("python@2" ,python-2) ("python2-pygtk" ,python2-pygtk) ("python2-pygobject-2" ,python2-pygobject-2) ;; ("mono" ,mono) ; requires non-packaged gapi ("vala" ,vala))) + (propagated-inputs + `(("gtk+" ,gtk+) + ("libdbusmenu" ,libdbusmenu))) (arguments ;; FIXME: do not hardcode gtk version `(#:configure-flags '("--with-gtk=3") -- 2.30.0 --------------DF67654C66070D3653AE6A52 Content-Type: text/x-patch; charset=UTF-8; name="0002-gnu-Add-fcitx-qt5.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0002-gnu-Add-fcitx-qt5.patch" >From c842b20ffa2dc4f925fd192b01dff982d41a3a96 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Sat, 2 Jan 2021 22:23:51 -0500 Subject: [PATCH 02/18] gnu: Add fcitx-qt5. * gnu/packages/fcitx.scm (fcitx-qt5): New variable. Signed-off-by: Leo Prikler --- gnu/packages/fcitx.scm | 61 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 59 insertions(+), 2 deletions(-) diff --git a/gnu/packages/fcitx.scm b/gnu/packages/fcitx.scm index d52edf1750..93cea7a24d 100644 --- a/gnu/packages/fcitx.scm +++ b/gnu/packages/fcitx.scm @@ -19,11 +19,13 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages fcitx) - #:use-module ((guix licenses) #:select (gpl2+)) + #:use-module ((guix licenses) #:select (gpl2+ bsd-3)) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system qt) #:use-module (gnu packages check) #:use-module (gnu packages documentation) #:use-module (gnu packages enchant) @@ -33,14 +35,69 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages icu4c) #:use-module (gnu packages iso-codes) + #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages man) #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages qt) #:use-module (gnu packages sqlite) #:use-module (gnu packages web) #:use-module (gnu packages xml) - #:use-module (gnu packages xorg)) + #:use-module (gnu packages xorg) + #:use-module (gnu packages xdisorg)) + +(define-public fcitx-qt5 + (package + (name "fcitx-qt5") + (version "1.2.5") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/fcitx/fcitx-qt5.git") + (commit version))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "1d56bp11jp85b2r4syw1clfg4vqxqfh7gygpwz8wk5sxmfmmdq83")))) + (build-system qt-build-system) + (arguments + `(#:tests? #f ; No target + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-install-dir + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "quickphrase-editor/CMakeLists.txt" + (("\\$\\{FCITX4_ADDON_INSTALL_DIR\\}") + (string-append + (assoc-ref outputs "out") + "/lib/fcitx"))) + (substitute* "platforminputcontext/CMakeLists.txt" + (("\\$\\{CMAKE_INSTALL_QTPLUGINDIR\\}") + (string-append + (assoc-ref outputs "out") + "/lib/qt5/plugins"))) + #t))))) + (native-inputs + `(("extra-cmake-modules" ,extra-cmake-modules) + ("pkg-config" ,pkg-config))) + (inputs + `(("fcitx" ,fcitx) + ("libintl" ,intltool) + ("libxkbcommon" ,libxkbcommon))) + (propagated-inputs + `(("qtbase" ,qtbase))) + (synopsis "Fcitx Qt5 Input Context") + (description "This package provides a Qt5 frontend for fcitx.") + (home-page "https://github.com/fcitx/fcitx-qt5/") + (license + (list + ;; Plugin + bsd-3 + ;; Others + gpl2+)))) (define-public presage (package -- 2.30.0 --------------DF67654C66070D3653AE6A52 Content-Type: text/x-patch; charset=UTF-8; name="0001-gnu-Add-c-gsl.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0001-gnu-Add-c-gsl.patch" >From c2f89a5b71e3fdffbcd291e74057bc9df86aa1d4 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Sat, 2 Jan 2021 18:48:03 -0500 Subject: [PATCH 01/18] gnu: Add c++-gsl. * gnu/packages/cpp.scm (c++-gsl): New variable. * gnu/packages/patches/c++-gsl-find-system-gtest.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. Signed-off-by: Leo Prikler --- gnu/local.mk | 1 + gnu/packages/cpp.scm | 29 ++++++ .../patches/c++-gsl-find-system-gtest.patch | 96 +++++++++++++++++++ 3 files changed, 126 insertions(+) create mode 100644 gnu/packages/patches/c++-gsl-find-system-gtest.patch diff --git a/gnu/local.mk b/gnu/local.mk index eb28104add..c8a578549d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -914,6 +914,7 @@ dist_patch_DATA = \ %D%/packages/patches/cursynth-wave-rand.patch \ %D%/packages/patches/cvs-CVE-2017-12836.patch \ %D%/packages/patches/cyrus-sasl-ac-try-run-fix.patch \ + %D%/packages/patches/c++-gsl-find-system-gtest.patch \ %D%/packages/patches/date-output-pkg-config-files.patch \ %D%/packages/patches/datefudge-gettimeofday.patch \ %D%/packages/patches/dbacl-include-locale.h.patch \ diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 45d3faeafb..2514af5a84 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -63,6 +63,35 @@ #:use-module (gnu packages tls) #:use-module (gnu packages web)) +(define-public c++-gsl + (package + (name "c++-gsl") + (version "3.1.0") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/microsoft/GSL.git") + (commit + (string-append "v" version)))) + (file-name + (git-file-name name version)) + (patches + (search-patches + "c++-gsl-find-system-gtest.patch")) + (sha256 + (base32 "0gbvr48f03830g3154bjhw92b8ggmg6wwh5xyb8nppk9v6w752l0")))) + (build-system cmake-build-system) + (native-inputs + `(("googletest" ,googletest) + ("pkg-config" ,pkg-config))) + (synopsis "Guidelines Support Library") + (description "c++-gsl contains functions and types that are suggested for +use by the C++ Core Guidelines maintained by the Standard C++ Foundation.") + (home-page "https://github.com/microsoft/GSL/") + (license license:expat))) + (define-public libzen (package (name "libzen") diff --git a/gnu/packages/patches/c++-gsl-find-system-gtest.patch b/gnu/packages/patches/c++-gsl-find-system-gtest.patch new file mode 100644 index 0000000000..2def650292 --- /dev/null +++ b/gnu/packages/patches/c++-gsl-find-system-gtest.patch @@ -0,0 +1,96 @@ +From f5cf01083baf7e8dc8318db3648bc6098dc32d67 Mon Sep 17 00:00:00 2001 +From: Nicholas Guriev +Date: Sat, 18 Apr 2020 13:30:17 +0300 +Subject: [PATCH] Search for GoogleTest via pkg-config first + +--- + tests/CMakeLists.txt | 55 ++++++++++++++++++++++++-------------------- + 1 file changed, 30 insertions(+), 25 deletions(-) + +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index 02193197..53d475c2 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -1,36 +1,41 @@ + cmake_minimum_required(VERSION 3.0.2) + + project(GSLTests CXX) ++include(FindPkgConfig) + + # will make visual studio generated project group files + set_property(GLOBAL PROPERTY USE_FOLDERS ON) + +-configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt) +-execute_process( +- COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . +- RESULT_VARIABLE result +- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download +-) +-if(result) +- message(FATAL_ERROR "CMake step for googletest failed: ${result}") +-endif() ++pkg_search_module(GTestMain gtest_main) ++if (NOT GTestMain_FOUND) ++ configure_file(CMakeLists.txt.in googletest-download/CMakeLists.txt) ++ execute_process( ++ COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" . ++ RESULT_VARIABLE result ++ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download ++ ) ++ if(result) ++ message(FATAL_ERROR "CMake step for googletest failed: ${result}") ++ endif() + +-execute_process( +- COMMAND ${CMAKE_COMMAND} --build . +- RESULT_VARIABLE result +- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download +-) +-if(result) +- message(FATAL_ERROR "CMake step for googletest failed: ${result}") +-endif() ++ execute_process( ++ COMMAND ${CMAKE_COMMAND} --build . ++ RESULT_VARIABLE result ++ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/googletest-download ++ ) ++ if(result) ++ message(FATAL_ERROR "CMake step for googletest failed: ${result}") ++ endif() + +-set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) ++ set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) ++ set(GTestMain_LIBRARIES gtest_main) + +-add_subdirectory( +- ${CMAKE_CURRENT_BINARY_DIR}/googletest-src +- ${CMAKE_CURRENT_BINARY_DIR}/googletest-build +- EXCLUDE_FROM_ALL +-) ++ add_subdirectory( ++ ${CMAKE_CURRENT_BINARY_DIR}/googletest-src ++ ${CMAKE_CURRENT_BINARY_DIR}/googletest-build ++ EXCLUDE_FROM_ALL ++ ) ++endif() + + if (MSVC AND (GSL_CXX_STANDARD EQUAL 17)) + set(GSL_CPLUSPLUS_OPT -Zc:__cplusplus -permissive-) +@@ -149,7 +154,7 @@ function(add_gsl_test name) + target_link_libraries(${name} + GSL + gsl_tests_config +- gtest_main ++ ${GTestMain_LIBRARIES} + ) + add_test( + ${name} +@@ -254,7 +259,7 @@ function(add_gsl_test_noexcept name) + target_link_libraries(${name} + GSL + gsl_tests_config_noexcept +- gtest_main ++ ${GTestMain_LIBRARIES} + ) + add_test( + ${name} -- 2.30.0 --------------DF67654C66070D3653AE6A52--