Hello community,

here is the log from the commit of package tevent for openSUSE:Factory checked 
in at 2017-12-03 10:10:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tevent (Old)
 and      /work/SRC/openSUSE:Factory/.tevent.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tevent"

Sun Dec  3 10:10:57 2017 rev:30 rq:546521 version:0.9.34

Changes:
--------
--- /work/SRC/openSUSE:Factory/tevent/tevent-man.changes        2017-10-25 
17:46:03.627528983 +0200
+++ /work/SRC/openSUSE:Factory/.tevent.new/tevent-man.changes   2017-12-03 
10:11:06.940018585 +0100
@@ -1,0 +2,8 @@
+Tue Nov 28 17:33:52 UTC 2017 - [email protected]
+
+- Update to version 0.9.34; (bsc#1069666);
+  + Remove unused select backend
+  + Fix a race condition in tevent_threaded_schedule_immediate();
+    (bso#13130);
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/tevent/tevent.changes    2017-10-25 
17:46:03.723524478 +0200
+++ /work/SRC/openSUSE:Factory/.tevent.new/tevent.changes       2017-12-03 
10:11:07.176010005 +0100
@@ -1,0 +2,8 @@
+Tue Nov 28 17:31:07 UTC 2017 - [email protected]
+
+- Update to version 0.9.34; (bsc#1069666);
+  + Remove unused select backend
+  + Fix a race condition in tevent_threaded_schedule_immediate();
+    (bso#13130);
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ tevent-man.spec ++++++
--- /var/tmp/diff_new_pack.d1Yrbg/_old  2017-12-03 10:11:08.027979029 +0100
+++ /var/tmp/diff_new_pack.d1Yrbg/_new  2017-12-03 10:11:08.031978884 +0100
@@ -53,7 +53,7 @@
 %define        build_make_smp_mflags %{?jobs:-j%jobs}
 %endif
 Url:            https://tevent.samba.org/
-Version:        0.9.33
+Version:        0.9.34
 Release:        0
 Summary:        An event system based on the talloc memory management library
 License:        GPL-3.0+

++++++ tevent.spec ++++++
--- /var/tmp/diff_new_pack.d1Yrbg/_old  2017-12-03 10:11:08.055978011 +0100
+++ /var/tmp/diff_new_pack.d1Yrbg/_new  2017-12-03 10:11:08.055978011 +0100
@@ -53,7 +53,7 @@
 %define        build_make_smp_mflags %{?jobs:-j%jobs}
 %endif
 Url:            https://tevent.samba.org/
-Version:        0.9.33
+Version:        0.9.34
 Release:        0
 Summary:        An event system based on the talloc memory management library
 License:        GPL-3.0+

++++++ tevent-0.9.33.tar.gz -> tevent-0.9.34.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.33/ABI/tevent-0.9.34.sigs 
new/tevent-0.9.34/ABI/tevent-0.9.34.sigs
--- old/tevent-0.9.33/ABI/tevent-0.9.34.sigs    1970-01-01 01:00:00.000000000 
+0100
+++ new/tevent-0.9.34/ABI/tevent-0.9.34.sigs    2017-11-13 11:03:44.000000000 
+0100
@@ -0,0 +1,99 @@
+_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_threaded_schedule_immediate: void (struct tevent_threaded_context *, 
struct tevent_immediate *, 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_have_events: bool (struct tevent_context *)
+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_common_threaded_activate_immediate: void (struct tevent_context *)
+tevent_common_wakeup: int (struct tevent_context *)
+tevent_common_wakeup_fd: int (int)
+tevent_common_wakeup_init: int (struct tevent_context *)
+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_reset_endtime: 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_threaded_context_create: struct tevent_threaded_context *(TALLOC_CTX *, 
struct tevent_context *)
+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_update_timer: void (struct tevent_timer *, struct timeval)
+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.33/buildtools/wafsamba/samba_dist.py 
new/tevent-0.9.34/buildtools/wafsamba/samba_dist.py
--- old/tevent-0.9.33/buildtools/wafsamba/samba_dist.py 2015-11-06 
14:28:25.000000000 +0100
+++ new/tevent-0.9.34/buildtools/wafsamba/samba_dist.py 2017-08-24 
13:27:53.000000000 +0200
@@ -115,7 +115,7 @@
                     blacklisted = True
             if blacklisted:
                 continue
-            if os.path.isdir(abspath):
+            if os.path.isdir(abspath) and not os.path.islink(abspath):
                 continue
             if dstsubdir != '.':
                 f = dstsubdir + '/' + f
@@ -182,7 +182,7 @@
 
             absfile = os.path.join(srcdir, file)
 
-            if os.path.isdir(absfile):
+            if os.path.isdir(absfile) and not os.path.islink(absfile):
                 destdir = destfile
                 dir = file
                 files = list_directory_files(dir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.33/buildtools/wafsamba/samba_patterns.py 
new/tevent-0.9.34/buildtools/wafsamba/samba_patterns.py
--- old/tevent-0.9.33/buildtools/wafsamba/samba_patterns.py     2017-07-23 
00:23:56.000000000 +0200
+++ new/tevent-0.9.34/buildtools/wafsamba/samba_patterns.py     2017-09-07 
12:04:11.000000000 +0200
@@ -108,6 +108,7 @@
     fp.write("       output(screen,\"   PIDDIR: %s\\n\", get_dyn_PIDDIR());\n")
     fp.write("       output(screen,\"   SMB_PASSWD_FILE: 
%s\\n\",get_dyn_SMB_PASSWD_FILE());\n")
     fp.write("       output(screen,\"   PRIVATE_DIR: 
%s\\n\",get_dyn_PRIVATE_DIR());\n")
+    fp.write("       output(screen,\"   BINDDNS_DIR: 
%s\\n\",get_dyn_BINDDNS_DIR());\n")
     fp.write("\n")
 
 def write_build_options_footer(fp):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.33/buildtools/wafsamba/wafsamba.py 
new/tevent-0.9.34/buildtools/wafsamba/wafsamba.py
--- old/tevent-0.9.33/buildtools/wafsamba/wafsamba.py   2017-06-15 
23:19:32.000000000 +0200
+++ new/tevent-0.9.34/buildtools/wafsamba/wafsamba.py   2017-10-10 
09:08:20.000000000 +0200
@@ -885,13 +885,30 @@
                   python_fixup=python_fixup, base_name=trim_path)
 Build.BuildContext.INSTALL_WILDCARD = INSTALL_WILDCARD
 
+def INSTALL_DIR(bld, path, chmod=0o755, env=None):
+    """Install a directory if it doesn't exist, always set permissions."""
 
-def INSTALL_DIRS(bld, destdir, dirs):
+    if not path:
+        return []
+
+    destpath = bld.get_install_path(path, env)
+
+    if bld.is_install > 0:
+        if not os.path.isdir(destpath):
+            try:
+                os.makedirs(destpath)
+                os.chmod(destpath, chmod)
+            except OSError, e:
+                if not os.path.isdir(destpath):
+                    raise Utils.WafError("Cannot create the folder '%s' 
(error: %s)" % (path, e))
+Build.BuildContext.INSTALL_DIR = INSTALL_DIR
+
+def INSTALL_DIRS(bld, destdir, dirs, chmod=0o755, env=None):
     '''install a set of directories'''
     destdir = bld.EXPAND_VARIABLES(destdir)
     dirs = bld.EXPAND_VARIABLES(dirs)
     for d in TO_LIST(dirs):
-        bld.install_dir(os.path.join(destdir, d))
+        INSTALL_DIR(bld, os.path.join(destdir, d), chmod, env)
 Build.BuildContext.INSTALL_DIRS = INSTALL_DIRS
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.33/lib/replace/replace.c 
new/tevent-0.9.34/lib/replace/replace.c
--- old/tevent-0.9.33/lib/replace/replace.c     2017-06-15 23:19:32.000000000 
+0200
+++ new/tevent-0.9.34/lib/replace/replace.c     2017-11-13 10:57:29.000000000 
+0100
@@ -942,3 +942,8 @@
 {
 }
 #endif
+#ifndef HAVE_SETPROCTITLE_INIT
+void rep_setproctitle_init(int argc, char *argv[], char *envp[])
+{
+}
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.33/lib/replace/replace.h 
new/tevent-0.9.34/lib/replace/replace.h
--- old/tevent-0.9.33/lib/replace/replace.h     2017-06-15 23:19:32.000000000 
+0200
+++ new/tevent-0.9.34/lib/replace/replace.h     2017-11-13 10:57:29.000000000 
+0100
@@ -918,6 +918,10 @@
 void rep_setproctitle(const char *fmt, ...) PRINTF_ATTRIBUTE(1, 2);
 #endif
 
+#ifndef HAVE_SETPROCTITLE_INIT
+#define setproctitle_init rep_setproctitle_init
+void rep_setproctitle_init(int argc, char *argv[], char *envp[]);
+#endif
 bool nss_wrapper_enabled(void);
 bool nss_wrapper_hosts_enabled(void);
 bool socket_wrapper_enabled(void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.33/lib/replace/wscript 
new/tevent-0.9.34/lib/replace/wscript
--- old/tevent-0.9.33/lib/replace/wscript       2017-07-02 22:22:14.000000000 
+0200
+++ new/tevent-0.9.34/lib/replace/wscript       2017-11-13 10:57:29.000000000 
+0100
@@ -249,16 +249,33 @@
     if conf.CONFIG_SET('HAVE_MEMALIGN'):
         conf.CHECK_DECLS('memalign', headers='malloc.h')
 
+    # glibc up to 2.3.6 had dangerously broken posix_fallocate(). DON'T USE IT.
+    if conf.CHECK_CODE('''
+#define _XOPEN_SOURCE 600
+#include <stdlib.h>
+#if defined(__GLIBC__) && ((__GLIBC__ < 2) || (__GLIBC__ == 2 && 
__GLIBC_MINOR__ < 4))
+#error probably broken posix_fallocate
+#endif
+''',
+                       '_POSIX_FALLOCATE_CAPABLE_LIBC',
+                       msg='Checking for posix_fallocate-capable libc'):
+        conf.CHECK_FUNCS('posix_fallocate')
+
     conf.CHECK_FUNCS('prctl dirname basename')
 
+    strlcpy_in_bsd = False
+
     # libbsd on some platforms provides strlcpy and strlcat
     if not conf.CHECK_FUNCS('strlcpy strlcat'):
-        conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', headers='bsd/string.h',
-                checklibc=True)
+        if conf.CHECK_FUNCS_IN('strlcpy strlcat', 'bsd', 
headers='bsd/string.h',
+                               checklibc=True):
+            strlcpy_in_bsd = True
     if not conf.CHECK_FUNCS('getpeereid'):
         conf.CHECK_FUNCS_IN('getpeereid', 'bsd', headers='sys/types.h 
bsd/unistd.h')
     if not conf.CHECK_FUNCS_IN('setproctitle', 'setproctitle', 
headers='setproctitle.h'):
         conf.CHECK_FUNCS_IN('setproctitle', 'bsd', headers='sys/types.h 
bsd/unistd.h')
+    if not conf.CHECK_FUNCS('setproctitle_init'):
+        conf.CHECK_FUNCS_IN('setproctitle_init', 'bsd', headers='sys/types.h 
bsd/unistd.h')
 
     if not conf.CHECK_FUNCS('closefrom'):
         conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
@@ -611,6 +628,9 @@
 
     # look for a method of finding the list of network interfaces
     for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 
'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']:
+        bsd_for_strlcpy = ''
+        if strlcpy_in_bsd:
+            bsd_for_strlcpy = ' bsd'
         if conf.CHECK_CODE('''
                            #define %s 1
                            #define NO_CONFIG_H 1
@@ -623,7 +643,7 @@
                            #include "test/getifaddrs.c"
                            ''' % method,
                            method,
-                           lib='nsl socket',
+                           lib='nsl socket' + bsd_for_strlcpy,
                            addmain=False,
                            execute=True):
             break
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.33/lib/talloc/wscript 
new/tevent-0.9.34/lib/talloc/wscript
--- old/tevent-0.9.33/lib/talloc/wscript        2017-07-23 00:23:56.000000000 
+0200
+++ new/tevent-0.9.34/lib/talloc/wscript        2017-08-24 13:27:53.000000000 
+0200
@@ -74,19 +74,22 @@
                                      implied_deps='replace'):
             conf.define('USING_SYSTEM_TALLOC', 1)
 
-        using_system_pytalloc_util = True
-        if not conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', 
minversion=VERSION,
-                                             implied_deps='talloc replace'):
+        if conf.env.disable_python:
             using_system_pytalloc_util = False
-
-        # We need to get a pytalloc-util for all the python versions
-        # we are building for
-        if conf.env['EXTRA_PYTHON']:
-            name = 'pytalloc-util' + 
conf.all_envs['extrapython']['PYTHON_SO_ABI_FLAG']
-            if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, minversion=VERSION,
+        else:
+            using_system_pytalloc_util = True
+            if not conf.CHECK_BUNDLED_SYSTEM_PKG('pytalloc-util', 
minversion=VERSION,
                                                  implied_deps='talloc 
replace'):
                 using_system_pytalloc_util = False
 
+            # We need to get a pytalloc-util for all the python versions
+            # we are building for
+            if conf.env['EXTRA_PYTHON']:
+                name = 'pytalloc-util' + 
conf.all_envs['extrapython']['PYTHON_SO_ABI_FLAG']
+                if not conf.CHECK_BUNDLED_SYSTEM_PKG(name, minversion=VERSION,
+                                                     implied_deps='talloc 
replace'):
+                    using_system_pytalloc_util = False
+
         if using_system_pytalloc_util:
             conf.define('USING_SYSTEM_PYTALLOC_UTIL', 1)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.33/testsuite.c 
new/tevent-0.9.34/testsuite.c
--- old/tevent-0.9.33/testsuite.c       2017-06-15 23:19:32.000000000 +0200
+++ new/tevent-0.9.34/testsuite.c       2017-08-24 13:27:53.000000000 +0200
@@ -25,7 +25,7 @@
 */
 
 #include "includes.h"
-#include "lib/tevent/tevent.h"
+#include "tevent.h"
 #include "system/filesys.h"
 #include "system/select.h"
 #include "system/network.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.33/tevent.c new/tevent-0.9.34/tevent.c
--- old/tevent-0.9.33/tevent.c  2017-06-23 14:20:41.000000000 +0200
+++ new/tevent-0.9.34/tevent.c  2017-10-10 09:08:20.000000000 +0200
@@ -128,7 +128,6 @@
 
        done = true;
 
-       tevent_select_init();
        tevent_poll_init();
        tevent_poll_mt_init();
 #if defined(HAVE_EPOLL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.33/tevent_internal.h 
new/tevent-0.9.34/tevent_internal.h
--- old/tevent-0.9.33/tevent_internal.h 2016-10-07 06:45:35.000000000 +0200
+++ new/tevent-0.9.34/tevent_internal.h 2017-10-10 09:08:20.000000000 +0200
@@ -377,7 +377,6 @@
 void tevent_cleanup_pending_signal_handlers(struct tevent_signal *se);
 
 bool tevent_standard_init(void);
-bool tevent_select_init(void);
 bool tevent_poll_init(void);
 void tevent_poll_event_add_fd_internal(struct tevent_context *ev,
                                       struct tevent_fd *fde);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.33/tevent_select.c 
new/tevent-0.9.34/tevent_select.c
--- old/tevent-0.9.33/tevent_select.c   2016-08-24 10:42:51.000000000 +0200
+++ new/tevent-0.9.34/tevent_select.c   1970-01-01 01:00:00.000000000 +0100
@@ -1,280 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-   main select loop and event handling
-   Copyright (C) Andrew Tridgell       2003-2005
-   Copyright (C) Stefan Metzmacher     2005-2009
-
-     ** NOTE! The following LGPL license applies to the tevent
-     ** library. This does NOT imply that all of Samba is released
-     ** under the LGPL
-
-   This library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 3 of the License, or (at your option) any later version.
-
-   This library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with this library; if not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "replace.h"
-#include "system/filesys.h"
-#include "system/select.h"
-#include "tevent.h"
-#include "tevent_util.h"
-#include "tevent_internal.h"
-
-struct select_event_context {
-       /* a pointer back to the generic event_context */
-       struct tevent_context *ev;
-
-       /* the maximum file descriptor number in fd_events */
-       int maxfd;
-};
-
-/*
-  create a select_event_context structure.
-*/
-static int select_event_context_init(struct tevent_context *ev)
-{
-       struct select_event_context *select_ev;
-
-       /*
-        * We might be called during tevent_re_initialise()
-        * which means we need to free our old additional_data.
-        */
-       TALLOC_FREE(ev->additional_data);
-
-       select_ev = talloc_zero(ev, struct select_event_context);
-       if (!select_ev) return -1;
-       select_ev->ev = ev;
-
-       ev->additional_data = select_ev;
-       return 0;
-}
-
-/*
-  recalculate the maxfd
-*/
-static void calc_maxfd(struct select_event_context *select_ev)
-{
-       struct tevent_fd *fde;
-
-       select_ev->maxfd = 0;
-       for (fde = select_ev->ev->fd_events; fde; fde = fde->next) {
-               if (fde->fd > select_ev->maxfd) {
-                       select_ev->maxfd = fde->fd;
-               }
-       }
-}
-
-
-/* to mark the ev->maxfd invalid
- * this means we need to recalculate it
- */
-#define EVENT_INVALID_MAXFD (-1)
-
-/*
-  destroy an fd_event
-*/
-static int select_event_fd_destructor(struct tevent_fd *fde)
-{
-       struct tevent_context *ev = fde->event_ctx;
-       struct select_event_context *select_ev = NULL;
-
-       if (ev) {
-               select_ev = talloc_get_type_abort(ev->additional_data,
-                                                 struct select_event_context);
-
-               if (select_ev->maxfd == fde->fd) {
-                       select_ev->maxfd = EVENT_INVALID_MAXFD;
-               }
-       }
-
-       return tevent_common_fd_destructor(fde);
-}
-
-/*
-  add a fd based event
-  return NULL on failure (memory allocation error)
-*/
-static struct tevent_fd *select_event_add_fd(struct tevent_context *ev, 
TALLOC_CTX *mem_ctx,
-                                            int fd, uint16_t flags,
-                                            tevent_fd_handler_t handler,
-                                            void *private_data,
-                                            const char *handler_name,
-                                            const char *location)
-{
-       struct select_event_context *select_ev =
-               talloc_get_type_abort(ev->additional_data,
-               struct select_event_context);
-       struct tevent_fd *fde;
-
-       if (fd < 0 || fd >= FD_SETSIZE) {
-               errno = EBADF;
-               return NULL;
-       }
-
-       fde = tevent_common_add_fd(ev, mem_ctx, fd, flags,
-                                  handler, private_data,
-                                  handler_name, location);
-       if (!fde) return NULL;
-
-       if ((select_ev->maxfd != EVENT_INVALID_MAXFD)
-           && (fde->fd > select_ev->maxfd)) {
-               select_ev->maxfd = fde->fd;
-       }
-       talloc_set_destructor(fde, select_event_fd_destructor);
-
-       return fde;
-}
-
-/*
-  event loop handling using select()
-*/
-static int select_event_loop_select(struct select_event_context *select_ev, 
struct timeval *tvalp)
-{
-       fd_set r_fds, w_fds;
-       struct tevent_fd *fde;
-       int selrtn;
-       int select_errno;
-
-       /* we maybe need to recalculate the maxfd */
-       if (select_ev->maxfd == EVENT_INVALID_MAXFD) {
-               calc_maxfd(select_ev);
-       }
-
-       FD_ZERO(&r_fds);
-       FD_ZERO(&w_fds);
-
-       /* setup any fd events */
-       for (fde = select_ev->ev->fd_events; fde; fde = fde->next) {
-               if (fde->fd < 0 || fde->fd >= FD_SETSIZE) {
-                       tevent_debug(select_ev->ev, TEVENT_DEBUG_FATAL,
-                                    "ERROR: EBADF fd[%d] >= %d "
-                                    "select_event_loop_once\n",
-                                    fde->fd, FD_SETSIZE);
-                       errno = EBADF;
-                       return -1;
-               }
-
-               if (fde->flags & TEVENT_FD_READ) {
-                       FD_SET(fde->fd, &r_fds);
-               }
-               if (fde->flags & TEVENT_FD_WRITE) {
-                       FD_SET(fde->fd, &w_fds);
-               }
-       }
-
-       if (select_ev->ev->signal_events &&
-           tevent_common_check_signal(select_ev->ev)) {
-               return 0;
-       }
-
-       tevent_trace_point_callback(select_ev->ev, TEVENT_TRACE_BEFORE_WAIT);
-       selrtn = select(select_ev->maxfd+1, &r_fds, &w_fds, NULL, tvalp);
-       select_errno = errno;
-       tevent_trace_point_callback(select_ev->ev, TEVENT_TRACE_AFTER_WAIT);
-
-       if (selrtn == -1 && select_errno == EINTR &&
-           select_ev->ev->signal_events) {
-               tevent_common_check_signal(select_ev->ev);
-               return 0;
-       }
-
-       if (selrtn == -1 && select_errno == EBADF) {
-               /* the socket is dead! this should never
-                  happen as the socket should have first been
-                  made readable and that should have removed
-                  the event, so this must be a bug. This is a
-                  fatal error. */
-               tevent_debug(select_ev->ev, TEVENT_DEBUG_FATAL,
-                            "ERROR: EBADF on select_event_loop_once\n");
-               errno = select_errno;
-               return -1;
-       }
-
-       if (selrtn == 0 && tvalp) {
-               /* we don't care about a possible delay here */
-               tevent_common_loop_timer_delay(select_ev->ev);
-               return 0;
-       }
-
-       if (selrtn > 0) {
-               /* at least one file descriptor is ready - check
-                  which ones and call the handler, being careful to allow
-                  the handler to remove itself when called */
-               for (fde = select_ev->ev->fd_events; fde; fde = fde->next) {
-                       uint16_t flags = 0;
-
-                       if (FD_ISSET(fde->fd, &r_fds) && (fde->flags & 
TEVENT_FD_READ)) {
-                               flags |= TEVENT_FD_READ;
-                       }
-                       if (FD_ISSET(fde->fd, &w_fds) && (fde->flags & 
TEVENT_FD_WRITE)) {
-                               flags |= TEVENT_FD_WRITE;
-                       }
-                       if (flags) {
-                               DLIST_DEMOTE(select_ev->ev->fd_events, fde);
-                               fde->handler(select_ev->ev, fde, flags, 
fde->private_data);
-                               break;
-                       }
-               }
-       }
-
-       return 0;
-}
-
-/*
-  do a single event loop using the events defined in ev 
-*/
-static int select_event_loop_once(struct tevent_context *ev, const char 
*location)
-{
-       struct select_event_context *select_ev =
-               talloc_get_type_abort(ev->additional_data,
-               struct select_event_context);
-       struct timeval tval;
-
-       if (ev->signal_events &&
-           tevent_common_check_signal(ev)) {
-               return 0;
-       }
-
-       if (ev->threaded_contexts != NULL) {
-               tevent_common_threaded_activate_immediate(ev);
-       }
-
-       if (ev->immediate_events &&
-           tevent_common_loop_immediate(ev)) {
-               return 0;
-       }
-
-       tval = tevent_common_loop_timer_delay(ev);
-       if (tevent_timeval_is_zero(&tval)) {
-               return 0;
-       }
-
-       return select_event_loop_select(select_ev, &tval);
-}
-
-static const struct tevent_ops select_event_ops = {
-       .context_init           = select_event_context_init,
-       .add_fd                 = select_event_add_fd,
-       .set_fd_close_fn        = tevent_common_fd_set_close_fn,
-       .get_fd_flags           = tevent_common_fd_get_flags,
-       .set_fd_flags           = tevent_common_fd_set_flags,
-       .add_timer              = tevent_common_add_timer_v2,
-       .schedule_immediate     = tevent_common_schedule_immediate,
-       .add_signal             = tevent_common_add_signal,
-       .loop_once              = select_event_loop_once,
-       .loop_wait              = tevent_common_loop_wait,
-};
-
-_PRIVATE_ bool tevent_select_init(void)
-{
-       return tevent_register_backend("select", &select_event_ops);
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.33/tevent_threads.c 
new/tevent-0.9.34/tevent_threads.c
--- old/tevent-0.9.33/tevent_threads.c  2017-06-23 14:20:41.000000000 +0200
+++ new/tevent-0.9.34/tevent_threads.c  2017-11-13 10:57:29.000000000 +0100
@@ -451,7 +451,7 @@
 {
 #ifdef HAVE_PTHREAD
        struct tevent_context *ev;
-       int ret;
+       int ret, wakeup_fd;
 
        ret = pthread_mutex_lock(&tctx->event_ctx_mutex);
        if (ret != 0) {
@@ -495,6 +495,8 @@
                abort();
        }
 
+       wakeup_fd = tctx->wakeup_fd;
+
        ret = pthread_mutex_unlock(&tctx->event_ctx_mutex);
        if (ret != 0) {
                abort();
@@ -510,7 +512,7 @@
         * than a noncontended one. So I'd opt for the lower footprint
         * initially. Maybe we have to change that later.
         */
-       tevent_common_wakeup_fd(tctx->wakeup_fd);
+       tevent_common_wakeup_fd(wakeup_fd);
 #else
        /*
         * tevent_threaded_context_create() returned NULL with ENOSYS...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/tevent-0.9.33/wscript new/tevent-0.9.34/wscript
--- old/tevent-0.9.33/wscript   2017-07-23 00:25:22.000000000 +0200
+++ new/tevent-0.9.34/wscript   2017-11-13 10:57:39.000000000 +0100
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 
 APPNAME = 'tevent'
-VERSION = '0.9.33'
+VERSION = '0.9.34'
 
 blddir = 'bin'
 
@@ -77,7 +77,7 @@
     bld.RECURSE('lib/talloc')
 
     SRC = '''tevent.c tevent_debug.c tevent_fd.c tevent_immediate.c
-             tevent_queue.c tevent_req.c tevent_select.c
+             tevent_queue.c tevent_req.c
              tevent_poll.c tevent_threads.c
              tevent_signal.c tevent_standard.c tevent_timed.c tevent_util.c 
tevent_wakeup.c'''
 



Reply via email to