Re: upcoming textproc/groff-1.23.0

2020-11-16 Thread Christian Weisgerber
Ingo Schwarze:

> > It is GNU project policy that distribution tarballs include
> > pre-formatted .info files so that makeinfo is NOT required.
> 
>   tar -tzvf groff-1.23.0.rc1.tar.gz | grep -F .info
> 
> tells me the groff project doesn't include it in the tarball, but
> maybe i can convince them to do that in the future.

I mean...

https://ftp.gnu.org/gnu/makeinfo.README

| makeinfo is part of the texinfo distribution.
| Get texinfo-*.tar.gz.
| 
| However, all GNU distributions should come with prebuilt info files,
| thus makeinfo should not be needed.  If you notice a distribution
| that does not come with *.info files, please report it as a bug.

-- 
Christian "naddy" Weisgerber  na...@mips.inka.de



Re: upcoming textproc/groff-1.23.0

2020-11-15 Thread Ingo Schwarze
Hi Christian,

thanks for the feedback!  I really appreaciate that.  I will look
at making a leaner version of the port avoiding the TeXLive
dependency.  I'll explore the options and come back to you.
It's not yet urgent because the release has not yet arrived,
but it's very good that i already got your guidance.

See below for a few details.

Yours,
  Ingo


Christian Weisgerber wrote on Sun, Nov 15, 2020 at 11:17:07PM +0100:
> Ingo Schwarze:

>> There is another reason why now is a good time to switch priorities.
>> Upstream has been doing lots of work on documentation, and in that
>> context, they decided to use newer makeinfo(1) features that our
>> ancient /usr/bin/makeinfo does not support.  The natural consequence
>> is to make groff depend on the print/texinfo port and use the newer
>> gmakeinfo(1) version contained in that port to format the groff
>> documentation.  (Yes, the irony that groff does *not* use roff for
>> its own documentation but instead uses TeX is not lost on me.)

> It is GNU project policy that distribution tarballs include
> pre-formatted .info files so that makeinfo is NOT required.

  tar -tzvf groff-1.23.0.rc1.tar.gz | grep -F .info

tells me the groff project doesn't include it in the tarball, but
maybe i can convince them to do that in the future.

> ... Although, I guess that groff wants to build HTML/PDF documentation?

Yes, groff wants to do that, but i wouldn't consider that important.
There is not much point in installing HTML and PDF files when the
same information is also available in man(1) or info(1) form.

> The need for a newer makeinfo will bite us more and more, especially
> porters who are not as comfortable disentangling the dependencies
> and touch(1)ing the correct files when upstream make a mistake while
> creating the tarball and the autotools build cascade goes off and
> wants to re-run makeinfo without need...
 
>> Now, print/texinfo isn't exactly a lean port.  Here is its
>> list of dependencies according to "make full-all-depends":

> Installing this monster for a newer makeinfo(1) will sooner or later
> trap us in a recursive dependency.

I did check that, right now, there is no recursive dependency.
But i missed that fact that it sets a trap, so i'll work on a
way to update to 1.23.0 without setting that trap.

>>  * Texinfo is needed to build the documentation.  The alternative
>>would be to ship groff without documentation and point people to
>>https://www.gnu.org/software/groff/manual/html_node/ .
>>But frankly, we don't generally like telling people "get the
>>manual from the web" in OpenBSD.

> Actually, we tend not to build documentation that requires pulling
> in dependencies like Doxygen or, well, TeXLive.

Duly noted.

> (Admittedly, much Doxygen-generated documentation seems very poor
> in the first place and just regurgitates header files.)

Indeed, Doxygen is mostly useless.



Re: upcoming textproc/groff-1.23.0

2020-11-15 Thread Christian Weisgerber
Ingo Schwarze:

> There is another reason why now is a good time to switch priorities.
> Upstream has been doing lots of work on documentation, and in that
> context, they decided to use newer makeinfo(1) features that our
> ancient /usr/bin/makeinfo does not support.  The natural consequence
> is to make groff depend on the print/texinfo port and use the newer
> gmakeinfo(1) version contained in that port to format the groff
> documentation.  (Yes, the irony that groff does *not* use roff for
> its own documentation but instead uses TeX is not lost on me.)

It is GNU project policy that distribution tarballs include
pre-formatted .info files so that makeinfo is NOT required.
... Although, I guess that groff wants to build HTML/PDF documentation?

The need for a newer makeinfo will bite us more and more, especially
porters who are not as comfortable disentangling the dependencies
and touch(1)ing the correct files when upstream make a mistake while
creating the tarball and the autotools build cascade goes off and
wants to re-run makeinfo without need...

> Now, print/texinfo isn't exactly a lean port.  Here is its
> list of dependencies according to "make full-all-depends":

Installing this monster for a newer makeinfo(1) will sooner or later
trap us in a recursive dependency.

>  * Texinfo is needed to build the documentation.  The alternative
>would be to ship groff without documentation and point people to
>https://www.gnu.org/software/groff/manual/html_node/ .
>But frankly, we don't generally like telling people "get the
>manual from the web" in OpenBSD.

Actually, we tend not to build documentation that requires pulling
in dependencies like Doxygen or, well, TeXLive.  (Admittedly, much
Doxygen-generated documentation seems very poor in the first place
and just regurgitates header files.)

-- 
Christian "naddy" Weisgerber  na...@mips.inka.de



Re: upcoming textproc/groff-1.23.0

2020-11-13 Thread Mikolaj Kucharski
Hi Ingo,

On Fri, Nov 13, 2020 at 08:14:55PM +0100, Ingo Schwarze wrote:
> -DISTNAME =   groff-${VERSION}
> -REVISION =   4
> +DISTNAME =   groff-${VERSION}.rc1
> +PKGNAME =groff-${VERSION}

I think you could set:

PKGNAME = groff-${VERSION}rc1

That would allow upgrade the package naturally later, when
final release is commited to the ports tree.



upcoming textproc/groff-1.23.0

2020-11-13 Thread Ingo Schwarze
Hi,

Bertrand Garrigues put up a release candidate for the upcoming groff-1.23.0
release.  Here is an update of our textproc/groff port NOT INTENDED FOR
COMMIT.  Before commit, i will wait for the official release.  But i'm
sending this out early such that people who like to can test for
regressions, hoping to still get them fixed before release if we
find any.

Testing is very welcome, and so are opinions on the paradigmatic change
discussed below.

Our groff port has long been focussed on formatting manual pages.
About a decade ago, more than 3000 ports used it for that purpose.
Of these, less than 30 remain because mandoc can now cope with 99%
of ports manual pages.

For that reason, time might be ripe to switch focus of the port:
away from being predominantly a manual page formatter and adapting
it better to general purpose typesetting.

There is another reason why now is a good time to switch priorities.
Upstream has been doing lots of work on documentation, and in that
context, they decided to use newer makeinfo(1) features that our
ancient /usr/bin/makeinfo does not support.  The natural consequence
is to make groff depend on the print/texinfo port and use the newer
gmakeinfo(1) version contained in that port to format the groff
documentation.  (Yes, the irony that groff does *not* use roff for
its own documentation but instead uses TeX is not lost on me.)

Now, print/texinfo isn't exactly a lean port.  Here is its
list of dependencies according to "make full-all-depends":

  docbook-dsssl-1.79 metaauto-1.0p4 xz-5.2.5 help2man-1.47.16
  autoconf-2.69p3 libb2-0.98.1v0 automake-1.14.1p1 automake-1.15.1
  automake-1.16.2 autoconf-2.67p1 libltdl-2.4.2p1 libtool-2.4.2p0
  autoconf-2.63p1 gpatch-2.7.6p0 re2c-2.0.3 dvi2tty-5.3.1p0
  p5-IPC-Run3-0.048p0 ffcall-1.10p5 libiconv-1.16p0 libunistring-0.9.7
  libidn2-2.3.0p0 lzo2-2.10p2 unzip-6.0p13 iso8879-1986p1 yasm-1.3.0p1
  ghostscript-fonts-8.11p3 tcl-8.5.19p4 tk-8.5.19p1 t1utils-1.41p0
  sqlite2mdoc-0.1.4 sqlite3-3.31.1p0 p5-XML-Parser-2.44p0 xmltoman-0.4
  zip-3.0p1 pcre-8.41p2 lunzip-1.11 ijs-0.35p3 libsigsegv-2.12
  m4-1.4.18p1 db-4.6.21p7v0 dwz-0.13p0 gettext-runtime-0.21p0
  gmake-4.3 lz4-1.9.2p0 libpaper-1.1.28 icu4c-67.1 gdbm-1.18.1p0
  ggrep-3.4 zstd-1.4.5p0 bash-5.0.18 gmp-6.2.0 libnettle-3.6 gmp-6.2.0
  mpfr-4.0.2.1 gawk-5.1.0 bzip2-1.0.8p0 clisp-2.49p5 libarchive-3.4.3
  gtar-1.32p1 libgpg-error-1.39 libgcrypt-1.8.6 lynx-2.8.9rel1p0
  zziplib-0.13.62p1 libusb1-1.0.23p2 detex-2.8.1 libtextstyle-0.21p0
  gettext-tools-0.21p0 intltool-0.51.0p2 gnugetopt-1.1.6p2 bison-3.3.2p2
  png-1.6.37 libffi-3.3 python-3.8.6 py3-setuptools-41.6.0p0v0
  py3-tz-2020.1p0 py3-babel-2.8.0p0 py3-six-1.13.0p1 py3-imagesize-1.1.0p2
  py3-alabaster-0.7.10p2 py3-pygments-2.5.2p0 py3-docutils-0.12p3
  py3-sphinx_rtd_theme-0.2.4p2 py3-setuptools-git-1.2p1 py3-cython-0.29.21
  py3-stemmer-1.3.0p5 py3-snowballstemmer-1.2.1p3 py3-MarkupSafe-1.1.1p0
  py3-jinja2-2.11.2p1 py3-sphinx-1.4.8p4 py3-markdown-2.6.11p3
  py3-cryptodome-3.9.8 py3-beaker-1.10.0p1 py3-mako-1.1.1p0
  libxml-2.9.10p2 docbook-4.5p3 libxslt-1.1.34p0 docbook-xsl-1.68.1p7
  xmlto-0.0.28p0 giflib-5.1.6 dbus-1.12.20v0 dbus-1.12.20v0
  dbus-daemon-launch-helper-1.12.20 python-2.7.18p0
  py-setuptools-41.6.0p0v0 py-tz-2020.1p0 py-babel-2.8.0p0
  py-six-1.13.0p1 py-imagesize-1.1.0p2 py-alabaster-0.7.10p2
  py-pygments-2.5.2p0 py-docutils-0.12p3 py-sphinx_rtd_theme-0.2.4p2
  py-setuptools-git-1.2p1 py-cython-0.29.21 py-stemmer-1.3.0p5
  py-snowballstemmer-1.2.1p3 py-MarkupSafe-1.1.1p0 py-jinja2-2.11.2p1
  py-sphinx-1.4.8p4 libuv-1.30.1 ninja-1.10.1 meson-0.55.3v0
  jsoncpp-1.8.4p2 glib2-2.64.6 cairo-1.16.0 gobject-introspection-1.64.1p0
  desktop-file-utils-0.26 jbig2dec-0.11 nghttp2-1.41.0p1 curl-7.72.0
  rhash-1.4.0 cmake-3.17.2p1v0 jpeg-2.0.5v0 tiff-4.1.0 libwebp-1.1.0
  gd-2.3.0p0 lcms2-2.9p0 graphite2-1.3.14 harfbuzz-2.7.2 cmocka-1.1.3
  libevent-2.1.11 libunbound-1.12.0 libtasn1-4.16.0 p11-kit-0.23.21
  gnutls-3.6.15 libdaemon-0.14p1 avahi-0.8p0 cups-libs-2.3.3
  ghostscript-9.07p7 texlive_mktexlsr-2020p0 lcdf-typetools-2.108
  texlive_texmf-buildset-2020p0 ps2eps-1.68p0 psutils-2.03p1
  texlive_synctex-2020p0 texlive_base-2020p0

So, given that groff needs to depend on all that crap anyway, adding
a few lighter dependencies in addition that are actually useful for
real-world typesetting tasks sounds like a no-brainer.  And bingo,
with that, we have a completely new role for the port: No longer a
small thing to be built at the beginning of a bulk and to be used
by most of the rest of the world for USE_GROFF, but a medium-sized
pig now to be built somewhere in the middle, among all those other
fat ports pigs...

Changes in detail, ordered as in the Makefile:

 * The X11 libraries are only used by gxditview(1) and xtotroff(1).
   Those programs have long been part of the groff package upstream,
   but we used to exclude them to keep the port lean.
 * Upstream uses the iconv and uchardet libraries in preconv(1),