Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

configure fails with tclsh8.5 #3808

Closed
jhgit opened this issue Apr 7, 2023 · 3 comments · Fixed by #3819
Closed

configure fails with tclsh8.5 #3808

jhgit opened this issue Apr 7, 2023 · 3 comments · Fixed by #3819
Assignees
Labels

Comments

@jhgit
Copy link

jhgit commented Apr 7, 2023

With neomutt-20230322, configure fails if it uses tclsh8.5

Expected Behaviour

autosetup/autosetup-find-tclsh explicity looks for tclsh8.5, so it is expected that configure would succeed.

Actual Behaviour

$ configure
 .
 .
Checking for tokyocabinet ...1.4.48
Checking for a GSSAPI implementation...MIT
Created Makefile from Makefile.autosetup
Created config.h
Error: invalid command name "lmap"

Steps to Reproduce

This was found on FreeBSD, but I currently have no reason to suspect anything specific to FreeBSD. It seems like tclsh8.5 is the key to reproducing the problem.

How often does this happen?

  • As far as I could determine, it always fails if configure finds and uses tclsh8.5

When did it start to happen?

  • Running configure with neomutt-20220429 does not fail. neomutt-20230322 does. auto.def added code that uses lmap some time between those two versions.

Extra Info

  • Operating System and its version: First noticed on FreeBSD 12.4 (but probably not limited to that OS)
@jhgit jhgit added the type:bug Bug label Apr 7, 2023
@jhgit
Copy link
Author

jhgit commented Apr 7, 2023

Support for tclsh8.5 could be removed from autosetup.

Or the could that uses lmap could perhaps be implemented a different way (example from stackoverflow).

@flatcap
Copy link
Member

flatcap commented Apr 8, 2023

Interesting...
We did have an lmap call in 2022-04-29, but it wasn't reached unless you: ./configure --disable-include-path-in-cflags
The one causing you trouble was introduced in a recent fix: 4d58c9d - Do not include -MJ* in .clang_complete

If you're not developing NeoMutt, it's safe to kill this block:

neomutt/auto.def

Lines 1226 to 1238 in f64f787

###############################################################################
# Generate .clang_complete
proc cflags-for-clang-complete {} {
lmap x [get-define CFLAGS] {
if {[string match "-MJ*" $x]} {
continue
} else {
set x
}
}
}
define cflags-one-per-line [string map {" " "\n"} [cflags-for-clang-complete]]
make-template .clang_complete.in

Thanks for the suggestions.
Our tcl expert will be back next week.

@jhgit
Copy link
Author

jhgit commented Apr 8, 2023

Thanks for the suggestions. Our tcl expert will be back next week.

I appreciate the sanity check. Locally, for now, I will remove tclsh8.5 from autosetup/autosetup-find-tclsh.

See also the downstream bug description.

@gahr gahr self-assigned this Apr 8, 2023
@flatcap flatcap linked a pull request Apr 11, 2023 that will close this issue
@flatcap flatcap closed this as completed Apr 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants