Hello community,

here is the log from the commit of package rubygem-rb-fsevent for 
openSUSE:Factory checked in at 2016-11-07 12:23:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-rb-fsevent (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-rb-fsevent.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-rb-fsevent"

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-rb-fsevent/rubygem-rb-fsevent.changes    
2016-03-01 09:40:17.000000000 +0100
+++ 
/work/SRC/openSUSE:Factory/.rubygem-rb-fsevent.new/rubygem-rb-fsevent.changes   
    2016-11-07 12:23:23.000000000 +0100
@@ -1,0 +2,6 @@
+Tue Oct 25 04:42:31 UTC 2016 - co...@suse.com
+
+- updated to version 0.9.8
+  no changelog found
+
+-------------------------------------------------------------------

Old:
----
  rb-fsevent-0.9.7.gem

New:
----
  rb-fsevent-0.9.8.gem

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

Other differences:
------------------
++++++ rubygem-rb-fsevent.spec ++++++
--- /var/tmp/diff_new_pack.8y81WD/_old  2016-11-07 12:23:24.000000000 +0100
+++ /var/tmp/diff_new_pack.8y81WD/_new  2016-11-07 12:23:24.000000000 +0100
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-rb-fsevent
-Version:        0.9.7
+Version:        0.9.8
 Release:        0
 %define mod_name rb-fsevent
 %define mod_full_name %{mod_name}-%{version}

++++++ rb-fsevent-0.9.7.gem -> rb-fsevent-0.9.8.gem ++++++
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/fsevent_watch/TSICTString.c 
new/ext/fsevent_watch/TSICTString.c
--- old/ext/fsevent_watch/TSICTString.c 2015-12-29 15:49:45.000000000 +0100
+++ new/ext/fsevent_watch/TSICTString.c 2016-10-24 20:23:48.000000000 +0200
@@ -113,27 +113,6 @@
     return string;
 }
 
-static inline CFDataRef TSICTStringCreateDataWithDataOfTypeAndFormat(CFDataRef 
data, TSITStringTag type, TSITStringFormat format)
-{
-    CFRetain(data);
-
-    if (format == kTSITStringFormatDefault) {
-        format = TSICTStringGetDefaultFormat();
-    }
-
-    TStringIRep* rep = TSICTStringCreateWithDataOfTypeAndFormat(data, type, 
format);
-    if (rep == NULL) {
-        return NULL;
-    }
-
-    CFDataRef result = 
TSICTStringCreateDataFromIntermediateRepresentation(rep);
-
-    TSICTStringDestroy(rep);
-    CFRelease(data);
-
-    return result;
-}
-
 static inline void TSICTStringAppendObjectToMutableDataWithFormat(CFTypeRef 
object, CFMutableDataRef buffer, TSITStringFormat format)
 {
     if (object == NULL) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/fsevent_watch/main.c new/ext/fsevent_watch/main.c
--- old/ext/fsevent_watch/main.c        2015-12-29 15:49:45.000000000 +0100
+++ new/ext/fsevent_watch/main.c        2016-10-24 20:23:48.000000000 +0200
@@ -1,4 +1,5 @@
 #include "common.h"
+#include "signal_handlers.h"
 #include "cli.h"
 #include "FSEventsFix.h"
 
@@ -470,6 +471,7 @@
 
 int main(int argc, const char* argv[])
 {
+  install_signal_handlers();
   parse_cli_settings(argc, argv);
 
   if (needs_fsevents_fix) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/fsevent_watch/signal_handlers.c 
new/ext/fsevent_watch/signal_handlers.c
--- old/ext/fsevent_watch/signal_handlers.c     1970-01-01 01:00:00.000000000 
+0100
+++ new/ext/fsevent_watch/signal_handlers.c     2016-10-24 20:23:48.000000000 
+0200
@@ -0,0 +1,66 @@
+#include "signal_handlers.h"
+#include <fcntl.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/time.h>
+#include <unistd.h>
+
+
+#define PPID_ALARM_INTERVAL 2 // send SIGALRM every this seconds
+
+
+static pid_t orig_ppid;
+
+
+static void signal_handler(int _) {
+  exit(EXIT_FAILURE);
+}
+
+static void check_ppid(void) {
+  if (getppid() != orig_ppid) {
+    exit(EXIT_FAILURE);
+  }
+}
+
+static void check_stdout_open(void) {
+  if (fcntl(STDOUT_FILENO, F_GETFD) < 0) {
+    exit(EXIT_FAILURE);
+  }
+}
+
+static void alarm_handler(int _) {
+  check_ppid();
+  check_stdout_open();
+  alarm(PPID_ALARM_INTERVAL);
+  signal(SIGALRM, alarm_handler);
+}
+
+static void die(const char *msg) {
+  fprintf(stderr, "\nFATAL: %s\n", msg);
+  abort();
+}
+
+static void install_signal_handler(int sig, void (*handler)(int)) {
+  if (signal(sig, handler) == SIG_ERR) {
+    die("Could not install signal handler");
+  }
+}
+
+void install_signal_handlers(void) {
+  // check pipe is still connected
+  check_stdout_open();
+
+  // watch getppid() every PPID_ALARM_INTERVAL seconds 
+  orig_ppid = getppid();
+  if (orig_ppid <= 1) {
+    die("prematurely zombied");
+  }
+  install_signal_handler(SIGALRM, alarm_handler);
+  alarm(PPID_ALARM_INTERVAL);
+
+  // be sure to exit on SIGHUP, SIGPIPE
+  install_signal_handler(SIGHUP,  signal_handler);
+  install_signal_handler(SIGPIPE, signal_handler);
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ext/fsevent_watch/signal_handlers.h 
new/ext/fsevent_watch/signal_handlers.h
--- old/ext/fsevent_watch/signal_handlers.h     1970-01-01 01:00:00.000000000 
+0100
+++ new/ext/fsevent_watch/signal_handlers.h     2016-10-24 20:23:48.000000000 
+0200
@@ -0,0 +1,16 @@
+/**
+ * @headerfile signal_handlers.h
+ * Signal handlers to stop the zombie hordes
+ *
+ * Catch and handle signals better so that we die faster like a good meat 
puppet.
+ */
+
+
+#ifndef fsevent_watch_signal_handlers_h
+#define fsevent_watch_signal_handlers_h
+
+
+void install_signal_handlers(void);
+
+
+#endif // fsevent_watch_signal_handlers_h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rb-fsevent/version.rb 
new/lib/rb-fsevent/version.rb
--- old/lib/rb-fsevent/version.rb       2015-12-29 15:49:45.000000000 +0100
+++ new/lib/rb-fsevent/version.rb       2016-10-24 20:23:48.000000000 +0200
@@ -1,5 +1,5 @@
 # -*- encoding: utf-8 -*-
 
 class FSEvent
-  VERSION = '0.9.7'
+  VERSION = '0.9.8'
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2015-12-29 15:49:45.000000000 +0100
+++ new/metadata        2016-10-24 20:23:48.000000000 +0200
@@ -1,7 +1,7 @@
 --- !ruby/object:Gem::Specification
 name: rb-fsevent
 version: !ruby/object:Gem::Version
-  version: 0.9.7
+  version: 0.9.8
 platform: ruby
 authors:
 - Thibaud Guillaume-Gentil
@@ -9,7 +9,7 @@
 autorequire: 
 bindir: bin
 cert_chain: []
-date: 2015-12-29 00:00:00.000000000 Z
+date: 2016-10-24 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: bundler
@@ -80,6 +80,8 @@
 - ext/fsevent_watch/compat.h
 - ext/fsevent_watch/defines.h
 - ext/fsevent_watch/main.c
+- ext/fsevent_watch/signal_handlers.c
+- ext/fsevent_watch/signal_handlers.h
 - ext/rakefile.rb
 - lib/rb-fsevent.rb
 - lib/rb-fsevent/fsevent.rb
@@ -105,7 +107,7 @@
       version: '0'
 requirements: []
 rubyforge_project: 
-rubygems_version: 2.5.1
+rubygems_version: 2.4.5.1
 signing_key: 
 specification_version: 4
 summary: Very simple & usable FSEvents API


Reply via email to