summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Egesdahl <ryan.egesdahl@mongodb.com>2021-03-18 09:50:42 -0700
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-07-20 18:49:16 +0000
commitc4c27ea01f11567f5ec06dff8686f4e844ef16e5 (patch)
treeed02a8b8a6b7aff1c65f5aa5d588e2d5ce7d6979
parent4b8e059870e0bed6c44ba0e75b4ac169c0bf4f33 (diff)
downloadmongo-c4c27ea01f11567f5ec06dff8686f4e844ef16e5.tar.gz
SERVER-54729 Add explicit dependencies to Debian packages
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. (cherry picked from commit 829e4a097bdf3e54fab7097697242334c4a79154) (cherry picked from commit 7d3fe7a3f137a99fd7985133621cef82ccbe76ec) (cherry picked from commit 47b693a6aeaa142bffcea57984b8e84f60204407) (cherry picked from commit 3620bc7612d48f1ca7e2030b623c51328c9d5b09)
-rw-r--r--buildscripts/package_test/recipes/install_mongodb.rb37
-rw-r--r--buildscripts/package_test/test/recipes/service/install_mongodb_spec.rb4
-rw-r--r--debian/mongodb-enterprise-unstable.control4
-rw-r--r--debian/mongodb-enterprise.control4
4 files changed, 35 insertions, 14 deletions
diff --git a/buildscripts/package_test/recipes/install_mongodb.rb b/buildscripts/package_test/recipes/install_mongodb.rb
index 8f4fa0b84d7..ccc73a98342 100644
--- a/buildscripts/package_test/recipes/install_mongodb.rb
+++ b/buildscripts/package_test/recipes/install_mongodb.rb
@@ -1,3 +1,6 @@
+# This Chef task installs MongoDB in a new EC2 instance spun up by Kitchen in
+# preparation for running some basic server functionality tests.
+
artifacts_tarball = 'artifacts.tgz'
user = node['current_user']
homedir = node['etc']['passwd'][user]['dir']
@@ -24,6 +27,7 @@ end
execute 'extract artifacts' do
command "tar xzvf #{artifacts_tarball}"
+ live_stream true
cwd homedir
end
@@ -31,15 +35,24 @@ if platform_family? 'debian'
execute 'apt-get update' do
command 'apt-get update'
+ live_stream true
end
ENV['DEBIAN_FRONTEND'] = 'noninteractive'
package 'openssl'
+ # the ubuntu 16.04 image does not have some dependencies installed by default
+ # and it is required for the install_compass script
+ execute 'install dependencies' do
+ command 'apt-get install -y python libsasl2-modules-gssapi-mit'
+ live_stream true
+ end
+
# dpkg returns 1 if dependencies are not satisfied, which they will not be
# for enterprise builds. We install dependencies in the next block.
execute 'install mongod' do
command 'dpkg -i `find . -name "*server*.deb"`'
+ live_stream true
cwd homedir
returns [0, 1]
end
@@ -47,6 +60,7 @@ if platform_family? 'debian'
# install the tools so we can test install_compass
execute 'install mongo tools' do
command 'dpkg -i `find . -name "*tools*.deb"`'
+ live_stream true
cwd homedir
returns [0, 1]
end
@@ -54,36 +68,38 @@ if platform_family? 'debian'
# yum and zypper fetch dependencies automatically, but dpkg does not.
# Installing the dependencies explicitly is fragile, so we reply on apt-get
# to install dependencies after the fact.
- execute 'install dependencies' do
- command 'apt-get update && apt-get -y -f install'
- end
-
- # the ubuntu 16.04 image does not have python installed by default
- # and it is required for the install_compass script
- execute 'install python' do
- command 'apt-get install -y python'
+ execute 'update and fix broken dependencies' do
+ command 'apt-get update && apt -y -f install'
+ live_stream true
end
execute 'install mongo shell' do
command 'dpkg -i `find . -name "*shell*.deb"`'
+ live_stream true
cwd homedir
end
end
if platform_family? 'rhel'
+ bash 'wait for yum updates if they are running' do
+ sleep 120
+ end
execute 'install mongod' do
command 'yum install -y `find . -name "*server*.rpm"`'
+ live_stream true
cwd homedir
end
# install the tools so we can test install_compass
execute 'install mongo tools' do
command 'yum install -y `find . -name "*tools*.rpm"`'
+ live_stream true
cwd homedir
end
execute 'install mongo shell' do
command 'yum install -y `find . -name "*shell*.rpm"`'
+ live_stream true
cwd homedir
end
end
@@ -103,10 +119,12 @@ if platform_family? 'suse'
done
exit 1
EOD
+ flags "-x"
end
execute 'install mongod' do
command 'zypper --no-gpg-checks -n install `find . -name "*server*.rpm"`'
+ live_stream true
cwd homedir
end
@@ -118,12 +136,13 @@ if platform_family? 'suse'
execute 'install mongo' do
command 'zypper --no-gpg-checks -n install `find . -name "*shell*.rpm"`'
+ live_stream true
cwd homedir
end
end
inspec_wait = <<HEREDOC
-#!/bin/bash
+#!/bin/bash -x
ulimit -v unlimited
for i in {1..60}
do
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 3eebdef755d..5523df6b547 100644
--- a/buildscripts/package_test/test/recipes/service/install_mongodb_spec.rb
+++ b/buildscripts/package_test/test/recipes/service/install_mongodb_spec.rb
@@ -1,5 +1,7 @@
############################################################
-# This section verifies start, stop, and restart.
+# This section verifies start, stop, and restart after
+# installation within a new EC2 instance spun up by Kitchen.
+#
# - stop mongod so that we begin testing from a stopped state
# - verify start, stop, and restart
############################################################
diff --git a/debian/mongodb-enterprise-unstable.control b/debian/mongodb-enterprise-unstable.control
index aa94b2c965a..23cbebf193c 100644
--- a/debian/mongodb-enterprise-unstable.control
+++ b/debian/mongodb-enterprise-unstable.control
@@ -31,7 +31,7 @@ Description: MongoDB open source document-oriented database system (enterprise m
Package: mongodb-enterprise-unstable-shell
Conflicts: mongo-10gen, mongo-10gen-enterprise, mongo-10gen-enterprise-server, mongo-10gen-server, mongo-10gen-unstable, mongo-10gen-unstable-enterprise, mongo-10gen-unstable-enterprise-mongos, mongo-10gen-unstable-enterprise-server, mongo-10gen-unstable-enterprise-shell, mongo-10gen-unstable-enterprise-tools, mongo-10gen-unstable-mongos, mongo-10gen-unstable-server, mongo-10gen-unstable-shell, mongo-10gen-unstable-tools, mongo18-10gen, mongo18-10gen-server, mongo20-10gen, mongo20-10gen-server, mongodb, mongodb-server, mongodb-dev, mongodb-clients, mongodb-10gen, mongodb-10gen-enterprise, mongodb-10gen-unstable, mongodb-10gen-unstable-enterprise, mongodb-10gen-unstable-enterprise-mongos, mongodb-10gen-unstable-enterprise-server, mongodb-10gen-unstable-enterprise-shell, mongodb-10gen-unstable-enterprise-tools, mongodb-10gen-unstable-mongos, mongodb-10gen-unstable-server, mongodb-10gen-unstable-shell, mongodb-10gen-unstable-tools, mongodb-enterprise, mongodb-enterprise-mongos, mongodb-enterprise-server, mongodb-enterprise-shell, mongodb-enterprise-tools, mongodb-org-unstable, mongodb-org-unstable-mongos, mongodb-org-unstable-shell, mongodb-org-unstable-tools, mongodb-org-unstable-server, mongodb-nightly, mongodb-org, mongodb-org-mongos, mongodb-org-server, mongodb-org-shell, mongodb-org-tools, mongodb-stable, mongodb18-10gen, mongodb20-10gen
Architecture: any
-Depends: ${shlibs:Depends}
+Depends: ${shlibs:Depends}, libsasl2-modules-gssapi-mit
Description: MongoDB shell client (enterprise)
MongoDB is built for scalability, performance and high availability, scaling from single server deployments to large, complex multi-site architectures. By leveraging in-memory computing, MongoDB provides high performance for both reads and writes. MongoDB’s native replication and automated failover enable enterprise-grade reliability and operational flexibility.
.
@@ -53,7 +53,7 @@ Description: MongoDB shell client (enterprise)
Package: mongodb-enterprise-unstable-server
Conflicts: mongo-10gen, mongo-10gen-enterprise, mongo-10gen-enterprise-server, mongo-10gen-server, mongo-10gen-unstable, mongo-10gen-unstable-enterprise, mongo-10gen-unstable-enterprise-mongos, mongo-10gen-unstable-enterprise-server, mongo-10gen-unstable-enterprise-shell, mongo-10gen-unstable-enterprise-tools, mongo-10gen-unstable-mongos, mongo-10gen-unstable-server, mongo-10gen-unstable-shell, mongo-10gen-unstable-tools, mongo18-10gen, mongo18-10gen-server, mongo20-10gen, mongo20-10gen-server, mongodb, mongodb-server, mongodb-dev, mongodb-clients, mongodb-10gen, mongodb-10gen-enterprise, mongodb-10gen-unstable, mongodb-10gen-unstable-enterprise, mongodb-10gen-unstable-enterprise-mongos, mongodb-10gen-unstable-enterprise-server, mongodb-10gen-unstable-enterprise-shell, mongodb-10gen-unstable-enterprise-tools, mongodb-10gen-unstable-mongos, mongodb-10gen-unstable-server, mongodb-10gen-unstable-shell, mongodb-10gen-unstable-tools, mongodb-enterprise, mongodb-enterprise-mongos, mongodb-enterprise-server, mongodb-enterprise-shell, mongodb-enterprise-tools, mongodb-org-unstable, mongodb-org-unstable-mongos, mongodb-org-unstable-shell, mongodb-org-unstable-tools, mongodb-org-unstable-server, mongodb-nightly, mongodb-org, mongodb-org-mongos, mongodb-org-server, mongodb-org-shell, mongodb-org-tools, mongodb-stable, mongodb18-10gen, mongodb20-10gen
Architecture: any
-Depends: ${shlibs:Depends}, snmp, adduser, tzdata
+Depends: ${shlibs:Depends}, snmp, adduser, tzdata, libsasl2-modules-gssapi-mit
Description: MongoDB database server (enterprise)
MongoDB is built for scalability, performance and high availability, scaling from single server deployments to large, complex multi-site architectures. By leveraging in-memory computing, MongoDB provides high performance for both reads and writes. MongoDB’s native replication and automated failover enable enterprise-grade reliability and operational flexibility.
.
diff --git a/debian/mongodb-enterprise.control b/debian/mongodb-enterprise.control
index a7d285ca85e..d0399c9ddb2 100644
--- a/debian/mongodb-enterprise.control
+++ b/debian/mongodb-enterprise.control
@@ -31,7 +31,7 @@ Description: MongoDB open source document-oriented database system (enterprise m
Package: mongodb-enterprise-shell
Conflicts: mongo-10gen, mongo-10gen-enterprise, mongo-10gen-enterprise-server, mongo-10gen-server, mongo-10gen-unstable, mongo-10gen-unstable-enterprise, mongo-10gen-unstable-enterprise-mongos, mongo-10gen-unstable-enterprise-server, mongo-10gen-unstable-enterprise-shell, mongo-10gen-unstable-enterprise-tools, mongo-10gen-unstable-mongos, mongo-10gen-unstable-server, mongo-10gen-unstable-shell, mongo-10gen-unstable-tools, mongo18-10gen, mongo18-10gen-server, mongo20-10gen, mongo20-10gen-server, mongodb, mongodb-server, mongodb-dev, mongodb-clients, mongodb-10gen, mongodb-10gen-enterprise, mongodb-10gen-unstable, mongodb-10gen-unstable-enterprise, mongodb-10gen-unstable-enterprise-mongos, mongodb-10gen-unstable-enterprise-server, mongodb-10gen-unstable-enterprise-shell, mongodb-10gen-unstable-enterprise-tools, mongodb-10gen-unstable-mongos, mongodb-10gen-unstable-server, mongodb-10gen-unstable-shell, mongodb-10gen-unstable-tools, mongodb-enterprise-unstable, mongodb-enterprise-unstable-mongos, mongodb-enterprise-unstable-server, mongodb-enterprise-unstable-shell, mongodb-enterprise-unstable-tools, mongodb-org-unstable, mongodb-org-unstable-mongos, mongodb-org-unstable-shell, mongodb-org-unstable-tools, mongodb-org-unstable-server, mongodb-nightly, mongodb-org, mongodb-org-mongos, mongodb-org-server, mongodb-org-shell, mongodb-org-tools, mongodb-stable, mongodb18-10gen, mongodb20-10gen
Architecture: any
-Depends: ${shlibs:Depends}
+Depends: ${shlibs:Depends}, libsasl2-modules-gssapi-mit
Description: MongoDB shell client (enterprise)
MongoDB is built for scalability, performance and high availability, scaling from single server deployments to large, complex multi-site architectures. By leveraging in-memory computing, MongoDB provides high performance for both reads and writes. MongoDB’s native replication and automated failover enable enterprise-grade reliability and operational flexibility.
.
@@ -53,7 +53,7 @@ Description: MongoDB shell client (enterprise)
Package: mongodb-enterprise-server
Conflicts: mongo-10gen, mongo-10gen-enterprise, mongo-10gen-enterprise-server, mongo-10gen-server, mongo-10gen-unstable, mongo-10gen-unstable-enterprise, mongo-10gen-unstable-enterprise-mongos, mongo-10gen-unstable-enterprise-server, mongo-10gen-unstable-enterprise-shell, mongo-10gen-unstable-enterprise-tools, mongo-10gen-unstable-mongos, mongo-10gen-unstable-server, mongo-10gen-unstable-shell, mongo-10gen-unstable-tools, mongo18-10gen, mongo18-10gen-server, mongo20-10gen, mongo20-10gen-server, mongodb, mongodb-server, mongodb-dev, mongodb-clients, mongodb-10gen, mongodb-10gen-enterprise, mongodb-10gen-unstable, mongodb-10gen-unstable-enterprise, mongodb-10gen-unstable-enterprise-mongos, mongodb-10gen-unstable-enterprise-server, mongodb-10gen-unstable-enterprise-shell, mongodb-10gen-unstable-enterprise-tools, mongodb-10gen-unstable-mongos, mongodb-10gen-unstable-server, mongodb-10gen-unstable-shell, mongodb-10gen-unstable-tools, mongodb-enterprise-unstable, mongodb-enterprise-unstable-mongos, mongodb-enterprise-unstable-server, mongodb-enterprise-unstable-shell, mongodb-enterprise-unstable-tools, mongodb-org-unstable, mongodb-org-unstable-mongos, mongodb-org-unstable-shell, mongodb-org-unstable-tools, mongodb-org-unstable-server, mongodb-nightly, mongodb-org, mongodb-org-mongos, mongodb-org-server, mongodb-org-shell, mongodb-org-tools, mongodb-stable, mongodb18-10gen, mongodb20-10gen
Architecture: any
-Depends: ${shlibs:Depends}, snmp, adduser, tzdata
+Depends: ${shlibs:Depends}, snmp, adduser, tzdata, libsasl2-modules-gssapi-mit
Description: MongoDB database server (enterprise)
MongoDB is built for scalability, performance and high availability, scaling from single server deployments to large, complex multi-site architectures. By leveraging in-memory computing, MongoDB provides high performance for both reads and writes. MongoDB’s native replication and automated failover enable enterprise-grade reliability and operational flexibility.
.