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;
