unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] gnu: cmake: Use our curl, zlib, expat, bzip2, and libarchive.
@ 2014-10-08 16:59 Eric Bavier
  2014-10-08 19:37 ` Ludovic Courtès
  0 siblings, 1 reply; 2+ messages in thread
From: Eric Bavier @ 2014-10-08 16:59 UTC (permalink / raw)
  To: guix-devel

[-- Attachment #1: Type: text/plain, Size: 77 bytes --]

Sending this patch to the list, as it would likely cause a lot of
rebuilds.


[-- Attachment #2: 0001-gnu-cmake-Use-our-curl-zlib-expat-bzip2-and-libarchi.patch --]
[-- Type: text/x-diff, Size: 6062 bytes --]

From c824d34faecc173bafc513d0b2052597a46dddfd Mon Sep 17 00:00:00 2001
From: Eric Bavier <bavier@member.fsf.org>
Date: Wed, 8 Oct 2014 11:55:40 -0500
Subject: [PATCH] gnu: cmake: Use our curl, zlib, expat, bzip2, and
 libarchive.

* gnu/packages/cmake.scm (cmake)[arguments]: Move sh-patching to new
  'patch-bin-sh phase.  New 'set-paths phase.
  [inputs]: Add curl, zlib, expat, bzip2, and libarchive.
  [description]: Fix space after end-of-sentence.
---
 gnu/packages/cmake.scm |   73 +++++++++++++++++++++++++++++++-----------------
 1 file changed, 47 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm
index 87a70de..2c20c73 100644
--- a/gnu/packages/cmake.scm
+++ b/gnu/packages/cmake.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -18,12 +19,16 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages cmake)
-  #:use-module (guix licenses)
+  #:use-module ((guix licenses) #:select (bsd-3))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages backup)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages curl)
   #:use-module (gnu packages file)
+  #:use-module (gnu packages xml)
   #:use-module (srfi srfi-1))
 
 (define-public cmake
@@ -43,13 +48,12 @@
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
-       #:phases (alist-replace
-                 'configure
-                 (lambda* (#:key outputs #:allow-other-keys)
-                   (let ((out (assoc-ref outputs "out")))
-                     ;; Replace "/bin/sh" by the right path in... a lot of
-                     ;; files.
-                     (substitute*
+       #:phases (alist-cons-before
+                 'configure 'patch-bin-sh
+                 (lambda _
+                   ;; Replace "/bin/sh" by the right path in... a lot of
+                   ;; files.
+                   (substitute*
                        '("Modules/CompilerId/Xcode-3.pbxproj.in"
                          "Modules/CompilerId/Xcode-1.pbxproj.in"
                          "Modules/CompilerId/Xcode-2.pbxproj.in"
@@ -62,29 +66,46 @@
                          "Utilities/Release/release_cmake.cmake"
                          "Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c"
                          "Tests/CMakeLists.txt")
-                       (("/bin/sh") (which "sh")))
-                     (zero? (system*
-                             "./configure"
-                             (string-append "--prefix=" out)
-                             ;; By default, the man pages and other docs land
-                             ;; in PREFIX/man and PREFIX/doc, but we want them
-                             ;; in share/{man,doc}.  Note that unlike
-                             ;; autoconf-generated configure scripts, cmake's
-                             ;; configure prepends "PREFIX/" to what we pass
-                             ;; to --mandir and --docdir.
-                             "--mandir=share/man"
-                             ,(string-append
-                               "--docdir=share/doc/cmake-"
-                               (string-join (take (string-split version #\.) 2)
-                                            "."))))))
-                 %standard-phases)))
+                     (("/bin/sh") (which "sh"))))
+                 (alist-cons-before
+                  'configure 'set-paths
+                  (lambda _
+                    ;; Help cmake's bootstrap process to find system libraries
+                    (begin
+                      (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
+                      (setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH"))))
+                  (alist-replace
+                   'configure
+                   (lambda* (#:key outputs #:allow-other-keys)
+                     (let ((out (assoc-ref outputs "out")))
+                       (zero? (system*
+                               "./configure"
+                               (string-append "--prefix=" out)
+                               "--system-libs"
+                               ;; By default, the man pages and other docs land
+                               ;; in PREFIX/man and PREFIX/doc, but we want them
+                               ;; in share/{man,doc}.  Note that unlike
+                               ;; autoconf-generated configure scripts, cmake's
+                               ;; configure prepends "PREFIX/" to what we pass
+                               ;; to --mandir and --docdir.
+                               "--mandir=share/man"
+                               ,(string-append
+                                 "--docdir=share/doc/cmake-"
+                                 (string-join (take (string-split version #\.) 2)
+                                              "."))))))
+                   %standard-phases)))))
     (inputs
-     `(("file" ,file)))
+     `(("file"       ,file)
+       ("curl"       ,curl)
+       ("zlib"       ,zlib)
+       ("expat"      ,expat)
+       ("bzip2"      ,bzip2)
+       ("libarchive" ,libarchive)))
     (home-page "http://www.cmake.org/")
     (synopsis "Cross-platform build system")
     (description
      "CMake is a family of tools designed to build, test and package software.
 CMake is used to control the software compilation process using simple platform
-and compiler independent configuration files. CMake generates native makefiles
+and compiler independent configuration files.  CMake generates native makefiles
 and workspaces that can be used in the compiler environment of your choice.")
     (license bsd-3)))
-- 
1.7.9.5


[-- Attachment #3: Type: text/plain, Size: 17 bytes --]


-- 
Eric Bavier

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] gnu: cmake: Use our curl, zlib, expat, bzip2, and libarchive.
  2014-10-08 16:59 [PATCH] gnu: cmake: Use our curl, zlib, expat, bzip2, and libarchive Eric Bavier
@ 2014-10-08 19:37 ` Ludovic Courtès
  0 siblings, 0 replies; 2+ messages in thread
From: Ludovic Courtès @ 2014-10-08 19:37 UTC (permalink / raw)
  To: Eric Bavier; +Cc: guix-devel

Eric Bavier <ericbavier@gmail.com> skribis:

> Sending this patch to the list, as it would likely cause a lot of
> rebuilds.
>
>
> From c824d34faecc173bafc513d0b2052597a46dddfd Mon Sep 17 00:00:00 2001
> From: Eric Bavier <bavier@member.fsf.org>
> Date: Wed, 8 Oct 2014 11:55:40 -0500
> Subject: [PATCH] gnu: cmake: Use our curl, zlib, expat, bzip2, and
>  libarchive.
>
> * gnu/packages/cmake.scm (cmake)[arguments]: Move sh-patching to new
>   'patch-bin-sh phase.  New 'set-paths phase.
>   [inputs]: Add curl, zlib, expat, bzip2, and libarchive.
>   [description]: Fix space after end-of-sentence.

LGTM.  I think it’s fine to apply it on ‘master’ now (MIPS builds are
lagging behind, but that’s OK.)

Ludo’.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-10-08 19:37 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-08 16:59 [PATCH] gnu: cmake: Use our curl, zlib, expat, bzip2, and libarchive Eric Bavier
2014-10-08 19:37 ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).