diff mbox

gnu: Add epic5.

Message ID 20161206193538.22496-2-ng0@libertad.pw
State New
Headers show

Commit Message

ng0 Dec. 6, 2016, 7:35 p.m. UTC
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(-)

Comments

Efraim Flashner Dec. 8, 2016, 8:38 p.m. UTC | #1
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
ng0 Dec. 8, 2016, 9:28 p.m. UTC | #2
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.
diff mbox

Patch

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"))))