diff options
author | Ryan Egesdahl <ryan.egesdahl@mongodb.com> | 2021-04-02 10:58:12 -0700 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-04-05 17:31:12 +0000 |
commit | 649dc04027667b30155be39be39a880cb0b8743a (patch) | |
tree | 6315c0d5d8e9cd16aaa0f4fa4a09fe8bc21907b8 /buildscripts | |
parent | 3042e4163892077a00ede19b57489b4d39f38ead (diff) | |
download | mongo-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.rb | 6 | ||||
-rw-r--r-- | buildscripts/package_test/test/recipes/service/install_mongodb_spec.rb | 16 |
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 |