diff mbox series

[bug#64798,177/209] gnu: Add qtvirtualkeyboard-5.

Message ID tencent_179264F1FDDDE9FC978B968CD4466D26A60A@qq.com
State New
Headers show
Series None | expand

Commit Message

Z572 July 23, 2023, 8:46 a.m. UTC
* gnu/packages/qt.scm (qtvirtualkeyboard-5): New variable.
---
 gnu/packages/qt.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)
diff mbox series

Patch

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 89e49661de..405a981dc1 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -28,6 +28,7 @@ 
 ;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
 ;;; Copyright © 2022 Yash Tiwari <yasht@mailbox.org>
 ;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
+;;; Copyright © 2022 Zheng Junjie <873216071@qq.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2355,6 +2356,50 @@  (define-public qtspeech
 In such a scenario, the messaging application can read out the incoming
 message.")))
 
+(define-public qtvirtualkeyboard-5
+  (package
+    (inherit qtsvg-5)
+    (name "qtvirtualkeyboard")
+    (version %qt-version)
+    (source (origin
+              (method url-fetch)
+              (uri (qt-urls name version))
+              (sha256
+               (base32
+                "1skdjh9q4m438wwl8hwx3jc5hg22dmi5pwm3vd2yksxw6ny67rd7"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments qtsvg-5)
+       ((#:tests? _ #f) #f) ; TODO: pass 2 fail test
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (add-before 'check 'set-display
+             (lambda _
+               ;; Make Qt render "offscreen", required for tests.
+               (setenv "QT_QPA_PLATFORM" "offscreen")
+               (setenv "DISPLAY" ":1")
+               (system "Xvfb +extension GLX :1 &")))
+           (delete 'check)               ;move after the install phase
+           (add-after 'install 'check
+             (assoc-ref %standard-phases 'check))
+           (add-before 'check 'prepare-for-tests
+             (lambda* (#:key outputs #:allow-other-keys)
+               (setenv "QML2_IMPORT_PATH"
+                       (string-append (assoc-ref outputs "out")
+                                      "/lib/qt5/qml:"
+                                      (getenv "QML2_IMPORT_PATH")))
+               (setenv "QT_PLUGIN_PATH"
+                       (string-append (assoc-ref outputs "out")
+                                      "/lib/qt6/plugins:"
+                                      (getenv "QT_PLUGIN_PATH")))))))))
+    (native-inputs (list perl xorg-server-for-tests))
+    (inputs (list qtbase-5 qtdeclarative-5))
+    (propagated-inputs
+     (list qtquickcontrols-5 qtsvg-5))
+    (synopsis " QtQuick virtual keyboard")
+    (description "The Qt Speech module provides a virtual keyboard framework
+that consists of a C++ backend supporting custom input methods as well as a UI
+frontend implemented in QML.")))
+
 (define-public qtspell
   (package
     (name "qtspell")