Files
guix-mirror/gnu/packages/stenography.scm
Sharlatan Hellseher 8ea9a9a483 gnu: plover: Update to 5.4.0.
* gnu/packages/stenography.scm (plover): Update to 5.4.0.
[propagated-inputs]: Remove python-dbus-1.2; add python-comrak and python-dbus.
2026-08-08 23:02:36 +01:00

180 lines
6.9 KiB
Scheme

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2021 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2023 Parnikkapore <poomklao@yahoo.com>
;;;
;;; 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 stenography)
#:use-module (guix build-system pyproject)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages glib)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xorg))
(define-public python-plover-stroke
(package
(name "python-plover-stroke")
(version "1.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/benoit-pierre/plover_stroke")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "104ab1lr2xr8nbq98n7h3jvskfzzg8m41rhb1ik4b7w474rlxgh3"))))
(build-system pyproject-build-system)
(native-inputs (list python-pytest python-setuptools))
(home-page "https://github.com/benoit-pierre/plover_stroke")
(synopsis "Stroke handling helper library for Plover")
(description
"This package provides a helper class for working with steno strokes.")
(license license:gpl2+)))
(define-public plover
(package
(name "plover")
(version "5.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/openstenoproject/plover")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0k7a7q6nq218kya7rx5i6cdry6v9aibz3yxfmavyg1vayp62x8d9"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
#~(list "-p" "pytest-qt"
"-p" "xvfb"
;; FIXME: Ignore failing test.
"--ignore" "test/gui_qt/test_dictionaries_widget.py"
"test")
#:phases
#~(modify-phases %standard-phases
;; FIXME: adjust after packaging pyside-6-tools.
(add-after 'unpack 'set-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "plover_build_utils/setup.py"
(("\"pyside6-(rcc|uic)\"" all prog)
(simple-format #f "~s, \"-g\", \"python\""
(search-input-file
inputs (string-append "/lib/qt6/libexec/" prog)))))))
;; FIXME: test_i18n_files_up_to_date would not pass
;; if the phase is run after build.
(add-after 'build 'update-i18n-catalog-for-tests
(lambda _
(invoke "python" "setup.py" "extract_messages" "update_catalog")))
;; Ensure that icons are found at runtime.
(add-after 'wrap 'wrap-executable
(lambda* (#:key inputs #:allow-other-keys)
(wrap-program (string-append #$output "/bin/plover")
`("QT_PLUGIN_PATH" prefix
(,(string-append #$(this-package-input "qtwayland")
"/lib/qt6/plugins/")
,(string-append #$(this-package-input "qtsvg")
"/lib/qt6/plugins/")
,(string-append #$(this-package-input "python-pyside-6")
"/lib/qt6/plugins/")))
`("LD_LIBRARY_PATH" prefix
(,(string-append #$(this-package-input "dbus") "/lib"))))))
(add-after 'install 'install-desktop
(lambda _
(install-file "plover/assets/plover.png"
(string-append
#$output "/share/icons/hicolor/128x128/apps"))
(let ((desktop
(string-append
#$output "/share/applications/plover.desktop")))
(install-file "linux/plover.desktop" (dirname desktop))
(substitute* desktop
(("Exec=plover")
(string-append "Exec=" #$output "/bin/plover"))))))
(add-after 'install 'install-udev-rules
(lambda _
(let* ((dir (string-append #$output "/lib/udev/rules.d"))
(file (string-append dir "/99-plover-uinput.rules")))
(mkdir-p dir)
(call-with-output-file file
(lambda (port)
(display
(string-append
"KERNEL==\"uinput\", MODE=\"0660\", "
"GROUP=\"input\", OPTIONS+=\"static_node=uinput\"\n")
port)))))))))
(native-inputs
(list python-babel
python-mock
python-pytest
python-pytest-qt
python-pytest-xvfb
python-setuptools))
(inputs
(list bash-minimal
dbus
qtbase
qtsvg
qtwayland
xhost))
(propagated-inputs
(list python-appdirs
python-comrak
python-dbus
python-evdev
python-hidapi
python-packaging
python-pkginfo
python-plover-stroke
python-psutil
python-pygments
python-pyserial
python-pyside-6
python-readme-renderer
python-requests-cache
python-requests-futures
python-rtf-tokenize
python-wcwidth
python-xkbcommon
python-xlib))
(home-page "https://www.openstenoproject.org/plover/")
(synopsis "Stenography engine")
(description
"Plover (rhymes with @emph{lover}) is a desktop application that
allows anyone to use stenography to write on their computer, up to
speeds of 200WPM and beyond.")
(license license:gpl2+)))