Some dependencies were not being captured automatically by the Debian
package build system (namely, the Cyrus SASL modules required for
Enterprise), which was causing failures for some users. The explicit
dependencies declared in the RPM packages are mirrored in the Debian
packaging now.
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.
The install_compass script did not execute on all platforms we support
on all branches. This change makes the script a bit more universal so it
will run with whatever Python version users happen to have installed.
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.
On SUSE 11 t1.micro AWS instances, the virtual memory ulimit is set low
enough to cause the mongo shell to fail to start because it cannot
allocate enough memory after SERVER-28400.