groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: what is /usr/share/doc/groff/proof.ps?


From: G. Branden Robinson
Subject: Re: what is /usr/share/doc/groff/proof.ps?
Date: Thu, 4 Jul 2024 21:10:08 -0500

Hi Doug,

At 2024-07-04T07:56:40-0400, Douglas McIlroy wrote:
> The cited file is what would result from [groff /dev/null].
[...]
> Slight correction. groff needs one empty line of input, not zero
> lines, to produce proof.ps.

> Why is it in the groff distribution?

I don't think that it is.  We ship no such file, don't have any file
matching '*proof*' in our Git repository, and a "git grep" shows no
evidence of such a thing.

$ git grep proof
ChangeLog:      future-proof in the event their meaningful values ever carry
ChangeLog.123:  Nurpmeso for supplying a proof-of-concept.  (I went with my own
contrib/mm/examples/story.mm:and a proof not less of the power of the painter
doc/groff.texi.in:to spread the text for annotations or proofreader's marks.  
By default,
doc/groff.texi.in:error-prone, and not future-proof as the @code{groff} 
language develops.
m4/groff.m4:#     and proofread on systems using groff's implementation of the 
'an' macro

If we were producing a "proof.ps" from a "proof.ms" or similar, the
foregoing grep would probably have turned up some evidence of that in an
Automake file.

If you're using a Debian based system, you can give an absolute filespec
to "dpkg -S" to compel the disclosure of which package shops the file.

On RPM systems, I _think_ "rpm -qf" does something similar, but my
conversance with RPM has regrown and bitrotted multiple times.

It may be that nothing does ship it.  Is it possible you or someone else
with superuser privileges put the file there long ago?

How does the file's timestamp compare with those of adjacent files in
the directory?

> According to the postscript, it was made with grops 1.22.

That's a little odd.  According to our ChangeLog.122 file:

Version 1.22 (not) released (see 1.22.1 entry above)
====================================================

2012-12-28  Werner LEMBERG  <wl@gnu.org>

        * NEWS, VERSION, doc/groff.texinfo, doc/webpage.ms: Updated.

...scrolling up...

Version 1.22.1 released 2012-12-30
==================================

2012-12-30  Werner LEMBERG  <wl@gnu.org>

        Due to CVE-2012-3386, ftp.gnu.org rejected uploading of version
        1.22 -- in other words, 1.22 has never been released.

I wonder if grops(1) used to truncate the third part of groff's version
number.

14a3a47465 src/devices/grops/ps.cc  (Werner LEMBERG      2002-06-02 07:53:30 
+0000 1848)       printf("GNU grops (groff) version %s\n", Version_string);

No.  But maybe we used to not completely populate Version_string...

src/libs/libgroff/libgroff.am:

src/libs/libgroff/version.cpp: $(top_srcdir)/.version
        $(AM_V_at)printf 'const char *version_string = "%s.%s";\n' \
          $(MAJOR_VERSION) $(MINOR_VERSION) > $@.tmp
        $(AM_V_at)printf 'const char *revision_string = "%s";\n' \
          $(REVISION) >> $@.tmp
        $(AM_V_at)printf \
          'extern "C" {\nconst char *Version_string = "%s";\n}\n' \
          $(VERSION) >> $@.tmp
        $(AM_V_GEN)mv $@.tmp $@

Hmm.  Well, this Automake stuff is from when Bertrand migrated our build
system, which happened after 1.22 was(n't) released.[2]

In fact I remember some refactoring of version string construction
taking place after I joined groff development.[1]  Let's see.

$ echo '' | /usr/bin/groff | grep groff
%%Creator: groff version 1.22.4

$ echo '' | ~/groff-1.22.3/bin/groff | grep groff
%%Creator: groff version 1.22.3

I don't have any older versions of groff around.  But it appears to me
that your proof.ps file must have been created by groff 1.22.2 or older.

Does this help any?

Regards,
Branden

[1] https://lists.gnu.org/archive/html/groff/2018-01/msg00025.html

[2] According to a commit message I just stumbled across, Bertrand
    migrated us to Automake in commit a23c589e4e, 2014-08-17.

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]