[MacPorts] #63570: gdbm @1.21: destroot failure in some timezones (was: Failed to destroot gdbm: command execution failed)
MacPorts
noreply at macports.org
Thu Nov 4 14:39:05 UTC 2021
#63570: gdbm @1.21: destroot failure in some timezones
----------------------+--------------------
Reporter: bryancn | Owner: (none)
Type: defect | Status: closed
Priority: Normal | Milestone:
Component: ports | Version: 2.7.1
Resolution: fixed | Keywords:
Port: gdbm |
----------------------+--------------------
Changes (by ryandesign):
* keywords: leopard powerpc =>
* status: new => closed
* resolution: => fixed
Comment:
In the attached main.log's build phase I see:
{{{
Making all in doc
make[2]: Entering directory `/path/to/gdbm/work/gdbm-1.21/doc'
Updating ./version.texi
make[2]: Leaving directory `/path/to/gdbm/work/gdbm-1.21/doc'
}}}
Whereas on my High Sierra system I just see:
{{{
Making all in doc
make[2]: Entering directory `/path/to/gdbm/work/gdbm-1.21/doc'
make[2]: Leaving directory `/path/to/gdbm/work/gdbm-1.21/doc'
}}}
And then in the destroot phase of the attached main.log where we see all
the `has no Up field` errors on mine I just see the installation of the
pre-existing .info files.
The `has no Up field` errors are apparently indicative of attempting to
rebuild the documentation with a too-old version of makeinfo, which can be
rectified by installing the texinfo port. However the real question is why
the build system believes it should rebuild the documentation on your
systems yet on mine it is happy to accept the documentation as included in
the distribution.
Looking in doc/Makefile.in, I see that it decides to update version.texi
if its timestamp is older than the timestamps of gdbm.texi and the
configure script. When the gdbm port was updated to 1.21, a patch for the
configure script was added, meaning that its modification timestamp would
be changed, meaning that it tries to update version.texi, only it doesn't
update the file directly: it updates a temporary file called stamp-vti,
and if that file's contents matches version.texi then it does not update
version.texi, otherwise it copies stamp-vti to version.texi to update it.
And based on the updated version.texi, it later in the destroot phase
decides to rebuild the documentation.
As distributed, version.texi contains:
{{{
@set UPDATED 2 September 2021
@set UPDATED-MONTH September 2021
@set EDITION 1.21
@set VERSION 1.21
}}}
This date does not indicate a timezone. I am in CDT timezone whereas the
main.log indicates NZDT timezone. If I change my system's timezone to NZDT
then I am able to reproduce the issue, because then version.texi has been
updated to:
{{{
@set UPDATED 3 September 2021
@set UPDATED-MONTH September 2021
@set EDITION 1.21
@set VERSION 1.21
}}}
The problem was solved when gdbm was updated to 1.22 and the configure
script patch was removed because it had been incorporated by the
developers.
We must remember in the future that if we patch the configure script, we
should also touch version.texi so that documentation is not unnecessarily
(and sometimes unsuccessfully) rebuilt. This probably applies not only to
this port but to any port that builds documentation with texinfo.
--
Ticket URL: <https://trac.macports.org/ticket/63570#comment:5>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list