Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package xwmfs for openSUSE:Factory checked 
in at 2021-03-03 18:35:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xwmfs (Old)
 and      /work/SRC/openSUSE:Factory/.xwmfs.new.2378 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xwmfs"

Wed Mar  3 18:35:46 2021 rev:5 rq:876541 version:0.86

Changes:
--------
--- /work/SRC/openSUSE:Factory/xwmfs/xwmfs.changes      2020-03-31 
17:16:37.351680077 +0200
+++ /work/SRC/openSUSE:Factory/.xwmfs.new.2378/xwmfs.changes    2021-03-03 
18:35:58.823418707 +0100
@@ -1,0 +2,6 @@
+Wed Mar  3 12:56:25 UTC 2021 - Matthias Gerstner <[email protected]>
+
+- version bump to minor release 0.86:
+  - fixes for clang and gcc-10 compilation.
+
+-------------------------------------------------------------------

Old:
----
  xwmfs-0.84-dist.tar.gz

New:
----
  _service
  xwmfs-0.86-dist.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xwmfs.spec ++++++
--- /var/tmp/diff_new_pack.jQC3tq/_old  2021-03-03 18:35:59.443419151 +0100
+++ /var/tmp/diff_new_pack.jQC3tq/_new  2021-03-03 18:35:59.443419151 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package xwmfs
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -23,7 +23,7 @@
 BuildRequires:  gcc-c++
 BuildRequires:  libX11-devel
 Requires:       fuse
-Version:        0.84
+Version:        0.86
 Release:        0
 URL:            https://github.com/gerstner-hub/xwmfs
 Summary:        A file system for accessing X server and window manager 
features

++++++ _service ++++++
<services>
  <service name="tar_scm" mode="disabled">
    <param name="url">https://github.com/gerstner-hub/xwmfs</param>
    <param name="scm">git</param>
    <param name="revision">v0.86</param>
    <param name="versionformat">@PARENT_TAG@</param>
    <param name="changesgenerate">enable</param>
  </service>
  <service name="recompress" mode="disabled">
    <param name="file">*.tar</param>
    <param name="compression">xz</param>
  </service>
</services>
++++++ xwmfs-0.84-dist.tar.gz -> xwmfs-0.86-dist.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/ChangeLog new/xwmfs-0.86/ChangeLog
--- old/xwmfs-0.84/ChangeLog    2020-03-24 12:14:09.000000000 +0100
+++ new/xwmfs-0.86/ChangeLog    2020-07-16 22:05:41.000000000 +0200
@@ -1,3 +1,21 @@
+2020-07-16 Matthias Gerstner <[email protected]>
+
+       version 0.86
+
+       Bugfix release
+
+       - fix build with clang
+
+
+2020-05-12 Matthias Gerstner <[email protected]>
+
+       version 0.85
+
+       Bugfix release
+
+       - fix build with gcc-10 (undefined references to getProperty<int>)
+       - fix build against MUSL libc (`uid_t does not name a type`)
+
 2020-03-24 Matthias Gerstner <[email protected]>
 
        version 0.84
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/configure new/xwmfs-0.86/configure
--- old/xwmfs-0.84/configure    2020-03-24 12:17:49.000000000 +0100
+++ new/xwmfs-0.86/configure    2020-07-16 22:07:58.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xwmfs 0.84.
+# Generated by GNU Autoconf 2.69 for xwmfs 0.86.
 #
 # Report bugs to <[email protected]>.
 #
@@ -579,8 +579,8 @@
 # Identity of this package.
 PACKAGE_NAME='xwmfs'
 PACKAGE_TARNAME='xwmfs'
-PACKAGE_VERSION='0.84'
-PACKAGE_STRING='xwmfs 0.84'
+PACKAGE_VERSION='0.86'
+PACKAGE_STRING='xwmfs 0.86'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -595,6 +595,8 @@
 PKG_CONFIG_LIBDIR
 PKG_CONFIG_PATH
 PKG_CONFIG
+IS_GCC_FALSE
+IS_GCC_TRUE
 FOUND_ASCIIDOC_FALSE
 FOUND_ASCIIDOC_TRUE
 asciidoc
@@ -1250,7 +1252,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures xwmfs 0.84 to adapt to many kinds of systems.
+\`configure' configures xwmfs 0.86 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1316,7 +1318,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xwmfs 0.84:";;
+     short | recursive ) echo "Configuration of xwmfs 0.86:";;
    esac
   cat <<\_ACEOF
 
@@ -1417,7 +1419,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xwmfs configure 0.84
+xwmfs configure 0.86
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1510,7 +1512,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by xwmfs $as_me 0.84, which was
+It was created by xwmfs $as_me 0.86, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2378,7 +2380,7 @@
 
 # Define the identity of the package.
  PACKAGE='xwmfs'
- VERSION='0.84'
+ VERSION='0.86'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4122,6 +4124,39 @@
 
 
 
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __clang__
+       #error no gcc
+#elif !defined(__GNUC__)
+       #error no gcc
+#endif
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  is_gcc=true
+else
+  is_gcc=false
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+ if $is_gcc; then
+  IS_GCC_TRUE=
+  IS_GCC_FALSE='#'
+else
+  IS_GCC_TRUE='#'
+  IS_GCC_FALSE=
+fi
+
+
+
 
 
 
@@ -4576,6 +4611,10 @@
   as_fn_error $? "conditional \"FOUND_ASCIIDOC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${IS_GCC_TRUE}" && test -z "${IS_GCC_FALSE}"; then
+  as_fn_error $? "conditional \"IS_GCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 
 : "${CONFIG_STATUS=./config.status}"
 ac_write_fail=0
@@ -4973,7 +5012,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xwmfs $as_me 0.84, which was
+This file was extended by xwmfs $as_me 0.86, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -5039,7 +5078,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-xwmfs config.status 0.84
+xwmfs config.status 0.86
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/configure.ac new/xwmfs-0.86/configure.ac
--- old/xwmfs-0.84/configure.ac 2020-03-24 12:09:19.000000000 +0100
+++ new/xwmfs-0.86/configure.ac 2020-07-16 21:00:21.000000000 +0200
@@ -4,7 +4,7 @@
 AC_PREREQ(2.61)
 
 dnl Our wmfs application
-AC_INIT([xwmfs], [0.84], [[email protected]])
+AC_INIT([xwmfs], [0.86], [[email protected]])
 
 dnl Stores some generated files in a separate directory for cleaner structure
 AC_CONFIG_AUX_DIR(config_aux)
@@ -23,6 +23,16 @@
 AC_CHECK_PROG([asciidoc], [a2x], [yes], [no])
 AM_CONDITIONAL([FOUND_ASCIIDOC], [test "x$asciidoc" = xyes])
 
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+[[#ifdef __clang__
+       #error no gcc
+#elif !defined(__GNUC__)
+       #error no gcc
+#endif
+]])], [is_gcc=true], [is_gcc=false])
+
+AM_CONDITIONAL([IS_GCC], $is_gcc)
+
 dnl we need fuse
 dnl AC_CHECK_LIB([fuse], [fuse_main], [], [AC_MSG_ERROR([You need the fuse 
userspace library to build this package])])
 PKG_CHECK_MODULES([fuse], [ fuse >= 2.8.1 ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/src/Makefile.am 
new/xwmfs-0.86/src/Makefile.am
--- old/xwmfs-0.84/src/Makefile.am      2020-03-24 12:03:40.000000000 +0100
+++ new/xwmfs-0.86/src/Makefile.am      2020-07-15 12:45:17.000000000 +0200
@@ -1,12 +1,18 @@
 AUTOMAKE_OPTIONS = subdir-objects
 
 bin_PROGRAMS = xwmfs
-xwmfs_SOURCES = fuse/xwmfs_fuse_ops.c fuse/xwmfs_fuse_ops_impl.cxx 
fuse/Entry.cxx fuse/FileEntry.cxx fuse/DirEntry.cxx fuse/RootEntry.cxx 
fuse/EventFile.cxx fuse/AbortHandler.cxx x11/XAtom.cxx x11/property.cxx 
x11/XWindow.cxx x11/XWindowAttrs.cxx x11/XDisplay.cxx x11/RootWin.cxx 
main/Xwmfs.cxx main/main.cxx main/StdLogger.cxx main/terminate.cxx 
main/WindowDirEntry.cxx main/WindowFileEntry.cxx main/WinManagerFileEntry.cxx 
main/WinManagerDirEntry.cxx main/WindowsRootDir.cxx main/UpdateableDir.cxx 
main/SelectionDirEntry.cxx main/SelectionOwnerFile.cxx 
main/SelectionAccessFile.cxx common/Helper.cxx common/ILogger.cxx 
common/Exception.cxx common/Mutex.cxx common/Thread.cxx 
+xwmfs_SOURCES = fuse/xwmfs_fuse_ops.c fuse/xwmfs_fuse_ops_impl.cxx 
fuse/Entry.cxx fuse/FileEntry.cxx fuse/DirEntry.cxx fuse/RootEntry.cxx 
fuse/EventFile.cxx fuse/AbortHandler.cxx x11/XAtom.cxx x11/property.cxx 
x11/XWindow.cxx x11/XWindowAttrs.cxx x11/XDisplay.cxx x11/RootWin.cxx 
main/Xwmfs.cxx main/main.cxx main/StdLogger.cxx main/terminate.cxx 
main/WindowDirEntry.cxx main/WindowFileEntry.cxx main/WinManagerFileEntry.cxx 
main/WinManagerDirEntry.cxx main/WindowsRootDir.cxx main/UpdateableDir.cxx 
main/SelectionDirEntry.cxx main/SelectionOwnerFile.cxx 
main/SelectionAccessFile.cxx common/Helper.cxx common/ILogger.cxx 
common/Exception.cxx common/Mutex.cxx common/Thread.cxx common/strerror.cxx
 xwmfs_SOURCES += fuse/xwmfs_fuse_ops.h common/Condition.hxx 
common/Exception.hxx common/Helper.hxx common/ILogger.hxx 
common/IThreadEntry.hxx common/Mutex.hxx common/RWLock.hxx 
common/SystemException.hxx common/Thread.hxx fuse/AbortHandler.hxx 
fuse/DirEntry.hxx fuse/Entry.hxx fuse/EventFile.hxx fuse/FileEntry.hxx 
fuse/OpenContext.hxx fuse/RootEntry.hxx fuse/xwmfs_fuse.hxx main/Options.hxx 
main/SelectionAccessFile.hxx main/SelectionDirEntry.hxx 
main/SelectionOwnerFile.hxx main/StdLogger.hxx main/UpdateableDir.hxx 
main/WinManagerDirEntry.hxx main/WinManagerFileEntry.hxx 
main/WindowDirEntry.hxx main/WindowFileEntry.hxx main/WindowsRootDir.hxx 
main/Xwmfs.hxx x11/RootWin.hxx x11/X11Exception.hxx x11/XAtom.hxx 
x11/XDisplay.hxx x11/XWindow.hxx x11/XWindowAttrs.hxx x11/property.hxx
 # we need x11 and fuse
 xwmfs_DEPENDENCIES = x11 fuse
 # makes it possible to include headers from fuse or x11, to select a recent 
fuse API version
-AM_CFLAGS = -Wall -Werror -Wextra -Wduplicated-cond -Wduplicated-branches 
-Wlogical-op -Wnull-dereference -Wdouble-promotion -Wshadow -Wformat=2 
-I${top_srcdir}/src/ -DFUSE_USE_VERSION=26 @fuse_CFLAGS@ @x11_CFLAGS@
+AM_CFLAGS = -Wall -Werror -Wextra -Wnull-dereference -Wdouble-promotion 
-Wshadow -Wformat=2 -I${top_srcdir}/src/ -DFUSE_USE_VERSION=26 @fuse_CFLAGS@ 
@x11_CFLAGS@
+# add some more advanced warnings for gcc
+if IS_GCC
+AM_CFLAGS += -Wduplicated-cond -Wduplicated-branches -Wlogical-op
+else
+AM_CFLAGS += -Wno-unused-parameter
+endif
 AM_CXXFLAGS =${AM_CFLAGS} -std=c++11
 # use this instead of AM_LDFLAGS to have the libraries appear AFTER the object
 # files. Otherwise we get trouble on distros where as-needed linking is
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/src/Makefile.in 
new/xwmfs-0.86/src/Makefile.in
--- old/xwmfs-0.84/src/Makefile.in      2020-03-24 12:17:49.000000000 +0100
+++ new/xwmfs-0.86/src/Makefile.in      2020-07-16 22:07:58.000000000 +0200
@@ -87,6 +87,9 @@
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
 bin_PROGRAMS = xwmfs$(EXEEXT)
+# add some more advanced warnings for gcc
+@IS_GCC_TRUE@am__append_1 = -Wduplicated-cond -Wduplicated-branches 
-Wlogical-op
+@IS_GCC_FALSE@am__append_2 = -Wno-unused-parameter
 subdir = src
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
@@ -117,7 +120,8 @@
        main/SelectionOwnerFile.$(OBJEXT) \
        main/SelectionAccessFile.$(OBJEXT) common/Helper.$(OBJEXT) \
        common/ILogger.$(OBJEXT) common/Exception.$(OBJEXT) \
-       common/Mutex.$(OBJEXT) common/Thread.$(OBJEXT)
+       common/Mutex.$(OBJEXT) common/Thread.$(OBJEXT) \
+       common/strerror.$(OBJEXT)
 xwmfs_OBJECTS = $(am_xwmfs_OBJECTS)
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -137,10 +141,10 @@
 am__depfiles_remade = common/$(DEPDIR)/Exception.Po \
        common/$(DEPDIR)/Helper.Po common/$(DEPDIR)/ILogger.Po \
        common/$(DEPDIR)/Mutex.Po common/$(DEPDIR)/Thread.Po \
-       fuse/$(DEPDIR)/AbortHandler.Po fuse/$(DEPDIR)/DirEntry.Po \
-       fuse/$(DEPDIR)/Entry.Po fuse/$(DEPDIR)/EventFile.Po \
-       fuse/$(DEPDIR)/FileEntry.Po fuse/$(DEPDIR)/RootEntry.Po \
-       fuse/$(DEPDIR)/xwmfs_fuse_ops.Po \
+       common/$(DEPDIR)/strerror.Po fuse/$(DEPDIR)/AbortHandler.Po \
+       fuse/$(DEPDIR)/DirEntry.Po fuse/$(DEPDIR)/Entry.Po \
+       fuse/$(DEPDIR)/EventFile.Po fuse/$(DEPDIR)/FileEntry.Po \
+       fuse/$(DEPDIR)/RootEntry.Po fuse/$(DEPDIR)/xwmfs_fuse_ops.Po \
        fuse/$(DEPDIR)/xwmfs_fuse_ops_impl.Po \
        main/$(DEPDIR)/SelectionAccessFile.Po \
        main/$(DEPDIR)/SelectionDirEntry.Po \
@@ -319,10 +323,11 @@
        main/UpdateableDir.cxx main/SelectionDirEntry.cxx \
        main/SelectionOwnerFile.cxx main/SelectionAccessFile.cxx \
        common/Helper.cxx common/ILogger.cxx common/Exception.cxx \
-       common/Mutex.cxx common/Thread.cxx fuse/xwmfs_fuse_ops.h \
-       common/Condition.hxx common/Exception.hxx common/Helper.hxx \
-       common/ILogger.hxx common/IThreadEntry.hxx common/Mutex.hxx \
-       common/RWLock.hxx common/SystemException.hxx common/Thread.hxx \
+       common/Mutex.cxx common/Thread.cxx common/strerror.cxx \
+       fuse/xwmfs_fuse_ops.h common/Condition.hxx \
+       common/Exception.hxx common/Helper.hxx common/ILogger.hxx \
+       common/IThreadEntry.hxx common/Mutex.hxx common/RWLock.hxx \
+       common/SystemException.hxx common/Thread.hxx \
        fuse/AbortHandler.hxx fuse/DirEntry.hxx fuse/Entry.hxx \
        fuse/EventFile.hxx fuse/FileEntry.hxx fuse/OpenContext.hxx \
        fuse/RootEntry.hxx fuse/xwmfs_fuse.hxx main/Options.hxx \
@@ -337,7 +342,10 @@
 # we need x11 and fuse
 xwmfs_DEPENDENCIES = x11 fuse
 # makes it possible to include headers from fuse or x11, to select a recent 
fuse API version
-AM_CFLAGS = -Wall -Werror -Wextra -Wduplicated-cond -Wduplicated-branches 
-Wlogical-op -Wnull-dereference -Wdouble-promotion -Wshadow -Wformat=2 
-I${top_srcdir}/src/ -DFUSE_USE_VERSION=26 @fuse_CFLAGS@ @x11_CFLAGS@
+AM_CFLAGS = -Wall -Werror -Wextra -Wnull-dereference \
+       -Wdouble-promotion -Wshadow -Wformat=2 -I${top_srcdir}/src/ \
+       -DFUSE_USE_VERSION=26 @fuse_CFLAGS@ @x11_CFLAGS@ \
+       $(am__append_1) $(am__append_2)
 AM_CXXFLAGS = ${AM_CFLAGS} -std=c++11
 # use this instead of AM_LDFLAGS to have the libraries appear AFTER the object
 # files. Otherwise we get trouble on distros where as-needed linking is
@@ -505,6 +513,8 @@
        common/$(DEPDIR)/$(am__dirstamp)
 common/Thread.$(OBJEXT): common/$(am__dirstamp) \
        common/$(DEPDIR)/$(am__dirstamp)
+common/strerror.$(OBJEXT): common/$(am__dirstamp) \
+       common/$(DEPDIR)/$(am__dirstamp)
 
 xwmfs$(EXEEXT): $(xwmfs_OBJECTS) $(xwmfs_DEPENDENCIES) 
$(EXTRA_xwmfs_DEPENDENCIES) 
        @rm -f xwmfs$(EXEEXT)
@@ -525,6 +535,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/ILogger.Po@am__quote@ # 
am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/Mutex.Po@am__quote@ # 
am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/Thread.Po@am__quote@ # 
am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@common/$(DEPDIR)/strerror.Po@am__quote@ # 
am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@fuse/$(DEPDIR)/AbortHandler.Po@am__quote@ 
# am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@fuse/$(DEPDIR)/DirEntry.Po@am__quote@ # 
am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@fuse/$(DEPDIR)/Entry.Po@am__quote@ # 
am--include-marker
@@ -731,6 +742,7 @@
        -rm -f common/$(DEPDIR)/ILogger.Po
        -rm -f common/$(DEPDIR)/Mutex.Po
        -rm -f common/$(DEPDIR)/Thread.Po
+       -rm -f common/$(DEPDIR)/strerror.Po
        -rm -f fuse/$(DEPDIR)/AbortHandler.Po
        -rm -f fuse/$(DEPDIR)/DirEntry.Po
        -rm -f fuse/$(DEPDIR)/Entry.Po
@@ -808,6 +820,7 @@
        -rm -f common/$(DEPDIR)/ILogger.Po
        -rm -f common/$(DEPDIR)/Mutex.Po
        -rm -f common/$(DEPDIR)/Thread.Po
+       -rm -f common/$(DEPDIR)/strerror.Po
        -rm -f fuse/$(DEPDIR)/AbortHandler.Po
        -rm -f fuse/$(DEPDIR)/DirEntry.Po
        -rm -f fuse/$(DEPDIR)/Entry.Po
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/src/common/Exception.cxx 
new/xwmfs-0.86/src/common/Exception.cxx
--- old/xwmfs-0.84/src/common/Exception.cxx     2017-02-27 21:12:20.000000000 
+0100
+++ new/xwmfs-0.86/src/common/Exception.cxx     2020-04-05 12:21:49.000000000 
+0200
@@ -37,10 +37,19 @@
        std::stringstream ss;
        m_errno = errno;
 
-       char msg[256];
+       char msg[512];
 
-       char *m = ::strerror_r(m_errno, msg, 256);
-       ss << " (\"" << m << "\", errno = " << m_errno << ")";
+       /* we're using a wrapper for the XSI version of strerror_r here */
+       auto ret = xwmfs::xsi_strerror_r(m_errno, msg, sizeof(msg));
+       auto code = ret == -1 ? errno : ret;
+       if( code != 0 )
+       {
+               std::string fallback;
+               fallback = "failed to format error message (errno = " + 
std::to_string(code) + ")";
+               snprintf(msg, sizeof(msg), "%s", fallback.c_str());
+       }
+
+       ss << " (\"" << msg << "\", errno = " << m_errno << ")";
        m_error.append( ss.str() );
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/src/common/Exception.hxx 
new/xwmfs-0.86/src/common/Exception.hxx
--- old/xwmfs-0.84/src/common/Exception.hxx     2019-05-15 18:37:55.000000000 
+0200
+++ new/xwmfs-0.86/src/common/Exception.hxx     2020-07-15 12:47:02.000000000 
+0200
@@ -60,6 +60,8 @@
 
        Exception(const std::string &err) : m_error(err) {}
 
+       virtual ~Exception() {}
+
        std::string what(const uint32_t level=0) const;
 
        void addError(const xwmfs::Exception &ex)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/src/common/ILogger.cxx 
new/xwmfs-0.86/src/common/ILogger.cxx
--- old/xwmfs-0.84/src/common/ILogger.cxx       2017-02-22 21:00:00.000000000 
+0100
+++ new/xwmfs-0.86/src/common/ILogger.cxx       2020-07-15 12:46:54.000000000 
+0200
@@ -21,8 +21,10 @@
 const char COLOR_FINISH = 'm';
 const char COLOR_RESET[] = "[0";
 const char COLOR_FG[] = "[3";
+#if 0
 const char COLOR_BRIGHT[] = "[1";
 const char COLOR_NORMAL[] = "[22";
+#endif
 
 std::ostream& ILogger::startColor(std::ostream &o, const Color &c)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/src/common/SystemException.hxx 
new/xwmfs-0.86/src/common/SystemException.hxx
--- old/xwmfs-0.84/src/common/SystemException.hxx       2017-02-22 
21:00:00.000000000 +0100
+++ new/xwmfs-0.86/src/common/SystemException.hxx       2020-04-05 
12:10:43.000000000 +0200
@@ -36,6 +36,9 @@
        XWMFS_EXCEPTION_IMPL;
 };
 
+//! wrapper that exports the XSI compliant version of strerror_r
+int xsi_strerror_r(int errnum, char *buf, size_t buflen);
+
 } // end ns
 
 #endif // inc. guard
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/src/common/strerror.cxx 
new/xwmfs-0.86/src/common/strerror.cxx
--- old/xwmfs-0.84/src/common/strerror.cxx      1970-01-01 01:00:00.000000000 
+0100
+++ new/xwmfs-0.86/src/common/strerror.cxx      2020-04-05 12:18:03.000000000 
+0200
@@ -0,0 +1,26 @@
+#undef _GNU_SOURCE
+#define _POSIX_C_SOURCE 20200405L
+#include <string.h>
+
+/*
+ * This is quite a mess: strerror_r has a GNU and an XSI variant. Non GNU-libc
+ * like musl libc only provide the XSI variant. The signatures differ but the
+ * names are equal. To export the XSI variant on GNU libc we need to #undef
+ * _GNU_SOURCE. However, libstdc++ doesn't work without _GNU_SOURCE. Therefore
+ * use this isolated compilation unit to wrap the XSI strerror_r to stay
+ * portable.
+ *
+ * Even on musl libc _GNU_SOURCE seems to get defined under some circumstances
+ * (c++ lib again?). A autoconf test could help here but messing with autoconf
+ * seems more painful then doing it this way.
+ */
+
+namespace xwmfs
+{
+
+int xsi_strerror_r(int errnum, char *buf, size_t buflen)
+{
+       return strerror_r(errnum, buf, buflen);
+}
+
+} // end ns
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/src/fuse/DirEntry.hxx 
new/xwmfs-0.86/src/fuse/DirEntry.hxx
--- old/xwmfs-0.84/src/fuse/DirEntry.hxx        2017-09-21 18:25:58.000000000 
+0200
+++ new/xwmfs-0.86/src/fuse/DirEntry.hxx        2020-07-15 12:47:05.000000000 
+0200
@@ -23,7 +23,7 @@
  *     For now DirEntries are always read-only as we can't create new files
  *     in the XWMFS (yet).
  **/
-struct DirEntry :
+class DirEntry :
        public Entry
 {
 public: // types
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/src/fuse/Entry.hxx 
new/xwmfs-0.86/src/fuse/Entry.hxx
--- old/xwmfs-0.84/src/fuse/Entry.hxx   2017-09-21 21:21:14.000000000 +0200
+++ new/xwmfs-0.86/src/fuse/Entry.hxx   2020-07-15 12:47:05.000000000 +0200
@@ -4,6 +4,9 @@
 // C++
 #include <atomic>
 
+// POSIX
+#include <unistd.h>
+
 // xwmfs
 #include "common/Helper.hxx"
 
@@ -14,8 +17,8 @@
 {
 
 // fwd. declarations
-struct DirEntry;
-struct FileEntry;
+class DirEntry;
+class FileEntry;
 class AbortHandler;
 class OpenContext;
 class Condition;
@@ -28,7 +31,7 @@
  *     use an enumeration for differentiation of specific types to avoid too
  *     high performance penalties due to RTTI.
  **/
-struct Entry
+class Entry
 {
 public: // types
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/src/fuse/FileEntry.hxx 
new/xwmfs-0.86/src/fuse/FileEntry.hxx
--- old/xwmfs-0.84/src/fuse/FileEntry.hxx       2017-09-21 18:11:17.000000000 
+0200
+++ new/xwmfs-0.86/src/fuse/FileEntry.hxx       2020-07-15 12:47:05.000000000 
+0200
@@ -47,10 +47,11 @@
  *     via specializations of FileEntry that overwrite the write-function
  *     accordingly to do something sensible.
  **/
-struct FileEntry :
+class FileEntry :
        public Entry,
        public std::stringstream
 {
+public:
        /**
         * \brief
         *      Create a new FileEntry with name \c n, being read-write if \c
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/src/main/WindowFileEntry.hxx 
new/xwmfs-0.86/src/main/WindowFileEntry.hxx
--- old/xwmfs-0.84/src/main/WindowFileEntry.hxx 2017-09-02 14:39:13.000000000 
+0200
+++ new/xwmfs-0.86/src/main/WindowFileEntry.hxx 2020-07-15 12:47:05.000000000 
+0200
@@ -16,9 +16,10 @@
  *     the file system. Depending on the actual file called the right
  *     operations are performed at the associated window.
  **/
-struct WindowFileEntry :
+class WindowFileEntry :
        public FileEntry
 {
+public:
        //! Creates a WindowFileEntry associated with \c win
        WindowFileEntry(
                const std::string &n,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xwmfs-0.84/src/x11/XWindow.cxx 
new/xwmfs-0.86/src/x11/XWindow.cxx
--- old/xwmfs-0.84/src/x11/XWindow.cxx  2020-03-22 13:03:40.000000000 +0100
+++ new/xwmfs-0.86/src/x11/XWindow.cxx  2020-05-12 16:18:43.000000000 +0200
@@ -639,6 +639,7 @@
  *
  * allow to outline the above template code
  */
+template void XWindow::getProperty(const Atom, Property<int>&, const 
PropertyInfo*) const;
 template void XWindow::getProperty(const Atom, Property<unsigned long>&, const 
PropertyInfo*) const;
 template void XWindow::getProperty(const Atom, Property<const char*>&, const 
PropertyInfo*) const;
 template void XWindow::getProperty(const Atom, Property<std::vector<XAtom> >&, 
const PropertyInfo*) const;

Reply via email to