[2/2] gnu: Add python-kivy

Message ID 20160814210449.1d97cc9d@openmailbox.org
State New
Headers

Commit Message

Dylan Jeffers Aug. 15, 2016, 4:04 a.m. UTC
  On Sat, 13 Aug 2016 13:37:49 -0700
Dylan Jeffers <sapientech@openmailbox.org> wrote:

> On Sat, 13 Aug 2016 13:28:20 -0700
> Dylan Jeffers <sapientech@openmailbox.org> wrote:
> 
> > 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  
> 
> Sorry for another email but I think I figured out UTF-8 encoding. Let
> me know if this works.

Alright I think this is the final patch :)
  

Comments

Mark H Weaver Aug. 17, 2016, 6:23 a.m. UTC | #1
Dylan Jeffers <sapientech@openmailbox.org> writes:

> Alright I think this is the final patch :) 
>
> From c6f8d8948c0bf0b740022f5e4860c6adca267431 Mon Sep 17 00:00:00 2001
> From: Dylan Jeffers <sapientech@openmailbox.org>
> Date: Sat, 13 Aug 2016 13:22:49 -0700
> Subject: [PATCH] gnu: Add python-kivy.
>
> * gnu/packages/python.scm (python-kivy, python2-kivy, python-kivy-next,
> * python2-kivy-next): New variables.

Pushed with formatting fixes to the commit log.

     Thanks!
       Mark
  

Patch

From c6f8d8948c0bf0b740022f5e4860c6adca267431 Mon Sep 17 00:00:00 2001
From: Dylan Jeffers <sapientech@openmailbox.org>
Date: Sat, 13 Aug 2016 13:22:49 -0700
Subject: [PATCH] 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..c7a96b5 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 url-fetch)
+       (uri (pypi-uri "kivy" version))
+       (file-name (string-append name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "0zk3g1j1z0lzcm9d0k1lprrs95zr8n8k5pdg3p5qlsn26jz4bg19"))))
+    (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