From: Raghav Gururajan <rg@raghavgururajan.name>
To: 45721@debbugs.gnu.org
Cc: Leo Prikler <leo.prikler@student.tugraz.at>
Subject: [bug#45721] Telegram Desktop (v12)
Date: Sat, 16 Jan 2021 20:04:42 -0500 [thread overview]
Message-ID: <96f7b93b-413b-c092-e93a-4f28791ffd2f@raghavgururajan.name> (raw)
In-Reply-To: <b2339e11-707e-7f7b-9e74-ce4196c8c0f1@raghavgururajan.name>
[-- Attachment #1: Type: text/plain, Size: 0 bytes --]
[-- Attachment #2: 0013-gnu-Add-telegram-desktop.patch --]
[-- Type: text/x-patch, Size: 8962 bytes --]
From ee10f0820aaaec66fed39c104b07c3ffffeed916 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/15] gnu: Add telegram-desktop.
* gnu/packages/telegram.scm: New module.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/packages/telegram.scm (telegram-desktop): New variable.
---
gnu/local.mk | 1 +
gnu/packages/telegram.scm | 207 ++++++++++++++++++++++++++++++++++++++
2 files changed, 208 insertions(+)
create mode 100644 gnu/packages/telegram.scm
diff --git a/gnu/local.mk b/gnu/local.mk
index 7d405c2462..747cbb1da7 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..7339025d49
--- /dev/null
+++ b/gnu/packages/telegram.scm
@@ -0,0 +1,207 @@
+;;; 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 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))
+ (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
+ ;; Unique API-ID and API-HASH must obtained for each client application.
+ ;; Reference: https://core.telegram.org/api/obtaining_api_id
+ ;; The following API-ID and API-HASH are generated from my account.
+ ;; In case of ban/block, contact: rg@raghavgururajan.name
+ (list
+ "-DTDESKTOP_API_ID=2791056"
+ "-DTDESKTOP_API_HASH=582d6d0b44f7a2de949e99271fd8b3f2")
+ #:phases
+ (modify-phases %standard-phases
+ ;; Git checkouts are not writable by default,
+ ;; but the package writes to it.
+ (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"
+ ;; [1] Keep SPMediaKeyTap, StatusNotifierItem,
+ ;; LibTgVoIP and rLottie.
+ ;; [2] SPMediaKeyTap and StatusNotifierItem are not available.
+ ;; [3] Telegram-Desktop uses custom fork of LibTgVoIP and rLottie,
+ ;; which are different from the ones available in Guix.
+ (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 'remove-thirdparty 'disable-emojis
+ (lambda _
+ ;; FIXME: Emojis framework of Qt doesn't get loaded,
+ ;; so causes the application to crash upon launch.
+ (substitute* "Telegram/lib_ui/ui/emoji_config.cpp"
+ (("bool _unsupported = false")
+ "bool _unsupported = true")
+ ((" generateCache\\(\\);")
+ "//generateCache();"))
+ #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)
+ ("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)))
+ (propagated-inputs
+ `(("dconf" ,dconf)))
+ (synopsis "Telegram Desktop")
+ (description "Tdesktop is the official desktop application for telegram
+messenger.")
+ (home-page "https://desktop.telegram.org/")
+ (license
+ (list
+ ;; ThirdParty
+ license:lgpl2.1+
+ ;; Others
+ license:gpl3+))))
--
2.30.0
[-- Attachment #3: 0012-gnu-Add-tg_owt.patch --]
[-- Type: text/x-patch, Size: 4035 bytes --]
From b328aa0352e9b4571b7df0364677d0cbfc3b9730 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 11 Jan 2021 20:25:49 -0500
Subject: [PATCH 12/15] gnu: Add tg_owt.
* gnu/packages/telephony.scm (tg_owt): New variable.
---
gnu/packages/telephony.scm | 77 ++++++++++++++++++++++++++++++++++++++
1 file changed, 77 insertions(+)
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index 48e30abfc3..652c06e693 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -40,6 +40,7 @@
#:use-module (gnu packages admin)
#:use-module (gnu packages aidc)
#:use-module (gnu packages algebra)
+ #:use-module (gnu packages assembly)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages audio)
@@ -47,6 +48,7 @@
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages cpp)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages docbook)
@@ -93,6 +95,81 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system qt))
+(define-public tg_owt
+ (let ((commit "ffc317415d5c8e732005414125099a6a6b52dc3e")
+ (revision "1"))
+ (package
+ (name "tg_owt")
+ (version
+ (git-version "1" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/desktop-app/tg_owt.git")
+ (commit commit)
+ (recursive? #t)))
+ (file-name
+ (git-file-name name version))
+ (sha256
+ (base32 "0f7s5jwrs6h9sdvwcv9w35ga018dy76i8wzh3nncsriwi217gc2x"))))
+ (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 'delete-thirdparty
+ (lambda _
+ (with-directory-excursion "src/third_party"
+ (for-each delete-file-recursively
+ ;; [1] Keep Abseil-CPP, LibSRTP, LibVPx, LibYuv,
+ ;; OpenH264, PFFFT, RnNoise and UsrSCTP.
+ ;; [2] Tg_owt uses custom fork of Abseil-CPP,
+ ;; LibSRTP, OpenH264 and RnNoise.
+ ;; [3] Tg_owt uses specific version/commit of LibVPx,
+ ;; which is different from one available in Guix.
+ ;; [4] LibYuv, PFFFT and UsrSCTP aren't available.
+ (list
+ "yasm")))
+ #t)))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("python" ,python-wrapper)
+ ("yasm" ,yasm)))
+ (inputs
+ `(("alsa" ,alsa-lib)
+ ("ffmpeg" ,ffmpeg)
+ ("libjpeg" ,libjpeg-turbo)
+ ;; ("libvpx" ,libvpx)
+ ;; ("libyuv" ,libyuv)
+ ("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)))))
+
(define-public libilbc
(package
(name "libilbc")
--
2.30.0
[-- Attachment #4: 0011-gnu-Add-qt5ct.patch --]
[-- Type: text/x-patch, Size: 2700 bytes --]
From 5106116af504108fd97986108ed7ebbc1401a29d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 5 Jan 2021 17:50:16 -0500
Subject: [PATCH 11/15] gnu: Add qt5ct.
* gnu/packages/qt.scm (qt5ct): New variable.
---
gnu/packages/qt.scm | 54 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 60e4f43c6a..0ce694bd92 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -105,6 +105,60 @@
#: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
+(theme, font, icons, etc.) under DE/WM without Qt integration.")
+ (home-page "https://qt5ct.sourceforge.io/")
+ (license license:bsd-2)))
+
(define-public materialdecoration
(package
(name "materialdecoration")
--
2.30.0
[-- Attachment #5: 0010-gnu-Add-rlottie.patch --]
[-- Type: text/x-patch, Size: 2155 bytes --]
From 9f7b138e9d85454e56a63974c52871fca1604df3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Tue, 5 Jan 2021 00:52:37 -0500
Subject: [PATCH 10/15] gnu: Add rlottie.
* gnu/packages/cpp.scm (rlottie): New variable.
---
gnu/packages/cpp.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index b71c7e1832..8df15a8c65 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
[-- Attachment #6: 0009-gnu-Add-range-v3.patch --]
[-- Type: text/x-patch, Size: 2206 bytes --]
From 4d805e4a839de29b59b983f59e7015f38fd93e56 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Mon, 4 Jan 2021 23:59:17 -0500
Subject: [PATCH 09/15] gnu: Add range-v3.
* gnu/packages/cpp.scm (range-v3): New variable.
---
gnu/packages/cpp.scm | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 6a22cf5749..b71c7e1832 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 gsl
(package
(name "gsl")
--
2.30.0
[-- Attachment #7: 0008-gnu-Add-materialdecoration.patch --]
[-- Type: text/x-patch, Size: 2244 bytes --]
From 48edef4bfe7b2adf397725b369e0ad02725482c8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sun, 3 Jan 2021 19:08:43 -0500
Subject: [PATCH 08/15] gnu: Add materialdecoration.
* gnu/packages/qt.scm (materialdecoration): New variable.
---
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
[-- Attachment #8: 0007-gnu-Add-cmake-shared.patch --]
[-- Type: text/x-patch, Size: 2204 bytes --]
From 67de96d5d6f291f199e58a2ef056cd73b6444fd7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sun, 3 Jan 2021 19:03:00 -0500
Subject: [PATCH 07/15] gnu: Add cmake-shared.
* gnu/packages/cmake.scm (cmake-shared): New variable.
---
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
[-- Attachment #9: 0006-gnu-Add-nimf.patch --]
[-- Type: text/x-patch, Size: 6772 bytes --]
From d1f8f17e93d4c996307f9a9c2abcc1df551570c2 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Thu, 14 Jan 2021 01:07:16 -0500
Subject: [PATCH 06/15] gnu: Add nimf.
* gnu/packages/language.scm (nimf): New variable.
---
gnu/packages/language.scm | 138 ++++++++++++++++++++++++++++++++++++++
1 file changed, 138 insertions(+)
diff --git a/gnu/packages/language.scm b/gnu/packages/language.scm
index 221848f2b5..18373f2c6c 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 is a fork of original nimf project, with special focus on
+Korean.")
+ (home-page "https://github.com/hamonikr/nimf/")
+ (license lgpl3+)))
+
(define-public hime
(package
(name "hime")
--
2.30.0
[-- Attachment #10: 0005-gnu-Add-hime.patch --]
[-- Type: text/x-patch, Size: 4206 bytes --]
From 91f99169ab0cca7d4686b4a3e6863f41f6695d66 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Thu, 14 Jan 2021 01:02:08 -0500
Subject: [PATCH 05/15] gnu: Add hime.
* gnu/packages/language.scm (hime): New variable.
---
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
[-- Attachment #11: 0004-gnu-Add-libchewing.patch --]
[-- Type: text/x-patch, Size: 3048 bytes --]
From b1aefee1089fb16ffd6e25c8102a709651540f83 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Thu, 14 Jan 2021 00:53:40 -0500
Subject: [PATCH 04/15] gnu: Add libchewing.
* gnu/packages/language.scm (libchewing): New variable.
---
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
[-- Attachment #12: 0003-gnu-libappindicator-Propagate-some-inputs-as-per-.pc.patch --]
[-- Type: text/x-patch, Size: 1291 bytes --]
From 331ad0dff904836e8b0827a4884a619697cee01c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sat, 2 Jan 2021 23:51:51 -0500
Subject: [PATCH 03/15] gnu: libappindicator: Propagate some inputs as per .pc
file.
* gnu/packages/freedesktop.scm (libappindicator) [inputs]: Move gtk+
and libdbusmenu to ...
[propagated-inputs]: ... here.
---
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
[-- Attachment #13: 0002-gnu-Add-fcitx-qt5.patch --]
[-- Type: text/x-patch, Size: 3430 bytes --]
From 91386944fcf9663ac1dffbf59544194bce3ede97 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sat, 2 Jan 2021 22:23:51 -0500
Subject: [PATCH 02/15] gnu: Add fcitx-qt5.
* gnu/packages/fcitx.scm (fcitx-qt5): New variable.
---
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..a4ad008da9 100644
--- a/gnu/packages/fcitx.scm
+++ b/gnu/packages/fcitx.scm
@@ -19,11 +19,13 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(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 "Fcitx support for Qt5")
+ (home-page "https://github.com/fcitx/fcitx-qt5/")
+ (license
+ (list
+ ;; Plugin
+ bsd-3
+ ;; Others
+ gpl2+))))
(define-public presage
(package
--
2.30.0
[-- Attachment #14: 0001-gnu-Add-GSL.patch --]
[-- Type: text/x-patch, Size: 5732 bytes --]
From a38babfc295363905b3f0badc623fd4a770a9315 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <rg@raghavgururajan.name>
Date: Sat, 2 Jan 2021 18:48:03 -0500
Subject: [PATCH 01/15] gnu: Add GSL.
* gnu/packages/cpp.scm (gsl): New variable.
* gnu/packages/patches/gsl-gtest.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
gnu/local.mk | 1 +
gnu/packages/cpp.scm | 28 ++++++++
gnu/packages/patches/gsl-gtest.patch | 96 ++++++++++++++++++++++++++++
3 files changed, 125 insertions(+)
create mode 100644 gnu/packages/patches/gsl-gtest.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index eb28104add..7d405c2462 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1124,6 +1124,7 @@ dist_patch_DATA = \
%D%/packages/patches/grub-efi-fat-serial-number.patch \
%D%/packages/patches/grub-setup-root.patch \
%D%/packages/patches/grub-verifiers-Blocklist-fallout-cleanup.patch \
+ %D%/packages/patches/gsl-gtest.patch \
%D%/packages/patches/gspell-dash-test.patch \
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
%D%/packages/patches/guile-2.2-skip-oom-test.patch \
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 45d3faeafb..6a22cf5749 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -63,6 +63,34 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages web))
+(define-public gsl
+ (package
+ (name "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 "gsl-gtest.patch"))
+ (sha256
+ (base32 "0gbvr48f03830g3154bjhw92b8ggmg6wwh5xyb8nppk9v6w752l0"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("googletest" ,googletest)
+ ("pkg-config" ,pkg-config)))
+ (synopsis "Guidelines Support Library")
+ (description "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/gsl-gtest.patch b/gnu/packages/patches/gsl-gtest.patch
new file mode 100644
index 0000000000..2def650292
--- /dev/null
+++ b/gnu/packages/patches/gsl-gtest.patch
@@ -0,0 +1,96 @@
+From f5cf01083baf7e8dc8318db3648bc6098dc32d67 Mon Sep 17 00:00:00 2001
+From: Nicholas Guriev <guriev-ns@ya.ru>
+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
next prev parent reply other threads:[~2021-01-17 1:06 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-08 0:20 [bug#45721] Telegram Desktop Raghav Gururajan
2021-01-08 0:44 ` [bug#45721] Telegram Desktop (v2) Raghav Gururajan
2021-01-12 3:12 ` [bug#45721] Telegram Desktop (v3) Raghav Gururajan
2021-01-12 3:27 ` [bug#45721] Telegram Desktop (v4) Raghav Gururajan
2021-01-13 22:13 ` [bug#45721] Telegram Desktop (v5) Raghav Gururajan
2021-01-14 5:39 ` [bug#45721] Telegram Desktop (v6) Raghav Gururajan
2021-01-14 6:41 ` [bug#45721] Telegram Desktop (v7) Raghav Gururajan
2021-01-14 10:38 ` [bug#45721] Telegram Desktop (v8) Raghav Gururajan
2021-01-16 16:08 ` [bug#45721] Telegram Desktop (v9) Raghav Gururajan
2021-01-16 17:15 ` Nicolò Balzarotti
2021-01-16 21:22 ` Raghav Gururajan
2021-01-16 18:04 ` Leo Prikler
2021-01-17 0:19 ` Raghav Gururajan
2021-01-17 0:36 ` Leo Prikler
2021-01-17 1:10 ` Raghav Gururajan
2021-01-17 0:05 ` [bug#45721] Telegram Desktop (v10) Raghav Gururajan
2021-01-17 0:29 ` [bug#45721] Telegram Desktop (v11) Raghav Gururajan
2021-01-17 1:04 ` Raghav Gururajan [this message]
2021-01-17 1:52 ` [bug#45721] Telegram Desktop (v13) Raghav Gururajan
2021-01-17 12:13 ` Leo Prikler
2021-01-17 14:49 ` Raghav Gururajan
2021-01-17 19:08 ` [bug#45721] [PATCH v15] Add Telegram Desktop Leo Prikler
2021-01-17 21:59 ` Raghav Gururajan
2021-01-19 10:11 ` [bug#45721] [PATCH v16] " Leo Prikler
2021-01-17 14:43 ` [bug#45721] Telegram Desktop (v14) Raghav Gururajan
2021-01-20 10:41 ` [bug#45721] Telegram Desktop (v17) Raghav Gururajan
2021-01-20 11:07 ` Leo Prikler
2021-01-20 12:32 ` Raghav Gururajan
2021-01-20 12:29 ` [bug#45721] Telegram Desktop (v18) Raghav Gururajan
2021-01-20 13:49 ` [bug#45721] Telegram Desktop (v19) Raghav Gururajan
2021-01-20 14:42 ` [bug#45721] Telegram Desktop (v20) Raghav Gururajan
2021-01-20 15:10 ` Leo Prikler
2021-01-21 3:44 ` [bug#45721] Telegram Desktop (v21) Raghav Gururajan
2021-01-21 19:11 ` [bug#45721] [PATCH v22] Add Telegram Desktop Leo Prikler
2021-01-21 19:37 ` Raghav Gururajan
2021-01-21 19:44 ` Leo Prikler
2021-01-21 19:46 ` Raghav Gururajan
2021-01-22 4:27 ` [bug#45721] Telegram Desktop (v23) Raghav Gururajan
2021-01-22 7:42 ` Leo Prikler
2021-01-28 0:41 ` Raghav Gururajan
2021-01-28 0:41 ` [bug#45721] Telegram Desktop (v24) Raghav Gururajan
2021-01-28 7:47 ` Leo Prikler
2021-01-30 17:04 ` [bug#45721] Telegram Desktop (v25) Raghav Gururajan
[not found] ` <e881733992b22e238f2b90149dbceac6c3467180.camel@student.tugraz.at>
[not found] ` <e5040a67-824f-17c8-e16f-1a68531b3d5f@raghavgururajan.name>
2021-01-30 18:24 ` Leo Prikler
2021-01-30 19:30 ` Raghav Gururajan
2021-01-30 18:02 ` [bug#45721] Telegram Desktop (v26) Raghav Gururajan
2021-01-30 19:02 ` [bug#45721] Telegram Desktop (v27) Raghav Gururajan
2021-01-31 8:37 ` bug#45721: " Leo Prikler
2021-01-31 19:11 ` [bug#45721] " Raghav Gururajan
2021-01-31 13:57 ` Jonathan Brielmaier
2021-01-31 14:10 ` Leo Prikler
2021-01-31 16:50 ` Jonathan Brielmaier
2021-01-31 16:56 ` Leo Prikler
2021-01-31 17:01 ` Jonathan Brielmaier
2021-01-31 19:14 ` Raghav Gururajan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=96f7b93b-413b-c092-e93a-4f28791ffd2f@raghavgururajan.name \
--to=rg@raghavgururajan.name \
--cc=45721@debbugs.gnu.org \
--cc=leo.prikler@student.tugraz.at \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.