unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
@ 2018-01-01 12:15 Philipp
  2018-01-01 13:13 ` Noam Postavsky
  2018-01-01 14:59 ` Alan Third
  0 siblings, 2 replies; 20+ messages in thread
From: Philipp @ 2018-01-01 12:15 UTC (permalink / raw)
  To: 29931


There are a few small bugs when building on macOS and not passing the
right configure options.

1. When running configure without options, the build fails with an error

xml.c:26:10: fatal error: 'libxml/tree.h' file not found
#include <libxml/tree.h>
         ^~~~~~~~~~~~~~~

Apparently configure detects libxml2 to be present, but doesn't set the
correct include path.

2. When building with --without-libxml2, the build succeeds, but gives
warnings like

  GEN      ../../info/auth.info
./../emacs/docstyle.texi:3: warning: unrecognized encoding name `UTF-8'.

This is because macOS ships an ancient version of makeinfo (4.8).  It's
possible to install a newer version using Homebrew, but that's not in
PATH and therefore not found.  Maybe configure could also search for
makeinfo in the Homebrew directory (/usr/local/opt/texinfo/bin)?


In GNU Emacs 27.0.50 (build 1, x86_64-apple-darwin17.3.0, NS appkit-1561.20 Version 10.13.2 (Build 17C88))
 of 2018-01-01 built on p
Repository revision: d70a841f6a6f8d38620a4025a84c7bd76788531a
Windowing system distributor 'Apple', version 10.3.1561
System Description:  Mac OS X 10.13.2

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Configured using:
 'configure --without-xml2'

Configured features:
NOTIFY ACL GNUTLS ZLIB TOOLKIT_SCROLL_BARS NS JSON

Important settings:
  value of $LANG: de_DE.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny seq byte-opt gv
bytecomp byte-compile cconv cl-loaddefs cl-lib dired dired-loaddefs
format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg
epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils elec-pair time-date
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock
font-lock syntax facemenu font-core term/tty-colors frame cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote kqueue cocoa ns
multi-tty make-network-process emacs)

Memory information:
((conses 16 204457 9102)
 (symbols 48 20149 1)
 (miscs 40 43 191)
 (strings 32 28873 1569)
 (string-bytes 1 770488)
 (vectors 16 35127)
 (vector-slots 8 719006 13116)
 (floats 8 48 68)
 (intervals 56 200 0)
 (buffers 992 11))





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-01 12:15 bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS Philipp
@ 2018-01-01 13:13 ` Noam Postavsky
  2018-01-01 13:51   ` Philipp Stephani
  2018-01-01 14:54   ` Alan Third
  2018-01-01 14:59 ` Alan Third
  1 sibling, 2 replies; 20+ messages in thread
From: Noam Postavsky @ 2018-01-01 13:13 UTC (permalink / raw)
  To: Philipp; +Cc: 29931

Philipp <p.stephani2@gmail.com> writes:

>   GEN      ../../info/auth.info
> ./../emacs/docstyle.texi:3: warning: unrecognized encoding name `UTF-8'.
>
> This is because macOS ships an ancient version of makeinfo (4.8).

Doesn't configure catch this?

    ## Require makeinfo >= 4.13 (last of the 4.x series) to build the manuals.
    if test "${MAKEINFO:=makeinfo}" != "no"; then
      case `($MAKEINFO --version) 2>/dev/null` in
        *' (GNU texinfo) '4.1[[3-9]]* | \
        *' (GNU texinfo) '[[5-9]]* | \
        *' (GNU texinfo) '[[1-9][0-9]]* ) ;;
        *) MAKEINFO=no;;
      esac
    fi






^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-01 13:13 ` Noam Postavsky
@ 2018-01-01 13:51   ` Philipp Stephani
  2018-01-01 14:54   ` Alan Third
  1 sibling, 0 replies; 20+ messages in thread
From: Philipp Stephani @ 2018-01-01 13:51 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 29931

[-- Attachment #1: Type: text/plain, Size: 962 bytes --]

Noam Postavsky <npostavs@users.sourceforge.net> schrieb am Mo., 1. Jan.
2018 um 14:13 Uhr:

> Philipp <p.stephani2@gmail.com> writes:
>
> >   GEN      ../../info/auth.info
> > ./../emacs/docstyle.texi:3: warning: unrecognized encoding name `UTF-8'.
> >
> > This is because macOS ships an ancient version of makeinfo (4.8).
>
> Doesn't configure catch this?
>
>     ## Require makeinfo >= 4.13 (last of the 4.x series) to build the
> manuals.
>     if test "${MAKEINFO:=makeinfo}" != "no"; then
>       case `($MAKEINFO --version) 2>/dev/null` in
>         *' (GNU texinfo) '4.1[[3-9]]* | \
>         *' (GNU texinfo) '[[5-9]]* | \
>         *' (GNU texinfo) '[[1-9][0-9]]* ) ;;
>         *) MAKEINFO=no;;
>       esac
>     fi
>
>
Indeed, but only for a fresh checkout. Otherwise configure sees that info/
emacs.info already exists and thinks that it's a release build.
Maybe configure could check for .git instead? That should detect a Git
clone more reliably.

[-- Attachment #2: Type: text/html, Size: 1578 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-01 13:13 ` Noam Postavsky
  2018-01-01 13:51   ` Philipp Stephani
@ 2018-01-01 14:54   ` Alan Third
  1 sibling, 0 replies; 20+ messages in thread
From: Alan Third @ 2018-01-01 14:54 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: Philipp, 29931

On Mon, Jan 01, 2018 at 08:13:03AM -0500, Noam Postavsky wrote:
> Philipp <p.stephani2@gmail.com> writes:
> 
> >   GEN      ../../info/auth.info
> > ./../emacs/docstyle.texi:3: warning: unrecognized encoding name `UTF-8'.
> >
> > This is because macOS ships an ancient version of makeinfo (4.8).
> 
> Doesn't configure catch this?
> 
>     ## Require makeinfo >= 4.13 (last of the 4.x series) to build the manuals.
>     if test "${MAKEINFO:=makeinfo}" != "no"; then
>       case `($MAKEINFO --version) 2>/dev/null` in
>         *' (GNU texinfo) '4.1[[3-9]]* | \
>         *' (GNU texinfo) '[[5-9]]* | \
>         *' (GNU texinfo) '[[1-9][0-9]]* ) ;;
>         *) MAKEINFO=no;;
>       esac
>     fi

It looks to me like this test is almost immediately circumvented by:

    if test "$MAKEINFO" = "no"; then
      MAKEINFO=makeinfo

configure only throws up an error message if you don’t already have
info/emacs.info in your build tree, and I’d guess Philipp has them
from before the check for 4.13 was implemented (December 2016).

-- 
Alan Third





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-01 12:15 bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS Philipp
  2018-01-01 13:13 ` Noam Postavsky
@ 2018-01-01 14:59 ` Alan Third
  2018-01-01 15:05   ` Philipp Stephani
  1 sibling, 1 reply; 20+ messages in thread
From: Alan Third @ 2018-01-01 14:59 UTC (permalink / raw)
  To: Philipp; +Cc: 29931

On Mon, Jan 01, 2018 at 01:15:09PM +0100, Philipp wrote:
> 
> There are a few small bugs when building on macOS and not passing the
> right configure options.
> 
> 1. When running configure without options, the build fails with an error
> 
> xml.c:26:10: fatal error: 'libxml/tree.h' file not found
> #include <libxml/tree.h>
>          ^~~~~~~~~~~~~~~
> 
> Apparently configure detects libxml2 to be present, but doesn't set the
> correct include path.

This works fine here. Is it possible this was introduced by macOS
10.13?

Do you see the file in /usr/include/libxml2/libxml/?

> 2. When building with --without-libxml2, the build succeeds, but gives
> warnings like
> 
>   GEN      ../../info/auth.info
> ./../emacs/docstyle.texi:3: warning: unrecognized encoding name `UTF-8'.
> 
> This is because macOS ships an ancient version of makeinfo (4.8).  It's
> possible to install a newer version using Homebrew, but that's not in
> PATH and therefore not found.  Maybe configure could also search for
> makeinfo in the Homebrew directory (/usr/local/opt/texinfo/bin)?

I’d think it’s the user’s responsibility to make sure /usr/local/bin
is on their path if they want to use homebrew stuff?
-- 
Alan Third





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-01 14:59 ` Alan Third
@ 2018-01-01 15:05   ` Philipp Stephani
  2018-01-01 15:12     ` Philipp Stephani
  2018-01-01 15:48     ` Alan Third
  0 siblings, 2 replies; 20+ messages in thread
From: Philipp Stephani @ 2018-01-01 15:05 UTC (permalink / raw)
  To: Alan Third; +Cc: 29931

[-- Attachment #1: Type: text/plain, Size: 2176 bytes --]

Alan Third <alan@idiocy.org> schrieb am Mo., 1. Jan. 2018 um 15:59 Uhr:

> On Mon, Jan 01, 2018 at 01:15:09PM +0100, Philipp wrote:
> >
> > There are a few small bugs when building on macOS and not passing the
> > right configure options.
> >
> > 1. When running configure without options, the build fails with an error
> >
> > xml.c:26:10: fatal error: 'libxml/tree.h' file not found
> > #include <libxml/tree.h>
> >          ^~~~~~~~~~~~~~~
> >
> > Apparently configure detects libxml2 to be present, but doesn't set the
> > correct include path.
>
> This works fine here. Is it possible this was introduced by macOS
> 10.13?
>
> Do you see the file in /usr/include/libxml2/libxml/?
>

No, /usr/include doesn't exist at all on my system. The include directory
is
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include.


>
> > 2. When building with --without-libxml2, the build succeeds, but gives
> > warnings like
> >
> >   GEN      ../../info/auth.info
> > ./../emacs/docstyle.texi:3: warning: unrecognized encoding name `UTF-8'.
> >
> > This is because macOS ships an ancient version of makeinfo (4.8).  It's
> > possible to install a newer version using Homebrew, but that's not in
> > PATH and therefore not found.  Maybe configure could also search for
> > makeinfo in the Homebrew directory (/usr/local/opt/texinfo/bin)?
>
> I’d think it’s the user’s responsibility to make sure /usr/local/bin
> is on their path if they want to use homebrew stuff?
>
>
/usr/local/bin doesn't contain makeinfo when installed via Homebrew. This
is intentional; `brew info texinfo` says

==> *Caveats*

This formula is keg-only, which means it was not symlinked into /usr/local,

because software that uses TeX, such as lilypond and octave, require a newer

version of these files.


If you need to have this software first in your PATH run:
  echo 'export PATH="/usr/local/opt/texinfo/bin:$PATH"' >> ~/.bash_profile

I can obviously do that or set MAKEINFO explicitly when invoking configure,
but it would be nice if configure detected this situation automatically.

[-- Attachment #2: Type: text/html, Size: 3414 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-01 15:05   ` Philipp Stephani
@ 2018-01-01 15:12     ` Philipp Stephani
  2018-01-01 15:53       ` Alan Third
  2018-01-01 15:48     ` Alan Third
  1 sibling, 1 reply; 20+ messages in thread
From: Philipp Stephani @ 2018-01-01 15:12 UTC (permalink / raw)
  To: Alan Third; +Cc: 29931

[-- Attachment #1: Type: text/plain, Size: 1259 bytes --]

Philipp Stephani <p.stephani2@gmail.com> schrieb am Mo., 1. Jan. 2018 um
16:05 Uhr:

> Alan Third <alan@idiocy.org> schrieb am Mo., 1. Jan. 2018 um 15:59 Uhr:
>
>> On Mon, Jan 01, 2018 at 01:15:09PM +0100, Philipp wrote:
>> >
>> > There are a few small bugs when building on macOS and not passing the
>> > right configure options.
>> >
>> > 1. When running configure without options, the build fails with an error
>> >
>> > xml.c:26:10: fatal error: 'libxml/tree.h' file not found
>> > #include <libxml/tree.h>
>> >          ^~~~~~~~~~~~~~~
>> >
>> > Apparently configure detects libxml2 to be present, but doesn't set the
>> > correct include path.
>>
>> This works fine here. Is it possible this was introduced by macOS
>> 10.13?
>>
>> Do you see the file in /usr/include/libxml2/libxml/?
>>
>
> No, /usr/include doesn't exist at all on my system. The include directory
> is
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include.
>

`xcode-select --install` does add a /usr/include directory. If
`xcode-select --install` is necessary for building Emacs, should configure
error out if it hasn't been run?
However, all other parts of the build process seem to work fine without
`xcode-select --install`.

[-- Attachment #2: Type: text/html, Size: 2034 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-01 15:05   ` Philipp Stephani
  2018-01-01 15:12     ` Philipp Stephani
@ 2018-01-01 15:48     ` Alan Third
  2018-01-02 19:42       ` Philipp Stephani
  2018-01-02 19:48       ` Philipp Stephani
  1 sibling, 2 replies; 20+ messages in thread
From: Alan Third @ 2018-01-01 15:48 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: 29931

[-- Attachment #1: Type: text/plain, Size: 867 bytes --]

On Mon, Jan 01, 2018 at 03:05:02PM +0000, Philipp Stephani wrote:
> Alan Third <alan@idiocy.org> schrieb am Mo., 1. Jan. 2018 um 15:59 Uhr:
> 
> > I’d think it’s the user’s responsibility to make sure /usr/local/bin
> > is on their path if they want to use homebrew stuff?
> >
> >
> /usr/local/bin doesn't contain makeinfo when installed via Homebrew. This
> is intentional; `brew info texinfo` says
<snip>
> If you need to have this software first in your PATH run:
>   echo 'export PATH="/usr/local/opt/texinfo/bin:$PATH"' >> ~/.bash_profile
> 
> I can obviously do that or set MAKEINFO explicitly when invoking configure,
> but it would be nice if configure detected this situation automatically.

Ah, I think I must have linked it into /usr/local/bin myself.

Do you have any idea if other packaging tools do similar things?

Patch attached.
-- 
Alan Third

[-- Attachment #2: 0001-Use-Homebrew-installed-makeinfo-if-it-exists-bug-299.patch --]
[-- Type: text/plain, Size: 998 bytes --]

From 6fe03f8c62a063866504ef1c746ac01305b53890 Mon Sep 17 00:00:00 2001
From: Alan Third <alan@idiocy.org>
Date: Mon, 1 Jan 2018 15:44:24 +0000
Subject: [PATCH] Use Homebrew installed makeinfo if it exists (bug#29931)

* configure.ac: Add check for Homebrew texinfo install on darwin.
---
 configure.ac | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/configure.ac b/configure.ac
index ec1418b99e..e695e0d791 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1267,6 +1267,13 @@ AC_DEFUN
 AC_SUBST([PAXCTL_dumped])
 AC_SUBST([PAXCTL_notdumped])
 
+# Makeinfo on macOS is ancient, check whether there is a more recent
+# version installed by Homebrew.
+if test "${opsys}" = darwin && test -z ${MAKEINFO} && \
+   test -d "/usr/local/opt/texinfo/bin"; then
+  MAKEINFO=/usr/local/opt/texinfo/bin/makeinfo
+fi
+
 ## Require makeinfo >= 4.13 (last of the 4.x series) to build the manuals.
 if test "${MAKEINFO:=makeinfo}" != "no"; then
   case `($MAKEINFO --version) 2>/dev/null` in
-- 
2.14.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-01 15:12     ` Philipp Stephani
@ 2018-01-01 15:53       ` Alan Third
  2018-01-02 12:10         ` Alan Third
  2018-01-02 19:51         ` Philipp Stephani
  0 siblings, 2 replies; 20+ messages in thread
From: Alan Third @ 2018-01-01 15:53 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: 29931

On Mon, Jan 01, 2018 at 03:12:57PM +0000, Philipp Stephani wrote:
> Philipp Stephani <p.stephani2@gmail.com> schrieb am Mo., 1. Jan. 2018 um
> 16:05 Uhr:
> 
> > Alan Third <alan@idiocy.org> schrieb am Mo., 1. Jan. 2018 um 15:59 Uhr:
> >
> >> On Mon, Jan 01, 2018 at 01:15:09PM +0100, Philipp wrote:
> >> >
> >> > There are a few small bugs when building on macOS and not passing the
> >> > right configure options.
> >> >
> >> > 1. When running configure without options, the build fails with an error
> >> >
> >> > xml.c:26:10: fatal error: 'libxml/tree.h' file not found
> >> > #include <libxml/tree.h>
> >> >          ^~~~~~~~~~~~~~~
> >> >
> >> > Apparently configure detects libxml2 to be present, but doesn't set the
> >> > correct include path.
> >>
> >> This works fine here. Is it possible this was introduced by macOS
> >> 10.13?
> >>
> >> Do you see the file in /usr/include/libxml2/libxml/?
> >>
> >
> > No, /usr/include doesn't exist at all on my system. The include directory
> > is
> > /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include.
> >
> 
> `xcode-select --install` does add a /usr/include directory. If
> `xcode-select --install` is necessary for building Emacs, should configure
> error out if it hasn't been run?
> However, all other parts of the build process seem to work fine without
> `xcode-select --install`.

Can you please run

    xcrun --show-sdk-path

And see if it returns something useful? On my machine it returns
nothing at all, but I don’t have the full xcode installed.
-- 
Alan Third





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-01 15:53       ` Alan Third
@ 2018-01-02 12:10         ` Alan Third
  2018-01-02 20:03           ` Philipp Stephani
  2018-01-02 19:51         ` Philipp Stephani
  1 sibling, 1 reply; 20+ messages in thread
From: Alan Third @ 2018-01-02 12:10 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: 29931

[-- Attachment #1: Type: text/plain, Size: 367 bytes --]

On Mon, Jan 01, 2018 at 03:53:59PM +0000, Alan Third wrote:
> Can you please run
> 
>     xcrun --show-sdk-path
> 
> And see if it returns something useful? On my machine it returns
> nothing at all, but I don’t have the full xcode installed.

Actually, I think I’ve found the bug. I’ve attached a patch that will
hopefully fix both your issues.
-- 
Alan Third

[-- Attachment #2: 0001-Fix-build-issues-on-macOS-bug-29931.patch --]
[-- Type: text/plain, Size: 1618 bytes --]

From aa1600509e188f3423943b4220a1faa210e356a2 Mon Sep 17 00:00:00 2001
From: Alan Third <alan@idiocy.org>
Date: Mon, 1 Jan 2018 15:44:24 +0000
Subject: [PATCH] Fix build issues on macOS (bug#29931)

* configure.ac: On darwin add check for Homebrew texinfo install, and
fix incorrect quoting of libxml2 includes.
---
 configure.ac | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index ec1418b99e..cc514710dc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1267,6 +1267,13 @@ AC_DEFUN
 AC_SUBST([PAXCTL_dumped])
 AC_SUBST([PAXCTL_notdumped])
 
+# Makeinfo on macOS is ancient, check whether there is a more recent
+# version installed by Homebrew.
+if test "${opsys}" = darwin && test -z ${MAKEINFO} && \
+   test -d "/usr/local/opt/texinfo/bin"; then
+  MAKEINFO=/usr/local/opt/texinfo/bin/makeinfo
+fi
+
 ## Require makeinfo >= 4.13 (last of the 4.x series) to build the manuals.
 if test "${MAKEINFO:=makeinfo}" != "no"; then
   case `($MAKEINFO --version) 2>/dev/null` in
@@ -3881,13 +3888,13 @@ AC_DEFUN
 	xcsdkdir="" ;;
       esac
     fi
-    CPPFLAGS="$CPPFLAGS -I$xcsdkdir/usr/include/libxml2"
+    CPPFLAGS="$CPPFLAGS -I${xcsdkdir}/usr/include/libxml2"
     AC_CHECK_HEADER(libxml/HTMLparser.h,
       [AC_CHECK_DECL(HTML_PARSE_RECOVER, HAVE_LIBXML2=yes, ,
 		     [#include <libxml/HTMLparser.h>])])
     CPPFLAGS="$SAVE_CPPFLAGS"
     if test "${HAVE_LIBXML2}" = "yes"; then
-      LIBXML2_CFLAGS="-I'$xcsdkdir/usr/include/libxml2'"
+      LIBXML2_CFLAGS="-I${xcsdkdir}/usr/include/libxml2"
       LIBXML2_LIBS="-lxml2"
     fi
   fi
-- 
2.14.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-01 15:48     ` Alan Third
@ 2018-01-02 19:42       ` Philipp Stephani
  2018-01-02 19:48       ` Philipp Stephani
  1 sibling, 0 replies; 20+ messages in thread
From: Philipp Stephani @ 2018-01-02 19:42 UTC (permalink / raw)
  To: Alan Third; +Cc: 29931

[-- Attachment #1: Type: text/plain, Size: 1158 bytes --]

Alan Third <alan@idiocy.org> schrieb am Mo., 1. Jan. 2018 um 16:48 Uhr:

> On Mon, Jan 01, 2018 at 03:05:02PM +0000, Philipp Stephani wrote:
> > Alan Third <alan@idiocy.org> schrieb am Mo., 1. Jan. 2018 um 15:59 Uhr:
> >
> > > I’d think it’s the user’s responsibility to make sure /usr/local/bin
> > > is on their path if they want to use homebrew stuff?
> > >
> > >
> > /usr/local/bin doesn't contain makeinfo when installed via Homebrew. This
> > is intentional; `brew info texinfo` says
> <snip>
> > If you need to have this software first in your PATH run:
> >   echo 'export PATH="/usr/local/opt/texinfo/bin:$PATH"' >>
> ~/.bash_profile
> >
> > I can obviously do that or set MAKEINFO explicitly when invoking
> configure,
> > but it would be nice if configure detected this situation automatically.
>
> Ah, I think I must have linked it into /usr/local/bin myself.
>
> Do you have any idea if other packaging tools do similar things?
>
>
No idea. Do you have an overview how important other package managers are
these days? It seems to me that Homebrew is by far the most popular one,
but I don't have any statistics.

[-- Attachment #2: Type: text/html, Size: 1606 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-01 15:48     ` Alan Third
  2018-01-02 19:42       ` Philipp Stephani
@ 2018-01-02 19:48       ` Philipp Stephani
  2018-01-02 19:49         ` Philipp Stephani
  2018-01-02 20:04         ` Eli Zaretskii
  1 sibling, 2 replies; 20+ messages in thread
From: Philipp Stephani @ 2018-01-02 19:48 UTC (permalink / raw)
  To: Alan Third; +Cc: 29931

[-- Attachment #1: Type: text/plain, Size: 172 bytes --]

Alan Third <alan@idiocy.org> schrieb am Mo., 1. Jan. 2018 um 16:48 Uhr:

> Patch attached.
>
>
Thanks. Maybe just do 'test -x /.../makeinfo' to test for the file
directly?

[-- Attachment #2: Type: text/html, Size: 454 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-02 19:48       ` Philipp Stephani
@ 2018-01-02 19:49         ` Philipp Stephani
  2018-01-02 20:04         ` Eli Zaretskii
  1 sibling, 0 replies; 20+ messages in thread
From: Philipp Stephani @ 2018-01-02 19:49 UTC (permalink / raw)
  To: Alan Third; +Cc: 29931

[-- Attachment #1: Type: text/plain, Size: 389 bytes --]

Philipp Stephani <p.stephani2@gmail.com> schrieb am Di., 2. Jan. 2018 um
20:48 Uhr:

>
>
> Alan Third <alan@idiocy.org> schrieb am Mo., 1. Jan. 2018 um 16:48 Uhr:
>
>> Patch attached.
>>
>>
> Thanks. Maybe just do 'test -x /.../makeinfo' to test for the file
> directly?
>

Also, please quote the variable substitution ("${MAKEINFO}"). OTOH, there's
no need to quote the literal filename.

[-- Attachment #2: Type: text/html, Size: 959 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-01 15:53       ` Alan Third
  2018-01-02 12:10         ` Alan Third
@ 2018-01-02 19:51         ` Philipp Stephani
  1 sibling, 0 replies; 20+ messages in thread
From: Philipp Stephani @ 2018-01-02 19:51 UTC (permalink / raw)
  To: Alan Third; +Cc: 29931

[-- Attachment #1: Type: text/plain, Size: 2021 bytes --]

Alan Third <alan@idiocy.org> schrieb am Mo., 1. Jan. 2018 um 16:54 Uhr:

> On Mon, Jan 01, 2018 at 03:12:57PM +0000, Philipp Stephani wrote:
> > Philipp Stephani <p.stephani2@gmail.com> schrieb am Mo., 1. Jan. 2018 um
> > 16:05 Uhr:
> >
> > > Alan Third <alan@idiocy.org> schrieb am Mo., 1. Jan. 2018 um 15:59
> Uhr:
> > >
> > >> On Mon, Jan 01, 2018 at 01:15:09PM +0100, Philipp wrote:
> > >> >
> > >> > There are a few small bugs when building on macOS and not passing
> the
> > >> > right configure options.
> > >> >
> > >> > 1. When running configure without options, the build fails with an
> error
> > >> >
> > >> > xml.c:26:10: fatal error: 'libxml/tree.h' file not found
> > >> > #include <libxml/tree.h>
> > >> >          ^~~~~~~~~~~~~~~
> > >> >
> > >> > Apparently configure detects libxml2 to be present, but doesn't set
> the
> > >> > correct include path.
> > >>
> > >> This works fine here. Is it possible this was introduced by macOS
> > >> 10.13?
> > >>
> > >> Do you see the file in /usr/include/libxml2/libxml/?
> > >>
> > >
> > > No, /usr/include doesn't exist at all on my system. The include
> directory
> > > is
> > >
> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include.
> > >
> >
> > `xcode-select --install` does add a /usr/include directory. If
> > `xcode-select --install` is necessary for building Emacs, should
> configure
> > error out if it hasn't been run?
> > However, all other parts of the build process seem to work fine without
> > `xcode-select --install`.
>
> Can you please run
>
>     xcrun --show-sdk-path
>
> And see if it returns something useful? On my machine it returns
> nothing at all, but I don’t have the full xcode installed.
>
>
It prints the correct directory:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
That is, `xcrun --show-sdk-path`/usr/include/libxml2 contains the required
header files.

[-- Attachment #2: Type: text/html, Size: 2794 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-02 12:10         ` Alan Third
@ 2018-01-02 20:03           ` Philipp Stephani
  2018-01-02 21:51             ` Alan Third
  0 siblings, 1 reply; 20+ messages in thread
From: Philipp Stephani @ 2018-01-02 20:03 UTC (permalink / raw)
  To: Alan Third; +Cc: 29931

[-- Attachment #1: Type: text/plain, Size: 676 bytes --]

Alan Third <alan@idiocy.org> schrieb am Di., 2. Jan. 2018 um 13:10 Uhr:

> On Mon, Jan 01, 2018 at 03:53:59PM +0000, Alan Third wrote:
> > Can you please run
> >
> >     xcrun --show-sdk-path
> >
> > And see if it returns something useful? On my machine it returns
> > nothing at all, but I don’t have the full xcode installed.
>
> Actually, I think I’ve found the bug. I’ve attached a patch that will
> hopefully fix both your issues.
>
>
Thanks, the patch for libxml2 looks correct. I can't test it now, because
I've already run xcode-select --install, and there's no easy way to revert
that.
Probably this should use -isystem instead of -I, though.

[-- Attachment #2: Type: text/html, Size: 1003 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-02 19:48       ` Philipp Stephani
  2018-01-02 19:49         ` Philipp Stephani
@ 2018-01-02 20:04         ` Eli Zaretskii
  2018-01-02 20:19           ` Alan Third
  1 sibling, 1 reply; 20+ messages in thread
From: Eli Zaretskii @ 2018-01-02 20:04 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: alan, 29931

> From: Philipp Stephani <p.stephani2@gmail.com>
> Date: Tue, 02 Jan 2018 19:48:45 +0000
> Cc: 29931@debbugs.gnu.org
> 
> Maybe just do 'test -x /.../makeinfo' to test for the file directly? 

ISTR that the -x switch to 'test' is non-portable.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-02 20:04         ` Eli Zaretskii
@ 2018-01-02 20:19           ` Alan Third
  2018-01-02 21:24             ` Alan Third
  0 siblings, 1 reply; 20+ messages in thread
From: Alan Third @ 2018-01-02 20:19 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Philipp Stephani, 29931

On Tue, Jan 02, 2018 at 10:04:37PM +0200, Eli Zaretskii wrote:
> > From: Philipp Stephani <p.stephani2@gmail.com>
> > Date: Tue, 02 Jan 2018 19:48:45 +0000
> > Cc: 29931@debbugs.gnu.org
> > 
> > Maybe just do 'test -x /.../makeinfo' to test for the file directly? 
> 
> ISTR that the -x switch to 'test' is non-portable.

I’m not sure how portable this test needs to be since it should only
run on darwin:

    if test "${opsys}" = darwin && test -z "${MAKEINFO}" && \
       test -x /usr/local/opt/texinfo/bin/makeinfo; then

-- 
Alan Third





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-02 20:19           ` Alan Third
@ 2018-01-02 21:24             ` Alan Third
  2018-01-07 14:05               ` Philipp Stephani
  0 siblings, 1 reply; 20+ messages in thread
From: Alan Third @ 2018-01-02 21:24 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Philipp Stephani, 29931

[-- Attachment #1: Type: text/plain, Size: 536 bytes --]

On Tue, Jan 02, 2018 at 08:19:00PM +0000, Alan Third wrote:
> I’m not sure how portable this test needs to be since it should only
> run on darwin:
> 
>     if test "${opsys}" = darwin && test -z "${MAKEINFO}" && \
>        test -x /usr/local/opt/texinfo/bin/makeinfo; then

I’ve done some investigation and come up with a version that uses
autoconfig macros.

I also looked into macports and it seems it always includes everything
you’ve installed, unlike homebrew, so we shouldn’t run into this issue
with it.

-- 
Alan Third

[-- Attachment #2: 0001-Fix-build-issues-on-macOS-bug-29931.patch --]
[-- Type: text/plain, Size: 1656 bytes --]

From b8d2de82a3ee3faa72ad54d68a00cec95370f504 Mon Sep 17 00:00:00 2001
From: Alan Third <alan@idiocy.org>
Date: Mon, 1 Jan 2018 15:44:24 +0000
Subject: [PATCH] Fix build issues on macOS (bug#29931)

* configure.ac: On darwin add check for Homebrew texinfo install, and
fix incorrect quoting of libxml2 includes.
---
 configure.ac | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 4c2644b11d..26f01cad13 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1267,6 +1267,14 @@ AC_DEFUN
 AC_SUBST([PAXCTL_dumped])
 AC_SUBST([PAXCTL_notdumped])
 
+# Makeinfo on macOS is ancient, check whether there is a more recent
+# version installed by Homebrew.
+AC_CHECK_PROG(HAVE_BREW, [brew], [yes])
+if test -n "$HAVE_BREW"; then
+  AC_PATH_PROG([MAKEINFO], [makeinfo], [],
+    [`brew --prefix 2>/dev/null`/opt/texinfo/bin$PATH_SEPARATOR$PATH])
+fi
+
 ## Require makeinfo >= 4.13 (last of the 4.x series) to build the manuals.
 if test "${MAKEINFO:=makeinfo}" != "no"; then
   case `($MAKEINFO --version) 2>/dev/null` in
@@ -3881,13 +3889,13 @@ AC_DEFUN
 	xcsdkdir="" ;;
       esac
     fi
-    CPPFLAGS="$CPPFLAGS -I$xcsdkdir/usr/include/libxml2"
+    CPPFLAGS="$CPPFLAGS -I${xcsdkdir}/usr/include/libxml2"
     AC_CHECK_HEADER(libxml/HTMLparser.h,
       [AC_CHECK_DECL(HTML_PARSE_RECOVER, HAVE_LIBXML2=yes, ,
 		     [#include <libxml/HTMLparser.h>])])
     CPPFLAGS="$SAVE_CPPFLAGS"
     if test "${HAVE_LIBXML2}" = "yes"; then
-      LIBXML2_CFLAGS="-I'$xcsdkdir/usr/include/libxml2'"
+      LIBXML2_CFLAGS="-I${xcsdkdir}/usr/include/libxml2"
       LIBXML2_LIBS="-lxml2"
     fi
   fi
-- 
2.14.3


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-02 20:03           ` Philipp Stephani
@ 2018-01-02 21:51             ` Alan Third
  0 siblings, 0 replies; 20+ messages in thread
From: Alan Third @ 2018-01-02 21:51 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: 29931

On Tue, Jan 02, 2018 at 08:03:31PM +0000, Philipp Stephani wrote:
> Thanks, the patch for libxml2 looks correct. I can't test it now, because
> I've already run xcode-select --install, and there's no easy way to revert
> that.

It works if you remove the EMACS_CHECK_MODULES line just above the
change, when it didn’t before, so I’m pretty confident in it.

> Probably this should use -isystem instead of -I, though.

Having looked it up, I agree. I’ve made the change in my local copy.
-- 
Alan Third





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS
  2018-01-02 21:24             ` Alan Third
@ 2018-01-07 14:05               ` Philipp Stephani
  0 siblings, 0 replies; 20+ messages in thread
From: Philipp Stephani @ 2018-01-07 14:05 UTC (permalink / raw)
  To: Alan Third; +Cc: 29931

[-- Attachment #1: Type: text/plain, Size: 589 bytes --]

Alan Third <alan@idiocy.org> schrieb am Di., 2. Jan. 2018 um 22:25 Uhr:

> On Tue, Jan 02, 2018 at 08:19:00PM +0000, Alan Third wrote:
> > I’m not sure how portable this test needs to be since it should only
> > run on darwin:
> >
> >     if test "${opsys}" = darwin && test -z "${MAKEINFO}" && \
> >        test -x /usr/local/opt/texinfo/bin/makeinfo; then
>
> I’ve done some investigation and come up with a version that uses
> autoconfig macros.
>
>
Thanks, that works as well.
You could even use `brew --prefix texinfo` to get more parts of the path
from Homebrew.

[-- Attachment #2: Type: text/html, Size: 940 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2018-01-07 14:05 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-01 12:15 bug#29931: 27.0.50; Slightly suboptimal build behavior on macOS Philipp
2018-01-01 13:13 ` Noam Postavsky
2018-01-01 13:51   ` Philipp Stephani
2018-01-01 14:54   ` Alan Third
2018-01-01 14:59 ` Alan Third
2018-01-01 15:05   ` Philipp Stephani
2018-01-01 15:12     ` Philipp Stephani
2018-01-01 15:53       ` Alan Third
2018-01-02 12:10         ` Alan Third
2018-01-02 20:03           ` Philipp Stephani
2018-01-02 21:51             ` Alan Third
2018-01-02 19:51         ` Philipp Stephani
2018-01-01 15:48     ` Alan Third
2018-01-02 19:42       ` Philipp Stephani
2018-01-02 19:48       ` Philipp Stephani
2018-01-02 19:49         ` Philipp Stephani
2018-01-02 20:04         ` Eli Zaretskii
2018-01-02 20:19           ` Alan Third
2018-01-02 21:24             ` Alan Third
2018-01-07 14:05               ` Philipp Stephani

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).