Hello community, here is the log from the commit of package watchman for openSUSE:Factory checked in at 2017-06-21 13:58:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/watchman (Old) and /work/SRC/openSUSE:Factory/.watchman.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "watchman" Wed Jun 21 13:58:02 2017 rev:2 rq:505115 version:unknown Changes: -------- --- /work/SRC/openSUSE:Factory/watchman/watchman.changes 2016-12-02 16:41:23.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.watchman.new/watchman.changes 2017-06-21 13:58:05.471756797 +0200 @@ -1,0 +2,5 @@ +Tue Jun 20 15:40:15 UTC 2017 - matthias.gerst...@suse.com + +- fallthrough.diff: fix gcc 7 build issues + +------------------------------------------------------------------- New: ---- fallthrough.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ watchman.spec ++++++ --- /var/tmp/diff_new_pack.GbVTjV/_old 2017-06-21 13:58:06.263645095 +0200 +++ /var/tmp/diff_new_pack.GbVTjV/_new 2017-06-21 13:58:06.263645095 +0200 @@ -1,7 +1,7 @@ # # spec file for package watchman # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -30,9 +30,9 @@ Release: 0 Url: https://facebook.github.io/watchman/ Summary: A file watching service +# the thirdparty code is partially MIT-licensed or at least some such License: Apache-2.0 and MIT Group: System/Monitoring -# the thirdparty code is partially MIT-licensed or at least some such Source0: https://github.com/facebook/watchman/archive/v%version.tar.gz # tmpfiles.d configuration for statedir Source1: watchman.conf @@ -41,6 +41,11 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build # prevent the build system overwriting the autotools docdir in a hard-coded way Patch0: %{name}_4.7.0_makefile-am.diff +# fix build with gcc 7 regarding switch/case fall through logic +# this is already fixed upstream, but they have no new release and also +# refactored a lot of code, for example hash.c is now hash.cpp, that's why I +# made my own patch against 4.7.0 +Patch1: fallthrough.diff PreReq: %fillup_prereq %description @@ -62,9 +67,9 @@ %package python Summary: A python package for talking to the watchman service +# from python/setup.py License: MIT Group: System/Monitoring -# from python/setup.py Version: 1.3.0 Release: 0 Requires: python @@ -88,6 +93,7 @@ %prep %setup -q %patch0 +%patch1 -p 1 # There is some basic support for watchman to run under systemd: # ++++++ fallthrough.diff ++++++ Index: watchman-4.7.0/hash.c =================================================================== --- watchman-4.7.0.orig/hash.c +++ watchman-4.7.0/hash.c @@ -225,17 +225,17 @@ uint32_t w_hash_bytes(const void *key, s /*-------------------------------- last block: affect all 32 bits of (c) */ switch(length) /* all the case statements fall through */ { - case 12: c+=((uint32_t)k[11])<<24; - case 11: c+=((uint32_t)k[10])<<16; - case 10: c+=((uint32_t)k[9])<<8; - case 9 : c+=k[8]; - case 8 : b+=((uint32_t)k[7])<<24; - case 7 : b+=((uint32_t)k[6])<<16; - case 6 : b+=((uint32_t)k[5])<<8; - case 5 : b+=k[4]; - case 4 : a+=((uint32_t)k[3])<<24; - case 3 : a+=((uint32_t)k[2])<<16; - case 2 : a+=((uint32_t)k[1])<<8; + case 12: c+=((uint32_t)k[11])<<24; /* fall through */ + case 11: c+=((uint32_t)k[10])<<16; /* fall through */ + case 10: c+=((uint32_t)k[9])<<8; /* fall through */ + case 9 : c+=k[8]; /* fall through */ + case 8 : b+=((uint32_t)k[7])<<24; /* fall through */ + case 7 : b+=((uint32_t)k[6])<<16; /* fall through */ + case 6 : b+=((uint32_t)k[5])<<8; /* fall through */ + case 5 : b+=k[4]; /* fall through */ + case 4 : a+=((uint32_t)k[3])<<24; /* fall through */ + case 3 : a+=((uint32_t)k[2])<<16; /* fall through */ + case 2 : a+=((uint32_t)k[1])<<8; /* fall through */ case 1 : a+=k[0]; break; case 0 : return c;