Bug 2143718

Summary: FTBFS with autoconf 2.72
Product: [Fedora] Fedora Reporter: Frédéric Bérat <fberat>
Component: anjutaAssignee: Gwyn Ciesla <gwync>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: cosimo.cecchi, gnome-sig, gwync, klember, moez.roy, rakesh.pandit
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-18 21:18:42 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2143303    

Description Frédéric Bérat 2022-11-17 16:15:58 UTC
Autoconf 2.72 seems to be under preparation upstream, I therefore started to build dependent components to verify that they can be built once it lands in Fedora.

Your component fails to build with the new version of autoconf, due to the following error:

---
+ make -j2
CDPATH="${ZSH_VERSION+.}:" && cd . && /bin/sh /builddir/build/BUILD/anjuta-3.34.0/missing aclocal-1.16 -I m4 
configure.ac:526: error: AC_REQUIRE: circular dependency of _AC_PROG_EGREP_TRADITIONAL
./lib/autoconf/general.m4:2771: AC_EGREP_CPP is expanded from...
configure.ac:470: CHECK_HEADER_DEFINE is expanded from...
lib/m4sugar/m4sh.m4:688: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:695: AS_IF is expanded from...
./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from...
./lib/autoconf/programs.m4:381: _AC_PROG_EGREP_TRADITIONAL is expanded from...
./lib/autoconf/general.m4:2771: AC_EGREP_CPP is expanded from...
configure.ac:470: CHECK_HEADER_DEFINE is expanded from...
configure.ac:526: the top level
autom4te: error: /usr/bin/m4 failed with exit status: 1
aclocal-1.16: error: autom4te failed with exit status: 1
make: *** [Makefile:589: aclocal.m4] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.mDWPH9 (%build)
    Bad exit status from /var/tmp/rpm-tmp.mDWPH9 (%build)
---

After investigation, it looks like there is a mixture of circular dependency (maybe introduced by autoconf 2.72) and bad quoting.

The proposed patch is the following:

---
diff -r -U5 anjuta-3.34.0.old/configure.ac anjuta-3.34.0/configure.ac
--- anjuta-3.34.0.old/configure.ac	2022-11-17 14:53:51.042100150 +0100
+++ anjuta-3.34.0/configure.ac	2022-11-17 17:07:23.233317448 +0100
@@ -468,21 +468,21 @@
 dnl -------------------------
 dnl CHECK_HEADER_DEFINE(LABEL, HEADER [,ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ] ])
 AC_DEFUN([CHECK_HEADER_DEFINE],
 [
 	AC_MSG_CHECKING("if $1 is defined in $2")
-	AC_EGREP_CPP(yes,
-[#include <$2>
-#ifdef $1
-  yes
+	AC_PREPROC_IFELSE(
+[[#include <$2>
+#ifndef $1
+#error not defined
 #endif
-], [
+]], [
 	AC_MSG_RESULT(yes)
-	$3
+	[$3]
 ], [
 	AC_MSG_RESULT(no)
-	$4
+	[$4]
 ]) ])
 
 dnl Checks for header files.
 AC_CHECK_HEADERS(dirent.h fcntl.h fnmatch.h stat.h stdlib.h string.h stdint.h)
 AC_CHECK_HEADERS(time.h types.h unistd.h)
diff -r -U5 anjuta-3.34.0.old/configure.ac.webkit anjuta-3.34.0/configure.ac.webkit
--- anjuta-3.34.0.old/configure.ac.webkit	2022-11-17 14:53:50.954100638 +0100
+++ anjuta-3.34.0/configure.ac.webkit	2022-11-17 17:07:46.886183426 +0100
@@ -468,21 +468,21 @@
 dnl -------------------------
 dnl CHECK_HEADER_DEFINE(LABEL, HEADER [,ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ] ])
 AC_DEFUN([CHECK_HEADER_DEFINE],
 [
 	AC_MSG_CHECKING("if $1 is defined in $2")
-	AC_EGREP_CPP(yes,
-[#include <$2>
-#ifdef $1
-  yes
+	AC_PREPROC_IFELSE(
+[[#include <$2>
+#ifndef $1
+#error not defined
 #endif
-], [
+]], [
 	AC_MSG_RESULT(yes)
-	$3
+	[$3]
 ], [
 	AC_MSG_RESULT(no)
-	$4
+	[$4]
 ]) ])
 
 dnl Checks for header files.
 AC_CHECK_HEADERS(dirent.h fcntl.h fnmatch.h stat.h stdlib.h string.h stdint.h)
 AC_CHECK_HEADERS(time.h types.h unistd.h)
---

Please have a look, and check that I didn't forget anything.

Comment 1 Frédéric Bérat 2022-11-18 07:26:48 UTC
There may be a mistake in the proposed patch, AC_MSG_RESULT(yes) and AC_MSG_RESULT(no) may need to be inverted.

Please check carefully.

Comment 2 Gwyn Ciesla 2022-11-18 21:18:42 UTC
Works as is with both autoconf 2.71 and 2.72. Thanks!

Comment 3 Frédéric Bérat 2022-11-23 10:15:57 UTC
(In reply to Gwyn Ciesla from comment #2)
> Works as is with both autoconf 2.71 and 2.72. Thanks!

Thanks, can you please provide a link to the patch upstream if you sent it to them ?

Comment 4 Gwyn Ciesla 2022-12-07 20:41:08 UTC
I didn't.