aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/python.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/python.scm')
-rw-r--r--gnu/packages/python.scm59
1 files changed, 59 insertions, 0 deletions
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 4b0e5b71ce..268dd513e3 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -11088,3 +11088,62 @@ transfers.")
`(("python2-futures" ,python2-futures)
("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
+
+(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 _
+ (let ((nose (assoc-ref %build-inputs "python2-nose")))
+ (when 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 to find the built package, 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))))))