Re: [PATCH 2/2] gnu: zita-convolver: Drop the '-march=native' optimization.

2016-01-07 Thread Ricardo Wurmus

宋文武  writes:

> Ricardo Wurmus  writes:
>
>>> +  (snippet
>>> +   ;; Don't optimize for a specific processor architecture.
>>> +   '(substitute* "libs/Makefile"
>>> +  (("^CXXFLAGS \\+= -march=native") "")))
>>> +  (modules '((guix build utils)))
>>
>> Is this to avoid that packages are optimised for the CPU of the build
>> slave?
> Yes, using that from hydra will crash guitarix for me.
> Same as: .

Guitarix also crashes for me on i686 — and I thought it was something to
do with my machine or the broken build of eigen.

>> If so, could we instead pass different optimisation flags for
>> different architectures?  For a convolver I’d prefer to have *some*
>> optimisation, even if it’s just the greatest common divisor.
> I don't familiar with optimization flags, but according to:
>   
> I think '-march=native' should be dropped definitely, it enable all
> the CPU specified instruction set when building on the slave.
> And it's not clear to me what *some* flags are, suppose we don't want
> any CPU specified (-msse3, -msse4, etc.) thing.

Okay.  I think removing “-march=native” is worth doing anyway, so let’s
ignore adding optimisation flags for now.

Thank you!




Re: [PATCH] Help Ruby packages be reproducible

2016-01-07 Thread Ludovic Courtès
Ricardo Wurmus  skribis:

> Ben Woodcroft  writes:
>
>> On 02/01/16 01:10, Ludovic Courtès wrote:
> [...]
>>> So I guess you (Ricardo?) can push it now.
> [...]
>> Thanks for pushing the patch.
>
> I did this just now.  Sorry for the delay.  Pushed as 7266848.  Thanks,
> Ben, for helping to make Ruby packages reproducible!

Indeed, great work, thanks!

Ludo’.



Re: [PATCH] Add 12 rubygems.

2016-01-07 Thread Ricardo Wurmus
Here’s the review for the other 11 patches, starting from the last:

> From 4ccc1fadcb67a0d296bedd51a7f73d911da4680d Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft 
> Date: Tue, 29 Dec 2015 15:13:13 +1000
> Subject: [PATCH 12/12] gnu: Add ruby-ttfunk.

> * gnu/packages/ruby.scm (ruby-ttfunk): New variable.

[...]

> +(synopsis "Font Metrics Parser for the Prawn PDF generator")

s/Metrics Parser/metrics parser/

> +(description
> + "TTFunk is a TrueType font parser written in pure ruby.  It is used as
> +part of the Prawn PDF generator.")

s/ruby/Ruby/

> +;; From the README: "Matz's terms for Ruby, GPLv2, or GPLv3. See LICENSE
> +;; for details."
> +(license (list license:gpl2 license:gpl3
> +   (license:non-copyleft
> +"file://src/LICENSE"
> +"See LICENSE in the distribution.")

The license is actually just one of “(list license:gpl2 license:gpl3
license:ruby)”.  LICENSE just contains what appears to be the Ruby
license.

> From 8a7a728c843f05206599d777fdd8c8a68f26eea4 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft 
> Date: Tue, 29 Dec 2015 15:05:18 +1000
> Subject: [PATCH 11/12] gnu: Add ruby-ascii85.

> * gnu/packages/ruby.scm (ruby-ascii85): New variable.

[...]

> +(synopsis "Encode and decode Adobe's ascii85 binary-to-text encoding")

How about

  “Encode and decode Ascii85 binary-to-text encoding”

> +(description
> + "This library provides methods to encode and decode Adobe's Ascii85
> +binary-to-text encoding.  The main modern use of Ascii85 is in Adobe's
> +PostScript and Portable Document Format file formats.")

Also here I’d remove “Adobe’s”.  Additionally, you could wrap “Portable
Document Format” in @dfn{}:

 "This library provides methods to encode and decode Ascii85
binary-to-text encoding.  The main modern use of Ascii85 is in
PostScript and @dfn{Portable Document Format} (PDF) file formats."

> +(home-page
> + "https://github.com/datawraith/ascii85gem";)

Please pull this on one line.


> From 6c0f6264d58f4d1815df209ab0231c4abc054f7a Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft 
> Date: Tue, 29 Dec 2015 15:00:15 +1000
> Subject: [PATCH 10/12] gnu: Add ruby-afm.

> * gnu/packages/ruby.scm (ruby-afm): New variable.

[...]

> +(synopsis "Read Adobe Font Metrics (afm) files")
> +(description
> + "@code{afm} is a library to read Adobe Font Metrics (afm) files and use
> +the data therein.")

How about

  "This library provides methods to read @dfn{Adobe Font Metrics} (afm)
   files and use the data therein."

> From 8641b00e5706f6d1fe486df457b75f91a68c5edc Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft 
> Date: Tue, 29 Dec 2015 14:52:04 +1000
> Subject: [PATCH 09/12] gnu: Add ruby-rc4.

> * gnu/packages/ruby.scm (ruby-rc4): New variable.

[...]

> +(arguments
> + `(#:phases
> +   (modify-phases %standard-phases
> + (replace 'check
> +   (lambda _
> + (and
> +  (zero? (system* "rspec" "spec/rc4_spec.rb"

There’s no need for ‘(and ...)’ here.

> +(native-inputs
> + `(("ruby-rspec" ,ruby-rspec-2)))
> +(synopsis "Implementation of the RC4 algorithm")
> +(description
> + "RubyRC4 is a pure Ruby implementation of the RC4 algorithm.")
> +;; link on rubygems.org is dead, so use github URL.

I think we can do without this comment.

> From 1f13b94614029c3ca7cdc34dbbcac2d2c69e786c Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft 
> Date: Tue, 29 Dec 2015 14:51:34 +1000
> Subject: [PATCH 08/12] gnu: Add ruby-hashery.

> * gnu/packages/ruby.scm (ruby-hashery): New variable.

[...]

> +(define-public ruby-hashery
> +  (package
> +(name "ruby-hashery")
> +(version "2.1.1")
> +(source
> + (origin
> +   (method url-fetch)
> +   (uri (rubygems-uri "hashery" version))
> +   (sha256
> +(base32
> + "0xawbljsjarl9l7700bka672ixwznzwih4s9i38p1y9mp8hyx54g"
> +(build-system ruby-build-system)
> +(arguments
> + `(#:phases
> +   (modify-phases %standard-phases
> + (replace 'check
> +   (lambda _
> + (and
> +  (zero? (system* "qed"))
> +  (zero? (system* "rubytest" "-Ilib" "-Itest" "test/"

I would prefer moving ‘(and’ and ‘(zero?’ on the same line and then
split the “rubytest” line.

> +(native-inputs
> + `(("ruby-rubytest-cli" ,ruby-rubytest-cli)
> +   ("ruby-qed" ,ruby-qed)
> +   ("ruby-lemon" ,ruby-lemon)))
> +(synopsis "Hash-like classes with extra features")
> +(description
> + "The Hashery is a tight collection of Hash-like classes.  Included are
> +the auto-sorting Dictionary class, the efficient LRUHash, the flexible
> +OpenHash and the convenient KeyHash.  Nearly every class is a subclass of the
> +CRUDHash which defines a CRUD (Create, Read, Update and Delete) model on top
> +of Ruby's standard Hash making it possible to subclass and augment to fit any
> +specifi

Re: [PATCH] Help Ruby packages be reproducible

2016-01-07 Thread Ludovic Courtès
Hi Ben,

Do you have an account on Savannah?  If not, I invite you to create one
so we can give you write access to the repo.  :-)

Ludo’.



Re: [PATCH] Add 17 moar rubygems.

2016-01-07 Thread Ricardo Wurmus

Ben Woodcroft  writes:

> These packages are independent of the other 12 submitted packages, 
> except for ruby-ansi which has already been reviewed - I've attached an 
> updated patch that incorporates your comments, thanks Ricardo.

Thank you.  I’ve just pushed this version of ruby-ansi.

> From 052e3fa15dced49faebc51b74ddc2a550713b569 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft 
> Date: Wed, 30 Dec 2015 23:19:10 +1000
> Subject: [PATCH 02/18] gnu: Add ruby-turn.

> * gnu/packages/ruby.scm (ruby-turn): New variable.

Okay!

> From 4c14a6323d29d772ab688dcd895870edec3fe5dc Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft 
> Date: Wed, 30 Dec 2015 23:22:05 +1000
> Subject: [PATCH 03/18] gnu: Add ruby-ruby-minitest-focus.

> * gnu/packages/ruby.scm (ruby-ruby-minitest-focus): New variable.

There’s one “ruby-” too much here and in the summary.

> +(description
> + "@code{minitest-focus} gives the ability focus on a few tests with ease
> +without having to use command-line arguments.  It introduces a @code{focus}
> +class method that specifies the next test defined is to be run.")

“the ability [to] focus on”.  The second sentence doesn’t make sense to
me; something’s wrong about it.  In general I find this description to
be rather unclear.

> +(home-page
> + "https://github.com/seattlerb/minitest-focus";)

Please put this on one line.

> From a29ccdea723bfeede027faf0e85b906900e53f39 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft 
> Date: Wed, 30 Dec 2015 23:36:03 +1000
> Subject: [PATCH 04/18] gnu: Add ruby-minitest-pretty-diff.

> * gnu/packages/ruby.scm (ruby-minitest-pretty-diff): New variable.

[...]

> +(define-public ruby-minitest-pretty-diff
> +  ;; Use git reference because gem is out of date and does not contain 
> testing
> +  ;; script. There are no releases on GitHub.
   ^  Please add one more space here.

> +  (let ((revision "1")
> +(commit "11f32e930f574225432f42e5e1ef6e7471efe572"))
> +(package
> +  (name "ruby-minitest-pretty-diff")
> +  (version (string-append "0.1." revision "." commit))

I think when the full commit is used it should be truncated to <10
characters with

(string-take commit 9)

I’m a little uncomfortable about the “revision” part (even though I’ve
been using it as well); I would like to have a better way to separate
the actual version from our custom version strings.  What do we do when
upstream decides to use three digit version numbers like “0.1.1”?  Will
this correctly be considered an update over “0.1.2.cafebabe” with a
revision of 2?

We can leave this for now, but I’d like to find a better solution in
general.

> +  (home-page
> +   "https://github.com/adammck/minitest-pretty_diff";)

On one line please.

> From 22645c2c465c4cc5554409832b16c85ee1f320aa Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft 
> Date: Thu, 31 Dec 2015 07:30:37 +1000
> Subject: [PATCH 05/18] gnu: Add ruby-ruby-minitest-moar.

> * gnu/packages/ruby.scm (ruby-ruby-minitest-moar): New variable.

Again one “ruby-” too much here.  (Or maybe it’s appropriate considering
the gem name contains “moar”...)

> +(home-page
> + "https://github.com/dockyard/minitest-moar";)

Same as above.

I think I need a break.  Any takers for the remaining patches? :)

~~ Ricardo



Re: [PATCH 2/2] gnu: zita-convolver: Drop the '-march=native' optimization.

2016-01-07 Thread 宋文武
l...@gnu.org (Ludovic Courtès) writes:

> Ricardo Wurmus  skribis:
>
>> 宋文武  writes:
>>
>>> Ricardo Wurmus  writes:
>>>
> +  (snippet
> +   ;; Don't optimize for a specific processor architecture.
> +   '(substitute* "libs/Makefile"
> +  (("^CXXFLAGS \\+= -march=native") "")))
> +  (modules '((guix build utils)))

 Is this to avoid that packages are optimised for the CPU of the build
 slave?
>>> Yes, using that from hydra will crash guitarix for me.
>>> Same as: .
>>
>> Guitarix also crashes for me on i686 — and I thought it was something to
>> do with my machine or the broken build of eigen.
Pushed, hopefully this will fix it on i686 too.
>
> Eigen is a header-only library, so what matters is the optimization
> flags passed when building the software that uses Eigen.
>
 If so, could we instead pass different optimisation flags for
 different architectures?  For a convolver I’d prefer to have *some*
 optimisation, even if it’s just the greatest common divisor.
>
> It’s likely that zita-convolver has -O2 or similar *in addition* to
> -march=native, because the latter is no substitute for the former.
>
> Could you check that in the makefiles?
Yes, it actually has:
  CXXFLAGS =+ -ffast-math -funroll-loops -O3



Re: [PATCH] Add GenomicFeatures.

2016-01-07 Thread Ricardo Wurmus

Ludovic Courtès  writes:

> Ricardo Wurmus  skribis:
>
>> PS: If reviewing these patch sets is uncomfortable in this format and
>> you’d prefer separate emails or some other approach, please let me
>> know.  I appreciate your reviews a lot!
>
> I have a slight preference for one message per patch, but this works for
> me too.

I’ll try to configure git-send-email soon.

>> +(synopsis "Options management framework")
>> +(description
>> + "This package provides a scoped options management framework.")
>
> Would be nice to expound a little bit (are we talking about command-line
> options?  what does “scoped” mean?).
>
>> +(home-page "http://cran.r-project.org/web/packages/snow";)
>> +(synopsis "Support for simple parallel computing in R")
>> +(description
>> + "This package provides support for simple parallel computing in R.")
>
> Likewise.
>
> Apart from that, it looks good to me!

Pushed with the above changes and after removing the “r-repository”
property (where applicable).

Thanks!

~~ Ricardo



Re: [PATCH 03/17] gnu: Add python-click-threading.

2016-01-07 Thread Leo Famulari
On Wed, Jan 06, 2016 at 12:48:35PM -0600, Eric Bavier wrote:
> On 2016-01-03 18:05, Leo Famulari wrote:
> >* gnu/packages/python.scm (python-click-threading): New variable.
> >---
> > gnu/packages/python.scm | 19 +++
> > 1 file changed, 19 insertions(+)
> >
> >diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> >index 8f05b5a..5d28bbb 100644
> >--- a/gnu/packages/python.scm
> >+++ b/gnu/packages/python.scm
> >@@ -6656,3 +6656,22 @@ for atomic filesystem operations.")
> > with python-requests.")
> > (home-page "https://github.com/sigmavirus24/requests-toolbelt";)
> > (license asl2.0)))
> >+
> >+(define-public python-click-threading
> >+  (package
> >+(name "python-click-threading")
> >+(version "0.1.2")
> >+(source (origin
> >+ (method url-fetch)
> >+ (uri (pypi-uri "click-threading" version))
> >+ (sha256
> >+  (base32
> >+   "0jmrv4334lfxa2ss53c06dafdwqbk1pb3ihd26izn5igw1bm8145"
> >+(build-system python-build-system)
> >+(propagated-inputs
> >+ `(("python-click" ,python-click)))
> >+(synopsis "Utilities for multithreading in Click")
> >+(description "The package provides utilities for multithreading in
> 
> s/The/This/ for consistency with other package descriptions.

Done.

> 
> -- 
> `~Eric



Re: [PATCH 04/17] gnu: Add python-click-log.

2016-01-07 Thread Leo Famulari
On Wed, Jan 06, 2016 at 09:04:51PM +0200, Efraim Flashner wrote:
> On Sun,  3 Jan 2016 19:05:02 -0500
> Leo Famulari  wrote:
> 
> > * gnu/packages/python.scm (python-click-log): New variable.
> > ---
> >  gnu/packages/python.scm | 19 +++
> >  1 file changed, 19 insertions(+)
> > 
> > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> > index 5d28bbb..95de6b3 100644
> > --- a/gnu/packages/python.scm
> > +++ b/gnu/packages/python.scm
> > @@ -6675,3 +6675,22 @@ with python-requests.")
> >  applications.")
> >  (home-page "https://github.com/click-contrib/click-threading";)
> >  (license license:expat)))
> > +
> > +(define-public python-click-log
> > +  (package
> > +(name "python-click-log")
> > +(version "0.1.1")
> > +(source (origin
> > + (method url-fetch)
> > + (uri (pypi-uri "click-log" version))
> > + (sha256
> > +  (base32
> > +   "1z3jdwjmwax159zrnyx830xa968rfqrpkm04ad5xqyh0269ydiqb"
> > +(build-system python-build-system)
> > +(propagated-inputs
> > + `(("python-click" ,python-click)))
> > +(synopsis "Logging for click applications")
> > +(description "This package provides a Python library for logging for 
> > Click
>   ^^^
>   I think you can leave out this "for" ^

Done.

> > +applications.")
> > +(home-page "https://github.com/click-contrib/click-log";)
> > +(license license:expat)))
> 
> Also, is this python-3 only?

This has the same author as python-atomicwrites, who is moving away from
Python 2.

> 
> -- 
> Efraim Flashner  אפרים פלשנר
> GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
> Confidentiality cannot be guaranteed on emails sent or received unencrypted





Re: [PATCH 01/17] gnu: Add python-atomicwrites.

2016-01-07 Thread Leo Famulari
On Wed, Jan 06, 2016 at 09:02:10PM +0200, Efraim Flashner wrote:
> On Sun,  3 Jan 2016 19:04:59 -0500
> Leo Famulari  wrote:
> 
> > * gnu/packages/python.scm (python-atomicwrites): New variable.
> > ---
> >  gnu/packages/python.scm | 17 +
> >  1 file changed, 17 insertions(+)
> > 
> > diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
> > index 4ab1eed..496bdd9 100644
> > --- a/gnu/packages/python.scm
> > +++ b/gnu/packages/python.scm
> > @@ -6620,3 +6620,20 @@ the standard library.")
> >  
> >  (define-public python2-contextlib2
> >(package-with-python2 python-contextlib2))
> > +
> > +(define-public python-atomicwrites
> > +  (package
> > +(name "python-atomicwrites")
> > +(version "0.1.8")
> > +(source (origin
> > + (method url-fetch)
> > + (uri (pypi-uri "atomicwrites" version))
> > + (sha256
> > +  (base32
> > +   "13nwk0gw0yb61pnf5vxs3fvhav6q3zrf08x9ggc93bnk5fsssx1j"
> > +(build-system python-build-system)
> > +(synopsis "Atomic file writes in Python")
> > +(description "Library for atomic file writes using platform dependent 
> > tools
> > +for atomic filesystem operations.")
> > +(home-page "https://github.com/untitaker/python-atomicwrites";)
> > +(license license:expat)))
> 
> Is this python 3 only?

The upstream developer has communicated that they intend to officially
stop supporting Python 2 [0] in the software that uses this library. And
I think have already stopped supporting it unofficially [1].

So based on [0] I didn't include a python-2 package variant. If somebody
wants one, I can ask upstream if it's supported for this library.

[0]
https://github.com/untitaker/vdirsyncer/issues/219

[1]
https://github.com/untitaker/vdirsyncer/issues/316

> 
> -- 
> Efraim Flashner  אפרים פלשנר
> GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
> Confidentiality cannot be guaranteed on emails sent or received unencrypted





Re: [PATCH 17/17] gnu: Add khal.

2016-01-07 Thread Leo Famulari
On Wed, Jan 06, 2016 at 09:23:54PM +0200, Efraim Flashner wrote:
> On Sun,  3 Jan 2016 19:05:15 -0500
> Leo Famulari  wrote:
> 
> > * gnu/packages/calendar.scm (khal): New variable.
> > ---
> >  gnu/packages/calendar.scm | 79 
> > ++-
> >  1 file changed, 78 insertions(+), 1 deletion(-)
> > 
> > diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
> > index 7e87fbb..d8f9627 100644
> > --- a/gnu/packages/calendar.scm
> > +++ b/gnu/packages/calendar.scm
> > @@ -1,5 +1,6 @@
> >  ;;; GNU Guix --- Functional package management for GNU
> >  ;;; Copyright © 2015 David Thompson 
> > +;;; Copyright © 2015 Leo Famulari 
> >  ;;;
> >  ;;; This file is part of GNU Guix.
> >  ;;;
> > @@ -22,8 +23,14 @@
> >#:use-module (guix packages)
> >#:use-module (guix download)
> >#:use-module (guix build-system cmake)
> > +  #:use-module (guix build-system python)
> > +  #:use-module (gnu packages base)
> > +  #:use-module (gnu packages databases)
> > +  #:use-module (gnu packages dav)
> > +  #:use-module (gnu packages freedesktop)
> >#:use-module (gnu packages icu4c)
> > -  #:use-module (gnu packages perl))
> > +  #:use-module (gnu packages perl)
> > +  #:use-module (gnu packages python))
> >  
> >  (define-public libical
> >(package
> > @@ -50,3 +57,73 @@
> >   "Libical is an implementation of the iCalendar protocols and protocol
> >  data units.")
> >  (license lgpl2.1)))
> > +
> > +(define-public khal
> > +  (package
> > +(name "khal")
> > +(version "0.7.0")
> > +(source (origin
> > + (method url-fetch)
> > + (uri (pypi-uri "khal" version))
> > + (sha256
> > +  (base32
> > +   "00llxj7cv31mjsx0j6zxmyi9s1q20yvfkn025xcy8cv1ylfwic66"
> > +(build-system python-build-system)
> > +(arguments
> > + `(#:phases (modify-phases %standard-phases
> > +;; Patch sent upstream: https://github.com/geier/khal/pull/307
> > +(add-after
> > +  'unpack 'patch-broken-path
> 
> move these to the previous line for consistancy

Done.

> 
> > +  (lambda _
> > +(substitute* "doc/source/Makefile"
> > +  (("../../../khal/khal/settings/khal.spec")
> > +   "../../khal/settings/khal.spec" 
> > +;; Bug reported: https://github.com/geier/khal/issues/309
> > +(add-after 'unpack 'disable-test
> > +  (lambda _
> > +(substitute* "tests/khalendar_test.py"
> > + (("test_only_update_old_event")
> > +  "disabled_only_update_old_event"
> > +;; Building the manpage requires khal to be installed.
> > +(add-after 'install 'manpage
> > +  (lambda* (#:key outputs #:allow-other-keys)
> > +(setenv "PYTHONPATH"
> > +(string-append
> > +  (getenv "PYTHONPATH")
> > +  ":" (assoc-ref outputs "out")))
> 
> stylistic change, I would put the ":" on the previous line. The assoc-ref
> also if it all fits within 80 characters.

All on one line!

> 
> > +(zero? (system* "make" "--directory=doc/" "man"))
> > +(install-file
> > +  "doc/build/man/khal.1"
> > +  (string-append
> > +(assoc-ref outputs "out")
> > +"/share/man/man1"
> 
> would these 3 lines fit on one line?

Yes!

> 
> > +(replace 'check
> > +  (lambda* (#:key inputs #:allow-other-keys)
> > +;; The tests require us to choose a timezone.
> > +(setenv "TZ"
> > +(string-append (assoc-ref inputs "tzdata")
> > +   "/share/zoneinfo/Zulu"))
> > +(zero? (system* "py.test" "tests")))
> > +(native-inputs
> > + `(("python-pytest" ,python-pytest)
> > +   ("python-setuptools-scm" ,python-setuptools-scm)
> > +   ;; Required for tests
> > +   ("tzdata" ,tzdata)
> > +   ;; Required to build manpage
> > +   ("python-sphinxcontrib-newsfeed" ,python-sphinxcontrib-newsfeed)
> > +   ("python-sphinx" ,python-sphinx)))
> > +(inputs
> > + `(("sqlite" ,sqlite)))
> > +(propagated-inputs
> > + `(("python-configobj" ,python-configobj)
> > +   ("python-dateutil-2" ,python-dateutil-2)
> > +   ("python-icalendar" ,python-icalendar)
> > +   ("python-tzlocal" ,python-tzlocal)
> > +   ("python-urwid" ,python-urwid)
> > +   ("python-pyxdg" ,python-pyxdg)
> > +   ("vdirsyncer" ,vdirsyncer)))
> > +(synopsis "CLI and TUI calendar program")
> > +(description "Khal is a standards based CLI and TUI calendar program, 
> > able
> > +to synchronize with CalDAV servers through vdirsyncer.")
> > +(home-page "http://lostpackets.de/khal/";)
> > +(license expat)))
> 
> 
> 
> -- 
> Efraim Flashner  אפרים פלשנר
> GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
> Co

Re: [PATCH 17/17] gnu: Add khal.

2016-01-07 Thread Leo Famulari
On Wed, Jan 06, 2016 at 01:31:05PM -0600, Eric Bavier wrote:
> On 2016-01-03 18:05, Leo Famulari wrote:
> >* gnu/packages/calendar.scm (khal): New variable.
> >---
> > gnu/packages/calendar.scm | 79
> >++-
> > 1 file changed, 78 insertions(+), 1 deletion(-)
> >
> >diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
> >index 7e87fbb..d8f9627 100644
> >--- a/gnu/packages/calendar.scm
> >+++ b/gnu/packages/calendar.scm
> >@@ -1,5 +1,6 @@
> > ;;; GNU Guix --- Functional package management for GNU
> > ;;; Copyright © 2015 David Thompson 
> >+;;; Copyright © 2015 Leo Famulari 
> > ;;;
> > ;;; This file is part of GNU Guix.
> > ;;;
> >@@ -22,8 +23,14 @@
> >   #:use-module (guix packages)
> >   #:use-module (guix download)
> >   #:use-module (guix build-system cmake)
> >+  #:use-module (guix build-system python)
> >+  #:use-module (gnu packages base)
> >+  #:use-module (gnu packages databases)
> >+  #:use-module (gnu packages dav)
> >+  #:use-module (gnu packages freedesktop)
> >   #:use-module (gnu packages icu4c)
> >-  #:use-module (gnu packages perl))
> >+  #:use-module (gnu packages perl)
> >+  #:use-module (gnu packages python))
> >
> > (define-public libical
> >   (package
> >@@ -50,3 +57,73 @@
> >  "Libical is an implementation of the iCalendar protocols and
> >protocol
> > data units.")
> > (license lgpl2.1)))
> >+
> >+(define-public khal
> >+  (package
> >+(name "khal")
> >+(version "0.7.0")
> >+(source (origin
> >+ (method url-fetch)
> >+ (uri (pypi-uri "khal" version))
> >+ (sha256
> >+  (base32
> >+   "00llxj7cv31mjsx0j6zxmyi9s1q20yvfkn025xcy8cv1ylfwic66"
> >+(build-system python-build-system)
> >+(arguments
> >+ `(#:phases (modify-phases %standard-phases
> >+;; Patch sent upstream: https://github.com/geier/khal/pull/307
> >+(add-after
> >+  'unpack 'patch-broken-path
> >+  (lambda _
> >+(substitute* "doc/source/Makefile"
> >+  (("../../../khal/khal/settings/khal.spec")
> >+   "../../khal/settings/khal.spec" 
> 
> This should perhaps be moved to an origin snippet since the fix is not
> specific to the guix build, so that users who want to `guix build --sources
> khal` get working source.

That's a good point. Now I see the value of origin snippets :)

> 
> 
> >+;; Bug reported: https://github.com/geier/khal/issues/309
> >+(add-after 'unpack 'disable-test
> >+  (lambda _
> >+(substitute* "tests/khalendar_test.py"
> >+ (("test_only_update_old_event")
> >+  "disabled_only_update_old_event"
> >+;; Building the manpage requires khal to be installed.
> >+(add-after 'install 'manpage
> >+  (lambda* (#:key outputs #:allow-other-keys)
> >+(setenv "PYTHONPATH"
> >+(string-append
> >+  (getenv "PYTHONPATH")
> >+  ":" (assoc-ref outputs "out")))
> >+(zero? (system* "make" "--directory=doc/" "man"))
> >+(install-file
> >+  "doc/build/man/khal.1"
> >+  (string-append
> >+(assoc-ref outputs "out")
> >+"/share/man/man1"
> >+(replace 'check
> >+  (lambda* (#:key inputs #:allow-other-keys)
> >+;; The tests require us to choose a timezone.
> >+(setenv "TZ"
> >+(string-append (assoc-ref inputs "tzdata")
> >+   "/share/zoneinfo/Zulu"))
> >+(zero? (system* "py.test" "tests")))
> >+(native-inputs
> >+ `(("python-pytest" ,python-pytest)
> >+   ("python-setuptools-scm" ,python-setuptools-scm)
> >+   ;; Required for tests
> >+   ("tzdata" ,tzdata)
> >+   ;; Required to build manpage
> >+   ("python-sphinxcontrib-newsfeed" ,python-sphinxcontrib-newsfeed)
> >+   ("python-sphinx" ,python-sphinx)))
> >+(inputs
> >+ `(("sqlite" ,sqlite)))
> >+(propagated-inputs
> >+ `(("python-configobj" ,python-configobj)
> >+   ("python-dateutil-2" ,python-dateutil-2)
> >+   ("python-icalendar" ,python-icalendar)
> >+   ("python-tzlocal" ,python-tzlocal)
> >+   ("python-urwid" ,python-urwid)
> >+   ("python-pyxdg" ,python-pyxdg)
> >+   ("vdirsyncer" ,vdirsyncer)))
> >+(synopsis "CLI and TUI calendar program")
> 
> How about "Console calendar program"?

That is better.

Before pushing, I'll wait a while longer in case there are more comments.

> 
> >+(description "Khal is a standards based CLI and TUI calendar program,
> >able
> 
> ditto
> 
> >+to synchronize with CalDAV servers through vdirsyncer.")
> >+(home-page "http://lostpackets.de/khal/";)
> >+(license expat)))
> 
> -- 
> `~Eric



Re: Guix website

2016-01-07 Thread Ludovic Courtès
Pjotr Prins  skribis:

> On Mon, Jan 04, 2016 at 04:16:57PM +0100, Ludovic Courtès wrote:
>> Christopher Allan Webber  skribis:
>> 
>> > If we could have a 3-5 minute "quick introduciton to Guix"
>> > video/screencast that might be a lot more useful.  I think that kind of
>> > video can do a lot for a project.
>> 
>> Yeah, that would be super nice.  If someone with the skills and time to
>> do that would chime in, that would be awesome.  :-)  I’m happy to help
>> discuss the contents and so on.
>
> Maybe a good thing to do at FOSDEM?

Sure!

Ludo’.



Re: [PATCH] Add Bioconductor importer and updater.

2016-01-07 Thread Ricardo Wurmus

Ludovic Courtès  writes:

> Ricardo Wurmus  skribis:
>
>> Ludovic Courtès  writes:
>
>>> I was wondering whether this should be a separate script or not.  A
>>> precedent would be the ELPA importer, which takes a repository name as
>>> an argument.  We could have done the same with the CRAN importer here.
>>
>> I would prefer not to have a separate script, because there’s so much
>> duplication.  I’ll look at the ELPA importer for inspiration.
>>
>> Should the CRAN importer have its name changed, though?
>
> I think it’s fine to call it CRAN, even if it supports other
> repositories.  The CRAN and ELPA importers support the CRAN/ELPA
> repository formats, not just the same-named repositories.

Okay, this makes sense.  Well, I think it’s ready for merging then.
Unless there are further comments I should consider I’ll push this by
the end of this week.

Thank you!

~~ Ricardo



Re: [PATCH] gnu: Add Pfff.

2016-01-07 Thread Ricardo Wurmus

Pjotr Prins  writes:

> * gnu/packages/hash.scm (pfff): New variable.

I changed the description to use full sentences, moved the expression to
textutils.scm (for lack of a better module), updated the commit message
and pushed.

Thanks!

~~ Ricardo




dmd’s new name

2016-01-07 Thread Ludovic Courtès
l...@gnu.org (Ludovic Courtès) skribis:

> Walter Bright  skribis:
>
>> The D programming language compiler has been called dmd since about
>> 2000 or so. In order to avoid confusion, may I request that the Gnu
>> dmd ("Daemons-managing Daemon") change its acronym?
>
> For the record, GNU’s dmd has been around since ~2003¹.
>
> Changing names is obviously an annoyance, technically and otherwise.
> We’re not opposed to the idea, but that would take a bit more discussion
> among developers.

You might remember this discussion from March 2015.

  https://lists.gnu.org/archive/html/guix-devel/2015-03/msg00176.html

I proposed to Richard Stallman that we change the name to “GNU Shepherd”
and recently got the green light.

Rationale:

  1. A shepherd looks after sheep (or gnus ;-)), and GNU dmd looks after
 daemons.

  2. “Shepherd” ends with a ‘d’, which makes it a good name for a daemon.

  3. It’s a pun in the same spirit as “GNU Hurd”.

  4. We might even rename ‘deco’ to ‘herd’ because it’s the very command
 that allows users to herd their daemons.

Hope you like it.  :-)

Ludo’.



Re: dmd’s new name

2016-01-07 Thread Florian Paul Schmidt
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

On 07.01.2016 22:02, Ludovic Courtès wrote:

> I proposed to Richard Stallman that we change the name to “GNU
> Shepherd” and recently got the green light.

It's corny, it's cheesy. I like it ;)

Flo


- -- 
https://fps.io
-BEGIN PGP SIGNATURE-
Version: GnuPG v2

iQEcBAEBCAAGBQJWjtPwAAoJEA5f4Coltk8Zlo4H/1Ne1VKkAkw40xZLxnygcS9l
wu5j4PkXoa+4rCO1wyzhP1ZSzKecOVL92MoC54nP48nus5Y6Gi4y8aHssvL66Yj+
Osh3c0liF1qdqwyBr/nm8D43BvrQTvI4XDry96L1etKZMtvnhgX/BpsNVOWm1Brq
v8QULVMPjfIDvNBFTo2ba1tiMDaf8b77FwHmkIVUCpjudecmO0f5GCNB/TM/MIj8
a2RamfXHxL++luZrhIYan8Ln7eiX/WgVYDSc+g8F0tV9pfh93/VPpMtS0TUd4mNk
oFU4Zl2qKMJCVesAPuVrD4PNdWt45eBBUWZOtKE37gDO2IZDXj1bOIeh89Wq7ho=
=sNVz
-END PGP SIGNATURE-



Re:dmd’s new name

2016-01-07 Thread d.4.n.1
I like these names :) it's a perfect GNU spirit 3:)



Sent from my Mi phoneOn l...@gnu.org, Jan 7, 2016 7:04 PM wrote:l...@gnu.org (Ludovic Courtès) skribis:

> Walter Bright  skribis:
>
>> The D programming language compiler has been called dmd since about
>> 2000 or so. In order to avoid confusion, may I request that the Gnu
>> dmd ("Daemons-managing Daemon") change its acronym?
>
> For the record, GNU’s dmd has been around since ~2003¹.
>
> Changing names is obviously an annoyance, technically and otherwise.
> We’re not opposed to the idea, but that would take a bit more discussion
> among developers.

You might remember this discussion from March 2015.

  https://lists.gnu.org/archive/html/guix-devel/2015-03/msg00176.html

I proposed to Richard Stallman that we change the name to “GNU Shepherd”
and recently got the green light.

Rationale:

  1. A shepherd looks after sheep (or gnus ;-)), and GNU dmd looks after
 daemons.

  2. “Shepherd” ends with a ‘d’, which makes it a good name for a daemon.

  3. It’s a pun in the same spirit as “GNU Hurd”.

  4. We might even rename ‘deco’ to ‘herd’ because it’s the very command
 that allows users to herd their daemons.

Hope you like it.  :-)

Ludo’.




Re: [PATCH] gnu: Add mpv-minimal.

2016-01-07 Thread Alex Kost
Alex Kost (2015-12-25 18:29 +0300) wrote:

> Efraim Flashner (2015-12-24 12:14 +0300) wrote:
>
> [...]
>> I looked at the MPV github page and the syntax for MPV over built-in
>> samba is 'mpv smb://user:password@host:/full/path/to/file.ext' and
>> without tab completion and without support for .netrc or .smb.conf I
>> would never do that. Once the directory is mounted locally it doesn't
>> need samba to play networked content.
>>
>> Now that I've looked at it more it seems samba support isn't really a
>> useful feature for mpv.
>
> Great news, thanks for looking at it!  Now this looks like a
> not-very-common feature indeed.  I'll wait for other objections for a
> week or so before removing 'samba' input from 'mpv' package

Done in commit fbbaa4d.  Let's see if anyone will report about missing
feature :-)

-- 
Alex



Re: dmd’s new name

2016-01-07 Thread Ricardo Wurmus

Ludovic Courtès  writes:

> l...@gnu.org (Ludovic Courtès) skribis:
>
>> Walter Bright  skribis:
>>
>>> The D programming language compiler has been called dmd since about
>>> 2000 or so. In order to avoid confusion, may I request that the Gnu
>>> dmd ("Daemons-managing Daemon") change its acronym?
>>
>> For the record, GNU’s dmd has been around since ~2003¹.
>>
>> Changing names is obviously an annoyance, technically and otherwise.
>> We’re not opposed to the idea, but that would take a bit more discussion
>> among developers.
>
> You might remember this discussion from March 2015.
>
>   https://lists.gnu.org/archive/html/guix-devel/2015-03/msg00176.html
>
> I proposed to Richard Stallman that we change the name to “GNUShepherd”
> and recently got the green light.
>
> Rationale:
>
>   1. A shepherd looks after sheep (or gnus ;-)), and GNUdmd looks after
>  daemons.
>
>   2. “Shepherd” ends with a ‘d’, which makes it a good name for a daemon.
>
>   3. It’s a pun in the same spirit as “GNU Hurd”.
>
>   4. We might even rename ‘deco’ to ‘herd’ because it’s the very command
>  that allows users to herd their daemons.
>
> Hope you like it.  :-)

I do!  I’m happy this issue has been solved.  It’s also nice that
“shepherd” can be pronounced and is not another abbreviation that has to
be spelled out.

~~ Ricardo




Re: [PATCH] gnu: unison: Add "doc" output.

2016-01-07 Thread Eric Bavier
On Mon, 21 Dec 2015 11:39:10 +0100
l...@gnu.org (Ludovic Courtès) wrote:

> Eric Bavier  skribis:
> 
> > On Sun, 20 Dec 2015 23:11:07 +0100
> > l...@gnu.org (Ludovic Courtès) wrote:
> >  
> >> Eric Bavier  skribis:
> >>   
> >> > +(define (unison-doc ext version hash)
> >> > +  (origin
> >> > +(method url-fetch)
> >> > +(uri (string-append "https://www.seas.upenn.edu/~bcpierce/unison/";
> >> > +"download/releases/unison-" version "/unison-"
> >> > +version "-manual." ext))
> >> > +(sha256 (base32 hash  
> >> 
> >> [...]
> >>   
> >> > + `(("doc-pdf"
> >> > +,(unison-doc "pdf" version
> >> > + 
> >> > "0y5mywjn352nw4wqli94gnc5vn1f72g56jqqk1nqajz0ark998nb"))
> >> > +   ("doc-ps"
> >> > +,(unison-doc "ps" version
> >> > + 
> >> > "11awy1xxhmckwnx42hllmngmx8q4ck18vpwpgfqqhj0x8vx0b3ha"))
> >> > +   ("doc-html"
> >> > +,(unison-doc "html" version
> >> > + 
> >> > "06myrpv067j5ffm265fm0a83gm41j9bv3ps3yiyb1hqgfy1qy3ah"  
> >> 
> >> Could we instead build them from source?  
> >
> > Possibly.  The documentation source is not available in the download
> > tarball, only in the developer svn repository, so we could do an svn
> > fetch of that.  Would that be alright?  
> 
> Sure.

Attached is an updated patch that pulls the unison source from the
developer svn repository and builds the documentation from that.  The
origin snippet is a bit more than I had hoped for, but it works.

`~Eric
From c8a0086db4d78091e06326a5ffe55a7bf2543091 Mon Sep 17 00:00:00 2001
From: Eric Bavier 
Date: Fri, 18 Dec 2015 19:29:22 -0600
Subject: [PATCH] gnu: unison: Add "doc" output.

* gnu/packages/ocaml.scm (unison)[source]: Use svn-fetch with snippet.
  [outputs]: New field.
  [native-inputs]: Add ghostscript, texlive, hevea, and lynx.
  [arguments]: Add 'install-doc phase.
---
 gnu/packages/ocaml.scm | 91 +-
 1 file changed, 82 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm
index 7f80fc8..19943cf 100644
--- a/gnu/packages/ocaml.scm
+++ b/gnu/packages/ocaml.scm
@@ -3,6 +3,7 @@
 ;;; Copyright © 2014, 2015 Mark H Weaver 
 ;;; Copyright © 2015 Andreas Enge 
 ;;; Copyright © 2015 David Hashe 
+;;; Copyright © 2016 Eric Bavier 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -23,6 +24,7 @@
   #:use-module ((guix licenses) #:hide (zlib))
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix svn-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
@@ -36,6 +38,8 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages texlive)
+  #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages lynx)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ncurses)
@@ -496,16 +500,67 @@ libpanel, librsvg and quartz.")
 (version "2.48.3")
 (source
   (origin
-(method url-fetch)
-  (uri (string-append "https://www.seas.upenn.edu/~bcpierce/unison/";
-  "download/releases/stable/unison-" version
-  ".tar.gz"))
-  (sha256
-(base32
-  "10sln52rnnsj213jy3166m0q97qpwnrwl6mm529xfy10x3xkq3gl"
+(method svn-fetch)
+(uri (svn-reference
+  (url (string-append "https://webdav.seas.upenn.edu/svn/";
+  "unison/branches/"
+  (version-major+minor version)))
+  (revision 535)))
+(file-name (string-append name "-" version "-checkout"))
+(sha256
+ (base32
+  "0486s53wyayicj9f2raj2dvwvk4xyzar219rccc1iczdwixm4x05"))
+(modules '((guix build utils)
+   (ice-9 rdelim)
+   (ice-9 regex)
+   (srfi srfi-1)))
+(snippet
+ `(begin
+;; The svn revision in the release tarball appears to be
+;; artificially manipulated in order to set the desired point
+;; version number.  Because the point version is calculated during
+;; the build, we can offset pointVersionOrigin by the desired
+;; point version and write that into "Rev: %d".  We do this rather
+;; than hardcoding the necessary revision number, for
+;; maintainability.
+(with-atomic-file-replacement "src/mkProjectInfo.ml"
+  (lambda (in out)
+(let ((pt-ver (string->number (third (string-split ,version 
#\.
+  (pt-rx  (make-regexp "^let pointVersionOrigin = 
([0-9]+)"))
+  (rev-rx (make-regexp "Rev: [0-9]+")))
+  (let loop ((pt-origin #f))
+(let ((line (read-l