[Pkg-mongodb-maintainers] Bug#893621: mongodb binaries can't be used directly

Robie Basak robie.basak at ubuntu.com
Tue Mar 20 15:34:03 UTC 2018


Source: mongodb
Severity: wishlist
Version: 3.4.7-1
Tags: patch
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu bionic ubuntu-patch

Hi,

I've uploaded the following patch to Ubuntu. This provides a
mongodb-server-core package that ships the binaries only, and
mongodb-server now depends on that instead of shipping the packages
instead. This allows a different type of consumption by dependent
packages and users: to use the binaries directly without
packaging-managed configuration in /var/lib/mongodb and the related
service. This is useful because a consuming dependent app (whether in
the archive or not) can make use of mongodb in its own private space in
/var/lib (or /var/local etc. when not in the archive) without
interfering with anything else on the system or what the user is doing
with mongodb directly.

In Ubuntu, I did this to facilitate a request from Juju, which is not
packaged in Debian. I'm not aware of a use case for Debian that is
needed right now. Further, Juju upstream intends to change how it uses
mongodb in the future, so it is likely that we will drop the patch in
Ubuntu within a release or two.

However, this use case is provided for in MySQL and MariaDB packaging
already using the same pattern, so I thought I'd present it to you in
case you find it useful to maintain in the future.

Feel free to wontfix this if you don't want it. Since we don't intend to
maintain this long term in Ubuntu, it makes little odds to me either
way.

Thank you for your consideration. Here's what I just uploaded to Ubuntu,
which I think should apply to Debian equally:

diff --git a/debian/changelog b/debian/changelog
index b8be094..d1f3258 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,13 @@
+mongodb (1:3.4.7-1ubuntu3) bionic; urgency=medium
+
+  * Break out mongodb-server-core to provide binaries only as a separate
+    package (LP: #1756432). This allows users (such as Juju) to use the mongodb
+    binaries only for use in non-system-wide databases without conflict with
+    what a user on the same system may be doing. This follows the same pattern
+    already established with MySQL and MariaDB packaging.
+
+ -- Robie Basak <robie.basak at ubuntu.com>  Tue, 13 Feb 2018 11:35:01 +0000
+
 mongodb (1:3.4.7-1ubuntu2) bionic; urgency=high
 
   * No change rebuild against openssl1.1.
diff --git a/debian/control b/debian/control
index f112ae2..12f9d01 100644
--- a/debian/control
+++ b/debian/control
@@ -59,6 +59,31 @@ Description: object/document-oriented database (metapackage)
  the server, the clients and the development files (headers and library).
 
 Package: mongodb-server
+Architecture: all
+Depends:
+ mongodb-server-core,
+ ${misc:Depends}
+Description: object/document-oriented database (server management package)
+ MongoDB is a high-performance, open source, schema-free
+ document-oriented data store that's easy to deploy, manage
+ and use. It's network accessible, written in C++ and offers
+ the following features:
+ .
+    * Collection oriented storage - easy storage of object-style data
+    * Full index support, including on inner objects
+    * Query profiling
+    * Replication and fail-over support
+    * Efficient storage of binary data including large objects (e.g. videos)
+    * Auto-sharding for cloud-level scalability
+ .
+ High performance, scalability, and reasonable depth of
+ functionality are the goals for the project.
+ .
+ This package provides the server functionality, including the system
+ service, management of a mongodb user/group and management of the daemon
+ running against /var/lib/mongodb.
+
+Package: mongodb-server-core
 Architecture: amd64 arm64 ppc64el s390x
 Depends:
  mongodb-clients,
@@ -66,9 +91,12 @@ Depends:
  lsb-base (>= 3.0-6),
  ${misc:Depends},
  ${shlibs:Depends}
+Breaks:
+ mongodb-server (<= 1:3.4.7-1ubuntu2)
 Replaces:
- mongodb (<= 1:1.4.2-2)
-Description: object/document-oriented database (server package)
+ mongodb (<= 1:1.4.2-2),
+ mongodb-server (<= 1:3.4.7-1ubuntu2)
+Description: object/document-oriented database (server binary package)
  MongoDB is a high-performance, open source, schema-free
  document-oriented data store that's easy to deploy, manage
  and use. It's network accessible, written in C++ and offers
@@ -84,7 +112,7 @@ Description: object/document-oriented database (server package)
  High performance, scalability, and reasonable depth of
  functionality are the goals for the project.
  .
- This package contains the server itself  (mongod) and the sharding
+ This package contains the server binaries (mongod) and the sharding
  server/load-balancer (mongos).
 
 Package: mongodb-clients
diff --git a/debian/mongodb-server-core.install b/debian/mongodb-server-core.install
new file mode 100644
index 0000000..c941ce1
--- /dev/null
+++ b/debian/mongodb-server-core.install
@@ -0,0 +1,2 @@
+debian/tmp/usr/bin/mongod
+debian/tmp/usr/bin/mongos
diff --git a/debian/mongodb-server.install b/debian/mongodb-server.install
index 9d6e113..c28cc4e 100644
--- a/debian/mongodb-server.install
+++ b/debian/mongodb-server.install
@@ -1,3 +1 @@
 debian/mongodb.conf etc
-debian/tmp/usr/bin/mongod
-debian/tmp/usr/bin/mongos
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-mongodb-maintainers/attachments/20180320/20d2fc97/attachment.sig>


More information about the Pkg-mongodb-maintainers mailing list