Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Dec 2010 10:50:09 -0800 (PST)
From:      Renato Botelho <garga@FreeBSD.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        mail@derzinn.de
Subject:   ports/153525: [PATCH] databases/mongodb: Fix build for PREFIX != /usr/local and install header files
Message-ID:  <20101229185005.54472.qmail@botelhor.bplab.local>
Resent-Message-ID: <201012291900.oBTJ0Mbu076408@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         153525
>Category:       ports
>Synopsis:       [PATCH] databases/mongodb: Fix build for PREFIX != /usr/local and install header files
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Dec 29 19:00:22 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Renato Botelho
>Release:        FreeBSD 9.0-CURRENT amd64
>Organization:
FreeBSD.org
>Environment:
System: FreeBSD botelhor.bplab.local 9.0-CURRENT FreeBSD 9.0-CURRENT #5 r216678M: Thu Dec 23 10:41:55 BRST
>Description:
Current version of this port has a bug, if you try to build it with PREFIX !=
/usr/local it doesn't build.

This is caused because of REINPLACE_CMD is replaceing all occourrences of
/usr/local by PREFIX and it breaks paths where it looks for libraries.

Since i was touching it, i've make some improvements:

- Get rid of manual installation and use scons to do it
- Add a new OPTION to install development part of it (lilbraries and header
  files). It's useful when you want to write software and link it against
  libmongoclient
- Add a REINPLACE_CMD to make scons strip binaries for freebsd (it should be
  sent as a patch to upstream)
- Use --prefix param instead of replace default prefix on SConstruct

Port maintainer (mail@derzinn.de) is cc'd.

Generated with FreeBSD Port Tools 0.99
>How-To-Repeat:

make PREFIX=/tmp

>Fix:

--- mongodb-1.6.5_1.patch begins here ---
Index: Makefile
===================================================================
RCS file: /home/pcvs/ports/databases/mongodb/Makefile,v
retrieving revision 1.17
diff -u -u -r1.17 Makefile
--- Makefile	13 Dec 2010 18:05:44 -0000	1.17
+++ Makefile	29 Dec 2010 18:45:26 -0000
@@ -7,6 +7,7 @@
 
 PORTNAME=	mongodb
 PORTVERSION=	1.6.5
+PORTREVISION=	1
 CATEGORIES=	databases net
 MASTER_SITES=	http://downloads.mongodb.org/src/ \
 		http://derzinn.de/files/
@@ -24,28 +25,31 @@
 ONLY_FOR_ARCHS=	i386 amd64
 ONLY_FOR_ARCHS_REASON=	"not yet ported to anything other than i386 and amd64"
 
+OPTIONS=	DEVEL "Install development files (library and headers)" off
+
 USE_SCONS=	yes
 SCONS_TARGET=	all
+SCONS_ARGS=	--prefix=${PREFIX}
 
 USE_RC_SUBR=	mongod
-MONGO_FILES=	mongo mongod mongodump mongoexport mongofiles \
-		mongoimport mongorestore mongos mongosniff mongostat
 
 .include <bsd.port.pre.mk>
+
 .if ${OSVERSION} < 700042
 BROKEN=		Does not build
 .endif
 
+.if defined(WITH_DEVEL)
+SCONS_ARGS+=	--full
+PLIST_SUB+=	DEVEL=""
+.else
+PLIST_SUB+=	DEVEL="@comment "
+.endif
+
 post-patch:
-	@${REINPLACE_CMD} -E -e 's|elif "freebsd7" == os.sys.platform|elif os.sys.platform.startswith("freebsd")|' \
+	@${REINPLACE_CMD} -e 's|elif "freebsd7" == os.sys.platform|elif os.sys.platform.startswith("freebsd")|' \
+			  -e '/not GetOption("nostrip")/ s,linux,linux or freebsd,g' \
 		${WRKSRC}/SConstruct
-	@${REINPLACE_CMD} -e 's#/usr/local#${PREFIX}#g' ${WRKSRC}/SConstruct
-
-do-install:
-.for i in ${MONGO_FILES}
-	${INSTALL_PROGRAM} ${WRKSRC}/${i} ${PREFIX}/bin
-.endfor
-	${INSTALL_DATA} ${WRKSRC}/libmongoclient.a ${PREFIX}/lib
 
 post-install:
 	@if [ ! -f ${PREFIX}/etc/mongodb.conf ]; then \
Index: pkg-plist
===================================================================
RCS file: /home/pcvs/ports/databases/mongodb/pkg-plist,v
retrieving revision 1.3
diff -u -u -r1.3 pkg-plist
--- pkg-plist	17 Apr 2010 19:33:51 -0000	1.3
+++ pkg-plist	29 Dec 2010 18:45:26 -0000
@@ -1,4 +1,6 @@
 @unexec if [ ! -s %D/etc/mongodb.conf ]; then /bin/rm -f %D/etc/mongodb.conf; fi
+@exec  if [ ! -f %D/etc/mongodb.conf ]; then /usr/bin/touch %D/etc/mongodb.conf; fi
+bin/bsondump
 bin/mongo
 bin/mongod
 bin/mongodump
@@ -9,5 +11,174 @@
 bin/mongos
 bin/mongosniff
 bin/mongostat
-lib/libmongoclient.a
-@exec  if [ ! -f %D/etc/mongodb.conf ]; then /usr/bin/touch %D/etc/mongodb.conf; fi
+%%DEVEL%%lib/libmongoclient.a
+%%DEVEL%%include/mongo/bson/bson.h
+%%DEVEL%%include/mongo/bson/bson_db.h
+%%DEVEL%%include/mongo/bson/bsonelement.h
+%%DEVEL%%include/mongo/bson/bsoninlines.h
+%%DEVEL%%include/mongo/bson/bsonmisc.h
+%%DEVEL%%include/mongo/bson/bsonobj.h
+%%DEVEL%%include/mongo/bson/bsonobjbuilder.h
+%%DEVEL%%include/mongo/bson/bsonobjiterator.h
+%%DEVEL%%include/mongo/bson/bsontypes.h
+%%DEVEL%%include/mongo/bson/inline_decls.h
+%%DEVEL%%include/mongo/bson/oid.h
+%%DEVEL%%include/mongo/bson/ordering.h
+%%DEVEL%%include/mongo/bson/stringdata.h
+%%DEVEL%%include/mongo/bson/util/atomic_int.h
+%%DEVEL%%include/mongo/bson/util/builder.h
+%%DEVEL%%include/mongo/bson/util/misc.h
+%%DEVEL%%include/mongo/client/connpool.h
+%%DEVEL%%include/mongo/client/constants.h
+%%DEVEL%%include/mongo/client/dbclient.h
+%%DEVEL%%include/mongo/client/dbclientcursor.h
+%%DEVEL%%include/mongo/client/distlock.h
+%%DEVEL%%include/mongo/client/gridfs.h
+%%DEVEL%%include/mongo/client/model.h
+%%DEVEL%%include/mongo/client/parallel.h
+%%DEVEL%%include/mongo/client/redef_macros.h
+%%DEVEL%%include/mongo/client/syncclusterconnection.h
+%%DEVEL%%include/mongo/client/undef_macros.h
+%%DEVEL%%include/mongo/db/background.h
+%%DEVEL%%include/mongo/db/btree.h
+%%DEVEL%%include/mongo/db/client.h
+%%DEVEL%%include/mongo/db/clientcursor.h
+%%DEVEL%%include/mongo/db/cmdline.h
+%%DEVEL%%include/mongo/db/commands.h
+%%DEVEL%%include/mongo/db/concurrency.h
+%%DEVEL%%include/mongo/db/curop.h
+%%DEVEL%%include/mongo/db/cursor.h
+%%DEVEL%%include/mongo/db/database.h
+%%DEVEL%%include/mongo/db/db.h
+%%DEVEL%%include/mongo/db/dbhelpers.h
+%%DEVEL%%include/mongo/db/dbmessage.h
+%%DEVEL%%include/mongo/db/dbwebserver.h
+%%DEVEL%%include/mongo/db/diskloc.h
+%%DEVEL%%include/mongo/db/extsort.h
+%%DEVEL%%include/mongo/db/filever.h
+%%DEVEL%%include/mongo/db/index.h
+%%DEVEL%%include/mongo/db/indexkey.h
+%%DEVEL%%include/mongo/db/instance.h
+%%DEVEL%%include/mongo/db/introspect.h
+%%DEVEL%%include/mongo/db/jsobj.h
+%%DEVEL%%include/mongo/db/jsobjmanipulator.h
+%%DEVEL%%include/mongo/db/json.h
+%%DEVEL%%include/mongo/db/lasterror.h
+%%DEVEL%%include/mongo/db/matcher.h
+%%DEVEL%%include/mongo/db/minilex.h
+%%DEVEL%%include/mongo/db/module.h
+%%DEVEL%%include/mongo/db/namespace.h
+%%DEVEL%%include/mongo/db/nonce.h
+%%DEVEL%%include/mongo/db/oplog.h
+%%DEVEL%%include/mongo/db/oplogreader.h
+%%DEVEL%%include/mongo/db/pdfile.h
+%%DEVEL%%include/mongo/db/query.h
+%%DEVEL%%include/mongo/db/queryoptimizer.h
+%%DEVEL%%include/mongo/db/queryutil.h
+%%DEVEL%%include/mongo/db/rec.h
+%%DEVEL%%include/mongo/db/reccache.h
+%%DEVEL%%include/mongo/db/reci.h
+%%DEVEL%%include/mongo/db/recstore.h
+%%DEVEL%%include/mongo/db/repl.h
+%%DEVEL%%include/mongo/db/repl/connections.h
+%%DEVEL%%include/mongo/db/repl/health.h
+%%DEVEL%%include/mongo/db/repl/multicmd.h
+%%DEVEL%%include/mongo/db/repl/rs.h
+%%DEVEL%%include/mongo/db/repl/rs_config.h
+%%DEVEL%%include/mongo/db/repl/rs_exception.h
+%%DEVEL%%include/mongo/db/repl/rs_member.h
+%%DEVEL%%include/mongo/db/repl/rs_optime.h
+%%DEVEL%%include/mongo/db/repl_block.h
+%%DEVEL%%include/mongo/db/replpair.h
+%%DEVEL%%include/mongo/db/resource.h
+%%DEVEL%%include/mongo/db/scanandorder.h
+%%DEVEL%%include/mongo/db/security.h
+%%DEVEL%%include/mongo/db/stats/counters.h
+%%DEVEL%%include/mongo/db/stats/fine_clock.h
+%%DEVEL%%include/mongo/db/stats/service_stats.h
+%%DEVEL%%include/mongo/db/stats/snapshots.h
+%%DEVEL%%include/mongo/db/stats/top.h
+%%DEVEL%%include/mongo/db/update.h
+%%DEVEL%%include/mongo/pch.h
+%%DEVEL%%include/mongo/s/balance.h
+%%DEVEL%%include/mongo/s/balancer_policy.h
+%%DEVEL%%include/mongo/s/chunk.h
+%%DEVEL%%include/mongo/s/config.h
+%%DEVEL%%include/mongo/s/cursors.h
+%%DEVEL%%include/mongo/s/d_logic.h
+%%DEVEL%%include/mongo/s/grid.h
+%%DEVEL%%include/mongo/s/request.h
+%%DEVEL%%include/mongo/s/server.h
+%%DEVEL%%include/mongo/s/shard.h
+%%DEVEL%%include/mongo/s/shardkey.h
+%%DEVEL%%include/mongo/s/stats.h
+%%DEVEL%%include/mongo/s/strategy.h
+%%DEVEL%%include/mongo/s/util.h
+%%DEVEL%%include/mongo/scripting/engine.h
+%%DEVEL%%include/mongo/scripting/engine_java.h
+%%DEVEL%%include/mongo/scripting/engine_spidermonkey.h
+%%DEVEL%%include/mongo/scripting/engine_v8.h
+%%DEVEL%%include/mongo/scripting/v8_db.h
+%%DEVEL%%include/mongo/scripting/v8_utils.h
+%%DEVEL%%include/mongo/scripting/v8_wrapper.h
+%%DEVEL%%include/mongo/targetver.h
+%%DEVEL%%include/mongo/util/allocator.h
+%%DEVEL%%include/mongo/util/array.h
+%%DEVEL%%include/mongo/util/assert_util.h
+%%DEVEL%%include/mongo/util/background.h
+%%DEVEL%%include/mongo/util/base64.h
+%%DEVEL%%include/mongo/util/concurrency/list.h
+%%DEVEL%%include/mongo/util/concurrency/msg.h
+%%DEVEL%%include/mongo/util/concurrency/mutex.h
+%%DEVEL%%include/mongo/util/concurrency/mvar.h
+%%DEVEL%%include/mongo/util/concurrency/rwlock.h
+%%DEVEL%%include/mongo/util/concurrency/spin_lock.h
+%%DEVEL%%include/mongo/util/concurrency/task.h
+%%DEVEL%%include/mongo/util/concurrency/thread_pool.h
+%%DEVEL%%include/mongo/util/concurrency/value.h
+%%DEVEL%%include/mongo/util/debug_util.h
+%%DEVEL%%include/mongo/util/embedded_builder.h
+%%DEVEL%%include/mongo/util/file.h
+%%DEVEL%%include/mongo/util/file_allocator.h
+%%DEVEL%%include/mongo/util/goodies.h
+%%DEVEL%%include/mongo/util/hashtab.h
+%%DEVEL%%include/mongo/util/hex.h
+%%DEVEL%%include/mongo/util/histogram.h
+%%DEVEL%%include/mongo/util/hostandport.h
+%%DEVEL%%include/mongo/util/httpclient.h
+%%DEVEL%%include/mongo/util/log.h
+%%DEVEL%%include/mongo/util/lruishmap.h
+%%DEVEL%%include/mongo/util/md5.h
+%%DEVEL%%include/mongo/util/md5.hpp
+%%DEVEL%%include/mongo/util/message.h
+%%DEVEL%%include/mongo/util/message_server.h
+%%DEVEL%%include/mongo/util/miniwebserver.h
+%%DEVEL%%include/mongo/util/mmap.h
+%%DEVEL%%include/mongo/util/mongoutils/checksum.h
+%%DEVEL%%include/mongo/util/mongoutils/html.h
+%%DEVEL%%include/mongo/util/mongoutils/str.h
+%%DEVEL%%include/mongo/util/ntservice.h
+%%DEVEL%%include/mongo/util/optime.h
+%%DEVEL%%include/mongo/util/password.h
+%%DEVEL%%include/mongo/util/processinfo.h
+%%DEVEL%%include/mongo/util/queue.h
+%%DEVEL%%include/mongo/util/ramlog.h
+%%DEVEL%%include/mongo/util/ramstore.h
+%%DEVEL%%include/mongo/util/sock.h
+%%DEVEL%%include/mongo/util/stringutils.h
+%%DEVEL%%include/mongo/util/text.h
+%%DEVEL%%include/mongo/util/unittest.h
+%%DEVEL%%include/mongo/util/version.h
+%%DEVEL%%include/mongo/util/winutil.h
+%%DEVEL%%@dirrm include/mongo/bson/util
+%%DEVEL%%@dirrm include/mongo/bson
+%%DEVEL%%@dirrm include/mongo/client
+%%DEVEL%%@dirrm include/mongo/db/repl
+%%DEVEL%%@dirrm include/mongo/db/stats
+%%DEVEL%%@dirrm include/mongo/db
+%%DEVEL%%@dirrm include/mongo/s
+%%DEVEL%%@dirrm include/mongo/scripting
+%%DEVEL%%@dirrm include/mongo/util/concurrency
+%%DEVEL%%@dirrm include/mongo/util/mongoutils
+%%DEVEL%%@dirrm include/mongo/util
+%%DEVEL%%@dirrm include/mongo
--- mongodb-1.6.5_1.patch ends here ---

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101229185005.54472.qmail>