From c1cb85bf765e71aef674a132df644f4edf06a8e1 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 15 Jul 2019 16:51:16 +0200 Subject: [PATCH] gnu: gRPC: Re-add custom c-ares variant. Commit e8393ebe46d9ad09aceb152618db490378ba5ded updated c-ares without knowing that cmake-build-system was the most important feature of 'c-ares-next'. * gnu/packages/adns.scm (c-ares/cmake): New hidden package. * gnu/packages/machine-learning.scm (grpc)[inputs]: Change C-ARES to C-ARES/CMAKE. --- gnu/packages/adns.scm | 15 +++++++++++++++ gnu/packages/machine-learning.scm | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/gnu/packages/adns.scm b/gnu/packages/adns.scm index f6df825e7c..541612d41a 100644 --- a/gnu/packages/adns.scm +++ b/gnu/packages/adns.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014 Ludovic Courtès ;;; Copyright © 2015, 2016, 2018 Efraim Flashner ;;; Copyright © 2018 Ricardo Wurmus +;;; Copyright © 2019 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -82,3 +83,17 @@ (define-public c-ares The primary examples of such applications are servers which communicate with multiple clients and programs with graphical user interfaces.") (license (x11-style "https://c-ares.haxx.se/license.html")))) + +;; gRPC requires a c-ares built with CMake in order to get the .cmake modules. +;; We can not build c-ares itself with CMake because that would introduce a +;; circular dependency through nghttp2. +;; XXX: It would be nice if we could extract the modules somehow and make them +;; work with the "normal" c-ares package instead of building a whole new library. +(define-public c-ares/cmake + (hidden-package + (package + (inherit c-ares) + (build-system cmake-build-system) + (arguments + `(;; XXX: Tests require name resolution (the normal variant runs no tests). + #:tests? #f))))) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index fc527363c0..ace52b4c9d 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -1292,7 +1292,7 @@ (define-public grpc "-DgRPC_SSL_PROVIDER=package" "-DgRPC_PROTOBUF_PROVIDER=package"))) (inputs - `(("c-ares" ,c-ares) + `(("c-ares" ,c-ares/cmake) ("openssl" ,openssl) ("zlib" ,zlib))) (native-inputs