Some versions of SLES apparently don't define the _sharedstatedir RPM
macro properly, leaving it at the old-time UNIX /usr/com default. This
was causing the server to fail to start on such platforms because the
expected data directory at /var/lib/mongodb was missing. The macro is
now statically defined on SLES to /var like it should be on any modern
Linux distribution.
Also fixed were paths to systemd unit files in package testing and the
fact that we weren't installing the tools-extra package, which we should
be doing if only to verify that the script indeed continues to fail
expectedly on the platform.
This requirement should never have been on the server package once the
tools were moved to their own package. This change just moves the
requirement where it should be.
We were not using directory macros in the RPMs, which meant that the
installation root could not be changed. When we tried, we got an
incomplete install, with some of it going to the new prefix and some
going to the host system. Here, we follow RPM packaging guidelines a bit
better and use named directory macros instead of explicit paths.
We were previously waiting for network.target, which does not actually
mean the network interface will be up and have an IP address assigned.
During some reboots, it's possible that mongod would start up before the
network interface was fully online, and this caused startup failures if
mongod was configured to listen on a specific IP address. Now we wait
for network-online.target instead to ensure the IP address is available
when mongod starts.
The mongodb-*-tools packages were split into mongodb-database-tools and
mongodb-*-tools-extra, which causes some package management headaches
during upgrades to v4.4. This change updates the package control files
to account for the package splits so upgrades go more smoothly.
The previous debian package maintainer was set to a single person,
and any maintainer requests would be directed at this person. Instead,
we use an email list that is dedicated for the purpose.