diff mbox

[1/4] gnu: Add librdkafka.

Message ID 1465307818-12006-1-git-send-email-iyzsong@gmail.com
State New
Headers show

Commit Message

宋文武 June 7, 2016, 1:56 p.m. UTC
* gnu/packages/networking.scm (librdkafka): New variable.
---
 gnu/packages/networking.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

Comments

Ludovic Courtès June 10, 2016, 12:31 p.m. UTC | #1
宋文武 <iyzsong@gmail.com> skribis:

> * gnu/packages/networking.scm (librdkafka): New variable.

LGTM!

> +    (propagated-inputs
> +     `(("zlib" ,zlib))) ; in the Libs.private field of rdkafka.pc

It’s OK to do it this way, but I find it even nicer to modify the .pc to
add an extra -L (see ‘ipopt’ for an example of that.)

Thank you!

Ludo’.
=?utf-8?B?5a6L5paH5q2m?= June 11, 2016, 4:53 a.m. UTC | #2
Pushed, thanks for the review!
diff mbox

Patch

diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index ba8023a..d0062a6 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -149,6 +149,43 @@  filtering (subscriptions), seamless access to multiple transport protocols and
 more.")
     (license license:lgpl3+)))
 
+(define-public librdkafka
+  (package
+    (name "librdkafka")
+    (version "0.9.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://github.com/edenhill/librdkafka/archive/"
+                    version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "10ldx7g7ymmg17snzx78vy4n8ma1rjx0agzi34g15j2fk867xmas"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           ;; its custom configure script doesn't understand 'CONFIG_SHELL'.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               ;; librdkafka++.so lacks RUNPATH for librdkafka.so
+               (setenv "LDFLAGS"
+                       (string-append "-Wl,-rpath=" out "/lib"))
+               (zero? (system* "./configure"
+                               (string-append "--prefix=" out)))))))))
+    (native-inputs
+     `(("python" ,python-wrapper)))
+    (propagated-inputs
+     `(("zlib" ,zlib))) ; in the Libs.private field of rdkafka.pc
+    (home-page "https://github.com/edenhill/librdkafka")
+    (synopsis "Apache Kafka C/C++ client library")
+    (description
+     "librdkafka is a C library implementation of the Apache Kafka protocol,
+containing both Producer and Consumer support.")
+    (license license:bsd-2)))
+
 (define-public libndp
   (package
     (name "libndp")