Re: [PATCH] gnu: Add hoedown.

2015-07-21 Thread Thompson, David
On Tue, Jul 21, 2015 at 2:53 PM, Mark H Weaver  wrote:
> David Thompson  writes:
>
>> From 567748faa4e3e03fe9b106a8ea61843a2d31409d Mon Sep 17 00:00:00 2001
>> From: David Thompson 
>> Date: Sun, 19 Jul 2015 10:41:34 -0400
>> Subject: [PATCH] gnu: Add hoedown.
>
> Sorry for not reviewing this earlier, but...
>
>> + '(#:phases (modify-phases %standard-phases
>> +  (add-before 'build 'fix-makefile
>> +  (lambda* (#:key outputs #:allow-other-keys)
>> +(setenv "CC" "gcc")
>> +(substitute* '("Makefile")
>> +  (("/usr/local")
>> +   (assoc-ref outputs "out")))
>> +#t))
>
> Instead of the 'fix-makefile' phase, you can simply do this:
>
>   #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
>
> I tested the following patch, and it works.

Thank you, feel free to apply it or I can do it later.

- Dave



Re: [PATCH] gnu: Add hoedown.

2015-07-21 Thread Mark H Weaver
David Thompson  writes:

> From 567748faa4e3e03fe9b106a8ea61843a2d31409d Mon Sep 17 00:00:00 2001
> From: David Thompson 
> Date: Sun, 19 Jul 2015 10:41:34 -0400
> Subject: [PATCH] gnu: Add hoedown.

Sorry for not reviewing this earlier, but...

> + '(#:phases (modify-phases %standard-phases
> +  (add-before 'build 'fix-makefile
> +  (lambda* (#:key outputs #:allow-other-keys)
> +(setenv "CC" "gcc")
> +(substitute* '("Makefile")
> +  (("/usr/local")
> +   (assoc-ref outputs "out")))
> +#t))

Instead of the 'fix-makefile' phase, you can simply do this:

  #:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))

I tested the following patch, and it works.

  Mark


diff --git a/gnu/packages/markdown.scm b/gnu/packages/markdown.scm
index 58ca102..ee0edfc 100644
--- a/gnu/packages/markdown.scm
+++ b/gnu/packages/markdown.scm
@@ -38,14 +38,8 @@
"0mmmkfayqgh6k39kbi3pq68mg03x35aiygy3zypxzvwx9y8b53ky"
 (build-system gnu-build-system)
 (arguments
- '(#:phases (modify-phases %standard-phases
-  (add-before 'build 'fix-makefile
-  (lambda* (#:key outputs #:allow-other-keys)
-(setenv "CC" "gcc")
-(substitute* '("Makefile")
-  (("/usr/local")
-   (assoc-ref outputs "out")))
-#t))
+ '(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
+   #:phases (modify-phases %standard-phases
   (delete 'configure)) ; no configure script
#:test-target "test"))
 (native-inputs



Re: [PATCH] gnu: Add hoedown.

2015-07-19 Thread Thompson, David
On Sun, Jul 19, 2015 at 1:19 PM, Mathieu Lirzin  wrote:
> David Thompson  writes:
>
>> Here's a package recipe for a Markdown library written in C.  I want to
>> try to make Guile bindings for it with the FFI.
>
> Nice idea!
>
>> +(define-module (gnu packages markdown)
>> +  #:use-module (guix licenses)
>> +  #:use-module (guix packages)
>> +  #:use-module (guix download)
>> +  #:use-module (guix packages)
>> +  #:use-module (guix build-system gnu)
>> +  #:use-module (gnu packages python)
>> +  #:use-module (gnu packages web))
>
> guix packages is added two times.

Good catch.  Thanks.

> Maybe "prefix:" for licences to be safe ?

We can prefix identifiers if/when the need arises.

>> +(substitute* '("Makefile")
>> +  (("/usr/local")
>> +   (assoc-ref outputs "out")))
>
> No need to use a list of files here. I noticed some warnings in the
> compilation process which can be fixed like this.
>
> --8<---cut here---start->8---
>   (substitute* "Makefile"
> (("-ansi") "-std=c99")
> (("/usr/local") (assoc-ref outputs "out")))
> --8<---cut here---end--->8---

'substitute*' operates on a single string *or* a list of strings.
Here's the relevant pattern matching code in the implementation:

(match file
 ((files (... ...))
  (for-each substitute-one-file files))
 ((? string? f)
  (substitute-one-file f)))

I'm inclined to use a list, as I think that this macro should ought to
demand a list and only a list.
>> +(native-inputs
>> + `(("python" ,python-2)
>> +   ("tidy" ,tidy)))
>
> perl is needed in native-inputs for "test/MarkdownTest_1.0.3/MarkdownTest.pl"

There's a Python and a Perl version of the same test suite.  I just
use Python and don't bother with Perl.

> Otherwise LGTM! (if i'm entitled to ;))
>
> I will send a patch for moving the "markdown" package to this new file after
> that.

Cool, I'm doing to fix the double import and push this.

Thanks

- Dave



Re: [PATCH] gnu: Add hoedown.

2015-07-19 Thread Mathieu Lirzin
David Thompson  writes:

> Here's a package recipe for a Markdown library written in C.  I want to
> try to make Guile bindings for it with the FFI.

Nice idea!

> +(define-module (gnu packages markdown)
> +  #:use-module (guix licenses)
> +  #:use-module (guix packages)
> +  #:use-module (guix download)
> +  #:use-module (guix packages)
> +  #:use-module (guix build-system gnu)
> +  #:use-module (gnu packages python)
> +  #:use-module (gnu packages web))

guix packages is added two times.  Maybe "prefix:" for licences to be
safe ?

> +(substitute* '("Makefile")
> +  (("/usr/local")
> +   (assoc-ref outputs "out")))

No need to use a list of files here. I noticed some warnings in the
compilation process which can be fixed like this.

--8<---cut here---start->8---
  (substitute* "Makefile"
(("-ansi") "-std=c99")
(("/usr/local") (assoc-ref outputs "out")))
--8<---cut here---end--->8---

> +(native-inputs
> + `(("python" ,python-2)
> +   ("tidy" ,tidy)))

perl is needed in native-inputs for "test/MarkdownTest_1.0.3/MarkdownTest.pl"

Otherwise LGTM! (if i'm entitled to ;))

I will send a patch for moving the "markdown" package to this new file after
that.

--
Mathieu Lirzin



[PATCH] gnu: Add hoedown.

2015-07-19 Thread David Thompson
Here's a package recipe for a Markdown library written in C.  I want to
try to make Guile bindings for it with the FFI.

>From 567748faa4e3e03fe9b106a8ea61843a2d31409d Mon Sep 17 00:00:00 2001
From: David Thompson 
Date: Sun, 19 Jul 2015 10:41:34 -0400
Subject: [PATCH] gnu: Add hoedown.

* gnu/packages/markdown.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.
---
 gnu-system.am |  1 +
 gnu/packages/markdown.scm | 59 +++
 2 files changed, 60 insertions(+)
 create mode 100644 gnu/packages/markdown.scm

diff --git a/gnu-system.am b/gnu-system.am
index fb661d4..5fd5870 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -201,6 +201,7 @@ GNU_SYSTEM_MODULES =\
   gnu/packages/man.scm\
   gnu/packages/mail.scm\
   gnu/packages/make-bootstrap.scm		\
+  gnu/packages/markdown.scm			\
   gnu/packages/maths.scm			\
   gnu/packages/mc.scm\
   gnu/packages/mcrypt.scm			\
diff --git a/gnu/packages/markdown.scm b/gnu/packages/markdown.scm
new file mode 100644
index 000..42af2ae
--- /dev/null
+++ b/gnu/packages/markdown.scm
@@ -0,0 +1,59 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 David Thompson 
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages markdown)
+  #:use-module (guix licenses)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix packages)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages web))
+
+(define-public hoedown
+  (package
+(name "hoedown")
+(version "3.0.3")
+(source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/hoedown/hoedown/archive/";
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+  (base32
+   "0mmmkfayqgh6k39kbi3pq68mg03x35aiygy3zypxzvwx9y8b53ky"
+(build-system gnu-build-system)
+(arguments
+ '(#:phases (modify-phases %standard-phases
+  (add-before 'build 'fix-makefile
+  (lambda* (#:key outputs #:allow-other-keys)
+(setenv "CC" "gcc")
+(substitute* '("Makefile")
+  (("/usr/local")
+   (assoc-ref outputs "out")))
+#t))
+  (delete 'configure)) ; no configure script
+   #:test-target "test"))
+(native-inputs
+ `(("python" ,python-2)
+   ("tidy" ,tidy)))
+(synopsis "Markdown processing library")
+(description "Hoedown is a standards compliant, fast, secure markdown
+processing library written in C.")
+(home-page "https://github.com/hoedown/hoedown";)
+(license expat)))
-- 
2.4.3


-- 
David Thompson
GPG Key: 0FF1D807