From 137cb57dfb6b983521f758992a4424301acb4281 Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Sat, 24 May 2014 17:17:49 +0000 Subject: [PATCH] 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. --- gnu-system.am | 1 + gnu/packages/hurd.scm | 66 ++++++++++++++++++++++++++++++++- gnu/packages/patches/minimal-hurd.patch | 47 +++++++++++++++++++++++ 3 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/minimal-hurd.patch diff --git a/gnu-system.am b/gnu-system.am index 314db3e..4f7a110 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -308,6 +308,7 @@ dist_patch_DATA = \ gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \ gnu/packages/patches/gtkglext-remove-pangox-dependency.patch \ gnu/packages/patches/hop-bigloo-4.0b.patch \ + gnu/packages/patches/hurd-minimal.patch \ gnu/packages/patches/inkscape-stray-comma.patch \ gnu/packages/patches/libevent-dns-tests.patch \ gnu/packages/patches/libffi-mips-n32-fix.patch \ diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index f1e7dbc..c70b1c3 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -24,7 +24,9 @@ #: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 +130,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 "353fe33eb2481a14dc324c7c2e52b2032df86465"))) + (sha256 + (base32 + "1662cnz7mabqmq9ap3hw7aiigg1pdpb3gjm6fxxjj8lrbggsgh4d")) + (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))) + (outputs '("out")) + + (arguments + `(#:out-of-source? #t + #: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 folder manually, + ;; since there is no target for that in the makefile + (copy-recursively "libihash" + (string-append out "/libihash")) + #t)) + (alist-replace + 'build + (lambda _ + (zero? (system* "make" "-Clibihash" "libihash.a"))) + (alist-cons-before + 'configure 'bootstrap + (lambda* (#:key inputs source #:allow-other-keys) + (let ((glibc (assoc-ref inputs "glibc-hurd-headers"))) + (zero? (system* "autoreconf" "-vif")) + #t)) + %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/minimal-hurd.patch b/gnu/packages/patches/minimal-hurd.patch new file mode 100644 index 0000000..bfc5bc9 --- /dev/null +++ b/gnu/packages/patches/minimal-hurd.patch @@ -0,0 +1,47 @@ +diff --git a/configure.ac b/configure.ac +index ecabfdf..7ede6db 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -83,6 +83,13 @@ AC_PROG_INSTALL + AC_PROG_AWK + AC_PROG_SED + ++if test "x$cross_compiling" = "xyes"; then ++ # It may be that we don't have a working libc yet, for instance ++ # because we're bootstrapping the cross-compilation tool chain. ++ # Thus, use this undocumented Autoconf macro designed for this. ++ AC_NO_EXECUTABLES ++ echo done ++fi + AC_PROG_CC + # Require GCC. + if test x$GCC != xyes; then + +diff --git a/configure.ac b/configure.ac +index 873ced8..e160db1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -156,8 +156,9 @@ else + fi + AC_SUBST(VERSIONING) + +-# Check if libc contains getgrouplist and/or uselocale. +-AC_CHECK_FUNCS(getgrouplist uselocale) ++# We do not need to check if libc contains getgrouplist ++# and/or uselocale for now. ++# AC_CHECK_FUNCS(getgrouplist uselocale) + + + # From glibc HEAD, 2007-11-07. +@@ -293,9 +294,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 -- 1.9.3