diff options
author | Eliot Horowitz <eliot@10gen.com> | 2009-12-03 14:20:35 -0500 |
---|---|---|
committer | Eliot Horowitz <eliot@10gen.com> | 2009-12-03 14:20:35 -0500 |
commit | 39b64ce9f3e2093f98431421f0bca00e016107bb (patch) | |
tree | 9bd8e726881f36fa295200857e6c3a036e1e1fea /rpm | |
parent | ec49006e35e929b83459f4668463d4bb3f6e2189 (diff) | |
download | mongo-39b64ce9f3e2093f98431421f0bca00e016107bb.tar.gz |
initial stab at rpm files SERVER-396
Diffstat (limited to 'rpm')
-rw-r--r-- | rpm/init.d-mongod | 63 | ||||
-rw-r--r-- | rpm/mongo.spec | 128 | ||||
-rw-r--r-- | rpm/mongod.conf | 86 |
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> |