From 6b52aa0b1e3bcb046939a9e718d092dba168d1eb Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Jun 09 2014 08:26:40 +0000 Subject: import mongodb24-mongodb-2.4.9-8.el7 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ebb032b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/mongodb-src-r2.4.9.tar.gz diff --git a/.mongodb24-mongodb.metadata b/.mongodb24-mongodb.metadata new file mode 100644 index 0000000..59ec092 --- /dev/null +++ b/.mongodb24-mongodb.metadata @@ -0,0 +1 @@ +3aa495cf32769a09ee9532827391892d96337d6b SOURCES/mongodb-src-r2.4.9.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index ce46a88..0000000 --- a/README.md +++ /dev/null @@ -1,5 +0,0 @@ -\ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/mongodb-2.4.5-atomics.patch b/SOURCES/mongodb-2.4.5-atomics.patch new file mode 100644 index 0000000..1458a36 --- /dev/null +++ b/SOURCES/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::* operations for IA-32 and AMD64 systems using a +- * GCC-compatible compiler toolchain. ++ * Implementation of the AtomicIntrinsics::* operations for GCC-compatible compiler toolchain. + */ + + #pragma once + + #include + ++#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 ++ 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 <= 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/SOURCES/mongodb-2.4.5-boost-fix.patch b/SOURCES/mongodb-2.4.5-boost-fix.patch new file mode 100644 index 0000000..073827e --- /dev/null +++ b/SOURCES/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::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 + #include + #include ++#include + #include + + #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 + #include ++#include + #include + #include + #include +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(NULL)); ++ #if BOOST_VERSION >= 104400 ++ boost::filesystem::absolute(path).generic_string(), ++ #else ++ boost::filesystem::system_complete(path).string(), ++ #endif ++ static_cast(NULL)); + } + + diff --git a/SOURCES/mongodb-2.4.5-boost-size-fix.patch b/SOURCES/mongodb-2.4.5-boost-size-fix.patch new file mode 100644 index 0000000..63d2a78 --- /dev/null +++ b/SOURCES/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(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(boost::size(expected)), argc); + + testCensoringArgv(expected, argv, argc); + } +@@ -134,7 +134,7 @@ + "-servicePassword", + "xxxxxxxxxxxxxxxx" + }; +- ASSERT_EQUALS(boost::size(expected), argc); ++ ASSERT_EQUALS(static_cast(boost::size(expected)), argc); + + testCensoringArgv(expected, argv, argc); + } +@@ -183,7 +183,7 @@ + "--servicePassword", + "" + }; +- ASSERT_EQUALS(boost::size(expected), argc); ++ ASSERT_EQUALS(static_cast(boost::size(expected)), argc); + + testCensoringVector(expected, argv, argc); + } +@@ -215,7 +215,7 @@ + "-servicePassword", + "" + }; +- ASSERT_EQUALS(boost::size(expected), argc); ++ ASSERT_EQUALS(static_cast(boost::size(expected)), argc); + + testCensoringVector(expected, argv, argc); + } diff --git a/SOURCES/mongodb-2.4.5-gcc48.patch b/SOURCES/mongodb-2.4.5-gcc48.patch new file mode 100644 index 0000000..1b22937 --- /dev/null +++ b/SOURCES/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/SOURCES/mongodb-2.4.5-no-term.patch b/SOURCES/mongodb-2.4.5-no-term.patch new file mode 100644 index 0000000..47369e9 --- /dev/null +++ b/SOURCES/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/SOURCES/mongodb-2.4.5-pass-flags.patch b/SOURCES/mongodb-2.4.5-pass-flags.patch new file mode 100644 index 0000000..855996a --- /dev/null +++ b/SOURCES/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/SOURCES/mongodb-2.4.5-use-system-version.patch b/SOURCES/mongodb-2.4.5-use-system-version.patch new file mode 100644 index 0000000..638b8f0 --- /dev/null +++ b/SOURCES/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/SOURCES/mongodb-2.4.6-use-ld-library-path.patch b/SOURCES/mongodb-2.4.6-use-ld-library-path.patch new file mode 100644 index 0000000..accf2b1 --- /dev/null +++ b/SOURCES/mongodb-2.4.6-use-ld-library-path.patch @@ -0,0 +1,14 @@ +diff -up mongodb-src-r2.4.8/SConstruct.paths mongodb-src-r2.4.8/SConstruct +--- mongodb-src-r2.4.8/SConstruct.paths 2013-11-26 21:07:05.786573244 +0100 ++++ mongodb-src-r2.4.8/SConstruct 2013-11-26 21:44:13.547311023 +0100 +@@ -559,6 +559,10 @@ elif os.sys.platform.startswith("linux") + env.Append( LINKFLAGS=" -static " ) + if has_option( "static-libstdc++" ): + env.Append( LINKFLAGS=" -static-libstdc++ " ) ++ if 'LD_LIBRARY_PATH' not in env['ENV']: ++ env['ENV']['LD_LIBRARY_PATH'] = os.environ['LD_LIBRARY_PATH'] ++ env.Append( EXTRALIBPATH= os.environ['LIBRARY_PATH'].split(":") ) ++ env.Append( EXTRACPPPATH= os.environ['CPATH' ].split(":") ) + + elif "sunos5" == os.sys.platform: + nix = True diff --git a/SOURCES/mongodb-shard.conf b/SOURCES/mongodb-shard.conf new file mode 100644 index 0000000..b753e8f --- /dev/null +++ b/SOURCES/mongodb-shard.conf @@ -0,0 +1,88 @@ +## +### Basic Defaults +## +bind_ip = 127.0.0.1 +port = 27019 +fork = true +pidfilepath = /var/run/mongodb/mongodb-shard.pid +unixSocketPrefix = /var/run/mongodb +logpath = /var/log/mongodb/mongodb-shard.log +configdb = 127.0.0.1:27017 + +# 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 = + +# Accout token for Mongo monitoring server. +#mms-token = + +# Server name for Mongo monitoring server. +#mms-name = + +# Ping interval for Mongo monitoring server. +#mms-interval = + +# 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 = +# Address of arbiter server. +#arbiter = +# Automatically resync if slave data is stale +#autoresync +# Custom size for replication operation log. +#oplogSize = +# Size limit for in-memory storage of op ids. +#opIdMem = diff --git a/SOURCES/mongodb-shard.init b/SOURCES/mongodb-shard.init new file mode 100644 index 0000000..50a22dd --- /dev/null +++ b/SOURCES/mongodb-shard.init @@ -0,0 +1,175 @@ +#!/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/mongos" +prog="mongodb-shard" +logfile="/var/log/mongodb/mongodb-shard.log" + +[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog + +pidfile=${PIDFILE-/var/run/mongodb/mongodb-shard.pid} +options="$OPTIONS" +lockfile="/var/lock/subsys/$prog" + +# 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 + printf '%s' $"Starting $prog: " + # why the hell is this not checked in /etc/rc.d/init.d/functions ? + [ "$(id -u)" -eq 0 ] || exit 4 + # FIXME check mongod source - if parent waits after forking for childs + # message about proper initialization + daemon --pidfile="$pidfile" --user mongodb \ + "$exec $options >> $logfile 2>&1" + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + printf '%s' $"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 +} + +. __SCL_SCRIPTS__/service-environment +. scl_source enable __list of scls__ + +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/SOURCES/mongodb-shard.service b/SOURCES/mongodb-shard.service new file mode 100644 index 0000000..fe821e3 --- /dev/null +++ b/SOURCES/mongodb-shard.service @@ -0,0 +1,17 @@ +[Unit] +Description=High-performance, schema-free document-oriented database +After=syslog.target network.target + +[Service] +Type=forking +User=mongodb +PIDFile=/var/run/mongodb/mongodb-shard.pid +EnvironmentFile=__SCL_SCRIPTS__/service-environment +EnvironmentFile=/etc/sysconfig/mongodb-shard +ExecStart=/usr/bin/scl enable __list of scls__ -- /usr/bin/mongos $OPTIONS +# FIXME after selinux-policy has the needed stuff +PrivateTmp=true +LimitNOFILE=64000 + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/mongodb-shard.sysconf b/SOURCES/mongodb-shard.sysconf new file mode 100644 index 0000000..203c64b --- /dev/null +++ b/SOURCES/mongodb-shard.sysconf @@ -0,0 +1 @@ +OPTIONS="-f /etc/mongodb-shard.conf" diff --git a/SOURCES/mongodb-tmpfile b/SOURCES/mongodb-tmpfile new file mode 100644 index 0000000..634b44e --- /dev/null +++ b/SOURCES/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/SOURCES/mongodb.conf b/SOURCES/mongodb.conf new file mode 100644 index 0000000..8498966 --- /dev/null +++ b/SOURCES/mongodb.conf @@ -0,0 +1,89 @@ +## +### Basic Defaults +## +bind_ip = 127.0.0.1 +port = 27017 +fork = true +pidfilepath = /var/run/mongodb/mongodb.pid +unixSocketPrefix = /var/run/mongodb +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 = + +# Accout token for Mongo monitoring server. +#mms-token = + +# Server name for Mongo monitoring server. +#mms-name = + +# Ping interval for Mongo monitoring server. +#mms-interval = + +# 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 = +# Address of arbiter server. +#arbiter = +# Automatically resync if slave data is stale +#autoresync +# Custom size for replication operation log. +#oplogSize = +# Size limit for in-memory storage of op ids. +#opIdMem = diff --git a/SOURCES/mongodb.init b/SOURCES/mongodb.init new file mode 100644 index 0000000..107df01 --- /dev/null +++ b/SOURCES/mongodb.init @@ -0,0 +1,175 @@ +#!/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="mongodb" +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/$prog" + +# 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 + printf '%s' $"Starting $prog: " + # why the hell is this not checked in /etc/rc.d/init.d/functions ? + [ "$(id -u)" -eq 0 ] || exit 4 + # FIXME check mongod source - if parent waits after forking for childs + # message about proper initialization + daemon --pidfile="$pidfile" --user mongodb \ + "$exec $options run >> $logfile 2>&1" + retval=$? + echo + [ $retval -eq 0 ] && touch $lockfile + return $retval +} + +stop() { + printf '%s' $"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 +} + +. __SCL_SCRIPTS__/service-environment +. scl_source enable __list of scls__ + +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/SOURCES/mongodb.logrotate b/SOURCES/mongodb.logrotate new file mode 100644 index 0000000..51f6261 --- /dev/null +++ b/SOURCES/mongodb.logrotate @@ -0,0 +1,14 @@ +/var/log/mongodb/*.log { + weekly + rotate 10 + copytruncate + delaycompress + compress + notifempty + missingok + postrotate + for f in /var/run/mongodb/mongodb*.pid; do \ + /bin/kill -USR1 $(<$f) 2>/dev/null || true \ + done + endscript +} diff --git a/SOURCES/mongodb.service b/SOURCES/mongodb.service new file mode 100644 index 0000000..5d39ef1 --- /dev/null +++ b/SOURCES/mongodb.service @@ -0,0 +1,17 @@ +[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=__SCL_SCRIPTS__/service-environment +EnvironmentFile=/etc/sysconfig/mongodb +ExecStart=/usr/bin/scl enable __list of scls__ -- /usr/bin/mongod $OPTIONS run +# FIXME after selinux-policy has the needed stuff +#PrivateTmp=true +LimitNOFILE=64000 + +[Install] +WantedBy=multi-user.target diff --git a/SOURCES/mongodb.sysconf b/SOURCES/mongodb.sysconf new file mode 100644 index 0000000..7614052 --- /dev/null +++ b/SOURCES/mongodb.sysconf @@ -0,0 +1 @@ +OPTIONS="--quiet -f /etc/mongodb.conf" diff --git a/SPECS/mongodb.spec b/SPECS/mongodb.spec new file mode 100644 index 0000000..10025b2 --- /dev/null +++ b/SPECS/mongodb.spec @@ -0,0 +1,790 @@ +%{?scl:%scl_package mongodb} +%global pkg_name mongodb +# this macro is provided by the SCL meta package`s subpackage "SCL-scldevel" +# and injected into build-root automagically by relengs +%{?scl_v8_mongodb:%global scl_v8_mongodb_prefix %{scl_v8_mongodb}-} + +Name: %{?scl_prefix}mongodb +Version: 2.4.9 +Release: 8%{?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/%{pkg_name}-src-r%{version}.tar.gz +Source1: %{pkg_name}-tmpfile +Source2: %{pkg_name}.logrotate +Source3: %{pkg_name}.conf +Source4: %{pkg_name}.init +Source5: %{pkg_name}.service +Source6: %{pkg_name}.sysconf +Source7: %{pkg_name}-shard.conf +Source8: %{pkg_name}-shard.init +Source9: %{pkg_name}-shard.service +Source10: %{pkg_name}-shard.sysconf + +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 +Patch12: mongodb-2.4.6-use-ld-library-path.patch + +Requires: %{?scl_v8_mongodb_prefix}v8 +BuildRequires: python-devel +BuildRequires: %{?scl_prefix}scons +BuildRequires: openssl-devel +BuildRequires: boost-devel +BuildRequires: pcre-devel +BuildRequires: %{?scl_v8_mongodb_prefix}v8-devel +BuildRequires: readline-devel +BuildRequires: libpcap-devel +# provides tcmalloc +BuildRequires: %{?scl_prefix}gperftools-devel +# TODO this is no more in the Fedora spec file +#BuildRequires: %{?scl_prefix}libunwind-devel +%if 0%{?rhel} >= 7 +BuildRequires: systemd +BuildRequires: snappy-devel +%else +BuildRequires: %{?scl_prefix}snappy-devel +%endif + +# Mongodb must run on a little-endian CPU (see bug #630898) +ExcludeArch: ppc ppc64 %{sparc} s390 s390x + +%{?scl:Requires:%scl_runtime} + +%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 %{scl}-lib%{pkg_name} +Summary: MongoDB shared libraries +Group: Development/Libraries +%{?scl:Requires:%scl_runtime} + +%description -n %{scl}-lib%{pkg_name} +This package provides the shared library for the MongoDB client. + +%package -n %{scl}-lib%{pkg_name}-devel +Summary: MongoDB header files +Group: Development/Libraries +Requires: %{?scl_prefix}lib%{pkg_name} = %{version}-%{release} +Requires: boost-devel +Provides: %{?scl_prefix}%{pkg_name}-devel = %{version}-%{release} +Obsoletes: %{?scl_prefix}%{pkg_name}-devel < 2.6 +%{?scl:Requires:%scl_runtime} + +%description -n %{scl}-lib%{pkg_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: %{?scl_v8_mongodb_prefix}v8 +%if 0%{?rhel} >= 7 +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%else +Requires(post): chkconfig +Requires(preun): chkconfig +Requires(postun): initscripts +%endif +%{?scl:Requires:%scl_runtime} + +%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 +%patch12 -p1 -b .paths + +# copy them (we will change their content) +cp %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} %{SOURCE5} \ + %{SOURCE6} %{SOURCE7} %{SOURCE8} %{SOURCE9} %{SOURCE10} ./ + +for f in %{SOURCE4} %{SOURCE8}; do + sed -i -r -e 's|/usr/bin|%{_bindir}|g' \ + -e 's|(/var/run/mongodb)|%{?_scl_root}\1|g' \ + -e 's|(/var/log/)(mongodb)|\1%{?scl_prefix}\2|g' \ + -e 's|/etc(/mongodb(-shard)?\.conf)|%{?_sysconfdir}\1|g' \ + -e 's|/etc(/sysconfig)|%{?_sysconfdir}\1|g' \ + -e 's|(/var/lock)|%{?_scl_root}\1|g' \ + -e 's|__SCL_SCRIPTS__|%{?_scl_scripts}|g' \ + -e "s|__list of scls__|\$$(printf '%%s' '%{scl}' | + tr '[:lower:][:space:]' '[:upper:]_')_SCLS_ENABLED|g" \ + "$(basename "$f")" +done + +sed -i -r -e "s|(/var/log/)(mongodb)|\1%{?scl_prefix}\2|g" \ + -e "s|(/var/run/mongodb)|%{?_scl_root}\1|g" \ + "$(basename %{SOURCE2})" + +for f in %{SOURCE3} %{SOURCE7}; do + sed -i -r -e 's|(/var/lib/mongodb)|%{?_scl_root}\1|g' \ + -e 's|(/var/run/mongodb)|%{?_scl_root}\1|g' \ + -e 's|(/var/log/)(mongodb)|\1%{?scl_prefix}\2|g' \ + "$(basename "$f")" +done + +for f in %{SOURCE6} %{SOURCE10}; do + sed -i -r -e 's|/etc(/mongodb(-shard)?\.conf)|%{_sysconfdir}\1|g' \ + "$(basename "$f")" +done + +sed -i -r -e 's|(/run/mongodb)|%{?_scl_root}/var/\1|g' \ + "$(basename %{SOURCE1})" + +for f in %{SOURCE5} %{SOURCE9}; do + #FIXME check if the _SCLS_ENABLED var isn't empty! + sed -i -r -e 's|(/var/run/mongodb)|%{?_scl_root}\1|g' \ + -e 's|/etc(/sysconfig/mongodb)|%{_sysconfdir}\1|g' \ + -e 's|/usr/bin(/mongo[ds])|%{_bindir}\1|g' \ + -e 's|__SCL_SCRIPTS__|%{?_scl_scripts}|g' \ + -e "s|__list of scls__|\$$(printf '%%s' '%{scl}' | + tr '[:lower:][:space:]' '[:upper:]_')_SCLS_ENABLED|g" \ + "$(basename "$f")" +done + +# 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 + +# prefix client library with %{scl_prefix}%{version} +(pre='EnsureSConsVersion(2, 3, 0)' +post='sharedLibEnv.AppendUnique(SHLIBVERSION="%{?scl_prefix}%{version}")' +sed -i -r \ + -e "s|([[:space:]]*)(sharedLibEnv *= *env.Clone.*)|\1$pre\n\1\2\n\1$post|" \ + -e "s|(sharedLibEnv.)Install *\(|\1InstallVersionedLib(|" \ + src/SConscript.client) + +#FIXME hack the mongodb build system to provide +# /usr/lib64/mysql/libmysqlclient.so.mysql55-18 +# /usr/lib64/mysql/libmysqlclient.so.mysql55-18.0.0 +# => here change SConscript.client +# in install + +%build +# NOTE: Build flags must be EXACTLY the same in the install step! +# If you fail to do this, mongodb will be built twice... +%{?scl:scl enable %{scl} - << "EOF"} +# see add_option() calls in SConstruct for options +scons \ + %{?_smp_mflags} \ + --sharedclient \ + --use-system-all \ + --prefix=%{buildroot}%{_prefix} \ + --extrapath=%{_prefix} \ + --usev8 \ + --nostrip \ + --ssl \ + --full \ + --debug=findlibs \ + --d +%{?scl:EOF} + +%install +# NOTE: Install flags must be EXACTLY the same in the build step! +# If you fail to do this, mongodb will be built twice... +%{?scl:scl enable %{scl} - << "EOF"} +scons install \ + %{?_smp_mflags} \ + --sharedclient \ + --use-system-all \ + --prefix=%{buildroot}%{_prefix} \ + --extrapath=%{_prefix} \ + --usev8 \ + --nostrip \ + --ssl \ + --full \ + --debug=findlibs \ + --d +# --libpath=%{_libdir} \ +%{?scl:EOF} +rm -f %{buildroot}%{_libdir}/libmongoclient.a +rm -f %{buildroot}%{_libdir}/../lib/libmongoclient.a + +# TODO EPEL 4 & 5 expands to %{_prefix}/com, otherwise to /var/lib +#mkdir -p %{buildroot}%{_sharedstatedir}/%{pkg_name} +mkdir -p %{buildroot}%{_localstatedir}/lib/%{pkg_name} +mkdir -p %{buildroot}%{_root_localstatedir}/log/%{?scl_prefix}%{pkg_name} +mkdir -p %{buildroot}%{_localstatedir}/run/%{pkg_name} +mkdir -p %{buildroot}%{_sysconfdir}/sysconfig + +%if 0%{?rhel} >= 7 +install -p -D -m 644 "$(basename %{SOURCE1})" %{buildroot}%{_libdir}/../lib/tmpfiles.d/%{?scl_prefix}%{pkg_name}.conf +install -p -D -m 644 "$(basename %{SOURCE5})" %{buildroot}%{_unitdir}/%{?scl_prefix}%{pkg_name}.service +install -p -D -m 644 "$(basename %{SOURCE9})" %{buildroot}%{_unitdir}/%{?scl_prefix}%{pkg_name}-shard.service +%else +install -p -D -m 755 "$(basename %{SOURCE4})" %{buildroot}%{_root_initddir}/%{?scl_prefix}%{pkg_name} +install -p -D -m 755 "$(basename %{SOURCE8})" %{buildroot}%{_root_initddir}/%{?scl_prefix}%{pkg_name}-shard +%endif +install -p -D -m 644 "$(basename %{SOURCE2})" %{buildroot}%{?scl:%_root_sysconfdir}%{!?scl:%_sysconfdir}/logrotate.d/%{?scl_prefix}%{pkg_name} +install -p -D -m 644 "$(basename %{SOURCE3})" %{buildroot}%{_sysconfdir}/%{pkg_name}.conf +install -p -D -m 644 "$(basename %{SOURCE7})" %{buildroot}%{_sysconfdir}/%{pkg_name}-shard.conf +install -p -D -m 644 "$(basename %{SOURCE6})" %{buildroot}%{_sysconfdir}/sysconfig/%{pkg_name} +install -p -D -m 644 "$(basename %{SOURCE10})" %{buildroot}%{_sysconfdir}/sysconfig/%{pkg_name}-shard + +install -d -m 755 %{buildroot}%{_mandir}/man1 +install -p -m 644 debian/*.1 %{buildroot}%{_mandir}/man1/ + + +%post -p /sbin/ldconfig + + +%postun -p /sbin/ldconfig + + +%pre server +getent group %{pkg_name} >/dev/null || groupadd -r %{pkg_name} +getent passwd %{pkg_name} >/dev/null || \ +# TODO _sharedstatedir +useradd -r -g %{pkg_name} -u 184 -d %{_localstatedir}/lib/%{pkg_name} -s /sbin/nologin \ +-c "MongoDB Database Server" %{pkg_name} +exit 0 + + +%post server +%if 0%{?rhel} >= 7 + # https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Systemd + %tmpfiles_create %{?scl_prefix}%{pkg_name}.conf + # daemon-reload + %systemd_postun +%else + /sbin/chkconfig --add %{?scl_prefix}%{pkg_name} + /sbin/chkconfig --add %{?scl_prefix}%{pkg_name}-shard +%endif + +# work-around for RHBZ#924044 +%if 0%{?rhel} < 7 +restorecon -R %{_scl_root} >/dev/null 2>&1 || : +restorecon -R %{_root_localstatedir}/log/%{?scl_prefix}%{pkg_name} >/dev/null 2>&1 || : +restorecon %{_root_initddir}/%{?scl_prefix}%{pkg_name} >/dev/null 2>&1 || : +restorecon %{_root_initddir}/%{?scl_prefix}%{pkg_name}-shard >/dev/null 2>&1 || : +%endif + +# FIXME set the SELinux context up and make it permanent +#chcon --reference /tmp /var/lib/%{pkg_name}/tmp +#chcon --reference /var/lib/%{pkg_name} tmp +##/usr/sbin/semanage fcontext -a -t mongod_db_t "/var/lib/%{pkg_name}/tmp(/.*)?" +# FIXME wtf? +#restorecon -R -v /var/lib/mysql + +%preun server +if [ "$1" = 0 ]; then +%if 0%{?rhel} >= 7 + # --no-reload disable; stop + %systemd_preun %{?scl_prefix}%{pkg_name}.service + %systemd_preun %{?scl_prefix}%{pkg_name}-shard.service +%else + /sbin/service %{?scl_prefix}%{pkg_name} stop >/dev/null 2>&1 + /sbin/service %{?scl_prefix}%{pkg_name}-shard stop >/dev/null 2>&1 + /sbin/chkconfig --del %{?scl_prefix}%{pkg_name} + /sbin/chkconfig --del %{?scl_prefix}%{pkg_name}-shard +%endif +fi + + +%postun server +%if 0%{?rhel} >= 7 + # daemon-reload + %systemd_postun +%endif +if [ "$1" -ge 1 ]; then +%if 0%{?rhel} >= 7 + # try-restart + %systemd_postun_with_restart %{?scl_prefix}%{pkg_name}.service + %systemd_postun_with_restart %{?scl_prefix}%{pkg_name}-shard.service +%else + /sbin/service %{?scl_prefix}%{pkg_name} condrestart >/dev/null 2>&1 || : + /sbin/service %{?scl_prefix}%{pkg_name}-shard 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 %{scl}-lib%{pkg_name} +%doc README GNU-AGPL-3.0.txt APACHE-2.0.txt +%{_libdir}/libmongoclient.so.%{?scl_prefix}%{version} + +# usually contains ln -s /usr/lib/ lib.so +%files -n %{scl}-lib%{pkg_name}-devel +%{_includedir} + +%files server +%{_bindir}/mongod +%{_bindir}/mongos +%{_mandir}/man1/mongod.1* +%{_mandir}/man1/mongos.1* +# TODO +#%dir %attr(0750, %{pkg_name}, root) %{_sharedstatedir}/%{pkg_name} +%dir %attr(0750, %{pkg_name}, root) %{_localstatedir}/lib/%{pkg_name} +%dir %attr(0750, %{pkg_name}, root) %{_root_localstatedir}/log/%{?scl_prefix}%{pkg_name} +%dir %attr(0750, %{pkg_name}, root) %{_localstatedir}/run/%{pkg_name} +%config(noreplace) %{?scl:%_root_sysconfdir}%{!?scl:%_sysconfdir}/logrotate.d/%{?scl_prefix}%{pkg_name} +%config(noreplace) %{_sysconfdir}/%{pkg_name}.conf +%config(noreplace) %{_sysconfdir}/%{pkg_name}-shard.conf +%config(noreplace) %{_sysconfdir}/sysconfig/%{pkg_name} +%config(noreplace) %{_sysconfdir}/sysconfig/%{pkg_name}-shard +%if 0%{?rhel} >= 7 +%{_unitdir}/*.service +%{_libdir}/../lib/tmpfiles.d/%{?scl_prefix}%{pkg_name}.conf +%else +%{_root_initddir}/%{?scl_prefix}%{pkg_name} +%{_root_initddir}/%{?scl_prefix}%{pkg_name}-shard +%endif + +%changelog +* Mon Mar 31 2014 Honza Horak - 2.4.9-8 +- Fix unix socket path in config file + Related: #1057097 + +* Mon Mar 31 2014 Honza Horak - 2.4.9-7 +- Fix configuration of shard server so it is at least run-able + Related: #1057097 + +* Mon Mar 31 2014 Honza Horak - 2.4.9-6 +- Require existing package + Related: #1075688 + +* Tue Mar 25 2014 Jan Pacner - 2.4.9-5 +- Resolves: #1075736 (initscript doesnt respect LSB) +- Resolves: #1057097 (Use the same name for daemon and log file) +- Resolves: #1075688 (metapackage shouldnt depend on another metapackage) +- Resolves: #1075025 (Leftovers files after mongodb packages removal) + +* Mon Feb 17 2014 Honza Horak - 2.4.9-4 +- Rebase due libunwind soname prefix + Related: #1042874 + +* Mon Jan 20 2014 Jan Pacner - 2.4.9-3 +- Related: #1055555 (add -scldevel subpackage for shipped build-requires garbage) +- fix installed dirs permissions + +* Fri Jan 17 2014 Honza Horak - 2.4.9-2 +- Rebuild for gperftools + Related: #1039927 + +* Wed Jan 15 2014 Jan Pacner - 2.4.9 +- Resolves: RHBZ#1051746 (update to mongodb-2.4.9) + +* Mon Jan 13 2014 Honza Horák - 2.4.8-6 +- Rebild for prefixed libsnappy + Related: RHBZ#1049403 + +* Thu Dec 19 2013 Jan Pacner - 2.4.8-5 +- Related: #1042874 (non-namespaced RPM provides and libraries) + +* Tue Dec 17 2013 Jan Pacner - 2.4.8-4 +- Resolves: #1039038 (additional forking of mongod) +- change log placement to be consistent with other SCLs + +* Thu Nov 28 2013 Jan Pacner - 2.4.8-3 +- removed scl-source; fixed pid file path + +* Wed Nov 27 2013 Honza Horak - 2.4.8-2 +- Run restore context as work-around for #924044 +- remove scl-source (no more needed) + +* Thu Nov 21 2013 Jan Pacner - 2.4.8-1 +- new upstream release +- fix sed arguments +- patch cleanup (BSON patch not needed any more) +- rename lib subpackages to match the scl_prefix-libpkg_name pattern +- change v8 dependency to a shared one from external SCL +- use system pkg for snappy if present (i.e. on RHEL7) +- auto-generate list of scls in systemd unit file + +* Mon Nov 18 2013 Jan Pacner - 2.4.6-3 +- fix double --quiet option in init script; fix bad sed pattern +- fix libmongodb bad prefix +- fix scl-service installation +- log path mismatches fixed + +* Fri Oct 25 2013 Jan Pacner - 2.4.6-2 +- make sysconf options being respected +- fix sourceX files installation in % install + +* Mon Oct 14 2013 Jan Pacner - 2.4.6-1 +- Modified for SCL (software collection) mongodb24 + +* Wed Aug 21 2013 Troy Dawson - 2.4.6-1 +- Updated to 2.4.6 +- Added Requires: v8 (#971595) + +* Sun Jul 28 2013 Petr Machata - 2.4.5-6 +- Rebuild for boost 1.54.0 + +* Sat Jul 27 2013 pmachata@redhat.com - 2.4.5-5 +- Rebuild for boost 1.54.0 + +* Fri Jul 12 2013 Troy Dawson - 2.4.5-4 +- Added Provides: mongodb-devel to libmongodb-devel + +* Fri Jul 12 2013 Troy Dawson - 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 - 2.4.5-2 +- Updated arm patches to work with 2.4.x + +* Mon Jul 08 2013 Troy Dawson - 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 - 2.4.4-4 +- Added patch to make mongodb compile with gcc 4.8 + +* Wed Jul 03 2013 Johan Hedin - 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 - 2.4.4-2 +- Turn on hardened build (#958014) +- Apply patch to accept env flags + +* Sun Jun 30 2013 Johan Hedin - 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 - 2.2.4-2 +- Updated patch to work on both ARMv5 and ARMv7 (#921226) + +* Thu May 02 2013 Troy Dawson - 2.2.4-1 +- Bumped version up to 2.2.4 +- Refreshed all patches to 2.2.4 + +* Fri Apr 26 2013 David Marlin - 2.2.3-5 +- Patch to build on ARM (#921226) + +* Wed Mar 27 2013 Troy Dawson - 2.2.3-4 +- Fix for CVE-2013-1892 + +* Sun Feb 10 2013 Denis Arnaud - 2.2.3-3 +- Rebuild for Boost-1.53.0 + +* Sat Feb 09 2013 Denis Arnaud - 2.2.3-2 +- Rebuild for Boost-1.53.0 + +* Tue Feb 05 2013 Troy Dawson - 2.2.3-1 +- Update to version 2.2.3 + +* Mon Jan 07 2013 Troy Dawson - 2.2.2-2 +- remove duplicate headers (#886064) + +* Wed Dec 05 2012 Troy Dawson - 2.2.2-1 +- Updated to version 2.2.2 + +* Tue Nov 27 2012 Troy Dawson - 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 - 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 - 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 - 2.2.0-6 +- full flag patch to get 32 bit builds to work + +* Tue Oct 02 2012 Troy Dawson - 2.2.0-5 +- shared libraries patch +- Fix up minor %%files issues + +* Fri Sep 28 2012 Troy Dawson - 2.2.0-4 +- Fix spec files problems + +* Fri Sep 28 2012 Troy Dawson - 2.2.0-3 +- Updated patch to use system libraries +- Update init script to use a pidfile + +* Thu Sep 27 2012 Troy Dawson - 2.2.0-2 +- Added patch to use system libraries + +* Wed Sep 19 2012 Troy Dawson - 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 - 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 - 2.0.6-3 +- Remove EL5 support +- Add patch to use boost-filesystem version 3 + +* Wed Aug 01 2012 Nathaniel McCallum - 2.0.6-2 +- Don't apply fix-xtime patch on EL5 + +* Wed Aug 01 2012 Nathaniel McCallum - 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 - 2.0.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Apr 17 2012 Nathaniel McCallum - 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 - 2.0.2-10 +- Rebuilt for c++ ABI breakage + +* Fri Feb 10 2012 Petr Pisar - 2.0.2-9 +- Rebuild against PCRE 8.30 + +* Fri Feb 03 2012 Nathaniel McCallum - 2.0.2-8 +- Disable HTTP interface by default (#752331) + +* Fri Feb 03 2012 Nathaniel McCallum - 2.0.2-7 +- Enable journaling by default (#656112) +- Remove BuildRequires on unittest (#755081) + +* Fri Feb 03 2012 Nathaniel McCallum - 2.0.2-6 +- Clean up mongodb-src-r2.0.2-js.patch and fix #787246 + +* Tue Jan 17 2012 Nathaniel McCallum - 2.0.2-5 +- Enable build using external snappy + +* Tue Jan 17 2012 Nathaniel McCallum - 2.0.2-4 +- Patch buildsystem for building on older pythons (RHEL5) + +* Mon Jan 16 2012 Nathaniel McCallum - 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 - 2.0.2-2 +- Add pkg-config enablement patch + +* Sat Jan 14 2012 Nathaniel McCallum - 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 - 1.8.2-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Sun Nov 20 2011 Chris Lalancette - 1.8.2-10 +- Rebuild for rawhide boost update + +* Thu Sep 22 2011 Chris Lalancette - 1.8.2-9 +- Copy the right source file into place for tmpfiles.d + +* Tue Sep 20 2011 Chris Lalancette - 1.8.2-8 +- Add a tmpfiles.d file to create the /var/run/mongodb subdirectory + +* Mon Sep 12 2011 Chris Lalancette - 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 - 1.8.2-6 +- BZ 725601 - fix the javascript engine to not hang (thanks to Eduardo Habkost) + +* Mon Jul 25 2011 Chris Lalancette - 1.8.2-5 +- Fixes to post server, preun server, and postun server to use systemd + +* Thu Jul 21 2011 Chris Lalancette - 1.8.2-4 +- Update to use systemd init + +* Thu Jul 21 2011 Chris Lalancette - 1.8.2-3 +- Rebuild for boost ABI break + +* Wed Jul 13 2011 Chris Lalancette - 1.8.2-2 +- Make mongodb-devel require boost-devel (BZ 703184) + +* Fri Jul 01 2011 Chris Lalancette - 1.8.2-1 +- Update to upstream 1.8.2 +- Add patch to ignore TERM + +* Fri Jul 01 2011 Chris Lalancette - 1.8.0-3 +- Bump release to build against new boost package + +* Sat Mar 19 2011 Nathaniel McCallum - 1.8.0-2 +- Make mongod bind only to 127.0.0.1 by default + +* Sat Mar 19 2011 Nathaniel McCallum - 1.8.0-1 +- Update to 1.8.0 +- Remove upstreamed nonce patch + +* Wed Feb 16 2011 Nathaniel McCallum - 1.7.5-5 +- Add nonce patch + +* Sun Feb 13 2011 Nathaniel McCallum - 1.7.5-4 +- Manually define to use boost-fs v2 + +* Sat Feb 12 2011 Nathaniel McCallum - 1.7.5-3 +- Disable extra warnings + +* Fri Feb 11 2011 Nathaniel McCallum - 1.7.5-2 +- Disable compilation errors on warnings + +* Fri Feb 11 2011 Nathaniel McCallum - 1.7.5-1 +- Update to 1.7.5 +- Remove CPPFLAGS override +- Added libmongodb package + +* Tue Feb 08 2011 Fedora Release Engineering - 1.6.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Dec 06 2010 Nathaniel McCallum - 1.6.4-3 +- Add post/postun ldconfig... oops! + +* Mon Dec 06 2010 Nathaniel McCallum - 1.6.4-2 +- Enable --sharedclient option, remove static lib + +* Sat Dec 04 2010 Nathaniel McCallum - 1.6.4-1 +- New upstream release + +* Fri Oct 08 2010 Nathaniel McCallum - 1.6.3-4 +- Put -fPIC onto both the build and install scons calls + +* Fri Oct 08 2010 Nathaniel McCallum - 1.6.3-3 +- Define _initddir when it doesn't exist for el5 and others + +* Fri Oct 08 2010 Nathaniel McCallum - 1.6.3-2 +- Added -fPIC build option which was dropped by accident + +* Thu Oct 7 2010 Ionuț C. Arțăriși - 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 - 1.6.2-2 +- added ExcludeArch for ppc + +* Fri Sep 3 2010 Ionuț C. Arțăriși - 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 - 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 - 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 - 1.4.3-2 +- added explicit js requirement +- changed some names + +* Wed May 26 2010 Ionuț C. Arțăriși - 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 - 1.0.0-3 +- fixed libpath issue for 64bit systems + +* Thu Oct 1 2009 Ionuț Arțăriși - 1.0.0-2 +- added virtual -static package + +* Mon Aug 31 2009 Ionuț Arțăriși - 1.0.0-1 +- Initial release.