diff mbox series

[bug#36638,1/2] gnu: Add websocketpp.

Message ID 87k1clbz2i.fsf@sdf.lonestar.org
State Accepted
Headers show
Series gnu: Add i2pd. | expand

Commit Message

Jakob L. Kreuze July 13, 2019, 5:53 p.m. UTC
* gnu/packages/web.scm (websocketpp): New variable.
---
 gnu/packages/web.scm | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

Comments

Ludovic Courtès July 15, 2019, 4:21 p.m. UTC | #1
Hello,

zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) skribis:

> * gnu/packages/web.scm (websocketpp): New variable.

[...]

> +(define-public websocketpp
> +  (package
> +   (name "websocketpp")
      ^
I indented with an extra space here…

> +   (synopsis "C++ library implementing the WebSocket protocol.")
                                                                ^
… and removed this period.  :-)

Applied, thanks!

Ludo’.
Ludovic Courtès July 15, 2019, 4:31 p.m. UTC | #2
Ludovic Courtès <ludo@gnu.org> skribis:

> Hello,
>
> zerodaysfordays@sdf.lonestar.org (Jakob L. Kreuze) skribis:
>
>> * gnu/packages/web.scm (websocketpp): New variable.

[...]

> Applied, thanks!

Actually no!  :-)

On closer inspection, the file layout is also fishy:

--8<---------------cut here---------------start------------->8---
$ find /gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1
/gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1
/gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1/lib
/gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1/lib/cmake
/gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1/lib/cmake/websocketpp
/gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1/lib/cmake/websocketpp/websocketpp-configVersion.cmake
/gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1/lib/cmake/websocketpp/websocketpp-config.cmake
/gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1/bin
/gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1/bin/test_processor_hybi00
/gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1/bin/test_sha1
/gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1/bin/test_transport_iostream_base
/gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1/bin/test_transport_asio_timers
/gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1/bin/test_processor_hybi08
/gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1/bin/test_transport
/gnu/store/rm6a4v8m8plzskjmig2vmly91qxl4z8q-websocketpp-0.8.1/bin/test_utilities
--8<---------------cut here---------------end--------------->8---

All of bin/ should be removed I think, because these look like unit
tests, no?

Also, there’s no .so or .a file, but that’s because it’s a header-only
library, right?

Thanks,
Ludo’.
Jakob L. Kreuze July 16, 2019, 4:48 p.m. UTC | #3
Ludovic Courtès <ludo@gnu.org> writes:

> We should at least remove everything under src/ as well as the
> top-level ‘LICENSE’ file.
>
> As for the .a files, we should either not install them at all, or
> install .so files instead.
>
> Could you take a look?

I'll sit down and take a closer look when I get the chance. It seems to
be a funny build system setup; the libi2pd header files are installed to
'src/', and given the CMake flags I'm using, we /should/ be getting .so
files instead of .a files.

> All of bin/ should be removed I think, because these look like unit
> tests, no?

Good catch! I need to start looking at the output directories for the
packages I write :p  I wouldn't have expected 'make install' to install
the unit tests as well

> Also, there’s no .so or .a file, but that’s because it’s a header-only
> library, right?

Yes.

Regards,
Jakob
Jakob L. Kreuze July 17, 2019, 6:10 p.m. UTC | #4
Should be fixed now. BUILD_SHARED_LIBS was disabled by default.

On an unrelated note, is there a way to obtain the source directory when
patches are applied to 'origin'? '(assoc-ref %build-inputs "source")'
works fine here, but if I were to use a patch to deal with the
extraneous files installed by i2pd, it points to an xzipped archive.

Jakob L. Kreuze (2):
  gnu: Add websocketpp.
  gnu: Add i2pd.

 gnu/local.mk         |   1 +
 gnu/packages/i2p.scm | 107 +++++++++++++++++++++++++++++++++++++++++++
 gnu/packages/web.scm |  36 +++++++++++++++
 3 files changed, 144 insertions(+)
 create mode 100644 gnu/packages/i2p.scm
diff mbox series

Patch

diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index d1f5ec2eb6..dfc94e4eba 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -34,6 +34,7 @@ 
 ;;; Copyright © 2019 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
 ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
+;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -71,6 +72,7 @@ 
   #:use-module (gnu packages admin)
   #:use-module (gnu packages adns)
   #:use-module (gnu packages apr)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages docbook)
@@ -854,6 +856,32 @@  for efficient socket-like bidirectional reliable communication channels.")
     ;; This is LGPLv2.1-only with extra exceptions specified in 'LICENSE'.
     (license license:lgpl2.1)))
 
+(define-public websocketpp
+  (package
+   (name "websocketpp")
+   (version "0.8.1")
+   (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/zaphoyd/websocketpp.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "12ffczcrryh74c1xssww35ic6yiy2l2xgdd30lshiq9wnzl2brgy"))))
+   (build-system cmake-build-system)
+   (inputs `(("boost" ,boost)
+             ("openssl" ,openssl)))
+   (arguments '(#:configure-flags
+                '("-DBUILD_TESTS=ON")))
+   (home-page "https://www.zaphoyd.com/websocketpp/")
+   (synopsis "C++ library implementing the WebSocket protocol.")
+   (description "WebSocket++ is a C++ library that can be used to implement
+WebSocket functionality.  The goals of the project are to provide a WebSocket
+implementation that is simple, portable, flexible, lightweight, low level, and
+high performance.")
+   (license license:bsd-3)))
+
 (define-public libpsl
   (package
     (name "libpsl")