diff mbox

[2/2] gnu: Add python-kivy

Message ID 20160812174316.538c463b@openmailbox.org
State New
Headers show

Commit Message

Dylan Jeffers Aug. 13, 2016, 12:43 a.m. UTC
On Fri, 12 Aug 2016 17:21:31 -0700
Dylan Jeffers <sapientech@openmailbox.org> wrote:

> On Fri, 12 Aug 2016 02:06:48 -0400
> Mark H Weaver <mhw@netris.org> wrote:
> 
> > Dylan Jeffers <sapientech@openmailbox.org> writes:
> >   
> > > From 25cd777ff3a2429cbb257e02603d6bef78d1564f Mon Sep 17 00:00:00
> > > 2001 From: Dylan Jeffers <sapientech@openmailbox.org>
> > > Date: Thu, 11 Aug 2016 17:15:47 -0700
> > > Subject: [PATCH] gnu: Add python-kivy.
> > >
> > > * gnu/packages/python.scm (python-kivy): New variable.
> > > * gnu/packages/python.scm (python2-kivy: New variable.    
> > 
> > This should be:
> > 
> > * gnu/packages/python.scm (python-kivy, python2-kivy): New
> > variables. 
> > > ---
> > >  gnu/packages/python.scm | 54
> > > +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed,
> > > 54 insertions(+)
> > >
> > > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> > > index 6ff1c5c..9f14e80 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@openmailbox.org>    
> > 
> > Your mail client failed to specify UTF-8 encoding for this
> > attachment, so the copyright symbols above are coming through as
> > pairs of raw octets.  We can fix this up manually if needed, but it
> > would be great if you could fix your mail client configuration.
> >   
> > >  ;;;
> > >  ;;; This file is part of GNU Guix.
> > >  ;;;
> > > @@ -88,6 +89,9 @@
> > >    #:use-module (gnu packages tcl)
> > >    #:use-module (gnu packages bdw-gc)
> > >    #:use-module (gnu packages pcre)
> > > +  #:use-module (gnu packages gstreamer)
> > > +  #:use-module (gnu packages sdl)
> > > +  #:use-module (gnu packages gl)
> > >    #:use-module (guix packages)
> > >    #:use-module (guix download)
> > >    #:use-module (guix git-download)
> > > @@ -9852,3 +9856,53 @@ etc.")
> > >      (package
> > >        (inherit base)
> > >        (name "ptpython2"))))
> > > +
> > > +(define-public python-kivy
> > > +  (let ((commit
> > > +         "a988c5e7a47da56263ff39514264a3de516ef2fe"))
> > > +    (package
> > > +      (name "python-kivy")
> > > +      (version "1.9.1")
> > > +      (source
> > > +       (origin
> > > +         (method git-fetch)
> > > +         (uri (git-reference
> > > +               (url "https://github.com/kivy/kivy")
> > > +               (commit commit)))
> > > +         (file-name (string-append name "-" version
> > > "-dev.tar.gz"))
> > > +         (sha256
> > > +          (base32
> > > +
> > > "0jk92b4a8l7blkvkgkjihk171s0dfnq582cckff5srwc8kal5m0p"))))    
> > 
> > This commit does not match the version string.  Version 1.9.1
> > corresponds to commit 7e789b24cdb0ee044469d7bc42da9e4146674a18, from
> > 1 January 2016, but the commit you've selected is much later, from
> > 26 July 2016.
> > 
> > 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.
> 
> > > +      (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)))    
> > 
> > Please remove the space between the open parentheses above.
> >   
> > > +      (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
> > > +  (let ((base (package-with-python2 (strip-python2-variant
> > > python-kivy))))
> > > +    (package
> > > +      (inherit base)
> > > +      (name "python2-kivy"))))    
> > 
> > Can you send an updated patch?
> > 
> >       Thanks,
> >         Mark  
> 
> Updated python-kivy.patch
> 
> Best,
> Dylan

Hi again,

Just reviewed my patch and realized I could simplify python2-kivy
definition. Also I believe I modified my email client (claws) to use
UTF-8. Let me know if it is working for you.

Comments

Mark H Weaver Aug. 13, 2016, 9:27 a.m. UTC | #1
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
diff mbox

Patch

From e7b7facdc2c9ae7d60bbe54a75a5c9ecc4a38ab9 Mon Sep 17 00:00:00 2001
From: Dylan Jeffers <sapientech@openmailbox.org>
Date: Thu, 11 Aug 2016 17:15:47 -0700
Subject: [PATCH] gnu: Add python-kivy.

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

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 6ff1c5c..76eef1c 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@openmailbox.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -88,6 +89,9 @@ 
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages bdw-gc)
   #:use-module (gnu packages pcre)
+  #:use-module (gnu packages gstreamer)
+  #:use-module (gnu packages sdl)
+  #:use-module (gnu packages gl)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -9852,3 +9856,50 @@  etc.")
     (package
       (inherit base)
       (name "ptpython2"))))
+
+(define-public python-kivy
+  (let ((commit
+         "a988c5e7a47da56263ff39514264a3de516ef2fe"))
+    (package
+      (name "python-kivy")
+      (version "1.9.1-dev")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/kivy/kivy")
+               (commit commit)))
+         (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))
-- 
2.7.3