diff mbox series

[bug#65139,1/3] gnu: Add pyotherside.

Message ID 8b46df8977bee667a041d4b94e565d5ae76b02ab.1691468046.git.maxim.cournoyer@gmail.com
State New
Headers show
Series Add yubikey-manager-qt. | expand

Commit Message

Maxim Cournoyer Aug. 8, 2023, 4:14 a.m. UTC
* gnu/packages/qt.scm (pyotherside): New variable.
---

 gnu/packages/qt.scm | 49 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

Comments

Andreas Enge Aug. 9, 2023, 7:51 a.m. UTC | #1
Hello,

the packages look good, although it is unfortunate to add a dependency
on Qt5.

Andreas
Maxim Cournoyer Aug. 10, 2023, 1:36 p.m. UTC | #2
Hi Andreas,

Andreas Enge <andreas@enge.fr> writes:

> Hello,
>
> the packages look good, although it is unfortunate to add a dependency
> on Qt5.

I'd like to move more things to Qt6 as well, but at the pace of things,
it seems this will take years.

I've installed the series and added you as reviewer to the last commit
message; I hope that's fine.
diff mbox series

Patch

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 5d7af0d0c8..581df38eaa 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -3215,6 +3215,55 @@  (define-public single-application-qt5
 instances.")
       (license license:expat))))
 
+(define-public pyotherside
+  (package
+    (name "pyotherside")
+    (version "1.6.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/thp/pyotherside")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0vwl088p8zjkh2rwmzwpz5mkjs2rfyb80018dq4r571c9vpwp2r0"))))
+    (build-system qt-build-system)
+    (arguments
+     (list
+      #:qtbase qtbase
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'fix-installation-prefix
+            (lambda _
+              ;; The QT_INSTALL_QML property points to the qtbase
+              ;; installation prefix.
+              (substitute* "src/src.pro"
+                (("\\$\\$\\[QT_INSTALL_QML]")
+                 (string-append #$output "/lib/qt"
+                                #$(version-major (package-version qtbase))
+                                "/qml")))))
+          (replace 'configure
+            (lambda _
+              (invoke "qmake")))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "./tests/tests"))))
+          (replace 'install
+            ;; Specify a specific install target, otherwise the build fails
+            ;; attempting to install the qtquicktests target to the qtbase
+            ;; installation prefix.
+            (lambda _
+              (invoke "make" "sub-src-install_subtargets"))))))
+    (inputs (list python qtdeclarative qtquickcontrols2 qtsvg))
+    (home-page "https://thp.io/2011/pyotherside/")
+    (synopsis "Qt plugin providing access to a Python 3 interpreter from QML")
+    (description "Pyotherside is a Qt plugin providing access to a Python 3
+interpreter from QML for creating asynchronous mobile and desktop UIs with
+Python.")
+    (license license:isc)))
+
 (define-public python-sip
   (package
     (name "python-sip")