[mongodb/el6] Revert "2014-08-08: Retired because of unfixed security issues: https://fedorahosted.org/rel-eng/tic

Till Maas till at fedoraproject.org
Mon Aug 11 17:25:23 UTC 2014


commit e170fb701dcea8434db2e0f2a364495b78acf157
Author: Till Maas <opensource at till.name>
Date:   Mon Aug 11 19:24:58 2014 +0200

    Revert "2014-08-08: Retired because of unfixed security issues: https://fedorahosted.org/rel-eng/ticket/5963"
    
    This reverts commit 4d91ffa487d28904abcc4c22e84af8d996833193.

 .gitignore                                         |   18 +
 dead.package                                       |    1 -
 mongod.service                                     |   13 +
 mongod.sysconf                                     |    1 +
 mongodb-2.4.5-atomics.patch                        |  128 ++++
 mongodb-2.4.5-boost-fix.patch                      |  247 ++++++++
 mongodb-2.4.5-boost-size-fix.patch                 |   51 ++
 mongodb-2.4.5-gcc48.patch                          |   62 ++
 mongodb-2.4.5-no-term.patch                        |   12 +
 mongodb-2.4.5-pass-flags.patch                     |   38 ++
 ...4.5-signed-char-for-BSONType-enumerations.patch |   35 ++
 mongodb-2.4.5-use-system-version.patch             |   41 ++
 mongodb-tmpfile                                    |    3 +
 mongodb.conf                                       |   88 +++
 mongodb.init                                       |  168 ++++++
 mongodb.logrotate                                  |   12 +
 mongodb.spec                                       |  606 ++++++++++++++++++++
 sources                                            |    1 +
 18 files changed, 1524 insertions(+), 1 deletions(-)
---
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2a6851e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,18 @@
+/mongodb-src-r1.6.2.tar.gz
+/mongodb-src-r1.6.3.tar.gz
+/mongodb-src-r1.6.4.tar.gz
+/mongodb-src-r1.7.5.tar.gz
+/mongodb-src-r1.8.0.tar.gz
+/mongodb-src-r1.8.2.tar.gz
+/mongodb-src-r2.0.2.tar.gz
+/mongodb-src-r2.0.4.tar.gz
+/mongodb-src-r2.0.6.tar.gz
+/mongodb-src-r2.0.7.tar.gz
+/mongodb-src-r2.2.0.tar.gz
+/mongodb-src-r2.2.1.tar.gz
+/mongodb-src-r2.2.2.tar.gz
+/mongodb-src-r2.2.3.tar.gz
+/mongodb-src-r2.2.4.tar.gz
+/mongodb-src-r2.2.6.tar.gz
+/mongodb-src-r2.4.5.tar.gz
+/mongodb-src-r2.4.6.tar.gz
diff --git a/mongod.service b/mongod.service
new file mode 100644
index 0000000..3e53a84
--- /dev/null
+++ b/mongod.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=High-performance, schema-free document-oriented database
+After=syslog.target network.target
+
+[Service]
+Type=forking
+User=mongodb
+PIDFile=/var/run/mongodb/mongodb.pid
+EnvironmentFile=/etc/sysconfig/mongod
+ExecStart=/usr/bin/mongod $OPTIONS run
+
+[Install]
+WantedBy=multi-user.target
diff --git a/mongod.sysconf b/mongod.sysconf
new file mode 100644
index 0000000..7614052
--- /dev/null
+++ b/mongod.sysconf
@@ -0,0 +1 @@
+OPTIONS="--quiet -f /etc/mongodb.conf"
diff --git a/mongodb-2.4.5-atomics.patch b/mongodb-2.4.5-atomics.patch
new file mode 100644
index 0000000..1458a36
--- /dev/null
+++ b/mongodb-2.4.5-atomics.patch
@@ -0,0 +1,128 @@
+diff -up mongodb-src-r2.4.5/src/mongo/bson/util/atomic_int.h.atomics mongodb-src-r2.4.5/src/mongo/bson/util/atomic_int.h
+--- mongodb-src-r2.4.5/src/mongo/bson/util/atomic_int.h.atomics	2013-07-02 15:27:08.000000000 -0400
++++ mongodb-src-r2.4.5/src/mongo/bson/util/atomic_int.h	2013-07-11 10:20:25.474610585 -0400
+@@ -24,6 +24,10 @@
+ 
+ #include "mongo/platform/compiler.h"
+ 
++#define GCC_VERSION (__GNUC__ * 10000                 \
++                     + __GNUC_MINOR__ * 100           \
++                     + __GNUC_PATCHLEVEL__)
++
+ namespace mongo {
+ 
+     /**
+@@ -72,6 +76,28 @@ namespace mongo {
+         InterlockedAdd((volatile long *)&x,by);
+     }
+ # endif
++#elif defined(GCC_VERSION) && GCC_VERSION >= 40700
++// in GCC version >= 4.7.0 we can use the built-in atomic operations
++
++    inline void AtomicUInt::set(unsigned newX) {
++        __atomic_store_n (&x, newX, __ATOMIC_SEQ_CST);
++    }
++    AtomicUInt AtomicUInt::operator++() {    // ++prefix
++        return __atomic_add_fetch(&x, 1, __ATOMIC_SEQ_CST);
++    }
++    AtomicUInt AtomicUInt::operator++(int) { // postfix++
++        return __atomic_fetch_add(&x, 1, __ATOMIC_SEQ_CST);
++    }
++    AtomicUInt AtomicUInt::operator--() {    // --prefix
++        return __atomic_add_fetch(&x, -1, __ATOMIC_SEQ_CST);
++    }
++    AtomicUInt AtomicUInt::operator--(int) { // postfix--
++        return __atomic_fetch_add(&x, -1, __ATOMIC_SEQ_CST);
++    }
++    void AtomicUInt::signedAdd(int by) {
++        __atomic_fetch_add(&x, by, __ATOMIC_SEQ_CST);
++    }
++
+ #elif defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)
+     // this is in GCC >= 4.1
+     inline void AtomicUInt::set(unsigned newX) { __sync_synchronize(); x = newX; }
+diff -up mongodb-src-r2.4.5/src/mongo/platform/atomic_intrinsics_gcc.h.atomics mongodb-src-r2.4.5/src/mongo/platform/atomic_intrinsics_gcc.h
+--- mongodb-src-r2.4.5/src/mongo/platform/atomic_intrinsics_gcc.h.atomics	2013-07-02 15:27:08.000000000 -0400
++++ mongodb-src-r2.4.5/src/mongo/platform/atomic_intrinsics_gcc.h	2013-07-11 10:20:25.479611190 -0400
+@@ -14,16 +14,60 @@
+  */
+ 
+ /**
+- * Implementation of the AtomicIntrinsics<T>::* operations for IA-32 and AMD64 systems using a
+- * GCC-compatible compiler toolchain.
++ * Implementation of the AtomicIntrinsics<T>::* operations for GCC-compatible compiler toolchain.
+  */
+ 
+ #pragma once
+ 
+ #include <boost/utility.hpp>
+ 
++#define GCC_VERSION (__GNUC__ * 10000                 \
++                     + __GNUC_MINOR__ * 100           \
++                     + __GNUC_PATCHLEVEL__)
++
+ namespace mongo {
+ 
++// If GCC version >= 4.7.0, we can use the built-in atomic operations
++#if defined(GCC_VERSION) && GCC_VERSION >= 40700
++
++    /**
++     * Instantiation of AtomicIntrinsics<>.
++     */
++    template <typename T>
++    class AtomicIntrinsics {
++    public:
++
++        static T compareAndSwap(volatile T* dest, T expected, T newValue) {
++            return __atomic_compare_exchange_n (dest, &expected, newValue, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST);
++        }
++
++        static T swap(volatile T* dest, T newValue) {
++            return __atomic_exchange_n (dest, newValue, __ATOMIC_SEQ_CST);
++        }
++
++        static T load(volatile const T* value) {
++            return __atomic_load_n (value, __ATOMIC_SEQ_CST);
++        }
++
++        static T loadRelaxed(volatile const T* value) {
++            return *value;
++        }
++
++        static void store(volatile T* dest, T newValue) {
++            __atomic_store_n (dest, newValue, __ATOMIC_SEQ_CST);
++        }
++
++        static T fetchAndAdd(volatile T* dest, T increment) {
++            return __atomic_fetch_add (dest, increment, __ATOMIC_SEQ_CST);
++        }
++
++    private:
++        AtomicIntrinsics();
++        ~AtomicIntrinsics();
++    };
++
++#else // GCC version < 4.7, so we must use legacy (platform-specific) atomic operations
++
+     /**
+      * Instantiation of AtomicIntrinsics<> for all word types T where sizeof<T> <= sizeof(void *).
+      *
+@@ -163,4 +207,6 @@ namespace mongo {
+         ~AtomicIntrinsics();
+     };
+ 
++#endif // GCC_VERSION >= 40700
++
+ }  // namespace mongo
+diff -up mongodb-src-r2.4.5/src/mongo/platform/bits.h.atomics mongodb-src-r2.4.5/src/mongo/platform/bits.h
+--- mongodb-src-r2.4.5/src/mongo/platform/bits.h.atomics	2013-07-02 15:27:08.000000000 -0400
++++ mongodb-src-r2.4.5/src/mongo/platform/bits.h	2013-07-11 10:20:25.484611795 -0400
+@@ -21,7 +21,7 @@
+ 
+ #if defined(__x86_64__) || defined(__amd64__) || defined(_WIN64)
+ #define MONGO_PLATFORM_64
+-#elif defined(__i386__) || defined(_WIN32)
++#elif defined(__i386__) || defined(_WIN32) || defined(__arm__)
+ #define MONGO_PLATFORM_32
+ #else
+ #error "unknown platform"
diff --git a/mongodb-2.4.5-boost-fix.patch b/mongodb-2.4.5-boost-fix.patch
new file mode 100644
index 0000000..073827e
--- /dev/null
+++ b/mongodb-2.4.5-boost-fix.patch
@@ -0,0 +1,247 @@
+diff -Nur mongodb-src-r2.4.4.orig/src/mongo/db/db.cpp mongodb-src-r2.4.4/src/mongo/db/db.cpp
+--- mongodb-src-r2.4.4.orig/src/mongo/db/db.cpp	2013-06-16 20:57:57.398198115 +0200
++++ mongodb-src-r2.4.4/src/mongo/db/db.cpp	2013-06-28 20:44:18.029137049 +0200
+@@ -396,7 +396,11 @@
+         boost::filesystem::path path( dbpath );
+         for ( boost::filesystem::directory_iterator i( path );
+                 i != boost::filesystem::directory_iterator(); ++i ) {
++        #if BOOST_VERSION >= 104400
+             string fileName = boost::filesystem::path(*i).leaf().string();
++        #else
++            string fileName = boost::filesystem::path(*i).leaf();
++        #endif
+             if ( boost::filesystem::is_directory( *i ) &&
+                     fileName.length() && fileName[ 0 ] == '$' )
+                 boost::filesystem::remove_all( *i );
+diff -Nur mongodb-src-r2.4.4.orig/src/mongo/db/dur_journal.cpp mongodb-src-r2.4.4/src/mongo/db/dur_journal.cpp
+--- mongodb-src-r2.4.4.orig/src/mongo/db/dur_journal.cpp	2013-06-16 20:57:57.418194086 +0200
++++ mongodb-src-r2.4.4/src/mongo/db/dur_journal.cpp	2013-06-28 20:44:18.032137434 +0200
+@@ -190,7 +190,11 @@
+                 for ( boost::filesystem::directory_iterator i( jdir );
+                         i != boost::filesystem::directory_iterator();
+                         ++i ) {
++                #if BOOST_VERSION >= 104400
+                     string fileName = boost::filesystem::path(*i).leaf().string();
++                #else
++                    string fileName = boost::filesystem::path(*i).leaf();
++                #endif
+                     if( anyFiles || str::startsWith(fileName, "j._") )
+                         return true;
+                 }
+@@ -208,7 +212,11 @@
+                 for ( boost::filesystem::directory_iterator i( getJournalDir() );
+                         i != boost::filesystem::directory_iterator();
+                         ++i ) {
++                #if BOOST_VERSION >= 104400
+                     string fileName = boost::filesystem::path(*i).leaf().string();
++                #else
++                    string fileName = boost::filesystem::path(*i).leaf();
++                #endif
+                     if( str::startsWith(fileName, "j._") ) {
+                         try {
+                             removeOldJournalFile(*i);
+diff -Nur mongodb-src-r2.4.4.orig/src/mongo/db/dur_recover.cpp mongodb-src-r2.4.4/src/mongo/db/dur_recover.cpp
+--- mongodb-src-r2.4.4.orig/src/mongo/db/dur_recover.cpp	2013-06-16 20:57:57.407196302 +0200
++++ mongodb-src-r2.4.4/src/mongo/db/dur_recover.cpp	2013-06-28 20:44:18.035137819 +0200
+@@ -75,7 +75,11 @@
+                     i != boost::filesystem::directory_iterator();
+                     ++i ) {
+                 boost::filesystem::path filepath = *i;
++            #if BOOST_VERSION >= 104400
+                 string fileName = boost::filesystem::path(*i).leaf().string();
++            #else
++                string fileName = boost::filesystem::path(*i).leaf();
++            #endif
+                 if( str::startsWith(fileName, "j._") ) {
+                     unsigned u = str::toUnsigned( str::after(fileName, '_') );
+                     if( m.count(u) ) {
+@@ -87,8 +91,13 @@
+             for( map<unsigned,boost::filesystem::path>::iterator i = m.begin(); i != m.end(); ++i ) {
+                 if( i != m.begin() && m.count(i->first - 1) == 0 ) {
+                     uasserted(13532,
+-                    str::stream() << "unexpected file in journal directory " << dir.string()
+-                      << " : " << boost::filesystem::path(i->second).leaf().string() << " : can't find its preceding file");
++                    str::stream() << "unexpected file in journal directory " << dir.string() << " : "
++                    #if BOOST_VERSION >= 104400
++                        << boost::filesystem::path(i->second).leaf().string()
++                    #else
++                        << boost::filesystem::path(i->second).leaf()
++                    #endif
++                        << " : can't find its preceding file");
+                 }
+                 files.push_back(i->second);
+             }
+diff -Nur mongodb-src-r2.4.4.orig/src/mongo/db/initialize_server_global_state.cpp mongodb-src-r2.4.4/src/mongo/db/initialize_server_global_state.cpp
+--- mongodb-src-r2.4.4.orig/src/mongo/db/initialize_server_global_state.cpp	2013-06-16 20:57:57.384200935 +0200
++++ mongodb-src-r2.4.4/src/mongo/db/initialize_server_global_state.cpp	2013-06-28 20:44:18.042138718 +0200
+@@ -166,8 +166,13 @@
+ #endif
+         if (!cmdLine.logpath.empty() && !isMongodShutdownSpecialCase) {
+             fassert(16448, !cmdLine.logWithSyslog);
++        #if BOOST_VERSION >= 104400
+             string absoluteLogpath = boost::filesystem::absolute(
+                     cmdLine.logpath, cmdLine.cwd).string();
++        #else
++            string absoluteLogpath = boost::filesystem::complete(
++                    cmdLine.logpath, cmdLine.cwd).string();
++        #endif
+             if (!initLogging(absoluteLogpath, cmdLine.logAppend)) {
+                 cout << "Bad logpath value: \"" << absoluteLogpath << "\"; terminating." << endl;
+                 return false;
+diff -Nur mongodb-src-r2.4.4.orig/src/mongo/db/instance.cpp mongodb-src-r2.4.4/src/mongo/db/instance.cpp
+--- mongodb-src-r2.4.4.orig/src/mongo/db/instance.cpp	2013-06-16 20:57:57.400197712 +0200
++++ mongodb-src-r2.4.4/src/mongo/db/instance.cpp	2013-06-28 20:44:18.037138076 +0200
+@@ -891,13 +891,21 @@
+                 i != boost::filesystem::directory_iterator(); ++i ) {
+             if ( directoryperdb ) {
+                 boost::filesystem::path p = *i;
++            #if BOOST_VERSION >= 104400
+                 string dbName = p.leaf().string();
++            #else
++                string dbName = p.leaf();
++            #endif
+                 p /= ( dbName + ".ns" );
+                 if ( exists( p ) )
+                     names.push_back( dbName );
+             }
+             else {
++            #if BOOST_VERSION >= 104400
+                 string fileName = boost::filesystem::path(*i).leaf().string();
++            #else
++                string fileName = boost::filesystem::path(*i).leaf();
++            #endif
+                 if ( fileName.length() > 3 && fileName.substr( fileName.length() - 3, 3 ) == ".ns" )
+                     names.push_back( fileName.substr( 0, fileName.length() - 3 ) );
+             }
+diff -Nur mongodb-src-r2.4.4.orig/src/mongo/db/pdfile.cpp mongodb-src-r2.4.4/src/mongo/db/pdfile.cpp
+--- mongodb-src-r2.4.4.orig/src/mongo/db/pdfile.cpp	2013-06-16 20:57:57.418194086 +0200
++++ mongodb-src-r2.4.4/src/mongo/db/pdfile.cpp	2013-06-28 20:44:18.045139103 +0200
+@@ -30,6 +30,7 @@
+ #include <algorithm>
+ #include <boost/filesystem/operations.hpp>
+ #include <boost/optional/optional.hpp>
++#include <boost/utility/in_place_factory.hpp>
+ #include <list>
+ 
+ #include "mongo/base/counter.h"
+@@ -1916,7 +1917,11 @@
+             virtual bool apply( const Path &p ) {
+                 if ( !boost::filesystem::exists( p ) )
+                     return false;
++            #if BOOST_VERSION >= 104400
+                 boostRenameWrapper( p, newPath_ / ( p.leaf().string() + ".bak" ) );
++            #else
++                boostRenameWrapper( p, newPath_ / ( p.leaf() + ".bak" ) );
++            #endif
+                 return true;
+             }
+             virtual const char * op() const {
+diff -Nur mongodb-src-r2.4.4.orig/src/mongo/pch.h mongodb-src-r2.4.4/src/mongo/pch.h
+--- mongodb-src-r2.4.4.orig/src/mongo/pch.h	2013-06-16 20:57:57.424192878 +0200
++++ mongodb-src-r2.4.4/src/mongo/pch.h	2013-06-28 20:44:18.046139231 +0200
+@@ -47,6 +47,7 @@
+ #define BOOST_FILESYSTEM_VERSION 3
+ #include <boost/shared_ptr.hpp>
+ #include <boost/smart_ptr.hpp>
++#include <boost/make_shared.hpp>
+ #include <boost/function.hpp>
+ #include <boost/bind.hpp>
+ #include <boost/version.hpp>
+diff -Nur mongodb-src-r2.4.4.orig/src/mongo/shell/shell_utils_extended.cpp mongodb-src-r2.4.4/src/mongo/shell/shell_utils_extended.cpp
+--- mongodb-src-r2.4.4.orig/src/mongo/shell/shell_utils_extended.cpp	2013-06-16 20:57:57.487180186 +0200
++++ mongodb-src-r2.4.4/src/mongo/shell/shell_utils_extended.cpp	2013-06-28 20:44:18.043138846 +0200
+@@ -58,7 +58,11 @@
+             while ( i != end ) {
+                 boost::filesystem::path p = *i;
+                 BSONObjBuilder b;
++            #if BOOST_VERSION >= 104400
+                 b << "name" << p.generic_string();
++            #else
++                b << "name" << p.string();
++            #endif
+                 b.appendBool( "isDirectory", is_directory( p ) );
+                 if ( ! boost::filesystem::is_directory( p ) ) {
+                     try {
+diff -Nur mongodb-src-r2.4.4.orig/src/mongo/tools/restore.cpp mongodb-src-r2.4.4/src/mongo/tools/restore.cpp
+--- mongodb-src-r2.4.4.orig/src/mongo/tools/restore.cpp	2013-06-16 20:57:57.425192676 +0200
++++ mongodb-src-r2.4.4/src/mongo/tools/restore.cpp	2013-06-28 20:44:18.041138589 +0200
+@@ -231,7 +231,11 @@
+         LOG(2) << "drillDown: " << root.string() << endl;
+ 
+         // skip hidden files and directories
++    #if BOOST_VERSION >= 104400
+         if (root.leaf().string()[0] == '.' && root.leaf().string() != ".")
++    #else
++        if (root.leaf()[0] == '.' && root.leaf() != ".")
++    #endif
+             return;
+ 
+         if ( is_directory( root ) ) {
+@@ -306,14 +310,24 @@
+             ns += _db;
+         }
+         else {
++        #if BOOST_VERSION >= 104400
+             ns = root.parent_path().filename().string();
++        #else
++            ns = root.parent_path().filename();
++        #endif
+             if (ns.empty())
+                 ns = "test";
+         }
+ 
+         verify( ns.size() );
+ 
+-        string oldCollName = root.leaf().string(); // Name of the collection that was dumped from
++        // Name of the collection that was dumped from
++    #if BOOST_VERSION >= 104400
++        string oldCollName = root.leaf().string();
++    #else
++        string oldCollName = root.leaf();
++    #endif
++
+         oldCollName = oldCollName.substr( 0 , oldCollName.find_last_of( "." ) );
+         if (use_coll) {
+             ns += "." + _coll;
+@@ -352,7 +366,11 @@
+             if (!boost::filesystem::exists(metadataFile.string())) {
+                 // This is fine because dumps from before 2.1 won't have a metadata file, just print a warning.
+                 // System collections shouldn't have metadata so don't warn if that file is missing.
++            #if BOOST_VERSION >= 104400
+                 if (!startsWith(metadataFile.leaf().string(), "system.")) {
++            #else
++                if (!startsWith(metadataFile.leaf(), "system.")) {
++            #endif
+                     log() << metadataFile.string() << " not found. Skipping." << endl;
+                 }
+             } else {
+diff -Nur mongodb-src-r2.4.4.orig/src/mongo/util/mmap.cpp mongodb-src-r2.4.4/src/mongo/util/mmap.cpp
+--- mongodb-src-r2.4.4.orig/src/mongo/util/mmap.cpp	2013-06-16 20:57:57.462185223 +0200
++++ mongodb-src-r2.4.4/src/mongo/util/mmap.cpp	2013-06-28 20:44:18.044138974 +0200
+@@ -198,7 +198,11 @@
+     void MongoFile::setFilename(const std::string& fn) {
+         LockMongoFilesExclusive lk;
+         verify( _filename.empty() );
++    #if BOOST_VERSION >= 104400
+         _filename = boost::filesystem::absolute(fn).generic_string();
++    #else
++        _filename = boost::filesystem::system_complete(fn).string();
++    #endif
+         MongoFile *&ptf = pathToFile[_filename];
+         massert(13617, "MongoFile : multiple opens of same filename", ptf == 0);
+         ptf = this;
+@@ -206,8 +210,12 @@
+ 
+     MongoFile* MongoFileFinder::findByPath(const std::string& path) const {
+         return mapFindWithDefault(pathToFile,
+-                                  boost::filesystem::absolute(path).generic_string(),
+-                                  static_cast<MongoFile*>(NULL));
++        #if BOOST_VERSION >= 104400
++            boost::filesystem::absolute(path).generic_string(),
++        #else
++            boost::filesystem::system_complete(path).string(),
++        #endif
++            static_cast<MongoFile*>(NULL));
+     }
+ 
+ 
diff --git a/mongodb-2.4.5-boost-size-fix.patch b/mongodb-2.4.5-boost-size-fix.patch
new file mode 100644
index 0000000..63d2a78
--- /dev/null
+++ b/mongodb-2.4.5-boost-size-fix.patch
@@ -0,0 +1,51 @@
+diff -Nur mongodb-src-r2.4.4.orig/src/mongo/db/auth/privilege_set.cpp mongodb-src-r2.4.4/src/mongo/db/auth/privilege_set.cpp
+--- mongodb-src-r2.4.4.orig/src/mongo/db/auth/privilege_set.cpp	2013-06-16 20:57:57.411195496 +0200
++++ mongodb-src-r2.4.4/src/mongo/db/auth/privilege_set.cpp	2013-06-30 12:37:08.567699530 +0200
+@@ -79,7 +79,7 @@
+         resourceSearchList[1] = nsToDatabaseSubstring(desiredPrivilege.getResource());
+ 
+         ActionSet unmetRequirements = desiredPrivilege.getActions();
+-        for (int i = 0; i < boost::size(resourceSearchList); ++i) {
++        for (int i = 0; i < static_cast<int>(boost::size(resourceSearchList)); ++i) {
+             ResourcePrivilegeCacheEntry* entry = _lookupEntry(resourceSearchList[i]);
+             if (NULL == entry)
+                 continue;
+diff -Nur mongodb-src-r2.4.4.orig/src/mongo/db/cmdline_test.cpp mongodb-src-r2.4.4/src/mongo/db/cmdline_test.cpp
+--- mongodb-src-r2.4.4.orig/src/mongo/db/cmdline_test.cpp	2013-06-16 20:57:57.399197914 +0200
++++ mongodb-src-r2.4.4/src/mongo/db/cmdline_test.cpp	2013-06-30 12:37:08.571700380 +0200
+@@ -102,7 +102,7 @@
+             "--servicePassword",
+             "xxxxxxxxxxxxxxxx"
+         };
+-        ASSERT_EQUALS(boost::size(expected), argc);
++        ASSERT_EQUALS(static_cast<int>(boost::size(expected)), argc);
+ 
+         testCensoringArgv(expected, argv, argc);
+     }
+@@ -134,7 +134,7 @@
+             "-servicePassword",
+             "xxxxxxxxxxxxxxxx"
+         };
+-        ASSERT_EQUALS(boost::size(expected), argc);
++        ASSERT_EQUALS(static_cast<int>(boost::size(expected)), argc);
+ 
+         testCensoringArgv(expected, argv, argc);
+     }
+@@ -183,7 +183,7 @@
+             "--servicePassword",
+             "<password>"
+         };
+-        ASSERT_EQUALS(boost::size(expected), argc);
++        ASSERT_EQUALS(static_cast<int>(boost::size(expected)), argc);
+ 
+         testCensoringVector(expected, argv, argc);
+     }
+@@ -215,7 +215,7 @@
+             "-servicePassword",
+             "<password>"
+         };
+-        ASSERT_EQUALS(boost::size(expected), argc);
++        ASSERT_EQUALS(static_cast<int>(boost::size(expected)), argc);
+ 
+         testCensoringVector(expected, argv, argc);
+     }
diff --git a/mongodb-2.4.5-gcc48.patch b/mongodb-2.4.5-gcc48.patch
new file mode 100644
index 0000000..1b22937
--- /dev/null
+++ b/mongodb-2.4.5-gcc48.patch
@@ -0,0 +1,62 @@
+diff -Nur mongodb-src-r2.4.4.orig/src/third_party/s2/base/casts.h mongodb-src-r2.4.4/src/third_party/s2/base/casts.h
+--- mongodb-src-r2.4.4.orig/src/third_party/s2/base/casts.h	2013-07-06 16:26:05.497291822 +0200
++++ mongodb-src-r2.4.4/src/third_party/s2/base/casts.h	2013-07-07 12:27:23.350678970 +0200
+@@ -160,7 +160,7 @@
+ inline Dest bit_cast(const Source& source) {
+   // Compile time assertion: sizeof(Dest) == sizeof(Source)
+   // A compile error here means your Dest and Source have different sizes.
+-  typedef char VerifySizesAreEqual [sizeof(Dest) == sizeof(Source) ? 1 : -1];
++  typedef char VerifySizesAreEqual [sizeof(Dest) == sizeof(Source) ? 1 : -1] __attribute__((unused));
+ 
+   Dest dest;
+   memcpy(&dest, &source, sizeof(dest));
+diff -Nur mongodb-src-r2.4.4.orig/src/third_party/s2/base/macros.h mongodb-src-r2.4.4/src/third_party/s2/base/macros.h
+--- mongodb-src-r2.4.4.orig/src/third_party/s2/base/macros.h	2013-07-06 16:26:05.499292077 +0200
++++ mongodb-src-r2.4.4/src/third_party/s2/base/macros.h	2013-07-07 12:22:38.549907130 +0200
+@@ -46,7 +46,7 @@
+ };
+ 
+ #define COMPILE_ASSERT(expr, msg) \
+-  typedef CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1]
++  typedef CompileAssert<(bool(expr))> msg[bool(expr) ? 1 : -1] __attribute__((unused))
+ 
+ // Implementation details of COMPILE_ASSERT:
+ //
+diff -Nur mongodb-src-r2.4.4.orig/src/third_party/s2/util/coding/coder.h mongodb-src-r2.4.4/src/third_party/s2/util/coding/coder.h
+--- mongodb-src-r2.4.4.orig/src/third_party/s2/util/coding/coder.h	2013-07-06 16:26:05.509293353 +0200
++++ mongodb-src-r2.4.4/src/third_party/s2/util/coding/coder.h	2013-07-07 12:20:37.419825340 +0200
+@@ -358,14 +358,14 @@
+ 
+ inline void Encoder::putfloat(float f) {
+   uint32 v;
+-  typedef char VerifySizesAreEqual[sizeof(f) == sizeof(v) ? 1 : -1];
++  typedef char VerifySizesAreEqual[sizeof(f) == sizeof(v) ? 1 : -1] __attribute__((unused));
+   memcpy(&v, &f, sizeof(f));
+   put32(v);
+ }
+ 
+ inline void Encoder::putdouble(double d) {
+   uint64 v;
+-  typedef char VerifySizesAreEqual[sizeof(d) == sizeof(v) ? 1 : -1];
++  typedef char VerifySizesAreEqual[sizeof(d) == sizeof(v) ? 1 : -1] __attribute__((unused));
+   memcpy(&v, &d, sizeof(d));
+   put64(v);
+ }
+@@ -408,7 +408,7 @@
+ inline float Decoder::getfloat() {
+   uint32 v = get32();
+   float f;
+-  typedef char VerifySizesAreEqual[sizeof(f) == sizeof(v) ? 1 : -1];
++  typedef char VerifySizesAreEqual[sizeof(f) == sizeof(v) ? 1 : -1] __attribute__((unused));
+   memcpy(&f, &v, sizeof(f));
+   return f;
+ }
+@@ -416,7 +416,7 @@
+ inline double Decoder::getdouble() {
+   uint64 v = get64();
+   double d;
+-  typedef char VerifySizesAreEqual[sizeof(d) == sizeof(v) ? 1 : -1];
++  typedef char VerifySizesAreEqual[sizeof(d) == sizeof(v) ? 1 : -1] __attribute__((unused));
+   memcpy(&d, &v, sizeof(d));
+   return d;
+ }
diff --git a/mongodb-2.4.5-no-term.patch b/mongodb-2.4.5-no-term.patch
new file mode 100644
index 0000000..47369e9
--- /dev/null
+++ b/mongodb-2.4.5-no-term.patch
@@ -0,0 +1,12 @@
+diff -Nur mongodb-src-r2.4.4.orig/SConstruct mongodb-src-r2.4.4/SConstruct
+--- mongodb-src-r2.4.4.orig/SConstruct	2013-06-16 20:57:58.272022055 +0200
++++ mongodb-src-r2.4.4/SConstruct	2013-06-28 20:32:06.306624632 +0200
+@@ -702,7 +702,7 @@
+     env.Append( LIBS=[] )
+ 
+     #make scons colorgcc friendly
+-    for key in ('HOME', 'TERM'):
++    for key in ('HOME'):
+         try:
+             env['ENV'][key] = os.environ[key]
+         except KeyError:
diff --git a/mongodb-2.4.5-pass-flags.patch b/mongodb-2.4.5-pass-flags.patch
new file mode 100644
index 0000000..855996a
--- /dev/null
+++ b/mongodb-2.4.5-pass-flags.patch
@@ -0,0 +1,38 @@
+diff -urp mongodb-src-r2.4.5.orig/SConstruct mongodb-src-r2.4.5/SConstruct
+--- mongodb-src-r2.4.5.orig/SConstruct	2013-07-08 16:30:00.013000000 -0500
++++ mongodb-src-r2.4.5/SConstruct	2013-07-08 16:30:32.853000000 -0500
+@@ -154,6 +154,9 @@ add_option( "cxx", "compiler to use" , 1
+ add_option( "cc", "compiler to use for c" , 1 , True )
+ add_option( "ld", "linker to use" , 1 , True )
+ 
++add_option( "extraccflags", "add'l ccflag options  (--extraccflags -fPIC)" , 1 , True )
++add_option( "extralinkflags", "add'l linkflag options  (--extralinkflags -fPIC)" , 1 , True )
++
+ add_option( "cpppath", "Include path if you have headers in a nonstandard directory" , 1 , True )
+ add_option( "libpath", "Library path if you have libraries in a nonstandard directory" , 1 , True )
+ 
+@@ -450,6 +453,14 @@ if has_option( "extralib" ):
+     for x in GetOption( "extralib" ).split( "," ):
+         env.Append( LIBS=[ x ] )
+ 
++if has_option( "extraccflags" ):
++    for x in GetOption( "extraccflags" ).split( " " ):
++        env.Append( CCFLAGS=[ x ] )
++
++if has_option( "extralinkflags" ):
++    for x in GetOption( "extralinkflags" ).split( " " ):
++        env.Append( LINKFLAGS=[ x ] )
++
+ class InstallSetup:
+     binaries = False
+     libraries = False
+@@ -765,6 +776,9 @@ if nix:
+         print( "removing precompiled headers" )
+         os.unlink( env.File("$BUILD_DIR/mongo/pch.h.$GCHSUFFIX").abspath ) # gcc uses the file if it exists
+ 
++    print( "DEBUG - CCFLAGS::" + env["CCFLAGS"] + "::" )
++    print( "DEBUG - LINKFLAGS::" + env["LINKFLAGS"] + "::" )
++
+ if usesm:
+     env.Append( CPPDEFINES=["JS_C_STRINGS_ARE_UTF8"] )
+ 
diff --git a/mongodb-2.4.5-signed-char-for-BSONType-enumerations.patch b/mongodb-2.4.5-signed-char-for-BSONType-enumerations.patch
new file mode 100644
index 0000000..12a270e
--- /dev/null
+++ b/mongodb-2.4.5-signed-char-for-BSONType-enumerations.patch
@@ -0,0 +1,35 @@
+From a1689790db10139d09c4fb29f500470564faabde Mon Sep 17 00:00:00 2001
+From: Robie Basak <robie.basak at canonical.com>
+Date: Mon, 6 May 2013 23:01:56 +0100
+Subject: [PATCH] SERVER-9680 Use a signed char to store BSONType enumerations
+
+MinKey is defined as -1, so a signed char must be used to store BSONType
+enumerations. Using a char to store a negative value results in
+undefined behaviour. On i386 and amd64 architectures it happens to work
+because on these platforms a char is generally signed, but this is not
+guaranteed.
+
+This fixes a build failure on ARM, where chars are unsigned by default,
+and using MinKey (defined as -1) results in a compiler error.
+---
+ src/mongo/bson/bson_validate.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/mongo/bson/bson_validate.cpp b/src/mongo/bson/bson_validate.cpp
+index 9ac0bcb..88e6d48 100644
+--- a/src/mongo/bson/bson_validate.cpp
++++ b/src/mongo/bson/bson_validate.cpp
+@@ -130,8 +130,8 @@
+         Status validateElementInfo(Buffer* buffer, ValidationState::State* nextState) {
+             Status status = Status::OK();
+ 
+-            char type;
+-            if ( !buffer->readNumber<char>(&type) )
++            signed char type;
++            if ( !buffer->readNumber<signed char>(&type) )
+                 return Status( ErrorCodes::InvalidBSON, "invalid bson" );
+ 
+             if ( type == EOO ) {
+-- 
+1.8.1.6
+
diff --git a/mongodb-2.4.5-use-system-version.patch b/mongodb-2.4.5-use-system-version.patch
new file mode 100644
index 0000000..638b8f0
--- /dev/null
+++ b/mongodb-2.4.5-use-system-version.patch
@@ -0,0 +1,41 @@
+diff -Nur mongodb-src-r2.4.4.orig/SConstruct mongodb-src-r2.4.4/SConstruct
+--- mongodb-src-r2.4.4.orig/SConstruct	2013-06-16 20:57:58.272022055 +0200
++++ mongodb-src-r2.4.4/SConstruct	2013-06-28 20:37:15.266916910 +0200
+@@ -246,7 +246,7 @@
+ 
+ printLocalInfo()
+ 
+-boostLibs = [ "thread" , "filesystem" , "program_options", "system" ]
++boostLibs = [ "thread" , "filesystem" , "iostreams" , "program_options", "system" ]
+ 
+ onlyServer = len( COMMAND_LINE_TARGETS ) == 0 or ( len( COMMAND_LINE_TARGETS ) == 1 and str( COMMAND_LINE_TARGETS[0] ) in [ "mongod" , "mongos" , "test" ] )
+ nix = False
+@@ -805,6 +805,28 @@
+             print( "c++ compiler not installed!" )
+             Exit(1)
+ 
++    if use_system_version_of_library("snappy"):
++        if not conf.CheckCXXHeader("snappy.h"):
++            print( "can't find snappy header" )
++            Exit(1)
++        if not conf.CheckLib("libsnappy"):
++            print( "can't find snappy library" )
++            Exit(1)
++
++    if use_system_version_of_library("pcre"):
++        if not conf.CheckCXXHeader("pcre.h"):
++            print( "can't find pcre header" )
++            Exit(1)
++        if not conf.CheckLib("libpcre"):
++            print( "can't find pcre library" )
++            Exit(1)
++        if not conf.CheckCXXHeader("pcrecpp.h"):
++            print( "can't find pcrecpp header" )
++            Exit(1)
++        if not conf.CheckLib("libpcrecpp"):
++            print( "can't find pcrecpp library" )
++            Exit(1)
++
+     if use_system_version_of_library("boost"):
+         if not conf.CheckCXXHeader( "boost/filesystem/operations.hpp" ):
+             print( "can't find boost headers" )
diff --git a/mongodb-tmpfile b/mongodb-tmpfile
new file mode 100644
index 0000000..634b44e
--- /dev/null
+++ b/mongodb-tmpfile
@@ -0,0 +1,3 @@
+# make sure the mongodb dir is owned by mongodb so the process running as
+# mongodb can write the pid there
+d /run/mongodb 0755 mongodb root -
diff --git a/mongodb.conf b/mongodb.conf
new file mode 100644
index 0000000..2a0e389
--- /dev/null
+++ b/mongodb.conf
@@ -0,0 +1,88 @@
+##
+### Basic Defaults
+##
+bind_ip = 127.0.0.1
+port = 27017
+fork = true
+pidfilepath = /var/run/mongodb/mongodb.pid
+logpath = /var/log/mongodb/mongodb.log
+dbpath =/var/lib/mongodb
+journal = true
+
+# 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 port+1000).
+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>
diff --git a/mongodb.init b/mongodb.init
new file mode 100644
index 0000000..5d84a88
--- /dev/null
+++ b/mongodb.init
@@ -0,0 +1,168 @@
+#!/bin/sh
+#
+# mongodb      init file for starting up the MongoDB server
+#
+# chkconfig:   - 90 10
+# description: Starts and stops the MongDB daemon that handles all \
+#              database requests.
+
+# Source function library.
+. /etc/rc.d/init.d/functions
+
+exec="/usr/bin/mongod"
+prog="mongod"
+logfile="/var/log/mongodb/mongodb.log"
+
+[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
+
+pidfile=${PIDFILE-/var/run/mongodb/mongodb.pid}
+options="$OPTIONS"
+lockfile="/var/lock/subsys/mongod"
+
+# Nicer version of killproc that does not kill mongodb when it takes
+# a long time to shut down and does not hang for a long time when mongo
+# shuts down quickly
+killproc_nice() {
+	local RC base pid pid_file= delay i
+
+	RC=0; delay=3
+	# Test syntax.
+	if [ "$#" -eq 0 ]; then
+		echo $"Usage: killproc [-p pidfile] [ -d delay] {program} [-signal]"
+		return 1
+	fi
+	if [ "$1" = "-p" ]; then
+		pid_file=$2
+		shift 2
+	fi
+	if [ "$1" = "-d" ]; then
+		delay=$2
+		shift 2
+	fi
+
+	# Save basename.
+	base=${1##*/}
+
+	# Find pid.
+	__pids_var_run "$1" "$pid_file"
+	RC=$?
+	if [ -z "$pid" ]; then
+		if [ -z "$pid_file" ]; then
+			pid="$(__pids_pidof "$1")"
+		else
+			[ "$RC" = "4" ] && { failure $"$base shutdown" ; return $RC ;}
+		fi
+	fi
+
+	# Kill it.
+	if [ -n "$pid" ] ; then
+		[ "$BOOTUP" = "verbose" -a -z "${LSB:-}" ] && echo -n "$base "
+		if checkpid $pid 2>&1; then
+			# TERM first, then KILL if not dead
+			kill -TERM $pid >/dev/null 2>&1
+			usleep 100000
+
+			# Check every one second if the program is stopped.
+			# Do so for a maximum of $delay seconds
+			for ((i = 0 ; i < $delay; i++))
+			do
+				if checkpid $pid; then
+					sleep 1
+				else
+					break
+				fi
+			done
+
+			# If the program is not stopped, kill it
+			if checkpid $pid ; then
+				kill -KILL $pid >/dev/null 2>&1
+				usleep 100000
+			fi
+		fi
+		checkpid $pid
+		RC=$?
+		[ "$RC" -eq 0 ] && failure $"$base shutdown" || success $"$base shutdown"
+		RC=$((! $RC))
+	else
+		failure $"$base shutdown"
+		RC=0
+	fi
+
+	# Remove pid file if any.
+	rm -f "${pid_file:-/var/run/$base.pid}"
+	return $RC
+}
+
+start() {
+    [ -x $exec ] || exit 5
+    echo -n $"Starting $prog: "
+    daemon --pidfile=${pidfile} --user mongodb "$exec $options run >> $logfile 2>&1 &"
+    retval=$?
+    echo
+    [ $retval -eq 0 ] && touch $lockfile
+    return $retval
+}
+
+stop() {
+    echo -n $"Stopping $prog: "
+    killproc_nice -p ${pidfile} -d 300 $prog
+    retval=$?
+    echo
+    [ $retval -eq 0 ] && rm -f $lockfile
+    return $retval
+}
+
+restart() {
+    stop
+    start
+}
+
+reload() {
+    restart
+}
+
+force_reload() {
+    restart
+}
+
+rh_status() {
+    # run checks to determine if the service is running or use generic status
+    status -p ${pidfile} $prog
+}
+
+rh_status_q() {
+    rh_status >/dev/null 2>&1
+}
+
+
+case "$1" in
+    start)
+        rh_status_q && exit 0
+        $1
+        ;;
+    stop)
+        rh_status_q || exit 0
+        $1
+        ;;
+    restart)
+        $1
+        ;;
+    reload)
+        rh_status_q || exit 7
+        $1
+        ;;
+    force-reload)
+        force_reload
+        ;;
+    status)
+        rh_status
+        ;;
+    condrestart|try-restart)
+        rh_status_q || exit 0
+        restart
+        ;;
+    *)
+        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
+        exit 2
+esac
+exit $?
diff --git a/mongodb.logrotate b/mongodb.logrotate
new file mode 100644
index 0000000..862d57b
--- /dev/null
+++ b/mongodb.logrotate
@@ -0,0 +1,12 @@
+/var/log/mongodb/*.log {
+       weekly
+       rotate 10
+       copytruncate
+       delaycompress
+       compress
+       notifempty
+       missingok
+       postrotate
+          /bin/kill -USR1 `cat /var/run/mongodb/mongodb.pid 2>/dev/null` 2> /dev/null|| true
+       endscript
+}
\ No newline at end of file
diff --git a/mongodb.spec b/mongodb.spec
new file mode 100644
index 0000000..11770f7
--- /dev/null
+++ b/mongodb.spec
@@ -0,0 +1,606 @@
+%global daemon mongod
+
+Name:           mongodb
+Version:        2.4.6
+Release:        5%{?dist}
+Summary:        High-performance, schema-free document-oriented database
+Group:          Applications/Databases
+License:        AGPLv3 and zlib and ASL 2.0
+# util/md5 is under the zlib license
+# manpages and bson are under ASL 2.0
+# everything else is AGPLv3
+URL:            http://www.mongodb.org
+
+Source0:        http://fastdl.mongodb.org/src/%{name}-src-r%{version}.tar.gz
+Source1:        %{name}.init
+Source2:        %{name}.logrotate
+Source3:        %{name}.conf
+Source4:        %{daemon}.sysconf
+Source5:        %{name}-tmpfile
+Source6:        %{daemon}.service
+Patch1:         mongodb-2.4.5-no-term.patch
+##Patch 2 - make it possible to use system libraries
+Patch2:         mongodb-2.4.5-use-system-version.patch
+##Patch 5 - https://jira.mongodb.org/browse/SERVER-9210
+Patch5:         mongodb-2.4.5-boost-fix.patch
+##Patch 6 - https://github.com/mongodb/mongo/commit/1d42a534e0eb1e9ac868c0234495c0333d57d7c1
+Patch6:         mongodb-2.4.5-boost-size-fix.patch
+##Patch 7 - https://bugzilla.redhat.com/show_bug.cgi?id=958014
+## Need to work on getting this properly patched upstream
+Patch7:         mongodb-2.4.5-pass-flags.patch
+##Patch 8 - Compile with GCC 4.8
+Patch8:         mongodb-2.4.5-gcc48.patch
+##Patch 10 - Support atomics on ARM
+Patch10:        mongodb-2.4.5-atomics.patch
+##From: Robie Basak <robie.basak at canonical.com>
+##  Use a signed char to store BSONType enumerations
+##Patch 11 https://jira.mongodb.org/browse/SERVER-9680
+Patch11:        mongodb-2.4.5-signed-char-for-BSONType-enumerations.patch
+
+Requires:       v8 >= 3.14.5.10
+BuildRequires:  python-devel
+BuildRequires:  scons
+BuildRequires:  openssl-devel
+BuildRequires:  boost-devel
+BuildRequires:  pcre-devel
+BuildRequires:  v8-devel
+BuildRequires:  readline-devel
+BuildRequires:  libpcap-devel
+BuildRequires:  snappy-devel
+BuildRequires:  gperftools-devel
+%if 0%{?fedora} >= 15
+BuildRequires:  systemd
+%endif
+
+# Mongodb must run on a little-endian CPU (see bug #630898)
+ExcludeArch:    ppc ppc64 %{sparc} s390 s390x
+
+%description
+Mongo (from "humongous") is a high-performance, open source, schema-free
+document-oriented database. MongoDB is written in C++ and offers the following
+features:
+    * Collection oriented storage: easy storage of object/JSON-style data
+    * Dynamic queries
+    * Full index support, including on inner objects and embedded arrays
+    * Query profiling
+    * Replication and fail-over support
+    * Efficient storage of binary data including large objects (e.g. photos
+    and videos)
+    * Auto-sharding for cloud-level scalability (currently in early alpha)
+    * Commercial Support Available
+
+A key goal of MongoDB is to bridge the gap between key/value stores (which are
+fast and highly scalable) and traditional RDBMS systems (which are deep in
+functionality).
+
+%package -n lib%{name}
+Summary:        MongoDB shared libraries
+Group:          Development/Libraries
+
+%description -n lib%{name}
+This package provides the shared library for the MongoDB client.
+
+%package -n lib%{name}-devel
+Summary:        MongoDB header files
+Group:          Development/Libraries
+Requires:       lib%{name} = %{version}-%{release}
+Requires:       boost-devel
+Provides:       mongodb-devel = %{version}-%{release}
+Obsoletes:      mongodb-devel < 2.4
+
+%description -n lib%{name}-devel
+This package provides the header files and C++ driver for MongoDB. MongoDB is
+a high-performance, open source, schema-free document-oriented database.
+
+%package server
+Summary:        MongoDB server, sharding server and support scripts
+Group:          Applications/Databases
+Requires(pre):  shadow-utils
+Requires:       v8
+%if 0%{?fedora} >= 15
+Requires(post): systemd-units
+Requires(preun): systemd-units
+Requires(postun): systemd-units
+%else
+Requires(post): chkconfig
+Requires(preun): chkconfig
+Requires(postun): initscripts
+%endif
+
+%description server
+This package provides the mongo server software, mongo sharding server
+software, default configuration files, and init scripts.
+
+
+%prep
+%setup -q -n mongodb-src-r%{version}
+%patch1 -p1
+%patch2 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch10 -p1 -b .atomics
+%patch11 -p1 -b .type
+
+# spurious permissions
+chmod -x README
+
+# wrong end-of-file encoding
+sed -i 's/\r//' README
+
+# Put lib dir in correct place
+# https://jira.mongodb.org/browse/SERVER-10049
+sed -i -e "s@\$INSTALL_DIR/lib@\$INSTALL_DIR/%{_lib}@g" src/SConscript.client
+
+%build
+# NOTE: Build flags must be EXACTLY the same in the install step!
+# If you fail to do this, mongodb will be built twice...
+scons \
+        %{?_smp_mflags} \
+        --sharedclient \
+        --use-system-all \
+        --prefix=%{buildroot}%{_prefix} \
+        --extrapath=%{_prefix} \
+        --usev8 \
+        --nostrip \
+        --ssl \
+        --full
+
+%install
+# NOTE: Install flags must be EXACTLY the same in the build step!
+# If you fail to do this, mongodb will be built twice...
+scons install \
+        %{?_smp_mflags} \
+        --sharedclient \
+        --use-system-all \
+        --prefix=%{buildroot}%{_prefix} \
+        --extrapath=%{_prefix} \
+        --usev8 \
+        --nostrip \
+        --ssl \
+        --full
+rm -f %{buildroot}%{_libdir}/libmongoclient.a
+rm -f %{buildroot}%{_libdir}/../lib/libmongoclient.a
+
+mkdir -p %{buildroot}%{_sharedstatedir}/%{name}
+mkdir -p %{buildroot}%{_localstatedir}/log/%{name}
+mkdir -p %{buildroot}%{_localstatedir}/run/%{name}
+mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
+
+%if 0%{?fedora} >= 15
+mkdir -p %{buildroot}%{_unitdir}
+install -p -D -m 644 %{SOURCE5} %{buildroot}%{_libdir}/../lib/tmpfiles.d/mongodb.conf
+install -p -D -m 644 %{SOURCE6} %{buildroot}%{_unitdir}/%{daemon}.service
+%else
+install -p -D -m 755 %{SOURCE1} %{buildroot}%{_initddir}/%{daemon}
+%endif
+install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
+install -p -D -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/mongodb.conf
+install -p -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/%{daemon}
+
+mkdir -p %{buildroot}%{_mandir}/man1
+cp -p debian/*.1 %{buildroot}%{_mandir}/man1/
+
+mkdir -p %{buildroot}%{_localstatedir}/run/%{name}
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%pre server
+getent group %{name} >/dev/null || groupadd -r %{name}
+getent passwd %{name} >/dev/null || \
+useradd -r -g %{name} -u 184 -d %{_sharedstatedir}/%{name} -s /sbin/nologin \
+-c "MongoDB Database Server" %{name}
+exit 0
+
+%post server
+%if 0%{?fedora} >= 15
+/bin/systemd-tmpfiles --create mongodb.conf
+/bin/systemctl daemon-reload &> /dev/null || :
+%else
+/sbin/chkconfig --add %{daemon}
+%endif
+
+
+%preun server
+if [ $1 = 0 ] ; then
+%if 0%{?fedora} >= 15
+  /bin/systemctl --no-reload disable %{daemon}.service &> /dev/null
+  /bin/systemctl stop %{daemon}.service &> /dev/null
+%else
+  /sbin/service %{daemon} stop >/dev/null 2>&1
+  /sbin/chkconfig --del %{daemon}
+%endif
+fi
+
+
+%postun server
+%if 0%{?fedora} >= 15
+/bin/systemctl daemon-reload &> /dev/null
+%endif
+if [ "$1" -ge "1" ] ; then
+%if 0%{?fedora} >= 15
+   /bin/systemctl try-restart %{daemon}.service &> /dev/null
+%else
+   /sbin/service %{daemon} condrestart >/dev/null 2>&1 || :
+%endif
+fi
+
+
+%files
+%{_bindir}/bsondump
+%{_bindir}/mongo
+%{_bindir}/mongodump
+%{_bindir}/mongoexport
+%{_bindir}/mongofiles
+%{_bindir}/mongoimport
+%{_bindir}/mongooplog
+%{_bindir}/mongoperf
+%{_bindir}/mongorestore
+%{_bindir}/mongosniff
+%{_bindir}/mongostat
+%{_bindir}/mongotop
+
+%{_mandir}/man1/bsondump.1*
+%{_mandir}/man1/mongo.1*
+%{_mandir}/man1/mongodump.1*
+%{_mandir}/man1/mongoexport.1*
+%{_mandir}/man1/mongofiles.1*
+%{_mandir}/man1/mongoimport.1*
+%{_mandir}/man1/mongooplog.1*
+%{_mandir}/man1/mongoperf.1*
+%{_mandir}/man1/mongorestore.1*
+%{_mandir}/man1/mongosniff.1*
+%{_mandir}/man1/mongostat.1*
+%{_mandir}/man1/mongotop.1*
+
+%files -n lib%{name}
+%doc README GNU-AGPL-3.0.txt APACHE-2.0.txt
+%{_libdir}/libmongoclient.so
+
+%files server
+%{_bindir}/mongod
+%{_bindir}/mongos
+%{_mandir}/man1/mongod.1*
+%{_mandir}/man1/mongos.1*
+%dir %attr(0755, %{name}, root) %{_sharedstatedir}/%{name}
+%dir %attr(0755, %{name}, root) %{_localstatedir}/log/%{name}
+%dir %attr(0755, %{name}, root) %{_localstatedir}/run/%{name}
+%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
+%config(noreplace) %{_sysconfdir}/mongodb.conf
+%config(noreplace) %{_sysconfdir}/sysconfig/%{daemon}
+%if 0%{?fedora} >= 15
+%{_unitdir}/*.service
+%{_libdir}/../lib/tmpfiles.d/mongodb.conf
+%else
+%{_initddir}/%{daemon}
+%endif
+
+%files -n lib%{name}-devel
+%{_includedir}
+
+%changelog
+* Fri Feb 07 2014 Jan Pacner <jpacner at redhat.com> - 2.4.6-5
+- Related: #1027157 (mongo segfaults with an older version of v8; allow higher
+  versions of v8 - assume API compatibility)
+
+* Tue Feb 04 2014 Jan Pacner <jpacner at redhat.com> - 2.4.6-4
+- Related: #1022476 (.sysconf not respected; fix issue from comment #2)
+- Related: #1027157 (mongo segfaults with an older version of v8; fix Requires: specification)
+
+* Mon Jan 06 2014 Jan Pacner <jpacner at redhat.com> - 2.4.6-3
+- Resolves: #1027157 (mongo shell sefgaults when using arbitrary v8 version)
+
+* Fri Oct 25 2013 Jan Pacner <jpacner at redhat.com> - 2.4.6-2
+- fix #1022476 (sysconf options not respected)
+
+* Wed Aug 21 2013 Troy Dawson <tdawson at redhat.com> - 2.4.6-1
+- Updated to 2.4.6
+- Added Requires: v8  (#971595)
+
+* Sun Jul 28 2013 Petr Machata <pmachata at redhat.com> - 2.4.5-6
+- Rebuild for boost 1.54.0
+
+* Sat Jul 27 2013 pmachata at redhat.com - 2.4.5-5
+- Rebuild for boost 1.54.0
+
+* Fri Jul 12 2013 Troy Dawson <tdawson at redhat.com> - 2.4.5-4
+- Added Provides: mongodb-devel to libmongodb-devel
+
+* Fri Jul 12 2013 Troy Dawson <tdawson at redhat.com> - 2.4.5-3
+- Removed hardening section.  Currently doesn't work with 2.4.x
+  Wasn't really being applied when we thought it was.
+- Cleaned up RHEL5 spec leftovers
+
+* Thu Jul 11 2013 David Marlin <dmarlin at redhat.com> - 2.4.5-2
+- Updated arm patches to work with 2.4.x
+
+* Mon Jul 08 2013 Troy Dawson <tdawson at redhat.com> - 2.4.5-1
+- Update to version 2.4.5 to fix CVE-2013-4650
+- Patch3 fixed upstream - https://jira.mongodb.org/browse/SERVER-5575
+- Patch4 fixed upstream - https://jira.mongodb.org/browse/SERVER-6514
+- Put lib dir in correct place
+- no longer have to remove duplicate headers
+
+* Sun Jul 07 2013 Johan Hedin <johan.o.hedin at gmail.com> - 2.4.4-4
+- Added patch to make mongodb compile with gcc 4.8
+
+* Wed Jul 03 2013 Johan Hedin <johan.o.hedin at gmail.com> - 2.4.4-3
+- Added missing daemon name to the preun script for the server
+- Fixed init script so that it does not kill the server on shutdown
+- Renamed mongodb-devel to libmongdb-devel
+- Dependency cleanup between the sub packages
+- Moved Requires for the server to the server sub package
+- Using %%{_unitdir} macro for where to put systemd unit files
+- Fixed rpmlint warnings regarding %% in comments and mixed tabs/spaces
+- Run systemd-tmpfiles --create mongodb.conf in post server
+
+* Mon Jul 01 2013 Troy Dawson <tdawson at redhat.com> - 2.4.4-2
+- Turn on hardened build (#958014)
+- Apply patch to accept env flags
+
+* Sun Jun 30 2013 Johan Hedin <johan.o.hedin at gmail.com> - 2.4.4-1
+- Bumped version up to 2.4.4
+- Rebased the old 2.2 patches that are still needed to 2.4.4
+- Added some new patches to build 2.4.4 properly
+
+* Sat May 04 2013 David Marlin <dmarlin at redhat.com> - 2.2.4-2
+- Updated patch to work on both ARMv5 and ARMv7 (#921226)
+
+* Thu May 02 2013 Troy Dawson <tdawson at redhat.com> - 2.2.4-1
+- Bumped version up to 2.2.4
+- Refreshed all patches to 2.2.4
+
+* Fri Apr 26 2013 David Marlin <dmarlin at redhat.com> - 2.2.3-5
+- Patch to build on ARM (#921226)
+
+* Wed Mar 27 2013 Troy Dawson <tdawson at redhat.com> - 2.2.3-4
+- Fix for CVE-2013-1892
+
+* Sun Feb 10 2013 Denis Arnaud <denis.arnaud_fedora at m4x.org> - 2.2.3-3
+- Rebuild for Boost-1.53.0
+
+* Sat Feb 09 2013 Denis Arnaud <denis.arnaud_fedora at m4x.org> - 2.2.3-2
+- Rebuild for Boost-1.53.0
+
+* Tue Feb 05 2013 Troy Dawson <tdawson at redhat.com> - 2.2.3-1
+- Update to version 2.2.3
+
+* Mon Jan 07 2013 Troy Dawson <tdawson at redhat.com> - 2.2.2-2
+- remove duplicate headers (#886064)
+
+* Wed Dec 05 2012 Troy Dawson <tdawson at redhat.com> - 2.2.2-1
+- Updated to version 2.2.2
+
+* Tue Nov 27 2012 Troy Dawson <tdawson at redhat.com> - 2.2.1-3
+- Add ssl build option
+- Using the reserved mongod UID for the useradd
+- mongod man page in server package (#880351)
+- added optional MONGODB_OPTIONS to init script
+
+* Wed Oct 31 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.2.1-2
+- Make sure build and install flags are the same
+- Actually remove the js patch file
+
+* Wed Oct 31 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.2.1-1
+- Remove fork fix patch (fixed upstream)
+- Remove pcre patch (fixed upstream)
+- Remove mozjs patch (now using v8 upstream)
+- Update to 2.2.1
+
+* Tue Oct 02 2012 Troy Dawson <tdawson at redhat.com> - 2.2.0-6
+- full flag patch to get 32 bit builds to work 
+
+* Tue Oct 02 2012 Troy Dawson <tdawson at redhat.com> - 2.2.0-5
+- shared libraries patch
+- Fix up minor %%files issues
+
+* Fri Sep 28 2012 Troy Dawson <tdawson at redhat.com> - 2.2.0-4
+- Fix spec files problems
+
+* Fri Sep 28 2012 Troy Dawson <tdawson at redhat.com> - 2.2.0-3
+- Updated patch to use system libraries
+- Update init script to use a pidfile
+
+* Thu Sep 27 2012 Troy Dawson <tdawson at redhat.com> - 2.2.0-2
+- Added patch to use system libraries
+
+* Wed Sep 19 2012 Troy Dawson <tdawson at redhat.com> - 2.2.0-1
+- Updated to 2.2.0
+- Updated patches that were still needed
+- use v8 instead of spider_monkey due to bundled library issues
+
+* Tue Aug 21 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.0.7-1
+- Update to 2.0.7
+- Don't patch for boost-filesystem version 3 on EL6
+
+* Mon Aug 13 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.0.6-3
+- Remove EL5 support
+- Add patch to use boost-filesystem version 3
+
+* Wed Aug 01 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.0.6-2
+- Don't apply fix-xtime patch on EL5
+
+* Wed Aug 01 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.0.6-1
+- Update to 2.0.6
+- Update no-term patch
+- Add fix-xtime patch for new boost
+
+* Fri Jul 20 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2.0.4-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Tue Apr 17 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.0.4-1
+- Update to 2.0.4
+- Remove oldpython patch (fixed upstream)
+- Remove snappy patch (fixed upstream)
+
+* Tue Feb 28 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2.0.2-10
+- Rebuilt for c++ ABI breakage
+
+* Fri Feb 10 2012 Petr Pisar <ppisar at redhat.com> - 2.0.2-9
+- Rebuild against PCRE 8.30
+
+* Fri Feb 03 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.0.2-8
+- Disable HTTP interface by default (#752331)
+
+* Fri Feb 03 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.0.2-7
+- Enable journaling by default (#656112)
+- Remove BuildRequires on unittest (#755081)
+
+* Fri Feb 03 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.0.2-6
+- Clean up mongodb-src-r2.0.2-js.patch and fix #787246
+
+* Tue Jan 17 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.0.2-5
+- Enable build using external snappy
+
+* Tue Jan 17 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.0.2-4
+- Patch buildsystem for building on older pythons (RHEL5)
+
+* Mon Jan 16 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.0.2-3
+- Merge the 2.0.2 spec file with EPEL
+- Merge mongodb-sm-pkgconfig.patch into mongodb-src-r2.0.2-js.patch
+
+* Mon Jan 16 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.0.2-2
+- Add pkg-config enablement patch
+
+* Sat Jan 14 2012 Nathaniel McCallum <nathaniel at natemccallum.com> - 2.0.2-1
+- Update to 2.0.2
+- Add new files (mongotop and bsondump manpage)
+- Update mongodb-src-r1.8.2-js.patch => mongodb-src-r2.0.2-js.patch
+- Update mongodb-fix-fork.patch
+- Fix pcre linking
+
+* Fri Jan 13 2012 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.8.2-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Sun Nov 20 2011 Chris Lalancette <clalancette at gmail.com> - 1.8.2-10
+- Rebuild for rawhide boost update
+
+* Thu Sep 22 2011 Chris Lalancette <clalance at redhat.com> - 1.8.2-9
+- Copy the right source file into place for tmpfiles.d
+
+* Tue Sep 20 2011 Chris Lalancette <clalance at redhat.com> - 1.8.2-8
+- Add a tmpfiles.d file to create the /var/run/mongodb subdirectory
+
+* Mon Sep 12 2011 Chris Lalancette <clalance at redhat.com> - 1.8.2-7
+- Add a patch to fix the forking to play nice with systemd
+- Make the /var/run/mongodb directory owned by mongodb
+
+* Thu Jul 28 2011 Chris Lalancette <clalance at redhat.com> - 1.8.2-6
+- BZ 725601 - fix the javascript engine to not hang (thanks to Eduardo Habkost)
+
+* Mon Jul 25 2011 Chris Lalancette <clalance at redhat.com> - 1.8.2-5
+- Fixes to post server, preun server, and postun server to use systemd
+
+* Thu Jul 21 2011 Chris Lalancette <clalance at redhat.com> - 1.8.2-4
+- Update to use systemd init
+
+* Thu Jul 21 2011 Chris Lalancette <clalance at redhat.com> - 1.8.2-3
+- Rebuild for boost ABI break
+
+* Wed Jul 13 2011 Chris Lalancette <clalance at redhat.com> - 1.8.2-2
+- Make mongodb-devel require boost-devel (BZ 703184)
+
+* Fri Jul 01 2011 Chris Lalancette <clalance at redhat.com> - 1.8.2-1
+- Update to upstream 1.8.2
+- Add patch to ignore TERM
+
+* Fri Jul 01 2011 Chris Lalancette <clalance at redhat.com> - 1.8.0-3
+- Bump release to build against new boost package
+
+* Sat Mar 19 2011 Nathaniel McCallum <nathaniel at natemccallum.com> - 1.8.0-2
+- Make mongod bind only to 127.0.0.1 by default
+
+* Sat Mar 19 2011 Nathaniel McCallum <nathaniel at natemccallum.com> - 1.8.0-1
+- Update to 1.8.0
+- Remove upstreamed nonce patch
+
+* Wed Feb 16 2011 Nathaniel McCallum <nathaniel at natemccallum.com> - 1.7.5-5
+- Add nonce patch
+
+* Sun Feb 13 2011 Nathaniel McCallum <nathaniel at natemccallum.com> - 1.7.5-4
+- Manually define to use boost-fs v2
+
+* Sat Feb 12 2011 Nathaniel McCallum <nathaniel at natemccallum.com> - 1.7.5-3
+- Disable extra warnings
+
+* Fri Feb 11 2011 Nathaniel McCallum <nathaniel at natemccallum.com> - 1.7.5-2
+- Disable compilation errors on warnings
+
+* Fri Feb 11 2011 Nathaniel McCallum <nathaniel at natemccallum.com> - 1.7.5-1
+- Update to 1.7.5
+- Remove CPPFLAGS override
+- Added libmongodb package
+
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.6.4-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Mon Dec 06 2010 Nathaniel McCallum <nathaniel at natemccallum.com> - 1.6.4-3
+- Add post/postun ldconfig... oops!
+
+* Mon Dec 06 2010 Nathaniel McCallum <nathaniel at natemccallum.com> - 1.6.4-2
+- Enable --sharedclient option, remove static lib
+
+* Sat Dec 04 2010 Nathaniel McCallum <nathaniel at natemccallum.com> - 1.6.4-1
+- New upstream release
+
+* Fri Oct 08 2010 Nathaniel McCallum <nathaniel at natemccallum.com> - 1.6.3-4
+- Put -fPIC onto both the build and install scons calls
+
+* Fri Oct 08 2010 Nathaniel McCallum <nathaniel at natemccallum.com> - 1.6.3-3
+- Define _initddir when it doesn't exist for el5 and others
+
+* Fri Oct 08 2010 Nathaniel McCallum <nathaniel at natemccallum.com> - 1.6.3-2
+- Added -fPIC build option which was dropped by accident
+
+* Thu Oct  7 2010 Ionuț C. Arțăriși <mapleoin at fedoraproject.org> - 1.6.3-1
+- removed js Requires
+- new upstream release
+- added more excludearches: sparc s390, s390x and bugzilla pointer
+
+* Tue Sep  7 2010 Ionuț C. Arțăriși <mapleoin at fedoraproject.org> - 1.6.2-2
+- added ExcludeArch for ppc
+
+* Fri Sep  3 2010 Ionuț C. Arțăriși <mapleoin at fedoraproject.org> - 1.6.2-1
+- new upstream release 1.6.2
+- send mongod the USR1 signal when doing logrotate
+- use config options when starting the daemon from the initfile
+- removed dbpath patch: rely on config
+- added pid directory to config file and created the dir in the spec
+- made the init script use options from the config file
+- changed logpath in mongodb.conf
+
+* Wed Sep  1 2010 Ionuț C. Arțăriși <mapleoin at fedoraproject.org> - 1.6.1-1
+- new upstream release 1.6.1
+- patched SConstruct to allow setting cppflags
+- stopped using sed and chmod macros
+
+* Fri Aug  6 2010 Ionuț C. Arțăriși <mapleoin at fedoraproject.org> - 1.6.0-1
+- new upstream release: 1.6.0
+- added -server package
+- added new license file to %%docs
+- fix spurious permissions and EOF encodings on some files
+
+* Tue Jun 15 2010 Ionuț C. Arțăriși <mapleoin at fedoraproject.org> - 1.4.3-2
+- added explicit js requirement
+- changed some names
+
+* Wed May 26 2010 Ionuț C. Arțăriși <mapleoin at fedoraproject.org> - 1.4.3-1
+- updated to 1.4.3
+- added zlib license for util/md5
+- deleted upstream deb/rpm recipes
+- made scons not strip binaries
+- made naming more consistent in logfile, lockfiles, init scripts etc.
+- included manpages and added corresponding license
+- added mongodb.conf to sources
+
+* Fri Oct  2 2009 Ionuț Arțăriși <mapleoin at fedoraproject.org> - 1.0.0-3
+- fixed libpath issue for 64bit systems
+
+* Thu Oct  1 2009 Ionuț Arțăriși <mapleoin at fedoraproject.org> - 1.0.0-2
+- added virtual -static package
+
+* Mon Aug 31 2009 Ionuț Arțăriși <mapleoin at fedoraproject.org> - 1.0.0-1
+- Initial release.
diff --git a/sources b/sources
new file mode 100644
index 0000000..30a48cf
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+74496298ce47cf3ad70ea02abb2ee8b2  mongodb-src-r2.4.6.tar.gz


More information about the scm-commits mailing list