unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#65142: 30.0.50; configure --without-all does not disable some features
@ 2023-08-08  7:54 Ulrich Müller
  2023-08-08 12:13 ` Eli Zaretskii
  0 siblings, 1 reply; 4+ messages in thread
From: Ulrich Müller @ 2023-08-08  7:54 UTC (permalink / raw)
  To: 65142

Ever since --with-json was changed from using OPTION_DEFAULT_ON to
OPTION_DEFAULT_IFAVAILABLE (commit 43091e6c5069), option --without-all
will no longer disable it. The same applies to --with-tree-sitter.

$ ./configure --without-all
[...]
  Does Emacs use -ljansson?                               yes
  Does Emacs use -ltree-sitter?                           yes
[...]

The following patch should fix the problem:

From b5ef99a3f06005524ab12a1bd6a2a6dfa7689ec2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ulrich=20M=C3=BCller?= <ulm@gentoo.org>
Date: Tue, 8 Aug 2023 08:34:43 +0200
Subject: [PATCH] Disable json and tree-sitter with --without-all

* configure.ac (OPTION_DEFAULT_IFAVAILABLE): Disable the option if
--without-all was specified.
---
 configure.ac | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index e01465c2af0..de602371f7b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -305,7 +305,8 @@ AC_DEFUN
 ])dnl
 
 dnl OPTION_DEFAULT_IFAVAILABLE(NAME, HELP-STRING)
-dnl Create a new --with option that defaults to 'ifavailable'.
+dnl Create a new --with option that defaults to 'ifavailable',
+dnl unless it is overriden by $with_features being equal to 'no'.
 dnl NAME is the base name of the option.  The shell variable with_NAME
 dnl   will be set to either the user's value (if the option is
 dnl   specified; 'yes' for a plain --with-NAME) or to 'ifavailable' (if the
@@ -315,10 +316,12 @@ AC_DEFUN
 dnl HELP-STRING is the help text for the option.
 AC_DEFUN([OPTION_DEFAULT_IFAVAILABLE], [dnl
   AC_ARG_WITH([$1],[AS_HELP_STRING([--with-$1],[$2])],[],[dnl
-    m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=ifavailable])dnl
+    AS_IF([test "$with_features" != no],
+      [m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=ifavailable],
+      [m4_bpatsubst([with_$1], [[^0-9a-z]], [_])=no])dnl
+  ])dnl
 ])dnl
 
-
 dnl OPTION_DEFAULT_ON(NAME, HELP-STRING)
 dnl Create a new --with option that defaults to $with_features.
 dnl NAME is the base name of the option.  The shell variable with_NAME
-- 
2.41.0






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

* bug#65142: 30.0.50; configure --without-all does not disable some features
  2023-08-08  7:54 bug#65142: 30.0.50; configure --without-all does not disable some features Ulrich Müller
@ 2023-08-08 12:13 ` Eli Zaretskii
  2023-08-08 14:41   ` Ulrich Mueller
  0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2023-08-08 12:13 UTC (permalink / raw)
  To: Ulrich Müller; +Cc: 65142

> From: Ulrich Müller <ulm@gentoo.org>
> Date: Tue, 08 Aug 2023 09:54:20 +0200
> 
> Ever since --with-json was changed from using OPTION_DEFAULT_ON to
> OPTION_DEFAULT_IFAVAILABLE (commit 43091e6c5069), option --without-all
> will no longer disable it. The same applies to --with-tree-sitter.
> 
> $ ./configure --without-all
> [...]
>   Does Emacs use -ljansson?                               yes
>   Does Emacs use -ltree-sitter?                           yes
> [...]
> 
> The following patch should fix the problem:

Thanks, but the proposed patch affects any option that is by default
"ifavailable", doesn't it?  If so, the patch is probably good for
master, but for the emacs-29 branch I'd prefer a safer change which
only affects the above two options.  Is that possible?





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

* bug#65142: 30.0.50; configure --without-all does not disable some features
  2023-08-08 12:13 ` Eli Zaretskii
@ 2023-08-08 14:41   ` Ulrich Mueller
  2023-08-08 15:28     ` Eli Zaretskii
  0 siblings, 1 reply; 4+ messages in thread
From: Ulrich Mueller @ 2023-08-08 14:41 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 65142

>>>>> On Tue, 08 Aug 2023, Eli Zaretskii wrote:

> Thanks, but the proposed patch affects any option that is by default
> "ifavailable", doesn't it?  If so, the patch is probably good for
> master, but for the emacs-29 branch I'd prefer a safer change which
> only affects the above two options.  Is that possible?

I had aimed for the master branch. :) It should also be o.k. for
emacs-29, because json and tree-sitter are the only options that use
OPTION_DEFAULT_IFAVAILABLE:

$ grep OPTION_DEFAULT_IFAVAILABLE configure.ac
dnl OPTION_DEFAULT_IFAVAILABLE(NAME, HELP-STRING)
AC_DEFUN([OPTION_DEFAULT_IFAVAILABLE], [dnl
OPTION_DEFAULT_IFAVAILABLE([json], [compile with native JSON support])
OPTION_DEFAULT_IFAVAILABLE([tree-sitter], [compile with tree-sitter])

A diff of the generated configure file with and without the patch
confirms that no other option defaults are changed.

(There are other options that can have "ifavailable" as their value, but
none of them uses the macro that is patched.)





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

* bug#65142: 30.0.50; configure --without-all does not disable some features
  2023-08-08 14:41   ` Ulrich Mueller
@ 2023-08-08 15:28     ` Eli Zaretskii
  0 siblings, 0 replies; 4+ messages in thread
From: Eli Zaretskii @ 2023-08-08 15:28 UTC (permalink / raw)
  To: Ulrich Mueller; +Cc: 65142

> From: Ulrich Mueller <ulm@gentoo.org>
> Cc: 65142@debbugs.gnu.org
> Date: Tue, 08 Aug 2023 16:41:40 +0200
> 
> >>>>> On Tue, 08 Aug 2023, Eli Zaretskii wrote:
> 
> > Thanks, but the proposed patch affects any option that is by default
> > "ifavailable", doesn't it?  If so, the patch is probably good for
> > master, but for the emacs-29 branch I'd prefer a safer change which
> > only affects the above two options.  Is that possible?
> 
> I had aimed for the master branch. :) It should also be o.k. for
> emacs-29, because json and tree-sitter are the only options that use
> OPTION_DEFAULT_IFAVAILABLE:
> 
> $ grep OPTION_DEFAULT_IFAVAILABLE configure.ac
> dnl OPTION_DEFAULT_IFAVAILABLE(NAME, HELP-STRING)
> AC_DEFUN([OPTION_DEFAULT_IFAVAILABLE], [dnl
> OPTION_DEFAULT_IFAVAILABLE([json], [compile with native JSON support])
> OPTION_DEFAULT_IFAVAILABLE([tree-sitter], [compile with tree-sitter])
> 
> A diff of the generated configure file with and without the patch
> confirms that no other option defaults are changed.
> 
> (There are other options that can have "ifavailable" as their value, but
> none of them uses the macro that is patched.)

OK, then please install this on master, and thanks.





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

end of thread, other threads:[~2023-08-08 15:28 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-08  7:54 bug#65142: 30.0.50; configure --without-all does not disable some features Ulrich Müller
2023-08-08 12:13 ` Eli Zaretskii
2023-08-08 14:41   ` Ulrich Mueller
2023-08-08 15:28     ` Eli Zaretskii

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