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