unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Patch to allow texi2any for EMACS manual compilation
@ 2014-09-21 20:48 Vincent Belaïche
  2014-09-21 21:03 ` Karl Berry
  2014-09-21 21:18 ` Paul Eggert
  0 siblings, 2 replies; 12+ messages in thread
From: Vincent Belaïche @ 2014-09-21 20:48 UTC (permalink / raw)
  To: EMACS devel list, Karl Berry, pertusus

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

Hello,

I propose the following patch (attached) so that one can have the
makeinfo program somehow made pointing at texi2any.

motivation:

- makeinfo (C based) is no longer maintained, so sooner or later we will
  have to allow manual compilation with texi2any
  
- texi2any command line is a superset of makeinfo, so there may be
  installations where calling makeinfo actually calls texi2any (or any
  other tricks like setting MAKEINFO to texi2any before calling
  configure --- e.g., at least on my machine, makeinfo.exe is some
  wrapper that calls texi2any under the hood.

- I think that texi2any versioning commences at 5.0 --- maybe Karl or
  Patrice can confirm, so I think that the test on version number in the
  attached patch would be valid.

If people agree I can do the change.

VBR,
  Vincent.




[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: configure_ac.diff --]
[-- Type: text/x-patch, Size: 1115 bytes --]

=== modified file 'configure.ac'
--- configure.ac	2014-09-15 00:20:21 +0000
+++ configure.ac	2014-09-21 20:40:19 +0000
@@ -1102,13 +1102,20 @@
   if test "$MAKEINFO" = "${am_missing_run}makeinfo"; then
     MAKEINFO=makeinfo
   fi
-  case `($MAKEINFO --version) 2>/dev/null` in
-    'makeinfo (GNU texinfo) '4.[[7-9]]* | \
-    'makeinfo (GNU texinfo) '4.[[1-9][0-9]]* | \
-    'makeinfo (GNU texinfo) '[[5-9]]* | \
-    'makeinfo (GNU texinfo) '[[1-9][0-9]]* ) ;;
-    *) MAKEINFO=no;;
-  esac
+  MAKEINFO_VERSION=`($MAKEINFO --version) 2>/dev/null`;
+  declare -i MAKEINFO_CHECK=0;
+  for MAKEINFO_IMPLEMENTATION in makeinfo texi2any; do
+      case $MAKEINFO_VERSION in
+	  "$MAKEINFO_IMPLEMENTATION (GNU texinfo) "4.[7-9]* | \
+          "$MAKEINFO_IMPLEMENTATION (GNU texinfo) "4.[1-9][0-9]* | \
+	  "$MAKEINFO_IMPLEMENTATION (GNU texinfo) "[5-9]* | \
+	  "$MAKEINFO_IMPLEMENTATION (GNU texinfo) "[1-9][0-9]*  )
+	      MAKEINFO_CHECK=$MAKEINFO_CHECK+1;;
+      esac
+  done
+  if [ $MAKEINFO_CHECK -eq 0 ]; then
+      MAKEINFO=no;
+  fi
 fi
 
 ## Makeinfo is unusual.  For a released Emacs, the manuals are


^ permalink raw reply	[flat|nested] 12+ messages in thread
* RE: Patch to allow texi2any for EMACS manual compilation
@ 2014-09-22 18:27 Vincent Belaïche
  2014-09-22 18:59 ` Andreas Schwab
  0 siblings, 1 reply; 12+ messages in thread
From: Vincent Belaïche @ 2014-09-22 18:27 UTC (permalink / raw)
  To: EMACS devel list, Paul Eggert; +Cc: Vincent Belaïche, pertusus, Karl Berry

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

Answers below,

----------------------------------------
> Date: Sun, 21 Sep 2014 14:18:19 -0700
> From: eggert@cs.ucla.edu
> To: vincent.b.1@hotmail.fr; emacs-devel@gnu.org; karl@freefriends.org; pertusus@free.fr
> Subject: Re: Patch to allow texi2any for EMACS manual compilation
>
> Vincent Belaïche wrote:
> > I propose the following patch (attached) so that one can have the
> > makeinfo program somehow made pointing at texi2any.
>
> I don't see how that patch would make a difference. Older texinfo
> versions don't have texi2any and 'configure' would continue to use
> 'makeinfo' as before. And in newer texinfo versions, 'texi2any' and
> 'makeinfo' are aliases and 'configure' would also continue to use
> 'makeinfo' as before. So why bother to change 'configure'?
>

Yes, with the newer texinfo versions configure would also continue to
use makeinfo *unless* the user has configured his machine so that
makeinfo actually calls tex2iany behind the scene.

I think that this would also happen if the user does

MAKEINFO=texi2any ./configure ... <-- with here other args

But I am not sure --- I have not tested it.

  Vincent.

PS: BTW, I did some update to the patch for the sake of simplification
and handling $MAKEINFO = texi2any.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: configure.ac.diff --]
[-- Type: text/x-patch, Size: 1375 bytes --]

=== modified file 'configure.ac'
--- configure.ac	2014-09-15 00:20:21 +0000
+++ configure.ac	2014-09-22 17:36:48 +0000
@@ -1099,16 +1099,25 @@
 
 ## Need makeinfo >= 4.7 (?) to build the manuals.
 if test "$MAKEINFO" != "no"; then
-  if test "$MAKEINFO" = "${am_missing_run}makeinfo"; then
-    MAKEINFO=makeinfo
+  for MAKEINFO_IMPLEMENTATION in makeinfo texi2any; do
+      if test "$MAKEINFO" = "${am_missing_run}${MAKEINFO_IMPLEMENTATION}"; then
+         MAKEINFO=${MAKEINFO_IMPLEMENTATION}
+      fi
+  done
+  MAKEINFO_VERSION=`($MAKEINFO --version) 2>/dev/null`;
+  MAKEINFO_CHECK=no;
+  for MAKEINFO_IMPLEMENTATION in makeinfo texi2any; do
+      case $MAKEINFO_VERSION in
+	  "$MAKEINFO_IMPLEMENTATION (GNU texinfo) "4.[7-9]* | \
+          "$MAKEINFO_IMPLEMENTATION (GNU texinfo) "4.[1-9][0-9]* | \
+	  "$MAKEINFO_IMPLEMENTATION (GNU texinfo) "[5-9]* | \
+	  "$MAKEINFO_IMPLEMENTATION (GNU texinfo) "[1-9][0-9]*  )
+	      MAKEINFO_CHECK=yes;;
+      esac
+  done
+  if [ $MAKEINFO_CHECK != yes ]; then
+      MAKEINFO=no;
   fi
-  case `($MAKEINFO --version) 2>/dev/null` in
-    'makeinfo (GNU texinfo) '4.[[7-9]]* | \
-    'makeinfo (GNU texinfo) '4.[[1-9][0-9]]* | \
-    'makeinfo (GNU texinfo) '[[5-9]]* | \
-    'makeinfo (GNU texinfo) '[[1-9][0-9]]* ) ;;
-    *) MAKEINFO=no;;
-  esac
 fi
 
 ## Makeinfo is unusual.  For a released Emacs, the manuals are


^ permalink raw reply	[flat|nested] 12+ messages in thread
* RE: Patch to allow texi2any for EMACS manual compilation
@ 2014-09-23 20:54 Vincent Belaïche
  2014-09-23 22:39 ` Glenn Morris
  0 siblings, 1 reply; 12+ messages in thread
From: Vincent Belaïche @ 2014-09-23 20:54 UTC (permalink / raw)
  To: Andreas Schwab, Paul Eggert
  Cc: Vincent Belaïche, pertusus, EMACS devel list, Karl Berry

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

Answers below...

----------------------------------------
> From: schwab@linux-m68k.org
> To: vincent.b.1@hotmail.fr
> Subject: Re: Patch to allow texi2any for EMACS manual compilation
> Date: Mon, 22 Sep 2014 20:59:48 +0200
> CC: pertusus@free.fr; karl@freefriends.org; eggert@cs.ucla.edu; emacs-devel@gnu.org
>
> Vincent Belaïche <vincent.b.1@hotmail.fr> writes:
>
> > === modified file 'configure.ac'
> > --- configure.ac 2014-09-15 00:20:21 +0000
> > +++ configure.ac 2014-09-22 17:36:48 +0000
> > @@ -1099,16 +1099,25 @@
> >
> > ## Need makeinfo >= 4.7 (?) to build the manuals.
> > if test "$MAKEINFO" != "no"; then
> > - if test "$MAKEINFO" = "${am_missing_run}makeinfo"; then
> > - MAKEINFO=makeinfo
> > + for MAKEINFO_IMPLEMENTATION in makeinfo texi2any; do
> > + if test "$MAKEINFO" = "${am_missing_run}${MAKEINFO_IMPLEMENTATION}"; then
> > + MAKEINFO=${MAKEINFO_IMPLEMENTATION}
> > + fi
> > + done
> > + MAKEINFO_VERSION=`($MAKEINFO --version) 2>/dev/null`;
> > + MAKEINFO_CHECK=no;
> > + for MAKEINFO_IMPLEMENTATION in makeinfo texi2any; do
> > + case $MAKEINFO_VERSION in
> > + "$MAKEINFO_IMPLEMENTATION (GNU texinfo) "4.[7-9]* | \
> > + "$MAKEINFO_IMPLEMENTATION (GNU texinfo) "4.[1-9][0-9]* | \
> > + "$MAKEINFO_IMPLEMENTATION (GNU texinfo) "[5-9]* | \
> > + "$MAKEINFO_IMPLEMENTATION (GNU texinfo) "[1-9][0-9]* )
> > + MAKEINFO_CHECK=yes;;
> > + esac
> > + done
> > + if [ $MAKEINFO_CHECK != yes ]; then
> > + MAKEINFO=no;
> > fi
> > - case `($MAKEINFO --version) 2>/dev/null` in
> > - 'makeinfo (GNU texinfo) '4.[[7-9]]* | \
> > - 'makeinfo (GNU texinfo) '4.[[1-9][0-9]]* | \
> > - 'makeinfo (GNU texinfo) '[[5-9]]* | \
> > - 'makeinfo (GNU texinfo) '[[1-9][0-9]]* ) ;;
>
> Why can't you just replace it with a wildcard? What's the point in
> matching the exact program name?
>

There is a version number checking. So we rely on the fact that texi2any
and makeinfo have both:

- consistent version numbers: C based makeinfo version does not go
  beyond 4.99 (AFAIK last version is 4.13), while texi2any starts at 5.0

- consistent command line, texi2any command line is a superset of that
  makeinfo.

Now, yes it would be possible to use a wildecard, given that it is quite
unlikely than there are other alternative to makeinfo than texi2any.

To make it slightly more restictive, wildcard could be ???????? instead
of * because makeinfo & texi2any both have 8 letters.

BTW, when I did the patch I initially thought that my problem was with
using a fake makeinfo that is indeed a skin of texi2any. But it came out
that this was not the only issue.  Current configure.ac uses that sort
of wildcard:

   [[7-9]]

with [...] encapsulation around `[7-9]'. This does not work for me and I
did not found any such thing in the manual:

http://www.gnu.org/software/bash/manual/bashref.html#pattern-matching

so I removed also that encapsulation as in the attached patch.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: configure.ac.diff --]
[-- Type: text/x-patch, Size: 667 bytes --]

=== modified file 'configure.ac'
--- configure.ac	2014-09-15 00:20:21 +0000
+++ configure.ac	2014-09-23 20:42:43 +0000
@@ -1103,10 +1103,11 @@
     MAKEINFO=makeinfo
   fi
   case `($MAKEINFO --version) 2>/dev/null` in
-    'makeinfo (GNU texinfo) '4.[[7-9]]* | \
-    'makeinfo (GNU texinfo) '4.[[1-9][0-9]]* | \
-    'makeinfo (GNU texinfo) '[[5-9]]* | \
-    'makeinfo (GNU texinfo) '[[1-9][0-9]]* ) ;;
+  # ???????? matches both makeinfo & texi2any
+    ????????' (GNU texinfo) '4.[7-9]* | \
+    ????????' (GNU texinfo) '4.[1-9][0-9]* | \
+    ????????' (GNU texinfo) '[5-9]* | \
+    ????????' (GNU texinfo) '[1-9][0-9]* ) ;;
     *) MAKEINFO=no;;
   esac
 fi


[-- Attachment #3: Type: text/plain, Size: 256 bytes --]


If people agree with this patch I can do the change.

VBR,

   Vincent.

> Andreas.
>
> --
> Andreas Schwab, schwab@linux-m68k.org
> GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
> "And now for something completely different."
>

^ permalink raw reply	[flat|nested] 12+ messages in thread
* RE: Patch to allow texi2any for EMACS manual compilation
@ 2014-09-25  4:45 Vincent Belaïche
  0 siblings, 0 replies; 12+ messages in thread
From: Vincent Belaïche @ 2014-09-25  4:45 UTC (permalink / raw)
  To: Glenn Morris, Paul Eggert
  Cc: Vincent Belaïche, Karl Berry, EMACS devel list

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

Ooops... please ignore the first statement about [...] encapsulation in
my previous email, I had missed Glenn's answer that these are simply M4
quotes --- the full story is that in order not to run the full configure
which is really lengthy I did some trials with a simple cut & paste
without paying attention to dequoting.

So in a nutshell, I meant that I do not think that this is a bug in
Texinfo, because texi2any and makeinfo are two different programs.

   Vincent.

PS: patch update.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: configure.ac.diff --]
[-- Type: text/x-patch, Size: 675 bytes --]

=== modified file 'configure.ac'
--- configure.ac	2014-09-15 00:20:21 +0000
+++ configure.ac	2014-09-25 04:41:34 +0000
@@ -1103,10 +1103,11 @@
     MAKEINFO=makeinfo
   fi
   case `($MAKEINFO --version) 2>/dev/null` in
-    'makeinfo (GNU texinfo) '4.[[7-9]]* | \
-    'makeinfo (GNU texinfo) '4.[[1-9][0-9]]* | \
-    'makeinfo (GNU texinfo) '[[5-9]]* | \
-    'makeinfo (GNU texinfo) '[[1-9][0-9]]* ) ;;
+  # ???????? matches both makeinfo & texi2any
+    ????????' (GNU texinfo) '4.[[7-9]]* | \
+    ????????' (GNU texinfo) '4.[[1-9][0-9]]* | \
+    ????????' (GNU texinfo) '[[5-9]]* | \
+    ????????' (GNU texinfo) '[[1-9][0-9]]* ) ;;
     *) MAKEINFO=no;;
   esac
 fi


[-- Attachment #3: Type: text/plain, Size: 1905 bytes --]



----------------------------------------
> From: vincent.b.1@hotmail.fr
> To: eggert@cs.ucla.edu; rgm@gnu.org
> CC: karl@freefriends.org; emacs-devel@gnu.org
> Subject: RE: Patch to allow texi2any for EMACS manual compilation
> Date: Thu, 25 Sep 2014 06:33:34 +0200
>
>
>
> ----------------------------------------
> > Date: Wed, 24 Sep 2014 20:05:54 -0700
> > From: eggert@cs.ucla.edu
> > To: rgm@gnu.org; vincent.b.1@hotmail.fr
> > Subject: Re: Patch to allow texi2any for EMACS manual compilation
> > CC: karl@freefriends.org; emacs-devel@gnu.org
> >
> > Glenn Morris wrote:
> >> Please take a step back and tell us clearly what problem you think you
> >> are trying to solve.
> >
> Sorry, I have been creating some confusion, because when trying to solve my initial problem (that is configure not accepting that texi2any is used for compiling the documentation) I have come across another one, i.e., that the [...] encapsulation of interval wildcard (e.g. `[7-9]') does not work for me, and I am not even sure that it should work at all because I did not find its documentation in bash manual --- but I suspect that I am just missing the point. Maybe I should open a separate thread for that one ?
>
> > I think he's saying the behavior of Texinfo 5's 'makeinfo --help'
> > depends on the name used to invoke makeinfo (which is not following the
> > GNU Coding Standards, by the way -- Karl, should I file a Texinfo bug
> > report or will this email suffice?), and this means Emacs's 'configure'
> > script shouldn't care what that part of the output looks like. I
> > installed a patch along those lines as Emacs trunk bzr 117943.
> >
>
> I think this is not a bug in Texinfo. texi2any and makeinfo are two different programs, but texi2any can do whatever makeinfo can, and much more. texi2any is thought as a replacement of makeinfo, that is why the version number has some continuity.
> Vincent.

^ permalink raw reply	[flat|nested] 12+ messages in thread
* RE: Patch to allow texi2any for EMACS manual compilation
@ 2014-09-25  6:17 Vincent Belaïche
  0 siblings, 0 replies; 12+ messages in thread
From: Vincent Belaïche @ 2014-09-25  6:17 UTC (permalink / raw)
  To: Paul Eggert; +Cc: Vincent Belaïche, Karl Berry, EMACS devel list

I saw that Paul did the change which I expected (with a * wildcard),
that closes the point for me.

Thank you.

   Vincent.




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

end of thread, other threads:[~2014-09-25  6:17 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-21 20:48 Patch to allow texi2any for EMACS manual compilation Vincent Belaïche
2014-09-21 21:03 ` Karl Berry
2014-09-21 21:18 ` Paul Eggert
  -- strict thread matches above, loose matches on Subject: below --
2014-09-22 18:27 Vincent Belaïche
2014-09-22 18:59 ` Andreas Schwab
2014-09-23 20:54 Vincent Belaïche
2014-09-23 22:39 ` Glenn Morris
2014-09-25  3:05   ` Paul Eggert
2014-09-25  4:19     ` Vincent Belaïche
2014-09-25  4:33     ` Vincent Belaïche
2014-09-25  4:45 Vincent Belaïche
2014-09-25  6:17 Vincent Belaïche

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).