On 2025-07-19 06:48, Bruno Haible via Gnulib discussion list wrote:
I would be in favour of retiring the DVI format from
the GNU Coding Standards. The DVI format was commonplace in the 1990ies,
but lost popularity to the PDF format starting 2008 (when PDF became an
open standard). Nowadays, even the math arXiv does not offer DVI as a
download format any more.... But this needs to be done through the
proper channels: first the GNU standards, then GNU Autoconf and Automake.
I agree with changing the GNU standards. For many years requiring DVI
has been unnecessary and even counterproductive. It's not merely the
develop/build hassles with DVI that started this thread[1]. It's also
that nowadays it's more confusing than useful for GNU packages to
distribute DVI files, as most people don't know what to do with them,
e.g., they don't know what external fonts and/or processors are needed
to view DVI files and therefore display the files inaccurately.
Attached is a proposed patch to the GNU standards to retire DVI from the
list of required and/or suggested formats. Of course packages could
still support DVI if they prefer, it's just that it shouldn't be required.
cc'ing this email to bug-standa...@gnu.org for comment there.
[1]: https://lists.gnu.org/r/bug-gnulib/2025-07/msg00083.html
Index: maintain.texi
===================================================================
RCS file: /sources/gnustandards/gnustandards/maintain.texi,v
retrieving revision 1.292
diff -u -r1.292 maintain.texi
--- maintain.texi 22 Jun 2025 10:43:15 -0000 1.292
+++ maintain.texi 19 Jul 2025 21:02:42 -0000
@@ -995,7 +995,7 @@
When you distribute several manuals together in one software package,
their on-line forms can share a single copy of the GFDL (see
-section@tie{}6). However, the printed (@samp{.dvi}, @samp{.pdf},
+section@tie{}6). However, the printed (@samp{.pdf},
@dots{}) forms should each contain a copy of the GFDL, unless they are
set up to be printed and published only together. Therefore, it is
usually simplest to include the GFDL in each manual.
@@ -1713,7 +1713,7 @@
The purpose of having diffs is that they are small. To keep them
small, exclude files that the user can easily update. For example,
-exclude info files, DVI files, tags tables, output files of Bison or
+exclude info files, PDF files, tags tables, output files of Bison or
Flex. In Emacs diffs, we exclude compiled Lisp files, leaving it up
to the installer to recompile the patched sources.
@@ -2487,7 +2487,7 @@
@cindex formats for documentation, desired
The web pages for the package should include its manuals, in HTML,
-DVI, Info, PDF, plain ASCII, and the source Texinfo. All of these can
+Info, PDF, plain ASCII, and the source Texinfo. All of these can
be generated automatically from Texinfo using Makeinfo and other
programs. If the Texinfo itself is generated from some other source
format, include that too.
@@ -2558,7 +2558,7 @@
@command{gendocs.sh} creates a subdirectory @file{manual/} containing
the manual generated in all the standard output formats: Info, HTML,
-DVI, and so on, as well as the Texinfo source. You then need to move
+and so on, as well as the Texinfo source. You then need to move
all those files, retaining the subdirectories, into the web pages for
your package.
@@ -2597,7 +2597,7 @@
HTML output generated by @command{texi2html} (i.e., split by sections
and chapters).
-You can set the environment variables @env{MAKEINFO}, @env{TEXI2DVI},
+You can set the environment variables @env{MAKEINFO}, @env{TEXI2PDF},
etc., to control the programs that get executed, and
@env{GENDOCS_TEMPLATE_DIR} to control where the
@file{gendocs_template} file is found.
Index: make-stds.texi
===================================================================
RCS file: /sources/gnustandards/gnustandards/make-stds.texi,v
retrieving revision 1.71
diff -u -r1.71 make-stds.texi
--- make-stds.texi 14 Mar 2024 22:51:37 -0000 1.71
+++ make-stds.texi 19 Jul 2025 21:02:42 -0000
@@ -185,14 +185,14 @@
@example
ar bison cc flex install ld ldconfig lex
-make makeinfo ranlib texi2dvi yacc
+make makeinfo ranlib texi2pdf yacc
@end example
Use the following @code{make} variables to run those programs:
@example
$(AR) $(BISON) $(CC) $(FLEX) $(INSTALL) $(LD) $(LDCONFIG) $(LEX)
-$(MAKE) $(MAKEINFO) $(RANLIB) $(TEXI2DVI) $(YACC)
+$(MAKE) $(MAKEINFO) $(RANLIB) $(TEXI2PDF) $(YACC)
@end example
When you use @code{ranlib} or @code{ldconfig}, you should make sure
@@ -592,13 +592,12 @@
@code{docdir} for compatibility with existing practice.
@item htmldir
-@itemx dvidir
@itemx pdfdir
@itemx psdir
Directories for installing documentation files in the particular
format. They should all be set to @code{$(docdir)} by default. (If
you are using Autoconf, write them as @samp{@@htmldir@@},
-@samp{@@dvidir@@}, etc.) Packages which supply several translations
+etc.) Packages which supply several translations
of their documentation should install them in
@samp{$(htmldir)/}@var{ll}, @samp{$(pdfdir)/}@var{ll}, etc. where
@var{ll} is a locale abbreviation such as @samp{en} or @samp{pt_BR}.
@@ -725,7 +724,7 @@
@item all
Compile the entire program. This should be the default target. This
target need not rebuild any documentation files; Info files should
-normally be included in the distribution, and DVI (and other
+normally be included in the distribution, and PDF (and other
documentation format) files should be made only when explicitly asked
for.
@@ -801,7 +800,6 @@
Categories}.
@item install-html
-@itemx install-dvi
@itemx install-pdf
@itemx install-ps
These targets install documentation in formats other than Info;
@@ -865,7 +863,7 @@
them. There is no need to delete parent directories that were created
with @samp{mkdir -p}, since they could have existed anyway.
-Delete @file{.dvi} files here if they are not part of the distribution.
+Delete @file{.pdf} files here if they are not part of the distribution.
@item distclean
Delete all files in the current directory (or created by this
@@ -940,7 +938,6 @@
users build the package, ordinarily Make will not update the Info files
because they will already be up to date.
-@item dvi
@itemx html
@itemx pdf
@itemx ps
@@ -949,19 +946,19 @@
format cannot be generated. These targets should not be dependencies
of the @code{all} target; the user must manually invoke them.
-Here's an example rule for generating DVI files from Texinfo:
+Here's an example rule for generating PDF files from Texinfo:
@smallexample
-dvi: foo.dvi
+pdf: foo.pdf
-foo.dvi: foo.texi chap1.texi chap2.texi
- $(TEXI2DVI) $(srcdir)/foo.texi
+foo.pdf: foo.texi chap1.texi chap2.texi
+ $(TEXI2PDF) $(srcdir)/foo.texi
@end smallexample
@noindent
-You must define the variable @code{TEXI2DVI} in the Makefile. It
-should run the program @code{texi2dvi}, which is part of the Texinfo
-distribution. (@code{texi2dvi} uses @TeX{} to do the real work of
+You must define the variable @code{TEXI2PDF} in the Makefile. It
+should run the program @code{texi2pdf}, which is part of the Texinfo
+distribution. (@code{texi2pdf} uses @TeX{} to do the real work of
formatting. @TeX{} is not distributed with Texinfo.) Alternatively,
write only the dependencies, and allow GNU @code{make} to provide the
command.
Index: standards.texi
===================================================================
RCS file: /sources/gnustandards/gnustandards/standards.texi,v
retrieving revision 1.281
diff -u -r1.281 standards.texi
--- standards.texi 5 Jul 2025 06:37:30 -0000 1.281
+++ standards.texi 19 Jul 2025 21:02:42 -0000
@@ -87,7 +87,7 @@
If you did not obtain this file directly from the GNU project and
recently, please check for a newer version. You can get the GNU
Coding Standards from the GNU web server in many
-different formats, including the Texinfo source, PDF, HTML, DVI, plain
+different formats, including the Texinfo source, PDF, HTML, plain
text, and more, at: @uref{https://www.gnu.org/prep/standards/}.
If you are maintaining an official GNU package, in addition to this
@@ -4223,7 +4223,7 @@
--sharedstatedir --localstatedir --runstatedir
--libdir --includedir --oldincludedir
--datarootdir --datadir --infodir --localedir --mandir --docdir
---htmldir --dvidir --pdfdir --psdir
+--htmldir --pdfdir --psdir
@end example
The @code{configure} script should also take an argument which specifies the