Re: hackage importer

2015-06-09 Thread Ludovic Courtès
Federico Beffa  skribis:

> On Fri, Jun 5, 2015 at 9:30 AM, Ludovic Courtès  wrote:

[...]

>>> +(define (make-stack)
>>> +  "Creates a simple stack closure.  Actions on the generated stack are
>>> +requested by calling it with one of the following symbols as the first
>>> +argument: 'empty?, 'push!, 'top, 'pop! and 'clear!.  The action 'push! is 
>>> the
>>> +only one requiring a second argument corresponding to the object to be 
>>> added
>>> +to the stack."
>>> +  (let ((stack '()))
>>> +(lambda (msg . args)
>>> +  (cond ((eqv? msg 'empty?) (null? stack))
>>> +((eqv? msg 'push!) (set! stack (cons (first args) stack)))
>>> +((eqv? msg 'top) (if (null? stack) '() (first stack)))
>>> +((eqv? msg 'pop!) (match stack
>>> +((e r ...) (set! stack (cdr stack)) e)
>>> +(_ #f)))
>>> +((eqv? msg 'clear!) (set! stack '()))
>>> +(else #f)
>>
>> Fair enough.  :-)  I wonder what happens exactly when trying to return
>> monadic values in the parser.
>
> Given that the parser repeatedly calls the tunk generated by
> 'make-lexer' without passing any state or knowing anything about to
> which monad it may belong to, I thought that it would not work.  But,
> as you see, I'm new to Scheme, new to monads, and new to Lisp in
> general.

I think the rules can return any kind of value, so there shouldn’t be a
problem with returning monadic values (of course it won’t bind them for
you, but that’s not a problem.)  Anyway, an exercise for later.  ;-)

>>> +;; Stack to track the structure of nested blocks
>>> +(define context-stack (make-stack))
>>
>> What about making it either a SRFI-39 parameter, or a parameter to
>> ‘make-cabal-parser’?
>
> I made it a parameter. Thanks for suggesting it! It made me realize
> what they are really used for :-)
> Do you think it is correct to say that they serve the purpose of
> special variables in Lisp? (I'm looking a little bit into Common Lisp
> as well.)

Not sure what you mean by “special variables” (and I’m not familiar with
CL), but the concept is fairly common: It’s dynamic scoping, which is
the default in elisp, sometimes called “fluids”, sometimes “parameters.”

> From 8a28ed0f3c3077ce12d4924c59e317c52a68a77e Mon Sep 17 00:00:00 2001
> From: Federico Beffa 
> Date: Sun, 26 Apr 2015 11:22:29 +0200
> Subject: [PATCH] import: hackage: Refactor parsing code and add new options.
>
> * guix/import/cabal.scm: New file.
> * guix/import/hackage.scm: Update to use the new Cabal parsing module.
> * tests/hackage.scm: Update tests.
> * guix/scripts/import/hackage.scm: Add new '--cabal-environment' and '--stdin'
>   options.
> * doc/guix.texi: ... and document them.
> * Makefile.am (MODULES): Add 'guix/import/cabal.scm',
>   'guix/import/hackage.scm' and 'guix/scripts/import/hackage.scm'.
>   (SCM_TESTS): Add 'tests/hackage.scm'.

OK to commit, thank you!

(I had not realized the hackage.scm files were missing from the Makefile
until now.)

Thanks,
Ludo’.

PS: Commit 751630c adds n-ary >>= for your pleasure.  ;-)



Re: hackage importer

2015-06-09 Thread Federico Beffa
On Tue, Jun 9, 2015 at 9:38 AM, Ludovic Courtès  wrote:
> OK to commit, thank you!

Pushed.

> PS: Commit 751630c adds n-ary >>= for your pleasure.  ;-)

Thanks :-)

Fede



[PATCH] gnu: icedtea7: Bootstrap with GCJ.

2015-06-09 Thread Ricardo Wurmus
The attached patch removes icedtea6 from the inputs of icedtea7.
IcedTea7 can now be built with just GCJ.

>From d4c04d81e4c8b43636e5f9adb279e8ef6a0b8752 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus 
Date: Tue, 9 Jun 2015 12:53:23 +0200
Subject: [PATCH] gnu: icedtea7: Bootstrap with GCJ.

* gnu/packages/java.scm (icedtea7): Bootstrap with GCJ rather than compile
  with IcedTea6.
---
 gnu/packages/java.scm | 71 ++-
 1 file changed, 36 insertions(+), 35 deletions(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index e741fca..2a1d087 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -693,6 +693,9 @@ build process and its dependencies, whereas Make uses Makefile format.")
 (modules '((guix build utils)))
 (snippet
  '(substitute* "Makefile.in"
+;; link against libgcj to avoid linker error
+(("-o native-ecj")
+ "-lgcj -o native-ecj")
 ;; do not leak information about the build host
 (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"")
  "DISTRIBUTION_ID=\"\\\"guix\\\"\"")
@@ -710,15 +713,7 @@ build process and its dependencies, whereas Make uses Makefile format.")
  #:locale "C"
  ,@(substitute-keyword-arguments (package-arguments icedtea6)
  ((#:configure-flags flags)
-  `(let ((jdk (assoc-ref %build-inputs "icedtea6"))
- (ant (assoc-ref %build-inputs "ant")))
- `("--disable-bootstrap"
-   "--without-rhino"
-   "--enable-nss"
-   "--enable-system-lcms"
-   "--disable-downloading"
-   ,(string-append "--with-ant-home=" ant)
-   ,(string-append "--with-jdk-home=" jdk
+  `(delete "--with-openjdk-src-dir=./openjdk" ,flags))
  ((#:phases phases)
   `(modify-phases ,phases
  (replace
@@ -760,30 +755,37 @@ build process and its dependencies, whereas Make uses Makefile format.")
  (replace
   'set-additional-paths
   (lambda* (#:key inputs #:allow-other-keys)
-(substitute* "openjdk/jdk/make/common/shared/Sanity.gmk"
-  (("ALSA_INCLUDE=/usr/include/alsa/version.h")
-   (string-append "ALSA_INCLUDE="
-  (assoc-ref inputs "alsa-lib")
-  "/include/alsa/version.h")))
-(setenv "CC" "gcc")
-(setenv "CPATH"
-(string-append (assoc-ref inputs "libxrender")
-   "/include/X11/extensions" ":"
-   (assoc-ref inputs "libxtst")
-   "/include/X11/extensions" ":"
-   (assoc-ref inputs "libxinerama")
-   "/include/X11/extensions" ":"
-   (or (getenv "CPATH") "")))
-(setenv "ALT_OBJCOPY" (which "objcopy"))
-(setenv "ALT_CUPS_HEADERS_PATH"
-(string-append (assoc-ref inputs "cups")
-   "/include"))
-(setenv "ALT_FREETYPE_HEADERS_PATH"
-(string-append (assoc-ref inputs "freetype")
-   "/include"))
-(setenv "ALT_FREETYPE_LIB_PATH"
-(string-append (assoc-ref inputs "freetype")
-   "/lib"
+(let (;; Get target-specific include directory so that
+  ;; libgcj-config.h is found when compiling hotspot.
+  (gcjinclude (let* ((port (open-input-pipe "gcj -print-file-name=include"))
+ (str  (read-line port)))
+(close-pipe port)
+str)))
+  (substitute* "openjdk/jdk/make/common/shared/Sanity.gmk"
+(("ALSA_INCLUDE=/usr/include/alsa/version.h")
+ (string-append "ALSA_INCLUDE="
+(assoc-ref inputs "alsa-lib")
+"/include/alsa/version.h")))
+  (setenv "CC" "gcc")
+  (setenv "CPATH"
+  (string-append gcjinclude ":"
+ (assoc-ref inputs "libxrender")
+ "/include/X11/extensions" ":"
+ (assoc-ref inputs "libxtst")

[PATCH] Add st

2015-06-09 Thread amirouche

This patch st terminal emulator from suckless.

This is my first patch!

This installs flawlessly except:

- `tic -s terminfo -s info` which fails because it try to install in an 
unknown home directory. In Gentoo they install it in /usr/share/terminfo 
[1]. A added a patch to avoid this issue. One has to export TERM=xterm 
to make it possible to use terminal applications.


- The default config.def.h use Liberation font, this is ok. However it's 
might be better to activate antialias and autohint?



[1] 
https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-terms/st/st-0.5.ebuild?view=markup





[PATCH] doc: Merge 'HACKING' into Texinfo manual.

2015-06-09 Thread Mathieu Lirzin
Hello Guix,

This patch will need an update when Alex recent patch (doc: Add
'help2man' to HACKING.) will be pushed.

do 'HACKING' copyright notices need to be added to the manual too?

--
Mathieu Lirzin

>From ccbbddb5d5335b3714a4e6204498f1fc24dca6ab Mon Sep 17 00:00:00 2001
From: Mathieu Lirzin 
Date: Tue, 9 Jun 2015 00:08:43 +0200
Subject: [PATCH] doc: Merge 'HACKING' into Texinfo manual.

* HACKING: Delete file.
  (Building from Git, The Perfect Setup, Coding Style, Submitting Patches):
  Move to ...
* doc/guix.texi (Running Guix Before It Is Installed): Likewise.
  (Contributing): ... here.
* README (Installation): Adapt to it.
* configure.ac (DOT): Likewise.
* Makefile.am (EXTRA_DIST): Likewise.
---
 HACKING   | 163 -
 Makefile.am   |   1 -
 README|   4 +-
 configure.ac  |   2 +-
 doc/guix.texi | 254 +++---
 5 files changed, 212 insertions(+), 212 deletions(-)
 delete mode 100644 HACKING

diff --git a/HACKING b/HACKING
deleted file mode 100644
index cf10ba5..000
--- a/HACKING
+++ /dev/null
@@ -1,163 +0,0 @@
--*- mode: org; coding: utf-8; -*-
-
-#+TITLE: Hacking GNU Guix and Its Incredible Distro
-
-Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès 
-Copyright © 2013 Nikita Karetnikov 
-Copyright © 2014 Pierre-Antoine Rault 
-
-  Copying and distribution of this file, with or without modification,
-  are permitted in any medium without royalty provided the copyright
-  notice and this notice are preserved.
-
-
-* Building from Git
-
-When building Guix from a checkout, the following packages are required in
-addition to those mentioned in the installation instructions:
-
-  - [[http://www.gnu.org/software/autoconf/][GNU Autoconf]]
-  - [[http://www.gnu.org/software/automake/][GNU Automake]]
-  - [[http://www.gnu.org/software/gettext/][GNU Gettext]]
-  - [[http://www.graphviz.org/][Graphviz]]
-
-Run ‘./bootstrap’ to download the Nix daemon source code and to generate the
-build system infrastructure using autoconf.  It reports an error if an
-inappropriate version of the above packages is being used.
-
-If you get an error like this one:
-
-  configure.ac:46: error: possibly undefined macro: PKG_CHECK_MODULES
-
-it probably means that Autoconf couldn’t find ‘pkg.m4’, which is provided by
-pkg-config.  Make sure that ‘pkg.m4’ is available.  For instance, if you
-installed Automake in ‘/usr/local’, it wouldn’t look for ‘.m4’ files in
-‘/usr/share’.  So you have to invoke the following command in that case
-
-  $ export ACLOCAL_PATH=/usr/share/aclocal
-
-See “info '(automake) Macro Search Path'” for more information.
-
-Then, run ‘./configure’ as usual.
-
-Finally, you have to invoke ‘make check’ to run tests.  If anything fails,
-take a look at “info '(guix) Installation'” or send a message to
-.
-
-* Running Guix before it is installed
-
-See the same-named section in the manual.
-
-* The Perfect Setup
-
-The Perfect Setup to hack on Guix is basically the perfect setup used
-for Guile hacking (info "(guile) Using Guile in Emacs").  First, you
-need more than an editor, you need [[http://www.gnu.org/software/emacs][Emacs]], empowered by the wonderful
-[[http://nongnu.org/geiser/][Geiser]].
-
-Geiser allows for interactive and incremental development from within
-Emacs: code compilation and evaluation from within buffers, access to
-on-line documentation (docstrings), context-sensitive completion, M-. to
-jump to an object definition, a REPL to try out your code, and more.
-
-To actually edit the code, Emacs already has a neat Scheme mode.  But in
-addition to that, you must not miss [[http://www.emacswiki.org/emacs/ParEdit][Paredit]].  It provides facilities to
-directly operate on the syntax tree, such as raising an s-expression or
-wrapping it, swallowing or rejecting the following s-expression, etc.
-
-* Submitting Patches
-
-Development is done using the Git distributed version control system.  Thus,
-access to the repository is not strictly necessary.  We welcome contributions
-in the form of patches as produced by ‘git format-patch’ sent to
-guix-devel@gnu.org.  Please write commit logs in the [[http://www.gnu.org/prep/standards/html_node/Change-Logs.html#Change-Logs][GNU ChangeLog
-format]]; you can check the commit history for examples.
-
-Before submitting a patch that adds or modifies a package definition, please
-run ‘guix lint PACKAGE’, where PACKAGE is the name of the new or modified
-package, and fix any errors it reports.  In addition, please make sure the
-package builds on your platform, using ‘guix build’.  You may also want to
-check that dependent package (if applicable) are not affected by the change;
-‘guix refresh --list-dependent PACKAGE’ will help you do that.
-
-When posting a patch to the mailing list, use "[PATCH] ..." as a subject.  You
-may use your email client or the ‘git send-mail’ command.
-
-As you become a regular contributor, you may find it convenient to have writ

Re: [PATCH] Add st

2015-06-09 Thread amirouche

With the patch this time ^^'

On 2015-06-09 13:04, amirou...@hypermove.net wrote:

This patch st terminal emulator from suckless.

This is my first patch!

This installs flawlessly except:

- `tic -s terminfo -s info` which fails because it try to install in
an unknown home directory. In Gentoo they install it in
/usr/share/terminfo [1]. A added a patch to avoid this issue. One has
to export TERM=xterm to make it possible to use terminal applications.

- The default config.def.h use Liberation font, this is ok. However
it's might be better to activate antialias and autohint?


[1]
https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-terms/st/st-0.5.ebuild?view=markupFrom 385f7129b405d136cbbb7dbffa35bf6f62cffc93 Mon Sep 17 00:00:00 2001
From: amz3 
Date: Sun, 7 Jun 2015 19:04:28 +0200
Subject: [PATCH] gnu: add st.

* gnu/packages/dwm.scm (st): New variable.
* gnu/packages/patches/st-0.5-do-not-install-terminfo.patch: New file.
---
 gnu/packages/dwm.scm   | 50 +-
 .../patches/st-0.5-do-not-install-terminfo.patch   | 13 ++
 2 files changed, 62 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/st-0.5-do-not-install-terminfo.patch

diff --git a/gnu/packages/dwm.scm b/gnu/packages/dwm.scm
index 98fa122..b82297f 100644
--- a/gnu/packages/dwm.scm
+++ b/gnu/packages/dwm.scm
@@ -22,7 +22,11 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages fonts)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages pkg-config)
+  #:use-module ((gnu packages fontutils) #:prefix font-utils:))
 
 (define-public dwm
   (package
@@ -139,3 +143,47 @@ numbers of user-defined menu items efficiently.")
 (description
  "Simple X session lock with trivial feedback on password entry.")
 (license x11)))
+
+
+(define-public st
+  (package
+(name "st")
+(version "0.5")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "http://dl.suckless.org/st/st-";
+   version ".tar.gz"))
+   (patches (list (search-patch "st-0.5-do-not-install-terminfo.patch")))
+   (sha256
+(base32
+ "0knxpzaa86pprng6hak8hx8bw22yw22rpz1ffxjpcvqlz3xdv05f"
+(build-system gnu-build-system)
+(arguments
+ '(#:tests? #f ; no tests
+   #:make-flags (list "CC=gcc"
+  (string-append "PREFIX=" %output))
+   #:phases
+   (alist-delete 'configure %standard-phases)))
+(inputs
+ `(("libx11" ,libx11)
+   ("libxft" ,libxft)
+   ("libxcomposite" ,libxcomposite)
+   ("compositeproto" ,compositeproto)
+   ("libxext" ,libxext)
+   ("xextproto" ,xextproto)
+   ("libxrender" ,libxrender)
+   ("fontconfig" ,font-utils:fontconfig)
+   ("freetype" ,font-utils:freetype)
+   ("font-liberation5" ,font-liberation)))
+(native-inputs `(("pkg-config" ,pkg-config)
+ ("ncurses" ,ncurses)))
+(home-page "http://st.suckless.org/";)
+(synopsis "Simple terminal emulator")
+(description
+ "Xterm is bloated and unmaintainable.  It has over 65K lines of code and
+  emulates obscure and obsolete terminals you will never need.  The popular
+  alternative, rxvt has only 32K lines of code.  This is just too much for
+  something as simple as a terminal emulator; it’s yet another example of
+  code complexity.  st fix that.")
+(license x11)))
diff --git a/gnu/packages/patches/st-0.5-do-not-install-terminfo.patch b/gnu/packages/patches/st-0.5-do-not-install-terminfo.patch
new file mode 100644
index 000..089c423
--- /dev/null
+++ b/gnu/packages/patches/st-0.5-do-not-install-terminfo.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index 6158ab2..93cb684 100644
+--- a/Makefile
 b/Makefile
+@@ -48,8 +48,6 @@ install: all
+ 	@mkdir -p ${DESTDIR}${MANPREFIX}/man1
+ 	@sed "s/VERSION/${VERSION}/g" < st.1 > ${DESTDIR}${MANPREFIX}/man1/st.1
+ 	@chmod 644 ${DESTDIR}${MANPREFIX}/man1/st.1
+-	@echo Please see the README file regarding the terminfo entry of st.
+-	@tic -s st.info
+ 
+ uninstall:
+ 	@echo removing executable file from ${DESTDIR}${PREFIX}/bin
-- 
2.2.1



Re: HTTP and FTP proxies for guix package / guix-daemon

2015-06-09 Thread 韋嘉誠
On Tue, Jun 9, 2015 at 12:03 AM, Claes Wallin (韋嘉誠)
 wrote:

> Is there a way to make guix-daemon talk to a proxy when downloading
> substitutions and source archives?
>
> I tried starting it with http_proxy set, but I'm not sure it responded
> to it (as I'm writing this ISTR having read and tested that an updated
> guix does this right).

Replying to self: Nope, I tried it with guix-0.8.2.5875eb7
(2015-06-08) and it seems to be ignoring http_proxy and ftp_proxy.



Re: HTTP and FTP proxies for guix package / guix-daemon

2015-06-09 Thread 韋嘉誠
On Tue, Jun 9, 2015 at 3:11 AM, Claes Wallin (韋嘉誠)
 wrote:
> On Tue, Jun 9, 2015 at 12:03 AM, Claes Wallin (韋嘉誠)
>  wrote:
>
>> Is there a way to make guix-daemon talk to a proxy when downloading
>> substitutions and source archives?
>>
>> I tried starting it with http_proxy set, but I'm not sure it responded
>> to it (as I'm writing this ISTR having read and tested that an updated
>> guix does this right).
>
> Replying to self: Nope, I tried it with guix-0.8.2.5875eb7
> (2015-06-08) and it seems to be ignoring http_proxy and ftp_proxy.

Aaand final reply to self, found this on bug-guix@:

https://lists.gnu.org/archive/html/bug-guix/2015-04/msg00072.html

I guess I will just have to wait. But I'll make sure to chime in that
ftp_proxy ought to be honored as well as http_proxy and https_proxy.



Re: [PATCH] Add powertabeditor.

2015-06-09 Thread Ludovic Courtès
Ricardo Wurmus  skribis:

> From da77c25e8c32243ca2bd77bd76de41312aafaac1 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus 
> Date: Mon, 25 May 2015 22:13:27 +0200
> Subject: [PATCH 1/6] gnu: Add withershins.
>
> * gnu/packages/code.scm (withershins): New variable.

[...]

> +(inputs
> + `(("gcc" ,gcc-4.8 "lib") ;for libiberty.a
> +   ("binutils" ,binutils) ;for libbfd
> +   ("zlib" ,zlib)))
> +(synopsis "C++11 library for generating stack traces")
> +(description
> + "Withershins is a simple cross-platform C++11 library for generating
> +stack traces.")
> +(license license:expat)))

BFD is GPLv3+ so the whole thing and its users are GPLv3+ once combined.
I guess ‘license’ should be gpl3+, with a comment saying that the source
is Expat?

Otherwise LGTM.

> From d426c47462be1dcc5ff4bbe9d1b1540761b9 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus 
> Date: Mon, 25 May 2015 22:14:39 +0200
> Subject: [PATCH 2/6] gnu: Add RapidJSON.
>
> * gnu/packages/web.scm (rapidjson): New variable.

OK.

> From 337f0790e7917f7ae2b394310c8543256756f0fe Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus 
> Date: Thu, 28 May 2015 09:43:53 +0200
> Subject: [PATCH 3/6] gnu: Add pugixml.
>
> * gnu/packages/xml.scm (pugixml): New variable.

OK.

> From 67ec5348f611d58299ae2ab0b8575e817e0f1272 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus 
> Date: Thu, 28 May 2015 09:44:30 +0200
> Subject: [PATCH 4/6] gnu: Add rtmidi.
>
> * gnu/packages/audio.scm (rtmidi): New variable.

OK.

> + `(("autoconf" ,autoconf)
> +   ("automake" ,automake)
> +   ("libtool" ,libtool)

Too bad they don’t provide a ‘make dist’-generated tarball.

> From ab277b32cd5ace5ab257ec31abd719b2ee2470dd Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus 
> Date: Wed, 3 Jun 2015 22:53:56 +0200
> Subject: [PATCH 5/6] gnu: catch-framework: Update to 1.1.3.
>
> * gnu/packages/check.scm (catch-framework): Update to 1.1.3.

OK.

> From 98e2ab304ef345178ab1caad27d6e4412d19c476 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus 
> Date: Thu, 4 Jun 2015 10:01:11 +0200
> Subject: [PATCH 6/6] gnu: Add powertabeditor.
>
> * gnu/packages/music.scm (powertabeditor): New variable.

[...]

> +(name "powertabeditor")
> +(version "2.0.0-alpha7")

I suppose the stable version is way too old or non-existent?

> +   #:configure-flags
> +   (list (string-append "-DCMAKE_INSTALL_RPATH='"
> +(string-join (map (match-lambda
> +((name . directory)
> + (string-append directory 
> "/lib")))
> +  %build-inputs)
> + ";")
> +"'"))

Could you add a comment explaining why this is needed?  Ideally this
would be handled by ‘cmake-build-system’.

I think the single quotes aren’t needed, are they?  Also, the semicolon
is surprising here.

> +   #:phases
> +   (modify-phases %standard-phases
> + (add-before
> +  'configure 'remove-third-party-libs
> +  (lambda _
> +(substitute* "CMakeLists.txt"
> +  
> (("include_directories\\(\\$\\{PROJECT_SOURCE_DIR\\}/external/.*") "")
> +  ;; TODO: tests cannot be built:
> +  ;; test/test_main.cpp:28:12: error: ‘Session’ is not a member 
> of ‘Catch’
> +  (("add_subdirectory\\(test\\)") "")
> +  (("add_subdirectory\\(external\\)") ""))

Shouldn’t this and...

> +(delete-file-recursively "external")

... this, and possibly...

> +#t))
> + (add-after
> +  'unpack 'add-install-target
> +  (lambda _
> +(substitute* "source/CMakeLists.txt"
> +  (("qt5_use_modules")
> +   "install(TARGETS powertabeditor RUNTIME DESTINATION 
> ${CMAKE_INSTALL_PREFIX}/bin)
> +install(FILES data/tunings.json DESTINATION 
> ${CMAKE_INSTALL_PREFIX}/share/powertabeditor/)
> +qt5_use_modules"))

... this be done in a snippet?

> +(description
> + "PTE2.0 is the successor to the famous Power Tab Editor.  It is
> +compatible with PTE1.7 and Guitar Pro.")

Isn’t “PTE” and “Power Tab Editor” the same thing?  Furthermore, the
package name is ‘powertabeditor’, not ‘pte’.

Otherwise LGTM!

Thanks,
Ludo’.



Re: [PATCH] Add st

2015-06-09 Thread Andreas Enge
Hello,

thanks for the submission! Just a partial review:

On Tue, Jun 09, 2015 at 03:07:55PM +0200, amirou...@hypermove.net wrote:
> +   ("font-liberation5" ,font-liberation)))

Typo? Drop "5"

> +(description
> + "Xterm is bloated and unmaintainable.  It has over 65K lines of code and

Please write a more neutral description. Something like
"St implements a simple and light-weight terminal emulator.  It implements
256 colors, most VT10X escape sequences, utf8, X11 copy/paste,
antialiased fonts (using fontconfig), fallback fonts, resizing,
and line drawing."
It is nicer to write what a programme does well than to complain about
what others do poorly.

Andreas




[PATCH] gnu: Add OrfM.

2015-06-09 Thread Ricardo Wurmus
Hi Guix,

attached is a patch based on a slightly edited snippet that came in
through the bio-packaging mailing list.

~~ Ricardo

>From 6cbd193a53f90e798efc4d83f7acb1d3ae51de12 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft 
Date: Tue, 9 Jun 2015 16:10:51 +0200
Subject: [PATCH] gnu: Add OrfM.

* gnu/packages/bioinformatics.scm (orfm): New variable.

Signed-off-by: Ricardo Wurmus 
---
 gnu/packages/bioinformatics.scm | 21 +
 1 file changed, 21 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 8d59768..55b2ff6 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1192,6 +1192,27 @@ RNA-Seq, the MISO model uses Bayesian inference to compute the probability
 that a read originated from a particular isoform.")
 (license license:gpl2)))
 
+(define-public orfm
+  (package
+(name "orfm")
+(version "0.3.2")
+(source (origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/wwood/OrfM/releases/download/v";
+version "/orfm-" version ".tar.gz"))
+  (sha256
+   (base32
+"00jqvlspj9662ni9r4n1snxfnwkzc02i46g5nk1kwjshi6v3vgg3"
+(build-system gnu-build-system)
+(inputs `(("zlib" ,zlib)))
+(synopsis "Simple and not slow open reading frame (ORF) caller")
+(description
+ "An ORF caller finds stretches of DNA that when translated are not
+interrupted by stop codons.  OrfM finds and prints these ORFs.")
+(home-page "https://github.com/wwood/OrfM";)
+(license license:lgpl3+)))
+
 (define-public python2-pbcore
   (package
 (name "python2-pbcore")
-- 
2.1.0



Re: [PATCH] gnu: make-bootstrap: Remove unneeded configure flag from %gcc-static.

2015-06-09 Thread Ludovic Courtès
Manolis Ragkousis  skribis:

> With this commit "guix build bootstrap-tarballs --target=i686-pc-gnu" works.

Yay!

> From 53582d2cdaf3fb69500a24afe3ed4f58cfbffcea Mon Sep 17 00:00:00 2001
> From: Manolis Ragkousis 
> Date: Tue, 9 Jun 2015 01:14:03 +0300
> Subject: [PATCH] gnu: make-bootstrap: Remove unneeded configure flag from
>  %gcc-static.
>
> With this commit "guix build bootstrap-tarballs --target=i686-pc-gnu" works.
>
> * gnu/packages/make-bootstrap.scm (%gcc-static): Remove unneeded
>   --disable-decimal-float.

OK for core-updates or wip-hurd, whichever is the most convenient for you.

Now that we’ve reached that stage, I’d like to see if we can merge all
of wip-hurd in this core-updates cycle.

Thanks,
Ludo’.



Re: [PATCH 10/10] gnu: base: Added glibc-for-target macro.

2015-06-09 Thread Ludovic Courtès
Manolis Ragkousis  skribis:

> From 21fe31fb235c322654959c458f73c5f192efee7c Mon Sep 17 00:00:00 2001
> From: Manolis Ragkousis 
> Date: Tue, 9 Jun 2015 01:08:55 +0300
> Subject: [PATCH] gnu: base: Add glibc-for-target macro.
>
> * gnu/packages/base.scm (glibc): Add macro.

OK for ‘wip-hurd’!

(I thought it was already in, sorry about that.)

Ludo’.



Re: [PATCH 08/10] gnu: base: Updated glibc-hurd to 2.19 and removed patches.

2015-06-09 Thread Ludovic Courtès
Manolis Ragkousis  skribis:

> Actually I merged this patch with the one from [PATCH 09/10] gnu: base:
> Remove a multiple definition from libpthread with some changes.
>
> This is the updated patch.
>
> From f4867aa5438bd5c51579aa9cc3ac0227d7eaf211 Mon Sep 17 00:00:00 2001
> From: Manolis Ragkousis 
> Date: Thu, 21 May 2015 16:57:23 +0300
> Subject: [PATCH] gnu: base: Updated glibc-hurd to 2.19 and removed patches.
>
> * gnu/packages/base.scm (glibc/hurd): Update to 2.19
> * gnu/packages/patches/glibc-hurd-extern-inline.patch: Rename to ...
> * gnu/packages/patches/glibc-hurd-libs.patch: ... this and removed a patch.
> * gnu/packages/patches/libpthread-glibc-preparation.patch: Remove.
> * gnu/packages/patches/libpthread-remove-duplicate.patch: Add
> * gnu-system.am (dist_patch_DATA): Add, remove and adapt to renamed file.

Sure!

>  6 files changed, 47 insertions(+), 214 deletions(-)

These are definitely good stats from the point of view of Guix.  :-)

Ludo’.



Re: MIPS bootstrap problem in core-updates

2015-06-09 Thread Ludovic Courtès
Mark H Weaver  skribis:

> Mark H Weaver  writes:
>
>> l...@gnu.org (Ludovic Courtès) writes:
>>
>>> This (lightly tested) patch may work:
>>>
>>> diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
>>> index ab16660..6dd4d55 100644
>>> --- a/gnu/packages/commencement.scm
>>> +++ b/gnu/packages/commencement.scm
>>> @@ -139,6 +139,19 @@
>>>   (arguments
>>>`(#:guile ,%bootstrap-guile
>>>  #:implicit-inputs? #f
>>> +
>>> +#:phases (alist-cons-after
>>> +  'install 'add-gas-symlink
>>> +  (lambda* (#:key outputs #:allow-other-keys)
>>> +;; The cross-gcc invokes 'as', not the cross-'as', so 
>>> add
>>> +;; an 'as' symlink.
>>> +(let ((out (assoc-ref outputs "out")))
>>> +  (with-directory-excursion (string-append out "/bin")
>>> +(symlink (string-append ,(boot-triplet) "-as")
>>> + "as")
>>> +#t)))
>>> +  %standard-phases)
>>> +
>>>  ,@(substitute-keyword-arguments (package-arguments binutils)
>>>  ((#:configure-flags cf)
>>>   `(cons ,(string-append "--target=" (boot-triplet))
>>> @@ -274,10 +287,7 @@
>>>;; 2nd stage inputs.
>>>`(("gcc" ,gcc-boot0)
>>>  ("binutils-cross" ,binutils-boot0)
>>> -
>>> -;; Keep "binutils" here because the cross-gcc invokes `as', not the
>>> -;; cross-`as'.
>>> -,@%boot0-inputs))
>>> +,@(alist-delete "binutils" %boot0-inputs)))
>>>  
>>>  (define glibc-final-with-bootstrap-bash
>>>;; The final libc, "cross-built".  If everything went well, the resulting
>>
>> Sounds good.
>>
>>> Could you try it on MIPS, on top of ‘core-updates’?
>>
>> I tried this and it turned out that 'ld' was also needed.  I added an
>> 'ld' symlink and then discovered than 'ar' was needed as well.  I'm now
>> trying it with symlinks for _all_ of the programs in binutils' /bin
>> directory.
>
> ... and that finally fixed it.  Pushed to core-updates in commit
> f8badf151b4d2d966a1ebeba0345dfc9e4564d01.

Great, thanks!

Ludo’.



Re: Daemon update again

2015-06-09 Thread Ludovic Courtès
Andreas Enge  skribis:

> On Sat, Jun 06, 2015 at 07:41:42PM +0200, Ludovic Courtès wrote:
>> Could you run “make V=1”?  Normally DEFAULT_CHROOT_DIRS is defined from
>> the command line (see ‘libstore_a_CPPFLAGS’.)
>
> There is no trace of it on the command line:
>
> g++ -DHAVE_CONFIG_H -I. -I./nix  -I./nix -I./nix/libutil -I./nix 
> -I./nix/libstore -I./nix/libstore -DNIX_STORE_DIR=\"/gnu/store\" 
> -DNIX_DATA_DIR=\"/usr/local/guix/share\" 
> -DNIX_STATE_DIR=\"/usr/local/guix/var/guix\" 
> -DNIX_LOG_DIR=\"/usr/local/guix/var/log/guix\" 
> -DNIX_CONF_DIR=\"/usr/local/guix/etc/guix\" 
> -DNIX_LIBEXEC_DIR=\"/usr/local/guix/libexec\" 
> -DNIX_BIN_DIR=\"/usr/local/guix/bin\" -DOPENSSL_PATH="\"guix-authenticate\""  
> -Wall -std=c++0x   -g -O2 -MT nix/libstore/libstore_a-build.o -MD -MP -MF 
> nix/libstore/.deps/libstore_a-build.Tpo -c -o nix/libstore/libstore_a-build.o 
> `test -f 'nix/libstore/build.cc' || echo './'`nix/libstore/build.cc
> nix/libstore/build.cc: In member function ‘void 
> nix::DerivationGoal::startBuilder()’:
> nix/libstore/build.cc:1808:91: error: ‘DEFAULT_CHROOT_DIRS’ was not declared 
> in this scope
>  PathSet dirs = 
> tokenizeString(settings.get("build-chroot-dirs", 
> string(DEFAULT_CHROOT_DIRS)));

Hmm.  What’s the value of ‘libstore_a_CPPFLAGS’ in daemon.am,
Makefile.in, and Makefile?

There’s also the fact that it’s using -std=c++0x, whereas current master
uses -std=c++11.  Fishy!

Ludo’.



matplotlib broken

2015-06-09 Thread Federico Beffa
Hi,

today I've updated all packages in my profile and I find that
matplotlib doesn't work anymore.

Starting ipython3 and executing the following commands

%matplotlib
import numpy as np
import matplotlib.pyplot as plt
t = np.r_[0:5]
plt.plot(t, t)

now produces an empty, gray window, while with the previous profile it
was working fine. I'm not sure how old my previous profile is, but it
uses python3.3.

Just reporting the problem and, for the moment, sticking with the old one.

Regards,
Fede



Re: Daemon update again

2015-06-09 Thread Andreas Enge
On Tue, Jun 09, 2015 at 05:51:00PM +0200, Ludovic Courtès wrote:
> There’s also the fact that it’s using -std=c++0x, whereas current master
> uses -std=c++11.  Fishy!

Very fishy indeed! I think I did not run "autoreconf -vfi" correctly, or
it failed and I did not pay attention, and was left with a mixture of old
and new files. Now I redid it, and there is no trace left of "-std=c++0x",
and the flags seem to be correctly said.

Thank you for asking the right questions, and sorry for taking your time!

Andreas




Re: [PATCH] gnu: guile-static: Use Linux syscalls only on Linux systems.

2015-06-09 Thread Manolis Ragkousis
I forgot this patch. Updated patch.
From 84ef1393099fe0245f22402387d9ae578a91e9e8 Mon Sep 17 00:00:00 2001
From: Manolis Ragkousis 
Date: Sat, 23 May 2015 22:10:34 +0300
Subject: [PATCH] gnu: guile-static: Use Linux syscalls only on Linux-based
 systems.

* gnu/packages/patches/guile-linux-syscalls.patch: Use Linux
  syscalls only on Linux-based systems.
---
 gnu/packages/patches/guile-linux-syscalls.patch | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/patches/guile-linux-syscalls.patch b/gnu/packages/patches/guile-linux-syscalls.patch
index 57c7f25..25a5e90 100644
--- a/gnu/packages/patches/guile-linux-syscalls.patch
+++ b/gnu/packages/patches/guile-linux-syscalls.patch
@@ -7,12 +7,13 @@ diff --git a/libguile/posix.c b/libguile/posix.c
 index 324f21b..cbee94d 100644
 --- a/libguile/posix.c
 +++ b/libguile/posix.c
-@@ -2286,6 +2286,261 @@ scm_init_popen (void)
+@@ -2245,6 +2245,263 @@ scm_init_popen (void)
  }
  #endif
  
 +
 +/* Linux! */
++#ifdef __linux__
 +
 +#include 
 +#include "libguile/foreign.h"
@@ -265,7 +266,10 @@ index 324f21b..cbee94d 100644
 +  return scm_from_short (ifr.ifr_flags);
 +}
 +#undef FUNC_NAME
++#endif
 +
  void
  scm_init_posix ()
  {
+-- 
+2.4.1
-- 
2.4.2



Re: [PATCH 08/10] gnu: base: Updated glibc-hurd to 2.19 and removed patches.

2015-06-09 Thread Manolis Ragkousis
On 9 June 2015 at 18:47, Ludovic Courtès  wrote:
>>  6 files changed, 47 insertions(+), 214 deletions(-)
>
> These are definitely good stats from the point of view of Guix.  :-)

Hehe, thanks to our Hurd friends. :-)

Pushed.



Re: [PATCH] gnu: guile-static: Use Linux syscalls only on Linux systems.

2015-06-09 Thread Manolis Ragkousis
I took the liberty and pushed it because it had the changes you suggested.



Re: [PATCH] gnu: guile-static: Use Linux syscalls only on Linux systems.

2015-06-09 Thread Ludovic Courtès
Manolis Ragkousis  skribis:

> From 84ef1393099fe0245f22402387d9ae578a91e9e8 Mon Sep 17 00:00:00 2001
> From: Manolis Ragkousis 
> Date: Sat, 23 May 2015 22:10:34 +0300
> Subject: [PATCH] gnu: guile-static: Use Linux syscalls only on Linux-based
>  systems.
>
> * gnu/packages/patches/guile-linux-syscalls.patch: Use Linux
>   syscalls only on Linux-based systems.

Rather: “Wrap new subrs in #ifdef __linux__.”

OK for master or core-updates, whichever is more convenient for you (the
latter, I guess.)

Ludo’.



Re: Daemon update again

2015-06-09 Thread Ludovic Courtès
Andreas Enge  skribis:

> On Tue, Jun 09, 2015 at 05:51:00PM +0200, Ludovic Courtès wrote:
>> There’s also the fact that it’s using -std=c++0x, whereas current master
>> uses -std=c++11.  Fishy!
>
> Very fishy indeed! I think I did not run "autoreconf -vfi" correctly, or
> it failed and I did not pay attention, and was left with a mixture of old
> and new files. Now I redid it, and there is no trace left of "-std=c++0x",
> and the flags seem to be correctly said.
>
> Thank you for asking the right questions, and sorry for taking your time!

Good, no problem!

Ludo’.



Re: [PATCH] gnu: make-bootstrap: Remove unneeded configure flag from %gcc-static.

2015-06-09 Thread Manolis Ragkousis
Before pushing this patch I would first like to decide what we will do
with the gnu patch PATH_MAX patch, because we need it for wip-hurd.

After that, with this patch, we can merge wip-hurd with core-updates.

Manolis



Re: Update on GuixSD containers

2015-06-09 Thread Ludovic Courtès
"Thompson, David"  skribis:

> I'd like to give a quick update on the state of wip-container branch.
> As of this morning, one can run the below commands and have a somewhat
> functional GuixSD container:
>
>   # Hardcoded /tmp/container as the container root directory until I
>   # add a command line switch.
>   mkdir /tmp/container
>   guix system container container-config.scm

Wonderful!  I’ve given it a try, and it works as advertised. ;-)
I was a bit afraid the first time I ran the ‘run-container’ script as
root, but everything went like a charm.

I tried adding this dummy service:

  (define (bash-service)
(with-monad %store-monad
  (return (service
   (documentation "Run Bash from PID 1.")
   (provision '(shell))
   (start #~(make-forkexec-constructor
 (string-append #$bash "/bin/bash")))
   (stop #~(make-kill-destructor))
   (respawn? #t)

... but it dies for some reason.  So no shell prompt.

> So, this is cool, but much work remains to be done.  Our containers
> operate in 5 of 6 possible Linux namespaces: mount, PID, UTS, IPC, and
> network.  The remaining namespace to get working is the user
> namespace, which is especially tricky.  I don't think even Docker can
> use user namespaces properly yet, but I might be wrong.  Additionally,
> our containers have a loopback device, but have no way of accessing an
> outside network such as your LAN or a virtual network on the host
> system.  There's also no support for cgroups, which would allow us to
> limit the resource usage of containers like you can with a VM
> hypervisor.

OK.

> For the long term, we'll need a container daemon to keep track of all
> containers on the system to allow for easily starting and stopping
> them (right now you have to 'sudo kill -9 '), spawning new
> processes within them (for example, launching bash for an interactive
> environment), and whatever else we might want.

Having launched a bunch of containers and then hacked to kill all the
dmds, I can see why keeping track of containers matters.  :-)

Until there’s a daemon to keep track of containers, “guix system
container” could return the PID of the container’s PID1, to make it
easier to kill it later?

> In closing, things aren't exactly usable, but I encourage
> brave/curious people to take 'guix system container' for a spin and
> hack on it to make Guix the best container management tool yet!  Also,
> I think the code is very easy to follow (unlike Docker's
> libcontainer), so if you want to understand what containers *really*
> are beyond a buzzword, have a look at gnu/build/linux-container.scm
> and gnu/system/linux-container.scm.

Indeed I find the new code easy to read and well integrated; I like it!

It’s a shame that only CLONE_NEWUSER is available to non-root users.  I
wonder what the rationale was.  AIUI, Docker’s daemon performs clone(2)
on behalf of clients, right?

Thanks for the great work!

Ludo’.



Re: [PATCH] Add st

2015-06-09 Thread amirouche

On 2015-06-09 16:22, Andreas Enge wrote:

Hello,

thanks for the submission! Just a partial review:

On Tue, Jun 09, 2015 at 03:07:55PM +0200, amirou...@hypermove.net 
wrote:

+   ("font-liberation5" ,font-liberation)))


Typo? Drop "5"


+(description
+ "Xterm is bloated and unmaintainable.  It has over 65K lines of 
code and


Please write a more neutral description. Something like
"St implements a simple and light-weight terminal emulator.  It 
implements

256 colors, most VT10X escape sequences, utf8, X11 copy/paste,
antialiased fonts (using fontconfig), fallback fonts, resizing,
and line drawing."
It is nicer to write what a programme does well than to complain about
what others do poorly.


Agreed. I created a new patch with the changes you requested and I've 
run: ./pre-inst-env guix lint st.


From 24e374cd99adb8efc1d6a9c5ba0d7cfb1f71828f Mon Sep 17 00:00:00 2001
From: amz3 
Date: Sun, 7 Jun 2015 19:04:28 +0200
Subject: [PATCH] gnu: add st.

* gnu/packages/dwm.scm (st): New variable.
* gnu/packages/patches/st-0.5-do-not-install-terminfo.patch: New file.
---
 gnu/packages/dwm.scm   | 50 +-
 .../patches/st-0.5-do-not-install-terminfo.patch   | 13 ++
 2 files changed, 62 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/st-0.5-do-not-install-terminfo.patch

diff --git a/gnu/packages/dwm.scm b/gnu/packages/dwm.scm
index 98fa122..8ce078b 100644
--- a/gnu/packages/dwm.scm
+++ b/gnu/packages/dwm.scm
@@ -22,7 +22,11 @@
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages fonts)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages pkg-config)
+  #:use-module ((gnu packages fontutils) #:prefix font-utils:))
 
 (define-public dwm
   (package
@@ -139,3 +143,47 @@ numbers of user-defined menu items efficiently.")
 (description
  "Simple X session lock with trivial feedback on password entry.")
 (license x11)))
+
+
+(define-public st
+  (package
+(name "st")
+(version "0.5")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "http://dl.suckless.org/st/st-";
+   version ".tar.gz"))
+   (patches (list (search-patch "st-0.5-do-not-install-terminfo.patch")))
+   (sha256
+(base32
+ "0knxpzaa86pprng6hak8hx8bw22yw22rpz1ffxjpcvqlz3xdv05f"
+(build-system gnu-build-system)
+(arguments
+ '(#:tests? #f ; no tests
+   #:make-flags (list "CC=gcc"
+  (string-append "PREFIX=" %output))
+   #:phases
+   (alist-delete 'configure %standard-phases)))
+(inputs
+ `(("libx11" ,libx11)
+   ("libxft" ,libxft)
+   ("libxcomposite" ,libxcomposite)
+   ("compositeproto" ,compositeproto)
+   ("libxext" ,libxext)
+   ("xextproto" ,xextproto)
+   ("libxrender" ,libxrender)
+   ("fontconfig" ,font-utils:fontconfig)
+   ("freetype" ,font-utils:freetype)
+   ("font-liberation" ,font-liberation)))
+(native-inputs `(("pkg-config" ,pkg-config)
+ ("ncurses" ,ncurses)))
+(home-page "http://st.suckless.org/";)
+(synopsis "Simple terminal emulator")
+(description
+ "Xterm is bloated and unmaintainable.  It has over 65K lines of code and
+  emulates obscure and obsolete terminals you will never need.  The popular
+  alternative, rxvt has only 32K lines of code.  This is just too much for
+  something as simple as a terminal emulator; it’s yet another example of
+  code complexity.  st fix that.")
+(license x11)))
diff --git a/gnu/packages/patches/st-0.5-do-not-install-terminfo.patch b/gnu/packages/patches/st-0.5-do-not-install-terminfo.patch
new file mode 100644
index 000..089c423
--- /dev/null
+++ b/gnu/packages/patches/st-0.5-do-not-install-terminfo.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index 6158ab2..93cb684 100644
+--- a/Makefile
 b/Makefile
+@@ -48,8 +48,6 @@ install: all
+ 	@mkdir -p ${DESTDIR}${MANPREFIX}/man1
+ 	@sed "s/VERSION/${VERSION}/g" < st.1 > ${DESTDIR}${MANPREFIX}/man1/st.1
+ 	@chmod 644 ${DESTDIR}${MANPREFIX}/man1/st.1
+-	@echo Please see the README file regarding the terminfo entry of st.
+-	@tic -s st.info
+ 
+ uninstall:
+ 	@echo removing executable file from ${DESTDIR}${PREFIX}/bin
-- 
2.2.1