Re: groff 1.25.0.rc1 testing
"G. Branden Robinson" <[email protected]> Tue, 21 Jul 2026 02:00:11 -0500
| Newsgroups | gmane.comp.printing.groff.general |
|---|---|
| Message-ID | <20260721070011.pnxskmf7pxu6oija@illithid> |
--t76nxtbzijlx7rsj
Content-Type: text/plain; protected-headers=v1; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Subject: Re: groff 1.25.0.rc1 testing
MIME-Version: 1.0
At 2026-07-21T15:32:53+0900, Nguy=E1=BB=85n Gia Phong wrote:
> On 2026-07-21 at 00:35-05:00, G. Branden Robinson wrote:
> > At 2026-07-21T14:07:10+0900, Nguy=E1=BB=85n Gia Phong wrote:
> > > Alternatively, I'm trying to switch to building from Git (we are
> > > trying to avoid artefacts like generated configure where possible)
> > > and without the .git directory (which is not reproducible)
> > > configure is failing to find the version:
> >
> > Right. You now need to specify `--enable-maintainer-mode` to
> > "configure" when building from Git.
> >
> > In my next push, this will be clearer. Here's an exhibit from my
> > working copy.
> >
> > INSTALL.REPO: Document `--enable-maintainer-mode`.
>=20
> Thanks, though looking at e2cd638955de ("doc/doc.am:
> Employ `MAINTAINER_MODE`.") this only affects requiring
> ImageMagick as a dependency.
For now. There may already exist other "informal" maintainer-mode stuff
we should bring under the governance of the `MAINTAINER_MODE` Automake
macro, and further such things may arise in the future.
One existing instance I can think of is the generation of the Bison/YACC
grammars for eqn, pic, and refer.
See a recent commit:
commit baac1d37e9cbf38c786a89e34201bd9cce0ec19f
Author: G. Branden Robinson <[email protected]>
Date: Thu Jul 2 12:12:37 2026 -0500
[eqn,pic,refer]: Clean out-of-source build trees.
...better.
* src/preproc/eqn/eqn.am:
* src/preproc/pic/pic.am:
* src/preproc/refer/refer.am: Improve clean behavior, deleting YACC/
Bison-generated files _only_ from an out-of-source build tree.
Because they are shipped in the distribution archive, only the
"maintainer-clean" target should remove them from the source tree.
Add new macros `GROFF_{EQN,PIC,REFER}_YACC_FILES` to track these
artifacts. Redefine `MAINTAINERCLEANFILES` in terms of these new
macros. Add `mostlyclean-{eqn,pic,refer}` targets to perform the
cleaning. Add these new targets as dependencies of
`mostlyclean-local`.
With this commit, the only files left behind after a command sequence
like this...
rm -r build
mkdir build
cd build
../configure
make
make clean
...are a bunch of ".dirstamp" and/or ".Po" files, which are GNU
Automake's business to deal with.
With `MAINTAINER_MODE`, we might be able to make the foregoing even more
scrupulous.
> In the spirit of not relying on pregenerated artifact, Guix does want
> this flag.
Understood. I think Colin Watson has the groff packages for Debian
doing the same thing already.
> On 2026-07-21 at 00:35-05:00, G. Branden Robinson wrote:
> > At 2026-07-21T14:07:10+0900, Nguy=E1=BB=85n Gia Phong wrote:
> > > How is this version string constructed?
> >
> > README:
> > The version number is given in the file ".tarball-version" if
> > you are building from a distribution archive; otherwise,
> > building from its Git repository stores it in the file
> > ".version".
> >
> > If you're doing an out-of-tree build, then the presence of
> > ".version" in your Git working copy can confuse a human
>=20
> I'm speaking for the automated build pipeline here. On Guix, if a
> package is built from a Git checkout, a fresh clone would be made,
> then the .git directory shall be removed, hence the following won't
> work.
The .version file is not placed in the ".git" directory, but the root of
the build tree, wherever that is. I could have been clearer; my usual
build tree happens to be a _sub_directory of my working copy.
> I've resulted to writing to .tarball-version instead and the build and
> tests succeeded. Please let me know if this has any unintended
> effect.
None that I know of, but I'm nervous about the practice. If your build
=66rom the repository is failing to properly populate ".version", I'm
strongly interested to know the failure mode.
> On 2026-07-21 at 00:35-05:00, G. Branden Robinson wrote:
> > At 2026-07-21T14:07:10+0900, Nguy=E1=BB=85n Gia Phong wrote:
> > There is no rc2 tarball; I haven't published one. If the issues
> > Alexis found are the only ones that came up, my next distribution
> > archive release will be 1.25.0 final.
>=20
> Sorry for being unclear, I meant to ask for you to publish the rc2
> so distros will know the 1.25.0 tarball (which will differ only
> in the version string) will work. It does not matter now for Guix at
> least because we can switch to building from the Git checkout.
The rc1 distribution archive _does_ work in some scenarios; I know
because I tested it myself.
Admittedly, I had an existing groff installation in my build
environment, so the build found the "wrong" soelim(1)[1] when generating
the man pages, and I also had ImageMagick installed, so any spurious
rebuild of "line-layout.png" succeeded.
Alexis's report prompted me to test a build in a more slimmed-down
environment, which is how I tested the fixes I pushed.
Regards,
Branden
[1] Any "soelim" should work, even one from AT&T troff. Unless you're
cross-compiling groff, in which case you must define the Make macro
`SOELIMBIN` to point to a soelim(1) that the host can run. However,
there might be unsolved problems with cross-compiling groff; I
haven't attempted it myself and, as far as I can recall I've never
seen a report from anyone who did.
--t76nxtbzijlx7rsj
Content-Type: application/pgp-signature; name="signature.asc"
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEh3PWHWjjDgcrENwa0Z6cfXEmbc4FAmpfGO4ACgkQ0Z6cfXEm
bc4W6g/+O6j7UDKRedDO63S3qSHiKmu68O6hqXYXeO/RByIzKWF7zht7YPz0+RGr
u+bwJ3aOBm0gZ47lVD6J5nG+dc+ojk6sbFrmixTwXTiUhDO+AW+UsXTI5ra57oq1
YOvW3uFJn9vn6dn0DSd6hvasafWbm5bkTtAK75sZ40Zc4PIzdvosk3Y+FBRlfpx3
e8rkbob1tO4Yz40JaNx8pXwv4IZXjNFpAP8bisC1EikTvR8BoeJ9kLmFpXgThi3/
VC/Ds5DggyMgLnpAzUWIF8HuMz0IsO17gYC4b/TZKkzTWXaQ+Pd/djgoapYFeVc8
VWiNORklldPIrh+RS3HvmU6U2QjlyepVn7aoyTWqdpdmVd97X7H0S5Jf0XlMP6/O
iqBi+Dpbu7ORulna6g6DJ1yXUgdWjFnIG6Bwfi5H7QjNmC9/aBXQnsuesXceaoTX
CniUDJiFhYQ/dS2vywgIfHkGg+4WObhtqwH79x6pPMK4QZmtqJ4NH4VG1EcllgUL
AlHT/e2rlD9PQhpU7soIEp8UpGjmK1lZxZ5gP0gB58Sdi285gS7SPMOdDHwys87s
i9xeQXNSqeu0abPteAXwvWXhmWlXWSfrvtKqNR+fXlCJBWJljCcomdmmg3OazYKm
ABqPXjlPnWwQniyadlOOms0SfB/+M2z8/ocf0/ru/+YuEM2qJqQ=
=n/i5
-----END PGP SIGNATURE-----
--t76nxtbzijlx7rsj--