Re: curl's XC_AMEND_DISTCLEAN (Seeking contractor for a regression bug fix)

Ilmari Lauhakangas <[email protected]>
Newsgroups gmane.comp.sysutils.automake.general
Message-ID <[email protected]>
On 2.3.2023 17.12, Jan Engelhardt wrote:
> 
> On Thursday 2023-03-02 09:56, Ilmari Lauhakangas wrote:
>> last year I reported a regression in automake:
>> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=59288
> 
> To the best of my knowledge, automake only runs during `autoreconf`,
> but not during ./configure. So this looks less like an automake bug.
> 
> I also notice:
>   - big makefile with ./configure (as in the report)
>   - normal-sized makefile when I run ./config.status
> 
> So configure does more than config.status, as evidenced from stdout:
> 
> root@a4:~/curl# ./config.status
> config.status: creating Makefile
> ...
> config.status: creating packages/vms/Makefile
> config.status: creating curl-config
> config.status: creating libcurl.pc
> config.status: creating lib/curl_config.h
> config.status: lib/curl_config.h is unchanged
> config.status: executing depfiles commands
> config.status: executing libtool commands
> root@a4:~/curl#
> 
> # ./configure
> ...
> config.status: creating packages/vms/Makefile
> config.status: creating curl-config
> config.status: creating libcurl.pc
> config.status: creating lib/curl_config.h
> config.status: lib/curl_config.h is unchanged
> config.status: executing depfiles commands
> config.status: executing libtool commands
> configure: amending lib/Makefile
> configure: amending src/Makefile
> configure: amending tests/unit/Makefile
> configure: amending tests/server/Makefile
> configure: amending tests/libtest/Makefile
> configure: amending docs/examples/Makefile
> configure: Configured to build curl/libcurl:
> 
> One will find that there is a file m4/xc-am-iface.m4 and a m4 macro
> "XC_AMEND_DISTCLEAN". Whatever this is - the git log and the macro comment are
> not useful:
> 
> dnl This macro performs shell code embedding into
> dnl configure script in order to modify distclean
> dnl and maintainer-clean targets of makefiles which
> dnl are located in given list of subdirs.
> 
> but whatever it does, it causes the 682x duplication you see.
> So it's a curl problem. Here's a patch.
> 
> 
>  From 74fa25bb5817f38c36c71820731eede6bc3be311 Mon Sep 17 00:00:00 2001
> From: Jan Engelhardt <[email protected]>
> Date: Thu, 2 Mar 2023 16:08:22 +0100
> Subject: [PATCH] build: ditch the use of XC_AMEND_DISTCLEAN
> 
> This messes up the distclean targets in automake 1.16.
> It's unclear what XC_AMEND_DISTCLEAN is supposed to fix
> in the first place, all the more reason to remove it.
> ---
>   configure.ac | 2 --
>   1 file changed, 2 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 276c78474..988183d5d 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -4665,8 +4665,6 @@ AC_OUTPUT
>   
>   CURL_GENERATE_CONFIGUREHELP_PM
>   
> -XC_AMEND_DISTCLEAN([lib src tests/unit tests/server tests/libtest docs/examples])
> -
>   AC_MSG_NOTICE([Configured to build curl/libcurl:
>   
>     Host setup:       ${host}

That's amazing! I verify that your change fixes the issue for me, 
testing with curl configure after 'autoreconf -fi'.

Would you like to submit it to curl upstream?

As I started this with a contracting proposal, let me know if you have 
any requests, like a donation target or something.

Regards,
Ilmari Lauhakangas
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.