summaryrefslogtreecommitdiff
path: root/TODO
blob: 9f28a191cf86557b5ef81308f5c65d3c19cbcc47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
#+TITLE: Autoconf Archive TODO                 -*- mode:org;fill-column:79; -*-
#
# Copyright (c) 2022 Autoconf Archive Maintainers <autoconf-archive-maintainers@gnu.org>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.

* TODO Mark obsolete macros as such in the texinfo documentation
* TODO Improve submission guide lines on the web site
** Patch submissions should put the original authors on Cc.

   Everyone is welcome to submit patches, bug reports, or suggestions to the
   Autoconf Archive. If you do, please add the original authors to carbon-copy
   list in the patch tracker. You don't have to, if you don't want to look
   their addresses up, but it's considered good practice to give the other
   authors a heads up when the macro is being changed.

** If possible, submit patches with Git.

   Give a usage example for git format-patch.

   If you have an account Savannah, simply request access to the Autoconf
   Archive's repository so that you can use git push.

* TODO Recognize cross-links in macro documentation.

  Macros often refer to other entries in the archive. The macro2texi scripts
  should recognize those references and generate appropriate links in the
  output.

  The implementation of this feature is not as simple as it may sound, because
  Texinfo doesn't offer plain and simple cross-references. There is @xref, of
  course, but use of that macros inserts additional words into the text! The
  reference =@xref{Node}=, for instance, is rendered as =*Note Node=. This
  property makes it very hard to insert references automatically.

* TODO Recognize URIs in macro documentation.

  Some macros feature http or mailto URIs. The generator scripts should
  recognize those and generate appropriate hyperlinks output (where feasible).

* TODO Re-enable disabled sc_* checks from maint.mk [0/6]

  Gnulib wants us to use spelling "file system" and objects when it sees the
  name ax_boost_filesystem in autoconf-archive.texi. There ought to be a way to
  avoid that error.

  Progress: The [[bootstrap.sh]] script disable those checks that don't work well
  for this project. In order to get on, though, some meaningful tests were
  disable, too. We should re-enable those and fix the macro contents to comply
  with those rules:

  * [ ] sc_copyright_check
  * [ ] sc_error_message_uppercase
  * [ ] sc_file_system
  * [ ] sc_GPL_version
  * [ ] sc_m4_quote_check
  * [ ] sc_prohibit_always-defined_macros
  * [ ] sc_prohibit_always_true_header_tests
  * [ ] sc_prohibit_doubled_word
  * [ ] sc_prohibit_magic_number_exit
  * [ ] sc_prohibit_strcmp
  * [ ] sc_prohibit_test_minus_ao
  * [ ] sc_space_tab
  * [ ] sc_useless_cpp_parens

* TODO Don't repeat license texts in Texinfo for every macro

  The Texinfo documentation has a section "license" for every macro that
  contains the complete license disclaimer. In case of the all-permissive
  license, that's no big deal because that license is very short. In case of
  GPL + Autoconf exception, however, this leads to a significant amount of
  redundancy in the generated documentation.

  It would be desirable to have the license texts in the documentation *once*
  and to have every macro refer to the appropriate section.

* TODO Update infrastructure files from gnulib

  Most of our infrastructure files come from the Automake versions that's used
  to run =autoreconf -i=. However, there are newer files in gnulib that we
  should use instead: install-sh got a minor update, ditto the INSTALL file.
  texinfo.tex has also been updated.

  Karl Berry suggested using =gnulib/config/srclist-update= to keep those files
  synchronized.
* TODO Write a script that generates copyright lines from Git

  We have a bunch of administrative files, such as configure.ac or Makefile.am,
  and those files need some sort of copyright statement. The usual approach is
  to use "Copyright (c) 2019 Free Software Foundation, Inc.", like this file
  currently does, but that statement is not accurate, because the rights
  haven't been actually signed over to the FSF. Instead, it would be nice to
  generate proper copyright lines from the Git repository, using the authors
  and date stamps of the commits that modified the file. To some extend, that
  script could be used to maintain copyright lines in the macros, too, but
  unfortunately the macro history isn't all too reliable, because oftentimes
  the "author" of git commit is not necessarily the actual author, but merely
  the maintainer who's, well, committing it. For the administrative files,
  however, this shouldn't be a problem.

* TODO Generate HTML pages for obsolete macros and index pages [0/173]
* TODO Update macros licensed under old GPL+AC-Exception terms to [[file:COPYING.EXCEPTION][version 3.0]] [0/173]

  - [ ] [[file:m4/ax_arg_with_path_style.m4][ax_arg_with_path_style.m4]]
  - [ ] [[file:m4/ax_blas_f77_func.m4][ax_blas_f77_func.m4]]
  - [ ] [[file:m4/ax_blas.m4][ax_blas.m4]]
  - [ ] [[file:m4/ax_boost_python.m4][ax_boost_python.m4]]
  - [ ] [[file:m4/ax_c___attribute__.m4][ax_c___attribute__.m4]]
  - [ ] [[file:m4/ax_cc_for_build.m4][ax_cc_for_build.m4]]
  - [ ] [[file:m4/ax_c_check_flag.m4][ax_c_check_flag.m4]]
  - [ ] [[file:m4/ax_cc_maxopt.m4][ax_cc_maxopt.m4]]
  - [ ] [[file:m4/ax_c_compile_value.m4][ax_c_compile_value.m4]]
  - [ ] [[file:m4/ax_c_declare_block.m4][ax_c_declare_block.m4]]
  - [ ] [[file:m4/ax_cf_ebcdic.m4][ax_cf_ebcdic.m4]]
  - [ ] [[file:m4/ax_cflags_aix_option.m4][ax_cflags_aix_option.m4]]
  - [ ] [[file:m4/ax_cflags_force_c89.m4][ax_cflags_force_c89.m4]]
  - [ ] [[file:m4/ax_cflags_gcc_option.m4][ax_cflags_gcc_option.m4]]
  - [ ] [[file:m4/ax_cflags_hpux_option.m4][ax_cflags_hpux_option.m4]]
  - [ ] [[file:m4/ax_cflags_irix_option.m4][ax_cflags_irix_option.m4]]
  - [ ] [[file:m4/ax_cflags_no_writable_strings.m4][ax_cflags_no_writable_strings.m4]]
  - [ ] [[file:m4/ax_cflags_strict_prototypes.m4][ax_cflags_strict_prototypes.m4]]
  - [ ] [[file:m4/ax_cflags_sun_option.m4][ax_cflags_sun_option.m4]]
  - [ ] [[file:m4/ax_cflags_warn_all_ansi.m4][ax_cflags_warn_all_ansi.m4]]
  - [ ] [[file:m4/ax_cflags_warn_all.m4][ax_cflags_warn_all.m4]]
  - [ ] [[file:m4/ax_check_aligned_access_required.m4][ax_check_aligned_access_required.m4]]
  - [ ] [[file:m4/ax_check_class.m4][ax_check_class.m4]]
  - [ ] [[file:m4/ax_check_classpath.m4][ax_check_classpath.m4]]
  - [ ] [[file:m4/ax_check_compiler_flags.m4][ax_check_compiler_flags.m4]]
  - [ ] [[file:m4/ax_check_define.m4][ax_check_define.m4]]
  - [ ] [[file:m4/ax_check_docbook_dtd.m4][ax_check_docbook_dtd.m4]]
  - [ ] [[file:m4/ax_check_docbook_xslt.m4][ax_check_docbook_xslt.m4]]
  - [ ] [[file:m4/ax_check_docbook_xslt_min.m4][ax_check_docbook_xslt_min.m4]]
  - [ ] [[file:m4/ax_check_dos_filesys.m4][ax_check_dos_filesys.m4]]
  - [ ] [[file:m4/ax_check_func_in.m4][ax_check_func_in.m4]]
  - [ ] [[file:m4/ax_check_gl.m4][ax_check_gl.m4]]
  - [ ] [[file:m4/ax_check_glu.m4][ax_check_glu.m4]]
  - [ ] [[file:m4/ax_check_glut.m4][ax_check_glut.m4]]
  - [ ] [[file:m4/ax_check_java_home.m4][ax_check_java_home.m4]]
  - [ ] [[file:m4/ax_check_java_plugin.m4][ax_check_java_plugin.m4]]
  - [ ] [[file:m4/ax_check_library.m4][ax_check_library.m4]]
  - [ ] [[file:m4/ax_check_linker_flags.m4][ax_check_linker_flags.m4]]
  - [ ] [[file:m4/ax_check_mysql_db.m4][ax_check_mysql_db.m4]]
  - [ ] [[file:m4/ax_check_pathname_style.m4][ax_check_pathname_style.m4]]
  - [ ] [[file:m4/ax_check_pgsql_db.m4][ax_check_pgsql_db.m4]]
  - [ ] [[file:m4/ax_check_rqrd_class.m4][ax_check_rqrd_class.m4]]
  - [ ] [[file:m4/ax_check_symbol.m4][ax_check_symbol.m4]]
  - [ ] [[file:m4/ax_check_typedef.m4][ax_check_typedef.m4]]
  - [ ] [[file:m4/ax_check_user.m4][ax_check_user.m4]]
  - [ ] [[file:m4/ax_check_zlib.m4][ax_check_zlib.m4]]
  - [ ] [[file:m4/ax_compile_check_sizeof.m4][ax_compile_check_sizeof.m4]]
  - [ ] [[file:m4/ax_compiler_vendor.m4][ax_compiler_vendor.m4]]
  - [ ] [[file:m4/ax_compute_relative_paths.m4][ax_compute_relative_paths.m4]]
  - [ ] [[file:m4/ax_compute_standard_relative_paths.m4][ax_compute_standard_relative_paths.m4]]
  - [ ] [[file:m4/ax_cond_with_level.m4][ax_cond_with_level.m4]]
  - [ ] [[file:m4/ax_config_feature.m4][ax_config_feature.m4]]
  - [ ] [[file:m4/ax_configure_args.m4][ax_configure_args.m4]]
  - [ ] [[file:m4/ax_cpp_check_flag.m4][ax_cpp_check_flag.m4]]
  - [ ] [[file:m4/ax_create_generic_config.m4][ax_create_generic_config.m4]]
  - [ ] [[file:m4/ax_create_pkgconfig_info.m4][ax_create_pkgconfig_info.m4]]
  - [ ] [[file:m4/ax_create_stdint_h.m4][ax_create_stdint_h.m4]]
  - [ ] [[file:m4/ax_create_target_h.m4][ax_create_target_h.m4]]
  - [ ] [[file:m4/ax_c_var_func.m4][ax_c_var_func.m4]]
  - [ ] [[file:m4/ax_cxx_check_flag.m4][ax_cxx_check_flag.m4]]
  - [ ] [[file:m4/ax_cxxcpp_check_flag.m4][ax_cxxcpp_check_flag.m4]]
  - [ ] [[file:m4/ax_cxx_function_try_blocks.m4][ax_cxx_function_try_blocks.m4]]
  - [ ] [[file:m4/ax_cxx_have_empty_iostream.m4][ax_cxx_have_empty_iostream.m4]]
  - [ ] [[file:m4/ax_cxx_have_ext_hash_map.m4][ax_cxx_have_ext_hash_map.m4]]
  - [ ] [[file:m4/ax_cxx_have_ext_hash_set.m4][ax_cxx_have_ext_hash_set.m4]]
  - [ ] [[file:m4/ax_cxx_have_ext_slist.m4][ax_cxx_have_ext_slist.m4]]
  - [ ] [[file:m4/ax_cxx_have_freeze_sstream.m4][ax_cxx_have_freeze_sstream.m4]]
  - [ ] [[file:m4/ax_cxx_have_long_long_for_iostream.m4][ax_cxx_have_long_long_for_iostream.m4]]
  - [ ] [[file:m4/ax_define_sub_path.m4][ax_define_sub_path.m4]]
  - [ ] [[file:m4/ax_dirname.m4][ax_dirname.m4]]
  - [ ] [[file:m4/ax_enable_builddir.m4][ax_enable_builddir.m4]]
  - [ ] [[file:m4/ax_expand_prefix.m4][ax_expand_prefix.m4]]
  - [ ] [[file:m4/ax_f77_cmain_fflags.m4][ax_f77_cmain_fflags.m4]]
  - [ ] [[file:m4/ax_func_accept_argtypes.m4][ax_func_accept_argtypes.m4]]
  - [ ] [[file:m4/ax_func_fork.m4][ax_func_fork.m4]]
  - [ ] [[file:m4/ax_func_getopt_long.m4][ax_func_getopt_long.m4]]
  - [ ] [[file:m4/ax_func_mkdir.m4][ax_func_mkdir.m4]]
  - [ ] [[file:m4/ax_func_which_gethostbyname_r.m4][ax_func_which_gethostbyname_r.m4]]
  - [ ] [[file:m4/ax_func_which_getservbyname_r.m4][ax_func_which_getservbyname_r.m4]]
  - [ ] [[file:m4/ax_gcc_archflag.m4][ax_gcc_archflag.m4]]
  - [ ] [[file:m4/ax_gcc_const_call.m4][ax_gcc_const_call.m4]]
  - [ ] [[file:m4/ax_gcc_install_dir.m4][ax_gcc_install_dir.m4]]
  - [ ] [[file:m4/ax_gcc_libgcc_eh.m4][ax_gcc_libgcc_eh.m4]]
  - [ ] [[file:m4/ax_gcc_lib.m4][ax_gcc_lib.m4]]
  - [ ] [[file:m4/ax_gcc_libraries_dir.m4][ax_gcc_libraries_dir.m4]]
  - [ ] [[file:m4/ax_gcc_libsupcxx.m4][ax_gcc_libsupcxx.m4]]
  - [ ] [[file:m4/ax_gcc_malloc_call.m4][ax_gcc_malloc_call.m4]]
  - [ ] [[file:m4/ax_gcc_option.m4][ax_gcc_option.m4]]
  - [ ] [[file:m4/ax_gcc_version.m4][ax_gcc_version.m4]]
  - [ ] [[file:m4/ax_gcc_warn_unused_result.m4][ax_gcc_warn_unused_result.m4]]
  - [ ] [[file:m4/ax_gcc_x86_cpuid.m4][ax_gcc_x86_cpuid.m4]]
  - [ ] [[file:m4/ax_gxx_version.m4][ax_gxx_version.m4]]
  - [ ] [[file:m4/ax_have_opengl.m4][ax_have_opengl.m4]]
  - [ ] [[file:m4/ax_java_check_class.m4][ax_java_check_class.m4]]
  - [ ] [[file:m4/ax_lapack.m4][ax_lapack.m4]]
  - [ ] [[file:m4/ax_ld_check_flag.m4][ax_ld_check_flag.m4]]
  - [ ] [[file:m4/ax_libgcj_jar.m4][ax_libgcj_jar.m4]]
  - [ ] [[file:m4/ax_lib_wad.m4][ax_lib_wad.m4]]
  - [ ] [[file:m4/ax_lua.m4][ax_lua.m4]]
  - [ ] [[file:m4/ax_maintainer_mode_auto_silent.m4][ax_maintainer_mode_auto_silent.m4]]
  - [ ] [[file:m4/ax_missing_prog.m4][ax_missing_prog.m4]]
  - [ ] [[file:m4/ax_mpi.m4][ax_mpi.m4]]
  - [ ] [[file:m4/ax_mpip.m4][ax_mpip.m4]]
  - [ ] [[file:m4/ax_normalize_path.m4][ax_normalize_path.m4]]
  - [ ] [[file:m4/ax_not_enable_frame_pointer.m4][ax_not_enable_frame_pointer.m4]]
  - [ ] [[file:m4/ax_numeric_namedlevel.m4][ax_numeric_namedlevel.m4]]
  - [ ] [[file:m4/ax_openmp.m4][ax_openmp.m4]]
  - [ ] [[file:m4/ax_patch_libtool_changing_cmds_ifs.m4][ax_patch_libtool_changing_cmds_ifs.m4]]
  - [ ] [[file:m4/ax_path_lib_pcre.m4][ax_path_lib_pcre.m4]]
  - [ ] [[file:m4/ax_pgsql_priv_root.m4][ax_pgsql_priv_root.m4]]
  - [ ] [[file:m4/ax_pkg_swig.m4][ax_pkg_swig.m4]]
  - [ ] [[file:m4/ax_prefix_config_h.m4][ax_prefix_config_h.m4]]
  - [ ] [[file:m4/ax_prog_apache.m4][ax_prog_apache.m4]]
  - [ ] [[file:m4/ax_prog_bison.m4][ax_prog_bison.m4]]
  - [ ] [[file:m4/ax_prog_cc_char_subscripts.m4][ax_prog_cc_char_subscripts.m4]]
  - [ ] [[file:m4/ax_prog_cp_s.m4][ax_prog_cp_s.m4]]
  - [ ] [[file:m4/ax_prog_crontab.m4][ax_prog_crontab.m4]]
  - [ ] [[file:m4/ax_prog_fasm.m4][ax_prog_fasm.m4]]
  - [ ] [[file:m4/ax_prog_fasm_opt.m4][ax_prog_fasm_opt.m4]]
  - [ ] [[file:m4/ax_prog_flex.m4][ax_prog_flex.m4]]
  - [ ] [[file:m4/ax_prog_hla.m4][ax_prog_hla.m4]]
  - [ ] [[file:m4/ax_prog_hla_opt.m4][ax_prog_hla_opt.m4]]
  - [ ] [[file:m4/ax_prog_httpd.m4][ax_prog_httpd.m4]]
  - [ ] [[file:m4/ax_prog_java_cc.m4][ax_prog_java_cc.m4]]
  - [ ] [[file:m4/ax_prog_javac.m4][ax_prog_javac.m4]]
  - [ ] [[file:m4/ax_prog_javac_works.m4][ax_prog_javac_works.m4]]
  - [ ] [[file:m4/ax_prog_java.m4][ax_prog_java.m4]]
  - [ ] [[file:m4/ax_prog_java_works.m4][ax_prog_java_works.m4]]
  - [ ] [[file:m4/ax_prog_masm.m4][ax_prog_masm.m4]]
  - [ ] [[file:m4/ax_prog_masm_opt.m4][ax_prog_masm_opt.m4]]
  - [ ] [[file:m4/ax_prog_mysqladmin.m4][ax_prog_mysqladmin.m4]]
  - [ ] [[file:m4/ax_prog_mysqld.m4][ax_prog_mysqld.m4]]
  - [ ] [[file:m4/ax_prog_mysqlimport.m4][ax_prog_mysqlimport.m4]]
  - [ ] [[file:m4/ax_prog_mysql.m4][ax_prog_mysql.m4]]
  - [ ] [[file:m4/ax_prog_mysqlshow.m4][ax_prog_mysqlshow.m4]]
  - [ ] [[file:m4/ax_prog_nasm.m4][ax_prog_nasm.m4]]
  - [ ] [[file:m4/ax_prog_nasm_opt.m4][ax_prog_nasm_opt.m4]]
  - [ ] [[file:m4/ax_prog_pgclient.m4][ax_prog_pgclient.m4]]
  - [ ] [[file:m4/ax_prog_scp.m4][ax_prog_scp.m4]]
  - [ ] [[file:m4/ax_prog_ssh.m4][ax_prog_ssh.m4]]
  - [ ] [[file:m4/ax_prog_tasm.m4][ax_prog_tasm.m4]]
  - [ ] [[file:m4/ax_prog_tasm_opt.m4][ax_prog_tasm_opt.m4]]
  - [ ] [[file:m4/ax_prog_tcl.m4][ax_prog_tcl.m4]]
  - [ ] [[file:m4/ax_prog_xsltproc.m4][ax_prog_xsltproc.m4]]
  - [ ] [[file:m4/ax_prog_yasm.m4][ax_prog_yasm.m4]]
  - [ ] [[file:m4/ax_prog_yasm_opt.m4][ax_prog_yasm_opt.m4]]
  - [ ] [[file:m4/ax_prototype_accept.m4][ax_prototype_accept.m4]]
  - [ ] [[file:m4/ax_prototype_getsockname.m4][ax_prototype_getsockname.m4]]
  - [ ] [[file:m4/ax_prototype.m4][ax_prototype.m4]]
  - [ ] [[file:m4/ax_prototype_setsockopt.m4][ax_prototype_setsockopt.m4]]
  - [ ] [[file:m4/ax_pthread.m4][ax_pthread.m4]]
  - [ ] [[file:m4/ax_python_devel.m4][ax_python_devel.m4]]
  - [ ] [[file:m4/ax_python.m4][ax_python.m4]]
  - [ ] [[file:m4/ax_ruby_devel.m4][ax_ruby_devel.m4]]
  - [ ] [[file:m4/ax_set_default_paths_system.m4][ax_set_default_paths_system.m4]]
  - [ ] [[file:m4/ax_spec_file.m4][ax_spec_file.m4]]
  - [ ] [[file:m4/ax_spec_package_version.m4][ax_spec_package_version.m4]]
  - [ ] [[file:m4/ax_subdir_files.m4][ax_subdir_files.m4]]
  - [ ] [[file:m4/ax_subst_with.m4][ax_subst_with.m4]]
  - [ ] [[file:m4/ax_swig_enable_cxx.m4][ax_swig_enable_cxx.m4]]
  - [ ] [[file:m4/ax_swig_multi_module_support.m4][ax_swig_multi_module_support.m4]]
  - [ ] [[file:m4/ax_swig_python.m4][ax_swig_python.m4]]
  - [ ] [[file:m4/ax_sys_largefile_sensitive.m4][ax_sys_largefile_sensitive.m4]]
  - [ ] [[file:m4/ax_tls.m4][ax_tls.m4]]
  - [ ] [[file:m4/ax_type_socklen_t.m4][ax_type_socklen_t.m4]]
  - [ ] [[file:m4/ax_var_timezone_externals.m4][ax_var_timezone_externals.m4]]
  - [ ] [[file:m4/ax_very_nice.m4][ax_very_nice.m4]]
  - [ ] [[file:m4/ax_warning_default_aclocaldir.m4][ax_warning_default_aclocaldir.m4]]
  - [ ] [[file:m4/ax_warning_default_pkgconfig.m4][ax_warning_default_pkgconfig.m4]]
  - [ ] [[file:m4/ax_with_curses.m4][ax_with_curses.m4]]
  - [ ] [[file:m4/ax_xercesc.m4][ax_xercesc.m4]]
  - [ ] [[file:m4/ax_xtra_classpath.m4][ax_xtra_classpath.m4]]