GNU bug report logs - #65142
30.0.50; configure --without-all does not disable some features

Previous Next

Package: emacs;

Reported by: Ulrich Müller <ulm <at> gentoo.org>

Date: Tue, 8 Aug 2023 07:55:02 UTC

Severity: normal

Found in version 30.0.50

Fixed in version 30.1

Done: Ulrich Mueller <ulm <at> gentoo.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 65142 in the body.
You can then email your comments to 65142 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#65142; Package emacs. (Tue, 08 Aug 2023 07:55:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ulrich Müller <ulm <at> gentoo.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 08 Aug 2023 07:55:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ulrich Müller <ulm <at> gentoo.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50; configure --without-all does not disable some features
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:

From b5ef99a3f06005524ab12a1bd6a2a6dfa7689ec2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ulrich=20M=C3=BCller?= <ulm <at> 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





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65142; Package emacs. (Tue, 08 Aug 2023 12:14:02 GMT) Full text and rfc822 format available.

Message #8 received at 65142 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ulrich Müller <ulm <at> gentoo.org>
Cc: 65142 <at> debbugs.gnu.org
Subject: Re: bug#65142: 30.0.50;
 configure --without-all does not disable some features
Date: Tue, 08 Aug 2023 15:13:59 +0300
> From: Ulrich Müller <ulm <at> 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?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65142; Package emacs. (Tue, 08 Aug 2023 14:42:02 GMT) Full text and rfc822 format available.

Message #11 received at 65142 <at> debbugs.gnu.org (full text, mbox):

From: Ulrich Mueller <ulm <at> gentoo.org>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 65142 <at> debbugs.gnu.org
Subject: Re: bug#65142: 30.0.50; configure --without-all does not disable
 some features
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.)




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#65142; Package emacs. (Tue, 08 Aug 2023 15:29:02 GMT) Full text and rfc822 format available.

Message #14 received at 65142 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ulrich Mueller <ulm <at> gentoo.org>
Cc: 65142 <at> debbugs.gnu.org
Subject: Re: bug#65142: 30.0.50; configure --without-all does not disable
 some features
Date: Tue, 08 Aug 2023 18:28:40 +0300
> From: Ulrich Mueller <ulm <at> gentoo.org>
> Cc: 65142 <at> 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.




bug marked as fixed in version 30.1, send any further explanations to 65142 <at> debbugs.gnu.org and Ulrich Müller <ulm <at> gentoo.org> Request was from Ulrich Mueller <ulm <at> gentoo.org> to control <at> debbugs.gnu.org. (Tue, 08 Aug 2023 15:44:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 06 Sep 2023 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 292 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.