Re: [PATCH 1/3] gnu: connman: Use localstatedir outside of store.

2016-11-09 Thread Efraim Flashner
On Wed, Nov 09, 2016 at 10:22:43PM +0100, Tomáš Čech wrote:
> * gnu/packages/connman.scm (connman): Use localstatedir outside of store.
> ---
>  gnu/packages/connman.scm | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/gnu/packages/connman.scm b/gnu/packages/connman.scm
> index cd0f6a9..7af20c9 100644
> --- a/gnu/packages/connman.scm
> +++ b/gnu/packages/connman.scm
> @@ -55,6 +55,9 @@
>   "--enable-vpnc"
>   "--enable-pptp"
>   "--enable-l2tp"
> + ;; location for daemon state files and internal configuration
> + ;; needs to be writeable
> + "--localstatedir=/var"
>   (string-append
>"--with-dbusconfdir=" (assoc-ref %outputs "out") "/etc")
>   (string-append
> -- 
> 2.10.2
> 
> 

Thanks for working on this! I always had a plan to come back to the
connman service and make sure that it really worked well but I just
hadn't had a chance to.

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


signature.asc
Description: PGP signature


Re: [Patch v2 3/3] gnu: Add pdfposter.

2016-11-09 Thread Efraim Flashner
On Wed, Nov 09, 2016 at 11:39:13PM +0100, Hartmut Goebel wrote:
> * gnu/packages/pdf.scm(pdfposter): New variable.
> ---
>  gnu/packages/pdf.scm | 32 
>  1 file changed, 32 insertions(+)
> 
> diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
> index e0279c6..06cfab9 100644
> --- a/gnu/packages/pdf.scm
> +++ b/gnu/packages/pdf.scm
> @@ -851,3 +851,35 @@ is therefore a useful tool for websites that manage or 
> manipulate PDFs.")
>  Note: This module isn't maintained anymore.  For new projects please use
>  python-pypdf2 instead.")
>  (license license:bsd-3)))
> +
> +(define-public pdfposter
> +  (package
> +(name "pdfposter")
> +(version "0.6.0")
> +(source (origin
> +  (method url-fetch)
> +  (uri (pypi-uri "pdftools.pdfposter" version ".tar.bz2"))
> +  (sha256
> +   (base32
> +"1i9jqawf279va089ykicglcq4zlsnwgcnsdzaa8vnm836lqhywma"
> +(build-system python-build-system)
> +(arguments
> + `(#:tests? #f  ; no test suite, only for visula control
^^^
typo


> +   #:python ,python-2))
> +(inputs
> + ;; pdfposter 0.6.0 still uses the old pyPdf
> + `(("python2-pypdf" ,python2-pypdf)))
> +(native-inputs
> + `(("python2-setuptools" ,python2-setuptools)))
> +(home-page "https://pythonhosted.org/pdftools.pdfposter/";)
> +(synopsis "Scale and tile PDF images/pages to print on multiple pages")
> +(description "@command{pdfposter} can be used to create a large poster by
> +building it from multple pages and/or printing it on large media.  It expects
> +as input a PDF file, normally printing on a single page.  The output is again
> +a PDF file, maybe containing multiple pages together building the poster.  
> The
> +input page will be scaled to obtain the desired size.
> +
> +This is much like @command{poster} does for Postscript files, but working 
> with
> +PDF.  Since sometimes @command{poster} does not like your files converted 
> from
> +PDF. :-) Indeed @command{pdfposter} was inspired by @command{poster}.")

I would leave this out

> +(license license:gpl3+)))
> -- 
> 2.7.4
> 
> 

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


signature.asc
Description: PGP signature


[PATCH 2/3] gnu: Add python-rednose.

2016-11-09 Thread Danny Milosavljevic
* gnu/packages/python.scm (python-rednose): New variable.
---
 gnu/packages/python.scm | 32 
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index e957bf2..cb25d4e 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -12180,3 +12180,35 @@ asynchronous messaging environments.")
 (synopsis "Console text coloring for Python")
 (description "This package provides console text coloring for Python.")
 (license license:bsd-3)))
+
+(define-public python-rednose
+  (package
+(name "python-rednose")
+(version "1.2.1")
+(source
+  (origin
+(method url-fetch)
+(uri (pypi-uri "rednose" version))
+(sha256
+  (base32
+"0b0bsna217lr1nykyhl5fgjly15zhdvqd4prg4wy1zrgfv7al6m0"
+(build-system python-build-system)
+(arguments
+ `(#:phases
+   (modify-phases %standard-phases
+ (add-after 'unpack 'fix-deps
+   (lambda _
+ ;; See 
+ (substitute* "setup.py"
+   (("python-termstyle") "termstyle"))
+ #t)
+(propagated-inputs
+ `(("python-colorama" ,python-colorama)
+   ("python-termstyle" ,python-termstyle)))
+(native-inputs
+ `(("python-six" ,python-six)
+   ("python-nose" ,python-nose)))
+(home-page "https://github.com/JBKahn/rednose";)
+(synopsis "Colored output for Python nosetests")
+(description "This package provides colored output for Python nosetests.")
+(license license:bsd-3)))



[PATCH 0/3] Add python-flask-restplus

2016-11-09 Thread Danny Milosavljevic
Danny Milosavljevic (3):
  gnu: Add python-termstyle.
  gnu: Add python-rednose.
  gnu: Add python-flask-restplus.

 gnu/packages/python.scm | 79 +
 1 file changed, 79 insertions(+)




[PATCH 1/3] gnu: Add python-termstyle.

2016-11-09 Thread Danny Milosavljevic
* gnu/packages/python.scm (python-termstyle): 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 8cc3de6..e957bf2 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -12163,3 +12163,20 @@ asynchronous messaging environments.")
 
 (define-public python2-axolotl
   (package-with-python2 python-axolotl))
+
+(define-public python-termstyle
+  (package
+(name "python-termstyle")
+(version "0.1.11")
+(source
+  (origin
+(method url-fetch)
+(uri (pypi-uri "termstyle" version))
+(sha256
+  (base32
+"17wzkkcqy5zc0g68xlad3kcv66iw14d2pwqc0h9420gak0vbhx7g"
+(build-system python-build-system)
+(home-page "http://github.com/gfxmonk/termstyle";)
+(synopsis "Console text coloring for Python")
+(description "This package provides console text coloring for Python.")
+(license license:bsd-3)))



[PATCH 3/3] gnu: Add python-flask-restplus.

2016-11-09 Thread Danny Milosavljevic
* gnu/packages/python.scm (python-flask-restplus): New variable.
---
 gnu/packages/python.scm | 30 ++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index cb25d4e..58b49ed 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -12212,3 +12212,33 @@ asynchronous messaging environments.")
 (synopsis "Colored output for Python nosetests")
 (description "This package provides colored output for Python nosetests.")
 (license license:bsd-3)))
+
+(define-public python-flask-restplus
+  (package
+(name "python-flask-restplus")
+(version "0.9.2")
+(source
+  (origin
+(method url-fetch)
+(uri (pypi-uri "flask-restplus" version))
+(sha256
+  (base32
+"11his6ii5brpkhld0d5bwzjjw4q3vmplpd6fmgzjrvvklsbk0cf4"
+(build-system python-build-system)
+(propagated-inputs
+  `(("python-aniso8601" ,python-aniso8601)
+("python-flask" ,python-flask)
+("python-jsonschema" ,python-jsonschema)
+("python-pytz" ,python-pytz)
+("python-six" ,python-six)))
+(native-inputs
+ `(("python-tzlocal" ,python-tzlocal)
+   ("python-blinker" ,python-blinker)
+   ("python-nose" ,python-nose)
+   ("python-rednose" ,python-rednose)))
+(home-page "https://github.com/noirbizarre/flask-restplus";)
+(synopsis "Framework for fast, easy and documented API development with 
Flask")
+(description "This package provides a framework for API development with 
Flask.
+It's like the package @code{python-flask-restful} - but supports 
@code{python-swagger}
+documentation builder.")
+(license license:expat)))



Re: [Patch 0/10] Add Ring

2016-11-09 Thread Leo Famulari
On Wed, Nov 09, 2016 at 12:07:10PM -0600, Lukas Gradl wrote:
> I would like to apologize for my long silence.  I am currently facing
> somewhat of a crisis in my professional life, which is taking a lot of
> my time and energy.
> 
> Chris Marusich  writes:
> 
> > What's the status of this patch series?  Especially since Ring just
> > recently became an official GNU package [1], it would be super nice to
> > have it in GNU Guix!
> >
> > [1] https://lists.gnu.org/archive/html/ring/2016-11/msg4.html
> 
> I agree this is very exciting.  Unfortunately, I am afraid that I will
> not have the time to finish this patch series in the near future.  I
> have been working on this in my spare time which I have to dedicate to
> other purposes right now.  I am very sorry about this.
> 
> If anyone would like to work on this patch series, please feel free to
> claim it as your own. I hope my work will be of some use.  If nobody
> picks it up, I will be very happy to come back to it, but that will most
> likely not happen within the next two months.
> 
> I am sorry to tell you this only now, I should have come forward with
> this earlier.

Hi Lukas, there's really no need to apologize. We are happy for any help
we can get :)

I'm sure somebody will be happy to pick this up! Thank you for your work
so far!

I wish you good luck and I hope to see you again when you have more free
time.

Leo


signature.asc
Description: PGP signature


[Patch v2 3/3] gnu: Add pdfposter.

2016-11-09 Thread Hartmut Goebel
* gnu/packages/pdf.scm(pdfposter): New variable.
---
 gnu/packages/pdf.scm | 32 
 1 file changed, 32 insertions(+)

diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index e0279c6..06cfab9 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -851,3 +851,35 @@ is therefore a useful tool for websites that manage or 
manipulate PDFs.")
 Note: This module isn't maintained anymore.  For new projects please use
 python-pypdf2 instead.")
 (license license:bsd-3)))
+
+(define-public pdfposter
+  (package
+(name "pdfposter")
+(version "0.6.0")
+(source (origin
+  (method url-fetch)
+  (uri (pypi-uri "pdftools.pdfposter" version ".tar.bz2"))
+  (sha256
+   (base32
+"1i9jqawf279va089ykicglcq4zlsnwgcnsdzaa8vnm836lqhywma"
+(build-system python-build-system)
+(arguments
+ `(#:tests? #f  ; no test suite, only for visula control
+   #:python ,python-2))
+(inputs
+ ;; pdfposter 0.6.0 still uses the old pyPdf
+ `(("python2-pypdf" ,python2-pypdf)))
+(native-inputs
+ `(("python2-setuptools" ,python2-setuptools)))
+(home-page "https://pythonhosted.org/pdftools.pdfposter/";)
+(synopsis "Scale and tile PDF images/pages to print on multiple pages")
+(description "@command{pdfposter} can be used to create a large poster by
+building it from multple pages and/or printing it on large media.  It expects
+as input a PDF file, normally printing on a single page.  The output is again
+a PDF file, maybe containing multiple pages together building the poster.  The
+input page will be scaled to obtain the desired size.
+
+This is much like @command{poster} does for Postscript files, but working with
+PDF.  Since sometimes @command{poster} does not like your files converted from
+PDF. :-) Indeed @command{pdfposter} was inspired by @command{poster}.")
+(license license:gpl3+)))
-- 
2.7.4




[Patch v2 1/3] gnu: Add python-pypdf2.

2016-11-09 Thread Hartmut Goebel
* gnu/packages/pdf.scm(python-pypdf2, python2-pypdf2): New variables.
---
 gnu/packages/pdf.scm | 45 +
 1 file changed, 45 insertions(+)

diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index ee33e3c..e243006 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -784,3 +784,48 @@ the framebuffer.")
 (description "@command{pdf2svg} is a simple command-line PDF to SVG
 converter using the Poppler and Cairo libraries.")
 (license license:gpl2+)))
+
+(define-public python-pypdf2
+  (package
+(name "python-pypdf2")
+(version "1.26.0")
+(source (origin
+  (method url-fetch)
+  (uri (pypi-uri "PyPDF2" version))
+  (sha256
+   (base32
+"11a3aqljg4sawjijkvzhs3irpw0y67zivqpbjpm065ha5wpr13z2"
+(build-system python-build-system)
+(arguments
+ `(#:tests? #f)) ; tests fail in Python 3 (due to str vs bytes)
+(home-page "http://mstamy2.github.com/PyPDF2";)
+(synopsis "Pure Python PDF toolkit")
+(description "A pure Python library built as a PDF toolkit.  It is capable
+of:
+
+@enumerate
+@item extracting document information (title, author, …)
+@item splitting documents page by page
+@item merging documents page by page
+@item cropping pages
+@item merging multiple pages into a single page
+@item encrypting and decrypting PDF files
+@item and more!
+@end enumerate
+
+By being pure Python, it should run on any Python platform without any
+dependencies on external libraries.  It can also work entirely on StringIO
+objects rather than file streams, allowing for PDF manipulation in memory.  It
+is therefore a useful tool for websites that manage or manipulate PDFs.")
+(license license:bsd-3)))
+
+(define-public python2-pypdf2
+  (package
+(inherit (package-with-python2 python-pypdf2))
+(arguments
+ `(#:python ,python-2
+   #:phases
+   (modify-phases %standard-phases
+ (replace 'check
+   (lambda _
+ (zero? (system* "python" "-m" "unittest" "Tests.tests")
-- 
2.7.4




[Patch v2 2/3] gnu: Add python-pypdf.

2016-11-09 Thread Hartmut Goebel
* gnu/packages/pdf.scm(python2-pypdf): New variable.
---
 gnu/packages/pdf.scm | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index e243006..e0279c6 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -829,3 +829,25 @@ is therefore a useful tool for websites that manage or 
manipulate PDFs.")
  (replace 'check
(lambda _
  (zero? (system* "python" "-m" "unittest" "Tests.tests")
+
+(define-public python2-pypdf
+  (package
+(name "python2-pypdf")
+(version "1.13")
+(source (origin
+  (method url-fetch)
+  (uri (pypi-uri "pyPdf" version))
+  (sha256
+   (base32
+"0fqfvamir7k41w84c73rghzkiv891gdr17q5iz4hgbf6r71y9v9s"
+(build-system python-build-system)
+(arguments
+ `(#:tests? #f  ; no tests
+   #:python ,python-2))
+(home-page "http://pybrary.net/pyPdf/";)
+(synopsis "Pure Python PDF toolkit")
+(description "A pure Python library built as a PDF toolkit.
+
+Note: This module isn't maintained anymore.  For new projects please use
+python-pypdf2 instead.")
+(license license:bsd-3)))
-- 
2.7.4




Re: [PATCH 3/3] services: Require wpa-supplicant-service for connman-service.

2016-11-09 Thread Ludovic Courtès
Tomáš Čech  skribis:

> * gnu/services/networking.scm (connman-shepherd-service): Add
>   wpa-supplicant among list of requirements.

OK!

So does Connman work as expected now?  I guess it was all broken before?

Thanks,
Ludo’.



Re: [PATCH 2/3] services: Add wpa-supplicant-service.

2016-11-09 Thread Ludovic Courtès
Tomáš Čech  skribis:

> * gnu/services/networking.scm (wpa-supplicant-service): New procedure.
> (wpa-supplicant-service-type): New variable.
> (wpa-supplicant-shepherd-service): New procedure.
> * doc/guix.texi (Networking Services): Document it.

Could you remove the ‘wpa-supplicant-service’ procedure and simply
expose and document ‘wpa-supplicant-service-type’?  So users would
write:

  (service wpa-supplicant-service-type wpa-supplicant)

instead of:

  (wpa-supplicant-service)

I’m trying to incrementally get us to do that for all services, because
I think it’s a bit clearer (one immediately sees what type of
configuration value is used.)

> +@cindex WPA Supplicant
> +@deffn {Scheme Procedure} wpa-supplicant-service @
> +   [#:wpa-supplicant @var{wpa-supplicant}]
> +Return a service that runs @url{https://w1.fi/wpa_supplicant/,WPA
> +supplicant}, an authentication daemon required to authenticate against
> +encrypted WiFi or ethernet networks.

Could you also mention that wpa_supplicant is started to listen on a
D-Bus interface?

> + (requirement '(user-processes dbus-system loopback))
> + (start #~(make-forkexec-constructor
> +   (list (string-append #$wpa-supplicant
> +"/sbin/wpa_supplicant")
> + "-u" "-B")))

I think it would be more reliable to use
“-P/var/run/wpa_supplicant.pid”, and thus

  #:pid-file "/var/run/wpa_supplicant.pid"

OK with changes along these lines, thanks!

Ludo’.



Re: [PATCH 1/3] gnu: connman: Use localstatedir outside of store.

2016-11-09 Thread Ludovic Courtès
Tomáš Čech  skribis:

> * gnu/packages/connman.scm (connman): Use localstatedir outside of store.

OK!



Re: [PATCH 3/3] gnu: Add pdfposter.

2016-11-09 Thread Hartmut Goebel
Am 09.11.2016 um 01:02 schrieb Leo Famulari:
> I see you are the author of this software :)
:-)
> Can we use pypi-uri? It takes an optional extension argument that might
> be required in this case.

This did the trick. Thanks.

> How about these files:
> https://gitlab.com/pdftools/pdfposter/tree/develop/test

These are only for visual control, not a test-suite.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: [PATCH 2/3] gnu: Add python-pypdf.

2016-11-09 Thread Hartmut Goebel
Am 09.11.2016 um 08:19 schrieb Efraim Flashner:
> One of the things I've picked up is that this will work with the pypi
> importer if you feed it "pyPdf"

Fixed. I tries some combinations but obviously missed the obvious one :-)

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: [PATCH 2/3] gnu: Add python-pypdf.

2016-11-09 Thread Hartmut Goebel
Am 09.11.2016 um 00:57 schrieb Leo Famulari:
>> > +(home-page "http://mstamy2.github.com/PyPDF2";)
> Also, does it have its own home-page?

Well spotted :-)

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |



Re: [PATCH 1/3] gnu: Add python-pypdf2.

2016-11-09 Thread Hartmut Goebel
Am 09.11.2016 um 00:55 schrieb Leo Famulari:
>> +  '(#:tests? #f))  ; no tests
> Are these files not relevant?
> https://github.com/mstamy2/PyPDF2/tree/master/Tests

Ubs, I missed them. This is negligible and fails in Python 3.
nevertheless I added them.

> I would replace the hyphen in "Pure-Python" with a space.
> We have to use enumerate instead of itemize due to a limitation in

Done. I'll send updates patches since again it's late at night :-)

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: [PATCH] doc: Added some index entries.

2016-11-09 Thread Ludovic Courtès
John Darrington  skribis:

> * doc/guix.texi: Added various @cindex tags to assist readers.

That’s a good idea, there were too few entries so far.

A general remark: please pay attention to spelling and case, like
“Guix”, “SSH”, etc.

> +@cindex installing guix
>  GNU Guix is available for download from its website at

“Guix”

> +@cindex installation guix from binaries

“installing Guix from binaries”

>  @item
> +@cindex authorized substitutes

Also:

  @cindex substitutes, authorization thereof

(I’ve just reread what the Texinfo manual has to say, and it’s always
enlightening (info "(texinfo) Index Entries").)

>  @item
> +@cindex substitutes
>  Installing @uref{http://gnutls.org/, GnuTLS-Guile} will allow you to
>  access @code{https} URLs for substitutes, which is highly recommended
>  (@pxref{Substitutes}).  It also allows you to access HTTPS URLs with the

This part doesn’t really talk about substitutes, not sure if it’s a good
idea to have an entry here.

> +@cindex nix

@cindex Nix, compatibility

>  @noindent
> +@cindex authorized substitutes
>  Each build machine must authorize the key of the master machine so that
>  it accepts store items it receives from the master:

This doesn’t talk about substitute authorization in general, so I
wouldn’t put this entry here.

> +@cindex installing packages
> +@cindex removing packages

Maybe also “package installation” and “package removal”.

>  @cindex security
>  @cindex digital signatures
> +@cindex authorized substitutes

Also @cindex substitutes, authorization thereof.

> +@cindex exporting

“exporting store items”

>  @item @code{initrd} (default: @code{base-initrd})
> +@cindex initrd

Also @cindex initial RAM disk.

>  @node User Accounts
>  @subsection User Accounts
>  
> +@cindex users

Also:
  @cindex user accounts
  @cindex accounts

> +@cindex tor

“Tor”

> +@cindex ssh

“SSH server”

> +@cindex ssh

Ditto.

OK with changes along these lines, thank you!

Ludo’.



[PATCH 3/3] services: Require wpa-supplicant-service for connman-service.

2016-11-09 Thread Tomáš Čech
* gnu/services/networking.scm (connman-shepherd-service): Add
  wpa-supplicant among list of requirements.
---
 gnu/services/networking.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 05ee339..0462f81 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -714,7 +714,7 @@ that attempting to keep active network connectivity when 
available."
   (list (shepherd-service
  (documentation "Run Connman")
  (provision '(networking))
- (requirement '(user-processes dbus-system loopback))
+ (requirement '(user-processes dbus-system loopback wpa-supplicant))
  (start #~(make-forkexec-constructor
(list (string-append #$connman
 "/sbin/connmand")
-- 
2.10.2




[PATCH 1/3] gnu: connman: Use localstatedir outside of store.

2016-11-09 Thread Tomáš Čech
* gnu/packages/connman.scm (connman): Use localstatedir outside of store.
---
 gnu/packages/connman.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/packages/connman.scm b/gnu/packages/connman.scm
index cd0f6a9..7af20c9 100644
--- a/gnu/packages/connman.scm
+++ b/gnu/packages/connman.scm
@@ -55,6 +55,9 @@
  "--enable-vpnc"
  "--enable-pptp"
  "--enable-l2tp"
+ ;; location for daemon state files and internal configuration
+ ;; needs to be writeable
+ "--localstatedir=/var"
  (string-append
   "--with-dbusconfdir=" (assoc-ref %outputs "out") "/etc")
  (string-append
-- 
2.10.2




[PATCH 2/3] services: Add wpa-supplicant-service.

2016-11-09 Thread Tomáš Čech
* gnu/services/networking.scm (wpa-supplicant-service): New procedure.
(wpa-supplicant-service-type): New variable.
(wpa-supplicant-shepherd-service): New procedure.
* doc/guix.texi (Networking Services): Document it.
---
 doc/guix.texi   |  8 
 gnu/services/networking.scm | 36 +++-
 2 files changed, 43 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 89a7a58..bdf0bce 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -8301,6 +8301,14 @@ several the @command{connmanctl} command to interact 
with the daemon and
 configure networking."
 @end deffn
 
+@cindex WPA Supplicant
+@deffn {Scheme Procedure} wpa-supplicant-service @
+   [#:wpa-supplicant @var{wpa-supplicant}]
+Return a service that runs @url{https://w1.fi/wpa_supplicant/,WPA
+supplicant}, an authentication daemon required to authenticate against
+encrypted WiFi or ethernet networks.
+@end deffn
+
 @deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @
   [#:servers @var{%ntp-servers}] @
   [#:allow-large-adjustment? #f]
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index df609da..05ee339 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -64,7 +64,8 @@
 
 wicd-service
 network-manager-service
-connman-service))
+connman-service
+wpa-supplicant-service))
 
 ;;; Commentary:
 ;;;
@@ -740,4 +741,37 @@ several the @command{connmanctl} command to interact with 
the daemon and
 configure networking."
   (service connman-service-type connman))
 
+
+
+;;;
+;;; WPA supplicant
+;;;
+
+
+(define (wpa-supplicant-shepherd-service wpa-supplicant)
+  "Return a shepherd service for wpa_supplicant"
+  (list (shepherd-service
+ (documentation "Run WPA supplicant with dbus interface")
+ (provision '(wpa-supplicant))
+ (requirement '(user-processes dbus-system loopback))
+ (start #~(make-forkexec-constructor
+   (list (string-append #$wpa-supplicant
+"/sbin/wpa_supplicant")
+ "-u" "-B")))
+ (stop #~(make-kill-destructor)
+
+(define wpa-supplicant-service-type
+  (service-type (name 'wpa-supplicant)
+(extensions
+ (list (service-extension shepherd-root-service-type
+  wpa-supplicant-shepherd-service)
+   (service-extension dbus-root-service-type list)
+   (service-extension profile-service-type list)
+
+(define* (wpa-supplicant-service #:key (wpa-supplicant wpa-supplicant))
+  "Return a service that runs @url{https://w1.fi/wpa_supplicant/,WPA
+supplicant}, an authentication daemon required to authenticate against
+encrypted WiFi or ethernet networks."
+  (service wpa-supplicant-service-type wpa-supplicant))
+
 ;;; networking.scm ends here
-- 
2.10.2




[PATCH] doc: Added some index entries.

2016-11-09 Thread John Darrington
* doc/guix.texi: Added various @cindex tags to assist readers.
---
 doc/guix.texi | 87 ++-
 1 file changed, 86 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 89a7a58..d8a0e00 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -340,6 +340,7 @@ garbage collection of packages (@pxref{Features}).
 @node Installation
 @chapter Installation
 
+@cindex installing guix
 GNU Guix is available for download from its website at
 @url{http://www.gnu.org/software/guix/}.  This section describes the
 software requirements of Guix, as well as how to install it and get
@@ -369,6 +370,7 @@ system, such as @file{/etc}, are left untouched.
 @node Binary Installation
 @section Binary Installation
 
+@cindex installation guix from binaries
 This section describes how to install Guix on an arbitrary system from a
 self-contained tarball providing binaries for Guix and for all its
 dependencies.  This is often quicker than installing from source, which
@@ -379,6 +381,7 @@ Installing goes along these lines:
 
 @enumerate
 @item
+@cindex downloading
 Download the binary tarball from
 
@indicateurl{ftp://alpha.gnu.org/gnu/guix/guix-binary-@value{VERSION}.@var{system}.tar.xz},
 where @var{system} is @code{x86_64-linux} for an @code{x86_64} machine
@@ -494,6 +497,7 @@ Directories,,, texinfo, GNU Texinfo}, for more details on 
changing the
 Info search path.)
 
 @item
+@cindex authorized substitutes
 To use substitutes from @code{hydra.gnu.org} or one of its mirrors
 (@pxref{Substitutes}), authorize them:
 
@@ -547,6 +551,7 @@ The following dependencies are optional:
 
 @itemize
 @item
+@cindex substitutes
 Installing @uref{http://gnutls.org/, GnuTLS-Guile} will allow you to
 access @code{https} URLs for substitutes, which is highly recommended
 (@pxref{Substitutes}).  It also allows you to access HTTPS URLs with the
@@ -577,6 +582,7 @@ following packages are also needed:
 C++11 standard.
 @end itemize
 
+@cindex state directory
 When configuring Guix on a system that already has a Guix installation,
 be sure to specify the same state directory as the existing installation
 using the @code{--localstatedir} option of the @command{configure}
@@ -585,6 +591,7 @@ GNU Coding Standards}).  The @command{configure} script 
protects against
 unintended misconfiguration of @var{localstatedir} so you do not
 inadvertently corrupt your store (@pxref{The Store}).
 
+@cindex nix
 When a working installation of @url{http://nixos.org/nix/, the Nix package
 manager} is available, you
 can instead configure Guix with @code{--disable-daemon}.  In that case,
@@ -603,6 +610,7 @@ your goal is to share the store with Nix.
 @node Running the Test Suite
 @section Running the Test Suite
 
+@cindex test suite
 After a successful @command{configure} and @code{make} run, it is a good
 idea to run the test suite.  It can help catch issues with the setup or
 environment, or bugs in Guix itself---and really, reporting test
@@ -688,6 +696,7 @@ the daemon to download pre-built binaries.
 @node Build Environment Setup
 @subsection Build Environment Setup
 
+@cindex build environment
 In a standard multi-user setup, Guix and its daemon---the
 @command{guix-daemon} program---are installed by the system
 administrator; @file{/gnu/store} is owned by @code{root} and
@@ -921,6 +930,7 @@ archives of files from the store (@pxref{Invoking guix 
archive}):
 @end example
 
 @noindent
+@cindex authorized substitutes
 Each build machine must authorize the key of the master machine so that
 it accepts store items it receives from the master:
 
@@ -1203,6 +1213,7 @@ versions may be incompatible.
 
 @subsection X11 Fonts
 
+@cindex fonts
 The majority of graphical applications use Fontconfig to locate and
 load fonts and perform X11-client-side rendering.  The @code{fontconfig}
 package in Guix looks for fonts in @file{$HOME/.guix-profile}
@@ -1222,6 +1233,7 @@ for Chinese languages:
 guix package -i font-adobe-source-han-sans:cn
 @end example
 
+@cindex @code{xterm}
 Older programs such as @command{xterm} do not use Fontconfig and instead
 rely on server-side font rendering.  Such programs require to specify a
 full name of a font using XLFD (X Logical Font Description), like this:
@@ -1237,11 +1249,13 @@ your Guix profile, you need to extend the font path of 
the X server:
 xset +fp ~/.guix-profile/share/fonts/truetype
 @end example
 
+@cindex @code{xlsfonts}
 After that, you can run @code{xlsfonts} (from @code{xlsfonts} package)
 to make sure your TrueType fonts are listed there.
 
 @subsection X.509 Certificates
 
+@cindex @code{nss-certs}
 The @code{nss-certs} package provides X.509 certificates, which allow
 programs to authenticate Web servers accessed over HTTPS.
 
@@ -1252,6 +1266,7 @@ information.
 
 @subsection Emacs Packages
 
+@cindex @code{emacs}
 When you install Emacs packages with Guix, the elisp files may be placed
 either in @file{$HOME/.guix-profile/share/emacs/site-lisp/} or in
 

[PATCH] gnu: Add kerberos service.

2016-11-09 Thread John Darrington
* gnu/services/kerberos.scm (krb5-realm, krb5-configuration,
krb5-service-type): New variables.
---
 gnu/services/kerberos.scm | 230 +-
 1 file changed, 229 insertions(+), 1 deletion(-)

diff --git a/gnu/services/kerberos.scm b/gnu/services/kerberos.scm
index 144c71b..2147dd8 100644
--- a/gnu/services/kerberos.scm
+++ b/gnu/services/kerberos.scm
@@ -22,9 +22,237 @@
   #:use-module (gnu system pam)
   #:use-module (guix gexp)
   #:use-module (guix records)
+  #:use-module (srfi srfi-1)
   #:export (pam-krb5-configuration
 pam-krb5-configuration?
-pam-krb5-service-type))
+pam-krb5-service-type
+
+krb5-realm
+krb5-realm?
+
+krb5-configuration
+krb5-configuration?
+krb5-service-type))
+
+(define-record-type* 
+  krb5-realm  make-krb5-realm
+  krb5-realm?
+  (namekrb5-realm-name)
+
+  (admin-serverkrb5-realm-admin-server)
+  (kdc krb5-realm-kdc)
+  (auth-to-local   krb5-realm-auth-to-local (default '()))
+  (auth-to-local-names krb5-realm-auth-to-local-names (default '()))
+  (http-anchorskrb5-realm-http-anchors (default '()))
+  (default-domain  krb5-realm-default-domain (default #f))
+  (kpasswd-server  krb5-realm-kpasswd-server (default #f))
+  (master-kdc  krb5-realm-master-kdc (default #f))
+  (v4-instance-convert krb5-realm-v4-instance-convert (default '()))
+  (v4-realmkrb5-realm-v4-realm (default #f)))
+
+
+(define-syntax  guile->krb-cfg
+  (syntax-rules ()
+((guile->krb-cfg accessor what)
+ (string-map
+  (lambda (c) (if (eq? c #\-) #\_ c))
+  (string-drop (symbol->string accessor)
+   (string-length what))
+
+(define-syntax cfg-opt-string
+  (syntax-rules ()
+((cfg-opt-string accessor realm)
+ (if (accessor realm)
+ (format #f "\n\t~a = ~a"
+(guile->krb-cfg 'accessor "krb5-realm-")
+(accessor realm))
+ ""
+
+
+;; Generates one line of text per list item
+(define-syntax cfg-opt-list
+  (syntax-rules ()
+((cfg-opt-list accessor realm)
+ (if (not (null? (accessor realm)))
+ (string-concatenate
+  (map (lambda (item)
+ (format #f "\n\t~a = ~a"
+ (guile->krb-cfg 'accessor "krb5-realm-")
+ item))
+  (accessor realm)))
+ ""
+
+(define (krb5-realm->string realm)
+  "Return a string suitable for a krb5.conf fragment representing REALM"
+  (string-append "\n" (krb5-realm-name realm) " = {"
+ (cfg-opt-string krb5-realm-kdc realm)
+ (cfg-opt-string krb5-realm-admin-server realm)
+ (cfg-opt-string krb5-realm-default-domain realm)
+ (cfg-opt-list krb5-realm-auth-to-local realm)
+ (cfg-opt-list krb5-realm-http-anchors realm)
+ (cfg-opt-string krb5-realm-kpasswd-server realm)
+ (cfg-opt-string krb5-realm-master-kdc realm)
+ (cfg-opt-string krb5-realm-v4-realm realm)
+ "\n}"))
+
+
+;; For explanation of these fields see man 5 krb5.conf
+(define-record-type* 
+  krb5-configurationmake-krb5-configuration
+  krb5-configuration?
+
+  ;; [libdefaults]
+  (allow-weak-crypto  krb5-configuration-allow-weak-crypto (default 
#f))
+  (ap-req-checksum-type   krb5-configuration-ap-req-checksum-type (default 
#f))
+  (canonicalize   krb5-configuration-canonicalize (default #f))
+  (ccache-typekrb5-configuration-ccache-type (default #f))
+  (clockskew  krb5-configuration-clockskew (default #f))
+  (default-ccache-namekrb5-configuration-default-ccache-name (default 
#f))
+  (default-client-keytab-name krb5-configuration-default-client-keytab-name
+ (default 
#f))
+  (default-keytab-namekrb5-configuration-default-keytab-name (default 
#f))
+  (default-realm  krb5-configuration-default-realm (default #f))
+  (default-tgs-enctypes   krb5-configuration-default-tgs-enctypes (default 
#f))
+  (default-tkt-enctypes   krb5-configuration-default-tkt-enctypes (default 
#f))
+  (dns-canonicalize-hostname  krb5-configuration-dns-canonicalize-hostname
+  (default #t))
+  (dns-lookup-kdc krb5-configuration-dns-lookup-kdc
+  (default #f))
+  (err-fmtkrb5-configuration-err-fmt (default #f))
+  (extra-addresseskrb5-configuration-extra-addresses
+  (default #f))
+  (forwardablekrb5-configuration-forwardable (default #t))
+  (ignore-acceptor-hostname   krb5-configuration-ignore-acceptor-hostname
+  (default #f))
+  (k5login-authoritative  krb

Re: [Patch 0/10] Add Ring

2016-11-09 Thread Lukas Gradl

Hello,

I would like to apologize for my long silence.  I am currently facing
somewhat of a crisis in my professional life, which is taking a lot of
my time and energy.

Chris Marusich  writes:

> What's the status of this patch series?  Especially since Ring just
> recently became an official GNU package [1], it would be super nice to
> have it in GNU Guix!
>
> [1] https://lists.gnu.org/archive/html/ring/2016-11/msg4.html

I agree this is very exciting.  Unfortunately, I am afraid that I will
not have the time to finish this patch series in the near future.  I
have been working on this in my spare time which I have to dedicate to
other purposes right now.  I am very sorry about this.

If anyone would like to work on this patch series, please feel free to
claim it as your own. I hope my work will be of some use.  If nobody
picks it up, I will be very happy to come back to it, but that will most
likely not happen within the next two months.

I am sorry to tell you this only now, I should have come forward with
this earlier.

Best,
Lukas



signature.asc
Description: PGP signature


Re: [PATCH] Add php

2016-11-09 Thread Ludovic Courtès
Hello Julien,

Seems like the original reviewer (hi Marius! ;-)) missed this revision,
so here are a few comments.

Julien Lepiller  skribis:

> From 94c512aa3c9710b65b6fce0cd108744a7c308c63 Mon Sep 17 00:00:00 2001
> From: Julien Lepiller 
> Date: Sun, 30 Oct 2016 15:05:51 +0100
> Subject: [PATCH] gnu: Add php
>
> * gnu/packages/php.scm: New file.
> * gnu/packages/php.scm (php): New variable.

Only the first line is needed.

> +  (snippet
> +'(with-directory-excursion "ext"
> +   (for-each delete-file-recursively
> + `("pcre/pcrelib"
> +   "sqlite3/libsqlite"
> +   "gd/libgd"
> +   "mbstring/oniguruma"
> +   "xmlrpc/libxmlrpc"
> +   "zip/lib"))
> +   ;; couldn't unbundle these libraries:
> +   ;"bcmath/libbcmath" ;; this is bc.
> +   ;"fileinfo/libmagic"
> +   ;"mbstring/libmbfl"
> +   ;"date/lib"

Is it hard to unbundle ‘bc’ and ‘file’ (libmagic)?

> +(build-system gnu-build-system)
> +(arguments
> +   '(
> +#:configure-flags

Please adjust the indentation (check what other files do.)

> +  (list (string-append "--with-libxml-dir="
> +   (assoc-ref %build-inputs "libxml2"))

I suggest this trick to make it a bit more concise:

  #:configure-flags
  (let-syntax ((with (syntax-rules ()
   ((_ option input)
(string-append option "="
   (assoc-ref %build-inputs input))
(list (with "--with-libxml-dir" "libxml2")
  (with "--with-readline" "readline")
  …))

> +; A lot of tests fail and failure is not considered fatal.
> +#:tests? #f))

In what sense is it not considered fatal?  :-)

It would be nice to have some understanding of why the test fails.  If
it turns out to be difficult to fix, we can at least document the
problem in the comment, with enough detail.  Could you try to
investigate a bit?

> +(license license:gpl2)));(list
> + ; (license:non-copyleft "file://LICENSE"); the php license
> + ; license:lgpl2.1;bcmath and libmbfl
> + ; license:bsd-2;libmagic
> + ; license:expat)));date/lib

So PHP itself is GPLv2-only?

Apart from that, I think we’re almost done.

Could you send an updated patch to address those issues?  Then we can
happily apply it.

Thank you for working on it!

Ludo’.



Re: [PATCH v3 2/3] gnu: Add hidapi.

2016-11-09 Thread Ludovic Courtès
Theodoros Foradis  skribis:

> +;; HIDAPI can be used under one of three licenses.
> +(license (list gpl3
> +   bsd-3
> +   non-copyleft "file://LICENSE-orig.txt"

For the record, ‘guix lint’ reports an invalid ‘license’ here because
‘non-copyleft’ is a procedure.

I’m pushing a fix now.

Ludo’.



Re: [PATCH]: Add vifm.

2016-11-09 Thread Ludovic Courtès
Efraim Flashner  skribis:

> From af664191553bff15c2cde4fa0c85b693037fb4d3 Mon Sep 17 00:00:00 2001
> From: Efraim Flashner 
> Date: Wed, 9 Nov 2016 13:49:07 +0200
> Subject: [PATCH] gnu: Add vifm.
>
> * gnu/packages/vim.scm (vifm): New variable.

[...]

> +  (lambda _
> +(substitute* (find-files "tests" "\\.c$")
> + (("/bin/sh") (which "sh")))

Please align the line below the ‘u’ of ‘substitute*’.

> +(synopsis "Flexible vi-like file manager using ncurses")
> +(description "Vifm is a file manager providing a @code{vi}-like usage
> +experience.  It has similar keybindings and modes (e.g. normal, command line,
> +visual).  The interface uses ncurses, thus vifm can be used in text-only
> +environments.  It supports a wide range of features, some of which are known
> +from the @code{vi}-editor:

“the @command{vi} editor:”

Otherwise LGTM, thanks!

Ludo’.



Re: Errors Linting Package Definition for New Package ruby-net-http-digest-auth

2016-11-09 Thread Ludovic Courtès
Hello,

Leo Famulari  skribis:

> On Tue, Nov 08, 2016 at 08:41:51PM +0300, Frederick Muriithi wrote:

[...]

>> Running "./pre-inst-env guix lint ruby-net-http-digest-auth" fails
>> with the errors indicated in the attached file lint_log
>
>> gnu/packages/ruby.scm:4182:2: ruby-net-http-digest-auth-1.4: TLS certificate 
>> error: ERROR: X.509 certificate of 'github.com' could not be verified:
>>   signer-not-found
>>   invalid
>
> There are two TLS errors (here, for GitHub, and below, for NIST). I'm
> not sure but I'd guess that the linter is unable to find your
> certificate store, or it lacks the GnuTLS client.

Exactly: you need to tell ‘guix lint’ where to find X.509 certificates.
This comes from:

  
http://git.savannah.gnu.org/cgit/guix.git/commit/?id=bc3c41ce36349ed4ec758c70b48a7059e363043a

For background info, see:

  
https://www.gnu.org/software/guix/manual/html_node/Application-Setup.html#X_002e509-Certificates-1

That said, ‘guix lint’ shouldn’t print an ugly backtrace when that
happens.  I’ll push a commit that fixes that.

Thanks for your report, Frederick!

Ludo’.



Re: Libxslt CVE-2016-4738

2016-11-09 Thread Leo Famulari
On Wed, Nov 09, 2016 at 12:57:50AM +, Marius Bakke wrote:
> Leo Famulari  writes:
> 
> > Here is a patch to fix CVE-2016-4738 in libxslt.
> > From 1cbfeb5bb98924eddf1726fe56987fd1d282e7f8 Mon Sep 17 00:00:00 2001
> > From: Leo Famulari 
> > Date: Tue, 8 Nov 2016 17:12:01 -0500
> > Subject: [PATCH] gnu: libxslt: Fix CVE-2016-4738.
> >
> > * gnu/packages/patches/libxslt-CVE-2016-4738.patch: New file.
> > * gnu/local.mk (dist_patch_DATA): Add it.
> > * gnu/packages/xml.scm (libxslt)[replacement]: New field.
> > (libxslt/fixed): New variable.
> 
> Yay, more grafts ;)
> 
> Anyway, LGTM, thanks!

Thanks for the reviews. Pushed as
0b34b58688ac0d9bc0e2700acf82269e67ccdfa3


signature.asc
Description: PGP signature


Re: [PATCH 2/2] gnu: Add add kdevelop-pg-qt.

2016-11-09 Thread Ludovic Courtès
Thomas Danckaert  skribis:

> From c26790b1f47e78c37d0efab82c114f2aae1515dc Mon Sep 17 00:00:00 2001
> From: Thomas Danckaert 
> Date: Tue, 8 Nov 2016 14:16:43 +0100
> Subject: [PATCH 2/2] gnu: Add add kdevelop-pg-qt.
>
> * gnu/packages/kde.scm (kdevelop-pg-qt): New variable.

I changed the license to ‘lgpl2.0+’ (since headers carry the “or any
later version” wording) and committed.

Thanks!

Ludo’.



Re: [PATCH 1/2] gnu: Add libkomparediff2.

2016-11-09 Thread Ludovic Courtès
Thomas Danckaert  skribis:

> From f01b97e522ac9a25c6f29eea09d06a6db3ec0ab5 Mon Sep 17 00:00:00 2001
> From: Thomas Danckaert 
> Date: Tue, 8 Nov 2016 14:15:52 +0100
> Subject: [PATCH 1/2] gnu: Add libkomparediff2.
>
> * gnu/packages/kde.scm (libkomparediff2): New variable.

Applied, thanks!

Ludo’.



Re: Errors Linting Package Definition for New Package ruby-net-http-digest-auth

2016-11-09 Thread Frederick Muriithi
> There are two TLS errors (here, for GitHub, and below, for NIST). I'm
> not sure but I'd guess that the linter is unable to find your
> certificate store, or it lacks the GnuTLS client. How about if you try
> invoking the linter in an environment where you have all of Guix's
> dependencies available? Like this:
>
> $ guix environment guix --pure -- ./pre-inst-env guilx lint 
> ruby-net-http-digest-auth

I tried that and still my system can't seem to find the X.509
certificates. I then hit up the manuals some more to read up on
certificates 
(https://www.gnu.org/software/guix/manual/html_node/X_002e509-Certificates.html#X_002e509-Certificates)
and tried the same command after setting up as show in the link.
Still, my system couldn't find the certificates.

So I decided to try and lint an already accepted package, for the fun
of it, in this case ruby-concurrent by running:

$ guix environment guix --pure -- ./pre-inst-env guilx lint ruby-concurrent

The same 2 failing certs, github and static.nvd.nist.gov failed, even
in the case of the accepted packages.

At this point I am stumped. For more troubleshooting information, I am
running Debian 8 "Jessie"

$ uname -a
Linux localhost 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2
(2016-10-19) x86_64 GNU/Linux

I will keep looking, and should I find out what the issue is on my
own, I will update this thread with the results.
If anyone has an idea, I'd be grateful for pointers on what I am doing wrong.

-- 
Frederick M. Muriithi



Re: Shepherd does not recycle zombie processes

2016-11-09 Thread Ludovic Courtès
Hi,

Carlo Zancanaro  skribis:

> Yeah, I saw that note in the documentation. I used to have
>
>(action 'shepherd 'daemonize)
>
> as the first line in ~/.config/shepherd/init.scm. Is there some other
> way that I was supposed to do that?

No, I think that should work.

> With that line in place, Shepherd will leave behind a process every
> time I stop/start a service.
>
> I have attached an example init.scm that does this for me. If I start: 
>
>shepherd -c init.scm
>
> and then run:
>
>herd stop sleep
>herd start sleep
>herd stop sleep
>herd start sleep
>herd stop sleep
>
> then I will have three zombie sleep processes underneath my Shepherd
> process. (If the service were respawnable then it also would fail to
> restart the service.)

Could you run shepherd in “strace -f” and see where the SIGCHLD signals
go?

Thanks,
Ludo’.



[PATCH]: Add vifm.

2016-11-09 Thread Efraim Flashner
This one is a cli file manager with vi-like keybindings.

-- 
Efraim Flashner  אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
From af664191553bff15c2cde4fa0c85b693037fb4d3 Mon Sep 17 00:00:00 2001
From: Efraim Flashner 
Date: Wed, 9 Nov 2016 13:49:07 +0200
Subject: [PATCH] gnu: Add vifm.

* gnu/packages/vim.scm (vifm): New variable.
---
 gnu/packages/vim.scm | 60 
 1 file changed, 60 insertions(+)

diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 172d610..62e8f2c 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -31,6 +31,7 @@
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages groff)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
@@ -147,3 +148,62 @@ configuration files.")
("ruby" ,ruby)
("tcl" ,tcl)
,@(package-inputs vim)
+
+(define-public vifm
+  (package
+(name "vifm")
+(version "0.8.2")
+(source
+  (origin
+(method url-fetch)
+(uri (string-append "mirror://sourceforge/vifm/vifm/vifm-"
+version ".tar.bz2"))
+(sha256
+ (base32
+  "07r15kq7kjl3a41sd11ncpsii866xxps4f90zh3lv8jqcrv6silb"
+(build-system gnu-build-system)
+(arguments
+'(#:phases
+  (modify-phases %standard-phases
+(add-after 'patch-source-shebangs 'patch-test-shebangs
+  (lambda _
+(substitute* (find-files "tests" "\\.c$")
+ (("/bin/sh") (which "sh")))
+#t)
+(native-inputs
+ `(("groff" ,groff) ; for the documentation
+   ("perl" ,perl)))
+(inputs
+ `(("libx11" ,libx11)
+   ("ncurses" ,ncurses)))
+(home-page "http://vifm.info/";)
+(synopsis "Flexible vi-like file manager using ncurses")
+(description "Vifm is a file manager providing a @code{vi}-like usage
+experience.  It has similar keybindings and modes (e.g. normal, command line,
+visual).  The interface uses ncurses, thus vifm can be used in text-only
+environments.  It supports a wide range of features, some of which are known
+from the @code{vi}-editor:
+@enumerate
+@item utf8 support
+@item user mappings (almost like in @code{vi})
+@item ranges in command
+@item line commands
+@item user defined commands (with support for ranges)
+@item registers
+@item operation undoing/redoing
+@item fuse file systems support
+@item trash
+@item multiple files renaming
+@item support of filename modifiers
+@item colorschemes support
+@item file name color according to file type
+@item path specific colorscheme customization
+@item bookmarks
+@item operation backgrounding
+@item customizable file viewers
+@item handy @code{less}-like preview mode
+@item filtering out and searching for files using regular expressions
+@item one or two panes view
+@end enumerate
+With the package comes a plugin to use vifm as a vim file selector.")
+(license license:gpl2+)))
-- 
2.10.2



signature.asc
Description: PGP signature