After the /usr/share/autoconf/m4sugar/m4sh.m4 file is modified on the system, autoconf may still generate the old macros when an attempt is made to generate a configure file.
Hello Mark, * markhobley@yahoo.co.uk wrote on Sun, Sep 13, 2009 at 11:45:34AM CEST: You probably have to either remove or rebuild the frozen state file(s) *.m4f, or pass -M aka. --melt to autom4te (AUTOM4TE='autom4te -M') to ignore them. Don't forget to pass --force to autoconf if you don't have the autom4te.cache disabled (and it is otherwise up to date wrt. files in the source tree). Hope that helps. Cheers, Ralf
Examining the /usr/share/autoconf/m4sugar directory, it appears that there is a frozen m4sh.m4f file. Looking at the autoconf package, I guess that these are generated by the autoconf-2.63/lib/m4sugar/Makefile, because they are mentioned in the Makefile.am file as follows: nodist_m4sugarlib_DATA = version.m4 m4sugar.m4f m4sh.m4f ## ------------------ ## ## The frozen files. ## ## ------------------ ## m4sugar.m4f: $(m4sugar_m4f_dependencies) m4sh.m4f: $(m4sh_m4f_dependencies) include ../freeze.mk Deleting /usr/share/autoconf/m4sugar/m4sh.m4f causes the updated m4sh.m4 to take effect. It would be better for frozen files to be placed in /var/cache/autoconf and then make used to rebuild them in the event that the m4 sources in /usr/share/autoconf become newer.
BTW, are you fixing a bug in that file? Would you be so nice as to share the patch, preferably by sending it upstream? Thanks, Ralf
markhobley@yahoo.co.uk writes: Why are you modifying /usr/share/autoconf/m4sugar/m4sh.m4? Local changes to these .m4 files are not anticipated in the packaging (and that's why it doesn't work).
Hi Mark.
In September 2009, you reported:
After the /usr/share/autoconf/m4sugar/m4sh.m4 file is
modified on the system, autoconf may still generate the old
macros when an attempt is made to generate a configure file.
Ralf Wildenhues <Ralf.Wildenhues@gmx.de> replied that you need to
re-freeze the .m4 file.
I followed up with a question:
Why are you modifying /usr/share/autoconf/m4sugar/m4sh.m4?
Local changes to these .m4 files are not anticipated in the
packaging (and that's why it doesn't work).
I haven't seen a response yet. Do you still believe that this is
a bug? If you do, can you explain. If you don't, please let me
know so that I can close the bug.
Thanks,
Ben.
Forwarding information that failed to be CC'd to the bug report.--- On Mon, 2/8/10, Ben Pfaff <blp@cs.stanford.edu> wrote: It doesn't work properly on my ash shell, (there are some constructs that autoconf uses, that are not considered), and I have problems sharing scripts between machines, because autoconf makes decisions based on the test machine, which do not apply to the target. Really, this is a bad design. If the sources are newer than the frozen files or the cache, then the frozen files or cache should be updated. (We could use make here.) I have forked this package, and I am making appropriate modifications to the fork. I would just forward the bug information upstream, then close the bug. (The problem only affects programs that are build from source, and Debian does not do this.) Cheers, Mark.-------------------- End of forwarded message --------------------