diff mbox

[1/2] gnu: Add python-setproctitle and python2-setproctitle.

Message ID 1474835077-19700-1-git-send-email-h.goebel@crazy-compilers.com
State New
Headers show

Commit Message

Hartmut Goebel Sept. 25, 2016, 8:24 p.m. UTC
* gnu/packages/python.scm (python-setproctitle, python2-setproctitle):
  New variables.
---
 gnu/packages/python.scm | 58 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

Comments

Danny Milosavljevic Sept. 25, 2016, 8:38 p.m. UTC | #1
On Sun, 25 Sep 2016 22:24:36 +0200
Hartmut Goebel <h.goebel@crazy-compilers.com> wrote:
...
> +                 (substitute* "Makefile"
> +                   (("\\$\\(PYTHON\\) [^ ]which nosetests[^ ] ")
> +                    (string-append nose "/bin/nosetests "))))
> +	       #t)))
    ^^^^^ tab character is there. Why?
Efraim Flashner Oct. 19, 2016, 2:45 p.m. UTC | #2
On Sun, Sep 25, 2016 at 10:24:36PM +0200, Hartmut Goebel wrote:
> * gnu/packages/python.scm (python-setproctitle, python2-setproctitle):
>   New variables.
> ---
>  gnu/packages/python.scm | 58 +++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 58 insertions(+)
> 
> diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> index 688a5d4..95a2027 100644
> --- a/gnu/packages/python.scm
> +++ b/gnu/packages/python.scm
> @@ -10939,3 +10939,61 @@ with an associated set of resolve methods that know how to fetch data.")
>  provide extendible implementations of common aspects of a cloud so that you can
>  focus on building massively scalable web applications.")
>      (license license:expat)))
> +
> +(define-public python-setproctitle
> +(package
> +  (name "python-setproctitle")
> +  (version "1.1.10")
> +  (source
> +    (origin
> +      (method url-fetch)
> +      (uri (pypi-uri "setproctitle" version))
> +      (sha256
> +        (base32
> +          "163kplw9dcrw0lffq1bvli5yws3rngpnvrxrzdw89pbphjjvg0v2"))))
> +  (build-system python-build-system)
> +  (arguments
> +   '(#:phases
> +     (modify-phases %standard-phases
> +        (add-before 'check 'patch-Makefile
> +           ;; Stricly this is only required for the python2 variant.
> +           ;; But adding a phase in an inherited package seems to be
> +           ;; cumbersum. So we patch even for python3.
> +           (lambda _ ;* (#:key inputs #:allow-other-keys)
> +             (let ((nose (assoc-ref %build-inputs "python2-nose")))
> +               (if nose
> +                 (substitute* "Makefile"
> +                   (("\\$\\(PYTHON\\) [^ ]which nosetests[^ ] ")
> +                    (string-append nose "/bin/nosetests "))))
> +	       #t)))
> +        (replace 'check
> +           (lambda _
> +             (setenv "PYTHON" (or (which "python3") (which "python")))

                                 IIRC (or ... here will return true,
                                 which i'm sure is not the point.

> +             (setenv "PYCONFIG" (or (which "python3-config") (which "python-config")))
> +             (setenv "CC" "gcc")
> +             ;; No need to extend PYTHONPATH so the built package will
> +             ;; be found, since the Makefile will build anyway
> +             (zero? (system* "make" "check"))
> +             )))))

These close perentheses should be on the previous line

> +  (native-inputs
> +   `(("procps" ,procps))) ; required for tests
> +  (home-page
> +    "https://github.com/dvarrazzo/py-setproctitle")
> +  (synopsis "Setproctitle implementation for Python to customize the process title")
> +  (description "The library allows a process to change its title (as
> +displayed by system tools such as ps and top).
> +
> +Changing the title is mostly useful in multi-process systems, for
> +example when a master process is forked: changing the children's title
> +allows to identify the task each process is busy with.  The technique
> +is used by PostgreSQL and the OpenSSH Server for example.")
> +  (license license:bsd-3)
> +  (properties `((python2-variant . ,(delay python2-setproctitle))))))
> +
> +(define-public python2-setproctitle
> +  (let ((base (package-with-python2 
> +               (strip-python2-variant python-setproctitle))))
> +    (package
> +      (inherit base)
> +      (native-inputs `(("python2-nose" ,python2-nose)
> +                       ,@(package-native-inputs base))))))
> -- 
> 2.7.4
> 
>
Hartmut Goebel Oct. 20, 2016, 7:56 a.m. UTC | #3
Am 19.10.2016 um 16:45 schrieb Efraim Flashner:
>> > +             (setenv "PYTHON" (or (which "python3") (which "python")))
>                                  IIRC (or ... here will return true,
>                                  which i'm sure is not the point.

https://www.gnu.org/software/guile/manual/html_node/and-or.html#and-or says:
"The value of the last evaluated expression is returned."

If it wouldn't, the code would not have worked here :-)

Thanks for the review, nevertheless:-)
diff mbox

Patch

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 688a5d4..95a2027 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -10939,3 +10939,61 @@  with an associated set of resolve methods that know how to fetch data.")
 provide extendible implementations of common aspects of a cloud so that you can
 focus on building massively scalable web applications.")
     (license license:expat)))
+
+(define-public python-setproctitle
+(package
+  (name "python-setproctitle")
+  (version "1.1.10")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (pypi-uri "setproctitle" version))
+      (sha256
+        (base32
+          "163kplw9dcrw0lffq1bvli5yws3rngpnvrxrzdw89pbphjjvg0v2"))))
+  (build-system python-build-system)
+  (arguments
+   '(#:phases
+     (modify-phases %standard-phases
+        (add-before 'check 'patch-Makefile
+           ;; Stricly this is only required for the python2 variant.
+           ;; But adding a phase in an inherited package seems to be
+           ;; cumbersum. So we patch even for python3.
+           (lambda _ ;* (#:key inputs #:allow-other-keys)
+             (let ((nose (assoc-ref %build-inputs "python2-nose")))
+               (if nose
+                 (substitute* "Makefile"
+                   (("\\$\\(PYTHON\\) [^ ]which nosetests[^ ] ")
+                    (string-append nose "/bin/nosetests "))))
+	       #t)))
+        (replace 'check
+           (lambda _
+             (setenv "PYTHON" (or (which "python3") (which "python")))
+             (setenv "PYCONFIG" (or (which "python3-config") (which "python-config")))
+             (setenv "CC" "gcc")
+             ;; No need to extend PYTHONPATH so the built package will
+             ;; be found, since the Makefile will build anyway
+             (zero? (system* "make" "check"))
+             )))))
+  (native-inputs
+   `(("procps" ,procps))) ; required for tests
+  (home-page
+    "https://github.com/dvarrazzo/py-setproctitle")
+  (synopsis "Setproctitle implementation for Python to customize the process title")
+  (description "The library allows a process to change its title (as
+displayed by system tools such as ps and top).
+
+Changing the title is mostly useful in multi-process systems, for
+example when a master process is forked: changing the children's title
+allows to identify the task each process is busy with.  The technique
+is used by PostgreSQL and the OpenSSH Server for example.")
+  (license license:bsd-3)
+  (properties `((python2-variant . ,(delay python2-setproctitle))))))
+
+(define-public python2-setproctitle
+  (let ((base (package-with-python2 
+               (strip-python2-variant python-setproctitle))))
+    (package
+      (inherit base)
+      (native-inputs `(("python2-nose" ,python2-nose)
+                       ,@(package-native-inputs base))))))