Hello community, here is the log from the commit of package abiword for openSUSE:Factory checked in at 2016-06-19 10:50:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/abiword (Old) and /work/SRC/openSUSE:Factory/.abiword.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "abiword" Changes: -------- --- /work/SRC/openSUSE:Factory/abiword/abiword.changes 2016-05-16 12:03:45.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.abiword.new/abiword.changes 2016-06-19 10:50:34.000000000 +0200 @@ -1,0 +2,5 @@ +Fri Jun 17 13:08:40 UTC 2016 - norm...@linux.vnet.ibm.com + +- Add abiword-3.0.1-gcc6.patch: Fix build with gcc6 (boo#985070). + +------------------------------------------------------------------- New: ---- abiword-3.0.1-gcc6.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ abiword.spec ++++++ --- /var/tmp/diff_new_pack.s2rLVk/_old 2016-06-19 10:50:35.000000000 +0200 +++ /var/tmp/diff_new_pack.s2rLVk/_new 2016-06-19 10:50:35.000000000 +0200 @@ -33,6 +33,8 @@ Patch5: abiword-librevenge.patch # PATCH-FIX-UPSTREAM abiword-libwps-0.4.patch dims...@opensuse.org -- Port to libwps-0.4; patch taken from Fedora. Patch6: abiword-libwps-0.4.patch +# PATCH-FIX-UPSTREAM abiword-3.0.1-gcc6.patch boo#985070 abiword-3.0.1-gcc6.patch -- Fix build with gcc6, patch borrowed from fedora +Patch7: abiword-3.0.1-gcc6.patch BuildRequires: asio-devel BuildRequires: bison BuildRequires: boost-devel @@ -109,6 +111,7 @@ %patch4 %patch5 %patch6 +%patch7 %build # We modified plugin configuration and thus we need to regenerate the whole build system ++++++ abiword-3.0.1-gcc6.patch ++++++ --- configure.ac | 2 plugins/collab/backends/service/xp/RealmProtocol.cpp | 4 plugins/collab/backends/service/xp/soa_soup.cpp | 2 plugins/latex/xp/ie_exp_LaTeX.cpp | 2 plugins/xslfo/xp/ie_exp_XSL-FO.cpp | 2 src/af/xap/cocoa/xap_CocoaApp.cpp | 2 src/af/xap/cocoa/xap_CocoaApp.h | 2 src/af/xap/gtk/xap_UnixApp.cpp | 106 ++++++++----------- src/af/xap/gtk/xap_UnixApp.h | 2 src/af/xap/win/xap_Win32App.cpp | 2 src/af/xap/win/xap_Win32App.h | 2 src/af/xap/xp/xap_App.h | 2 12 files changed, 60 insertions(+), 70 deletions(-) Index: src/af/xap/cocoa/xap_CocoaApp.h =================================================================== --- src/af/xap/cocoa/xap_CocoaApp.h.orig +++ src/af/xap/cocoa/xap_CocoaApp.h @@ -65,7 +65,7 @@ public: virtual void copyToClipboard(PD_DocumentRange * pDocRange, bool bUseClipboard = true) = 0; virtual void pasteFromClipboard(PD_DocumentRange * pDocRange, bool bUseClipboard, bool bHonorFormatting = true) = 0; virtual bool canPasteFromClipboard() = 0; - virtual const char * getUserPrivateDirectory(); + virtual const char * getUserPrivateDirectory() const; virtual bool findAbiSuiteBundleFile(std::string & path, const char * filename, const char * subdir = 0); // checks only bundle virtual bool findAbiSuiteLibFile(std::string & path, const char * filename, const char * subdir = 0); virtual bool findAbiSuiteAppFile(std::string & path, const char * filename, const char * subdir = 0); // doesn't check user-dir Index: src/af/xap/cocoa/xap_CocoaApp.cpp =================================================================== --- src/af/xap/cocoa/xap_CocoaApp.cpp.orig +++ src/af/xap/cocoa/xap_CocoaApp.cpp @@ -196,7 +196,7 @@ void XAP_CocoaApp::getGeometry(int * x, *flags = m_geometry.flags; } -const char * XAP_CocoaApp::getUserPrivateDirectory() +const char * XAP_CocoaApp::getUserPrivateDirectory() const { static const char * szAbiDir = "Library/Application Support/AbiSuite"; Index: src/af/xap/gtk/xap_UnixApp.h =================================================================== --- src/af/xap/gtk/xap_UnixApp.h.orig +++ src/af/xap/gtk/xap_UnixApp.h @@ -73,7 +73,7 @@ public: virtual void pasteFromClipboard(PD_DocumentRange * pDocRange, bool bUseClipboard, bool bHonorFormatting = true) = 0; virtual bool canPasteFromClipboard() = 0; void migrate(const char *oldName, const char *newName, const char *path) const; - virtual const char * getUserPrivateDirectory(); + virtual const char * getUserPrivateDirectory() const; virtual void setSelectionStatus(AV_View * pView) = 0; virtual void clearSelection() = 0; Index: src/af/xap/gtk/xap_UnixApp.cpp =================================================================== --- src/af/xap/gtk/xap_UnixApp.cpp.orig +++ src/af/xap/gtk/xap_UnixApp.cpp @@ -230,70 +230,60 @@ void XAP_UnixApp::getWinGeometry(int * x } // This should be removed at some time. -void XAP_UnixApp::migrate (const char *oldName, const char *newName, const char *path) const +void XAP_UnixApp::migrate(const char *oldName, + const char *newName, const char *path) const { - if (path && newName && oldName && (*oldName == '/')) - { - char *old = new char[strlen(path) - strlen(newName) + strlen(oldName)]; - - if (old) - { - size_t len = strrchr(path, '/') - path; - strncpy(old, path, len); - old[len] = 0; - strcat(old, oldName); - - if (g_access(old, F_OK) == 0) - { - UT_WARNINGMSG(("Renaming: %s -> %s\n", old, path)); - g_rename(old, path); - } - - delete[] old; - } - } + if (path && newName && oldName && (*oldName == '/')) { + + const char* end = strrchr(path, '/'); + if (!end) { + UT_WARNINGMSG(("invalid path '%s', '/' not found", path)); + return; + } + + std::string old(path, end); + old += oldName; + + if (g_access(old.c_str(), F_OK) == 0) { + UT_WARNINGMSG(("Renaming: %s -> %s\n", old.c_str(), path)); + g_rename(old.c_str(), path); + } + } } - -const char * XAP_UnixApp::getUserPrivateDirectory() -{ - /* return a pointer to a static buffer */ - static char *buf = NULL; - if (buf == NULL) - { - const char * szAbiDir = "abiword"; - const char * szCfgDir = ".config"; - - const char * szXDG = getenv("XDG_CONFIG_HOME"); - if (!szXDG || !*szXDG) { - const char * szHome = getenv("HOME"); - if (!szHome || !*szHome) - szHome = "./"; - - buf = new char[strlen(szHome)+strlen(szCfgDir)+strlen(szAbiDir)+4]; - - strcpy(buf, szHome); - if (buf[strlen(buf)-1] != '/') - strcat(buf, "/"); - strcat(buf, szCfgDir); - } else { - buf = new char[strlen(szXDG)+strlen(szAbiDir)+4]; - strcpy(buf, szXDG); - } - - strcat(buf, "/"); - strcat(buf, szAbiDir); - -#ifdef PATH_MAX - if (strlen(buf) >= PATH_MAX) - DELETEPV(buf); -#endif +const char * XAP_UnixApp::getUserPrivateDirectory() const +{ + /* return a pointer to a static buffer */ + static std::string private_dir; - // migration / legacy - migrate("/AbiSuite", szAbiDir, buf); + if (private_dir.empty()) { + const char * szAbiDir = "abiword"; + const char * szCfgDir = ".config"; + + const char * szXDG = getenv("XDG_CONFIG_HOME"); + if (!szXDG || !*szXDG) { + const char * szHome = getenv("HOME"); + if (!szHome || !*szHome) + szHome = "./"; + + private_dir = szHome; + if (szHome[strlen(szHome)-1] != '/') { + private_dir.push_back('/'); + } + private_dir += szCfgDir; + } else { + private_dir = szXDG; + } + + private_dir += '/'; + private_dir += szAbiDir; + + // migration / legacy + // XXX shouldn't that be /.AbiSuite ? + migrate("/AbiSuite", szAbiDir, private_dir.c_str()); } - return buf; + return private_dir.c_str(); } Index: src/af/xap/xp/xap_App.h =================================================================== --- src/af/xap/xp/xap_App.h.orig +++ src/af/xap/xp/xap_App.h @@ -178,7 +178,7 @@ public: virtual const XAP_StringSet * getStringSet() const = 0; virtual void migrate(const char *oldName, const char *newName, const char *path) const; - virtual const char * getUserPrivateDirectory() = 0; + virtual const char * getUserPrivateDirectory() const = 0; virtual const char * getAbiSuiteLibDir() const; virtual const char * getAbiSuiteAppDir() const = 0; virtual bool findAbiSuiteLibFile(std::string & path, const char * filename, const char * subdir = 0); Index: src/af/xap/win/xap_Win32App.h =================================================================== --- src/af/xap/win/xap_Win32App.h.orig +++ src/af/xap/win/xap_Win32App.h @@ -65,7 +65,7 @@ public: virtual void pasteFromClipboard(PD_DocumentRange * pDocRange, bool, bool) = 0; virtual bool canPasteFromClipboard(void) = 0; virtual void cacheCurrentSelection(AV_View *) = 0; - virtual const char * getUserPrivateDirectory(void); + virtual const char * getUserPrivateDirectory(void) const; virtual HICON getIcon(void) = 0; virtual HICON getSmallIcon(void) = 0; Index: src/af/xap/win/xap_Win32App.cpp =================================================================== --- src/af/xap/win/xap_Win32App.cpp.orig +++ src/af/xap/win/xap_Win32App.cpp @@ -238,7 +238,7 @@ static bool isWriteable(LPWSTR lpPath) return result; } -const char * XAP_Win32App::getUserPrivateDirectory(void) +const char * XAP_Win32App::getUserPrivateDirectory(void) const { /* return a pointer to a static buffer */ Index: configure.ac =================================================================== --- configure.ac.orig +++ configure.ac @@ -663,7 +663,7 @@ AC_LANG_POP # # We need libpng -for l in libpng libpng14 libpng12; do +for l in libpng libpng16 libpng14 libpng12; do AC_MSG_CHECKING(for $l) if $PKG_CONFIG --exists $l ; then AC_MSG_RESULT(yes) Index: plugins/xslfo/xp/ie_exp_XSL-FO.cpp =================================================================== --- plugins/xslfo/xp/ie_exp_XSL-FO.cpp.orig +++ plugins/xslfo/xp/ie_exp_XSL-FO.cpp @@ -1451,7 +1451,7 @@ void s_XSL_FO_Listener::_openSection(PT_ { \ UT_UTF8String esc = szValue; \ esc.escapeXML(); \ - buf += " "x"=\""; \ + buf += " " x"=\""; \ buf += esc.utf8_str(); \ buf += "\""; \ } Index: plugins/latex/xp/ie_exp_LaTeX.cpp =================================================================== --- plugins/latex/xp/ie_exp_LaTeX.cpp.orig +++ plugins/latex/xp/ie_exp_LaTeX.cpp @@ -1329,7 +1329,7 @@ void s_LaTeX_Listener::_outputData(const m_pie->write(sBuf.c_str(),sBuf.size()); } -#define SUB(a,who) case a: subst = "\\(\\"who"\\)"; return true; +#define SUB(a,who) case a: subst = "\\(\\" who"\\)"; return true; #define SUBd(a,who) case a: subst = who; return true; static bool _convertLettersToSymbols(char c, const char *& subst) { Index: plugins/collab/backends/service/xp/soa_soup.cpp =================================================================== --- plugins/collab/backends/service/xp/soa_soup.cpp.orig +++ plugins/collab/backends/service/xp/soa_soup.cpp @@ -163,7 +163,7 @@ namespace soup_soa { static bool _invoke(const std::string& /*url*/, const soa::method_invocation& /*mi*/, SoaSoupSession& sess, std::string& result) { if (!sess.m_session || !sess.m_msg ) - return soa::GenericPtr(); + return false; guint status = soup_session_send_message (sess.m_session, sess.m_msg); if (!(SOUP_STATUS_IS_SUCCESSFUL (status) || Index: plugins/collab/backends/service/xp/RealmProtocol.cpp =================================================================== --- plugins/collab/backends/service/xp/RealmProtocol.cpp.orig +++ plugins/collab/backends/service/xp/RealmProtocol.cpp @@ -6,8 +6,8 @@ namespace protocolv1 { #define MAX_PACKET_DATA_SIZE 64*1024*1024 -#define RPV1_PACKET_NONEXISTENT -2 -#define RPV1_PACKET_VARIABLE -1 +#define RPV1_PACKET_NONEXISTENT uint32_t(-2) +#define RPV1_PACKET_VARIABLE uint32_t(-1) static uint32_t body_size[6] = { RPV1_PACKET_NONEXISTENT, /* 0: reserved */