Subject: [bug#27913] Acknowledgement ([PATCH] gnu: Add python-ghp-import.)

From: Oleg Pykhalov <[email-masked]>
Date: Thu, 03 Aug 2017 21:48:22 +0300

Hello Leo,

Leo Famulari <[email-masked]> writes:

> On Wed, Aug 02, 2017 at 07:15:21PM +0300, Oleg Pykhalov wrote:
>> Hello Guix.
>> 
>> The license is not gpl3+, it's “Tumbolia Public License”.
>> https://raw.githubusercontent.com/davisp/ghp-import/master/LICENSE
>
> For everyone's reference, this is the text of the license:
>
> ------
>                            Tumbolia Public License
>
> Copyright 2013, Paul Davis <[email-masked]>
>
> Copying and distribution of this file, with or without modification, are
> permitted in any medium without royalty provided the copyright notice and this
> notice are preserved.
>
> TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
>
>   0. opan saurce LOL
> ------
>
> It was discussed on the Fedora Legal mailing list:
>
> https://www.spinics.net/linux/fedora/fedora-legal/msg02842.html
>
> I don't know the final outcome there (i.e. does Fedora offer
> Tumbolia-license software now?) but it seems positive.
>
> Also, Debian distributes the software:
>
> https://packages.debian.org/sid/ghp-import
>
>> Is it OK in Guix?  If yes, what is good way to provide this licence?
>
> I think it's fine. The author's intent to make the software available
> under a permissive-style license seems clear to me.
>
> Please change the license field of the package definition from 'gpl3+'
> to 'non-copyleft'. That license can be annotated; there are lots of
> examples in the maths module:
>
> https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/maths.scm
>
> And the source of 'non-copyleft':
>
> https://git.savannah.gnu.org/cgit/guix.git/tree/guix/licenses.scm?id=41209a6f3a9945b55bcc06b989628e09e9f98b6a#n157

>From fdb3e7aeef4988f43d2981850ae0f5900e647280 Mon Sep 17 00:00:00 2001
From: Oleg Pykhalov <[email-masked]>
Date: Wed, 2 Aug 2017 06:32:04 +0300
Subject: [PATCH] gnu: Add python-ghp-import.

* gnu/packages/version-control.scm (python-ghp-import, python2-ghp-import):
New variable.
---
 gnu/packages/version-control.scm | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 2e17201a5..69a6cd243 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -520,6 +520,40 @@ collaboration using typical untrusted file hosts or services.")
 a built-in cache to decrease server I/O pressure.")
     (license license:gpl2)))
 
+(define-public python-ghp-import
+  (package
+    (name "python-ghp-import")
+    (version "0.5.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://github.com/davisp/ghp-import/archive/"
+             version ".tar.gz"))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0x887v690xsac2hzjkpbvp3a6crh3m08mqbk3nb4xwc9dnk869q7"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after 'install 'install-documentation
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let* ((out (assoc-ref outputs "out"))
+                             (doc (string-append out "/share/doc"))
+                             (licenses (string-append out "/share/licenses")))
+                        (install-file "README.md" doc)
+                        (install-file "LICENSE" licenses)))))))
+    (home-page "https://github.com/davisp/ghp-import")
+    (synopsis "Copy directory to the gh-pages branch")
+    (description "Script that copies a directory to the gh-pages branch (by
+default) of the repository.")
+    (license license:non-copyleft)))
+
+(define-public python2-ghp-import
+  (package-with-python2
+   (strip-python2-variant python-ghp-import)))
+
 (define-public shflags
   (package
     (name "shflags")
-- 
2.13.3

If somebody interested, I also found that “ghp_import.py” has some
Python 2 code only.  It doesn't make a big deal and “ghp-import” works
just fine.  But I made a snippet to fix this.  I'm not sure how to deal
with “python2-ghp-import”, because he doesn't need the snippet.

(modules '((guix build utils)))
(snippet ; Python 3 renamed the unicode type to str.
        '(substitute* "ghp_import.py"
           (("isinstance\\(text, unicode\\)")
            "isinstance(text, str)")))