Opened 11 years ago

Last modified 10 years ago

#40364 new defect

mongodb can't install into userdir — at Version 1

Reported by: posita (Matt Bogosian) Owned by: ryandesign@…
Priority: Normal Milestone:
Component: ports Version: 2.2.0
Keywords: Cc:
Port: mongodb

Description (last modified by mf2k (Frank Schima))

Much like ticket:40360, mongodb Staging mongodb fails on attempt to set group in non-root install. main.log is attached. Relevant part:

:debug:destroot Executing proc-post-org.macports.destroot-destroot-0
:info:destroot xinstall: chdir([__MACPORTS_ROOT__]/var/macports/build/[__MACPORTS_ROOT__]_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mongodb/mongodb/work/mongodb-src-r2.4.6)
:info:destroot xinstall: mongobridge -> [__MACPORTS_ROOT__]/var/macports/build/[__MACPORTS_ROOT__]_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_mongodb/mongodb/work/destroot[__MACPORTS_ROOT__]/bin/mongobridge
:error:destroot org.macports.destroot for port mongodb returned: xinstall: Unknown group _mongo
:debug:destroot Error code: NONE
:debug:destroot Backtrace: xinstall: Unknown group _mongo
    while executing
"$post $targetname"

The Portfile does not appear to offer a +no_root variant. The following work-around seems to get it built and installed:

--- [__MACPORTS_ROOT__]/var/macports/sources/rsync.macports.org/release/tarballs/ports/databases/mongodb/Portfile.orig    2013-08-29 16:01:28.000000000 -0700
+++ [__MACPORTS_ROOT__]/var/macports/sources/rsync.macports.org/release/tarballs/ports/databases/mongodb/Portfile 2013-09-03 08:41:20.000000000 -0700
@@ -84,8 +84,8 @@

 set dbdir           ${prefix}/var/db/mongodb
 set logdir          ${prefix}/var/log/mongodb
-set mongouser       _mongo
-add_users           ${mongouser} group=${mongouser} realname=MongoDB\ Server
+set mongouser       [__USER__]
+#add_users           ${mongouser} group=${mongouser} realname=MongoDB\ Server

 post-destroot {
     if {[variant_isset universal]} {
@@ -102,7 +102,7 @@
 }

 startupitem.create      yes
-startupitem.executable  sudo -u ${mongouser} ${prefix}/bin/mongod --dbpath ${dbdir} --logpath ${logdir}/mongodb.log --logappend
+startupitem.executable  ${prefix}/bin/mongod --dbpath ${dbdir} --logpath ${logdir}/mongodb.log --logappend

 if {${os.platform} eq "darwin" && ${os.major} < 10} {
     depends_build

(Where "[__USER__]" is the installer's username. See .../devel/dbus/Portfile as a decent example of supporting +no_root with LaunchDaemons.)

Change History (2)

Changed 11 years ago by posita (Matt Bogosian)

Attachment: main.log added

var/macports/logs/.../mongodb/main.log

comment:1 Changed 11 years ago by mf2k (Frank Schima)

Cc: ryandesign@… removed
Description: modified (diff)
Owner: changed from macports-tickets@… to ryandesign@…
Note: See TracTickets for help on using tickets.