From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:34213) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ipzt6-00032V-1t for guix-patches@gnu.org; Fri, 10 Jan 2020 14:24:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ipzt4-0005Uy-6v for guix-patches@gnu.org; Fri, 10 Jan 2020 14:24:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:49025) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ipzt4-0005U9-2h for guix-patches@gnu.org; Fri, 10 Jan 2020 14:24:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ipzt3-0002Dk-Us for guix-patches@gnu.org; Fri, 10 Jan 2020 14:24:01 -0500 Subject: [bug#39013] [PATCH] gnu: Add abseil-cpp. Resent-Message-ID: Message-ID: From: Roel Janssen Date: Fri, 10 Jan 2020 20:23:37 +0100 In-Reply-To: <87sgkos3eg.fsf@gnu.org> References: <1f9fb8236e2a652ea4389c8d18b663307b275153.camel@gnu.org> <87sgkos3eg.fsf@gnu.org> Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 39013@debbugs.gnu.org On Thu, 2020-01-09 at 22:53 +0100, Ludovic Courtès wrote: > Hi Roel, > > Roel Janssen skribis: > > > There are two not-so-perfect things with the patch: > > 1. I had to use the latest Git commit because it adds bits to build > > shared libraries. > > Sounds good to me. > > > 2. I disabled the tests because it attempts to download "googletest". > > I tried modifying the build system to use "googletest" from Guix but > > that wasn't succesful. > > There are packages such as ‘encfs’ where we simply unpack the source of > our ‘googletest’ package in the right place. Would what work here? No. Here's an inline version of the package, because I've had enough trouble with Guix this week. (define-public abseil-cpp ;; We use this commit because it contains changes to the build system to ;; allow building shared libraries. (let ((commit "a048203a881f11f4b7b8df5fb563aec85522f8db")) (package (name "abseil-cpp") (version (string-append "20190808-" (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/abseil/abseil-cpp.git") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "13v3bkfyhrcl9am0jcz4cfbfc5rn3acm9z4wm01pn36vcgvw2l4s")))) (build-system cmake-build-system) (arguments `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON" "-DABSL_RUN_TESTS=ON") #:phases (modify-phases %standard-phases (add-before 'configure 'unpack-googletest (lambda* (#:key inputs #:allow-other-keys) ;; So, the CMake 'configure' phase expects the googletest-src ;; and googletest-build directories to be in the ../build ;; directory, but the Guix 'configure' phase creates the ;; directory using (mkdir "../build"), which errors out when ;; we have already created the build directory. ;; ;; The code below errors out, so if you have a solution for ;; this, that would be great. Until that time I will simply ;; postpone working on upgrading the TensorFlow package in ;; the upstream repository of Guix. (mkdir-p "../build") (with-directory-excursion "../build" (format #t "We're in ~s~%" (getcwd)) (mkdir-p "googletest-src") (mkdir-p "googletest-build") (copy-recursively (assoc-ref inputs "googletest-source") "googletest-src") (copy-recursively (assoc-ref inputs "googletest") "googletest-build")) #t)) (replace 'check (lambda _ (invoke "ctest")))))) (native-inputs `(("googletest-source" ,(package-source googletest)) ("googletest" ,googletest))) (home-page "https://abseil.io") (synopsis "Augmented C++ standard library") (description "Abseil is a collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google's C++ code base.") (license license:asl2.0)))) Thanks, Roel