Re: [PATCH 42/42] gnu: Add darcs.

2016-09-26 Thread Leo Famulari
On Fri, Sep 23, 2016 at 02:27:28AM -0400, Leo Famulari wrote:
> On Wed, Sep 21, 2016 at 08:27:47AM +, ng0 wrote:
> > ;; 
> > http://darcs.net/manual/Configuring_darcs.html#SECTION00440070
> 
> Based on that link to the Darcs manual, my understanding is that users
> must provide Darcs with a set of URL handlers in the form of shell
> invocations in environment variables.

I was wrong; those variables are no longer used by Darcs. HTTPS should
"just work".

Here I am using Darcs from Debian Stretch:
$ darcs clone --debug-http 
https://dev.seek-together.space/s/fr33domlover/r/vervis
*   Trying 188.120.157.6...
* Connected to dev.seek-together.space (188.120.157.6) port 443 (#0)
* found 173 certificates in /etc/ssl/certs/ca-certificates.crt
* found 692 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_256_GCM_SHA384
*server certificate verification OK
*server certificate status verification SKIPPED
*common name: dev.seek-together.space (matched)
*server certificate expiration date OK
*server certificate activation date OK
*certificate public key: RSA
*certificate version: #3
*subject: CN=dev.seek-together.space
*start date: Tue, 09 Aug 2016 12:20:00 GMT
*expire date: Mon, 07 Nov 2016 12:20:00 GMT
*issuer: C=US,O=Let's Encrypt,CN=Let's Encrypt Authority X3
*compression: NULL
* ALPN, server did not agree to a protocol
> GET /s/fr33domlover/r/vervis/_darcs/prefs/motd HTTP/1.1
Host: dev.seek-together.space
User-Agent: darcs/2.12.0 libcurl/7.47.0
Accept: */*
Cache-Control: max-age=600

[... et cetera ...]

But, with the WIP Guix package, our libcurl does not find the
certificate store:

$ darcs clone --debug-http 
https://dev.seek-together.space/s/fr33domlover/r/vervis
*   Trying 188.120.157.6...
* TCP_NODELAY set
* Connected to dev.seek-together.space (188.120.157.6) port 443 (#0)
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_256_GCM_SHA384
* server certificate verification failed. CAfile: none CRLfile: none
* Curl_http_done: called premature == 1
* Closing connection 0
* Hostname dev.seek-together.space was found in DNS cache
*   Trying 188.120.157.6...
* TCP_NODELAY set
* Connected to dev.seek-together.space (188.120.157.6) port 443 (#1)
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_256_GCM_SHA384
* server certificate verification failed. CAfile: none CRLfile: none
* Curl_http_done: called premature == 1
* Closing connection 1
* Hostname dev.seek-together.space was found in DNS cache
*   Trying 188.120.157.6...
* TCP_NODELAY set
* Connected to dev.seek-together.space (188.120.157.6) port 443 (#2)
* ALPN, offering http/1.1
* SSL connection using TLS1.2 / ECDHE_RSA_AES_256_GCM_SHA384
* server certificate verification failed. CAfile: none CRLfile: none
* Curl_http_done: called premature == 1
* Closing connection 2

darcs failed:  Not a repository: 
https://dev.seek-together.space/s/fr33domlover/r/vervis (Peer certificate 
cannot be authenticated with given CA certificates)

HINT: Do you have the right URI for the repository?



Re: [PATCH 42/42] gnu: Add darcs.

2016-09-24 Thread ng0
Leo Famulari  writes:

> On Fri, Sep 23, 2016 at 08:08:37PM +, ng0 wrote:
>> Leo Famulari  writes:
>> 
>> > On Fri, Sep 23, 2016 at 09:12:33AM +, ng0 wrote:
>> >> I also think for reference we should keep the versions of packages it
>> >> needs as they are so many. On the other hand hackage keeps the list of
>> >> dependencies and versions of those, so... should I send a patch removing
>> >> these comments?
>> >
>> > I think it's better to say how to learn that information. What's there
>> > now will become obsolete sooner or later, and it's not clear to me how I
>> > could update the information.
>> >
>> 
>> That's just taken directly from hackage and/or the initial error output
>> and/or the haskell setup file.
>> 
>> Should I adjust it? For me the source is 'normal' you find this
>> information when you look for the application:
>> https://hackage.haskell.org/package/darcs-2.12.4
>
> It looks like hackage provides that version information for many of
> their packages. So, I don't think we need to include it in our Darcs
> package.
>
I Agree. You might want to check on (inputs (ghc)) as I have not checked
again if this is already provided by the build-system.

From 2367b485b7fad2b3220610c01e71acc781a83220 Mon Sep 17 00:00:00 2001
From: ng0 
Date: Sun, 4 Sep 2016 16:10:02 +
Subject: [PATCH] gnu: Add darcs.

* gnu/packages/version-control.scm (darcs): New variable.
---
 gnu/packages/version-control.scm | 96 +++-
 1 file changed, 95 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 29559bd..082640d 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -10,7 +10,7 @@
 ;;; Copyright © 2015 Kyle Meyer 
 ;;; Copyright © 2015 Ricardo Wurmus 
 ;;; Copyright © 2016 Leo Famulari 
-;;; Copyright © 2016 ng0 
+;;; Copyright © 2016 ng0 
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,6 +35,7 @@
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system haskell)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages apr)
@@ -50,6 +51,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages groff)
+  #:use-module (gnu packages haskell)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages nano)
   #:use-module (gnu packages ncurses)
@@ -1249,3 +1251,95 @@ a built-in wiki, built-in file browsing, built-in tickets system, etc.")
 (description "Stagit creates static pages for git repositories, the results can
 be served with a HTTP file server of your choice.")
 (license license:expat)))
+
+;; Darcs has no https support: http://irclog.perlgeek.de/darcs/2016-09-17
+;; http://darcs.net/manual/Configuring_darcs.html#SECTION00440070
+;; and results of search engines will show that if the protocol is http, https
+;; is never mentioned.
+(define-public darcs
+  (package
+(name "darcs")
+(version "2.12.4")
+(source (origin
+  (method url-fetch)
+  (uri (string-append "https://hackage.haskell.org/package/darcs/;
+  "darcs-" version ".tar.gz"))
+  (sha256
+   (base32
+"0jfwiwl5k8wspciq1kpmvh5yap4japrf97s9pvhcybxxhaj3ds28"
+(build-system haskell-build-system)
+(arguments
+ `(#:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded"
+   "-fnetwork-uri" "-fhttp" "--flag=executable"
+   "--flag=library")
+   ;; 20 failing shell tests out of over 400. We seem to be unable to
+   ;; get the file which should show us more about the failures.
+   #:tests? #f))
+(inputs
+ `(("ghc-cmdargs" ,ghc-cmdargs)
+   ("ghc-split" ,ghc-split)
+   ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
+   ("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
+   ("ghc-test-framework" ,ghc-test-framework)
+   ("ghc-quickcheck" ,ghc-quickcheck)
+   ("ghc-findbin" ,ghc-findbin)
+   ("ghc-hunit" ,ghc-hunit)
+   ("ghc-array" ,ghc-array)
+   ("ghc-async" ,ghc-async)
+   ("ghc-attoparsec" ,ghc-attoparsec)
+   ("ghc-base16-bytestring" ,ghc-base16-bytestring)
+   ("ghc-binary" ,ghc-binary)
+   ("ghc-bytestring-builder" ,ghc-bytestring-builder)
+   ("ghc-cryptohash" ,ghc-cryptohash)
+   ("ghc-data-ordlist" ,ghc-data-ordlist)
+   ("ghc-directory" ,ghc-directory)
+   ("ghc-fgl" ,ghc-fgl)
+   ("ghc-system-filepath" ,ghc-system-filepath)
+   ("ghc-graphviz" ,ghc-graphviz)
+   ("ghc-hashable" ,ghc-hashable)
+   

Re: [PATCH 42/42] gnu: Add darcs.

2016-09-23 Thread Leo Famulari
On Fri, Sep 23, 2016 at 08:08:37PM +, ng0 wrote:
> Leo Famulari  writes:
> 
> > On Fri, Sep 23, 2016 at 09:12:33AM +, ng0 wrote:
> >> I also think for reference we should keep the versions of packages it
> >> needs as they are so many. On the other hand hackage keeps the list of
> >> dependencies and versions of those, so... should I send a patch removing
> >> these comments?
> >
> > I think it's better to say how to learn that information. What's there
> > now will become obsolete sooner or later, and it's not clear to me how I
> > could update the information.
> >
> 
> That's just taken directly from hackage and/or the initial error output
> and/or the haskell setup file.
> 
> Should I adjust it? For me the source is 'normal' you find this
> information when you look for the application:
> https://hackage.haskell.org/package/darcs-2.12.4

It looks like hackage provides that version information for many of
their packages. So, I don't think we need to include it in our Darcs
package.



Re: [PATCH 42/42] gnu: Add darcs.

2016-09-23 Thread ng0
Leo Famulari  writes:

> On Fri, Sep 23, 2016 at 09:12:33AM +, ng0 wrote:
>> I also think for reference we should keep the versions of packages it
>> needs as they are so many. On the other hand hackage keeps the list of
>> dependencies and versions of those, so... should I send a patch removing
>> these comments?
>
> I think it's better to say how to learn that information. What's there
> now will become obsolete sooner or later, and it's not clear to me how I
> could update the information.
>

That's just taken directly from hackage and/or the initial error output
and/or the haskell setup file.

Should I adjust it? For me the source is 'normal' you find this
information when you look for the application:
https://hackage.haskell.org/package/darcs-2.12.4
-- 
  ng0



Re: [PATCH 42/42] gnu: Add darcs.

2016-09-23 Thread Leo Famulari
On Fri, Sep 23, 2016 at 09:12:33AM +, ng0 wrote:
> I also think for reference we should keep the versions of packages it
> needs as they are so many. On the other hand hackage keeps the list of
> dependencies and versions of those, so... should I send a patch removing
> these comments?

I think it's better to say how to learn that information. What's there
now will become obsolete sooner or later, and it's not clear to me how I
could update the information.



Re: [PATCH 42/42] gnu: Add darcs.

2016-09-23 Thread ng0
Leo Famulari  writes:

> On Tue, Sep 20, 2016 at 09:44:49PM -0400, Leo Famulari wrote:
>> On Sun, Sep 18, 2016 at 04:10:22PM +, ng0 wrote:
>> > * gnu/packages/version-control.scm (darcs): New variable.
>
> I just pushed most of the patches in this series, except for darcs, with
> the changes I suggested.

Many thanks!

> I did not push the darcs patch itself yet. I will look into that later
> today.
>
> I also did not push ghc-directory@1.2.2.0 because it is unused.
>

Okay.

I think in darcs the configure flags can be shortened to 2 lines if the
-f instead of --flag is used, as explained on the hackage page, but this
is just cosmetic.
I also think for reference we should keep the versions of packages it
needs as they are so many. On the other hand hackage keeps the list of
dependencies and versions of those, so... should I send a patch removing
these comments?
-- 
  ng0



Re: [PATCH 42/42] gnu: Add darcs.

2016-09-22 Thread Leo Famulari
On Tue, Sep 20, 2016 at 09:44:49PM -0400, Leo Famulari wrote:
> On Sun, Sep 18, 2016 at 04:10:22PM +, ng0 wrote:
> > * gnu/packages/version-control.scm (darcs): New variable.

I just pushed most of the patches in this series, except for darcs, with
the changes I suggested.

I did not push the darcs patch itself yet. I will look into that later
today.

I also did not push ghc-directory@1.2.2.0 because it is unused.



Re: [PATCH 42/42] gnu: Add darcs.

2016-09-21 Thread ng0
Leo Famulari  writes:

> On Sun, Sep 18, 2016 at 04:10:22PM +, ng0 wrote:
>> * gnu/packages/version-control.scm (darcs): New variable.
>
>> +;; Darcs has no https support: http://irclog.perlgeek.de/darcs/2016-09-17
>> +;; 
>> http://darcs.net/manual/Configuring_darcs.html#SECTION00440070
>> +;; and results of search engines will show that if the protocol is http, 
>> https
>> +;; is never mentioned.
>> +(define-public darcs
>> +  (package
>> +(name "darcs")
>> +(version "2.12.4")
>> +(source (origin
>> +  (method url-fetch)
>> +  (uri (string-append 
>> "https://hackage.haskell.org/package/darcs/;
>> +  "darcs-" version ".tar.gz"))
>> +  (sha256
>> +   (base32
>> +"0jfwiwl5k8wspciq1kpmvh5yap4japrf97s9pvhcybxxhaj3ds28"
>> +(build-system haskell-build-system)
>> +(arguments
>> + `(#:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded"
>> +   "-fnetwork-uri" "-fhttp" "--flag=executable"
>> +   "--flag=library")
>> +   #:tests? #f)) ; 20 failing shell tests out of over 400
>
> When the test suite fails, it provides a path to the log of the test
> suite. I built with --keep-failed to inspect the log, but the file does
> not exist.
>
> Since the test suite is not passing, and there is no log of the tests,
> it's hard to decide what to do :)

Strange. Can you add a comment for this in the package, so we can fix it
eventually?

> Does this darcs package work for your use case? Does anyone have advice?
>

Additionally: Should the complete commented inputs go? They are parts of
base of ghc, but then again they display what ghc needs.

So far I was able to "darcs get http://pijul.org;, I have not signed up
at a darcs hosting to push, I thought someone will report a bug when a
feature of darcs is broken. My use case worked.

For all the other packages: The changes are okay for me.

For @ version: The error message Guix throws should be extended. I am
doing "-" versions, but I've also seen "@" versions in the code and was
confused by the message guix gave me so I switched them to @.

Thanks for reviewing this huge bundle!
-- 
  ng0



Re: [PATCH 42/42] gnu: Add darcs.

2016-09-20 Thread Leo Famulari
On Sun, Sep 18, 2016 at 04:10:22PM +, ng0 wrote:
> * gnu/packages/version-control.scm (darcs): New variable.

> +;; Darcs has no https support: http://irclog.perlgeek.de/darcs/2016-09-17
> +;; http://darcs.net/manual/Configuring_darcs.html#SECTION00440070
> +;; and results of search engines will show that if the protocol is http, 
> https
> +;; is never mentioned.
> +(define-public darcs
> +  (package
> +(name "darcs")
> +(version "2.12.4")
> +(source (origin
> +  (method url-fetch)
> +  (uri (string-append 
> "https://hackage.haskell.org/package/darcs/;
> +  "darcs-" version ".tar.gz"))
> +  (sha256
> +   (base32
> +"0jfwiwl5k8wspciq1kpmvh5yap4japrf97s9pvhcybxxhaj3ds28"
> +(build-system haskell-build-system)
> +(arguments
> + `(#:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded"
> +   "-fnetwork-uri" "-fhttp" "--flag=executable"
> +   "--flag=library")
> +   #:tests? #f)) ; 20 failing shell tests out of over 400

When the test suite fails, it provides a path to the log of the test
suite. I built with --keep-failed to inspect the log, but the file does
not exist.

Since the test suite is not passing, and there is no log of the tests,
it's hard to decide what to do :)

Does this darcs package work for your use case? Does anyone have advice?