all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [PATCH] gnu: Add erlang.
@ 2016-01-04  3:56 Steve Sprang
  2016-01-04  4:39 ` Leo Famulari
  0 siblings, 1 reply; 24+ messages in thread
From: Steve Sprang @ 2016-01-04  3:56 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 289 bytes --]

Add the Erlang programming language.

Is there a better way to substitute "/usr/bin/env" with (which "env")?
There are a number of files throughout the source tree that require
the substitution, but there's not a handy way to identify many of them
without explicitly listing them.

-Steve

[-- Attachment #2: add_erlang.patch --]
[-- Type: text/x-patch, Size: 4182 bytes --]

From d31d3b2ece298b3e7610890390a7a12f865be881 Mon Sep 17 00:00:00 2001
From: Steve Sprang <scs@stevesprang.com>
Date: Sun, 3 Jan 2016 19:46:40 -0800
Subject: [PATCH] gnu: Add erlang.

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

diff --git a/gnu-system.am b/gnu-system.am
index c0f8fac..19d0ec5 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -99,6 +99,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/enchant.scm			\
   gnu/packages/engineering.scm			\
   gnu/packages/enlightenment.scm		\
+  gnu/packages/erlang.scm          		\
   gnu/packages/fcitx.scm			\
   gnu/packages/feh.scm                          \
   gnu/packages/figlet.scm			\
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
new file mode 100644
index 0000000..9349363
--- /dev/null
+++ b/gnu/packages/erlang.scm
@@ -0,0 +1,82 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Steve Sprang <scs@stevesprang.com>
+;;;
+;;; 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 erlang)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages tls))
+
+(define-public erlang
+  (package
+    (name "erlang")
+    (version "18.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/erlang/otp/archive/OTP-"
+		    version ".tar.gz"))
+              (sha256
+               (base32
+                "101jpgyd2qvpi12ckxkxhs12n9lv7wc4vi8mrdh7b4q54vvdf1r2"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)
+       ("autoconf" ,autoconf)))
+    (inputs
+     `(("ncurses" ,ncurses)
+       ("openssl" ,openssl)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+	 (add-after
+	     'patch-source-shebangs 'patch-source-env
+	   (lambda* _
+	     (let ((escripts
+		    (append
+		     (find-files "." "\\.escript")
+		     (find-files "lib/stdlib/test/escript_SUITE_data/")
+		     '("erts/lib_src/utils/make_atomics_api"
+		       "erts/preloaded/src/add_abstract_code"
+		       "lib/diameter/bin/diameterc"
+		       "lib/reltool/examples/display_args"
+		       "lib/reltool/examples/mnesia_core_dump_viewer"
+		       "lib/snmp/src/compile/snmpc.src"
+		       "make/verify_runtime_dependencies"
+		       "make/emd2exml.in"))))
+	       (substitute* escripts
+		 (("/usr/bin/env") (which "env"))))))
+	 (add-before
+	     'configure 'prep-configure
+	   (lambda* _
+	     (setenv "ERL_TOP" (getcwd))
+	     (zero? (system* "./otp_build" "autoconf")))))
+       #:test-target "release_tests"))
+    (home-page "http://erlang.org/")
+    (synopsis "The Erlang programming language")
+    (description
+     "Erlang is a programming language used to build massively
+scalable soft real-time systems with requirements on high
+availability.  Some of its uses are in telecoms, banking, e-commerce,
+computer telephony and instant messaging.  Erlang's runtime system has
+built-in support for concurrency, distribution and fault tolerance.")
+    (license license:asl2.0)))
-- 
2.6.3


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-01-04  3:56 [PATCH] gnu: Add erlang Steve Sprang
@ 2016-01-04  4:39 ` Leo Famulari
  2016-01-04  5:20   ` Steve Sprang
  0 siblings, 1 reply; 24+ messages in thread
From: Leo Famulari @ 2016-01-04  4:39 UTC (permalink / raw)
  To: Steve Sprang; +Cc: guix-devel

On Sun, Jan 03, 2016 at 07:56:07PM -0800, Steve Sprang wrote:
> Add the Erlang programming language.
> 
> Is there a better way to substitute "/usr/bin/env" with (which "env")?
> There are a number of files throughout the source tree that require
> the substitution, but there's not a handy way to identify many of them
> without explicitly listing them.
> 
> -Steve

> From d31d3b2ece298b3e7610890390a7a12f865be881 Mon Sep 17 00:00:00 2001
> From: Steve Sprang <scs@stevesprang.com>
> Date: Sun, 3 Jan 2016 19:46:40 -0800
> Subject: [PATCH] gnu: Add erlang.
> 
> * gnu/packages/erlang.scm: New file.
> * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
> ---
>  gnu-system.am           |  1 +
>  gnu/packages/erlang.scm | 82 +++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 83 insertions(+)
>  create mode 100644 gnu/packages/erlang.scm
> 
> diff --git a/gnu-system.am b/gnu-system.am
> index c0f8fac..19d0ec5 100644
> --- a/gnu-system.am
> +++ b/gnu-system.am
> @@ -99,6 +99,7 @@ GNU_SYSTEM_MODULES =				\

[...]

> +    (native-inputs
> +     `(("perl" ,perl)
> +       ("autoconf" ,autoconf)))

The tarball available on erlang.org is already bootstrapped. If we use
that one, we don't need to explicitly include autoconf and we don't need
the 'prep-configure phase.

This seems to be the correct URL for downloading the current and past
releases (there is no "archive" directory linked anywhere that I saw):
http://www.erlang.org/download/otp_src_18.2.1.tar.gz

> +    (inputs
> +     `(("ncurses" ,ncurses)
> +       ("openssl" ,openssl)))
> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +	 (add-after
> +	     'patch-source-shebangs 'patch-source-env
> +	   (lambda* _
> +	     (let ((escripts
> +		    (append
> +		     (find-files "." "\\.escript")
> +		     (find-files "lib/stdlib/test/escript_SUITE_data/")
> +		     '("erts/lib_src/utils/make_atomics_api"
> +		       "erts/preloaded/src/add_abstract_code"
> +		       "lib/diameter/bin/diameterc"
> +		       "lib/reltool/examples/display_args"
> +		       "lib/reltool/examples/mnesia_core_dump_viewer"
> +		       "lib/snmp/src/compile/snmpc.src"
> +		       "make/verify_runtime_dependencies"
> +		       "make/emd2exml.in"))))
> +	       (substitute* escripts
> +		 (("/usr/bin/env") (which "env"))))))
> +	 (add-before
> +	     'configure 'prep-configure
> +	   (lambda* _
> +	     (setenv "ERL_TOP" (getcwd))
> +	     (zero? (system* "./otp_build" "autoconf")))))
> +       #:test-target "release_tests"))
> +    (home-page "http://erlang.org/")
> +    (synopsis "The Erlang programming language")
> +    (description
> +     "Erlang is a programming language used to build massively
> +scalable soft real-time systems with requirements on high
> +availability.  Some of its uses are in telecoms, banking, e-commerce,
> +computer telephony and instant messaging.  Erlang's runtime system has
> +built-in support for concurrency, distribution and fault tolerance.")
> +    (license license:asl2.0)))
> -- 
> 2.6.3
> 

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-01-04  4:39 ` Leo Famulari
@ 2016-01-04  5:20   ` Steve Sprang
  2016-01-04  6:23     ` Leo Famulari
  2016-01-04 11:44     ` Andy Wingo
  0 siblings, 2 replies; 24+ messages in thread
From: Steve Sprang @ 2016-01-04  5:20 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

I originally tried that tarball but I get an error downloading it:

$ guix download
http://www.erlang.org/download/otp_src_18.2.1.tar.gz

From http://www.erlang.org/download/otp_src_18.2.1.tar.gz...
ERROR: Bad qstring header component: kMSMAn68110840

-Steve


On Sun, Jan 3, 2016 at 8:39 PM, Leo Famulari <leo@famulari.name> wrote:
> On Sun, Jan 03, 2016 at 07:56:07PM -0800, Steve Sprang wrote:
>> Add the Erlang programming language.
>>
>> Is there a better way to substitute "/usr/bin/env" with (which "env")?
>> There are a number of files throughout the source tree that require
>> the substitution, but there's not a handy way to identify many of them
>> without explicitly listing them.
>>
>> -Steve
>
>> From d31d3b2ece298b3e7610890390a7a12f865be881 Mon Sep 17 00:00:00 2001
>> From: Steve Sprang <scs@stevesprang.com>
>> Date: Sun, 3 Jan 2016 19:46:40 -0800
>> Subject: [PATCH] gnu: Add erlang.
>>
>> * gnu/packages/erlang.scm: New file.
>> * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
>> ---
>>  gnu-system.am           |  1 +
>>  gnu/packages/erlang.scm | 82 +++++++++++++++++++++++++++++++++++++++++++++++++
>>  2 files changed, 83 insertions(+)
>>  create mode 100644 gnu/packages/erlang.scm
>>
>> diff --git a/gnu-system.am b/gnu-system.am
>> index c0f8fac..19d0ec5 100644
>> --- a/gnu-system.am
>> +++ b/gnu-system.am
>> @@ -99,6 +99,7 @@ GNU_SYSTEM_MODULES =                                \
>
> [...]
>
>> +    (native-inputs
>> +     `(("perl" ,perl)
>> +       ("autoconf" ,autoconf)))
>
> The tarball available on erlang.org is already bootstrapped. If we use
> that one, we don't need to explicitly include autoconf and we don't need
> the 'prep-configure phase.
>
> This seems to be the correct URL for downloading the current and past
> releases (there is no "archive" directory linked anywhere that I saw):
> http://www.erlang.org/download/otp_src_18.2.1.tar.gz
>
>> +    (inputs
>> +     `(("ncurses" ,ncurses)
>> +       ("openssl" ,openssl)))
>> +    (arguments
>> +     `(#:phases
>> +       (modify-phases %standard-phases
>> +      (add-after
>> +          'patch-source-shebangs 'patch-source-env
>> +        (lambda* _
>> +          (let ((escripts
>> +                 (append
>> +                  (find-files "." "\\.escript")
>> +                  (find-files "lib/stdlib/test/escript_SUITE_data/")
>> +                  '("erts/lib_src/utils/make_atomics_api"
>> +                    "erts/preloaded/src/add_abstract_code"
>> +                    "lib/diameter/bin/diameterc"
>> +                    "lib/reltool/examples/display_args"
>> +                    "lib/reltool/examples/mnesia_core_dump_viewer"
>> +                    "lib/snmp/src/compile/snmpc.src"
>> +                    "make/verify_runtime_dependencies"
>> +                    "make/emd2exml.in"))))
>> +            (substitute* escripts
>> +              (("/usr/bin/env") (which "env"))))))
>> +      (add-before
>> +          'configure 'prep-configure
>> +        (lambda* _
>> +          (setenv "ERL_TOP" (getcwd))
>> +          (zero? (system* "./otp_build" "autoconf")))))
>> +       #:test-target "release_tests"))
>> +    (home-page "http://erlang.org/")
>> +    (synopsis "The Erlang programming language")
>> +    (description
>> +     "Erlang is a programming language used to build massively
>> +scalable soft real-time systems with requirements on high
>> +availability.  Some of its uses are in telecoms, banking, e-commerce,
>> +computer telephony and instant messaging.  Erlang's runtime system has
>> +built-in support for concurrency, distribution and fault tolerance.")
>> +    (license license:asl2.0)))
>> --
>> 2.6.3
>>
>

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-01-04  5:20   ` Steve Sprang
@ 2016-01-04  6:23     ` Leo Famulari
  2016-01-04 11:44     ` Andy Wingo
  1 sibling, 0 replies; 24+ messages in thread
From: Leo Famulari @ 2016-01-04  6:23 UTC (permalink / raw)
  To: Steve Sprang; +Cc: guix-devel

On Sun, Jan 03, 2016 at 09:20:45PM -0800, Steve Sprang wrote:
> I originally tried that tarball but I get an error downloading it:
> 
> $ guix download
> http://www.erlang.org/download/otp_src_18.2.1.tar.gz
> 
> From http://www.erlang.org/download/otp_src_18.2.1.tar.gz...
> ERROR: Bad qstring header component: kMSMAn68110840

Weird. I wonder if that is related to the recent discussion about
Guile's http client being strict and rejecting non-standard headers?

> 
> -Steve
> 
> 
> On Sun, Jan 3, 2016 at 8:39 PM, Leo Famulari <leo@famulari.name> wrote:
> > On Sun, Jan 03, 2016 at 07:56:07PM -0800, Steve Sprang wrote:
> >> Add the Erlang programming language.
> >>
> >> Is there a better way to substitute "/usr/bin/env" with (which "env")?
> >> There are a number of files throughout the source tree that require
> >> the substitution, but there's not a handy way to identify many of them
> >> without explicitly listing them.
> >>
> >> -Steve
> >
> >> From d31d3b2ece298b3e7610890390a7a12f865be881 Mon Sep 17 00:00:00 2001
> >> From: Steve Sprang <scs@stevesprang.com>
> >> Date: Sun, 3 Jan 2016 19:46:40 -0800
> >> Subject: [PATCH] gnu: Add erlang.
> >>
> >> * gnu/packages/erlang.scm: New file.
> >> * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
> >> ---
> >>  gnu-system.am           |  1 +
> >>  gnu/packages/erlang.scm | 82 +++++++++++++++++++++++++++++++++++++++++++++++++
> >>  2 files changed, 83 insertions(+)
> >>  create mode 100644 gnu/packages/erlang.scm
> >>
> >> diff --git a/gnu-system.am b/gnu-system.am
> >> index c0f8fac..19d0ec5 100644
> >> --- a/gnu-system.am
> >> +++ b/gnu-system.am
> >> @@ -99,6 +99,7 @@ GNU_SYSTEM_MODULES =                                \
> >
> > [...]
> >
> >> +    (native-inputs
> >> +     `(("perl" ,perl)
> >> +       ("autoconf" ,autoconf)))
> >
> > The tarball available on erlang.org is already bootstrapped. If we use
> > that one, we don't need to explicitly include autoconf and we don't need
> > the 'prep-configure phase.
> >
> > This seems to be the correct URL for downloading the current and past
> > releases (there is no "archive" directory linked anywhere that I saw):
> > http://www.erlang.org/download/otp_src_18.2.1.tar.gz
> >
> >> +    (inputs
> >> +     `(("ncurses" ,ncurses)
> >> +       ("openssl" ,openssl)))
> >> +    (arguments
> >> +     `(#:phases
> >> +       (modify-phases %standard-phases
> >> +      (add-after
> >> +          'patch-source-shebangs 'patch-source-env
> >> +        (lambda* _
> >> +          (let ((escripts
> >> +                 (append
> >> +                  (find-files "." "\\.escript")
> >> +                  (find-files "lib/stdlib/test/escript_SUITE_data/")
> >> +                  '("erts/lib_src/utils/make_atomics_api"
> >> +                    "erts/preloaded/src/add_abstract_code"
> >> +                    "lib/diameter/bin/diameterc"
> >> +                    "lib/reltool/examples/display_args"
> >> +                    "lib/reltool/examples/mnesia_core_dump_viewer"
> >> +                    "lib/snmp/src/compile/snmpc.src"
> >> +                    "make/verify_runtime_dependencies"
> >> +                    "make/emd2exml.in"))))
> >> +            (substitute* escripts
> >> +              (("/usr/bin/env") (which "env"))))))
> >> +      (add-before
> >> +          'configure 'prep-configure
> >> +        (lambda* _
> >> +          (setenv "ERL_TOP" (getcwd))
> >> +          (zero? (system* "./otp_build" "autoconf")))))
> >> +       #:test-target "release_tests"))
> >> +    (home-page "http://erlang.org/")
> >> +    (synopsis "The Erlang programming language")
> >> +    (description
> >> +     "Erlang is a programming language used to build massively
> >> +scalable soft real-time systems with requirements on high
> >> +availability.  Some of its uses are in telecoms, banking, e-commerce,
> >> +computer telephony and instant messaging.  Erlang's runtime system has
> >> +built-in support for concurrency, distribution and fault tolerance.")
> >> +    (license license:asl2.0)))
> >> --
> >> 2.6.3
> >>
> >

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-01-04  5:20   ` Steve Sprang
  2016-01-04  6:23     ` Leo Famulari
@ 2016-01-04 11:44     ` Andy Wingo
  2016-01-04 12:13       ` Nala Ginrut
                         ` (2 more replies)
  1 sibling, 3 replies; 24+ messages in thread
From: Andy Wingo @ 2016-01-04 11:44 UTC (permalink / raw)
  To: Steve Sprang; +Cc: guix-devel, guile-devel, Leo Famulari

On Mon 04 Jan 2016 06:20, Steve Sprang <steve.sprang@gmail.com> writes:

> From http://www.erlang.org/download/otp_src_18.2.1.tar.gz...
> ERROR: Bad qstring header component: kMSMAn68110840

This means the server is emitting bad HTTP.  If I connect with:

   GET /download/otp_src_18.2.1.tar.gz HTTP/1.1
   Host: www.erlang.org
   Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
   User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/601.1 (KHTML, like Gecko) Version/8.0 Safari/601.1 Epiphany/3.16.3
   Accept-Encoding: gzip, deflate
   Accept-Language: en
   Connection: Keep-Alive

The server responds with:

   HTTP/1.1 200 OK
   Server: inets/5.7.1
   Date: Mon, 04 Jan 2016 11:32:30 GMT
   Content-Type: text/plain;  charset=utf-8
   Etag: kMSMAn68110840
   Content-Length: 68110840
   Last-Modified: Fri, 18 Dec 2015 11:00:38 GMT
   Connection:close

   ...

The Etag value is invalid:

  https://tools.ietf.org/html/rfc7232#section-2.3

We could relax Guile's etag parser to assume that an etag not starting
with either W/ or " is a strong etag without quotes.  To do that you
would patch guile's http.scm to say:

(define (parse-entity-tag val)
  (cond
   ((string-prefix? "W/" val) (cons (parse-qstring val 2) #f))
   ((string-prefix? "\"" val) (cons (parse-qstring val) #t))
   (else (cons val #t))))

Considering that this error has come up a few times and that the less
strict parser doesn't change the Guile programming interface or endanger
the web in any significant way, I think changing Guile's HTTP parser
would be OK.

Thoughts?

Andy

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-01-04 11:44     ` Andy Wingo
@ 2016-01-04 12:13       ` Nala Ginrut
  2016-01-06 16:07       ` bug#19439: " Ludovic Courtès
  2016-01-06 16:07       ` Ludovic Courtès
  2 siblings, 0 replies; 24+ messages in thread
From: Nala Ginrut @ 2016-01-04 12:13 UTC (permalink / raw)
  To: Andy Wingo; +Cc: guix-devel, Steve Sprang, guile-devel, Leo Famulari

Someone had reported the similar problem to Artanis:
https://github.com/NalaGinrut/artanis/issues/44

It's because some client (firefox, in this case) emits wrong header. But
nowadays many clients seems break RFC. Maybe make the parsing rule
little looser is better. 
And maybe add a warning? But seems useless to change anything.
So I agree with you to change our http parser. 

Best regards.

On Mon, 2016-01-04 at 12:44 +0100, Andy Wingo wrote:
> On Mon 04 Jan 2016 06:20, Steve Sprang <steve.sprang@gmail.com> writes:
> 
> > From http://www.erlang.org/download/otp_src_18.2.1.tar.gz...
> > ERROR: Bad qstring header component: kMSMAn68110840
> 
> This means the server is emitting bad HTTP.  If I connect with:
> 
>    GET /download/otp_src_18.2.1.tar.gz HTTP/1.1
>    Host: www.erlang.org
>    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
>    User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/601.1 (KHTML, like Gecko) Version/8.0 Safari/601.1 Epiphany/3.16.3
>    Accept-Encoding: gzip, deflate
>    Accept-Language: en
>    Connection: Keep-Alive
> 
> The server responds with:
> 
>    HTTP/1.1 200 OK
>    Server: inets/5.7.1
>    Date: Mon, 04 Jan 2016 11:32:30 GMT
>    Content-Type: text/plain;  charset=utf-8
>    Etag: kMSMAn68110840
>    Content-Length: 68110840
>    Last-Modified: Fri, 18 Dec 2015 11:00:38 GMT
>    Connection:close
> 
>    ...
> 
> The Etag value is invalid:
> 
>   https://tools.ietf.org/html/rfc7232#section-2.3
> 
> We could relax Guile's etag parser to assume that an etag not starting
> with either W/ or " is a strong etag without quotes.  To do that you
> would patch guile's http.scm to say:
> 
> (define (parse-entity-tag val)
>   (cond
>    ((string-prefix? "W/" val) (cons (parse-qstring val 2) #f))
>    ((string-prefix? "\"" val) (cons (parse-qstring val) #t))
>    (else (cons val #t))))
> 
> Considering that this error has come up a few times and that the less
> strict parser doesn't change the Guile programming interface or endanger
> the web in any significant way, I think changing Guile's HTTP parser
> would be OK.
> 
> Thoughts?
> 
> Andy
> 

^ permalink raw reply	[flat|nested] 24+ messages in thread

* bug#19439: [PATCH] gnu: Add erlang.
  2016-01-04 11:44     ` Andy Wingo
  2016-01-04 12:13       ` Nala Ginrut
@ 2016-01-06 16:07       ` Ludovic Courtès
  2016-01-06 16:07       ` Ludovic Courtès
  2 siblings, 0 replies; 24+ messages in thread
From: Ludovic Courtès @ 2016-01-06 16:07 UTC (permalink / raw)
  To: Andy Wingo; +Cc: guix-devel, 19439, guile-devel

On Mon 04 Jan 2016 06:20, Steve Sprang <steve.sprang@gmail.com> writes:

> From http://www.erlang.org/download/otp_src_18.2.1.tar.gz...
> ERROR: Bad qstring header component: kMSMAn68110840

Andy Wingo <wingo@igalia.com> skribis:

> The Etag value is invalid:
>
>   https://tools.ietf.org/html/rfc7232#section-2.3
>
> We could relax Guile's etag parser to assume that an etag not starting
> with either W/ or " is a strong etag without quotes.  To do that you
> would patch guile's http.scm to say:
>
> (define (parse-entity-tag val)
>   (cond
>    ((string-prefix? "W/" val) (cons (parse-qstring val 2) #f))
>    ((string-prefix? "\"" val) (cons (parse-qstring val) #t))
>    (else (cons val #t))))
>
> Considering that this error has come up a few times and that the less
> strict parser doesn't change the Guile programming interface or endanger
> the web in any significant way, I think changing Guile's HTTP parser
> would be OK.
>
> Thoughts?

Indeed, this has been reported a few times:

  http://bugs.gnu.org/19439

I think we should implement the proposed change.  Could you look
into it?

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-01-04 11:44     ` Andy Wingo
  2016-01-04 12:13       ` Nala Ginrut
  2016-01-06 16:07       ` bug#19439: " Ludovic Courtès
@ 2016-01-06 16:07       ` Ludovic Courtès
  2016-01-07  9:56         ` Andy Wingo
  2 siblings, 1 reply; 24+ messages in thread
From: Ludovic Courtès @ 2016-01-06 16:07 UTC (permalink / raw)
  To: Andy Wingo; +Cc: guix-devel, 19439, Steve Sprang, guile-devel

On Mon 04 Jan 2016 06:20, Steve Sprang <steve.sprang@gmail.com> writes:

> From http://www.erlang.org/download/otp_src_18.2.1.tar.gz...
> ERROR: Bad qstring header component: kMSMAn68110840

Andy Wingo <wingo@igalia.com> skribis:

> The Etag value is invalid:
>
>   https://tools.ietf.org/html/rfc7232#section-2.3
>
> We could relax Guile's etag parser to assume that an etag not starting
> with either W/ or " is a strong etag without quotes.  To do that you
> would patch guile's http.scm to say:
>
> (define (parse-entity-tag val)
>   (cond
>    ((string-prefix? "W/" val) (cons (parse-qstring val 2) #f))
>    ((string-prefix? "\"" val) (cons (parse-qstring val) #t))
>    (else (cons val #t))))
>
> Considering that this error has come up a few times and that the less
> strict parser doesn't change the Guile programming interface or endanger
> the web in any significant way, I think changing Guile's HTTP parser
> would be OK.
>
> Thoughts?

Indeed, this has been reported a few times:

  http://bugs.gnu.org/19439

I think we should implement the proposed change.  Could you look
into it?

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-01-06 16:07       ` Ludovic Courtès
@ 2016-01-07  9:56         ` Andy Wingo
  2016-02-06 20:45           ` Steve Sprang
  2016-06-22 19:42           ` bug#19439: [PATCH] gnu: Add erlang Andy Wingo
  0 siblings, 2 replies; 24+ messages in thread
From: Andy Wingo @ 2016-01-07  9:56 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel, 19439, Steve Sprang, guile-devel

On Wed 06 Jan 2016 17:07, ludo@gnu.org (Ludovic Courtès) writes:

> On Mon 04 Jan 2016 06:20, Steve Sprang <steve.sprang@gmail.com> writes:
>
>> From http://www.erlang.org/download/otp_src_18.2.1.tar.gz...
>> ERROR: Bad qstring header component: kMSMAn68110840
>
> I think we should implement the proposed change.  Could you look
> into it?

Done on master in 6d7c09c8a9900794a855b9c69c57c3d1736506ed.  I'd
cherry-pick back to 2.0 but I don't have a checkout on this machine;
please feel free :)

Cheers,

Andy

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-01-07  9:56         ` Andy Wingo
@ 2016-02-06 20:45           ` Steve Sprang
  2016-02-13  0:44             ` Leo Famulari
  2016-06-22 19:42           ` bug#19439: [PATCH] gnu: Add erlang Andy Wingo
  1 sibling, 1 reply; 24+ messages in thread
From: Steve Sprang @ 2016-02-06 20:45 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 727 bytes --]

It looks like downloading the tarball from erlang.org works now.
Here's an improved patch.

-Steve

On Thu, Jan 7, 2016 at 1:56 AM, Andy Wingo <wingo@igalia.com> wrote:
> On Wed 06 Jan 2016 17:07, ludo@gnu.org (Ludovic Courtès) writes:
>
>> On Mon 04 Jan 2016 06:20, Steve Sprang <steve.sprang@gmail.com> writes:
>>
>>> From http://www.erlang.org/download/otp_src_18.2.1.tar.gz...
>>> ERROR: Bad qstring header component: kMSMAn68110840
>>
>> I think we should implement the proposed change.  Could you look
>> into it?
>
> Done on master in 6d7c09c8a9900794a855b9c69c57c3d1736506ed.  I'd
> cherry-pick back to 2.0 but I don't have a checkout on this machine;
> please feel free :)
>
> Cheers,
>
> Andy

[-- Attachment #2: erlang.patch --]
[-- Type: text/x-patch, Size: 4106 bytes --]

From 0a1a045ef67e5e70d003c230c72b78a13e38b69b Mon Sep 17 00:00:00 2001
From: Steve Sprang <scs@stevesprang.com>
Date: Sat, 6 Feb 2016 12:40:53 -0800
Subject: [PATCH] gnu: Add erlang.

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

diff --git a/gnu-system.am b/gnu-system.am
index 95150b6..0d00456 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -101,6 +101,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/enchant.scm			\
   gnu/packages/engineering.scm			\
   gnu/packages/enlightenment.scm		\
+  gnu/packages/erlang.scm			\
   gnu/packages/fcitx.scm			\
   gnu/packages/feh.scm                          \
   gnu/packages/figlet.scm			\
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
new file mode 100644
index 0000000..ea36784
--- /dev/null
+++ b/gnu/packages/erlang.scm
@@ -0,0 +1,80 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Steve Sprang <scs@stevesprang.com>
+;;;
+;;; 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 erlang)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages tls))
+
+(define-public erlang
+  (package
+    (name "erlang")
+    (version "18.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://erlang.org/download/otp_src_"
+                    version
+                    ".tar.gz"))
+              (sha256
+               (base32
+                "16p37yylj8h5wvh251r71cw67b79l15a1wdhlm7bcpfsxsznxmw2"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)))
+    (inputs
+     `(("ncurses" ,ncurses)
+       ("openssl" ,openssl)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+	 (add-after
+	     'patch-source-shebangs 'patch-source-env
+	   (lambda* _
+	     (let ((escripts
+		    (append
+		     (find-files "." "\\.escript")
+		     (find-files "lib/stdlib/test/escript_SUITE_data/")
+		     '("erts/lib_src/utils/make_atomics_api"
+		       "erts/preloaded/src/add_abstract_code"
+		       "lib/diameter/bin/diameterc"
+		       "lib/reltool/examples/display_args"
+		       "lib/reltool/examples/mnesia_core_dump_viewer"
+		       "lib/snmp/src/compile/snmpc.src"
+		       "make/verify_runtime_dependencies"
+		       "make/emd2exml.in"))))
+	       (substitute* escripts
+		 (("/usr/bin/env") (which "env"))))))
+         (add-before
+             'configure 'set-erl-top
+           (lambda* _
+             (setenv "ERL_TOP" (getcwd)))))
+       #:test-target "release_tests"))
+    (home-page "http://erlang.org/")
+    (synopsis "The Erlang programming language")
+    (description
+     "Erlang is a programming language used to build massively
+scalable soft real-time systems with requirements on high
+availability.  Some of its uses are in telecoms, banking, e-commerce,
+computer telephony and instant messaging.  Erlang's runtime system has
+built-in support for concurrency, distribution and fault tolerance.")
+    (license license:asl2.0)))
-- 
2.6.3


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-02-06 20:45           ` Steve Sprang
@ 2016-02-13  0:44             ` Leo Famulari
  2016-02-13 21:12               ` Efraim Flashner
  0 siblings, 1 reply; 24+ messages in thread
From: Leo Famulari @ 2016-02-13  0:44 UTC (permalink / raw)
  To: Steve Sprang; +Cc: guix-devel

On Sat, Feb 06, 2016 at 12:45:39PM -0800, Steve Sprang wrote:
> It looks like downloading the tarball from erlang.org works now.
> Here's an improved patch.

I wonder, do you happen to have any Erlang programs packaged that I can
test this with? Or, would they require the creation of a full
erlang-build-system?

Otherwise, the patch LGTM with a couple minor stylistic changes.

> From 0a1a045ef67e5e70d003c230c72b78a13e38b69b Mon Sep 17 00:00:00 2001
> From: Steve Sprang <scs@stevesprang.com>
> Date: Sat, 6 Feb 2016 12:40:53 -0800
> Subject: [PATCH] gnu: Add erlang.
> 
> * gnu/packages/erlang.scm: New file.
> * gnu-system.am (GNU_SYSTEM_MODULES): Add it.

Awesome, there is some Erlang software I'd like to package :) Thanks for
working on this.

> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +	 (add-after
> +	     'patch-source-shebangs 'patch-source-env

I would put these phase names on the same line as 'add-after' or
directly below the first character of 'add-after'

> +	   (lambda* _
> +	     (let ((escripts
> +		    (append
> +		     (find-files "." "\\.escript")
> +		     (find-files "lib/stdlib/test/escript_SUITE_data/")
> +		     '("erts/lib_src/utils/make_atomics_api"
> +		       "erts/preloaded/src/add_abstract_code"
> +		       "lib/diameter/bin/diameterc"
> +		       "lib/reltool/examples/display_args"
> +		       "lib/reltool/examples/mnesia_core_dump_viewer"
> +		       "lib/snmp/src/compile/snmpc.src"
> +		       "make/verify_runtime_dependencies"
> +		       "make/emd2exml.in"))))
> +	       (substitute* escripts
> +		 (("/usr/bin/env") (which "env"))))))
> +         (add-before
> +             'configure 'set-erl-top
> +           (lambda* _
> +             (setenv "ERL_TOP" (getcwd)))))

I _think_ that 'lambda _' would be appropriate here. I need a real
Schemer to weigh in ;)

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-02-13  0:44             ` Leo Famulari
@ 2016-02-13 21:12               ` Efraim Flashner
  2016-02-21 20:54                 ` Ludovic Courtès
  0 siblings, 1 reply; 24+ messages in thread
From: Efraim Flashner @ 2016-02-13 21:12 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1523 bytes --]

On Fri, 12 Feb 2016 19:44:46 -0500
Leo Famulari <leo@famulari.name> wrote:

> On Sat, Feb 06, 2016 at 12:45:39PM -0800, Steve Sprang wrote:
> > It looks like downloading the tarball from erlang.org works now.
> > Here's an improved patch.  
> > +	   (lambda* _
> > +	     (let ((escripts
> > +		    (append
> > +		     (find-files "." "\\.escript")
> > +		     (find-files "lib/stdlib/test/escript_SUITE_data/")
> > +		     '("erts/lib_src/utils/make_atomics_api"
> > +		       "erts/preloaded/src/add_abstract_code"
> > +		       "lib/diameter/bin/diameterc"
> > +		       "lib/reltool/examples/display_args"
> > +		       "lib/reltool/examples/mnesia_core_dump_viewer"
> > +		       "lib/snmp/src/compile/snmpc.src"
> > +		       "make/verify_runtime_dependencies"
> > +		       "make/emd2exml.in"))))
> > +	       (substitute* escripts
> > +		 (("/usr/bin/env") (which "env"))))))
> > +         (add-before
> > +             'configure 'set-erl-top
> > +           (lambda* _
> > +             (setenv "ERL_TOP" (getcwd)))))  
> 
> I _think_ that 'lambda _' would be appropriate here. I need a real
> Schemer to weigh in ;)
> 

I'm definately not a "real schemer," but since the lambda only leads into the
let (ie. one item), I'm pretty sure 'lambda _' should be sufficient.

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

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-02-13 21:12               ` Efraim Flashner
@ 2016-02-21 20:54                 ` Ludovic Courtès
  2016-03-17  0:18                   ` Steve Sprang
  0 siblings, 1 reply; 24+ messages in thread
From: Ludovic Courtès @ 2016-02-21 20:54 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: guix-devel

Efraim Flashner <efraim@flashner.co.il> skribis:

> On Fri, 12 Feb 2016 19:44:46 -0500
> Leo Famulari <leo@famulari.name> wrote:
>
>> On Sat, Feb 06, 2016 at 12:45:39PM -0800, Steve Sprang wrote:
>> > It looks like downloading the tarball from erlang.org works now.
>> > Here's an improved patch.  
>> > +	   (lambda* _
>> > +	     (let ((escripts
>> > +		    (append
>> > +		     (find-files "." "\\.escript")
>> > +		     (find-files "lib/stdlib/test/escript_SUITE_data/")
>> > +		     '("erts/lib_src/utils/make_atomics_api"
>> > +		       "erts/preloaded/src/add_abstract_code"
>> > +		       "lib/diameter/bin/diameterc"
>> > +		       "lib/reltool/examples/display_args"
>> > +		       "lib/reltool/examples/mnesia_core_dump_viewer"
>> > +		       "lib/snmp/src/compile/snmpc.src"
>> > +		       "make/verify_runtime_dependencies"
>> > +		       "make/emd2exml.in"))))
>> > +	       (substitute* escripts
>> > +		 (("/usr/bin/env") (which "env"))))))
>> > +         (add-before
>> > +             'configure 'set-erl-top
>> > +           (lambda* _
>> > +             (setenv "ERL_TOP" (getcwd)))))  
>> 
>> I _think_ that 'lambda _' would be appropriate here. I need a real
>> Schemer to weigh in ;)
>> 
>
> I'm definately not a "real schemer," but since the lambda only leads into the
> let (ie. one item), I'm pretty sure 'lambda _' should be sufficient.

Correct.  ‘lambda*’ is for when one wants to use optional or keyword
arguments (info "(guile) lambda* and define*").

Ludo’.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-02-21 20:54                 ` Ludovic Courtès
@ 2016-03-17  0:18                   ` Steve Sprang
  2016-03-17  4:21                     ` Leo Famulari
  0 siblings, 1 reply; 24+ messages in thread
From: Steve Sprang @ 2016-03-17  0:18 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1920 bytes --]

Oops, I didn't follow up on this. I made the suggested changes to the
patch. I also bumped the version to 18.3, which has subsequently
become available.

-Steve



On Sun, Feb 21, 2016 at 12:54 PM, Ludovic Courtès <ludo@gnu.org> wrote:
> Efraim Flashner <efraim@flashner.co.il> skribis:
>
>> On Fri, 12 Feb 2016 19:44:46 -0500
>> Leo Famulari <leo@famulari.name> wrote:
>>
>>> On Sat, Feb 06, 2016 at 12:45:39PM -0800, Steve Sprang wrote:
>>> > It looks like downloading the tarball from erlang.org works now.
>>> > Here's an improved patch.
>>> > +     (lambda* _
>>> > +       (let ((escripts
>>> > +              (append
>>> > +               (find-files "." "\\.escript")
>>> > +               (find-files "lib/stdlib/test/escript_SUITE_data/")
>>> > +               '("erts/lib_src/utils/make_atomics_api"
>>> > +                 "erts/preloaded/src/add_abstract_code"
>>> > +                 "lib/diameter/bin/diameterc"
>>> > +                 "lib/reltool/examples/display_args"
>>> > +                 "lib/reltool/examples/mnesia_core_dump_viewer"
>>> > +                 "lib/snmp/src/compile/snmpc.src"
>>> > +                 "make/verify_runtime_dependencies"
>>> > +                 "make/emd2exml.in"))))
>>> > +         (substitute* escripts
>>> > +           (("/usr/bin/env") (which "env"))))))
>>> > +         (add-before
>>> > +             'configure 'set-erl-top
>>> > +           (lambda* _
>>> > +             (setenv "ERL_TOP" (getcwd)))))
>>>
>>> I _think_ that 'lambda _' would be appropriate here. I need a real
>>> Schemer to weigh in ;)
>>>
>>
>> I'm definately not a "real schemer," but since the lambda only leads into the
>> let (ie. one item), I'm pretty sure 'lambda _' should be sufficient.
>
> Correct.  ‘lambda*’ is for when one wants to use optional or keyword
> arguments (info "(guile) lambda* and define*").
>
> Ludo’.
>

[-- Attachment #2: erlang.patch --]
[-- Type: text/x-patch, Size: 4081 bytes --]

From 4f96f16df0393d3bf03ec7e701d1c875565023cd Mon Sep 17 00:00:00 2001
From: Steve Sprang <scs@stevesprang.com>
Date: Sat, 6 Feb 2016 12:40:53 -0800
Subject: [PATCH] gnu: Add erlang.

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

diff --git a/gnu-system.am b/gnu-system.am
index 634093a..7b2ca30 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -102,6 +102,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/enchant.scm			\
   gnu/packages/engineering.scm			\
   gnu/packages/enlightenment.scm		\
+  gnu/packages/erlang.scm			\
   gnu/packages/fcitx.scm			\
   gnu/packages/feh.scm                          \
   gnu/packages/figlet.scm			\
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
new file mode 100644
index 0000000..35796fd
--- /dev/null
+++ b/gnu/packages/erlang.scm
@@ -0,0 +1,78 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Steve Sprang <scs@stevesprang.com>
+;;;
+;;; 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 erlang)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages tls))
+
+(define-public erlang
+  (package
+    (name "erlang")
+    (version "18.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://erlang.org/download/otp_src_"
+                    version
+                    ".tar.gz"))
+              (sha256
+               (base32
+                "1hy9slq9gjvwdb504dmvp6rax90isnky6chqkyq5v4ybl4lq3azx"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)))
+    (inputs
+     `(("ncurses" ,ncurses)
+       ("openssl" ,openssl)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+	 (add-after 'patch-source-shebangs 'patch-source-env
+	   (lambda _
+	     (let ((escripts
+		    (append
+		     (find-files "." "\\.escript")
+		     (find-files "lib/stdlib/test/escript_SUITE_data/")
+		     '("erts/lib_src/utils/make_atomics_api"
+		       "erts/preloaded/src/add_abstract_code"
+		       "lib/diameter/bin/diameterc"
+		       "lib/reltool/examples/display_args"
+		       "lib/reltool/examples/mnesia_core_dump_viewer"
+		       "lib/snmp/src/compile/snmpc.src"
+		       "make/verify_runtime_dependencies"
+		       "make/emd2exml.in"))))
+	       (substitute* escripts
+		 (("/usr/bin/env") (which "env"))))))
+         (add-before 'configure 'set-erl-top
+           (lambda _
+             (setenv "ERL_TOP" (getcwd)))))
+       #:test-target "release_tests"))
+    (home-page "http://erlang.org/")
+    (synopsis "The Erlang programming language")
+    (description
+     "Erlang is a programming language used to build massively
+scalable soft real-time systems with requirements on high
+availability.  Some of its uses are in telecoms, banking, e-commerce,
+computer telephony and instant messaging.  Erlang's runtime system has
+built-in support for concurrency, distribution and fault tolerance.")
+    (license license:asl2.0)))
-- 
2.6.3


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-03-17  0:18                   ` Steve Sprang
@ 2016-03-17  4:21                     ` Leo Famulari
  2016-03-17  5:00                       ` Steve Sprang
  0 siblings, 1 reply; 24+ messages in thread
From: Leo Famulari @ 2016-03-17  4:21 UTC (permalink / raw)
  To: Steve Sprang; +Cc: guix-devel

On Wed, Mar 16, 2016 at 05:18:57PM -0700, Steve Sprang wrote:
> Oops, I didn't follow up on this. I made the suggested changes to the
> patch. I also bumped the version to 18.3, which has subsequently
> become available.

This is awesome!

Do you have any erlang programs packaged that we can try it out with? Or
is there some "hello world" thing I can try for this package?

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-03-17  4:21                     ` Leo Famulari
@ 2016-03-17  5:00                       ` Steve Sprang
  2016-03-21 15:40                         ` Leo Famulari
  0 siblings, 1 reply; 24+ messages in thread
From: Steve Sprang @ 2016-03-17  5:00 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 578 bytes --]

I don't have anything else packaged. I've only dabbled with Erlang myself.
You can start a REPL with:

% erl

-Steve
On Mar 16, 2016 9:21 PM, "Leo Famulari" <leo@famulari.name> wrote:

> On Wed, Mar 16, 2016 at 05:18:57PM -0700, Steve Sprang wrote:
> > Oops, I didn't follow up on this. I made the suggested changes to the
> > patch. I also bumped the version to 18.3, which has subsequently
> > become available.
>
> This is awesome!
>
> Do you have any erlang programs packaged that we can try it out with? Or
> is there some "hello world" thing I can try for this package?
>

[-- Attachment #2: Type: text/html, Size: 913 bytes --]

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-03-17  5:00                       ` Steve Sprang
@ 2016-03-21 15:40                         ` Leo Famulari
  2016-03-22 20:59                           ` Pjotr Prins
  0 siblings, 1 reply; 24+ messages in thread
From: Leo Famulari @ 2016-03-21 15:40 UTC (permalink / raw)
  To: Steve Sprang; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1769 bytes --]

On Wed, Mar 16, 2016 at 10:00:21PM -0700, Steve Sprang wrote:
> I don't have anything else packaged. I've only dabbled with Erlang myself.
> You can start a REPL with:
> 
> % erl

Okay, I was able to build this on x86_64 and cross-build to i686. Would
anyone like the test the build on armhf or mips64el?

I was able to run a "Hello world" program [0]:

---
$ ./pre-inst-env guix environment --pure --ad-hoc erlang -- erl -noshell -eval 'io:fwrite("Hello, world!\n"), init:stop().'
Hello, world!
---

The configure script was not finding OpenSSL, so I've modified the
package locally to provide the path.

I did something similar for `rm`. Also, I had to provide the path to
`sed` in 'erl/bin', which is just a small shell script.

I've attached my changes. What do you think?

The Nix package [1] might show the way for future improvements to this
package.

For example, the documentation (man pages) is distributed separately, so
I've attached a patch that adds them in their own package. But, they are
only 6 megabytes (erlang itself is 100 megabytes), so they should
probably be folded into the the erlang package.

[0]
http://erlangcentral.org/wiki/index.php/Hello_World

[1]
https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/interpreters/erlang/R18.nix

> 
> -Steve
> On Mar 16, 2016 9:21 PM, "Leo Famulari" <leo@famulari.name> wrote:
> 
> > On Wed, Mar 16, 2016 at 05:18:57PM -0700, Steve Sprang wrote:
> > > Oops, I didn't follow up on this. I made the suggested changes to the
> > > patch. I also bumped the version to 18.3, which has subsequently
> > > become available.
> >
> > This is awesome!
> >
> > Do you have any erlang programs packaged that we can try it out with? Or
> > is there some "hello world" thing I can try for this package?
> >

[-- Attachment #2: 0001-gnu-Add-erlang.patch --]
[-- Type: text/x-diff, Size: 6272 bytes --]

From cafc65901667dab9a3773f637eba65a43346da1a Mon Sep 17 00:00:00 2001
Message-Id: <cafc65901667dab9a3773f637eba65a43346da1a.1458574834.git.leo@famulari.name>
From: Steve Sprang <scs@stevesprang.com>
Date: Sat, 6 Feb 2016 12:40:53 -0800
Subject: [PATCH 1/2] gnu: Add erlang.

* gnu/packages/erlang.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add it.

Signed-off-by: Leo Famulari <leo@famulari.name>
---
 gnu-system.am           |   1 +
 gnu/packages/erlang.scm | 127 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 128 insertions(+)
 create mode 100644 gnu/packages/erlang.scm

diff --git a/gnu-system.am b/gnu-system.am
index f13a55d..4cc44df 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -102,6 +102,7 @@ GNU_SYSTEM_MODULES =				\
   gnu/packages/enchant.scm			\
   gnu/packages/engineering.scm			\
   gnu/packages/enlightenment.scm		\
+  gnu/packages/erlang.scm			\
   gnu/packages/fcitx.scm			\
   gnu/packages/feh.scm                          \
   gnu/packages/figlet.scm			\
diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
new file mode 100644
index 0000000..4f9d6e4
--- /dev/null
+++ b/gnu/packages/erlang.scm
@@ -0,0 +1,127 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Steve Sprang <scs@stevesprang.com>
+;;;
+;;; 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 erlang)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages tls))
+
+(define-public erlang
+  (package
+    (name "erlang")
+    (version "18.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://erlang.org/download/otp_src_"
+                    version
+                    ".tar.gz"))
+              (sha256
+               (base32
+                "1hy9slq9gjvwdb504dmvp6rax90isnky6chqkyq5v4ybl4lq3azx"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("perl" ,perl)))
+    (inputs
+     `(("ncurses" ,ncurses)
+       ("openssl" ,openssl)))
+    (arguments
+     `(#:configure-flags
+       (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))
+       #:phases
+       (modify-phases %standard-phases
+	 (add-after 'patch-source-shebangs 'patch-source-env
+	   (lambda _
+	     (let ((escripts
+		    (append
+		     (find-files "." "\\.escript")
+		     (find-files "lib/stdlib/test/escript_SUITE_data/")
+		     '("erts/lib_src/utils/make_atomics_api"
+		       "erts/preloaded/src/add_abstract_code"
+		       "lib/diameter/bin/diameterc"
+		       "lib/reltool/examples/display_args"
+		       "lib/reltool/examples/mnesia_core_dump_viewer"
+		       "lib/snmp/src/compile/snmpc.src"
+		       "make/verify_runtime_dependencies"
+		       "make/emd2exml.in"))))
+	       (substitute* escripts
+		 (("/usr/bin/env") (which "env"))))))
+         (add-after 'unpack 'path-to-rm
+           (lambda _
+             (substitute* "erts/configure"
+               (("/bin/rm") (which "rm")))
+             (substitute* "lib/odbc/configure"
+               (("/bin/rm") (which "rm")))))
+         (add-before 'configure 'set-erl-top
+           (lambda _
+             (setenv "ERL_TOP" (getcwd))))
+         (add-after 'install 'patch-erl
+           ;; This only works after install.
+           (lambda _
+             (substitute* (string-append (assoc-ref %outputs "out") "/bin/erl")
+               (("sed") (which "sed"))))))
+       #:test-target "release_tests"))
+    (home-page "http://erlang.org/")
+    (synopsis "The Erlang programming language")
+    (description
+     "Erlang is a programming language used to build massively
+scalable soft real-time systems with requirements on high
+availability.  Some of its uses are in telecoms, banking, e-commerce,
+computer telephony and instant messaging.  Erlang's runtime system has
+built-in support for concurrency, distribution and fault tolerance.")
+    (license license:asl2.0)))
+
+(define-public erlang-manpages
+  ;; Keep in sync with 'erlang'!
+  (package
+    (name "erlang-manpages")
+    (version (package-version erlang))
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://erlang.org/download/otp_doc_man_"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1hpcr7a3dx2y9gnb53bvb4g6lyvbwigadl9s3f978s01x40f32wp"))))
+    (build-system trivial-build-system)
+    (arguments
+     '(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((gz  (assoc-ref %build-inputs "gzip"))
+                (tar (assoc-ref %build-inputs "tar"))
+                (out (assoc-ref %outputs "out"))
+                (man (string-append out "/share/man")))
+           (setenv "PATH" (string-append tar "/bin:" gz "/bin"))
+           (mkdir-p man)
+           (with-directory-excursion man
+             (zero? (system* "tar" "xvf"
+                             (assoc-ref %build-inputs "source"))))
+           (delete-file (string-append man "/PR.template"))
+           (delete-file (string-append man "/README"))))))
+    (native-inputs `(("tar" ,tar)
+                     ("gzip" ,gzip)))
+    (synopsis "Man pages of Erlang")
+    (description "This provides the man pages of Erlang.")
+    (home-page (package-home-page erlang))
+    (license license:asl2.0)))
-- 
2.7.3


[-- Attachment #3: 0002-gnu-Add-erlang-manpages.patch --]
[-- Type: text/x-diff, Size: 1468 bytes --]

From 5fb31a0190755b728f76775de7cea9cac54bde36 Mon Sep 17 00:00:00 2001
Message-Id: <5fb31a0190755b728f76775de7cea9cac54bde36.1458574834.git.leo@famulari.name>
In-Reply-To: <cafc65901667dab9a3773f637eba65a43346da1a.1458574834.git.leo@famulari.name>
References: <cafc65901667dab9a3773f637eba65a43346da1a.1458574834.git.leo@famulari.name>
From: Leo Famulari <leo@famulari.name>
Date: Mon, 21 Mar 2016 01:25:57 -0400
Subject: [PATCH 2/2] gnu: Add erlang-manpages.

* gnu/packages/erlang.scm (erlang-manpages): New variable.
---
 gnu/packages/erlang.scm | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
index 4f9d6e4..e90a7b7 100644
--- a/gnu/packages/erlang.scm
+++ b/gnu/packages/erlang.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016 Steve Sprang <scs@stevesprang.com>
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,11 +22,15 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system trivial)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages tls))
 
 (define-public erlang
+  ;; Keep in sync with 'erlang-manpages'!
   (package
     (name "erlang")
     (version "18.3")
-- 
2.7.3


^ permalink raw reply related	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-03-21 15:40                         ` Leo Famulari
@ 2016-03-22 20:59                           ` Pjotr Prins
  2016-03-22 21:21                             ` Leo Famulari
  2016-03-24  2:41                             ` Leo Famulari
  0 siblings, 2 replies; 24+ messages in thread
From: Pjotr Prins @ 2016-03-22 20:59 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

I have used this package to build Elixir, a language on top of the
Erlang VM. That is a complicated 'test' and so far it runs
beautifully. I'll add a package for Elixir soon.

Thanks!

Pj.

On Mon, Mar 21, 2016 at 11:40:46AM -0400, Leo Famulari wrote:
> On Wed, Mar 16, 2016 at 10:00:21PM -0700, Steve Sprang wrote:
> > I don't have anything else packaged. I've only dabbled with Erlang myself.
> > You can start a REPL with:
> > 
> > % erl
> 
> Okay, I was able to build this on x86_64 and cross-build to i686. Would
> anyone like the test the build on armhf or mips64el?
> 
> I was able to run a "Hello world" program [0]:
> 
> ---
> $ ./pre-inst-env guix environment --pure --ad-hoc erlang -- erl -noshell -eval 'io:fwrite("Hello, world!\n"), init:stop().'
> Hello, world!
> ---
> 
> The configure script was not finding OpenSSL, so I've modified the
> package locally to provide the path.
> 
> I did something similar for `rm`. Also, I had to provide the path to
> `sed` in 'erl/bin', which is just a small shell script.
> 
> I've attached my changes. What do you think?
> 
> The Nix package [1] might show the way for future improvements to this
> package.
> 
> For example, the documentation (man pages) is distributed separately, so
> I've attached a patch that adds them in their own package. But, they are
> only 6 megabytes (erlang itself is 100 megabytes), so they should
> probably be folded into the the erlang package.
> 
> [0]
> http://erlangcentral.org/wiki/index.php/Hello_World
> 
> [1]
> https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/interpreters/erlang/R18.nix
> 
> > 
> > -Steve
> > On Mar 16, 2016 9:21 PM, "Leo Famulari" <leo@famulari.name> wrote:
> > 
> > > On Wed, Mar 16, 2016 at 05:18:57PM -0700, Steve Sprang wrote:
> > > > Oops, I didn't follow up on this. I made the suggested changes to the
> > > > patch. I also bumped the version to 18.3, which has subsequently
> > > > become available.
> > >
> > > This is awesome!
> > >
> > > Do you have any erlang programs packaged that we can try it out with? Or
> > > is there some "hello world" thing I can try for this package?
> > >

> From cafc65901667dab9a3773f637eba65a43346da1a Mon Sep 17 00:00:00 2001
> Message-Id: <cafc65901667dab9a3773f637eba65a43346da1a.1458574834.git.leo@famulari.name>
> From: Steve Sprang <scs@stevesprang.com>
> Date: Sat, 6 Feb 2016 12:40:53 -0800
> Subject: [PATCH 1/2] gnu: Add erlang.
> 
> * gnu/packages/erlang.scm: New file.
> * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
> 
> Signed-off-by: Leo Famulari <leo@famulari.name>
> ---
>  gnu-system.am           |   1 +
>  gnu/packages/erlang.scm | 127 ++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 128 insertions(+)
>  create mode 100644 gnu/packages/erlang.scm
> 
> diff --git a/gnu-system.am b/gnu-system.am
> index f13a55d..4cc44df 100644
> --- a/gnu-system.am
> +++ b/gnu-system.am
> @@ -102,6 +102,7 @@ GNU_SYSTEM_MODULES =				\
>    gnu/packages/enchant.scm			\
>    gnu/packages/engineering.scm			\
>    gnu/packages/enlightenment.scm		\
> +  gnu/packages/erlang.scm			\
>    gnu/packages/fcitx.scm			\
>    gnu/packages/feh.scm                          \
>    gnu/packages/figlet.scm			\
> diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
> new file mode 100644
> index 0000000..4f9d6e4
> --- /dev/null
> +++ b/gnu/packages/erlang.scm
> @@ -0,0 +1,127 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2016 Steve Sprang <scs@stevesprang.com>
> +;;;
> +;;; 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 erlang)
> +  #:use-module ((guix licenses) #:prefix license:)
> +  #:use-module (guix packages)
> +  #:use-module (guix download)
> +  #:use-module (guix build-system gnu)
> +  #:use-module (gnu packages ncurses)
> +  #:use-module (gnu packages perl)
> +  #:use-module (gnu packages tls))
> +
> +(define-public erlang
> +  (package
> +    (name "erlang")
> +    (version "18.3")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append
> +                    "http://erlang.org/download/otp_src_"
> +                    version
> +                    ".tar.gz"))
> +              (sha256
> +               (base32
> +                "1hy9slq9gjvwdb504dmvp6rax90isnky6chqkyq5v4ybl4lq3azx"))))
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("perl" ,perl)))
> +    (inputs
> +     `(("ncurses" ,ncurses)
> +       ("openssl" ,openssl)))
> +    (arguments
> +     `(#:configure-flags
> +       (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))
> +       #:phases
> +       (modify-phases %standard-phases
> +	 (add-after 'patch-source-shebangs 'patch-source-env
> +	   (lambda _
> +	     (let ((escripts
> +		    (append
> +		     (find-files "." "\\.escript")
> +		     (find-files "lib/stdlib/test/escript_SUITE_data/")
> +		     '("erts/lib_src/utils/make_atomics_api"
> +		       "erts/preloaded/src/add_abstract_code"
> +		       "lib/diameter/bin/diameterc"
> +		       "lib/reltool/examples/display_args"
> +		       "lib/reltool/examples/mnesia_core_dump_viewer"
> +		       "lib/snmp/src/compile/snmpc.src"
> +		       "make/verify_runtime_dependencies"
> +		       "make/emd2exml.in"))))
> +	       (substitute* escripts
> +		 (("/usr/bin/env") (which "env"))))))
> +         (add-after 'unpack 'path-to-rm
> +           (lambda _
> +             (substitute* "erts/configure"
> +               (("/bin/rm") (which "rm")))
> +             (substitute* "lib/odbc/configure"
> +               (("/bin/rm") (which "rm")))))
> +         (add-before 'configure 'set-erl-top
> +           (lambda _
> +             (setenv "ERL_TOP" (getcwd))))
> +         (add-after 'install 'patch-erl
> +           ;; This only works after install.
> +           (lambda _
> +             (substitute* (string-append (assoc-ref %outputs "out") "/bin/erl")
> +               (("sed") (which "sed"))))))
> +       #:test-target "release_tests"))
> +    (home-page "http://erlang.org/")
> +    (synopsis "The Erlang programming language")
> +    (description
> +     "Erlang is a programming language used to build massively
> +scalable soft real-time systems with requirements on high
> +availability.  Some of its uses are in telecoms, banking, e-commerce,
> +computer telephony and instant messaging.  Erlang's runtime system has
> +built-in support for concurrency, distribution and fault tolerance.")
> +    (license license:asl2.0)))
> +
> +(define-public erlang-manpages
> +  ;; Keep in sync with 'erlang'!
> +  (package
> +    (name "erlang-manpages")
> +    (version (package-version erlang))
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "http://erlang.org/download/otp_doc_man_"
> +                                  version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "1hpcr7a3dx2y9gnb53bvb4g6lyvbwigadl9s3f978s01x40f32wp"))))
> +    (build-system trivial-build-system)
> +    (arguments
> +     '(#:modules ((guix build utils))
> +       #:builder
> +       (begin
> +         (use-modules (guix build utils))
> +         (let* ((gz  (assoc-ref %build-inputs "gzip"))
> +                (tar (assoc-ref %build-inputs "tar"))
> +                (out (assoc-ref %outputs "out"))
> +                (man (string-append out "/share/man")))
> +           (setenv "PATH" (string-append tar "/bin:" gz "/bin"))
> +           (mkdir-p man)
> +           (with-directory-excursion man
> +             (zero? (system* "tar" "xvf"
> +                             (assoc-ref %build-inputs "source"))))
> +           (delete-file (string-append man "/PR.template"))
> +           (delete-file (string-append man "/README"))))))
> +    (native-inputs `(("tar" ,tar)
> +                     ("gzip" ,gzip)))
> +    (synopsis "Man pages of Erlang")
> +    (description "This provides the man pages of Erlang.")
> +    (home-page (package-home-page erlang))
> +    (license license:asl2.0)))
> -- 
> 2.7.3
> 

> From 5fb31a0190755b728f76775de7cea9cac54bde36 Mon Sep 17 00:00:00 2001
> Message-Id: <5fb31a0190755b728f76775de7cea9cac54bde36.1458574834.git.leo@famulari.name>
> In-Reply-To: <cafc65901667dab9a3773f637eba65a43346da1a.1458574834.git.leo@famulari.name>
> References: <cafc65901667dab9a3773f637eba65a43346da1a.1458574834.git.leo@famulari.name>
> From: Leo Famulari <leo@famulari.name>
> Date: Mon, 21 Mar 2016 01:25:57 -0400
> Subject: [PATCH 2/2] gnu: Add erlang-manpages.
> 
> * gnu/packages/erlang.scm (erlang-manpages): New variable.
> ---
>  gnu/packages/erlang.scm | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
> index 4f9d6e4..e90a7b7 100644
> --- a/gnu/packages/erlang.scm
> +++ b/gnu/packages/erlang.scm
> @@ -1,5 +1,6 @@
>  ;;; GNU Guix --- Functional package management for GNU
>  ;;; Copyright © 2016 Steve Sprang <scs@stevesprang.com>
> +;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -21,11 +22,15 @@
>    #:use-module (guix packages)
>    #:use-module (guix download)
>    #:use-module (guix build-system gnu)
> +  #:use-module (guix build-system trivial)
> +  #:use-module (gnu packages base)
> +  #:use-module (gnu packages compression)
>    #:use-module (gnu packages ncurses)
>    #:use-module (gnu packages perl)
>    #:use-module (gnu packages tls))
>  
>  (define-public erlang
> +  ;; Keep in sync with 'erlang-manpages'!
>    (package
>      (name "erlang")
>      (version "18.3")
> -- 
> 2.7.3
> 


-- 

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-03-22 20:59                           ` Pjotr Prins
@ 2016-03-22 21:21                             ` Leo Famulari
  2016-03-24  2:41                             ` Leo Famulari
  1 sibling, 0 replies; 24+ messages in thread
From: Leo Famulari @ 2016-03-22 21:21 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: guix-devel

On Tue, Mar 22, 2016 at 09:59:37PM +0100, Pjotr Prins wrote:
> I have used this package to build Elixir, a language on top of the
> Erlang VM. That is a complicated 'test' and so far it runs
> beautifully. I'll add a package for Elixir soon.

That's exactly the kind of test I was hoping someone would do :)

In the next couple days I'm going to fold the manpages into the erlang
recipe, proofread some more, and then apply the patch. Unless there are
objections, of course...

> 
> Thanks!
> 
> Pj.
> 
> On Mon, Mar 21, 2016 at 11:40:46AM -0400, Leo Famulari wrote:
> > On Wed, Mar 16, 2016 at 10:00:21PM -0700, Steve Sprang wrote:
> > > I don't have anything else packaged. I've only dabbled with Erlang myself.
> > > You can start a REPL with:
> > > 
> > > % erl
> > 
> > Okay, I was able to build this on x86_64 and cross-build to i686. Would
> > anyone like the test the build on armhf or mips64el?
> > 
> > I was able to run a "Hello world" program [0]:
> > 
> > ---
> > $ ./pre-inst-env guix environment --pure --ad-hoc erlang -- erl -noshell -eval 'io:fwrite("Hello, world!\n"), init:stop().'
> > Hello, world!
> > ---
> > 
> > The configure script was not finding OpenSSL, so I've modified the
> > package locally to provide the path.
> > 
> > I did something similar for `rm`. Also, I had to provide the path to
> > `sed` in 'erl/bin', which is just a small shell script.
> > 
> > I've attached my changes. What do you think?
> > 
> > The Nix package [1] might show the way for future improvements to this
> > package.
> > 
> > For example, the documentation (man pages) is distributed separately, so
> > I've attached a patch that adds them in their own package. But, they are
> > only 6 megabytes (erlang itself is 100 megabytes), so they should
> > probably be folded into the the erlang package.
> > 
> > [0]
> > http://erlangcentral.org/wiki/index.php/Hello_World
> > 
> > [1]
> > https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/interpreters/erlang/R18.nix
> > 
> > > 
> > > -Steve
> > > On Mar 16, 2016 9:21 PM, "Leo Famulari" <leo@famulari.name> wrote:
> > > 
> > > > On Wed, Mar 16, 2016 at 05:18:57PM -0700, Steve Sprang wrote:
> > > > > Oops, I didn't follow up on this. I made the suggested changes to the
> > > > > patch. I also bumped the version to 18.3, which has subsequently
> > > > > become available.
> > > >
> > > > This is awesome!
> > > >
> > > > Do you have any erlang programs packaged that we can try it out with? Or
> > > > is there some "hello world" thing I can try for this package?
> > > >
> 
> > From cafc65901667dab9a3773f637eba65a43346da1a Mon Sep 17 00:00:00 2001
> > Message-Id: <cafc65901667dab9a3773f637eba65a43346da1a.1458574834.git.leo@famulari.name>
> > From: Steve Sprang <scs@stevesprang.com>
> > Date: Sat, 6 Feb 2016 12:40:53 -0800
> > Subject: [PATCH 1/2] gnu: Add erlang.
> > 
> > * gnu/packages/erlang.scm: New file.
> > * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
> > 
> > Signed-off-by: Leo Famulari <leo@famulari.name>
> > ---
> >  gnu-system.am           |   1 +
> >  gnu/packages/erlang.scm | 127 ++++++++++++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 128 insertions(+)
> >  create mode 100644 gnu/packages/erlang.scm
> > 
> > diff --git a/gnu-system.am b/gnu-system.am
> > index f13a55d..4cc44df 100644
> > --- a/gnu-system.am
> > +++ b/gnu-system.am
> > @@ -102,6 +102,7 @@ GNU_SYSTEM_MODULES =				\
> >    gnu/packages/enchant.scm			\
> >    gnu/packages/engineering.scm			\
> >    gnu/packages/enlightenment.scm		\
> > +  gnu/packages/erlang.scm			\
> >    gnu/packages/fcitx.scm			\
> >    gnu/packages/feh.scm                          \
> >    gnu/packages/figlet.scm			\
> > diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
> > new file mode 100644
> > index 0000000..4f9d6e4
> > --- /dev/null
> > +++ b/gnu/packages/erlang.scm
> > @@ -0,0 +1,127 @@
> > +;;; GNU Guix --- Functional package management for GNU
> > +;;; Copyright © 2016 Steve Sprang <scs@stevesprang.com>
> > +;;;
> > +;;; 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 erlang)
> > +  #:use-module ((guix licenses) #:prefix license:)
> > +  #:use-module (guix packages)
> > +  #:use-module (guix download)
> > +  #:use-module (guix build-system gnu)
> > +  #:use-module (gnu packages ncurses)
> > +  #:use-module (gnu packages perl)
> > +  #:use-module (gnu packages tls))
> > +
> > +(define-public erlang
> > +  (package
> > +    (name "erlang")
> > +    (version "18.3")
> > +    (source (origin
> > +              (method url-fetch)
> > +              (uri (string-append
> > +                    "http://erlang.org/download/otp_src_"
> > +                    version
> > +                    ".tar.gz"))
> > +              (sha256
> > +               (base32
> > +                "1hy9slq9gjvwdb504dmvp6rax90isnky6chqkyq5v4ybl4lq3azx"))))
> > +    (build-system gnu-build-system)
> > +    (native-inputs
> > +     `(("perl" ,perl)))
> > +    (inputs
> > +     `(("ncurses" ,ncurses)
> > +       ("openssl" ,openssl)))
> > +    (arguments
> > +     `(#:configure-flags
> > +       (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))
> > +       #:phases
> > +       (modify-phases %standard-phases
> > +	 (add-after 'patch-source-shebangs 'patch-source-env
> > +	   (lambda _
> > +	     (let ((escripts
> > +		    (append
> > +		     (find-files "." "\\.escript")
> > +		     (find-files "lib/stdlib/test/escript_SUITE_data/")
> > +		     '("erts/lib_src/utils/make_atomics_api"
> > +		       "erts/preloaded/src/add_abstract_code"
> > +		       "lib/diameter/bin/diameterc"
> > +		       "lib/reltool/examples/display_args"
> > +		       "lib/reltool/examples/mnesia_core_dump_viewer"
> > +		       "lib/snmp/src/compile/snmpc.src"
> > +		       "make/verify_runtime_dependencies"
> > +		       "make/emd2exml.in"))))
> > +	       (substitute* escripts
> > +		 (("/usr/bin/env") (which "env"))))))
> > +         (add-after 'unpack 'path-to-rm
> > +           (lambda _
> > +             (substitute* "erts/configure"
> > +               (("/bin/rm") (which "rm")))
> > +             (substitute* "lib/odbc/configure"
> > +               (("/bin/rm") (which "rm")))))
> > +         (add-before 'configure 'set-erl-top
> > +           (lambda _
> > +             (setenv "ERL_TOP" (getcwd))))
> > +         (add-after 'install 'patch-erl
> > +           ;; This only works after install.
> > +           (lambda _
> > +             (substitute* (string-append (assoc-ref %outputs "out") "/bin/erl")
> > +               (("sed") (which "sed"))))))
> > +       #:test-target "release_tests"))
> > +    (home-page "http://erlang.org/")
> > +    (synopsis "The Erlang programming language")
> > +    (description
> > +     "Erlang is a programming language used to build massively
> > +scalable soft real-time systems with requirements on high
> > +availability.  Some of its uses are in telecoms, banking, e-commerce,
> > +computer telephony and instant messaging.  Erlang's runtime system has
> > +built-in support for concurrency, distribution and fault tolerance.")
> > +    (license license:asl2.0)))
> > +
> > +(define-public erlang-manpages
> > +  ;; Keep in sync with 'erlang'!
> > +  (package
> > +    (name "erlang-manpages")
> > +    (version (package-version erlang))
> > +    (source (origin
> > +              (method url-fetch)
> > +              (uri (string-append "http://erlang.org/download/otp_doc_man_"
> > +                                  version ".tar.gz"))
> > +              (sha256
> > +               (base32
> > +                "1hpcr7a3dx2y9gnb53bvb4g6lyvbwigadl9s3f978s01x40f32wp"))))
> > +    (build-system trivial-build-system)
> > +    (arguments
> > +     '(#:modules ((guix build utils))
> > +       #:builder
> > +       (begin
> > +         (use-modules (guix build utils))
> > +         (let* ((gz  (assoc-ref %build-inputs "gzip"))
> > +                (tar (assoc-ref %build-inputs "tar"))
> > +                (out (assoc-ref %outputs "out"))
> > +                (man (string-append out "/share/man")))
> > +           (setenv "PATH" (string-append tar "/bin:" gz "/bin"))
> > +           (mkdir-p man)
> > +           (with-directory-excursion man
> > +             (zero? (system* "tar" "xvf"
> > +                             (assoc-ref %build-inputs "source"))))
> > +           (delete-file (string-append man "/PR.template"))
> > +           (delete-file (string-append man "/README"))))))
> > +    (native-inputs `(("tar" ,tar)
> > +                     ("gzip" ,gzip)))
> > +    (synopsis "Man pages of Erlang")
> > +    (description "This provides the man pages of Erlang.")
> > +    (home-page (package-home-page erlang))
> > +    (license license:asl2.0)))
> > -- 
> > 2.7.3
> > 
> 
> > From 5fb31a0190755b728f76775de7cea9cac54bde36 Mon Sep 17 00:00:00 2001
> > Message-Id: <5fb31a0190755b728f76775de7cea9cac54bde36.1458574834.git.leo@famulari.name>
> > In-Reply-To: <cafc65901667dab9a3773f637eba65a43346da1a.1458574834.git.leo@famulari.name>
> > References: <cafc65901667dab9a3773f637eba65a43346da1a.1458574834.git.leo@famulari.name>
> > From: Leo Famulari <leo@famulari.name>
> > Date: Mon, 21 Mar 2016 01:25:57 -0400
> > Subject: [PATCH 2/2] gnu: Add erlang-manpages.
> > 
> > * gnu/packages/erlang.scm (erlang-manpages): New variable.
> > ---
> >  gnu/packages/erlang.scm | 5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
> > index 4f9d6e4..e90a7b7 100644
> > --- a/gnu/packages/erlang.scm
> > +++ b/gnu/packages/erlang.scm
> > @@ -1,5 +1,6 @@
> >  ;;; GNU Guix --- Functional package management for GNU
> >  ;;; Copyright © 2016 Steve Sprang <scs@stevesprang.com>
> > +;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
> >  ;;;
> >  ;;; This file is part of GNU Guix.
> >  ;;;
> > @@ -21,11 +22,15 @@
> >    #:use-module (guix packages)
> >    #:use-module (guix download)
> >    #:use-module (guix build-system gnu)
> > +  #:use-module (guix build-system trivial)
> > +  #:use-module (gnu packages base)
> > +  #:use-module (gnu packages compression)
> >    #:use-module (gnu packages ncurses)
> >    #:use-module (gnu packages perl)
> >    #:use-module (gnu packages tls))
> >  
> >  (define-public erlang
> > +  ;; Keep in sync with 'erlang-manpages'!
> >    (package
> >      (name "erlang")
> >      (version "18.3")
> > -- 
> > 2.7.3
> > 
> 
> 
> -- 

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-03-22 20:59                           ` Pjotr Prins
  2016-03-22 21:21                             ` Leo Famulari
@ 2016-03-24  2:41                             ` Leo Famulari
  2016-03-24 16:57                               ` Pjotr Prins
  1 sibling, 1 reply; 24+ messages in thread
From: Leo Famulari @ 2016-03-24  2:41 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: guix-devel

On Tue, Mar 22, 2016 at 09:59:37PM +0100, Pjotr Prins wrote:
> I have used this package to build Elixir, a language on top of the
> Erlang VM. That is a complicated 'test' and so far it runs
> beautifully. I'll add a package for Elixir soon.

I've attached an updated version of the patch. It is functionally the
same as the last patch, except that it moves the manpages into the
erlang package recipe.

The other changes are all stylistic.

Can you check that Elixir still works based on this patch?

Steve, what do you think?

> 
> Thanks!
> 
> Pj.
> 
> On Mon, Mar 21, 2016 at 11:40:46AM -0400, Leo Famulari wrote:
> > On Wed, Mar 16, 2016 at 10:00:21PM -0700, Steve Sprang wrote:
> > > I don't have anything else packaged. I've only dabbled with Erlang myself.
> > > You can start a REPL with:
> > > 
> > > % erl
> > 
> > Okay, I was able to build this on x86_64 and cross-build to i686. Would
> > anyone like the test the build on armhf or mips64el?
> > 
> > I was able to run a "Hello world" program [0]:
> > 
> > ---
> > $ ./pre-inst-env guix environment --pure --ad-hoc erlang -- erl -noshell -eval 'io:fwrite("Hello, world!\n"), init:stop().'
> > Hello, world!
> > ---
> > 
> > The configure script was not finding OpenSSL, so I've modified the
> > package locally to provide the path.
> > 
> > I did something similar for `rm`. Also, I had to provide the path to
> > `sed` in 'erl/bin', which is just a small shell script.
> > 
> > I've attached my changes. What do you think?
> > 
> > The Nix package [1] might show the way for future improvements to this
> > package.
> > 
> > For example, the documentation (man pages) is distributed separately, so
> > I've attached a patch that adds them in their own package. But, they are
> > only 6 megabytes (erlang itself is 100 megabytes), so they should
> > probably be folded into the the erlang package.
> > 
> > [0]
> > http://erlangcentral.org/wiki/index.php/Hello_World
> > 
> > [1]
> > https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/interpreters/erlang/R18.nix
> > 
> > > 
> > > -Steve
> > > On Mar 16, 2016 9:21 PM, "Leo Famulari" <leo@famulari.name> wrote:
> > > 
> > > > On Wed, Mar 16, 2016 at 05:18:57PM -0700, Steve Sprang wrote:
> > > > > Oops, I didn't follow up on this. I made the suggested changes to the
> > > > > patch. I also bumped the version to 18.3, which has subsequently
> > > > > become available.
> > > >
> > > > This is awesome!
> > > >
> > > > Do you have any erlang programs packaged that we can try it out with? Or
> > > > is there some "hello world" thing I can try for this package?
> > > >
> 
> > From cafc65901667dab9a3773f637eba65a43346da1a Mon Sep 17 00:00:00 2001
> > Message-Id: <cafc65901667dab9a3773f637eba65a43346da1a.1458574834.git.leo@famulari.name>
> > From: Steve Sprang <scs@stevesprang.com>
> > Date: Sat, 6 Feb 2016 12:40:53 -0800
> > Subject: [PATCH 1/2] gnu: Add erlang.
> > 
> > * gnu/packages/erlang.scm: New file.
> > * gnu-system.am (GNU_SYSTEM_MODULES): Add it.
> > 
> > Signed-off-by: Leo Famulari <leo@famulari.name>
> > ---
> >  gnu-system.am           |   1 +
> >  gnu/packages/erlang.scm | 127 ++++++++++++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 128 insertions(+)
> >  create mode 100644 gnu/packages/erlang.scm
> > 
> > diff --git a/gnu-system.am b/gnu-system.am
> > index f13a55d..4cc44df 100644
> > --- a/gnu-system.am
> > +++ b/gnu-system.am
> > @@ -102,6 +102,7 @@ GNU_SYSTEM_MODULES =				\
> >    gnu/packages/enchant.scm			\
> >    gnu/packages/engineering.scm			\
> >    gnu/packages/enlightenment.scm		\
> > +  gnu/packages/erlang.scm			\
> >    gnu/packages/fcitx.scm			\
> >    gnu/packages/feh.scm                          \
> >    gnu/packages/figlet.scm			\
> > diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
> > new file mode 100644
> > index 0000000..4f9d6e4
> > --- /dev/null
> > +++ b/gnu/packages/erlang.scm
> > @@ -0,0 +1,127 @@
> > +;;; GNU Guix --- Functional package management for GNU
> > +;;; Copyright © 2016 Steve Sprang <scs@stevesprang.com>
> > +;;;
> > +;;; 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 erlang)
> > +  #:use-module ((guix licenses) #:prefix license:)
> > +  #:use-module (guix packages)
> > +  #:use-module (guix download)
> > +  #:use-module (guix build-system gnu)
> > +  #:use-module (gnu packages ncurses)
> > +  #:use-module (gnu packages perl)
> > +  #:use-module (gnu packages tls))
> > +
> > +(define-public erlang
> > +  (package
> > +    (name "erlang")
> > +    (version "18.3")
> > +    (source (origin
> > +              (method url-fetch)
> > +              (uri (string-append
> > +                    "http://erlang.org/download/otp_src_"
> > +                    version
> > +                    ".tar.gz"))
> > +              (sha256
> > +               (base32
> > +                "1hy9slq9gjvwdb504dmvp6rax90isnky6chqkyq5v4ybl4lq3azx"))))
> > +    (build-system gnu-build-system)
> > +    (native-inputs
> > +     `(("perl" ,perl)))
> > +    (inputs
> > +     `(("ncurses" ,ncurses)
> > +       ("openssl" ,openssl)))
> > +    (arguments
> > +     `(#:configure-flags
> > +       (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl")))
> > +       #:phases
> > +       (modify-phases %standard-phases
> > +	 (add-after 'patch-source-shebangs 'patch-source-env
> > +	   (lambda _
> > +	     (let ((escripts
> > +		    (append
> > +		     (find-files "." "\\.escript")
> > +		     (find-files "lib/stdlib/test/escript_SUITE_data/")
> > +		     '("erts/lib_src/utils/make_atomics_api"
> > +		       "erts/preloaded/src/add_abstract_code"
> > +		       "lib/diameter/bin/diameterc"
> > +		       "lib/reltool/examples/display_args"
> > +		       "lib/reltool/examples/mnesia_core_dump_viewer"
> > +		       "lib/snmp/src/compile/snmpc.src"
> > +		       "make/verify_runtime_dependencies"
> > +		       "make/emd2exml.in"))))
> > +	       (substitute* escripts
> > +		 (("/usr/bin/env") (which "env"))))))
> > +         (add-after 'unpack 'path-to-rm
> > +           (lambda _
> > +             (substitute* "erts/configure"
> > +               (("/bin/rm") (which "rm")))
> > +             (substitute* "lib/odbc/configure"
> > +               (("/bin/rm") (which "rm")))))
> > +         (add-before 'configure 'set-erl-top
> > +           (lambda _
> > +             (setenv "ERL_TOP" (getcwd))))
> > +         (add-after 'install 'patch-erl
> > +           ;; This only works after install.
> > +           (lambda _
> > +             (substitute* (string-append (assoc-ref %outputs "out") "/bin/erl")
> > +               (("sed") (which "sed"))))))
> > +       #:test-target "release_tests"))
> > +    (home-page "http://erlang.org/")
> > +    (synopsis "The Erlang programming language")
> > +    (description
> > +     "Erlang is a programming language used to build massively
> > +scalable soft real-time systems with requirements on high
> > +availability.  Some of its uses are in telecoms, banking, e-commerce,
> > +computer telephony and instant messaging.  Erlang's runtime system has
> > +built-in support for concurrency, distribution and fault tolerance.")
> > +    (license license:asl2.0)))
> > +
> > +(define-public erlang-manpages
> > +  ;; Keep in sync with 'erlang'!
> > +  (package
> > +    (name "erlang-manpages")
> > +    (version (package-version erlang))
> > +    (source (origin
> > +              (method url-fetch)
> > +              (uri (string-append "http://erlang.org/download/otp_doc_man_"
> > +                                  version ".tar.gz"))
> > +              (sha256
> > +               (base32
> > +                "1hpcr7a3dx2y9gnb53bvb4g6lyvbwigadl9s3f978s01x40f32wp"))))
> > +    (build-system trivial-build-system)
> > +    (arguments
> > +     '(#:modules ((guix build utils))
> > +       #:builder
> > +       (begin
> > +         (use-modules (guix build utils))
> > +         (let* ((gz  (assoc-ref %build-inputs "gzip"))
> > +                (tar (assoc-ref %build-inputs "tar"))
> > +                (out (assoc-ref %outputs "out"))
> > +                (man (string-append out "/share/man")))
> > +           (setenv "PATH" (string-append tar "/bin:" gz "/bin"))
> > +           (mkdir-p man)
> > +           (with-directory-excursion man
> > +             (zero? (system* "tar" "xvf"
> > +                             (assoc-ref %build-inputs "source"))))
> > +           (delete-file (string-append man "/PR.template"))
> > +           (delete-file (string-append man "/README"))))))
> > +    (native-inputs `(("tar" ,tar)
> > +                     ("gzip" ,gzip)))
> > +    (synopsis "Man pages of Erlang")
> > +    (description "This provides the man pages of Erlang.")
> > +    (home-page (package-home-page erlang))
> > +    (license license:asl2.0)))
> > -- 
> > 2.7.3
> > 
> 
> > From 5fb31a0190755b728f76775de7cea9cac54bde36 Mon Sep 17 00:00:00 2001
> > Message-Id: <5fb31a0190755b728f76775de7cea9cac54bde36.1458574834.git.leo@famulari.name>
> > In-Reply-To: <cafc65901667dab9a3773f637eba65a43346da1a.1458574834.git.leo@famulari.name>
> > References: <cafc65901667dab9a3773f637eba65a43346da1a.1458574834.git.leo@famulari.name>
> > From: Leo Famulari <leo@famulari.name>
> > Date: Mon, 21 Mar 2016 01:25:57 -0400
> > Subject: [PATCH 2/2] gnu: Add erlang-manpages.
> > 
> > * gnu/packages/erlang.scm (erlang-manpages): New variable.
> > ---
> >  gnu/packages/erlang.scm | 5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/gnu/packages/erlang.scm b/gnu/packages/erlang.scm
> > index 4f9d6e4..e90a7b7 100644
> > --- a/gnu/packages/erlang.scm
> > +++ b/gnu/packages/erlang.scm
> > @@ -1,5 +1,6 @@
> >  ;;; GNU Guix --- Functional package management for GNU
> >  ;;; Copyright © 2016 Steve Sprang <scs@stevesprang.com>
> > +;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
> >  ;;;
> >  ;;; This file is part of GNU Guix.
> >  ;;;
> > @@ -21,11 +22,15 @@
> >    #:use-module (guix packages)
> >    #:use-module (guix download)
> >    #:use-module (guix build-system gnu)
> > +  #:use-module (guix build-system trivial)
> > +  #:use-module (gnu packages base)
> > +  #:use-module (gnu packages compression)
> >    #:use-module (gnu packages ncurses)
> >    #:use-module (gnu packages perl)
> >    #:use-module (gnu packages tls))
> >  
> >  (define-public erlang
> > +  ;; Keep in sync with 'erlang-manpages'!
> >    (package
> >      (name "erlang")
> >      (version "18.3")
> > -- 
> > 2.7.3
> > 
> 
> 
> -- 

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: [PATCH] gnu: Add erlang.
  2016-03-24  2:41                             ` Leo Famulari
@ 2016-03-24 16:57                               ` Pjotr Prins
  2016-03-24 22:53                                 ` gnu: Add elixir. (WIP) Pjotr Prins
  0 siblings, 1 reply; 24+ messages in thread
From: Pjotr Prins @ 2016-03-24 16:57 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

On Wed, Mar 23, 2016 at 10:41:25PM -0400, Leo Famulari wrote:
> On Tue, Mar 22, 2016 at 09:59:37PM +0100, Pjotr Prins wrote:
> > I have used this package to build Elixir, a language on top of the
> > Erlang VM. That is a complicated 'test' and so far it runs
> > beautifully. I'll add a package for Elixir soon.
> 
> I've attached an updated version of the patch. It is functionally the
> same as the last patch, except that it moves the manpages into the
> erlang package recipe.
> 
> The other changes are all stylistic.
> 
> Can you check that Elixir still works based on this patch?

Yes, it is fine :)

Finished in 25.0 seconds (14.4s on load, 10.6s on tests)
2845 tests, 0 failures

Pj.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* gnu: Add elixir. (WIP)
  2016-03-24 16:57                               ` Pjotr Prins
@ 2016-03-24 22:53                                 ` Pjotr Prins
  2016-03-25 16:50                                   ` Leo Famulari
  0 siblings, 1 reply; 24+ messages in thread
From: Pjotr Prins @ 2016-03-24 22:53 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 264 bytes --]

Attached the package for the Elixir language based on the upcoming
Erlang package. It fails 12 tests out of 2845, mostly temporary files
in the wrong place. I'll fix that at some point, but this is happy on
my systems. 

Couchdb anyone? Also based on Erlang.

Pj.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: elixir.scm --]
[-- Type: text/plain; charset=utf-8, Size: 2817 bytes --]

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;;
;;; 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 (gn packages elixir)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu)
  #:use-module (gn packages erlang)
  #:use-module (gnu packages ncurses)
  #:use-module (gnu packages perl)
  #:use-module (gnu packages tls))

(define-public elixir
  (package
    (name "elixir")
    (version "1.2.3")
    (source (origin
              (method url-fetch)
              (uri (string-append
                    "https://github.com/elixir-lang/elixir/archive/v"
                    version ".tar.gz"))
              (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
                "09s8469830s4070i0m04fxdhqimkdyc5k9jylm5vpfz9l3z4wvl8"))))
    (build-system gnu-build-system)
    (inputs
     `(("erlang" ,erlang)))
    (arguments
     `(#:phases (modify-phases %standard-phases
         (delete 'configure)
         (add-before
          'build 'rewrite-path
          (lambda* (#:key inputs #:allow-other-keys)
                   (substitute* "bin/elixir"
                     (("ERL_EXEC=\"erl\"") (string-append "ERL_EXEC=" (which "erl"))))))                           
        ;; (replace 'check
        ;;          (lambda _
        ;;           (zero? (system* "make" "test")))))))
        )
       #:make-flags (list (string-append "PREFIX=" %output))
       #:tests? #f)) ;; 2845 tests, 12 failures
    (home-page "http://elixir-lang.org/")
    (synopsis "The Elixir programming language")
(description "Elixir is a dynamic, functional language designed for
building scalable and maintainable applications. Elixir leverages the
Erlang VM, known for running low-latency, distributed and
fault-tolerant systems, while also being successfully used in web
development and the embedded software domain.")
    (license license:asl2.0)))

^ permalink raw reply	[flat|nested] 24+ messages in thread

* Re: gnu: Add elixir. (WIP)
  2016-03-24 22:53                                 ` gnu: Add elixir. (WIP) Pjotr Prins
@ 2016-03-25 16:50                                   ` Leo Famulari
  0 siblings, 0 replies; 24+ messages in thread
From: Leo Famulari @ 2016-03-25 16:50 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: guix-devel

On Thu, Mar 24, 2016 at 11:53:56PM +0100, Pjotr Prins wrote:
> Attached the package for the Elixir language based on the upcoming
> Erlang package. It fails 12 tests out of 2845, mostly temporary files
> in the wrong place. I'll fix that at some point, but this is happy on
> my systems. 

Cool!

> ;;; GNU Guix --- Functional package management for GNU
> ;;; Copyright ? 2016 Pjotr Prins <pjotr.guix@thebird.nl>
> ;;; Copyright ? 2016 Leo Famulari <leo@famulari.name>

Too generous ;)

>         ;; (replace 'check
>         ;;          (lambda _
>         ;;           (zero? (system* "make" "test")))))))
>         )

Whenever the tests are re-enabled, could you use #:test-target "test"
instead?

>        #:make-flags (list (string-append "PREFIX=" %output))
>        #:tests? #f)) ;; 2845 tests, 12 failures
>     (home-page "http://elixir-lang.org/")
>     (synopsis "The Elixir programming language")
> (description "Elixir is a dynamic, functional language designed for
> building scalable and maintainable applications. Elixir leverages the
> Erlang VM, known for running low-latency, distributed and
> fault-tolerant systems, while also being successfully used in web
> development and the embedded software domain.")
>     (license license:asl2.0)))

^ permalink raw reply	[flat|nested] 24+ messages in thread

* bug#19439: [PATCH] gnu: Add erlang.
  2016-01-07  9:56         ` Andy Wingo
  2016-02-06 20:45           ` Steve Sprang
@ 2016-06-22 19:42           ` Andy Wingo
  1 sibling, 0 replies; 24+ messages in thread
From: Andy Wingo @ 2016-06-22 19:42 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel, 19439-done, guile-devel, Steve Sprang

Backported to 2.0 in c5dac3595f42afbd76ab9110d7473bf4d16b0520 by
Ludovic; closing bug.

On Thu 07 Jan 2016 10:56, Andy Wingo <wingo@igalia.com> writes:

> On Wed 06 Jan 2016 17:07, ludo@gnu.org (Ludovic Courtès) writes:
>
>> On Mon 04 Jan 2016 06:20, Steve Sprang <steve.sprang@gmail.com> writes:
>>
>>> From http://www.erlang.org/download/otp_src_18.2.1.tar.gz...
>>> ERROR: Bad qstring header component: kMSMAn68110840
>>
>> I think we should implement the proposed change.  Could you look
>> into it?
>
> Done on master in 6d7c09c8a9900794a855b9c69c57c3d1736506ed.  I'd
> cherry-pick back to 2.0 but I don't have a checkout on this machine;
> please feel free :)
>
> Cheers,
>
> Andy

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2016-06-22 19:42 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-04  3:56 [PATCH] gnu: Add erlang Steve Sprang
2016-01-04  4:39 ` Leo Famulari
2016-01-04  5:20   ` Steve Sprang
2016-01-04  6:23     ` Leo Famulari
2016-01-04 11:44     ` Andy Wingo
2016-01-04 12:13       ` Nala Ginrut
2016-01-06 16:07       ` bug#19439: " Ludovic Courtès
2016-01-06 16:07       ` Ludovic Courtès
2016-01-07  9:56         ` Andy Wingo
2016-02-06 20:45           ` Steve Sprang
2016-02-13  0:44             ` Leo Famulari
2016-02-13 21:12               ` Efraim Flashner
2016-02-21 20:54                 ` Ludovic Courtès
2016-03-17  0:18                   ` Steve Sprang
2016-03-17  4:21                     ` Leo Famulari
2016-03-17  5:00                       ` Steve Sprang
2016-03-21 15:40                         ` Leo Famulari
2016-03-22 20:59                           ` Pjotr Prins
2016-03-22 21:21                             ` Leo Famulari
2016-03-24  2:41                             ` Leo Famulari
2016-03-24 16:57                               ` Pjotr Prins
2016-03-24 22:53                                 ` gnu: Add elixir. (WIP) Pjotr Prins
2016-03-25 16:50                                   ` Leo Famulari
2016-06-22 19:42           ` bug#19439: [PATCH] gnu: Add erlang Andy Wingo

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.