diff mbox

[2/2] gnu: Add python-kivy

Message ID 20160813132820.42bc6542@openmailbox.org
State New
Headers show

Commit Message

Dylan Jeffers Aug. 13, 2016, 8:28 p.m. UTC
On Sat, 13 Aug 2016 05:27:59 -0400
Mark H Weaver <mhw@netris.org> wrote:

> Dylan Jeffers <sapientech@openmailbox.org> writes:
> 
> > Mark H Weaver <mhw@netris.org> wrote:  
> >> We generally prefer to use tarball releases, unless there is a
> >> compelling reason to use a non-release commit.
> >> 
> >> Is there a compelling reason?  If not, please use the 1.9.1 release
> >> tarball from <https://github.com/kivy/kivy/archive/1.9.1.tar.gz>,
> >> along with the 'file-name' field.  
> >
> > Yes, the new dev version of kivy has a number of important
> > enhancements that are not available in 1.9.1.  
> 
> Can you be more specific?  Other popular distros, including Debian
> sid, Ubuntu yakkety, Arch, and Gentoo, are all using version 1.9.1.
> Kivy's own PPA for "stable builds" uses a version from February, not
> long after the 1.9.1 release.
> 
> Unless there are specific and compelling reasons why the latest
> release is inadequate for most users, I'd be inclined to use the
> release version, at least by default for the package named
> "python-kivy".
> 
> However, we could also add a "python-kivy-next" package for those who
> want the latest and greatest from the upstream git repository.  We've
> done that for some other packages, such as "guile-next" and
> "geiser-next".
> 
> Would this work for you?
> 
> If we did this, the best way would be for the "python-kivy-next"
> package to inherit from "python-kivy", but overridding the 'source'
> field, so it would look something like this (untested):
> 
> --8<---------------cut here---------------start------------->8---
> (define-public python-kivy
>   (package
>     (name "python-kivy")
>     (version "1.9.1")
>     (source
>      (origin
>        (method url-fetch)
>        (uri (string-append "https://github.com/kivy/kivy/archive/"
>                            version ".tar.gz"))
>        (file-name (string-append name "-" version ".tar.gz"))
>        (sha256
>         (base32
>          "0zk3g1j1z0lzcm9d0k1lprrs95zr8n8k5pdg3p5qlsn26jz4bg19"))))
>     ...))
> 
> (define-public python2-kivy
>   (package-with-python2 python-kivy))
> 
> (define-public python-kivy-next
>   (let ((commit "a988c5e7a47da56263ff39514264a3de516ef2fe")
>         (revision "1"))
>     (package (inherit python-kivy)
>       (name "python-kivy-next")
>       (version (string-append "1.9.1-" revision "."
>                               (string-take commit 7)))
>       (source
>        (origin
>          (method git-fetch)
>          (uri (git-reference
>                (url "https://github.com/kivy/kivy")
>                (commit commit)))
>          (file-name (string-append name "-" version "-checkout"))
>          (sha256
>           (base32
>            "0jk92b4a8l7blkvkgkjihk171s0dfnq582cckff5srwc8kal5m0p")))))))
> 
> (define-public python2-kivy-next
>   (package-with-python2 python-kivy-next))
> --8<---------------cut here---------------end--------------->8---
> 
> The code above also takes into account some other issues which I
> explain below.
> 
> > Also I believe I modified my email client (claws) to use UTF-8.
> > Let me know if it is working for you.  
> 
> The inline text of your email now specifies UTF-8 encoding (via a
> "Content-Type: text/plain; charset=UTF-8" header), but the attachment
> lacks the "charset=UTF-8" part of that header, so it's still not
> working.  Anyway, I can fix it up by hand for now.
> 
> > +(define-public python-kivy
> > +  (let ((commit
> > +         "a988c5e7a47da56263ff39514264a3de516ef2fe"))
> > +    (package
> > +      (name "python-kivy")
> > +      (version "1.9.1-dev")  
> 
> Please see section 7.6.3 (Version Numbers) in the Guix manual,
> specifically our conventions about version numbers for VCS snapshots,
> and the recommended code structure to generate them.  I've done this
> in my suggested definition of "python-kivy-next" above.
> 
> > +      (source
> > +       (origin
> > +         (method git-fetch)
> > +         (uri (git-reference
> > +               (url "https://github.com/kivy/kivy")
> > +               (commit commit)))
> > +         (file-name (string-append name "-" version ".tar.gz"))  
> 
> This 'file-name' field above is appropriate for a gzipped tarball
> release, but not for a git checkout, because a git checkout becomes a
> directory in the store.  So, for a git checkout, it should be
> something like this:
> 
>          (file-name (string-append name "-" version "-checkout"))
> 
> Can you send an updated patch?  Thanks for bearing with me.  I think
> we're getting close :)
> 
>      Thanks,
>        Mark

No, thank you for the help! I think I got everything in this patch. I
agree with having a python-kivy-next package, in addition to the 1.9.1
kivy release.

Thanks again,
Dylan
diff mbox

Patch

From 8d429555a7f370ba729aa5d16fc020f1c86c53b3 Mon Sep 17 00:00:00 2001
From: Dylan Jeffers <sapientech@openmailbox.org>
Date: Sat, 13 Aug 2016 13:22:49 -0700
Subject: [PATCH 1/1] gnu: Add python-kivy.

* gnu/packages/python.scm (python-kivy, python2-kivy, python-kivy-next,
* python2-kivy-next): New variables.
---
 gnu/packages/python.scm | 69 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 6ff1c5c..ccdee28 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -24,6 +24,7 @@ 
 ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
 ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
 ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -58,7 +59,9 @@ 
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
@@ -74,6 +77,7 @@ 
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages sdl)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages texinfo)
@@ -9852,3 +9856,68 @@  etc.")
     (package
       (inherit base)
       (name "ptpython2"))))
+
+(define-public python-kivy
+  (package
+    (name "python-kivy")
+    (version "1.9.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (pypi-uri "kivy" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0jk92b4a8l7blkvkgkjihk171s0dfnq582cckff5srwc8kal5m0p"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:tests? #f              ; Tests require many optional packages
+                #:phases
+                (modify-phases %standard-phases
+                  (replace 'build (lambda _ (zero? (system* "make" "force"))))
+                  (add-after 'patch-generated-file-shebangs 'set-sdl-paths
+                    (lambda* (#:key inputs #:allow-other-keys)
+                      (setenv "KIVY_SDL2_PATH"
+                              (string-append (assoc-ref inputs "sdl-union")
+                                             "/include/SDL2"))
+                      #t)))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("python-cython" ,python-cython)
+       ("gstreamer" ,gstreamer)
+       ("mesa" ,mesa)
+       ("sdl-union"
+        ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))))
+    (home-page "http://kivy.org")
+    (synopsis
+     "Multitouch application framework")
+    (description
+     "A software library for rapid development of
+hardware-accelerated multitouch applications.")
+    (license license:expat)))
+
+(define-public python2-kivy
+  (package-with-python2 python-kivy))
+
+(define-public python-kivy-next
+  (let ((commit
+         "a988c5e7a47da56263ff39514264a3de516ef2fe")
+        (revision "1"))
+    (package (inherit python-kivy)
+      (name "python-kivy-next")
+      (version (string-append "1.9.1" revision "."
+                              (string-take commit 7)))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/kivy/kivy")
+               (commit commit)))
+         (file-name (string-append name "-" version "-checkout"))
+         (sha256
+          (base32
+           "0jk92b4a8l7blkvkgkjihk171s0dfnq582cckff5srwc8kal5m0p")))))))
+
+(define-public python2-kivy-next
+  (package-with-python2 python-kivy-next))
-- 
2.7.3