[Slackbuilds-users] Fix for games/pokerth

Lenard Spencer lspencer31 at cfl.rr.com
Sat Nov 19 17:06:54 UTC 2016


Since -current updated boost to 1.61, pokerth will no longer build as 
is.  After some searching, I found a patch to make it compile. Several 
weeks ago I sent an email of the .diff file to the maintainer in the 
.info file, but to date I have not received a response.

This patch is only needed for building with boost >=1.60, but as 14.2 
still uses boost 1.59, it is not necessary.

Since I don't know what else to do, here is the patch to run in the 
pokerth SBo folder.

----------------------------------- begin 
-------------------------------------------

diff -Naur pokerth/patch-README pokerth.new/patch-README
--- pokerth/patch-README    1969-12-31 19:00:00.000000000 -0500
+++ pokerth.new/patch-README    2016-10-29 17:23:34.000000000 -0400
@@ -0,0 +1,5 @@
+pokerth-1.1.1-fstream-ambiguity.patch
+
+Found at 
https://github.com/OpenMandrivaAssociation/pokerth/blob/master/pokerth-1.1.1-fstream-ambiguity.patch
+
+This patch fixes the build error when trying to build against boost 
1.60 and newer.
diff -Naur pokerth/pokerth-1.1.1-fstream-ambiguity.patch 
pokerth.new/pokerth-1.1.1-fstream-ambiguity.patch
--- pokerth/pokerth-1.1.1-fstream-ambiguity.patch    1969-12-31 
19:00:00.000000000 -0500
+++ pokerth.new/pokerth-1.1.1-fstream-ambiguity.patch    2016-10-29 
17:12:55.000000000 -0400
@@ -0,0 +1,150 @@
+From 69f820bb3d7c4dc8c838f115cb4c7ee5fd188721 Mon Sep 17 00:00:00 2001
+From: Jonathan Wakely <github at kayari.org>
+Date: Thu, 26 Nov 2015 16:27:52 +0000
+Subject: [PATCH] Qualify std::ifstream and std::ofstream
+
+Starting with Boost 1.60.0 <boost/filesystem.hpp> includes
+<boost/filesystem/fstream.hpp>, which declares ifstream and ofstream
+types that make the unqualified names ifstream and ofstream ambiguous.
+The names must be qualified to refer to the std versions.
+---
+ src/core/common/avatarmanager.cpp    | 4 ++--
+ src/core/common/loghelper_server.cpp | 6 +++---
+ src/net/common/clientstate.cpp       | 4 ++--
+ src/net/common/clientthread.cpp      | 4 ++--
+ src/net/common/downloaderthread.cpp  | 2 +-
+ src/pokerth_server.cpp               | 2 +-
+ src/zlib_compress.cpp                | 4 ++--
+ 7 files changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/src/core/common/avatarmanager.cpp 
b/src/core/common/avatarmanager.cpp
+index a8a52e4..0246b72 100644
+--- a/src/core/common/avatarmanager.cpp
++++ b/src/core/common/avatarmanager.cpp
+@@ -61,7 +61,7 @@ using namespace std;
+ using namespace boost::filesystem;
+
+ struct AvatarFileState {
+-    ifstream        inputStream;
++    std::ifstream        inputStream;
+ };
+
+ AvatarManager::AvatarManager(bool useExternalServer, const std::string 
&externalServerAddress,
+@@ -371,7 +371,7 @@ AvatarManager::StoreAvatarInCache(const MD5Buf 
&md5buf, AvatarFileType avatarFil
+                 path tmpPath(cacheDir);
+                 tmpPath /= (md5buf.ToString() + ext);
+                 string fileName(tmpPath.file_string());
+-                ofstream o(fileName.c_str(), ios_base::out | 
ios_base::binary | ios_base::trunc);
++                std::ofstream o(fileName.c_str(), ios_base::out | 
ios_base::binary | ios_base::trunc);
+                 if (!o.fail()) {
+                     o.write((const char *)data, size);
+                     o.close();
+diff --git a/src/core/common/loghelper_server.cpp 
b/src/core/common/loghelper_server.cpp
+index f79e4ca..a0d0350 100644
+--- a/src/core/common/loghelper_server.cpp
++++ b/src/core/common/loghelper_server.cpp
+@@ -67,7 +67,7 @@ void
+ internal_log_err(const string &msg)
+ {
+     if (!g_logFile.empty()) {
+-        ofstream o(g_logFile.c_str(), ios_base::out | ios_base::app);
++        std::ofstream o(g_logFile.c_str(), ios_base::out | ios_base::app);
+         if (!o.fail()) {
+             o << second_clock::local_time() << " ERR: " << msg;
+             o.flush();
+@@ -80,7 +80,7 @@ internal_log_msg(const std::string &msg)
+ {
+     if (g_logLevel) {
+         if (!g_logFile.empty()) {
+-            ofstream o(g_logFile.c_str(), ios_base::out | ios_base::app);
++            std::ofstream o(g_logFile.c_str(), ios_base::out | 
ios_base::app);
+             if (!o.fail())
+                 o << second_clock::local_time() << " MSG: " << msg;
+         }
+@@ -92,7 +92,7 @@ internal_log_level(const std::string &msg, int logLevel)
+ {
+     if (g_logLevel >= logLevel) {
+         if (!g_logFile.empty()) {
+-            ofstream o(g_logFile.c_str(), ios_base::out | ios_base::app);
++            std::ofstream o(g_logFile.c_str(), ios_base::out | 
ios_base::app);
+             if (!o.fail())
+                 o << second_clock::local_time() << " OUT: " << msg;
+         }
+diff --git a/src/net/common/clientstate.cpp 
b/src/net/common/clientstate.cpp
+index 143773b..080da2d 100644
+--- a/src/net/common/clientstate.cpp
++++ b/src/net/common/clientstate.cpp
+@@ -308,8 +308,8 @@ 
ClientStateReadingServerList::Enter(boost::shared_ptr<ClientThread> client)
+
+         // Unzip the file using zlib.
+         try {
+-            ifstream 
inFile(zippedServerListPath.directory_string().c_str(), ios_base::in | 
ios_base::binary);
+-            ofstream 
outFile(xmlServerListPath.directory_string().c_str(), ios_base::out | 
ios_base::trunc);
++            std::ifstream 
inFile(zippedServerListPath.directory_string().c_str(), ios_base::in | 
ios_base::binary);
++            std::ofstream 
outFile(xmlServerListPath.directory_string().c_str(), ios_base::out | 
ios_base::trunc);
+ boost::iostreams::filtering_streambuf<boost::iostreams::input> in;
+             in.push(boost::iostreams::zlib_decompressor());
+             in.push(inFile);
+diff --git a/src/net/common/clientthread.cpp 
b/src/net/common/clientthread.cpp
+index d60a535..1f3a619 100644
+--- a/src/net/common/clientthread.cpp
++++ b/src/net/common/clientthread.cpp
+@@ -1695,7 +1695,7 @@ void
+ ClientThread::ReadSessionGuidFromFile()
+ {
+     string guidFileName(GetContext().GetCacheDir() + TEMP_GUID_FILENAME);
+-    ifstream guidStream(guidFileName.c_str(), ios::in | ios::binary);
++    std::ifstream guidStream(guidFileName.c_str(), ios::in | ios::binary);
+     if (guidStream.good()) {
+         std::vector<char> tmpGuid(CLIENT_GUID_SIZE);
+         guidStream.read(&tmpGuid[0], CLIENT_GUID_SIZE);
+@@ -1707,7 +1707,7 @@ void
+ ClientThread::WriteSessionGuidToFile() const
+ {
+     string guidFileName(GetContext().GetCacheDir() + TEMP_GUID_FILENAME);
+-    ofstream guidStream(guidFileName.c_str(), ios::out | ios::trunc | 
ios::binary);
++    std::ofstream guidStream(guidFileName.c_str(), ios::out | 
ios::trunc | ios::binary);
+     if (guidStream.good()) {
+         guidStream.write(GetContext().GetSessionGuid().c_str(), 
GetContext().GetSessionGuid().size());
+     }
+diff --git a/src/net/common/downloaderthread.cpp 
b/src/net/common/downloaderthread.cpp
+index e58e3f8..56a9526 100644
+--- a/src/net/common/downloaderthread.cpp
++++ b/src/net/common/downloaderthread.cpp
+@@ -96,7 +96,7 @@ DownloaderThread::Main()
+                 // Previous download was finished.
+                 if (m_curDownloadData) {
+                     path filepath(m_curDownloadData->filename);
+-                    ifstream instream(filepath.file_string().c_str(), 
ios_base::in | ios_base::binary);
++                    std::ifstream 
instream(filepath.file_string().c_str(), ios_base::in | ios_base::binary);
+                     // Find out file size.
+                     // Not fully portable, but works on win/linux/mac.
+                     instream.seekg(0, ios_base::beg);
+diff --git a/src/pokerth_server.cpp b/src/pokerth_server.cpp
+index 3b93d46..450a47e 100644
+--- a/src/pokerth_server.cpp
++++ b/src/pokerth_server.cpp
+@@ -161,7 +161,7 @@ main(int argc, char *argv[])
+         pidFile = tmpPidPath.directory_string();
+     }
+     {
+-        ofstream pidStream(pidFile.c_str(), ios_base::out | 
ios_base::trunc);
++        std::ofstream pidStream(pidFile.c_str(), ios_base::out | 
ios_base::trunc);
+         if (!pidStream.fail())
+             pidStream << getpid();
+         else
+diff --git a/src/zlib_compress.cpp b/src/zlib_compress.cpp
+index e3fd72d..4b04817 100644
+--- a/src/zlib_compress.cpp
++++ b/src/zlib_compress.cpp
+@@ -59,8 +59,8 @@ main(int argc, char *argv[])
+         return 2;
+     }
+     try {
+-        ifstream inFile(inputFilePath.directory_string().c_str(), 
ios_base::in);
+-        ofstream outFile(outputFilePath.directory_string().c_str(), 
ios_base::out | ios_base::binary);
++        std::ifstream inFile(inputFilePath.directory_string().c_str(), 
ios_base::in);
++        std::ofstream 
outFile(outputFilePath.directory_string().c_str(), ios_base::out | 
ios_base::binary);
+ boost::iostreams::filtering_streambuf<boost::iostreams::output> out;
+         out.push(boost::iostreams::zlib_compressor());
+         out.push(outFile);
diff -Naur pokerth/pokerth.SlackBuild pokerth.new/pokerth.SlackBuild
--- pokerth/pokerth.SlackBuild    2016-05-25 20:29:40.000000000 -0400
+++ pokerth.new/pokerth.SlackBuild    2016-10-30 09:02:23.104096209 -0400
@@ -28,7 +28,7 @@
  PRGNAM=pokerth
  SRCNAM=PokerTH
  VERSION=${VERSION:-1.1.1}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
  TAG=${TAG:-_SBo}

  if [ -z "$ARCH" ]; then
@@ -73,6 +73,9 @@
   \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
    -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

+# patch to build against boost 1.60 and newer:
+patch -p1 < $CWD/pokerth-1.1.1-fstream-ambiguity.patch
+
  # The headers to which this file points have moved in the newer 
libircclient...
  # Thanks ponce.
  sed -i "s|libircclient/||" src/net/common/ircthread.cpp

------------------------------------ end 
--------------------------------------------



More information about the SlackBuilds-users mailing list