Re: Bash headers path changed in 4.4 (core-updates)

2016-10-17 Thread Leo Famulari
On Mon, Oct 17, 2016 at 10:07:52PM +0200, Ludovic Courtès wrote:
> l...@gnu.org (Ludovic Courtès) skribis:
> 
> > I believe this patch should work, though I haven’t yet been able to
> > rebuild recutils:
> 
> I pushed a variant of it as c21af659b4e6871b9576278cd5745881c696fd70.

Thanks!



Re: Bash headers path changed in 4.4 (core-updates)

2016-10-17 Thread Ludovic Courtès
l...@gnu.org (Ludovic Courtès) skribis:

> I believe this patch should work, though I haven’t yet been able to
> rebuild recutils:

I pushed a variant of it as c21af659b4e6871b9576278cd5745881c696fd70.

Ludo’.



Re: Bash headers path changed in 4.4 (core-updates)

2016-10-17 Thread Ludovic Courtès
Leo Famulari  skribis:

> While looking at the build failure of recutils on core-updates [0], I
> noticed that the directory structure of bash:include changed from 4.3 to
> 4.4.
>
> Using stdc.h as an example, For 4.3, our package creates a tree like this:
> ./include/bash/stdc.h
>
> For 4.4, it's like this:
> ./include/bash/include/stdc.h

Note that there’s also include/bash/*.h.

> Is this intentional?

Sort of.  It used to be that Bash did not install its headers by itself,
so we had a phase to do that, roughly following what Debian did.

With 4.4, the headers are officially installed (there’s even a .pc
file), so I removed that phase and let ‘make install’ do its thing.

‘bash.pc’ contains this:

--8<---cut here---start->8---
headersdir=${includedir}/bash

[...]

Cflags: ${SHOBJ_CFLAGS} ${CCFLAGS} -I${headersdir} -I${headersdir}/builtins 
-I${headersdir}/include
--8<---cut here---end--->8---

so everything should work fine for packages that use bash.pc.

However, there are currently zero packages using bash.pc because that
file is brand new, so we’ll have to manually adjust them for now.

I believe this patch should work, though I haven’t yet been able to
rebuild recutils:

diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index b7bd1f0..8262101 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -405,7 +405,19 @@ pictures, sounds, or video.")
  #:configure-flags
  (list (string-append "--with-bash-headers="
   (assoc-ref %build-inputs "bash:include")
-  "/include/bash"
+  "/include/bash"))
+
+ #:phases (modify-phases %standard-phases
+(add-before 'build 'set-bash4.4-header-location
+  (lambda _
+;; Adjust the header search path for Bash 4.4
+;; in accordance with 'bash.pc'.
+(substitute* "bash/Makefile.in"
+  (("AM_CPPFLAGS = (.*)$" _ rest)
+   (string-append "AM_CPPFLAGS = " rest
+  " -I$(BASH_HEADERS)/include"
+  "\n")))
+#t)
 
 (native-inputs `(("emacs" ,emacs-minimal)
  ("bc" ,bc)

How does that sound?

Thanks,
Ludo’.