* 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"))) + (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)))))) -- 2.7.4