Hello Anthony,

Anthony J. Bentley wrote on Tue, May 20, 2025 at 06:04:01AM -0600:

> devel/srecord sets USE_GROFF=Yes. The build uses groff(1) in three ways:
> 
> 1. Runs soelim(1) on the manpages, then installs them to man1/3/5.
> 2. Runs groff -Tascii on the manpages, then installs them to cat1/3/5.
> 3. Runs groff -Tps on additional documentation, then installs to share/doc.
> 
> None of these really need USE_GROFF. In particular, the manpages
> installed in step 1 format fine with mandoc(1); I diffed the output
> and found nothing problematic.

Some of the section 5 manuals use .br requests inside tbl(7) code,
which mandoc(1) does not support.  But that only results in ugly
formatting (excessively wide tables), not in unreadable output.

Besides, several of the manuals use the .lf request which mandoc(1)
intentionally does not support - but that does not result in
incorrect output at all, only in error messages.

So i agree mandoc(1) is good enough for these manuals.

The "additional documentation" from step 3 actually conists of
more manual pages, specifically these source files:

  etc/BUILDING.man
  etc/README.man
  etc/change_log.man
  etc/reference.man

These documents are all written in the man(7) language, so installing
them as PDF does not really make any sense to me.

 * BUILDING.man   "How to build SRecord"
   Installing that one at all makes little sense to me.
   When users install a package, they no longer need to build.
   If you want install it anyway, it should probably be
     /usr/local/man/man1/srecord_BUILDING.1
   or something like that.
 * README.man  "SRecord - manipulate EPROM load files"
   That file is a horrible mess.  It contains
    - A marketing blurb of dubious value
    - A list of supported file formats, potentially useful?
      But such a list also seems to appear in srec_input(1).
    - An (incomplete?) list of srec_* section 1 utility programs
    - A list of input filters, potentially useful?
      But such a list also seems to appear in srec_input(1).
    - Download and build instructions, likely not useful.
    - Copyright, license, and authors information
    - Old release notes (misplaced in a manual page)
   Maybe this should be dropped outright?
   If it is somehow useful, it should maybe have a name similar to
     /usr/local/man/man7/srecord.7
   to indicate that it contains disorganized miscellaneous content.
 * change_log.man
   This looks like a copy of the last part of README.man.
   Likely not needed at all, in particular not two copies of it.
 * reference.man   "SRecord  Reference Manual"
   Looks like a concatenation of README.man, BUILDING.man,
   and various other manual pages that are also installed
   separately, maybe all of them.  Hard to say whether there
   is anything in there that is *not* duplicate.

I think this really needs attention from somebody who is actively
using this software.  Someone needs to figure out which parts
are useful documentation and what is merely duplication,
and then install every useful part *once* with a useful name.

If nobody cares about making the documentation for this port
useful, i'm OK with your general direction, but i think you should
install the four PDF files in man(7) format even in that case and
not produce any PDFs.

If even that feels like too much work for you, i'm also OK
with your diff as-is.  It builds, packages, installs, and
deinstalls cleanly for me on amd64.
I did not try running the program.

Yours,
  Ingo


> So we can replace USE_GROFF with a build dependency on groff.
> 
> This means the items in step 2 are useless. But we don't have to remove
> them, since update-plist apparently ignores them anyway.
> 
> ok?
> 
> --- devel/srecord/Makefile
> +++ devel/srecord/Makefile
> @@ -3,7 +3,7 @@ BROKEN-arm=   SIGBUS in ps2pdf
>  COMMENT=             collection of tools for manipulating EPROM load files
>  
>  DISTNAME=            srecord-1.64
> -REVISION =           4
> +REVISION =           5
>  CATEGORIES=          devel
>  
>  SHARED_LIBS +=  srecord              0.0      # 0.0
> @@ -20,11 +20,10 @@ WANTLIB += c gcrypt gpg-error iconv intl m ${COMPILER_
>  COMPILER =           base-clang ports-gcc base-gcc
>  
>  BUILD_DEPENDS=               devel/boost \
> -                     print/ghostscript/gnu
> +                     print/ghostscript/gnu \
> +                     textproc/groff
>  LIB_DEPENDS=         security/libgcrypt
>  
> -USE_GROFF=           Yes
> -
>  CONFIGURE_STYLE=     gnu
>  CONFIGURE_ENV=               CPPFLAGS="-I${LOCALBASE}/include" \
>                       LDFLAGS="-L${LOCALBASE}/lib"
> blob - 0bdbd343667948b4e8a7a889d374485559647938
> blob + 494e5249ac7fb96aae86ba8ec4269d9fd8e4699f
> --- devel/srecord/pkg/PLIST
> +++ devel/srecord/pkg/PLIST
> @@ -153,7 +153,7 @@ include/srecord/quit/prefix.h
>  include/srecord/record.h
>  include/srecord/srecord.h
>  include/srecord/string.h
> -lib/libsrecord.a
> +@static-lib lib/libsrecord.a
>  lib/libsrecord.la
>  @lib lib/libsrecord.so.${LIBsrecord_VERSION}
>  lib/pkgconfig/srecord.pc

Reply via email to