[mongodb] Update to 2.4.5 (#979784)

tdawson tdawson at fedoraproject.org
Fri Jul 12 21:38:09 UTC 2013


commit 4c7a79895bbcd712e117dfb82019b60c09354661
Author: Troy Dawson <tdawson at redhat.com>
Date:   Fri Jul 12 16:37:57 2013 -0500

    Update to 2.4.5 (#979784)

 .gitignore                                         |    1 +
 mongodb-2.2.4-boost-filesystem3.patch              |  285 --------------------
 mongodb-2.2.4-fix-xtime.patch                      |  102 -------
 mongodb-2.2.4-full-flag.patch                      |   13 -
 mongodb-2.2.4-no-term.patch                        |   12 -
 mongodb-2.2.4-shared-library.patch                 |   13 -
 ...rm-atomics.patch => mongodb-2.4.5-atomics.patch |   26 +-
 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 +++
 ...patch => mongodb-2.4.5-use-system-version.patch |   11 +-
 mongodb.init                                       |   78 ++++++-
 mongodb.spec                                       |  203 ++++++++-------
 sources                                            |    2 +-
 17 files changed, 653 insertions(+), 538 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index a6d3ae0..fd10005 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,4 @@
 /mongodb-src-r2.2.2.tar.gz
 /mongodb-src-r2.2.3.tar.gz
 /mongodb-src-r2.2.4.tar.gz
+/mongodb-src-r2.4.5.tar.gz
diff --git a/mongodb-2.2.4-arm-atomics.patch b/mongodb-2.4.5-atomics.patch
similarity index 76%
rename from mongodb-2.2.4-arm-atomics.patch
rename to mongodb-2.4.5-atomics.patch
index 3a42514..1458a36 100644
--- a/mongodb-2.2.4-arm-atomics.patch
+++ b/mongodb-2.4.5-atomics.patch
@@ -1,6 +1,6 @@
-diff -upr mongodb-src-r2.2.4.orig/src/mongo/bson/util/atomic_int.h mongodb-src-r2.2.4/src/mongo/bson/util/atomic_int.h
---- mongodb-src-r2.2.4.orig/src/mongo/bson/util/atomic_int.h	2013-03-31 21:41:49.000000000 -0500
-+++ mongodb-src-r2.2.4/src/mongo/bson/util/atomic_int.h	2013-05-04 08:29:04.787000000 -0500
+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"
@@ -41,10 +41,10 @@ diff -upr mongodb-src-r2.2.4.orig/src/mongo/bson/util/atomic_int.h mongodb-src-r
  #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 -upr mongodb-src-r2.2.4.orig/src/mongo/platform/atomic_intrinsics_gcc.h mongodb-src-r2.2.4/src/mongo/platform/atomic_intrinsics_gcc.h
---- mongodb-src-r2.2.4.orig/src/mongo/platform/atomic_intrinsics_gcc.h	2013-03-31 21:41:49.000000000 -0500
-+++ mongodb-src-r2.2.4/src/mongo/platform/atomic_intrinsics_gcc.h	2013-05-04 08:29:04.780000000 -0500
-@@ -14,16 +14,56 @@
+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 @@
   */
  
  /**
@@ -85,6 +85,10 @@ diff -upr mongodb-src-r2.2.4.orig/src/mongo/platform/atomic_intrinsics_gcc.h mon
 +            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);
 +        }
@@ -103,16 +107,16 @@ diff -upr mongodb-src-r2.2.4.orig/src/mongo/platform/atomic_intrinsics_gcc.h mon
      /**
       * Instantiation of AtomicIntrinsics<> for all word types T where sizeof<T> <= sizeof(void *).
       *
-@@ -159,4 +199,6 @@ namespace mongo {
+@@ -163,4 +207,6 @@ namespace mongo {
          ~AtomicIntrinsics();
      };
  
 +#endif // GCC_VERSION >= 40700
 +
  }  // namespace mongo
-diff -upr mongodb-src-r2.2.4.orig/src/mongo/platform/bits.h mongodb-src-r2.2.4/src/mongo/platform/bits.h
---- mongodb-src-r2.2.4.orig/src/mongo/platform/bits.h	2013-03-31 21:41:49.000000000 -0500
-+++ mongodb-src-r2.2.4/src/mongo/platform/bits.h	2013-05-04 08:29:04.781000000 -0500
+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)
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.2.4-use-system-version.patch b/mongodb-2.4.5-use-system-version.patch
similarity index 80%
rename from mongodb-2.2.4-use-system-version.patch
rename to mongodb-2.4.5-use-system-version.patch
index 3f9ec2d..638b8f0 100644
--- a/mongodb-2.2.4-use-system-version.patch
+++ b/mongodb-2.4.5-use-system-version.patch
@@ -1,7 +1,7 @@
-diff -urp mongodb-src-r2.2.4.orig/SConstruct mongodb-src-r2.2.4/SConstruct
---- mongodb-src-r2.2.4.orig/SConstruct	2013-05-02 14:59:37.226000000 -0500
-+++ mongodb-src-r2.2.4/SConstruct	2013-05-02 15:04:25.164000000 -0500
-@@ -249,7 +249,7 @@ def printLocalInfo():
+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()
  
@@ -10,7 +10,7 @@ diff -urp mongodb-src-r2.2.4.orig/SConstruct mongodb-src-r2.2.4/SConstruct
  
  onlyServer = len( COMMAND_LINE_TARGETS ) == 0 or ( len( COMMAND_LINE_TARGETS ) == 1 and str( COMMAND_LINE_TARGETS[0] ) in [ "mongod" , "mongos" , "test" ] )
  nix = False
-@@ -791,6 +791,28 @@ def doConfigure(myenv):
+@@ -805,6 +805,28 @@
              print( "c++ compiler not installed!" )
              Exit(1)
  
@@ -39,4 +39,3 @@ diff -urp mongodb-src-r2.2.4.orig/SConstruct mongodb-src-r2.2.4/SConstruct
      if use_system_version_of_library("boost"):
          if not conf.CheckCXXHeader( "boost/filesystem/operations.hpp" ):
              print( "can't find boost headers" )
-Only in mongodb-src-r2.2.4: SConstruct.orig
diff --git a/mongodb.init b/mongodb.init
index 0477bb7..488e7f6 100644
--- a/mongodb.init
+++ b/mongodb.init
@@ -2,7 +2,7 @@
 #
 # mongodb      init file for starting up the MongoDB server
 #
-# chkconfig:   - 20 80
+# chkconfig:   - 90 10
 # description: Starts and stops the MongDB daemon that handles all \
 #              database requests.
 
@@ -19,6 +19,80 @@ options="$MONGODB_OPTIONS -f /etc/mongodb.conf"
 
 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: "
@@ -31,7 +105,7 @@ start() {
 
 stop() {
     echo -n $"Stopping $prog: "
-    killproc -p ${pidfile} $prog
+    killproc_nice -p ${pidfile} -d 300 $prog
     retval=$?
     echo
     [ $retval -eq 0 ] && rm -f $lockfile
diff --git a/mongodb.spec b/mongodb.spec
index 678065c..40fa6dc 100644
--- a/mongodb.spec
+++ b/mongodb.spec
@@ -1,8 +1,8 @@
 %global daemon mongod
 
 Name:           mongodb
-Version:        2.2.4
-Release:        2%{?dist}
+Version:        2.4.5
+Release:        3%{?dist}
 Summary:        High-performance, schema-free document-oriented database
 Group:          Applications/Databases
 License:        AGPLv3 and zlib and ASL 2.0
@@ -18,23 +18,24 @@ Source3:        %{name}.conf
 Source4:        %{daemon}.sysconf
 Source5:        %{name}-tmpfile
 Source6:        %{daemon}.service
-Patch1:         mongodb-2.2.4-no-term.patch
-##Patch 5 - https://jira.mongodb.org/browse/SERVER-6686
-Patch5:         mongodb-2.2.4-fix-xtime.patch
-%if 0%{?el6} == 0
-##Patch 6 - https://jira.mongodb.org/browse/SERVER-4314
-Patch6:         mongodb-2.2.4-boost-filesystem3.patch
-%endif
-##Patch 7 - make it possible to use system libraries
-Patch7:         mongodb-2.2.4-use-system-version.patch
-##Patch 8 - make it possible to build shared libraries
-Patch8:         mongodb-2.2.4-shared-library.patch
-##Patch 9 - https://jira.mongodb.org/browse/SERVER-5575
-Patch9:         mongodb-2.2.4-full-flag.patch
-##Patch 11 - Support atomics, needed for ARM
-Patch11:        mongodb-2.2.4-arm-atomics.patch
-
-BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+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
 
 BuildRequires:  python-devel
 BuildRequires:  scons
@@ -46,25 +47,10 @@ BuildRequires:  readline-devel
 BuildRequires:  libpcap-devel
 BuildRequires:  snappy-devel
 BuildRequires:  gperftools-devel
-
 %if 0%{?fedora} >= 15
-Requires(post): systemd-units
-Requires(preun): systemd-units
-%else
-Requires(post): chkconfig
-Requires(preun): chkconfig
+BuildRequires:  systemd
 %endif
 
-Requires(pre):  shadow-utils
-
-%if 0%{?fedora} >= 15
-Requires(postun): systemd-units
-%else
-Requires(postun): initscripts
-%endif
-
-Requires:       lib%{name} = %{version}-%{release}
-
 # Mongodb must run on a little-endian CPU (see bug #630898)
 ExcludeArch:    ppc ppc64 %{sparc} s390 s390x
 
@@ -93,20 +79,30 @@ Group:          Development/Libraries
 %description -n lib%{name}
 This package provides the shared library for the MongoDB client.
 
-%package devel
+%package -n lib%{name}-devel
 Summary:        MongoDB header files
 Group:          Development/Libraries
 Requires:       lib%{name} = %{version}-%{release}
 Requires:       boost-devel
+Obsoletes:      mongodb-devel < 2.4
 
-%description devel
+%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:       %{name} = %{version}-%{release}
+Requires(pre):  shadow-utils
+%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
@@ -116,16 +112,13 @@ software, default configuration files, and init scripts.
 %prep
 %setup -q -n mongodb-src-r%{version}
 %patch1 -p1
+%patch2 -p1
 %patch5 -p1
-%if 0%{?el6} == 0
 %patch6 -p1
-%endif
 %patch7 -p1
 %patch8 -p1
-%ifarch %ix86 %{arm}
-%patch9 -p1
-%endif
-%patch11 -p1 -b .atomics
+%patch10 -p1 -b .atomics
+%patch11 -p1 -b .type
 
 # spurious permissions
 chmod -x README
@@ -133,36 +126,39 @@ 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
+        %{?_smp_mflags} \
+        --sharedclient \
+        --use-system-all \
+        --prefix=%{buildroot}%{_prefix} \
+        --extrapath=%{_prefix} \
+        --usev8 \
+        --nostrip \
+        --ssl \
+        --full
 
 %install
-rm -rf %{buildroot}
 # 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
+        %{?_smp_mflags} \
+        --sharedclient \
+        --use-system-all \
+        --prefix=%{buildroot}%{_prefix} \
+        --extrapath=%{_prefix} \
+        --usev8 \
+        --nostrip \
+        --ssl \
+        --full
 rm -f %{buildroot}%{_libdir}/libmongoclient.a
-rm -f %{buildroot}/usr/lib/libmongoclient.a
+rm -f %{buildroot}%{_libdir}/../lib/libmongoclient.a
 
 mkdir -p %{buildroot}%{_sharedstatedir}/%{name}
 mkdir -p %{buildroot}%{_localstatedir}/log/%{name}
@@ -170,9 +166,9 @@ mkdir -p %{buildroot}%{_localstatedir}/run/%{name}
 mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
 
 %if 0%{?fedora} >= 15
-mkdir -p %{buildroot}/lib/systemd/system
+mkdir -p %{buildroot}%{_unitdir}
 install -p -D -m 644 %{SOURCE5} %{buildroot}%{_libdir}/../lib/tmpfiles.d/mongodb.conf
-install -p -D -m 644 %{SOURCE6} %{buildroot}/lib/systemd/system/%{daemon}.service
+install -p -D -m 644 %{SOURCE6} %{buildroot}%{_unitdir}/%{daemon}.service
 %else
 install -p -D -m 755 %{SOURCE1} %{buildroot}%{_initddir}/%{daemon}
 %endif
@@ -185,20 +181,6 @@ cp -p debian/*.1 %{buildroot}%{_mandir}/man1/
 
 mkdir -p %{buildroot}%{_localstatedir}/run/%{name}
 
-# In mongodb 2.2.2 we have duplicate headers
-#  Everything should be in %{_includedir}/mongo
-#  but it is almost all duplicated in %{_includedir}
-#  which could potentially conflict
-#  or cause problems.
-mkdir -p %{buildroot}/%{name}-hold
-mv %{buildroot}/%{_includedir}/mongo %{buildroot}/%{name}-hold/mongo
-rm -rf %{buildroot}/%{_includedir}/*
-mv %{buildroot}/%{name}-hold/mongo %{buildroot}/%{_includedir}/mongo
-rm -rf %{buildroot}/%{name}-hold
-
-%clean
-rm -rf %{buildroot}
-
 %post -p /sbin/ldconfig
 
 %postun -p /sbin/ldconfig
@@ -212,6 +194,7 @@ 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}
@@ -224,7 +207,7 @@ if [ $1 = 0 ] ; then
   /bin/systemctl --no-reload disable %{daemon}.service &> /dev/null
   /bin/systemctl stop %{daemon}.service &> /dev/null
 %else
-  /sbin/service  stop >/dev/null 2>&1
+  /sbin/service %{daemon} stop >/dev/null 2>&1
   /sbin/chkconfig --del %{daemon}
 %endif
 fi
@@ -244,7 +227,6 @@ fi
 
 
 %files
-%defattr(-,root,root,-)
 %{_bindir}/bsondump
 %{_bindir}/mongo
 %{_bindir}/mongodump
@@ -254,27 +236,28 @@ fi
 %{_bindir}/mongooplog
 %{_bindir}/mongoperf
 %{_bindir}/mongorestore
-%{_bindir}/mongostat
 %{_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/mongorestore.1*
-%{_mandir}/man1/bsondump.1*
+%{_mandir}/man1/mongotop.1*
 
 %files -n lib%{name}
-%defattr(-,root,root,-)
 %doc README GNU-AGPL-3.0.txt APACHE-2.0.txt
 %{_libdir}/libmongoclient.so
 
 %files server
-%defattr(-,root,root,-)
 %{_bindir}/mongod
 %{_bindir}/mongos
 %{_mandir}/man1/mongod.1*
@@ -286,19 +269,53 @@ fi
 %config(noreplace) %{_sysconfdir}/mongodb.conf
 %config(noreplace) %{_sysconfdir}/sysconfig/%{daemon}
 %if 0%{?fedora} >= 15
-/lib/systemd/system/*.service
+%{_unitdir}/*.service
 %{_libdir}/../lib/tmpfiles.d/mongodb.conf
 %else
 %{_initddir}/%{daemon}
 %endif
 
-%{_mandir}/man1/mongod.1*
-
-%files devel
-%defattr(-,root,root,-)
+%files -n lib%{name}-devel
 %{_includedir}
 
 %changelog
+* 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)
 
@@ -348,7 +365,7 @@ fi
 
 * Tue Oct 02 2012 Troy Dawson <tdawson at redhat.com> - 2.2.0-5
 - shared libraries patch
-- Fix up minor %files issues
+- Fix up minor %%files issues
 
 * Fri Sep 28 2012 Troy Dawson <tdawson at redhat.com> - 2.2.0-4
 - Fix spec files problems
diff --git a/sources b/sources
index b42e126..f01efe7 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-033354c543c053f5d539b573ac8c28b0  mongodb-src-r2.2.4.tar.gz
+de629f865449d3c75b767054fde27549  mongodb-src-r2.4.5.tar.gz


More information about the scm-commits mailing list