Message ID | 87va1w6iki.fsf@ponder |
---|---|
State | Accepted |
Headers | show |
Series | [bug#34365] gnu: Add python-daemon. | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | Apply failed |
Hi Vagrant, > * gnu/packages/python-xyz.scm (python-daemon): New variable. Thanks for the patch! > + (add-before 'check 'disable-tests > + (lambda _ > + ;; FIXME: Determine why test fails > + (substitute* "test/test_daemon.py" > + (("test_detaches_process_context") > + "skip_test_detaches_process_context"))))))) Before pushing this I’ll add a final #T to this phase. (In the past #F would indicate failure, but that’s on longer the case. “substitute*” annoyingly returns an unspecified value.) > + (propagated-inputs > + `(("python-docutils" ,python-docutils) > + ("python-lockfile" ,python-lockfile) > + ("python-setuptools" ,python-setuptools))) > + (native-inputs > + `(("python-unittest2" ,python-unittest2) > + ("python-testtools" ,python-testtools) > + ("python-testscenarios" ,python-testscenarios) > + ("python-mock" ,python-mock) > + ("python-docutils" ,python-docutils))) Docutils is both among native inputs as well as regular inputs. Is this intended? > + (license (list license:asl2.0 license:gpl3+)))) What does this list mean?
On 2019-02-07, Ricardo Wurmus wrote: >> * gnu/packages/python-xyz.scm (python-daemon): New variable. > > Thanks for the patch! Thanks for the lightning fast review! >> + (add-before 'check 'disable-tests >> + (lambda _ >> + ;; FIXME: Determine why test fails >> + (substitute* "test/test_daemon.py" >> + (("test_detaches_process_context") >> + "skip_test_detaches_process_context"))))))) > > Before pushing this I’ll add a final #T to this phase. (In the past #F > would indicate failure, but that’s on longer the case. “substitute*” > annoyingly returns an unspecified value.) My eyes still have trouble identifying where exactly this would go... and #T/#F vs. #t/#f has me a bit confused for good measure! Obviously, it'd be better to fix the test, or at least understand why it fails... >> + (propagated-inputs >> + `(("python-docutils" ,python-docutils) >> + ("python-lockfile" ,python-lockfile) >> + ("python-setuptools" ,python-setuptools))) >> + (native-inputs >> + `(("python-unittest2" ,python-unittest2) >> + ("python-testtools" ,python-testtools) >> + ("python-testscenarios" ,python-testscenarios) >> + ("python-mock" ,python-mock) >> + ("python-docutils" ,python-docutils))) > > Docutils is both among native inputs as well as regular inputs. Is this > intended? I *think* it only needs to be in native-inputs; I think propagated outputs was generated by the importer... and now that my attention is drawn to it, I'm dubious of python-setuptools needing to be in propagated-inputs as well. I can update it and check again later... >> + (license (list license:asl2.0 license:gpl3+)))) > > What does this list mean? I guess it's best practice in Guix to make a comment when multiple licenses are listed? Apparently only setup.py is gpl3+, everything else is apache 2.0 licensed. That was my quick look at the code itself, and basically confirmed by: https://sources.debian.org/src/python-daemon/2.2.3-1/debian/copyright/ live well, vagrant
Vagrant Cascadian <vagrant@debian.org> writes: >> Before pushing this I’ll add a final #T to this phase. (In the past #F >> would indicate failure, but that’s on longer the case. “substitute*” >> annoyingly returns an unspecified value.) > > My eyes still have trouble identifying where exactly this would > go... and #T/#F vs. #t/#f has me a bit confused for good measure! Oh sorry. It should go after the (substitute* …) clause. We sometimes capitalize variable names and values when referring to them. We would write “#t” here. >>> + (license (list license:asl2.0 license:gpl3+)))) >> >> What does this list mean? > > I guess it's best practice in Guix to make a comment when multiple > licenses are listed? Yes. We don’t have a syntactic way to express license algebra, so we usually add a comment when a list of licenses applies. > Apparently only setup.py is gpl3+, everything else is apache 2.0 > licensed. That was my quick look at the code itself, and basically > confirmed by: > > https://sources.debian.org/src/python-daemon/2.2.3-1/debian/copyright/ Excellent. This can be added as a short comment above the license field. Thanks! -- Ricardo
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index d2b348942..f8a6db720 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -2188,6 +2188,57 @@ logging and tracing of the execution.") (define-public python2-joblib (package-with-python2 python-joblib)) +(define-public python-daemon + (package + (name "python-daemon") + (version "2.2.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "python-daemon" version)) + (sha256 + (base32 + "09fcjdjzk9ywmpnrj62iyxqgcygzdafsz41qlrk2dknzbagcmzmg")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'disable-tests + (lambda _ + ;; FIXME: Determine why test fails + (substitute* "test/test_daemon.py" + (("test_detaches_process_context") + "skip_test_detaches_process_context"))))))) + (propagated-inputs + `(("python-docutils" ,python-docutils) + ("python-lockfile" ,python-lockfile) + ("python-setuptools" ,python-setuptools))) + (native-inputs + `(("python-unittest2" ,python-unittest2) + ("python-testtools" ,python-testtools) + ("python-testscenarios" ,python-testscenarios) + ("python-mock" ,python-mock) + ("python-docutils" ,python-docutils))) + (home-page "https://pagure.io/python-daemon/") + (synopsis "Python library for making a Unix daemon process") + (description "Python-daemon is a library that assists a Python program to +turn itself into a well-behaved Unix daemon process, as specified in PEP 3143. + +This library provides a @code{DaemonContext} class that manages the following +important tasks for becoming a daemon process: +@enumerate +@item Detach the process into its own process group. +@item Set process environment appropriate for running inside a chroot. +@item Renounce suid and sgid privileges. +@item Close all open file descriptors. +@item Change the working directory, uid, gid, and umask. +@item Set appropriate signal handlers. +@item Open new file descriptors for stdin, stdout, and stderr. +@item Manage a specified PID lock file. +@item Register cleanup functions for at-exit processing. +@end enumerate") + (license (list license:asl2.0 license:gpl3+)))) + (define-public python-docutils (package (name "python-docutils")