aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorManolis Ragkousis <manolis837@gmail.com>2014-06-01 18:17:03 +0000
committerLudovic Courtès <ludo@gnu.org>2014-06-01 23:56:14 +0200
commitbc046a94dec2afadbc1ee3957f13098a8d8b393c (patch)
tree0769630ac19ef817d15c5b41766e5b3bc679bbad /gnu
parent1f3fc60da529207187fcb0930a06525b6d5b38c9 (diff)
downloadguix-bc046a94dec2afadbc1ee3957f13098a8d8b393c.tar
guix-bc046a94dec2afadbc1ee3957f13098a8d8b393c.tar.gz
gnu: hurd: Add Hurd Minimal.
* gnu/packages/hurd.scm (hurd-minimal): New variable. * gnu/packages/patches/hurd-minimal.patch: New patch. * gnu-system.am (dist_patch_DATA): Add it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/hurd.scm67
-rw-r--r--gnu/packages/patches/hurd-minimal.patch21
2 files changed, 87 insertions, 1 deletions
diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index f1e7dbc9dc..346a37bf3e 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -20,11 +20,14 @@
#:use-module (guix licenses)
#:use-module (guix download)
#:use-module (guix packages)
+ #:use-module (gnu packages)
#:use-module (guix build-system gnu)
#:use-module (gnu packages flex)
#:use-module (gnu packages bison)
#:use-module (gnu packages perl)
- #:use-module (gnu packages autotools))
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages base)
+ #:use-module (guix git-download))
(define-public gnumach-headers
(package
@@ -128,3 +131,65 @@ communication.")
"This package provides C headers of the GNU Hurd, used to build the GNU C
Library and other user programs.")
(license gpl2+)))
+
+(define-public hurd-minimal
+ (package
+ (name "hurd-minimal")
+ (version "0.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "git://git.savannah.gnu.org/hurd/hurd")
+ (commit "a5ca1de1eb575294dbc865a2c4ff643efc117ef4")))
+ (sha256
+ (base32
+ "17vqdlpy1ifw4ijhc3ydkp8p5d406c7aq4ghpmg4a1h1wlwy32kr"))
+ (file-name (string-append name "-" version))
+ (patches (list (search-patch "hurd-minimal.patch")))))
+ (build-system gnu-build-system)
+ (inputs `(("glibc-hurd-headers" ,glibc/hurd-headers)))
+ (native-inputs
+ `(("autoconf" ,autoconf-wrapper)
+ ("mig" ,mig)))
+
+ (arguments
+ `(#:phases (alist-replace
+ 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; We need to copy libihash.a to the output directory manually,
+ ;; since there is no target for that in the makefile.
+ (mkdir-p (string-append out "/include"))
+ (copy-file "libihash/ihash.h"
+ (string-append out "/include/ihash.h"))
+ (mkdir-p (string-append out "/lib"))
+ (copy-file "libihash/libihash.a"
+ (string-append out "/lib/libihash.a"))
+ #t))
+ (alist-replace
+ 'build
+ (lambda _
+ (zero? (system* "make" "-Clibihash" "libihash.a")))
+ (alist-cons-before
+ 'configure 'bootstrap
+ (lambda _
+ (zero? (system* "autoreconf" "-vfi")))
+ %standard-phases)))
+ #:configure-flags '(;; Pretend we're on GNU/Hurd; 'configure' wants
+ ;; that.
+ "--host=i686-pc-gnu"
+
+ ;; Reduce set of dependencies.
+ "--disable-ncursesw"
+ "--disable-test"
+ "--without-libbz2"
+ "--without-libz"
+ "--without-parted")
+ #:tests? #f))
+ (home-page "http://www.gnu.org/software/hurd/hurd.html")
+ (synopsis "GNU Hurd libraries")
+ (description
+ "This package provides libihash, needed to build the GNU C
+Library for GNU/Hurd")
+ (license gpl2+)))
diff --git a/gnu/packages/patches/hurd-minimal.patch b/gnu/packages/patches/hurd-minimal.patch
new file mode 100644
index 0000000000..72322fff97
--- /dev/null
+++ b/gnu/packages/patches/hurd-minimal.patch
@@ -0,0 +1,21 @@
+We need to disable linking with glibc in order to build
+libihash, which is a dependency of glibc.
+After the flag AC_NO_EXECUTABLES is passed, linking is
+not allowed so we disable those tests.
+
+diff --git a/configure.ac b/configure.ac
+index f8856db..a381219 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -297,9 +297,9 @@ AC_SUBST([XKB_BASE])
+ AC_DEFINE_UNQUOTED([X11_PREFIX], "$X11_PREFIX")
+ AC_SUBST([X11_KEYSYMDEF_H])
+
+-# Check for Sun RPC headers and library.
++# Check only for Sun RPC headers. We do not need the library yet.
+ AC_CHECK_HEADER([rpc/types.h], [HAVE_SUN_RPC=yes], [HAVE_SUN_RPC=no])
+-AC_SEARCH_LIBS([clnt_create], [], [:], [HAVE_SUN_RPC=no])
++# AC_SEARCH_LIBS([clnt_create], [], [:], [HAVE_SUN_RPC=no])
+ AC_SUBST([HAVE_SUN_RPC])
+
+ if test -f ./$ac_unique_file; then