summaryrefslogtreecommitdiff
path: root/buildscripts
diff options
context:
space:
mode:
authorRyan Egesdahl <ryan.egesdahl@mongodb.com>2021-04-02 10:58:12 -0700
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-04-05 17:31:12 +0000
commit649dc04027667b30155be39be39a880cb0b8743a (patch)
tree6315c0d5d8e9cd16aaa0f4fa4a09fe8bc21907b8 /buildscripts
parent3042e4163892077a00ede19b57489b4d39f38ead (diff)
downloadmongo-649dc04027667b30155be39be39a880cb0b8743a.tar.gz
SERVER-55460 Fix RPM packaging and package testing for SLES 12
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.
Diffstat (limited to 'buildscripts')
-rw-r--r--buildscripts/package_test/recipes/install_mongodb.rb6
-rw-r--r--buildscripts/package_test/test/recipes/service/install_mongodb_spec.rb16
2 files changed, 20 insertions, 2 deletions
diff --git a/buildscripts/package_test/recipes/install_mongodb.rb b/buildscripts/package_test/recipes/install_mongodb.rb
index 4f74f9d87c0..a18e01c08cf 100644
--- a/buildscripts/package_test/recipes/install_mongodb.rb
+++ b/buildscripts/package_test/recipes/install_mongodb.rb
@@ -137,6 +137,12 @@ if platform_family? 'suse'
cwd homedir
end
+ execute 'install mongo tools' do
+ command 'zypper --no-gpg-checks -n install `find . -name "*tools-extra*.rpm"`'
+ live_stream true
+ cwd homedir
+ end
+
execute 'install mongo' do
command 'zypper --no-gpg-checks -n install `find . -name "*shell*.rpm"`'
live_stream true
diff --git a/buildscripts/package_test/test/recipes/service/install_mongodb_spec.rb b/buildscripts/package_test/test/recipes/service/install_mongodb_spec.rb
index 931fbd51bcf..22bb79bd872 100644
--- a/buildscripts/package_test/test/recipes/service/install_mongodb_spec.rb
+++ b/buildscripts/package_test/test/recipes/service/install_mongodb_spec.rb
@@ -58,6 +58,11 @@ if os[:arch] == 'x86_64'
its('exit_status') { should eq 0 }
its('stderr') { should eq '' }
end
+ elsif os[:name] == 'suse'
+ describe command("install_compass") do
+ its('exit_status') { should eq 1 }
+ its('stderr') { should match /You are using an unsupported platform/ }
+ end
else
describe command("install_compass") do
its('exit_status') { should eq 1 }
@@ -67,7 +72,7 @@ if os[:arch] == 'x86_64'
else
describe command("install_compass") do
its('exit_status') { should eq 1 }
- its('stderr') { should match /Sorry, MongoDB Compass is only supported on 64-bit Intel platforms./ }
+ its('stderr') { should match /Sorry, MongoDB Compass is only supported on 64-bit Intel platforms/ }
end
end
@@ -120,7 +125,14 @@ if sysvinit
end
if systemd
- describe file('/lib/systemd/system/mongod.service') do
+ unit_file_prefix = ''
+ if os[:name] == 'suse'
+ # Putting systemd unit files in /usr, which may be a separate partition
+ # and therefore not available during isolated startups, is bad practice.
+ # But it's what SUSE has chosen to do, so we have to deal with it.
+ unit_file_prefix = '/usr'
+ end
+ describe file("#{unit_file_prefix}/lib/systemd/system/mongod.service") do
it { should be_file }
end
end