Hello community,

here is the log from the commit of package tevent for openSUSE:Factory checked 
in at 2016-02-25 21:59:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tevent (Old)
 and      /work/SRC/openSUSE:Factory/.tevent.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tevent"

Changes:
--------
--- /work/SRC/openSUSE:Factory/tevent/tevent-man.changes        2015-11-24 
22:21:09.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.tevent.new/tevent-man.changes   2016-02-25 
22:37:16.000000000 +0100
@@ -1,0 +2,15 @@
+Sun Feb 21 16:53:17 UTC 2016 - [email protected]
+
+- Avoid a file collision for non SUSE build targets; (bsc#966174).
+
+-------------------------------------------------------------------
+Wed Feb 19 15:48:45 UTC 2016 - [email protected]
+
+- Update to 0.9.28; (bsc#954658).
+  + Fix memory leak when old signal action restored (bso#11742).
+- Update to 0.9.27.
+  + Fix bug in poll backend - poll_event_loop_poll() exits the for loop on
+    POLLNVAL instead of continuing to find an event that is ready.
+  + Fix ETIME handling for Solaris event ports (bso#11728).
+
+-------------------------------------------------------------------
tevent.changes: same change

Old:
----
  tevent-0.9.26.tar.asc
  tevent-0.9.26.tar.gz

New:
----
  tevent-0.9.28.tar.asc
  tevent-0.9.28.tar.gz

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

Other differences:
------------------
++++++ tevent-man.spec ++++++
--- /var/tmp/diff_new_pack.Xfshfk/_old  2016-02-25 22:37:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Xfshfk/_new  2016-02-25 22:37:18.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package tevent-man
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -32,7 +32,6 @@
 BuildRequires:  doxygen
 %else
 Name:           tevent
-#!BuildIgnore: libtalloc
 BuildRequires:  libtalloc-devel >= %{talloc_version}
 %if 0%{?suse_version} > 1020
 BuildRequires:  pkg-config
@@ -51,7 +50,7 @@
 %define        build_make_smp_mflags %{?jobs:-j%jobs}
 %endif
 Url:            http://tevent.samba.org/
-Version:        0.9.26
+Version:        0.9.28
 Release:        0
 Summary:        An event system based on the talloc memory management library
 License:        GPL-3.0+
@@ -74,7 +73,11 @@
 
 %if ! %{build_man}
 
+%if 0%{?suse_version} > 0
 %define libtevent_name libtevent0
+%else
+%define libtevent_name libtevent
+%endif
 %package -n %{libtevent_name}
 PreReq:         /sbin/ldconfig
 Summary:        Samba tevent Library

++++++ tevent.spec ++++++
--- /var/tmp/diff_new_pack.Xfshfk/_old  2016-02-25 22:37:18.000000000 +0100
+++ /var/tmp/diff_new_pack.Xfshfk/_new  2016-02-25 22:37:18.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package tevent-man
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 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
@@ -32,7 +32,6 @@
 BuildRequires:  doxygen
 %else
 Name:           tevent
-#!BuildIgnore: libtalloc
 BuildRequires:  libtalloc-devel >= %{talloc_version}
 %if 0%{?suse_version} > 1020
 BuildRequires:  pkg-config
@@ -51,7 +50,7 @@
 %define        build_make_smp_mflags %{?jobs:-j%jobs}
 %endif
 Url:            http://tevent.samba.org/
-Version:        0.9.26
+Version:        0.9.28
 Release:        0
 Summary:        An event system based on the talloc memory management library
 License:        GPL-3.0+
@@ -74,7 +73,11 @@
 
 %if ! %{build_man}
 
+%if 0%{?suse_version} > 0
 %define libtevent_name libtevent0
+%else
+%define libtevent_name libtevent
+%endif
 %package -n %{libtevent_name}
 PreReq:         /sbin/ldconfig
 Summary:        Samba tevent Library

++++++ tevent-0.9.26.tar.gz -> tevent-0.9.28.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/ABI/tevent-0.9.27.sigs 
new/tevent-0.9.28/ABI/tevent-0.9.27.sigs
--- old/tevent-0.9.26/ABI/tevent-0.9.27.sigs    1970-01-01 01:00:00.000000000 
+0100
+++ new/tevent-0.9.28/ABI/tevent-0.9.27.sigs    2016-02-19 22:02:02.000000000 
+0100
@@ -0,0 +1,90 @@
+_tevent_add_fd: struct tevent_fd *(struct tevent_context *, TALLOC_CTX *, int, 
uint16_t, tevent_fd_handler_t, void *, const char *, const char *)
+_tevent_add_signal: struct tevent_signal *(struct tevent_context *, TALLOC_CTX 
*, int, int, tevent_signal_handler_t, void *, const char *, const char *)
+_tevent_add_timer: struct tevent_timer *(struct tevent_context *, TALLOC_CTX 
*, struct timeval, tevent_timer_handler_t, void *, const char *, const char *)
+_tevent_create_immediate: struct tevent_immediate *(TALLOC_CTX *, const char *)
+_tevent_loop_once: int (struct tevent_context *, const char *)
+_tevent_loop_until: int (struct tevent_context *, bool (*)(void *), void *, 
const char *)
+_tevent_loop_wait: int (struct tevent_context *, const char *)
+_tevent_queue_create: struct tevent_queue *(TALLOC_CTX *, const char *, const 
char *)
+_tevent_req_callback_data: void *(struct tevent_req *)
+_tevent_req_cancel: bool (struct tevent_req *, const char *)
+_tevent_req_create: struct tevent_req *(TALLOC_CTX *, void *, size_t, const 
char *, const char *)
+_tevent_req_data: void *(struct tevent_req *)
+_tevent_req_done: void (struct tevent_req *, const char *)
+_tevent_req_error: bool (struct tevent_req *, uint64_t, const char *)
+_tevent_req_nomem: bool (const void *, struct tevent_req *, const char *)
+_tevent_req_notify_callback: void (struct tevent_req *, const char *)
+_tevent_req_oom: void (struct tevent_req *, const char *)
+_tevent_schedule_immediate: void (struct tevent_immediate *, struct 
tevent_context *, tevent_immediate_handler_t, void *, const char *, const char 
*)
+tevent_backend_list: const char **(TALLOC_CTX *)
+tevent_cleanup_pending_signal_handlers: void (struct tevent_signal *)
+tevent_common_add_fd: struct tevent_fd *(struct tevent_context *, TALLOC_CTX 
*, int, uint16_t, tevent_fd_handler_t, void *, const char *, const char *)
+tevent_common_add_signal: struct tevent_signal *(struct tevent_context *, 
TALLOC_CTX *, int, int, tevent_signal_handler_t, void *, const char *, const 
char *)
+tevent_common_add_timer: struct tevent_timer *(struct tevent_context *, 
TALLOC_CTX *, struct timeval, tevent_timer_handler_t, void *, const char *, 
const char *)
+tevent_common_add_timer_v2: struct tevent_timer *(struct tevent_context *, 
TALLOC_CTX *, struct timeval, tevent_timer_handler_t, void *, const char *, 
const char *)
+tevent_common_check_signal: int (struct tevent_context *)
+tevent_common_context_destructor: int (struct tevent_context *)
+tevent_common_fd_destructor: int (struct tevent_fd *)
+tevent_common_fd_get_flags: uint16_t (struct tevent_fd *)
+tevent_common_fd_set_close_fn: void (struct tevent_fd *, tevent_fd_close_fn_t)
+tevent_common_fd_set_flags: void (struct tevent_fd *, uint16_t)
+tevent_common_loop_immediate: bool (struct tevent_context *)
+tevent_common_loop_timer_delay: struct timeval (struct tevent_context *)
+tevent_common_loop_wait: int (struct tevent_context *, const char *)
+tevent_common_schedule_immediate: void (struct tevent_immediate *, struct 
tevent_context *, tevent_immediate_handler_t, void *, const char *, const char 
*)
+tevent_context_init: struct tevent_context *(TALLOC_CTX *)
+tevent_context_init_byname: struct tevent_context *(TALLOC_CTX *, const char *)
+tevent_context_init_ops: struct tevent_context *(TALLOC_CTX *, const struct 
tevent_ops *, void *)
+tevent_debug: void (struct tevent_context *, enum tevent_debug_level, const 
char *, ...)
+tevent_fd_get_flags: uint16_t (struct tevent_fd *)
+tevent_fd_set_auto_close: void (struct tevent_fd *)
+tevent_fd_set_close_fn: void (struct tevent_fd *, tevent_fd_close_fn_t)
+tevent_fd_set_flags: void (struct tevent_fd *, uint16_t)
+tevent_get_trace_callback: void (struct tevent_context *, 
tevent_trace_callback_t *, void *)
+tevent_loop_allow_nesting: void (struct tevent_context *)
+tevent_loop_set_nesting_hook: void (struct tevent_context *, 
tevent_nesting_hook, void *)
+tevent_num_signals: size_t (void)
+tevent_queue_add: bool (struct tevent_queue *, struct tevent_context *, struct 
tevent_req *, tevent_queue_trigger_fn_t, void *)
+tevent_queue_add_entry: struct tevent_queue_entry *(struct tevent_queue *, 
struct tevent_context *, struct tevent_req *, tevent_queue_trigger_fn_t, void *)
+tevent_queue_add_optimize_empty: struct tevent_queue_entry *(struct 
tevent_queue *, struct tevent_context *, struct tevent_req *, 
tevent_queue_trigger_fn_t, void *)
+tevent_queue_length: size_t (struct tevent_queue *)
+tevent_queue_running: bool (struct tevent_queue *)
+tevent_queue_start: void (struct tevent_queue *)
+tevent_queue_stop: void (struct tevent_queue *)
+tevent_queue_wait_recv: bool (struct tevent_req *)
+tevent_queue_wait_send: struct tevent_req *(TALLOC_CTX *, struct 
tevent_context *, struct tevent_queue *)
+tevent_re_initialise: int (struct tevent_context *)
+tevent_register_backend: bool (const char *, const struct tevent_ops *)
+tevent_req_default_print: char *(struct tevent_req *, TALLOC_CTX *)
+tevent_req_defer_callback: void (struct tevent_req *, struct tevent_context *)
+tevent_req_is_error: bool (struct tevent_req *, enum tevent_req_state *, 
uint64_t *)
+tevent_req_is_in_progress: bool (struct tevent_req *)
+tevent_req_poll: bool (struct tevent_req *, struct tevent_context *)
+tevent_req_post: struct tevent_req *(struct tevent_req *, struct 
tevent_context *)
+tevent_req_print: char *(TALLOC_CTX *, struct tevent_req *)
+tevent_req_received: void (struct tevent_req *)
+tevent_req_set_callback: void (struct tevent_req *, tevent_req_fn, void *)
+tevent_req_set_cancel_fn: void (struct tevent_req *, tevent_req_cancel_fn)
+tevent_req_set_cleanup_fn: void (struct tevent_req *, tevent_req_cleanup_fn)
+tevent_req_set_endtime: bool (struct tevent_req *, struct tevent_context *, 
struct timeval)
+tevent_req_set_print_fn: void (struct tevent_req *, tevent_req_print_fn)
+tevent_sa_info_queue_count: size_t (void)
+tevent_set_abort_fn: void (void (*)(const char *))
+tevent_set_debug: int (struct tevent_context *, void (*)(void *, enum 
tevent_debug_level, const char *, va_list), void *)
+tevent_set_debug_stderr: int (struct tevent_context *)
+tevent_set_default_backend: void (const char *)
+tevent_set_trace_callback: void (struct tevent_context *, 
tevent_trace_callback_t, void *)
+tevent_signal_support: bool (struct tevent_context *)
+tevent_thread_proxy_create: struct tevent_thread_proxy *(struct tevent_context 
*)
+tevent_thread_proxy_schedule: void (struct tevent_thread_proxy *, struct 
tevent_immediate **, tevent_immediate_handler_t, void *)
+tevent_timeval_add: struct timeval (const struct timeval *, uint32_t, uint32_t)
+tevent_timeval_compare: int (const struct timeval *, const struct timeval *)
+tevent_timeval_current: struct timeval (void)
+tevent_timeval_current_ofs: struct timeval (uint32_t, uint32_t)
+tevent_timeval_is_zero: bool (const struct timeval *)
+tevent_timeval_set: struct timeval (uint32_t, uint32_t)
+tevent_timeval_until: struct timeval (const struct timeval *, const struct 
timeval *)
+tevent_timeval_zero: struct timeval (void)
+tevent_trace_point_callback: void (struct tevent_context *, enum 
tevent_trace_point)
+tevent_wakeup_recv: bool (struct tevent_req *)
+tevent_wakeup_send: struct tevent_req *(TALLOC_CTX *, struct tevent_context *, 
struct timeval)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/ABI/tevent-0.9.28.sigs 
new/tevent-0.9.28/ABI/tevent-0.9.28.sigs
--- old/tevent-0.9.26/ABI/tevent-0.9.28.sigs    1970-01-01 01:00:00.000000000 
+0100
+++ new/tevent-0.9.28/ABI/tevent-0.9.28.sigs    2016-02-19 22:05:17.000000000 
+0100
@@ -0,0 +1,90 @@
+_tevent_add_fd: struct tevent_fd *(struct tevent_context *, TALLOC_CTX *, int, 
uint16_t, tevent_fd_handler_t, void *, const char *, const char *)
+_tevent_add_signal: struct tevent_signal *(struct tevent_context *, TALLOC_CTX 
*, int, int, tevent_signal_handler_t, void *, const char *, const char *)
+_tevent_add_timer: struct tevent_timer *(struct tevent_context *, TALLOC_CTX 
*, struct timeval, tevent_timer_handler_t, void *, const char *, const char *)
+_tevent_create_immediate: struct tevent_immediate *(TALLOC_CTX *, const char *)
+_tevent_loop_once: int (struct tevent_context *, const char *)
+_tevent_loop_until: int (struct tevent_context *, bool (*)(void *), void *, 
const char *)
+_tevent_loop_wait: int (struct tevent_context *, const char *)
+_tevent_queue_create: struct tevent_queue *(TALLOC_CTX *, const char *, const 
char *)
+_tevent_req_callback_data: void *(struct tevent_req *)
+_tevent_req_cancel: bool (struct tevent_req *, const char *)
+_tevent_req_create: struct tevent_req *(TALLOC_CTX *, void *, size_t, const 
char *, const char *)
+_tevent_req_data: void *(struct tevent_req *)
+_tevent_req_done: void (struct tevent_req *, const char *)
+_tevent_req_error: bool (struct tevent_req *, uint64_t, const char *)
+_tevent_req_nomem: bool (const void *, struct tevent_req *, const char *)
+_tevent_req_notify_callback: void (struct tevent_req *, const char *)
+_tevent_req_oom: void (struct tevent_req *, const char *)
+_tevent_schedule_immediate: void (struct tevent_immediate *, struct 
tevent_context *, tevent_immediate_handler_t, void *, const char *, const char 
*)
+tevent_backend_list: const char **(TALLOC_CTX *)
+tevent_cleanup_pending_signal_handlers: void (struct tevent_signal *)
+tevent_common_add_fd: struct tevent_fd *(struct tevent_context *, TALLOC_CTX 
*, int, uint16_t, tevent_fd_handler_t, void *, const char *, const char *)
+tevent_common_add_signal: struct tevent_signal *(struct tevent_context *, 
TALLOC_CTX *, int, int, tevent_signal_handler_t, void *, const char *, const 
char *)
+tevent_common_add_timer: struct tevent_timer *(struct tevent_context *, 
TALLOC_CTX *, struct timeval, tevent_timer_handler_t, void *, const char *, 
const char *)
+tevent_common_add_timer_v2: struct tevent_timer *(struct tevent_context *, 
TALLOC_CTX *, struct timeval, tevent_timer_handler_t, void *, const char *, 
const char *)
+tevent_common_check_signal: int (struct tevent_context *)
+tevent_common_context_destructor: int (struct tevent_context *)
+tevent_common_fd_destructor: int (struct tevent_fd *)
+tevent_common_fd_get_flags: uint16_t (struct tevent_fd *)
+tevent_common_fd_set_close_fn: void (struct tevent_fd *, tevent_fd_close_fn_t)
+tevent_common_fd_set_flags: void (struct tevent_fd *, uint16_t)
+tevent_common_loop_immediate: bool (struct tevent_context *)
+tevent_common_loop_timer_delay: struct timeval (struct tevent_context *)
+tevent_common_loop_wait: int (struct tevent_context *, const char *)
+tevent_common_schedule_immediate: void (struct tevent_immediate *, struct 
tevent_context *, tevent_immediate_handler_t, void *, const char *, const char 
*)
+tevent_context_init: struct tevent_context *(TALLOC_CTX *)
+tevent_context_init_byname: struct tevent_context *(TALLOC_CTX *, const char *)
+tevent_context_init_ops: struct tevent_context *(TALLOC_CTX *, const struct 
tevent_ops *, void *)
+tevent_debug: void (struct tevent_context *, enum tevent_debug_level, const 
char *, ...)
+tevent_fd_get_flags: uint16_t (struct tevent_fd *)
+tevent_fd_set_auto_close: void (struct tevent_fd *)
+tevent_fd_set_close_fn: void (struct tevent_fd *, tevent_fd_close_fn_t)
+tevent_fd_set_flags: void (struct tevent_fd *, uint16_t)
+tevent_get_trace_callback: void (struct tevent_context *, 
tevent_trace_callback_t *, void *)
+tevent_loop_allow_nesting: void (struct tevent_context *)
+tevent_loop_set_nesting_hook: void (struct tevent_context *, 
tevent_nesting_hook, void *)
+tevent_num_signals: size_t (void)
+tevent_queue_add: bool (struct tevent_queue *, struct tevent_context *, struct 
tevent_req *, tevent_queue_trigger_fn_t, void *)
+tevent_queue_add_entry: struct tevent_queue_entry *(struct tevent_queue *, 
struct tevent_context *, struct tevent_req *, tevent_queue_trigger_fn_t, void *)
+tevent_queue_add_optimize_empty: struct tevent_queue_entry *(struct 
tevent_queue *, struct tevent_context *, struct tevent_req *, 
tevent_queue_trigger_fn_t, void *)
+tevent_queue_length: size_t (struct tevent_queue *)
+tevent_queue_running: bool (struct tevent_queue *)
+tevent_queue_start: void (struct tevent_queue *)
+tevent_queue_stop: void (struct tevent_queue *)
+tevent_queue_wait_recv: bool (struct tevent_req *)
+tevent_queue_wait_send: struct tevent_req *(TALLOC_CTX *, struct 
tevent_context *, struct tevent_queue *)
+tevent_re_initialise: int (struct tevent_context *)
+tevent_register_backend: bool (const char *, const struct tevent_ops *)
+tevent_req_default_print: char *(struct tevent_req *, TALLOC_CTX *)
+tevent_req_defer_callback: void (struct tevent_req *, struct tevent_context *)
+tevent_req_is_error: bool (struct tevent_req *, enum tevent_req_state *, 
uint64_t *)
+tevent_req_is_in_progress: bool (struct tevent_req *)
+tevent_req_poll: bool (struct tevent_req *, struct tevent_context *)
+tevent_req_post: struct tevent_req *(struct tevent_req *, struct 
tevent_context *)
+tevent_req_print: char *(TALLOC_CTX *, struct tevent_req *)
+tevent_req_received: void (struct tevent_req *)
+tevent_req_set_callback: void (struct tevent_req *, tevent_req_fn, void *)
+tevent_req_set_cancel_fn: void (struct tevent_req *, tevent_req_cancel_fn)
+tevent_req_set_cleanup_fn: void (struct tevent_req *, tevent_req_cleanup_fn)
+tevent_req_set_endtime: bool (struct tevent_req *, struct tevent_context *, 
struct timeval)
+tevent_req_set_print_fn: void (struct tevent_req *, tevent_req_print_fn)
+tevent_sa_info_queue_count: size_t (void)
+tevent_set_abort_fn: void (void (*)(const char *))
+tevent_set_debug: int (struct tevent_context *, void (*)(void *, enum 
tevent_debug_level, const char *, va_list), void *)
+tevent_set_debug_stderr: int (struct tevent_context *)
+tevent_set_default_backend: void (const char *)
+tevent_set_trace_callback: void (struct tevent_context *, 
tevent_trace_callback_t, void *)
+tevent_signal_support: bool (struct tevent_context *)
+tevent_thread_proxy_create: struct tevent_thread_proxy *(struct tevent_context 
*)
+tevent_thread_proxy_schedule: void (struct tevent_thread_proxy *, struct 
tevent_immediate **, tevent_immediate_handler_t, void *)
+tevent_timeval_add: struct timeval (const struct timeval *, uint32_t, uint32_t)
+tevent_timeval_compare: int (const struct timeval *, const struct timeval *)
+tevent_timeval_current: struct timeval (void)
+tevent_timeval_current_ofs: struct timeval (uint32_t, uint32_t)
+tevent_timeval_is_zero: bool (const struct timeval *)
+tevent_timeval_set: struct timeval (uint32_t, uint32_t)
+tevent_timeval_until: struct timeval (const struct timeval *, const struct 
timeval *)
+tevent_timeval_zero: struct timeval (void)
+tevent_trace_point_callback: void (struct tevent_context *, enum 
tevent_trace_point)
+tevent_wakeup_recv: bool (struct tevent_req *)
+tevent_wakeup_send: struct tevent_req *(TALLOC_CTX *, struct tevent_context *, 
struct timeval)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/buildtools/wafsamba/gccdeps.py 
new/tevent-0.9.28/buildtools/wafsamba/gccdeps.py
--- old/tevent-0.9.26/buildtools/wafsamba/gccdeps.py    2015-11-06 
14:25:51.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/gccdeps.py    1970-01-01 
01:00:00.000000000 +0100
@@ -1,127 +0,0 @@
-# encoding: utf-8
-# Thomas Nagy, 2008-2010 (ita)
-
-"""
-Execute the tasks with gcc -MD, read the dependencies from the .d file
-and prepare the dependency calculation for the next run
-"""
-
-import os, re, threading
-import Task, Logs, Utils, preproc
-from TaskGen import before, after, feature
-
-lock = threading.Lock()
-
-preprocessor_flag = '-MD'
-
-@feature('c', 'cc')
-@before('apply_core')
-def add_mmd_cc(self):
-    if self.env.get_flat('CCFLAGS').find(preprocessor_flag) < 0:
-        self.env.append_value('CCFLAGS', preprocessor_flag)
-
-@feature('cxx')
-@before('apply_core')
-def add_mmd_cxx(self):
-    if self.env.get_flat('CXXFLAGS').find(preprocessor_flag) < 0:
-        self.env.append_value('CXXFLAGS', preprocessor_flag)
-
-def scan(self):
-    "the scanner does not do anything initially"
-    nodes = self.generator.bld.node_deps.get(self.unique_id(), [])
-    names = []
-    return (nodes, names)
-
-re_o = re.compile("\.o$")
-re_src = re.compile("^(\.\.)[\\/](.*)$")
-
-def post_run(self):
-    # The following code is executed by threads, it is not safe, so a lock is 
needed...
-
-    if getattr(self, 'cached', None):
-        return Task.Task.post_run(self)
-
-    name = self.outputs[0].abspath(self.env)
-    name = re_o.sub('.d', name)
-    txt = Utils.readf(name)
-    #os.unlink(name)
-
-    txt = txt.replace('\\\n', '')
-
-    lst = txt.strip().split(':')
-    val = ":".join(lst[1:])
-    val = val.split()
-
-    nodes = []
-    bld = self.generator.bld
-
-    f = re.compile("^("+self.env.variant()+"|\.\.)[\\/](.*)$")
-    for x in val:
-        if os.path.isabs(x):
-
-            if not preproc.go_absolute:
-                continue
-
-            lock.acquire()
-            try:
-                node = bld.root.find_resource(x)
-            finally:
-                lock.release()
-        else:
-            g = re.search(re_src, x)
-            if g:
-                x = g.group(2)
-                lock.acquire()
-                try:
-                    node = bld.bldnode.parent.find_resource(x)
-                finally:
-                    lock.release()
-            else:
-                g = re.search(f, x)
-                if g:
-                    x = g.group(2)
-                    lock.acquire()
-                    try:
-                        node = bld.srcnode.find_resource(x)
-                    finally:
-                        lock.release()
-
-        if id(node) == id(self.inputs[0]):
-            # ignore the source file, it is already in the dependencies
-            # this way, successful config tests may be retrieved from the cache
-            continue
-
-        if not node:
-            raise ValueError('could not find %r for %r' % (x, self))
-        else:
-            nodes.append(node)
-
-    Logs.debug('deps: real scanner for %s returned %s' % (str(self), 
str(nodes)))
-
-    bld.node_deps[self.unique_id()] = nodes
-    bld.raw_deps[self.unique_id()] = []
-
-    try:
-        del self.cache_sig
-    except:
-        pass
-
-    Task.Task.post_run(self)
-
-import Constants, Utils
-def sig_implicit_deps(self):
-    try:
-        return Task.Task.sig_implicit_deps(self)
-    except Utils.WafError:
-        return Constants.SIG_NIL
-
-for name in 'cc cxx'.split():
-    try:
-        cls = Task.TaskBase.classes[name]
-    except KeyError:
-        pass
-    else:
-        cls.post_run = post_run
-        cls.scan = scan
-        cls.sig_implicit_deps = sig_implicit_deps
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/buildtools/wafsamba/samba_abi.py 
new/tevent-0.9.28/buildtools/wafsamba/samba_abi.py
--- old/tevent-0.9.26/buildtools/wafsamba/samba_abi.py  2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/samba_abi.py  2015-12-10 
12:01:40.000000000 +0100
@@ -225,7 +225,7 @@
 def ABI_VSCRIPT(bld, libname, abi_directory, version, vscript, abi_match=None):
     '''generate a vscript file for our public libraries'''
     if abi_directory:
-        source = bld.path.ant_glob('%s/%s-[0-9]*.sigs' % (abi_directory, 
libname))
+        source = bld.path.ant_glob('%s/%s-[0-9]*.sigs' % (abi_directory, 
libname), flat=True)
         def abi_file_key(path):
             return version_key(path[:-len(".sigs")].rsplit("-")[-1])
         source = sorted(source.split(), key=abi_file_key)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/buildtools/wafsamba/samba_autoconf.py 
new/tevent-0.9.28/buildtools/wafsamba/samba_autoconf.py
--- old/tevent-0.9.26/buildtools/wafsamba/samba_autoconf.py     2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/samba_autoconf.py     2015-12-10 
12:01:40.000000000 +0100
@@ -4,7 +4,7 @@
 import Build, Options, preproc, Logs
 from Configure import conf
 from TaskGen import feature
-from samba_utils import TO_LIST, GET_TARGET_TYPE, SET_TARGET_TYPE, runonce, 
unique_list, mkdir_p
+from samba_utils import TO_LIST, GET_TARGET_TYPE, SET_TARGET_TYPE, 
unique_list, mkdir_p
 
 missing_headers = set()
 
@@ -13,7 +13,6 @@
 # to waf a bit easier for those used to autoconf
 # m4 files
 
-@runonce
 @conf
 def DEFINE(conf, d, v, add_to_cflags=False, quote=False):
     '''define a config option'''
@@ -101,6 +100,7 @@
                      type='nolink',
                      execute=0,
                      ccflags=ccflags,
+                     mandatory=False,
                      includes=cpppath,
                      uselib=lib.upper(),
                      msg="Checking for header %s" % h)
@@ -486,6 +486,7 @@
     return conf.check(fragment='int main(void) { return 0; }\n',
                       execute=0,
                       ldflags=ldflags,
+                      mandatory=False,
                       msg="Checking linker accepts %s" % ldflags)
 
 
@@ -569,9 +570,9 @@
 
         (ccflags, ldflags, cpppath) = library_flags(conf, lib)
         if shlib:
-            res = conf.check(features='c cshlib', fragment=fragment, lib=lib, 
uselib_store=lib, ccflags=ccflags, ldflags=ldflags, uselib=lib.upper())
+            res = conf.check(features='c cshlib', fragment=fragment, lib=lib, 
uselib_store=lib, ccflags=ccflags, ldflags=ldflags, uselib=lib.upper(), 
mandatory=False)
         else:
-            res = conf.check(lib=lib, uselib_store=lib, ccflags=ccflags, 
ldflags=ldflags, uselib=lib.upper())
+            res = conf.check(lib=lib, uselib_store=lib, ccflags=ccflags, 
ldflags=ldflags, uselib=lib.upper(), mandatory=False)
 
         if not res:
             if mandatory:
@@ -671,6 +672,7 @@
         execute=0,
         ccflags='-fstack-protector',
         ldflags='-fstack-protector',
+        mandatory=False,
         msg='Checking if toolchain accepts -fstack-protector'):
             conf.ADD_CFLAGS('-fstack-protector')
             conf.ADD_LDFLAGS('-fstack-protector')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/buildtools/wafsamba/samba_bundled.py 
new/tevent-0.9.28/buildtools/wafsamba/samba_bundled.py
--- old/tevent-0.9.26/buildtools/wafsamba/samba_bundled.py      2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/samba_bundled.py      2015-12-10 
12:01:40.000000000 +0100
@@ -3,7 +3,7 @@
 import sys
 import Build, Options, Logs
 from Configure import conf
-from samba_utils import TO_LIST, runonce
+from samba_utils import TO_LIST
 
 def PRIVATE_NAME(bld, name, private_extension, private_library):
     '''possibly rename a library to include a bundled extension'''
@@ -108,7 +108,6 @@
     return ('ALL' in conf.env.PRIVATE_LIBS or
             libname in conf.env.PRIVATE_LIBS)
 
-@runonce
 @conf
 def CHECK_BUNDLED_SYSTEM_PKG(conf, libname, minversion='0.0.0',
         onlyif=None, implied_deps=None, pkg=None):
@@ -122,7 +121,6 @@
                                      implied_deps=implied_deps,
                                      pkg=pkg)
 
-@runonce
 @conf
 def CHECK_BUNDLED_SYSTEM(conf, libname, minversion='0.0.0',
                          checkfunctions=None, headers=None, checkcode=None,
@@ -219,7 +217,6 @@
 def tuplize_version(version):
     return tuple([int(x) for x in version.split(".")])
 
-@runonce
 @conf
 def CHECK_BUNDLED_SYSTEM_PYTHON(conf, libname, modulename, minversion='0.0.0'):
     '''check if a python module is available on the system and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/buildtools/wafsamba/samba_conftests.py 
new/tevent-0.9.28/buildtools/wafsamba/samba_conftests.py
--- old/tevent-0.9.26/buildtools/wafsamba/samba_conftests.py    2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/samba_conftests.py    2015-12-10 
12:01:40.000000000 +0100
@@ -196,7 +196,7 @@
     return v * 2;
 }
 '''
-    return conf.check(features='c cshlib',vnum="1",fragment=snip,msg=msg)
+    return conf.check(features='c cshlib',vnum="1",fragment=snip,msg=msg, 
mandatory=False)
 
 @conf
 def CHECK_NEED_LC(conf, msg):
@@ -258,7 +258,7 @@
     ldb_module = PyImport_ImportModule("ldb");
     return v * 2;
 }'''
-    return conf.check(features='c 
cshlib',uselib='PYEMBED',fragment=snip,msg=msg)
+    return conf.check(features='c 
cshlib',uselib='PYEMBED',fragment=snip,msg=msg, mandatory=False)
 
 # this one is quite complex, and should probably be broken up
 # into several parts. I'd quite like to create a set of CHECK_COMPOUND()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/buildtools/wafsamba/samba_deps.py 
new/tevent-0.9.28/buildtools/wafsamba/samba_deps.py
--- old/tevent-0.9.26/buildtools/wafsamba/samba_deps.py 2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/samba_deps.py 2015-12-10 
12:01:40.000000000 +0100
@@ -260,15 +260,10 @@
 
 
 def check_duplicate_sources(bld, tgt_list):
-    '''see if we are compiling the same source file more than once
-       without an allow_duplicates attribute'''
+    '''see if we are compiling the same source file more than once'''
 
     debug('deps: checking for duplicate sources')
-
     targets = LOCAL_CACHE(bld, 'TARGET_TYPE')
-    ret = True
-
-    global tstart
 
     for t in tgt_list:
         source_list = TO_LIST(getattr(t, 'source', ''))
@@ -286,7 +281,6 @@
 
     # build a list of targets that each source file is part of
     for t in tgt_list:
-        sources = []
         if not targets[t.sname] in [ 'LIBRARY', 'BINARY', 'PYTHON' ]:
             continue
         for obj in t.add_objects:
@@ -306,24 +300,7 @@
             if len(subsystems[s][tname]) > 1:
                 raise Utils.WafError("ERROR: source %s is in more than one 
subsystem of target '%s': %s" % (s, tname, subsystems[s][tname]))
 
-    return ret
-
-
-def check_orphaned_targets(bld, tgt_list):
-    '''check if any build targets are orphaned'''
-
-    target_dict = LOCAL_CACHE(bld, 'TARGET_TYPE')
-
-    debug('deps: checking for orphaned targets')
-
-    for t in tgt_list:
-        if getattr(t, 'samba_used', False):
-            continue
-        type = target_dict[t.sname]
-        if not type in ['BINARY', 'LIBRARY', 'MODULE', 'ET', 'PYTHON']:
-            if re.search('^PIDL_', t.sname) is None:
-                Logs.warn("Target %s of type %s is unused by any other target" 
% (t.sname, type))
-
+    return True
 
 def check_group_ordering(bld, tgt_list):
     '''see if we have any dependencies that violate the group ordering
@@ -366,7 +343,7 @@
                 ret = False
 
     return ret
-
+Build.BuildContext.check_group_ordering = check_group_ordering
 
 def show_final_deps(bld, tgt_list):
     '''show the final dependencies for all targets'''
@@ -1157,15 +1134,13 @@
 
     debug('deps: project rules stage1 completed')
 
-    #check_orphaned_targets(bld, tgt_list)
-
     if not check_duplicate_sources(bld, tgt_list):
         Logs.error("Duplicate sources present - aborting")
         sys.exit(1)
 
     debug("deps: check_duplicate_sources: %f" % (time.clock() - tstart))
 
-    if not check_group_ordering(bld, tgt_list):
+    if not bld.check_group_ordering(tgt_list):
         Logs.error("Bad group ordering - aborting")
         sys.exit(1)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/buildtools/wafsamba/samba_install.py 
new/tevent-0.9.28/buildtools/wafsamba/samba_install.py
--- old/tevent-0.9.26/buildtools/wafsamba/samba_install.py      2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/samba_install.py      2015-12-10 
12:01:40.000000000 +0100
@@ -4,7 +4,7 @@
 # library use
 
 import os
-import Options, Utils
+import Utils
 from TaskGen import feature, before, after
 from samba_utils import LIB_PATH, MODE_755, install_rpath, build_rpath
 
@@ -19,7 +19,7 @@
     install_ldflags = install_rpath(self)
     build_ldflags   = build_rpath(bld)
 
-    if not Options.is_install:
+    if not self.bld.is_install:
         # just need to set rpath if we are not installing
         self.env.RPATH = build_ldflags
         return
@@ -68,7 +68,7 @@
         install_ldflags = install_rpath(self)
         build_ldflags   = build_rpath(bld)
 
-        if not Options.is_install or not getattr(self, 'samba_install', True):
+        if not self.bld.is_install or not getattr(self, 'samba_install', True):
             # just need to set the build rpath if we are not installing
             self.env.RPATH = build_ldflags
             return
@@ -92,6 +92,7 @@
             t = self.clone(self.env)
             t.posted = False
             t.target += '.inst'
+            t.name = self.name + '.inst'
             self.env.RPATH = build_ldflags
         else:
             t = self
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/tevent-0.9.26/buildtools/wafsamba/samba_optimisation.py 
new/tevent-0.9.28/buildtools/wafsamba/samba_optimisation.py
--- old/tevent-0.9.26/buildtools/wafsamba/samba_optimisation.py 2015-11-06 
14:25:51.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/samba_optimisation.py 2015-12-10 
12:01:40.000000000 +0100
@@ -266,24 +266,4 @@
             if val:
                 self.env.append_value(v, val)
 
-@feature('cprogram', 'cshlib', 'cstaticlib')
-@after('apply_lib_vars')
-@before('apply_obj_vars')
-def samba_before_apply_obj_vars(self):
-    """before apply_obj_vars for uselib, this removes the standard pathes"""
 
-    def is_standard_libpath(env, path):
-        for _path in env.STANDARD_LIBPATH:
-            if _path == os.path.normpath(path):
-                return True
-        return False
-
-    v = self.env
-
-    for i in v['RPATH']:
-        if is_standard_libpath(v, i):
-            v['RPATH'].remove(i)
-
-    for i in v['LIBPATH']:
-        if is_standard_libpath(v, i):
-            v['LIBPATH'].remove(i)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/buildtools/wafsamba/samba_patterns.py 
new/tevent-0.9.28/buildtools/wafsamba/samba_patterns.py
--- old/tevent-0.9.26/buildtools/wafsamba/samba_patterns.py     2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/samba_patterns.py     2015-12-10 
12:01:40.000000000 +0100
@@ -7,7 +7,7 @@
     '''print version.h contents'''
     src = task.inputs[0].srcpath(task.env)
 
-    version = samba_version_file(src, task.env.srcdir, env=task.env, 
is_install=task.env.is_install)
+    version = samba_version_file(src, task.env.srcdir, env=task.env, 
is_install=task.generator.bld.is_install)
     string = str(version)
 
     task.outputs[0].write(string)
@@ -25,7 +25,6 @@
                             source= 'VERSION',
                             target=target,
                             always=bld.is_install)
-    t.env.is_install = bld.is_install
 Build.BuildContext.SAMBA_MKVERSION = SAMBA_MKVERSION
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/buildtools/wafsamba/samba_perl.py 
new/tevent-0.9.28/buildtools/wafsamba/samba_perl.py
--- old/tevent-0.9.26/buildtools/wafsamba/samba_perl.py 2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/samba_perl.py 2015-12-10 
12:01:40.000000000 +0100
@@ -5,12 +5,6 @@
 
 @conf
 def SAMBA_CHECK_PERL(conf, mandatory=True, version=(5,0,0)):
-    #
-    # TODO: use the @runonce mechanism for this.
-    # The problem is that @runonce currently does
-    # not seem to work together with @conf...
-    # So @runonce (and/or) @conf needs fixing.
-    #
     if "done" in done:
         return
     done["done"] = True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/buildtools/wafsamba/samba_python.py 
new/tevent-0.9.28/buildtools/wafsamba/samba_python.py
--- old/tevent-0.9.26/buildtools/wafsamba/samba_python.py       2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/samba_python.py       2016-02-19 
22:02:02.000000000 +0100
@@ -1,7 +1,7 @@
 # waf build tool for building IDL files with pidl
 
 import os
-import Build, Logs, Utils
+import Build, Logs, Utils, Configure
 from Configure import conf
 
 @conf
@@ -63,7 +63,12 @@
     del(conf.env.defines['PYTHONARCHDIR'])
 
 def _check_python_headers(conf, mandatory):
-    conf.check_python_headers(mandatory=mandatory)
+    try:
+        Configure.ConfigurationError
+        conf.check_python_headers(mandatory=mandatory)
+    except Configure.ConfigurationError:
+        if mandatory:
+             raise
 
     if conf.env['PYTHON_VERSION'] > '3':
         abi_pattern = os.path.splitext(conf.env['pyext_PATTERN'])[0]
@@ -92,7 +97,18 @@
     # when we support static python modules we'll need to gather
     # the list from all the SAMBA_PYTHON() targets
     if init_function_sentinel is not None:
-        cflags += '-DSTATIC_LIBPYTHON_MODULES=%s' % init_function_sentinel
+        cflags += ' -DSTATIC_LIBPYTHON_MODULES=%s' % init_function_sentinel
+
+    # From https://docs.python.org/2/c-api/arg.html:
+    # Starting with Python 2.5 the type of the length argument to
+    # PyArg_ParseTuple(), PyArg_ParseTupleAndKeywords() and PyArg_Parse()
+    # can be controlled by defining the macro PY_SSIZE_T_CLEAN before
+    # including Python.h. If the macro is defined, length is a Py_ssize_t
+    # rather than an int.
+
+    # Because <Python.h> if often included before includes.h/config.h
+    # This must be in the -D compiler options
+    cflags += ' -DPY_SSIZE_T_CLEAN=1'
 
     source = bld.EXPAND_VARIABLES(source, vars=vars)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/buildtools/wafsamba/samba_utils.py 
new/tevent-0.9.28/buildtools/wafsamba/samba_utils.py
--- old/tevent-0.9.26/buildtools/wafsamba/samba_utils.py        2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/samba_utils.py        2015-12-10 
12:01:40.000000000 +0100
@@ -3,7 +3,7 @@
 
 import os, sys, re, fnmatch, shlex
 import Build, Options, Utils, Task, Logs, Configure
-from TaskGen import feature, before
+from TaskGen import feature, before, after
 from Configure import conf, ConfigurationContext
 from Logs import debug
 
@@ -35,22 +35,6 @@
     return cache[target]
 
 
-######################################################
-# this is used as a decorator to make functions only
-# run once. Based on the idea from
-# 
http://stackoverflow.com/questions/815110/is-there-a-decorator-to-simply-cache-function-return-values
-def runonce(function):
-    runonce_ret = {}
-    def runonce_wrapper(*args):
-        if args in runonce_ret:
-            return runonce_ret[args]
-        else:
-            ret = function(*args)
-            runonce_ret[args] = ret
-            return ret
-    return runonce_wrapper
-
-
 def ADD_LD_LIBRARY_PATH(path):
     '''add something to LD_LIBRARY_PATH'''
     if 'LD_LIBRARY_PATH' in os.environ:
@@ -135,27 +119,6 @@
         if t not in d1:
             d1[t] = d2[t]
 
-
-def exec_command(self, cmd, **kw):
-    '''this overrides the 'waf -v' debug output to be in a nice
-    unix like format instead of a python list.
-    Thanks to ita on #waf for this'''
-    _cmd = cmd
-    if isinstance(cmd, list):
-        _cmd = ' '.join(cmd)
-    debug('runner: %s' % _cmd)
-    if self.log:
-        self.log.write('%s\n' % cmd)
-        kw['log'] = self.log
-    try:
-        if not kw.get('cwd', None):
-            kw['cwd'] = self.cwd
-    except AttributeError:
-        self.cwd = kw['cwd'] = self.bldnode.abspath()
-    return Utils.exec_command(cmd, **kw)
-Build.BuildContext.exec_command = exec_command
-
-
 def ADD_COMMAND(opt, name, function):
     '''add a new top level command to waf'''
     Utils.g_module.__dict__[name] = function
@@ -385,7 +348,7 @@
     return -1
 
 
-def RUN_PYTHON_TESTS(testfiles, pythonpath=None):
+def RUN_PYTHON_TESTS(testfiles, pythonpath=None, extra_env=None):
     env = LOAD_ENVIRONMENT()
     if pythonpath is None:
         pythonpath = os.path.join(Utils.g_module.blddir, 'python')
@@ -393,6 +356,9 @@
     for interp in env.python_interpreters:
         for testfile in testfiles:
             cmd = "PYTHONPATH=%s %s %s" % (pythonpath, interp, testfile)
+            if extra_env:
+                for key, value in extra_env.items():
+                    cmd = "%s=%s %s" % (key, value, cmd)
             print('Running Python test with %s: %s' % (interp, testfile))
             ret = RUN_COMMAND(cmd)
             if ret:
@@ -680,3 +646,26 @@
     return False
 
 Build.BuildContext.AD_DC_BUILD_IS_ENABLED = AD_DC_BUILD_IS_ENABLED
+
+@feature('cprogram', 'cshlib', 'cstaticlib')
+@after('apply_lib_vars')
+@before('apply_obj_vars')
+def samba_before_apply_obj_vars(self):
+    """before apply_obj_vars for uselib, this removes the standard paths"""
+
+    def is_standard_libpath(env, path):
+        for _path in env.STANDARD_LIBPATH:
+            if _path == os.path.normpath(path):
+                return True
+        return False
+
+    v = self.env
+
+    for i in v['RPATH']:
+        if is_standard_libpath(v, i):
+            v['RPATH'].remove(i)
+
+    for i in v['LIBPATH']:
+        if is_standard_libpath(v, i):
+            v['LIBPATH'].remove(i)
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/buildtools/wafsamba/samba_wildcard.py 
new/tevent-0.9.28/buildtools/wafsamba/samba_wildcard.py
--- old/tevent-0.9.26/buildtools/wafsamba/samba_wildcard.py     2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/samba_wildcard.py     2015-12-10 
12:01:40.000000000 +0100
@@ -130,7 +130,6 @@
 
     Options.commands['install'] = False
     Options.commands['uninstall'] = False
-    Options.is_install = False
 
     bld.is_install = 0 # False
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/buildtools/wafsamba/wafsamba.py 
new/tevent-0.9.28/buildtools/wafsamba/wafsamba.py
--- old/tevent-0.9.26/buildtools/wafsamba/wafsamba.py   2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/wafsamba.py   2016-02-19 
22:02:02.000000000 +0100
@@ -106,6 +106,7 @@
                   includes='',
                   public_headers=None,
                   public_headers_install=True,
+                  private_headers=None,
                   header_path=None,
                   pc_files=None,
                   vnum=None,
@@ -145,8 +146,12 @@
     if pyembed and bld.env['IS_EXTRA_PYTHON']:
         public_headers = pc_files = None
 
+    if private_library and public_headers:
+        raise Utils.WafError("private library '%s' must not have public header 
files" %
+                             libname)
+
     if LIB_MUST_BE_PRIVATE(bld, libname):
-        private_library=True
+        private_library = True
 
     if not enabled:
         SET_TARGET_TYPE(bld, libname, 'DISABLED')
@@ -187,6 +192,7 @@
                         includes       = includes,
                         public_headers = public_headers,
                         public_headers_install = public_headers_install,
+                        private_headers= private_headers,
                         header_path    = header_path,
                         cflags         = cflags,
                         group          = subsystem_group,
@@ -282,7 +288,7 @@
             if not vscriptpath:
                 raise Utils.WafError("unable to find vscript path for %s" % 
vscript)
             bld.add_manual_dependency(fullpath, vscriptpath)
-            if Options.is_install:
+            if bld.is_install:
                 # also make the .inst file depend on the vscript
                 instname = apply_pattern(bundled_name + '.inst', 
bld.env.shlib_PATTERN)
                 bld.add_manual_dependency(bld.path.find_or_declare(instname), 
bld.path.find_or_declare(vscript))
@@ -337,6 +343,7 @@
                  deps='',
                  includes='',
                  public_headers=None,
+                 private_headers=None,
                  header_path=None,
                  modules=None,
                  ldflags=None,
@@ -539,6 +546,7 @@
                     includes='',
                     public_headers=None,
                     public_headers_install=True,
+                    private_headers=None,
                     header_path=None,
                     cflags='',
                     cflags_end=None,
@@ -631,6 +639,7 @@
                     group='generators', enabled=True,
                     public_headers=None,
                     public_headers_install=True,
+                    private_headers=None,
                     header_path=None,
                     vars=None,
                     dep_vars=[],
@@ -674,7 +683,7 @@
 
 
 
-@runonce
[email protected]_once
 def SETUP_BUILD_GROUPS(bld):
     '''setup build groups used to ensure that the different build
     phases happen consecutively'''
@@ -727,7 +736,7 @@
     '''used to copy scripts from the source tree into the build directory
        for use by selftest'''
 
-    source = bld.path.ant_glob(pattern)
+    source = bld.path.ant_glob(pattern, flat=True)
 
     bld.SET_BUILD_GROUP('build_source')
     for s in TO_LIST(source):
@@ -856,7 +865,7 @@
 def INSTALL_WILDCARD(bld, destdir, pattern, chmod=MODE_644, flat=False,
                      python_fixup=False, exclude=None, trim_path=None):
     '''install a set of files matching a wildcard pattern'''
-    files=TO_LIST(bld.path.ant_glob(pattern))
+    files=TO_LIST(bld.path.ant_glob(pattern, flat=True))
     if trim_path:
         files2 = []
         for f in files:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/buildtools/wafsamba/wscript 
new/tevent-0.9.28/buildtools/wafsamba/wscript
--- old/tevent-0.9.26/buildtools/wafsamba/wscript       2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.28/buildtools/wafsamba/wscript       2016-02-19 
22:02:02.000000000 +0100
@@ -203,7 +203,7 @@
                     metavar="PYTHON", dest='EXTRA_PYTHON', default=None)
 
 
[email protected]
[email protected]_once
 def configure(conf):
     conf.env.hlist = []
     conf.env.srcdir = conf.srcdir
@@ -216,6 +216,7 @@
     # load our local waf extensions
     conf.check_tool('gnu_dirs')
     conf.check_tool('wafsamba')
+    conf.check_tool('print_commands')
 
     conf.CHECK_CC_ENV()
 
@@ -228,6 +229,11 @@
 
     # older gcc versions (< 4.4) does not work with gccdeps, so we have to see 
if the .d file is generated
     if Options.options.enable_gccdeps:
+        # stale file removal - the configuration may pick up the old .pyc file
+        p = os.path.join(conf.srcdir, 'buildtools/wafsamba/gccdeps.pyc')
+        if os.path.exists(p):
+            os.remove(p)
+
         from TaskGen import feature, after
         @feature('testd')
         @after('apply_core')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/lib/replace/wscript 
new/tevent-0.9.28/lib/replace/wscript
--- old/tevent-0.9.26/lib/replace/wscript       2015-11-06 14:28:25.000000000 
+0100
+++ new/tevent-0.9.28/lib/replace/wscript       2015-12-10 12:01:40.000000000 
+0100
@@ -14,7 +14,7 @@
 sys.path.insert(0, srcdir + '/buildtools/wafsamba')
 
 import wafsamba, samba_dist
-import Options
+import Options, Utils
 
 samba_dist.DIST_DIRS('lib/replace buildtools:buildtools 
third_party/waf:third_party/waf')
 
@@ -23,7 +23,7 @@
     opt.PRIVATE_EXTENSION_DEFAULT('')
     opt.RECURSE('buildtools/wafsamba')
 
[email protected]
[email protected]_once
 def configure(conf):
     conf.RECURSE('buildtools/wafsamba')
 
@@ -43,7 +43,12 @@
     conf.CHECK_HEADERS('sys/id.h sys/ioctl.h sys/ipc.h sys/mman.h sys/mode.h 
sys/ndir.h sys/priv.h')
     conf.CHECK_HEADERS('sys/resource.h sys/security.h sys/shm.h sys/statfs.h 
sys/statvfs.h sys/termio.h')
     conf.CHECK_HEADERS('sys/vfs.h sys/xattr.h termio.h termios.h sys/file.h')
-    conf.CHECK_HEADERS('sys/ucontext.h sys/wait.h sys/stat.h malloc.h grp.h')
+    conf.CHECK_HEADERS('sys/ucontext.h sys/wait.h sys/stat.h')
+
+    if not conf.CHECK_DECLS('malloc', headers='stdlib.h'):
+        conf.CHECK_HEADERS('malloc.h')
+
+    conf.CHECK_HEADERS('grp.h')
     conf.CHECK_HEADERS('sys/select.h setjmp.h utime.h sys/syslog.h syslog.h')
     conf.CHECK_HEADERS('stdarg.h vararg.h sys/mount.h mntent.h')
     conf.CHECK_HEADERS('stropts.h unix.h string.h strings.h sys/param.h 
limits.h')
@@ -71,7 +76,7 @@
     conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
     conf.CHECK_HEADERS('nss_common.h nsswitch.h ns_api.h')
     conf.CHECK_HEADERS('sys/extattr.h sys/ea.h sys/proplist.h sys/cdefs.h')
-    conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h malloc.h')
+    conf.CHECK_HEADERS('utmp.h utmpx.h lastlog.h')
     conf.CHECK_HEADERS('syscall.h sys/syscall.h inttypes.h')
     conf.CHECK_HEADERS('sys/atomic.h')
     conf.CHECK_HEADERS('libgen.h')
@@ -245,6 +250,10 @@
     conf.CHECK_FUNCS('link readlink symlink realpath snprintf vsnprintf')
     conf.CHECK_FUNCS('asprintf vasprintf setenv unsetenv strnlen strtoull 
__strtoull')
     conf.CHECK_FUNCS('strtouq strtoll __strtoll strtoq memalign 
posix_memalign')
+
+    if conf.CONFIG_SET('HAVE_MEMALIGN'):
+        conf.CHECK_DECLS('memalign', headers='malloc.h')
+
     conf.CHECK_FUNCS('prctl dirname basename')
 
     # libbsd on some platforms provides strlcpy and strlcat
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/lib/talloc/talloc.h 
new/tevent-0.9.28/lib/talloc/talloc.h
--- old/tevent-0.9.26/lib/talloc/talloc.h       2015-11-06 14:25:52.000000000 
+0100
+++ new/tevent-0.9.28/lib/talloc/talloc.h       2016-02-19 22:02:02.000000000 
+0100
@@ -751,7 +751,7 @@
  * @brief Safely turn a void pointer into a typed pointer.
  *
  * This macro is used together with talloc(mem_ctx, struct foo). If you had to
- * assing the talloc chunk pointer to some void pointer variable,
+ * assign the talloc chunk pointer to some void pointer variable,
  * talloc_get_type_abort() is the recommended way to get the convert the void
  * pointer back to a typed pointer.
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/lib/talloc/wscript 
new/tevent-0.9.28/lib/talloc/wscript
--- old/tevent-0.9.26/lib/talloc/wscript        2015-11-06 14:28:25.000000000 
+0100
+++ new/tevent-0.9.28/lib/talloc/wscript        2016-02-19 22:02:02.000000000 
+0100
@@ -116,7 +116,7 @@
                           abi_match='talloc* _talloc*',
                           hide_symbols=True,
                           vnum=VERSION,
-                          public_headers='talloc.h',
+                          public_headers=('' if private_library else 
'talloc.h'),
                           pc_files='talloc.pc',
                           public_headers_install=not private_library,
                           private_library=private_library,
@@ -135,7 +135,7 @@
                 abi_directory='ABI',
                 abi_match='pytalloc_*',
                 private_library=private_library,
-                public_headers='pytalloc.h',
+                public_headers=('' if private_library else 'pytalloc.h'),
                 pc_files='pytalloc-util.pc'
                 )
             bld.SAMBA_PYTHON('pytalloc',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/tevent_epoll.c 
new/tevent-0.9.28/tevent_epoll.c
--- old/tevent-0.9.26/tevent_epoll.c    2014-09-16 20:04:31.000000000 +0200
+++ new/tevent-0.9.28/tevent_epoll.c    2015-12-10 12:01:40.000000000 +0100
@@ -216,7 +216,7 @@
 
 /*
   reopen the epoll handle when our pid changes
-  see http://junkcode.samba.org/ftp/unpacked/junkcode/epoll_fork.c for an 
+  see http://junkcode.samba.org/ftp/unpacked/junkcode/epoll_fork.c for an
   demonstration of why this is needed
  */
 static void epoll_check_reopen(struct epoll_event_context *epoll_ev)
@@ -661,7 +661,7 @@
        }
 
        for (i=0;i<ret;i++) {
-               struct tevent_fd *fde = talloc_get_type(events[i].data.ptr, 
+               struct tevent_fd *fde = talloc_get_type(events[i].data.ptr,
                                                       struct tevent_fd);
                uint16_t flags = 0;
                struct tevent_fd *mpx_fde = NULL;
@@ -888,7 +888,7 @@
 }
 
 /*
-  do a single event loop using the events defined in ev 
+  do a single event loop using the events defined in ev
 */
 static int epoll_event_loop_once(struct tevent_context *ev, const char 
*location)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/tevent_immediate.c 
new/tevent-0.9.28/tevent_immediate.c
--- old/tevent-0.9.26/tevent_immediate.c        2014-09-16 20:04:31.000000000 
+0200
+++ new/tevent-0.9.28/tevent_immediate.c        2016-02-19 22:02:02.000000000 
+0100
@@ -88,7 +88,7 @@
        im->cancel_fn           = NULL;
        im->additional_data     = NULL;
 
-       DLIST_ADD_END(ev->immediate_events, im, struct tevent_immediate *);
+       DLIST_ADD_END(ev->immediate_events, im);
        talloc_set_destructor(im, tevent_common_immediate_destructor);
 
        tevent_debug(ev, TEVENT_DEBUG_TRACE,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/tevent_poll.c 
new/tevent-0.9.28/tevent_poll.c
--- old/tevent-0.9.26/tevent_poll.c     2014-10-01 11:22:21.000000000 +0200
+++ new/tevent-0.9.28/tevent_poll.c     2016-02-19 22:02:02.000000000 +0100
@@ -498,6 +498,7 @@
        int timeout = -1;
        int poll_errno;
        struct tevent_fd *fde = NULL;
+       struct tevent_fd *next = NULL;
        unsigned i;
 
        if (ev->signal_events && tevent_common_check_signal(ev)) {
@@ -542,11 +543,13 @@
           which ones and call the handler, being careful to allow
           the handler to remove itself when called */
 
-       for (fde = ev->fd_events; fde; fde = fde->next) {
+       for (fde = ev->fd_events; fde; fde = next) {
                uint64_t idx = fde->additional_flags;
                struct pollfd *pfd;
                uint16_t flags = 0;
 
+               next = fde->next;
+
                if (idx == UINT64_MAX) {
                        continue;
                }
@@ -598,7 +601,7 @@
                 */
                flags &= fde->flags;
                if (flags != 0) {
-                       DLIST_DEMOTE(ev->fd_events, fde, struct tevent_fd);
+                       DLIST_DEMOTE(ev->fd_events, fde);
                        fde->handler(ev, fde, flags, fde->private_data);
                        return 0;
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/tevent_port.c 
new/tevent-0.9.28/tevent_port.c
--- old/tevent-0.9.26/tevent_port.c     2015-06-13 03:00:10.000000000 +0200
+++ new/tevent-0.9.28/tevent_port.c     2016-02-19 22:02:02.000000000 +0100
@@ -496,10 +496,24 @@
                return 0;
        }
 
-       if (ret == -1 && port_errno == ETIME && tvalp) {
-               /* we don't care about a possible delay here */
-               tevent_common_loop_timer_delay(ev);
-               return 0;
+       if (ret == -1 && port_errno == ETIME) {
+               /*
+                * If errno is set to ETIME it is possible that we still got an 
event.
+                * In that case we need to go through the processing loop so 
that we
+                * reassociate the received event with the port or the 
association will
+                * be lost so check the value of nget is 0 before returning.
+                */
+               if (nget == 0) {
+                       /* we don't care about a possible delay here */
+                       tevent_common_loop_timer_delay(ev);
+                       return 0;
+               }
+               /*
+                * Set the return value to 0 since we do not actually have an 
error and we
+                * do have events that need to be processed.  This keeps us 
from getting
+                * caught in the generic error test.
+                */
+               ret = 0;
        }
 
        if (ret == -1) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/tevent_queue.c 
new/tevent-0.9.28/tevent_queue.c
--- old/tevent-0.9.26/tevent_queue.c    2014-09-16 20:04:31.000000000 +0200
+++ new/tevent-0.9.28/tevent_queue.c    2016-02-19 22:02:02.000000000 +0100
@@ -195,7 +195,7 @@
                allow_direct = false;
        }
 
-       DLIST_ADD_END(queue->list, e, struct tevent_queue_entry *);
+       DLIST_ADD_END(queue->list, e);
        queue->length++;
        talloc_set_destructor(e, tevent_queue_entry_destructor);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/tevent_select.c 
new/tevent-0.9.28/tevent_select.c
--- old/tevent-0.9.26/tevent_select.c   2014-10-01 11:22:21.000000000 +0200
+++ new/tevent-0.9.28/tevent_select.c   2016-02-19 22:02:02.000000000 +0100
@@ -219,7 +219,7 @@
                                flags |= TEVENT_FD_WRITE;
                        }
                        if (flags) {
-                               DLIST_DEMOTE(select_ev->ev->fd_events, fde, 
struct tevent_fd);
+                               DLIST_DEMOTE(select_ev->ev->fd_events, fde);
                                fde->handler(select_ev->ev, fde, flags, 
fde->private_data);
                                break;
                        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/tevent_signal.c 
new/tevent-0.9.28/tevent_signal.c
--- old/tevent-0.9.26/tevent_signal.c   2015-06-13 03:00:10.000000000 +0200
+++ new/tevent-0.9.28/tevent_signal.c   2016-02-19 22:05:17.000000000 +0100
@@ -212,6 +212,7 @@
                /* restore old handler, if any */
                if (sig_state->oldact[se->signum]) {
                        sigaction(se->signum, sig_state->oldact[se->signum], 
NULL);
+                       talloc_free(sig_state->oldact[se->signum]);
                        sig_state->oldact[se->signum] = NULL;
                }
 #ifdef SA_SIGINFO
@@ -342,6 +343,8 @@
                        return NULL;
                }
                if (sigaction(signum, &act, sig_state->oldact[signum]) == -1) {
+                       talloc_free(sig_state->oldact[signum]);
+                       sig_state->oldact[signum] = NULL;
                        talloc_free(se);
                        return NULL;
                }
@@ -505,6 +508,7 @@
        if (sig_state->sig_handlers[se->signum] == NULL) {
                if (sig_state->oldact[se->signum]) {
                        sigaction(se->signum, sig_state->oldact[se->signum], 
NULL);
+                       talloc_free(sig_state->oldact[se->signum]);
                        sig_state->oldact[se->signum] = NULL;
                }
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/tevent_util.h 
new/tevent-0.9.28/tevent_util.h
--- old/tevent-0.9.26/tevent_util.h     2014-09-16 20:04:31.000000000 +0200
+++ new/tevent-0.9.28/tevent_util.h     2016-02-19 22:02:02.000000000 +0100
@@ -53,10 +53,6 @@
   This allows us to find the tail of the list by using
   list_head->prev, which means we can add to the end of the list in
   O(1) time
-
-
-  Note that the 'type' arguments below are no longer needed, but
-  are kept for now to prevent an incompatible argument change
  */
 
 
@@ -131,9 +127,8 @@
 
 /*
    add to the end of a list.
-   Note that 'type' is ignored
 */
-#define DLIST_ADD_END(list, p, type)                   \
+#define DLIST_ADD_END(list, p) \
 do { \
        if (!(list)) { \
                DLIST_ADD(list, p); \
@@ -151,20 +146,18 @@
 
 /*
    demote an element to the end of a list.
-   Note that 'type' is ignored
 */
-#define DLIST_DEMOTE(list, p, type)                    \
+#define DLIST_DEMOTE(list, p) \
 do { \
        DLIST_REMOVE(list, p); \
-       DLIST_ADD_END(list, p, NULL);           \
+       DLIST_ADD_END(list, p); \
 } while (0)
 
 /*
    concatenate two lists - putting all elements of the 2nd list at the
    end of the first list.
-   Note that 'type' is ignored
 */
-#define DLIST_CONCATENATE(list1, list2, type)  \
+#define DLIST_CONCATENATE(list1, list2) \
 do { \
        if (!(list1)) { \
                (list1) = (list2); \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/tevent-0.9.26/third_party/waf/wafadmin/3rdparty/gccdeps.py 
new/tevent-0.9.28/third_party/waf/wafadmin/3rdparty/gccdeps.py
--- old/tevent-0.9.26/third_party/waf/wafadmin/3rdparty/gccdeps.py      
2015-04-29 11:20:16.000000000 +0200
+++ new/tevent-0.9.28/third_party/waf/wafadmin/3rdparty/gccdeps.py      
2016-02-19 22:02:02.000000000 +0100
@@ -15,7 +15,7 @@
 
 preprocessor_flag = '-MD'
 
-@feature('cc')
+@feature('cc', 'c')
 @before('apply_core')
 def add_mmd_cc(self):
        if self.env.get_flat('CCFLAGS').find(preprocessor_flag) < 0:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/tevent-0.9.26/third_party/waf/wafadmin/3rdparty/print_commands.py 
new/tevent-0.9.28/third_party/waf/wafadmin/3rdparty/print_commands.py
--- old/tevent-0.9.26/third_party/waf/wafadmin/3rdparty/print_commands.py       
1970-01-01 01:00:00.000000000 +0100
+++ new/tevent-0.9.28/third_party/waf/wafadmin/3rdparty/print_commands.py       
2015-12-10 12:01:40.000000000 +0100
@@ -0,0 +1,25 @@
+#! /usr/bin/env python
+
+"""
+In this case, print the commands being executed as strings
+(the commands are usually lists, so this can be misleading)
+"""
+
+import Build, Utils, Logs
+
+def exec_command(self, cmd, **kw):
+       txt = cmd
+       if isinstance(cmd, list):
+               txt = ' '.join(cmd)
+       Logs.debug('runner: %s' % txt)
+       if self.log:
+               self.log.write('%s\n' % cmd)
+               kw['log'] = self.log
+       try:
+               if not kw.get('cwd', None):
+                       kw['cwd'] = self.cwd
+       except AttributeError:
+               self.cwd = kw['cwd'] = self.bldnode.abspath()
+       return Utils.exec_command(cmd, **kw)
+Build.BuildContext.exec_command = exec_command
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.26/wscript new/tevent-0.9.28/wscript
--- old/tevent-0.9.26/wscript   2015-11-06 14:29:43.000000000 +0100
+++ new/tevent-0.9.28/wscript   2016-02-19 22:05:17.000000000 +0100
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 
 APPNAME = 'tevent'
-VERSION = '0.9.26'
+VERSION = '0.9.28'
 
 blddir = 'bin'
 
@@ -107,7 +107,7 @@
                           abi_directory='ABI',
                           abi_match='tevent_* _tevent_*',
                           vnum=VERSION,
-                          public_headers='tevent.h',
+                          public_headers=('' if private_library else 
'tevent.h'),
                           public_headers_install=not private_library,
                           pc_files='tevent.pc',
                           private_library=private_library)
@@ -133,6 +133,9 @@
     '''test tevent'''
     print("The tevent testsuite is part of smbtorture in samba4")
 
+    samba_utils.ADD_LD_LIBRARY_PATH('bin/shared')
+    samba_utils.ADD_LD_LIBRARY_PATH('bin/shared/private')
+
     pyret = samba_utils.RUN_PYTHON_TESTS(['bindings.py'])
     sys.exit(pyret)
 



Reply via email to