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

Reply via email to