diff mbox

Bash headers path changed in 4.4 (core-updates)

Message ID 87d1izayvl.fsf@gnu.org
State New
Headers show

Commit Message

Ludovic Courtès Oct. 17, 2016, 1:28 p.m. UTC
Leo Famulari <leo@famulari.name> 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:
How does that sound?

Thanks,
Ludo’.

Comments

Ludovic Courtès Oct. 17, 2016, 8:07 p.m. UTC | #1
ludo@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’.
Leo Famulari Oct. 17, 2016, 9:16 p.m. UTC | #2
On Mon, Oct 17, 2016 at 10:07:52PM +0200, Ludovic Courtès wrote:
> ludo@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!
diff mbox

Patch

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)