Subject: [bug#31121] [PATCH 3/3] gnu: Add osc.

From: Marius Bakke <[email-masked]>
Date: Tue, 17 Apr 2018 00:04:28 +0200

Tomáš Čech <[email-masked]> writes:

>  * gnu/packages/python.scm (osc): New variable.

Woo, awesome! :-)

I wonder if this could go in 'build-tools.scm' since it's not really a
generic Python library in the traditional sense.  Or maybe we should add
an 'obs' module?

> +(define-public osc
> +  (package
> +    (name "osc")
> +    (version "0.162.1")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "https://github.com/openSUSE/" name "/archive/" version ".tar.gz"))

This line is too long (I believe guix lint will agree).

> +       (file-name (string-append name "-" version ".tar.gz"))
> +       (sha256
> +        (base32
> +         "0b4kpm96ns4smqyfjysbk2p78d36x44xprpna8zz85q1y5xn57aj"))))
> +    (build-system python-build-system)
> +    (arguments
> +     `(#:python ,python-2
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'install 'fix-filename-and-remove-unused
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
> +               ;; osc tool is renamed in spec file, not setup.py, let's do
> +               ;; that too

Nit-pick: Please use capitalisation and punctuation in comments.

> +               (rename-file
> +                (string-append bin "osc-wrapper.py")
> +                (string-append bin "osc"))
> +               ;; unused and broken script
... and here.
> +               (delete-file (string-append bin "osc_hotshot.py"))
> +             #t))))))
> +    (inputs
> +     `(("python2-urlgrabber" ,python2-urlgrabber)
> +       ("python2-pycurl" ,python2-pycurl)))
> +    (propagated-inputs
> +     `(("python2-m2crypto" ,python2-m2crypto)))

Why is m2crypto propagated, but the others are not?  Does the automatic
wrapper not take care of it?

> +    (home-page "https://github.com/openSUSE/osc")
> +    (synopsis "Open Build Service command line tool")
> +    (description "Command line interface to Open Build Service.  It allows you

Again, full sentences please :-) "@command{osc} is a command line interface...".

> +to checkout, commit, perform reviews etc.  Vast majority of the OBS
                                             ^^^  s/Vast/The vast/

> +functionality is available via commands and the rest can be reached via direct
> +API calls.")
> +    (license license:gpl2+)))
> -- 
> 2.17.0

Can you send updated patches?