[bug#59974] My GNU Health package
Commit Message
Hi Maxim,
> Would wrap-script instead of wrap-program work here (I think it does for
> Python and other interpreted languages)? This tends to produce cleaner
> --help message, when $0 (arg0) is used in these, and it looks better in
> 'top' since there's only one script and not a .mygnuhealth-real wrapped
> one.
I've changed the `wrap-program` to `wrap-script` but it fails to run:
$ $ /gnu/store/zxv1d25inf2iyc9bl5lf2wkrm951mvll-mygnuhealth-1.0.5/bin/mygnuhealth
/gnu/store/zxv1d25inf2iyc9bl5lf2wkrm951mvll-mygnuhealth-1.0.5/bin/mygnuhealth: /gnu/store/zxv1d25inf2iyc9bl5lf2wkrm951mvll-mygnuhealth-1.0.5/bin/.mygnuhealth-real: #f: bad interpreter: No such file or directory
/gnu/store/zxv1d25inf2iyc9bl5lf2wkrm951mvll-mygnuhealth-1.0.5/bin/mygnuhealth: line 3: /gnu/store/zxv1d25inf2iyc9bl5lf2wkrm951mvll-mygnuhealth-1.0.5/bin/.mygnuhealth-real: Success
$ head /gnu/store/zxv1d25inf2iyc9bl5lf2wkrm951mvll-mygnuhealth-1.0.5/bin/.mygnuhealth-real
#!#f --no-auto-compile
#!#; Guix wrapper
Haven't used the `wrap-script` before but here it puts completely wrong shebang.
Seems this behavior has been already reported but not resolved. [1]
Patch V3 changes:
* added `bash-minimal` and `python` as dependencies.
1 https://issues.guix.gnu.org/40039
----
Petr
Comments
Hi Petr,
phodina <phodina@protonmail.com> writes:
> Hi Maxim,
>
>> Would wrap-script instead of wrap-program work here (I think it does for
>> Python and other interpreted languages)? This tends to produce cleaner
>> --help message, when $0 (arg0) is used in these, and it looks better in
>> 'top' since there's only one script and not a .mygnuhealth-real wrapped
>> one.
>
> I've changed the `wrap-program` to `wrap-script` but it fails to run:
>
> $ $ /gnu/store/zxv1d25inf2iyc9bl5lf2wkrm951mvll-mygnuhealth-1.0.5/bin/mygnuhealth
> /gnu/store/zxv1d25inf2iyc9bl5lf2wkrm951mvll-mygnuhealth-1.0.5/bin/mygnuhealth:
> /gnu/store/zxv1d25inf2iyc9bl5lf2wkrm951mvll-mygnuhealth-1.0.5/bin/.mygnuhealth-real:
> #f: bad interpreter: No such file or directory
> /gnu/store/zxv1d25inf2iyc9bl5lf2wkrm951mvll-mygnuhealth-1.0.5/bin/mygnuhealth:
> line 3:
> /gnu/store/zxv1d25inf2iyc9bl5lf2wkrm951mvll-mygnuhealth-1.0.5/bin/.mygnuhealth-real:
> Success
>
> $ head /gnu/store/zxv1d25inf2iyc9bl5lf2wkrm951mvll-mygnuhealth-1.0.5/bin/.mygnuhealth-real
> #!#f --no-auto-compile
> #!#; Guix wrapper
>
> Haven't used the `wrap-script` before but here it puts completely wrong shebang.
>
> Seems this behavior has been already reported but not resolved. [1]
Too bad! I'll try to find the time to look at it soon.
Hello,
phodina <phodina@protonmail.com> writes:
[...]
> Patch V3 changes:
>
> * added `bash-minimal` and `python` as dependencies.
Thanks for V3!
> ----
> Petr
>
> From a997a19afaacb9cff523bff39231b176c4553921 Mon Sep 17 00:00:00 2001
> From: Petr Hodina <phodina@protonmail.com>
> Date: Sun, 11 Dec 2022 18:10:17 +0100
> Subject: [PATCH v3] gnu: Add mygnuhealth.
>
> * gnu/packages/medical.scm (mygnuhealth): New variable.
>
> diff --git a/gnu/packages/medical.scm b/gnu/packages/medical.scm
> index 6c9cc757eb..c41d8c8b3d 100644
> --- a/gnu/packages/medical.scm
> +++ b/gnu/packages/medical.scm
> @@ -1,6 +1,7 @@
> ;;; GNU Guix --- Functional package management for GNU
> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
> ;;; Copyright © 2017 Quiliro <quiliro@fsfla.org>
> +;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
> ;;;
> ;;; This file is part of GNU Guix.
> ;;;
> @@ -20,12 +21,66 @@
> (define-module (gnu packages medical)
> #:use-module (guix build-system python)
> #:use-module (guix download)
> + #:use-module (guix gexp)
> #:use-module (guix licenses)
> #:use-module (guix packages)
> #:use-module (gnu packages databases)
> + #:use-module (gnu packages kde-frameworks) ; kirigami
> + #:use-module (gnu packages python-crypto)
> + #:use-module (gnu packages python-web)
> #:use-module (gnu packages python-xyz)
> #:use-module (gnu packages qt))
>
> +(define-public mygnuhealth
> + (package
> + (name "mygnuhealth")
> + (version "1.0.5")
> + (source (origin
> + (method url-fetch)
> + (uri (pypi-uri "MyGNUHealth" version))
> + (sha256
> + (base32
> + "1jcrriccqzb4jx7zayhiqmpvi3cvfy3bbf9zr3m83878f94yww8j"))))
> + (build-system python-build-system)
> + (arguments
> + (list #:phases #~(modify-phases %standard-phases
> + (add-after 'install 'wrap-executable
> + (lambda* (#:key inputs #:allow-other-keys)
> + (let ((out #$output)
> + (qml "/lib/qt5/qml"))
> + (wrap-program (string-append out
> + "/bin/mygnuhealth")
> + `("QML2_IMPORT_PATH" ":" prefix
> + (,(string-append out qml)
> + ,@(map (lambda (i)
> + (string-append
> + (assoc-ref inputs i) qml))
> + '("kirigami"
> + "qtdeclarative"
> + "qtgraphicaleffects"
> + "qtquickcontrols"
> + "qtquickcontrols2"))))))))
Here it'd be nicer to use wrap-all-qt-programs from (guix build
qt-utils), to avoid hard coding the qt version in the QML wrapped path.
> + (add-before 'check 'env-setup
> + (lambda _
> + (mkdir-p "/tmp/mygh/")
> + (setenv "HOME" "/tmp"))))))
> + (native-inputs (list python-pyside-2))
> + (inputs (list qtbase-5
> + qtdeclarative-5
> + qtgraphicaleffects
> + qtquickcontrols-5
> + qtquickcontrols2-5
> + kirigami))
Sort k before q :-)
> + (propagated-inputs (list python-bcrypt python-matplotlib python-requests
> + python-tinydb))
> + (home-page "https://www.gnuhealth.org")
> + (synopsis "The GNU Health Personal Health Record")
> + (description
> + "This package provides GNUHealth Personal Health Record
> +application for desktop and mobile devices that integrates with the GNU
> +Health Federation.")
> + (license gpl3+)))
The rest LGTM.
From a997a19afaacb9cff523bff39231b176c4553921 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Sun, 11 Dec 2022 18:10:17 +0100
Subject: [PATCH v3] gnu: Add mygnuhealth.
* gnu/packages/medical.scm (mygnuhealth): New variable.
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Quiliro <quiliro@fsfla.org>
+;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,12 +21,66 @@
(define-module (gnu packages medical)
#:use-module (guix build-system python)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (gnu packages databases)
+ #:use-module (gnu packages kde-frameworks) ; kirigami
+ #:use-module (gnu packages python-crypto)
+ #:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt))
+(define-public mygnuhealth
+ (package
+ (name "mygnuhealth")
+ (version "1.0.5")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "MyGNUHealth" version))
+ (sha256
+ (base32
+ "1jcrriccqzb4jx7zayhiqmpvi3cvfy3bbf9zr3m83878f94yww8j"))))
+ (build-system python-build-system)
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ (add-after 'install 'wrap-executable
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((out #$output)
+ (qml "/lib/qt5/qml"))
+ (wrap-program (string-append out
+ "/bin/mygnuhealth")
+ `("QML2_IMPORT_PATH" ":" prefix
+ (,(string-append out qml)
+ ,@(map (lambda (i)
+ (string-append
+ (assoc-ref inputs i) qml))
+ '("kirigami"
+ "qtdeclarative"
+ "qtgraphicaleffects"
+ "qtquickcontrols"
+ "qtquickcontrols2"))))))))
+ (add-before 'check 'env-setup
+ (lambda _
+ (mkdir-p "/tmp/mygh/")
+ (setenv "HOME" "/tmp"))))))
+ (native-inputs (list python-pyside-2))
+ (inputs (list qtbase-5
+ qtdeclarative-5
+ qtgraphicaleffects
+ qtquickcontrols-5
+ qtquickcontrols2-5
+ kirigami))
+ (propagated-inputs (list python-bcrypt python-matplotlib python-requests
+ python-tinydb))
+ (home-page "https://www.gnuhealth.org")
+ (synopsis "The GNU Health Personal Health Record")
+ (description
+ "This package provides GNUHealth Personal Health Record
+application for desktop and mobile devices that integrates with the GNU
+Health Federation.")
+ (license gpl3+)))
+
(define-public openmolar-1
(package
(name "openmolar")
--
2.38.1