summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEliot Horowitz <eliot@10gen.com>2009-12-03 14:20:35 -0500
committerEliot Horowitz <eliot@10gen.com>2009-12-03 14:21:22 -0500
commit3c6a8cf7b7c24c87358cb9c6960786ce0057d4f0 (patch)
tree9bd8e726881f36fa295200857e6c3a036e1e1fea
parentec49006e35e929b83459f4668463d4bb3f6e2189 (diff)
downloadmongo-3c6a8cf7b7c24c87358cb9c6960786ce0057d4f0.tar.gz
initial stab at rpm files SERVER-396
-rw-r--r--rpm/init.d-mongod63
-rw-r--r--rpm/mongo.spec128
-rw-r--r--rpm/mongod.conf86
3 files changed, 277 insertions, 0 deletions
diff --git a/rpm/init.d-mongod b/rpm/init.d-mongod
new file mode 100644
index 00000000000..c099ef958d0
--- /dev/null
+++ b/rpm/init.d-mongod
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+# mongod - Startup script for mongod
+
+# chkconfig: 35 85 15
+# description: Mongo is a scalable, document-oriented database.
+# processname: mongod
+# config: /etc/mongod.conf
+# pidfile: /var/run/mongo/mongo.pid
+
+. /etc/rc.d/init.d/functions
+
+# things from mongod.conf get there by mongod reading it
+
+OPTIONS=" -f /etc/mongod.conf"
+
+mongod=${MONGOD-/usr/bin/mongod}
+pidfile=${PIDFILE-/var/run/mongod.pid}
+lockfile=${LOCKFILE-/var/lock/subsys/mongod}
+
+start()
+{
+ echo -n $"Starting mongod: "
+ #daemon --pidfile=${pidfile} $mongod $OPTIONS > /var/log/mongod
+ $mongod $OPTIONS > /var/log/mongod 2>&1 &
+ RETVAL=$?
+ [ $RETVAL = 0 ] && touch ${lockfile}
+ echo OK
+}
+
+stop()
+{
+ echo -n $"Stopping mongod: "
+ #killproc -p ${pidfile} -d 10 $mongod
+ #RETVAL=$?
+ killall mongod > /dev/null 2>&1
+ #[ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
+ echo OK
+}
+
+ulimit -n 12000
+RETVAL=0
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart)
+ stop
+ start
+ ;;
+# status)
+# status -p ${pidfile} $mongod
+# ;;
+ *)
+ echo $"Usage: $0 {start|stop|restart}"
+ RETVAL=1
+esac
+
+exit $RETVAL
diff --git a/rpm/mongo.spec b/rpm/mongo.spec
new file mode 100644
index 00000000000..e1969d67536
--- /dev/null
+++ b/rpm/mongo.spec
@@ -0,0 +1,128 @@
+Name: mongo
+Version: 1.1.3
+Release: shopwiki_1%{?dist}
+Summary: mongo client shell and tools
+License: AGPL 3.0
+URL: http://www.mongodb.org
+Group: Applications/Databases
+
+Source0: %{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+BuildRequires: js-devel, readline-devel, boost-devel, pcre-devel
+BuildRequires: gcc-c++, scons
+
+%description
+Mongo (from "huMONGOus") is a schema-free document-oriented database.
+It features dynamic profileable queries, full indexing, replication
+and fail-over support, efficient storage of large binary data objects,
+and auto-sharding.
+
+This package provides the mongo shell, import/export tools, and other
+client utilities.
+
+%package server
+Summary: mongo server, sharding server, and support scripts
+Group: Applications/Databases
+
+%description server
+Mongo (from "huMONGOus") is a schema-free document-oriented database.
+
+This package provides the mongo server software, mongo sharding server
+softwware, default configuration files, and init.d scripts.
+
+%package devel
+Summary: Headers and libraries for mongo development.
+Group: Applications/Databases
+
+%description devel
+Mongo (from "huMONGOus") is a schema-free document-oriented database.
+
+This package provides the mongo static library and header files needed
+to develop mongo client software.
+
+%prep
+%setup
+
+%build
+scons --prefix=$RPM_BUILD_ROOT/usr all
+# XXX really should have shared library here
+
+%install
+scons --prefix=$RPM_BUILD_ROOT/usr install
+mkdir -p $RPM_BUILD_ROOT/usr/share/man/man1
+cp debian/*.1 $RPM_BUILD_ROOT/usr/share/man/man1/
+mkdir -p $RPM_BUILD_ROOT/etc/rc.d/init.d
+cp rpm/init.d-mongod $RPM_BUILD_ROOT/etc/rc.d/init.d/mongod
+chmod a+x $RPM_BUILD_ROOT/etc/rc.d/init.d/mongod
+mkdir -p $RPM_BUILD_ROOT/etc
+cp rpm/mongod.conf $RPM_BUILD_ROOT/etc/mongod.conf
+mkdir -p $RPM_BUILD_ROOT/var/lib/mongo
+mkdir -p $RPM_BUILD_ROOT/var/log
+touch $RPM_BUILD_ROOT/var/log/mongo
+
+%clean
+scons -c
+rm -rf $RPM_BUILD_ROOT
+
+%pre server
+#/usr/sbin/useradd -M -o -r -d /var/mongo -s /bin/bash \
+# -c "mongod" mongod > /dev/null 2>&1 || :
+
+%post server
+if test $1 = 1
+then
+ /sbin/chkconfig --add mongod
+fi
+
+%preun server
+if test $1 = 0
+then
+ /sbin/chkconfig --del mongod
+fi
+
+%postun server
+if test $1 -ge 1
+then
+ /sbin/service mongod stop >/dev/null 2>&1 || :
+fi
+
+%files
+%defattr(-,root,root,-)
+%doc README GNU-AGPL-3.0.txt
+
+%{_bindir}/mongo
+%{_bindir}/mongodump
+%{_bindir}/mongoexport
+%{_bindir}/mongofiles
+%{_bindir}/mongoimport
+%{_bindir}/mongorestore
+
+%{_mandir}/man1/mongo.1*
+%{_mandir}/man1/mongodump.1*
+%{_mandir}/man1/mongoexport.1*
+%{_mandir}/man1/mongofiles.1*
+%{_mandir}/man1/mongoimport.1*
+%{_mandir}/man1/mongorestore.1*
+
+%files server
+%defattr(-,root,root,-)
+%config(noreplace) /etc/mongod.conf
+%{_bindir}/mongod
+%{_bindir}/mongos
+#%{_mandir}/man1/mongod.1*
+%{_mandir}/man1/mongos.1*
+/etc/rc.d/init.d/mongod
+/etc/sysconfig/mongod
+#/etc/rc.d/init.d/mongos
+%attr(0755,root,root) %dir /var/mongo
+%attr(0640,root,root) %config(noreplace) %verify(not md5 size mtime) /var/log/mongo
+
+%files devel
+/usr/include/mongo
+%{_libdir}/libmongoclient.a
+#%{_libdir}/libmongotestfiles.a
+
+%changelog
+* Sat Oct 24 2009 Joe Miklojcik <jmiklojcik@shopwiki.com> -
+- Wrote mongo.spec.
+
diff --git a/rpm/mongod.conf b/rpm/mongod.conf
new file mode 100644
index 00000000000..0c871866cde
--- /dev/null
+++ b/rpm/mongod.conf
@@ -0,0 +1,86 @@
+# mongo.conf
+
+#where to log
+logpath=/var/log/mongod
+
+#port = 27017
+
+dbpath=/var/lib/mongo
+
+# Enables periodic logging of CPU utilization and I/O wait
+#cpu = true
+
+# Turn on/off security. Off is currently the default
+#noauth = true
+#auth = true
+
+# Verbose logging output.
+#verbose = true
+
+# Inspect all client data for validity on receipt (useful for
+# developing drivers)
+#objcheck = true
+
+# Enable db quota management
+#quota = true
+
+# Set oplogging level where n is
+# 0=off (default)
+# 1=W
+# 2=R
+# 3=both
+# 7=W+some reads
+#oplog = 0
+
+# Diagnostic/debugging option
+#nocursors = true
+
+# Ignore query hints
+#nohints = true
+
+# Disable the HTTP interface (Defaults to localhost:27018).
+#nohttpinterface = true
+
+# Turns off server-side scripting. This will result in greatly limited
+# functionality
+#noscripting = true
+
+# Turns off table scans. Any query that would do a table scan fails.
+#notablescan = true
+
+# Disable data file preallocation.
+#noprealloc = true
+
+# Specify .ns file size for new databases.
+# nssize = <size>
+
+# Accout token for Mongo monitoring server.
+#mms-token = <token>
+
+# Server name for Mongo monitoring server.
+#mms-name = <server-name>
+
+# Ping interval for Mongo monitoring server.
+#mms-interval = <seconds>
+
+# Replication Options
+
+# in replicated mongo databases, specify here whether this is a slave or master
+#slave = true
+#source = master.example.com
+# Slave only: specify a single database to replicate
+#only = master.example.com
+# or
+#master = true
+#source = slave.example.com
+
+# Address of a server to pair with.
+#pairwith = <server:port>
+# Address of arbiter server.
+#arbiter = <server:port>
+# Automatically resync if slave data is stale
+#autoresync
+# Custom size for replication operation log.
+#oplogSize = <MB>
+# Size limit for in-memory storage of op ids.
+#opIdMem = <bytes>