guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] gnu: hurd: Add Hurd Minimal.


From: Ludovic Courtès
Subject: Re: [PATCH] gnu: hurd: Add Hurd Minimal.
Date: Sun, 25 May 2014 01:12:01 +0200
User-agent: Gnus/5.130009 (Ma Gnus v0.9) Emacs/24.3 (gnu/linux)

Manolis Ragkousis <address@hidden> skribis:

> This patch adds Hurd minimal package which builds 'libihash.a' and a
> patch which disables linking of libihash against glibc. Next is the
> glibc/hurd package, but I will send it later/tomorrow cause there is
> something I need to ask the Hurd guys first.

Great, keep up the good work.  :-)

> From 137cb57dfb6b983521f758992a4424301acb4281 Mon Sep 17 00:00:00 2001
> From: Manolis Ragkousis <address@hidden>
> 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.

[...]

> +(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")))

It may be OK currently if the version of hurd-headers does not match
that of the actual hurd, but we’ll have to be cautious.

Eventually we should consider changing hurd-headers to use the same
source (and hurd-minimal and hurd would just use (package-source
hurd-headers).)

> +    (outputs '("out"))

Can be omitted (it’s the same as the default value.)

> +    (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"))

This creates
/gnu/store/.../libihash/{libihash.a,Makefile,ihash.c,ihash.o,...}.  Is
it really what’d intended?

I would expect that the intent is to create
/gnu/store/.../{lib/libihash.a,include/ihash.h}, no?

> +                   (lambda* (#:key inputs source #:allow-other-keys)
> +                     (let ((glibc (assoc-ref inputs "glibc-hurd-headers")))
> +                       (zero? (system* "autoreconf" "-vif"))
> +                       #t))

Can be simplified to:

  (lambda _
    (zero? (system* "autoreconf" "-vfi")))

Note that the effect of the trailing #t above was to ignore the result
of ‘system*’, which means ignoring errors when they occur.

> --- /dev/null
> +++ b/gnu/packages/patches/minimal-hurd.patch

Please add a line or two in the patch saying what it does, and linking
to the original discussion.

> @@ -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

I gather that this works as advertised, but could you confirm by
replying to
<http://lists.gnu.org/archive/html/bug-hurd/2014-04/msg00139.html>?
That would allow us to push the patch upstream.

> +-# 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)

I’ve just posted a patch for that, we’ll see.

> +-# 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])

What’s the problem that’s addressed here?

Thanks,
Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]