helpAutoconf - Support: sr #110503, Autoconf 2.70 problem:...

 
 

sr #110503: Autoconf 2.70 problem: gkt-doc/gtkdocize is now unconditionally required

Submitted by:  Marvin Scholz <epirat>
Submitted on:  Tue 01 Jun 2021 09:51:46 PM UTC  
 
Category:  None Priority:  5 - Normal
Severity:  3 - Normal Status:  Need Info
Privacy:  Public Assigned to:  None
Open/Closed:  Open Operating System:  None

Add a New Comment (Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Wed 01 Sep 2021 07:54:43 AM UTC, comment #4: 

comment #3:

> Can you clarify what you mean by self-contained example? All it takes is to create a configure.ac with the snippet I quoted in the previous comment and run
> autoreconf -fiv.

I mean a standalone shell script that reproduces the problem. The information given naively suggests this:

cat >configure.ac <<'EOF'
# check for gtk-doc
m4_ifdef([GTK_DOC_CHECK], [
GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
],[
AM_CONDITIONAL([ENABLE_GTK_DOC], false)
])
EOF
autoreconf -fiv

This is obviously wrong, though, as it fails with:

autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: error: configure.ac: AC_INIT not found; not an autoconf script?
autoreconf: Leaving directory '.'

What would be the right shell script to reproduce the problem?

Paul Eggert <eggert>
Project Administrator
Wed 01 Sep 2021 04:19:46 AM UTC, comment #3: 

I'm not sure what happened to the documentation but to see what it looks like, here is the archive version of it:

https://web.archive.org/web/20210306043255/https://developer.gnome.org/gtk-doc-manual/stable/settingup_autoconf.html.en

This worked fine with previous versions of autoconf, as side-effect of the new feature this is now broken. Even if this only ever worked by luck, clearly projects out there relied on this method to achieve something that seems quite useful behavior: Keep gtkdocize optional for people who do not care about generation of the documentation.

Two projects that use the problematic snippet are gnutls and harfbuzz.

Can you clarify what you mean by self-contained example? All it takes is to create a configure.ac with the snippet I quoted in the previous comment and run
autoreconf -fiv.

A possible workaround for other people stumbling over this bug report is to set gtkdocize via an env variable to a different "dummy" tool:

GTKDOCIZE=false autoreconf -fiv

Even if this is now what it is and can not be fixed or there is no desire to, it would be quite helpful for autoreconf to fail with a more descriptive error than:

> Can't exec "gtkdocize": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 293.
> autoreconf: error: gtkdocize failed with exit status: 2


Something like:

> gtkdocize is required by this project but could not be found

Marvin Scholz <epirat>
Wed 01 Sep 2021 01:02:14 AM UTC, comment #2: 

Could it be that this is merely a bug in the gtkdocize manual? (The URL in the June 2021 comment no longer works, so it's a bit hard to tell.)

It might help to post a complete self-contained example of the problem.

Paul Eggert <eggert>
Project Administrator
Tue 01 Jun 2021 09:57:57 PM UTC, comment #1: 

Looks like I can't change the title, this is of course not a regression but a side-effect of the new feature. (I wrote the title before doing the full investigation where this error came from and forgot to change it)

Marvin Scholz <epirat>
Tue 01 Jun 2021 09:51:46 PM UTC, original submission:  

Autoconf introduced a new feature for autoreconf in 2.70:

> *** autoreconf will now run gtkdocize and intltoolize when appropriate.


This has the side-effect of making the gtkdocize tool required unconditionally even for projects that follow the official documentation (Example 2-3):

# check for gtk-doc
m4_ifdef([GTK_DOC_CHECK], [
GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
],[
AM_CONDITIONAL([ENABLE_GTK_DOC], false)
])

Projects that use this snippet nevertheless now fail to autoreconf properly with the following error:

> Can't exec "gtkdocize": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 293.
> autoreconf: error: gtkdocize failed with exit status: 2


Ideally autoreconf should detect if GTK_DOC_CHECK is checked with m4_ifdef and not require gtkdocize in this case. If thats too complex, possibly it could never require gtkdocize and only warn if its missing but looks like it might be needed?

Marvin Scholz <epirat>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by eggert (Posted a comment)
  • -email is unavailable- added by epirat (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

     

     

    Follow 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2021-09-01 eggert StatusNone => Need Info
        SummaryAutoconf 2.70 regression: gkt-doc/gtkdocize is now unconditionally required => Autoconf 2.70 problem: gkt-doc/gtkdocize is now unconditionally required

    Back to the top


    Powered by Savane 3.7