unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] gnu: Add epic5.
@ 2016-09-24 13:04 ng0
  2016-09-25 17:13 ` Leo Famulari
  0 siblings, 1 reply; 16+ messages in thread
From: ng0 @ 2016-09-24 13:04 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 371 bytes --]

I tried to get ssl working via:
- patching include/config.h
- just export the variable which was in include/config.h without
  patching it.

but it seems like epic5 does something different which 'justworks™' in
ircii. epic5 is based on ircii.
If ssl is mandatory, I'll check their git repository and see if there
have been any commits recently fixing this.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-licenses-Add-epic.patch --]
[-- Type: text/x-patch, Size: 1298 bytes --]

From 04cd790b1b08fe9fe09dddd896db267c78640872 Mon Sep 17 00:00:00 2001
From: ng0 <ng0@we.make.ritual.n0.is>
Date: Tue, 13 Sep 2016 23:45:21 +0000
Subject: [PATCH 1/2] licenses: Add epic.

* guix/licenses.scm (epic): New variable.
---
 guix/licenses.scm | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/guix/licenses.scm b/guix/licenses.scm
index 265f048..4abd539 100644
--- a/guix/licenses.scm
+++ b/guix/licenses.scm
@@ -40,6 +40,7 @@
             artistic2.0 clarified-artistic
             copyleft-next
             cpl1.0
+            epic
             epl1.0
             expat
             freetype
@@ -209,6 +210,14 @@ at URI, which may be a file:// URI pointing the package's tree."
            "http://directory.fsf.org/wiki/License:CPLv1.0"
            "https://www.gnu.org/licenses/license-list#CommonPublicLicense10"))
 
+;; The epic license is equal to the standard three-clause BSD license except
+;; that you are not permitted to remove the "Redistribution is permitted"
+;; clause of the license if you distribute binaries.
+(define epic
+  (license "epic"
+           "http://epicsol.org/copyright"
+           #f))
+
 (define epl1.0
   (license "EPL 1.0"
            "http://directory.fsf.org/wiki/License:EPLv1.0"
-- 
2.10.0


[-- Attachment #1.3: 0002-gnu-Add-epic5.patch --]
[-- Type: text/x-patch, Size: 5014 bytes --]

From f61b13ef79a6f05ec358652fa428324d7b2858d9 Mon Sep 17 00:00:00 2001
From: ng0 <ng0@we.make.ritual.n0.is>
Date: Tue, 13 Sep 2016 23:46:16 +0000
Subject: [PATCH 2/2] gnu: Add epic5.

* gnu/packages/irc.scm (epic5): New variable.
---
 gnu/packages/irc.scm | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 79 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 786cfbc..a108b2a 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
 ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Copyright © 2016 ng0 <ngillmann@runbox.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -31,9 +31,11 @@
   #:use-module (gnu packages autogen)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages file)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -46,6 +48,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages tls))
@@ -291,3 +294,78 @@ and extensible with plugins and scripts.")
     (description
      "sic is a simple IRC client, even more minimalistic than ii.")
     (license license:expat)))
+
+(define-public epic5
+  (package
+    (name "epic5")
+    (version "2.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://ftp.epicsol.org/pub/epic/EPIC5-PRODUCTION/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1ap73d5f4vccxjaaq249zh981z85106vvqmxfm4plvy76b40y9jm"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-perl
+           (lambda _
+             (substitute* "regress/crash-irc"
+               (("perl5") (which "perl")))))
+         (add-after 'unpack 'patch-bsdinstall
+           ;; We should include this in the build-system, bsdinstall is a standard.
+           ;; If we just remove /bin/ some part of the bsdinstall breaks.
+           (lambda _
+             (substitute* "bsdinstall"
+               (("/bin/strip") "strip")
+               (("/bin/cp") "cp")
+               (("/bin/chmod") "chmod")
+               (("/etc/chown") "chown")
+               (("/bin/chgrp") "chgrp")
+               (("/bin/mkdir") "mkdir")
+               (("/bin/rm") "rm")
+               (("/bin/mv") "mv")
+               (("/etc/") ""))))
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; The tarball uses a very old version of autconf. It doesn't
+             ;; understand extra flags like `--enable-fast-install', so
+             ;; we need to invoke it with just what it understands.
+             (let ((out (assoc-ref outputs "out")))
+               ;; 'configure' doesn't understand '--host'.
+               ,@(if (%current-target-system)
+                     `((setenv "CHOST" ,(%current-target-system)))
+                     '())
+               (setenv "CONFIG_SHELL" (which "bash"))
+               (setenv "SHELL" (which "bash"))
+               (zero?
+                (system* "./configure"
+                         (string-append "--prefix=" out)
+                         "--with-ipv6" "--with-libarchive"
+                         "--with-ssl"
+                         (string-append "--with-tcl="
+                                        (assoc-ref %build-inputs "tcl")
+                                        "/lib/tclConfig.sh")))))))))
+    (inputs
+     `(("openssl" ,openssl)
+       ("ncurses" ,ncurses)
+       ("libarchive" ,libarchive)
+       ("perl" ,perl)
+       ("tcl" ,tcl)
+       ("ruby" ,ruby)
+       ("gdbm" ,gdbm)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://epicsol.org")
+    (synopsis "Epic5 IRC Client")
+    (description
+     "EPIC is a IRC client that has been under active development for 20+ years
+in 5 generations.  It is stable and mature, and offers an excellent ircII
+interface for those of us who are accustomed to the ircII way of doing things.")
+    (license (list license:epic
+                   license:bsd-3
+                   license:isc
+                   license:bsd-4))))
-- 
2.10.0


[-- Attachment #1.4: Type: text/plain, Size: 24 bytes --]

-- 
              ng0

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 800 bytes --]

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

* Re: [PATCH] gnu: Add epic5.
  2016-09-24 13:04 ng0
@ 2016-09-25 17:13 ` Leo Famulari
  2016-09-25 19:27   ` ng0
  0 siblings, 1 reply; 16+ messages in thread
From: Leo Famulari @ 2016-09-25 17:13 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel

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

On Sat, Sep 24, 2016 at 01:04:47PM +0000, ng0 wrote:
> I tried to get ssl working via:
> - patching include/config.h
> - just export the variable which was in include/config.h without
>   patching it.
> 
> but it seems like epic5 does something different which 'justworks™' in
> ircii. epic5 is based on ircii.
> If ssl is mandatory, I'll check their git repository and see if there
> have been any commits recently fixing this.

In general, SSL / TLS support is not mandatory for packages that do
network traffic. But, users should not be misled into thinking that they
are using TLS when it doesn't work.

So, what happens when you use this epic5 to connect to an IRC server
that uses TLS?

Does it fail silently? That's not okay.

> Subject: [PATCH 1/2] licenses: Add epic.
> 
> * guix/licenses.scm (epic): New variable.

Does anything else use this license? If not, I would leave it out and
use non-copyleft for the epic5 package license.

> Subject: [PATCH 2/2] gnu: Add epic5.
> 
> * gnu/packages/irc.scm (epic5): New variable.

> +         (add-after 'unpack 'patch-bsdinstall
> +           ;; We should include this in the build-system, bsdinstall is a standard.
> +           ;; If we just remove /bin/ some part of the bsdinstall breaks.
> +           (lambda _
> +             (substitute* "bsdinstall"
> +               (("/bin/strip") "strip")
> +               (("/bin/cp") "cp")
> +               (("/bin/chmod") "chmod")
> +               (("/etc/chown") "chown")
> +               (("/bin/chgrp") "chgrp")
> +               (("/bin/mkdir") "mkdir")
> +               (("/bin/rm") "rm")
> +               (("/bin/mv") "mv")
> +               (("/etc/") ""))))

"/etc/" is not an executable path. Do we need to substitute it here?
What happens when you don't change that line?

> +               (zero?
> +                (system* "./configure"
> +                         (string-append "--prefix=" out)
> +                         "--with-ipv6" "--with-libarchive"

What does it use libarchive for? What happens if we leave it out?

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

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

* Re: [PATCH] gnu: Add epic5.
  2016-09-25 17:13 ` Leo Famulari
@ 2016-09-25 19:27   ` ng0
  2016-10-06 22:02     ` ng0
  0 siblings, 1 reply; 16+ messages in thread
From: ng0 @ 2016-09-25 19:27 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

Leo Famulari <leo@famulari.name> writes:

> [ Unknown signature status ]
> On Sat, Sep 24, 2016 at 01:04:47PM +0000, ng0 wrote:
>> I tried to get ssl working via:
>> - patching include/config.h
>> - just export the variable which was in include/config.h without
>>   patching it.
>> 
>> but it seems like epic5 does something different which 'justworks™' in
>> ircii. epic5 is based on ircii.
>> If ssl is mandatory, I'll check their git repository and see if there
>> have been any commits recently fixing this.
>
> In general, SSL / TLS support is not mandatory for packages that do
> network traffic. But, users should not be misled into thinking that they
> are using TLS when it doesn't work.
>
> So, what happens when you use this epic5 to connect to an IRC server
> that uses TLS?
>
> Does it fail silently? That's not okay.

No, it fails with (for me) cryptic failures like ircII used to do. You
can try it out yourself by comparing ircii and epic5 while trying
chat.freenode.net 6697

unset IRCSERVER; epic5 chat.freenode.net -p 6697
output:

*** I can't find your mailbox.
*** Performing DNS lookup for [chat.freenode.net] (server 0)
*** DNS lookup for server 0 [chat.freenode.net] returned (15) addresses
*** Connecting to server refnum 0 (chat.freenode.net), using address 1 (164.132.77.237:6697)
*** INFO -- unix_recv: read(3) failed: Connection reset by peer
*** INFO -- new_io_event: fd 3 must be closed
*** INFO -- dgets: fd [3] must be closed
*** Connection closed from chat.freenode.net


... I assume that epic5 just isn't up to date or does handle something
differently which ircii succeeds with. ircii added this
functionality/variable:
export IRCSERVER="SSLIRC/chat.freenode.net:6697"
                                            |
so if you prepend "SSLIRC/" and use         |
:whatever-port-the-networks-ircs-port-is ----
you get a connection to ircs, otherwise it fails.
Best is to try this yourself for comparing outputs.

>> Subject: [PATCH 1/2] licenses: Add epic.
>> 
>> * guix/licenses.scm (epic): New variable.
>
> Does anything else use this license? If not, I would leave it out and
> use non-copyleft for the epic5 package license.
>
>> Subject: [PATCH 2/2] gnu: Add epic5.
>> 
>> * gnu/packages/irc.scm (epic5): New variable.
>
>> +         (add-after 'unpack 'patch-bsdinstall
>> +           ;; We should include this in the build-system, bsdinstall is a standard.
>> +           ;; If we just remove /bin/ some part of the bsdinstall breaks.
>> +           (lambda _
>> +             (substitute* "bsdinstall"
>> +               (("/bin/strip") "strip")
>> +               (("/bin/cp") "cp")
>> +               (("/bin/chmod") "chmod")
>> +               (("/etc/chown") "chown")
>> +               (("/bin/chgrp") "chgrp")
>> +               (("/bin/mkdir") "mkdir")
>> +               (("/bin/rm") "rm")
>> +               (("/bin/mv") "mv")
>> +               (("/etc/") ""))))
>
> "/etc/" is not an executable path. Do we need to substitute it here?
> What happens when you don't change that line?

bsdinstalls has a reference to /etc/chmod there - if we leave /etc/ in,
install fails.

>> +               (zero?
>> +                (system* "./configure"
>> +                         (string-append "--prefix=" out)
>> +                         "--with-ipv6" "--with-libarchive"
>
> What does it use libarchive for? What happens if we leave it out?

I added it because of our "maximum features" goal.

UPDATES:1473:*** News 01/03/2008 -- $info(o) values for libarchive, iconv support
UPDATES:1474:   If the binary supports libarchive, $info(o) will include 'r'.
UPDATES:1509:*** News 11/29/2007 -- Support for ZIP files from libarchive
UPDATES:1529:   All of this is based on 'libarchive' being installed.  You will need
UPDATES:1530:   to re-run configure in order to pick up libarchive support after you

Details:

*** News 01/03/2008 -- $info(o) values for libarchive, iconv support
        If the binary supports libarchive, $info(o) will include 'r'.
        If the binary supports iconv, $info(o) will include 'v'.
        Libarchive support is required to /load from a .zip file
        Iconv support is required to be able to do character set translation.

*** News 11/29/2007 -- Support for ZIP files from libarchive
        Support for loading files from .zip files has been added.  This first
        round of implementation just adds the raw ability, but it's not 
        totaly ready to be used yet.  You're welcome to start playing with
        it and reporting any problems you have.

        You can $open() a file for reading or /load it from a zip file:
                /load foo.zip/file
        and
                @fd = open(foo.zip/file R)

        If you /load a zip file, it will load the file ".ircrc" in the top
        level directory.  This might be enahanced or changed in the future:
                /load foo.zip
        acts like
                /load foo.zip/.ircrc

        Some operations cannot be performed on zipped files, such as $fseek()
        and $frewind() and so forth.  This might change in the future.

        All of this is based on 'libarchive' being installed.  You will need
        to re-run configure in order to pick up libarchive support after you
        do a cvs update.
-- 
              ng0

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

* Re: [PATCH] gnu: Add epic5.
  2016-09-25 19:27   ` ng0
@ 2016-10-06 22:02     ` ng0
  2016-10-07  1:09       ` Leo Famulari
  0 siblings, 1 reply; 16+ messages in thread
From: ng0 @ 2016-10-06 22:02 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

Hi,

you are probably busy so I'd like to ask if this requires further
changes or if it is good to go. Someone else can review it too.

Thanks

ng0 <ngillmann@runbox.com> writes:

> Leo Famulari <leo@famulari.name> writes:
>
>> [ Unknown signature status ]
>> On Sat, Sep 24, 2016 at 01:04:47PM +0000, ng0 wrote:
>>> I tried to get ssl working via:
>>> - patching include/config.h
>>> - just export the variable which was in include/config.h without
>>>   patching it.
>>> 
>>> but it seems like epic5 does something different which 'justworks™' in
>>> ircii. epic5 is based on ircii.
>>> If ssl is mandatory, I'll check their git repository and see if there
>>> have been any commits recently fixing this.
>>
>> In general, SSL / TLS support is not mandatory for packages that do
>> network traffic. But, users should not be misled into thinking that they
>> are using TLS when it doesn't work.
>>
>> So, what happens when you use this epic5 to connect to an IRC server
>> that uses TLS?
>>
>> Does it fail silently? That's not okay.
>
> No, it fails with (for me) cryptic failures like ircII used to do. You
> can try it out yourself by comparing ircii and epic5 while trying
> chat.freenode.net 6697
>
> unset IRCSERVER; epic5 chat.freenode.net -p 6697
> output:
>
> *** I can't find your mailbox.
> *** Performing DNS lookup for [chat.freenode.net] (server 0)
> *** DNS lookup for server 0 [chat.freenode.net] returned (15) addresses
> *** Connecting to server refnum 0 (chat.freenode.net), using address 1 (164.132.77.237:6697)
> *** INFO -- unix_recv: read(3) failed: Connection reset by peer
> *** INFO -- new_io_event: fd 3 must be closed
> *** INFO -- dgets: fd [3] must be closed
> *** Connection closed from chat.freenode.net
>
>
> ... I assume that epic5 just isn't up to date or does handle something
> differently which ircii succeeds with. ircii added this
> functionality/variable:
> export IRCSERVER="SSLIRC/chat.freenode.net:6697"
>                                             |
> so if you prepend "SSLIRC/" and use         |
> :whatever-port-the-networks-ircs-port-is ----
> you get a connection to ircs, otherwise it fails.
> Best is to try this yourself for comparing outputs.
>
>>> Subject: [PATCH 1/2] licenses: Add epic.
>>> 
>>> * guix/licenses.scm (epic): New variable.
>>
>> Does anything else use this license? If not, I would leave it out and
>> use non-copyleft for the epic5 package license.
>>
>>> Subject: [PATCH 2/2] gnu: Add epic5.
>>> 
>>> * gnu/packages/irc.scm (epic5): New variable.
>>
>>> +         (add-after 'unpack 'patch-bsdinstall
>>> +           ;; We should include this in the build-system, bsdinstall is a standard.
>>> +           ;; If we just remove /bin/ some part of the bsdinstall breaks.
>>> +           (lambda _
>>> +             (substitute* "bsdinstall"
>>> +               (("/bin/strip") "strip")
>>> +               (("/bin/cp") "cp")
>>> +               (("/bin/chmod") "chmod")
>>> +               (("/etc/chown") "chown")
>>> +               (("/bin/chgrp") "chgrp")
>>> +               (("/bin/mkdir") "mkdir")
>>> +               (("/bin/rm") "rm")
>>> +               (("/bin/mv") "mv")
>>> +               (("/etc/") ""))))
>>
>> "/etc/" is not an executable path. Do we need to substitute it here?
>> What happens when you don't change that line?
>
> bsdinstalls has a reference to /etc/chmod there - if we leave /etc/ in,
> install fails.
>
>>> +               (zero?
>>> +                (system* "./configure"
>>> +                         (string-append "--prefix=" out)
>>> +                         "--with-ipv6" "--with-libarchive"
>>
>> What does it use libarchive for? What happens if we leave it out?
>
> I added it because of our "maximum features" goal.
>
> UPDATES:1473:*** News 01/03/2008 -- $info(o) values for libarchive, iconv support
> UPDATES:1474:   If the binary supports libarchive, $info(o) will include 'r'.
> UPDATES:1509:*** News 11/29/2007 -- Support for ZIP files from libarchive
> UPDATES:1529:   All of this is based on 'libarchive' being installed.  You will need
> UPDATES:1530:   to re-run configure in order to pick up libarchive support after you
>
> Details:
>
> *** News 01/03/2008 -- $info(o) values for libarchive, iconv support
>         If the binary supports libarchive, $info(o) will include 'r'.
>         If the binary supports iconv, $info(o) will include 'v'.
>         Libarchive support is required to /load from a .zip file
>         Iconv support is required to be able to do character set translation.
>
> *** News 11/29/2007 -- Support for ZIP files from libarchive
>         Support for loading files from .zip files has been added.  This first
>         round of implementation just adds the raw ability, but it's not 
>         totaly ready to be used yet.  You're welcome to start playing with
>         it and reporting any problems you have.
>
>         You can $open() a file for reading or /load it from a zip file:
>                 /load foo.zip/file
>         and
>                 @fd = open(foo.zip/file R)
>
>         If you /load a zip file, it will load the file ".ircrc" in the top
>         level directory.  This might be enahanced or changed in the future:
>                 /load foo.zip
>         acts like
>                 /load foo.zip/.ircrc
>
>         Some operations cannot be performed on zipped files, such as $fseek()
>         and $frewind() and so forth.  This might change in the future.
>
>         All of this is based on 'libarchive' being installed.  You will need
>         to re-run configure in order to pick up libarchive support after you
>         do a cvs update.
> -- 
>               ng0
>
>

-- 

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

* Re: [PATCH] gnu: Add epic5.
  2016-10-06 22:02     ` ng0
@ 2016-10-07  1:09       ` Leo Famulari
  2016-10-09 18:14         ` ng0
  0 siblings, 1 reply; 16+ messages in thread
From: Leo Famulari @ 2016-10-07  1:09 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel

On Thu, Oct 06, 2016 at 10:02:18PM +0000, ng0 wrote:
> Hi,
> 
> you are probably busy so I'd like to ask if this requires further
> changes or if it is good to go. Someone else can review it too.

Can you submit a revised patch using 'non-copyleft' for the license? Or
are there more packages on the way using the epic5 license?

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

* Re: [PATCH] gnu: Add epic5.
  2016-10-07  1:09       ` Leo Famulari
@ 2016-10-09 18:14         ` ng0
  0 siblings, 0 replies; 16+ messages in thread
From: ng0 @ 2016-10-09 18:14 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

Leo Famulari <leo@famulari.name> writes:

> On Thu, Oct 06, 2016 at 10:02:18PM +0000, ng0 wrote:
>> Hi,
>> 
>> you are probably busy so I'd like to ask if this requires further
>> changes or if it is good to go. Someone else can review it too.
>
> Can you submit a revised patch using 'non-copyleft' for the license? Or
> are there more packages on the way using the epic5 license?
>

Oh, right. This was the proposed change. Okay, I'll send in a new patch
via git send-email and a new thread.

Thanks

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

* [PATCH] gnu: Add epic5.
@ 2016-10-09 18:44 ng0
  2016-10-09 18:44 ` ng0
  0 siblings, 1 reply; 16+ messages in thread
From: ng0 @ 2016-10-09 18:44 UTC (permalink / raw)
  To: guix-devel

[PATCH] gnu: Add epic5.

Changes addressed:
 - epic5 license -> non-copyleft (squashed and removed the license.scm change)
 - moved some comments around, added one regarding libarchive
 - rebased on latest master

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

* [PATCH] gnu: Add epic5.
  2016-10-09 18:44 [PATCH] gnu: Add epic5 ng0
@ 2016-10-09 18:44 ` ng0
  2016-10-09 18:49   ` ng0
  2016-10-09 19:48   ` Leo Famulari
  0 siblings, 2 replies; 16+ messages in thread
From: ng0 @ 2016-10-09 18:44 UTC (permalink / raw)
  To: guix-devel; +Cc: ng0

From: ng0 <ng0@we.make.ritual.n0.is>

* gnu/packages/irc.scm (epic5): New variable.
---
 gnu/packages/irc.scm | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 83 insertions(+)

diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index db398de..f61afb4 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -32,9 +32,11 @@
   #:use-module (gnu packages autogen)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages file)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -47,6 +49,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages tls)
@@ -329,3 +332,83 @@ and extensible with plugins and scripts.")
 embedded web server, translations (fr, fi, it, hu, de), and many
 other enhancements and bug fixes.")
     (license license:bsd-3)))
+
+(define-public epic5
+  (package
+    (name "epic5")
+    (version "2.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://ftp.epicsol.org/pub/epic/EPIC5-PRODUCTION/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1ap73d5f4vccxjaaq249zh981z85106vvqmxfm4plvy76b40y9jm"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-perl
+           (lambda _
+             (substitute* "regress/crash-irc"
+               (("perl5") (which "perl")))))
+         (add-after 'unpack 'patch-bsdinstall
+           ;; If we just remove /bin/ some part of the bsdinstall breaks.
+           ;; Furthermore bsdinstalls has a reference to /etc/chmod here, which
+           ;; means if we leave /etc/ in, install fails.
+           (lambda _
+             (substitute* "bsdinstall"
+               (("/bin/strip") "strip")
+               (("/bin/cp") "cp")
+               (("/bin/chmod") "chmod")
+               (("/etc/chown") "chown")
+               (("/bin/chgrp") "chgrp")
+               (("/bin/mkdir") "mkdir")
+               (("/bin/rm") "rm")
+               (("/bin/mv") "mv")
+               (("/etc/") ""))))
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; The tarball uses a very old version of autconf. It doesn't
+             ;; understand extra flags like `--enable-fast-install', so
+             ;; we need to invoke it with just what it understands.
+             (let ((out (assoc-ref outputs "out")))
+               ;; 'configure' doesn't understand '--host'.
+               ,@(if (%current-target-system)
+                     `((setenv "CHOST" ,(%current-target-system)))
+                     '())
+               (setenv "CONFIG_SHELL" (which "bash"))
+               (setenv "SHELL" (which "bash"))
+               (zero?
+                (system* "./configure"
+                         (string-append "--prefix=" out)
+                         "--with-ipv6" "--with-libarchive"
+                         "--with-ssl"
+                         (string-append "--with-tcl="
+                                        (assoc-ref %build-inputs "tcl")
+                                        "/lib/tclConfig.sh")))))))))
+    (inputs
+     `(("openssl" ,openssl)
+       ("ncurses" ,ncurses)
+       ("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip files"
+       ("perl" ,perl)
+       ("tcl" ,tcl)
+       ("ruby" ,ruby)
+       ("gdbm" ,gdbm)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://epicsol.org")
+    (synopsis "Epic5 IRC Client")
+    (description
+     "EPIC is a IRC client that has been under active development for 20+ years
+in 5 generations.  It is stable and mature, and offers an excellent ircII
+interface for those of us who are accustomed to the ircII way of doing things.")
+    (license (list license:bsd-3
+                   license:isc
+                   license:bsd-4
+                   ;; The epic license is equal to the standard three-clause
+                   ;; BSD license except that you are not permitted to remove the
+                   ;; "Redistribution is permitted" clause of the license if you
+                   ;; distribute binaries.
+                   license:non-copyleft "http://epicsol.org/copyright"))))
-- 
2.10.1

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

* Re: [PATCH] gnu: Add epic5.
  2016-10-09 18:44 ` ng0
@ 2016-10-09 18:49   ` ng0
  2016-10-09 19:48   ` Leo Famulari
  1 sibling, 0 replies; 16+ messages in thread
From: ng0 @ 2016-10-09 18:49 UTC (permalink / raw)
  To: guix-devel

ng0 <ngillmann@runbox.com> writes:

> From: ng0 <ng0@we.make.ritual.n0.is>
>
> * gnu/packages/irc.scm (epic5): New variable.
> ---
>  gnu/packages/irc.scm | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 83 insertions(+)
>
> diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
> index db398de..f61afb4 100644
> --- a/gnu/packages/irc.scm
> +++ b/gnu/packages/irc.scm
> @@ -32,9 +32,11 @@
>    #:use-module (gnu packages autogen)
>    #:use-module (gnu packages autotools)
>    #:use-module (gnu packages base)
> +  #:use-module (gnu packages backup)
>    #:use-module (gnu packages compression)
>    #:use-module (gnu packages curl)
>    #:use-module (gnu packages cyrus-sasl)
> +  #:use-module (gnu packages databases)
>    #:use-module (gnu packages file)
>    #:use-module (gnu packages gettext)
>    #:use-module (gnu packages glib)
> @@ -47,6 +49,7 @@
>    #:use-module (gnu packages perl)
>    #:use-module (gnu packages pkg-config)
>    #:use-module (gnu packages python)
> +  #:use-module (gnu packages ruby)
>    #:use-module (gnu packages qt)
>    #:use-module (gnu packages tcl)
>    #:use-module (gnu packages tls)
> @@ -329,3 +332,83 @@ and extensible with plugins and scripts.")
>  embedded web server, translations (fr, fi, it, hu, de), and many
>  other enhancements and bug fixes.")
>      (license license:bsd-3)))
> +
> +(define-public epic5
> +  (package
> +    (name "epic5")
> +    (version "2.0.1")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "http://ftp.epicsol.org/pub/epic/EPIC5-PRODUCTION/"
> +                                  name "-" version ".tar.xz"))
> +              (sha256
> +               (base32
> +                "1ap73d5f4vccxjaaq249zh981z85106vvqmxfm4plvy76b40y9jm"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:test-target "test"
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'patch-perl
> +           (lambda _
> +             (substitute* "regress/crash-irc"
> +               (("perl5") (which "perl")))))
> +         (add-after 'unpack 'patch-bsdinstall
> +           ;; If we just remove /bin/ some part of the bsdinstall breaks.
> +           ;; Furthermore bsdinstalls has a reference to /etc/chmod here, which
                                       ^___ typo, please correct this to
                                       bsdinstall, without the "s" which
                                       was correct only when the leading
                                       "Furthermore" wasn't there.
> +           ;; means if we leave /etc/ in, install fails.
> +           (lambda _
> +             (substitute* "bsdinstall"
> +               (("/bin/strip") "strip")
> +               (("/bin/cp") "cp")
> +               (("/bin/chmod") "chmod")
> +               (("/etc/chown") "chown")
> +               (("/bin/chgrp") "chgrp")
> +               (("/bin/mkdir") "mkdir")
> +               (("/bin/rm") "rm")
> +               (("/bin/mv") "mv")
> +               (("/etc/") ""))))
> +         (replace 'configure
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             ;; The tarball uses a very old version of autconf. It doesn't
> +             ;; understand extra flags like `--enable-fast-install', so
> +             ;; we need to invoke it with just what it understands.
> +             (let ((out (assoc-ref outputs "out")))
> +               ;; 'configure' doesn't understand '--host'.
> +               ,@(if (%current-target-system)
> +                     `((setenv "CHOST" ,(%current-target-system)))
> +                     '())
> +               (setenv "CONFIG_SHELL" (which "bash"))
> +               (setenv "SHELL" (which "bash"))
> +               (zero?
> +                (system* "./configure"
> +                         (string-append "--prefix=" out)
> +                         "--with-ipv6" "--with-libarchive"
> +                         "--with-ssl"
> +                         (string-append "--with-tcl="
> +                                        (assoc-ref %build-inputs "tcl")
> +                                        "/lib/tclConfig.sh")))))))))
> +    (inputs
> +     `(("openssl" ,openssl)
> +       ("ncurses" ,ncurses)
> +       ("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip files"
> +       ("perl" ,perl)
> +       ("tcl" ,tcl)
> +       ("ruby" ,ruby)
> +       ("gdbm" ,gdbm)))
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)))
> +    (home-page "http://epicsol.org")
> +    (synopsis "Epic5 IRC Client")
> +    (description
> +     "EPIC is a IRC client that has been under active development for 20+ years
> +in 5 generations.  It is stable and mature, and offers an excellent ircII
> +interface for those of us who are accustomed to the ircII way of doing things.")
> +    (license (list license:bsd-3
> +                   license:isc
> +                   license:bsd-4
> +                   ;; The epic license is equal to the standard three-clause
> +                   ;; BSD license except that you are not permitted to remove the
> +                   ;; "Redistribution is permitted" clause of the license if you
> +                   ;; distribute binaries.
> +                   license:non-copyleft "http://epicsol.org/copyright"))))
> -- 
> 2.10.1
>
>

-- 

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

* Re: [PATCH] gnu: Add epic5.
  2016-10-09 18:44 ` ng0
  2016-10-09 18:49   ` ng0
@ 2016-10-09 19:48   ` Leo Famulari
  2016-10-09 20:51     ` ng0
  1 sibling, 1 reply; 16+ messages in thread
From: Leo Famulari @ 2016-10-09 19:48 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel, ng0

On Sun, Oct 09, 2016 at 06:44:11PM +0000, ng0 wrote:
> From: ng0 <ng0@we.make.ritual.n0.is>
> 
> * gnu/packages/irc.scm (epic5): New variable.

Thanks for the updated patch.

Sorry I didn't notice this before...

> +    (inputs
> +     `(("openssl" ,openssl)
> +       ("ncurses" ,ncurses)
> +       ("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip files"
> +       ("perl" ,perl)
> +       ("tcl" ,tcl)
> +       ("ruby" ,ruby)
> +       ("gdbm" ,gdbm)))

Using `guix gc --references $(./pre-inst-env guix build epic5)`, I
noticed that there is no reference to gdbm.

So, if you install this epic5 package and then do `guix gc`, you will
lose gdbm and I assume that epic5 will stop working.

We need to figure out a way to make sure epic5 keeps that reference.

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

* Re: [PATCH] gnu: Add epic5.
  2016-10-09 19:48   ` Leo Famulari
@ 2016-10-09 20:51     ` ng0
  2016-10-10 22:03       ` ng0
  0 siblings, 1 reply; 16+ messages in thread
From: ng0 @ 2016-10-09 20:51 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

Leo Famulari <leo@famulari.name> writes:

> On Sun, Oct 09, 2016 at 06:44:11PM +0000, ng0 wrote:
>> From: ng0 <ng0@we.make.ritual.n0.is>
>> 
>> * gnu/packages/irc.scm (epic5): New variable.
>
> Thanks for the updated patch.
>
> Sorry I didn't notice this before...
>
>> +    (inputs
>> +     `(("openssl" ,openssl)
>> +       ("ncurses" ,ncurses)
>> +       ("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip files"
>> +       ("perl" ,perl)
>> +       ("tcl" ,tcl)
>> +       ("ruby" ,ruby)
>> +       ("gdbm" ,gdbm)))
>
> Using `guix gc --references $(./pre-inst-env guix build epic5)`, I
> noticed that there is no reference to gdbm.
>
> So, if you install this epic5 package and then do `guix gc`, you will
> lose gdbm and I assume that epic5 will stop working.
>
> We need to figure out a way to make sure epic5 keeps that reference.


Hm. Maybe there's an config option I can pass, if you have time to look
at it go ahead, I'll be slow and update it some time this month.
I keep poking at system services and trying to finish those, easier said
than done in some cases it turns out.

-- 

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

* Re: [PATCH] gnu: Add epic5.
  2016-10-09 20:51     ` ng0
@ 2016-10-10 22:03       ` ng0
  2016-12-06 19:35         ` [PATCH] v3 .. Add epic5 irc client ng0
  0 siblings, 1 reply; 16+ messages in thread
From: ng0 @ 2016-10-10 22:03 UTC (permalink / raw)
  To: Leo Famulari; +Cc: guix-devel

ng0 <ngillmann@runbox.com> writes:

> Leo Famulari <leo@famulari.name> writes:
>
>> On Sun, Oct 09, 2016 at 06:44:11PM +0000, ng0 wrote:
>>> From: ng0 <ng0@we.make.ritual.n0.is>
>>> 
>>> * gnu/packages/irc.scm (epic5): New variable.
>>
>> Thanks for the updated patch.
>>
>> Sorry I didn't notice this before...
>>
>>> +    (inputs
>>> +     `(("openssl" ,openssl)
>>> +       ("ncurses" ,ncurses)
>>> +       ("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip files"
>>> +       ("perl" ,perl)
>>> +       ("tcl" ,tcl)
>>> +       ("ruby" ,ruby)
>>> +       ("gdbm" ,gdbm)))
>>
>> Using `guix gc --references $(./pre-inst-env guix build epic5)`, I
>> noticed that there is no reference to gdbm.
>>
>> So, if you install this epic5 package and then do `guix gc`, you will
>> lose gdbm and I assume that epic5 will stop working.
>>
>> We need to figure out a way to make sure epic5 keeps that reference.
>
>
> Hm. Maybe there's an config option I can pass, if you have time to look
> at it go ahead, I'll be slow and update it some time this month.
> I keep poking at system services and trying to finish those, easier said
> than done in some cases it turns out.

This can not be related, but I will set the CFLAGS too with the next
version of the patch:

  o  You must not try to compile epic with "gcc -O2" because -O2 will
     generate bad code that leads to random crashes.  When you use -O2,
     gcc assumes the source is conformant to ISO C99's requirements about
     alias-safety, and EPIC, being a C90 program, does not conform, so the
     result is undefined behavior (which means it crashes randomly.)  This
     is not a bug in EPIC.  You must only compile epic with -O.



egrep -nr "gdbm":

*** News 10/30/2005 -- New function, $dbmctl() [hash table support]
        *** Notice *** This function uses a custom implementation of SDBM.
        The file format it generates should be compatable with $perl() but
        is not compatable with ndbm or gdbm.

        The $dbmctl() function is an interface to the unix DBM API:
            $dbmctl(OPEN type filename)
                Open a DBM file for read and write access.
            $dbmctl(OPEN_READ type filename)
                Open a DBM file for read-only access.
            $dbmctl(CLOSE refnum)
                Close a previously opened DBM file
            $dbmctl(ADD refnum "key" data)
                Insert a new key/data pair.  Fail if key already exists.
            $dbmctl(CHANGE refnum "key" data)
                If key already exists, change its data.  If it doesn't exist, 
                add it.
            $dbmctl(DELETE refnum "key")
                Remove a key/data pair
            $dbmctl(READ refnum "key")
                Return the data for a key.
            $dbmctl(NEXT_KEY refnum start-over)
                Return the next key in the database
            $dbmctl(ALL_KEYS refnum)
                Return all keys -- could be huge! could take a long time!
            $dbmctl(ERROR refnum)
                Return the errno for the last error.

        "Type" must always be "STD" for now.  Reserved for future expansion.
        "Filename" must be a filename that doesn't include the ".db" extension!
                This is a requirement of the DBM api, and not an epic thing.
        "Refnum" is the integer value returned by OPEN or OPEN_READ
        "Key" is a hash table key value
        "Data" is a hash table data value
        "Start-over" is 1 if you want to fetch the first key in the table, and
                is 0 if you want to fetch the next key.  You must call this
                with 1 before you call it with 0, according to the API.
        ALL_KEYS does a "start-over" and you need to do another "start-over"
                after using it.



while INSTALL says:


  o  On Linux, you _*-MUST-*_ install your system's "ncurses-devel" package
     or you won't be able to build epic.  You should install your system's
     "gdbm-devel" package or you won't have access to $dbmctl() (hash tables)


What are your thoughts? the egrep result is just this:

ng0@shadowwalker ~/re-src/epic5-2.0.1$ egrep -nr "gdbm"
UPDATES:2660:   is not compatable with ndbm or gdbm.
INSTALL:31:     "gdbm-devel" package or you won't have access to $dbmctl() (hash tables)


drop gdbm support? patch it in? make it propagated-input?

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

* [PATCH] v3 .. Add epic5 irc client
  2016-10-10 22:03       ` ng0
@ 2016-12-06 19:35         ` ng0
  2016-12-06 19:35           ` [PATCH] gnu: Add epic5 ng0
  0 siblings, 1 reply; 16+ messages in thread
From: ng0 @ 2016-12-06 19:35 UTC (permalink / raw)
  To: guix-devel

Changes since the last patch (https://lists.gnu.org/archive/html/guix-devel/2016-10/msg00549.html):

* removed gdbm
* changed openssl to libressl (inline commented why)
* explicitly pointed the config to the tls implementation
* checked multiple networks for functionality, all work but...
... tls does not work when round robin of irc networks kick in.
It might be a bug with epic5 -> ircd being used. For me this is functional,
and I will get in contact with upstream developers (if they aren't using
something like github or gitlab these days) to investigate this problem.
epic5 is known to be difficult to configure, so I would not rule out an
error on my side (not the package) in my client config.

[PATCH] gnu: Add epic5.

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

* [PATCH] gnu: Add epic5.
  2016-12-06 19:35         ` [PATCH] v3 .. Add epic5 irc client ng0
@ 2016-12-06 19:35           ` ng0
  2016-12-08 20:38             ` Efraim Flashner
  0 siblings, 1 reply; 16+ messages in thread
From: ng0 @ 2016-12-06 19:35 UTC (permalink / raw)
  To: guix-devel; +Cc: ng0

From: ng0 <ng0@we.make.ritual.n0.is>

* gnu/packages/irc.scm (epic5): New variable.
---
 gnu/packages/irc.scm | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 90 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
index 3b63c899e..74124cf86 100644
--- a/gnu/packages/irc.scm
+++ b/gnu/packages/irc.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
 ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
+;;; Copyright © 2016 ng0 <ng0@libertad.pw>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -32,9 +32,11 @@
   #:use-module (gnu packages autogen)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cyrus-sasl)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages file)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
@@ -47,6 +49,7 @@
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages ruby)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages tls)
@@ -329,3 +332,89 @@ and extensible with plugins and scripts.")
 embedded web server, translations (fr, fi, it, hu, de), and many
 other enhancements and bug fixes.")
     (license license:bsd-3)))
+
+(define-public epic5
+  (package
+    (name "epic5")
+    (version "2.0.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://ftp.epicsol.org/pub/epic/EPIC5-PRODUCTION/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1ap73d5f4vccxjaaq249zh981z85106vvqmxfm4plvy76b40y9jm"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-perl
+           (lambda _
+             (substitute* "regress/crash-irc"
+               (("perl5") (which "perl")))))
+         (add-after 'unpack 'patch-bsdinstall
+           ;; If we just remove /bin/ some part of the bsdinstall breaks.
+           ;; Furthermore bsdinstalls has a reference to /etc/chmod here, which
+           ;; means if we leave /etc/ in, install fails.
+           (lambda _
+             (substitute* "bsdinstall"
+               (("/bin/strip") "strip")
+               (("/bin/cp") "cp")
+               (("/bin/chmod") "chmod")
+               (("/etc/chown") "chown")
+               (("/bin/chgrp") "chgrp")
+               (("/bin/mkdir") "mkdir")
+               (("/bin/rm") "rm")
+               (("/bin/mv") "mv")
+               (("/etc/") ""))))
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; The tarball uses a very old version of autconf. It does not
+             ;; understand extra flags like `--enable-fast-install', so
+             ;; we need to invoke it with just what it understands.
+             (let ((out (assoc-ref outputs "out")))
+               ;; 'configure' doesn't understand '--host'.
+               ,@(if (%current-target-system)
+                     `((setenv "CHOST" ,(%current-target-system)))
+                     '())
+               (setenv "CONFIG_SHELL" (which "bash"))
+               (setenv "SHELL" (which "bash"))
+               (zero?
+                (system* "./configure"
+                         (string-append "--prefix=" out)
+                         "--with-ipv6" "--with-libarchive"
+                         ;; We use libressl because openssl does not come
+                         ;; with the lib/libssl.a which is needed for epic5.
+                         ;; XXX: No matter which implementation is chosen,
+                         ;; epic5 fails to connect to tls ports of roundrobin
+                         ;; irc networks. This however is believed to be an
+                         ;; protocol issue at epic5 related to ircd.
+                         (string-append "--with-ssl="
+                                        (assoc-ref %build-inputs "libressl"))
+                         (string-append "--with-tcl="
+                                        (assoc-ref %build-inputs "tcl")
+                                        "/lib/tclConfig.sh")))))))))
+    (inputs
+     `(("libressl" ,libressl)
+       ("ncurses" ,ncurses)
+       ("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip files"
+       ("perl" ,perl)
+       ("tcl" ,tcl)
+       ("ruby" ,ruby)))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (home-page "http://epicsol.org")
+    (synopsis "Epic5 IRC Client")
+    (description
+     "EPIC is a IRC client that has been under active development for
+over 20 years.  It is stable and mature, and offers an excellent ircII
+interface for those who are accustomed to the ircII way of doing things.")
+    (license (list license:bsd-3
+                   license:isc
+                   license:bsd-4
+                   ;; The epic license is equal to the standard three-clause
+                   ;; BSD license except that you are not permitted to remove the
+                   ;; "Redistribution is permitted" clause of the license if you
+                   ;; distribute binaries.
+                   license:non-copyleft "http://epicsol.org/copyright"))))
-- 
2.11.0

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

* Re: [PATCH] gnu: Add epic5.
  2016-12-06 19:35           ` [PATCH] gnu: Add epic5 ng0
@ 2016-12-08 20:38             ` Efraim Flashner
  2016-12-08 21:28               ` ng0
  0 siblings, 1 reply; 16+ messages in thread
From: Efraim Flashner @ 2016-12-08 20:38 UTC (permalink / raw)
  To: ng0; +Cc: guix-devel

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

On Tue, Dec 06, 2016 at 07:35:38PM +0000, ng0 wrote:
> From: ng0 <ng0@we.make.ritual.n0.is>
> 
> * gnu/packages/irc.scm (epic5): New variable.
> ---
>  gnu/packages/irc.scm | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 90 insertions(+), 1 deletion(-)
> 
> diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
> index 3b63c899e..74124cf86 100644
> --- a/gnu/packages/irc.scm
> +++ b/gnu/packages/irc.scm
> @@ -3,7 +3,7 @@
>  ;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
>  ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
>  ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
> -;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
> +;;; Copyright © 2016 ng0 <ng0@libertad.pw>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -32,9 +32,11 @@
>    #:use-module (gnu packages autogen)
>    #:use-module (gnu packages autotools)
>    #:use-module (gnu packages base)
> +  #:use-module (gnu packages backup)
>    #:use-module (gnu packages compression)
>    #:use-module (gnu packages curl)
>    #:use-module (gnu packages cyrus-sasl)
> +  #:use-module (gnu packages databases)
>    #:use-module (gnu packages file)
>    #:use-module (gnu packages gettext)
>    #:use-module (gnu packages glib)
> @@ -47,6 +49,7 @@
>    #:use-module (gnu packages perl)
>    #:use-module (gnu packages pkg-config)
>    #:use-module (gnu packages python)
> +  #:use-module (gnu packages ruby)
>    #:use-module (gnu packages qt)
>    #:use-module (gnu packages tcl)
>    #:use-module (gnu packages tls)
> @@ -329,3 +332,89 @@ and extensible with plugins and scripts.")
>  embedded web server, translations (fr, fi, it, hu, de), and many
>  other enhancements and bug fixes.")
>      (license license:bsd-3)))
> +
> +(define-public epic5
> +  (package
> +    (name "epic5")
> +    (version "2.0.1")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "http://ftp.epicsol.org/pub/epic/EPIC5-PRODUCTION/"
> +                                  name "-" version ".tar.xz"))
> +              (sha256
> +               (base32
> +                "1ap73d5f4vccxjaaq249zh981z85106vvqmxfm4plvy76b40y9jm"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:test-target "test"
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'patch-perl
> +           (lambda _
> +             (substitute* "regress/crash-irc"
> +               (("perl5") (which "perl")))))
> +         (add-after 'unpack 'patch-bsdinstall
> +           ;; If we just remove /bin/ some part of the bsdinstall breaks.
> +           ;; Furthermore bsdinstalls has a reference to /etc/chmod here, which
> +           ;; means if we leave /etc/ in, install fails.
> +           (lambda _
> +             (substitute* "bsdinstall"
> +               (("/bin/strip") "strip")
> +               (("/bin/cp") "cp")
> +               (("/bin/chmod") "chmod")
> +               (("/etc/chown") "chown")
> +               (("/bin/chgrp") "chgrp")
> +               (("/bin/mkdir") "mkdir")
> +               (("/bin/rm") "rm")
> +               (("/bin/mv") "mv")
> +               (("/etc/") ""))))
> +         (replace 'configure
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             ;; The tarball uses a very old version of autconf. It does not
> +             ;; understand extra flags like `--enable-fast-install', so
> +             ;; we need to invoke it with just what it understands.
> +             (let ((out (assoc-ref outputs "out")))
> +               ;; 'configure' doesn't understand '--host'.
> +               ,@(if (%current-target-system)
> +                     `((setenv "CHOST" ,(%current-target-system)))
> +                     '())
> +               (setenv "CONFIG_SHELL" (which "bash"))
> +               (setenv "SHELL" (which "bash"))
> +               (zero?
> +                (system* "./configure"
> +                         (string-append "--prefix=" out)
> +                         "--with-ipv6" "--with-libarchive"
> +                         ;; We use libressl because openssl does not come
> +                         ;; with the lib/libssl.a which is needed for epic5.
> +                         ;; XXX: No matter which implementation is chosen,
> +                         ;; epic5 fails to connect to tls ports of roundrobin
> +                         ;; irc networks. This however is believed to be an
> +                         ;; protocol issue at epic5 related to ircd.
> +                         (string-append "--with-ssl="
> +                                        (assoc-ref %build-inputs "libressl"))
> +                         (string-append "--with-tcl="
> +                                        (assoc-ref %build-inputs "tcl")
> +                                        "/lib/tclConfig.sh")))))))))
> +    (inputs
> +     `(("libressl" ,libressl)
> +       ("ncurses" ,ncurses)
> +       ("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip files"
> +       ("perl" ,perl)
> +       ("tcl" ,tcl)
> +       ("ruby" ,ruby)))
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)))
> +    (home-page "http://epicsol.org")
> +    (synopsis "Epic5 IRC Client")
> +    (description
> +     "EPIC is a IRC client that has been under active development for
> +over 20 years.  It is stable and mature, and offers an excellent ircII
> +interface for those who are accustomed to the ircII way of doing things.")
> +    (license (list license:bsd-3
> +                   license:isc
> +                   license:bsd-4
> +                   ;; The epic license is equal to the standard three-clause
> +                   ;; BSD license except that you are not permitted to remove the
> +                   ;; "Redistribution is permitted" clause of the license if you
> +                   ;; distribute binaries.
> +                   license:non-copyleft "http://epicsol.org/copyright"))))
> -- 
> 2.11.0
> 
> 

I made some minor changes to the substitutes* to return #t and pushed

-- 
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: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

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

* Re: [PATCH] gnu: Add epic5.
  2016-12-08 20:38             ` Efraim Flashner
@ 2016-12-08 21:28               ` ng0
  0 siblings, 0 replies; 16+ messages in thread
From: ng0 @ 2016-12-08 21:28 UTC (permalink / raw)
  To: Efraim Flashner; +Cc: guix-devel

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

> On Tue, Dec 06, 2016 at 07:35:38PM +0000, ng0 wrote:
>> From: ng0 <ng0@we.make.ritual.n0.is>
>> 
>> * gnu/packages/irc.scm (epic5): New variable.
>> ---
>>  gnu/packages/irc.scm | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++-
>>  1 file changed, 90 insertions(+), 1 deletion(-)
>> 
>> diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm
>> index 3b63c899e..74124cf86 100644
>> --- a/gnu/packages/irc.scm
>> +++ b/gnu/packages/irc.scm
>> @@ -3,7 +3,7 @@
>>  ;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
>>  ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
>>  ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
>> -;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
>> +;;; Copyright © 2016 ng0 <ng0@libertad.pw>
>>  ;;;
>>  ;;; This file is part of GNU Guix.
>>  ;;;
>> @@ -32,9 +32,11 @@
>>    #:use-module (gnu packages autogen)
>>    #:use-module (gnu packages autotools)
>>    #:use-module (gnu packages base)
>> +  #:use-module (gnu packages backup)
>>    #:use-module (gnu packages compression)
>>    #:use-module (gnu packages curl)
>>    #:use-module (gnu packages cyrus-sasl)
>> +  #:use-module (gnu packages databases)
>>    #:use-module (gnu packages file)
>>    #:use-module (gnu packages gettext)
>>    #:use-module (gnu packages glib)
>> @@ -47,6 +49,7 @@
>>    #:use-module (gnu packages perl)
>>    #:use-module (gnu packages pkg-config)
>>    #:use-module (gnu packages python)
>> +  #:use-module (gnu packages ruby)
>>    #:use-module (gnu packages qt)
>>    #:use-module (gnu packages tcl)
>>    #:use-module (gnu packages tls)
>> @@ -329,3 +332,89 @@ and extensible with plugins and scripts.")
>>  embedded web server, translations (fr, fi, it, hu, de), and many
>>  other enhancements and bug fixes.")
>>      (license license:bsd-3)))
>> +
>> +(define-public epic5
>> +  (package
>> +    (name "epic5")
>> +    (version "2.0.1")
>> +    (source (origin
>> +              (method url-fetch)
>> +              (uri (string-append "http://ftp.epicsol.org/pub/epic/EPIC5-PRODUCTION/"
>> +                                  name "-" version ".tar.xz"))
>> +              (sha256
>> +               (base32
>> +                "1ap73d5f4vccxjaaq249zh981z85106vvqmxfm4plvy76b40y9jm"))))
>> +    (build-system gnu-build-system)
>> +    (arguments
>> +     `(#:test-target "test"
>> +       #:phases
>> +       (modify-phases %standard-phases
>> +         (add-after 'unpack 'patch-perl
>> +           (lambda _
>> +             (substitute* "regress/crash-irc"
>> +               (("perl5") (which "perl")))))
>> +         (add-after 'unpack 'patch-bsdinstall
>> +           ;; If we just remove /bin/ some part of the bsdinstall breaks.
>> +           ;; Furthermore bsdinstalls has a reference to /etc/chmod here, which
>> +           ;; means if we leave /etc/ in, install fails.
>> +           (lambda _
>> +             (substitute* "bsdinstall"
>> +               (("/bin/strip") "strip")
>> +               (("/bin/cp") "cp")
>> +               (("/bin/chmod") "chmod")
>> +               (("/etc/chown") "chown")
>> +               (("/bin/chgrp") "chgrp")
>> +               (("/bin/mkdir") "mkdir")
>> +               (("/bin/rm") "rm")
>> +               (("/bin/mv") "mv")
>> +               (("/etc/") ""))))
>> +         (replace 'configure
>> +           (lambda* (#:key outputs #:allow-other-keys)
>> +             ;; The tarball uses a very old version of autconf. It does not
>> +             ;; understand extra flags like `--enable-fast-install', so
>> +             ;; we need to invoke it with just what it understands.
>> +             (let ((out (assoc-ref outputs "out")))
>> +               ;; 'configure' doesn't understand '--host'.
>> +               ,@(if (%current-target-system)
>> +                     `((setenv "CHOST" ,(%current-target-system)))
>> +                     '())
>> +               (setenv "CONFIG_SHELL" (which "bash"))
>> +               (setenv "SHELL" (which "bash"))
>> +               (zero?
>> +                (system* "./configure"
>> +                         (string-append "--prefix=" out)
>> +                         "--with-ipv6" "--with-libarchive"
>> +                         ;; We use libressl because openssl does not come
>> +                         ;; with the lib/libssl.a which is needed for epic5.
>> +                         ;; XXX: No matter which implementation is chosen,
>> +                         ;; epic5 fails to connect to tls ports of roundrobin
>> +                         ;; irc networks. This however is believed to be an
>> +                         ;; protocol issue at epic5 related to ircd.
>> +                         (string-append "--with-ssl="
>> +                                        (assoc-ref %build-inputs "libressl"))
>> +                         (string-append "--with-tcl="
>> +                                        (assoc-ref %build-inputs "tcl")
>> +                                        "/lib/tclConfig.sh")))))))))
>> +    (inputs
>> +     `(("libressl" ,libressl)
>> +       ("ncurses" ,ncurses)
>> +       ("libarchive" ,libarchive) ; CHANGELOG: "Support for loading zip files"
>> +       ("perl" ,perl)
>> +       ("tcl" ,tcl)
>> +       ("ruby" ,ruby)))
>> +    (native-inputs
>> +     `(("pkg-config" ,pkg-config)))
>> +    (home-page "http://epicsol.org")
>> +    (synopsis "Epic5 IRC Client")
>> +    (description
>> +     "EPIC is a IRC client that has been under active development for
>> +over 20 years.  It is stable and mature, and offers an excellent ircII
>> +interface for those who are accustomed to the ircII way of doing things.")
>> +    (license (list license:bsd-3
>> +                   license:isc
>> +                   license:bsd-4
>> +                   ;; The epic license is equal to the standard three-clause
>> +                   ;; BSD license except that you are not permitted to remove the
>> +                   ;; "Redistribution is permitted" clause of the license if you
>> +                   ;; distribute binaries.
>> +                   license:non-copyleft "http://epicsol.org/copyright"))))
>> -- 
>> 2.11.0
>> 
>> 
>
> I made some minor changes to the substitutes* to return #t and pushed
>
> -- 
> 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

Thanks! I wonder why it can't cope with round robin ircs (tls)
networks.. I have to try and get in contact with the upstream to
see if this is a common issue.

-- 
♥Ⓐ  ng0  | ng0.chaosnet.org

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

end of thread, other threads:[~2016-12-08 21:29 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-09 18:44 [PATCH] gnu: Add epic5 ng0
2016-10-09 18:44 ` ng0
2016-10-09 18:49   ` ng0
2016-10-09 19:48   ` Leo Famulari
2016-10-09 20:51     ` ng0
2016-10-10 22:03       ` ng0
2016-12-06 19:35         ` [PATCH] v3 .. Add epic5 irc client ng0
2016-12-06 19:35           ` [PATCH] gnu: Add epic5 ng0
2016-12-08 20:38             ` Efraim Flashner
2016-12-08 21:28               ` ng0
  -- strict thread matches above, loose matches on Subject: below --
2016-09-24 13:04 ng0
2016-09-25 17:13 ` Leo Famulari
2016-09-25 19:27   ` ng0
2016-10-06 22:02     ` ng0
2016-10-07  1:09       ` Leo Famulari
2016-10-09 18:14         ` ng0

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).