File pion-net-boost-compatibility.patch of Package pion-net

Update the sources to use Boost Filesystems version 3. Version 2 is obsolete.

Author: Jan Vcelak <jvcelak@redhat.com>

diff - a/common/build/pion-boost.inc b/common/build/pion-boost.inc
--- a/common/build/pion-boost.inc
+++ b/common/build/pion-boost.inc
@@ -5,7 +5,7 @@
 # Check for Boost
 AX_BOOST_BASE([1.35])
 # AC_MSG_NOTICE(Boost home directory: $BOOST_HOME_DIR)
-CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS -DBOOST_FILESYSTEM_VERSION=2"
+CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
 LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
 
 # Check for Boost library extension
diff -u a/common/src/PionPlugin.cpp b/common/src/PionPlugin.cpp
--- a/common/src/PionPlugin.cpp
+++ b/common/src/PionPlugin.cpp
@@ -58,7 +58,7 @@ void PionPlugin::addPluginDirectory(cons
 	if (! boost::filesystem::exists(plugin_path) )
 		throw DirectoryNotFoundException(dir);
 	boost::mutex::scoped_lock plugin_lock(m_plugin_mutex);
-	m_plugin_dirs.push_back(plugin_path.directory_string());
+	m_plugin_dirs.push_back(plugin_path.string());
 }
 
 void PionPlugin::resetPluginDirectories(void)
@@ -204,7 +204,7 @@ bool PionPlugin::checkForFile(std::strin
 	try {
 		// is_regular may throw if directory is not readable
 		if (boost::filesystem::is_regular(test_path)) {
-			final_path = test_path.file_string();
+			final_path = test_path.string();
 			return true;
 		}
 	} catch (...) {}
@@ -225,7 +225,7 @@ bool PionPlugin::checkForFile(std::strin
 	try {
 		// is_regular may throw if directory is not readable
 		if (boost::filesystem::is_regular(test_path)) {
-			final_path = test_path.file_string();
+			final_path = test_path.string();
 			return true;
 		}
 	} catch (...) {}
@@ -291,7 +291,7 @@ void PionPlugin::getAllPluginNames(std::
 		for (boost::filesystem::directory_iterator it2(*it); it2 != end; ++it2) {
 			if (boost::filesystem::is_regular(*it2)) {
 				if (boost::filesystem::extension(it2->path()) == PionPlugin::PION_PLUGIN_EXTENSION) {
-					plugin_names.push_back(PionPlugin::getPluginName(it2->path().leaf()));
+					plugin_names.push_back(PionPlugin::getPluginName(it2->path().filename().native()));
 				}
 			}
 		}
@@ -309,11 +309,11 @@ void *PionPlugin::loadDynamicLibrary(con
 #else
 	// convert into a full/absolute/complete path since dlopen()
 	// does not always search the CWD on some operating systems
-	const boost::filesystem::path full_path = boost::filesystem::complete(plugin_file);
+	const boost::filesystem::path full_path = boost::filesystem::absolute(plugin_file);
 	// NOTE: you must load shared libraries using RTLD_GLOBAL on Unix platforms
 	// due to a bug in GCC (or Boost::any, depending on which crowd you want to believe).
 	// see: http://svn.boost.org/trac/boost/ticket/754
-	return dlopen(full_path.file_string().c_str(), RTLD_LAZY | RTLD_GLOBAL);
+	return dlopen(full_path.string().c_str(), RTLD_LAZY | RTLD_GLOBAL);
 #endif
 }
 
diff -u a/common/tests/PionPluginPtrTests.cpp b/common/tests/PionPluginPtrTests.cpp
--- a/common/tests/PionPluginPtrTests.cpp
+++ b/common/tests/PionPluginPtrTests.cpp
@@ -230,7 +230,7 @@ BOOST_AUTO_TEST_SUITE_END()
 class Sandbox_F {
 public:
 	Sandbox_F() {
-		m_cwd = boost::filesystem::current_path().directory_string();
+		m_cwd = boost::filesystem::current_path().string();
 		boost::filesystem::remove_all("sandbox");
 		BOOST_REQUIRE(boost::filesystem::create_directory("sandbox"));
 		BOOST_REQUIRE(boost::filesystem::create_directory("sandbox/dir1"));
diff -u a/net/services/FileService.cpp b/net/services/FileService.cpp
--- a/net/services/FileService.cpp
+++ b/net/services/FileService.cpp
@@ -137,8 +137,8 @@ void FileService::operator()(HTTPRequest
 
 	// make sure that the requested file is within the configured directory
 	file_path.normalize();
-	std::string file_string = file_path.file_string();
-	if (file_string.find(m_directory.directory_string()) != 0) {
+	std::string file_string = file_path.string();
+	if (file_string.find(m_directory.string()) != 0) {
 		PION_LOG_WARN(m_logger, "Request for file outside of directory ("
 					  << getResource() << "): " << relative_path);
 		static const std::string FORBIDDEN_HTML_START =
@@ -319,7 +319,7 @@ void FileService::operator()(HTTPRequest
 						   << getResource() << "): " << relative_path);
 
 			// determine the MIME type
-			response_file.setMimeType(findMIMEType( response_file.getFilePath().leaf() ));
+			response_file.setMimeType(findMIMEType( response_file.getFilePath().filename().native() ));
 
 			// get the file_size and last_modified timestamp
 			response_file.update();
@@ -597,7 +597,7 @@ void FileService::stop(void)
 void FileService::scanDirectory(const boost::filesystem::path& dir_path)
 {
 	PION_LOG_DEBUG(m_logger, "Scanning directory (" << getResource() << "): "
-				   << dir_path.directory_string());
+				   << dir_path.string());
 
 	// iterate through items in the directory
 	boost::filesystem::directory_iterator end_itr;
@@ -614,8 +614,8 @@ void FileService::scanDirectory(const bo
 			// item is a regular file
 
 			// figure out relative path to the file
-			std::string file_path_string( itr->path().file_string() );
-			std::string relative_path( file_path_string.substr(m_directory.directory_string().size() + 1) );
+			std::string file_path_string( itr->path().string() );
+			std::string relative_path( file_path_string.substr(m_directory.string().size() + 1) );
 
 			// add item to cache (use placeholder if scan == 1)
 			addCacheEntry(relative_path, *itr, m_scan_setting == 1);
@@ -628,7 +628,7 @@ FileService::addCacheEntry(const std::st
 						   const boost::filesystem::path& file_path,
 						   const bool placeholder)
 {
-	DiskFile cache_entry(file_path, NULL, 0, 0, findMIMEType(file_path.leaf()));
+	DiskFile cache_entry(file_path, NULL, 0, 0, findMIMEType(file_path.filename().native()));
 	if (! placeholder) {
 		cache_entry.update();
 		// only read the file if its size is <= max_cache_size
@@ -636,7 +636,7 @@ FileService::addCacheEntry(const std::st
 			try { cache_entry.read(); }
 			catch (std::exception&) {
 				PION_LOG_ERROR(m_logger, "Unable to add file to cache: "
-							   << file_path.file_string());
+							   << file_path.string());
 				return std::make_pair(m_cache_map.end(), false);
 			}
 		}
@@ -647,10 +647,10 @@ FileService::addCacheEntry(const std::st
 
 	if (add_entry_result.second) {
 		PION_LOG_DEBUG(m_logger, "Added file to cache: "
-					   << file_path.file_string());
+					   << file_path.string());
 	} else {
 		PION_LOG_ERROR(m_logger, "Unable to insert cache entry for file: "
-					   << file_path.file_string());
+					   << file_path.string());
 	}
 
 	return add_entry_result;
@@ -713,7 +713,7 @@ void DiskFile::read(void)
 
 	// read the file into memory
 	if (!file_stream.is_open() || !file_stream.read(m_file_content.get(), m_file_size))
-		throw FileService::FileReadException(m_file_path.file_string());
+		throw FileService::FileReadException(m_file_path.string());
 }
 
 bool DiskFile::checkUpdated(void)
@@ -751,7 +751,7 @@ DiskFileSender::DiskFileSender(DiskFile&
 {
 	PION_LOG_DEBUG(m_logger, "Preparing to send file"
 				   << (m_disk_file.hasFileContent() ? " (cached): " : ": ")
-				   << m_disk_file.getFilePath().file_string());
+				   << m_disk_file.getFilePath().string());
 
 		// set the Content-Type HTTP header using the file's MIME type
 	m_writer->getResponse().setContentType(m_disk_file.getMimeType());
@@ -795,7 +795,7 @@ void DiskFileSender::send(void)
 			m_file_stream.open(m_disk_file.getFilePath(), std::ios::in | std::ios::binary);
 			if (! m_file_stream.is_open()) {
 				PION_LOG_ERROR(m_logger, "Unable to open file: "
-							   << m_disk_file.getFilePath().file_string());
+							   << m_disk_file.getFilePath().string());
 				return;
 			}
 		}
@@ -811,10 +811,10 @@ void DiskFileSender::send(void)
 		if (! m_file_stream.read(m_content_buf.get(), m_file_bytes_to_send)) {
 			if (m_file_stream.gcount() > 0) {
 				PION_LOG_ERROR(m_logger, "File size inconsistency: "
-							   << m_disk_file.getFilePath().file_string());
+							   << m_disk_file.getFilePath().string());
 			} else {
 				PION_LOG_ERROR(m_logger, "Unable to read file: "
-							   << m_disk_file.getFilePath().file_string());
+							   << m_disk_file.getFilePath().string());
 			}
 			return;
 		}