Sunday, 8 October 2017

Admin: Integrating patches from production version to source code master

Now that we're hosted on AWS, it isn't possible to directly install
development and production versions on local server farm directories
mounted with NFS. I changed the definitions of ``Book Directory'',
``CGI Installation Directory'', and ``Executable Installation Directory''
to point to directories within a {\tt DEVELOPMENT} directory within
our build tree. The ``{\tt publish}'' target in the {\tt Makefile}
will place files there.

Updated the definition of ``Cluster Member Hosts'' to be void, since
we no longer run ClusterSync on the AWS hosts and don't want to
clutter up the file system with an ever-growing cluster transaction
file. This had already been applied as a patch to {\tt Cluster.pm}
on the AWS server, so this change brings the code generated from
{\tt hdiet.w} into sync with the production version.

In {\tt HDiet/Cgi/CGI.pm}, removed a test of {\tt defined()} on an
array which generates warnings on recent versions of Perl. This had
already been patched on the AWS server, and is now integrated into
our build directory.

Fixed a regular expression in {\tt hdCSV.pm} which was generating
warnings whenever it was included. In the latest versions of Perl,
braces within regular expressions must be escaped with a backslash.

Rebuilt everything with Nuweb 1.58, the current release. No changes
were required to {\tt hdiet.w}.

Added a new {\tt Collect\_Hackdiet} shell script which, when run on
the AWS server, collects all of the components of the program
installed in various places into an {\tt INSTALLED.tar.xz} archive
which can be downloaded and unpacked for comparison with a new build.
The structure of the archive is identical to that created by a
{\tt make publish} to the {\tt DEVELOPMENT} directory.

Creation of the PDF file of the primate-readable version of the
program failed because the {\tt usepackage} of {\tt hyperref}
included the {\tt pdftex} option, which has now been removed.
I removed the option and the PDF now builds properly.

The {\tt pubsrc} and {\tt prodsrc} targets in the {\tt Makefile} would
fail if the {\tt download} directory didn't exist in the target directory
or the subdirectory for the version number didn't exist. I changed
the {\tt mkdir} to use the {\tt \-p} option to automatically create the
parent directories if they didn't already exist.

This is Build 5185: 2017-10-08 14:46 UTC.

No comments: