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;

Reply via email to