Re: upcoming textproc/groff-1.23.0
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
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
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
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
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),