Sync from SUSE:SLFO:Main tevent revision b56c4bad81fb70d48dd99a5e8349702e

This commit is contained in:
Adrian Schröter 2024-05-04 01:07:35 +02:00
commit ea88847e3e
11 changed files with 1534 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

4
_multibuild Normal file
View File

@ -0,0 +1,4 @@
<multibuild>
<package>tevent-man</package>
</multibuild>

2
baselibs.conf Normal file
View File

@ -0,0 +1,2 @@
libtevent0
python3-tevent

4
pre_checkin.sh Normal file
View File

@ -0,0 +1,4 @@
#!/bin/bash
sed 's/%define.*build_man.*0/%define build_man 1/' tevent.spec > tevent-man.spec
cp -a tevent.changes tevent-man.changes

11
tevent-0.15.0.tar.asc Normal file
View File

@ -0,0 +1,11 @@
-----BEGIN PGP SIGNATURE-----
iQEzBAABCgAdFiEEkUejOXGVGO6QEby1R5ORYRMIQCUFAmS5ESwACgkQR5ORYRMI
QCVAAQf/QZDVMYTCi/23rbzJWiNJVd9moL/simYWSN3loWqwKL8HZ0rsqjt2RG1z
zPwdv0eVkr0jo7pPaqj6r1FY6/PRPA3wzSSzTEx0nCCeGkNlqI9Is33yY6QUzxcg
P2iVN5ZsHPtPXWkt5+II35ZYliB/dOHqdDhwCqJm0IxZSMUCvkq+75IV62Jk+EWz
HynFfypX7Yb2uyC4r+j2puvGxzfYGXX6mHt2x/m9JC4Pg9bquLNb9Low5WwSdJ5r
AZlbOJ95oSVqO1N6Rp22qEG1dBtG+53MYMF7mhglPg3T6b7QEanb2k9876/yslD/
NZTE7ptqN5JwkWMlotHSiOCM5pcKEQ==
=j9uE
-----END PGP SIGNATURE-----

BIN
tevent-0.15.0.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

477
tevent-man.changes Normal file
View File

@ -0,0 +1,477 @@
-------------------------------------------------------------------
Tue Sep 26 09:34:49 UTC 2023 - Noel Power <nopower@suse.com>
- Update to version 0.15.0
* remove py2 ifdefs
* python: Safely clear structure members
* the tevent_thread_call_depth API is updated
in order to allow better tracing.
pass TEVENT_DEBUG_TRACE to tevent_debug() callbacks by default.
* Spelling fixes
* Make use of epoll_create1() for epoll backend
* Optimize overhead in the epoll backend
-------------------------------------------------------------------
Fri Mar 17 07:58:05 UTC 2023 - Samuel Cabrero <scabrero@suse.de>
- Update to version 0.14.1
* Build fix for GNU/Hurd
* Build fix for Solaris, after removal of ports backend (bso#15298)
- Changes from version 0.14.0
* Support python 3.12
* Remove solaris port backend
* Make tevent_find_ops_byname() available for callers
* Allow the "standard" backend to be overloaded
* Add interface for request/subrequest call depth tracking
-------------------------------------------------------------------
Thu Sep 22 15:48:44 UTC 2022 - Noel Power <nopower@suse.com>
- Update to version 0.13.0
+ tevent: add tevent_cached_getpid() helper
- Update to version 0.12.0
+ tevent: Add tevent queue tracing support
+ tevent: Use internally an empty trigger function for
blocker requests
-------------------------------------------------------------------
Wed Feb 02 13:56:12 UTC 2022 - David Mulder <dmulder@suse.com>
- Fix build on 15.3 (for the heimdal addc build), by bundling cmocka.
-------------------------------------------------------------------
Fri Sep 17 08:49:47 UTC 2021 - Samuel Cabrero <scabrero@suse.de>
- Update to version 0.11.0
+ Other minor build fixes; (bso#14526);
+ Add custom tag to events
+ Add event trace api
-------------------------------------------------------------------
Sat Mar 7 00:20:55 UTC 2020 - Noel Power <nopower@suse.com>
- Update to version 0.10.2
+ Upgrade waf to version 2.0.18 to fix a cross-compilation issue;
(bso#13846).
-------------------------------------------------------------------
Tue Nov 26 21:52:29 CET 2019 - Matej Cepl <mcepl@suse.com>
- Update to 0.10.1 ... make build with Python 3.8 working again
(new waf).
-------------------------------------------------------------------
Thu Oct 03 22:04:33 UTC 2019 - James McDonough <jmcdonough@suse.com>
- Update to version 0.10.0
+ Remove Python 2.x support except to build just the bare C library
+ Remove --extra-python (a build time mode to produce Python2 and Python3
bindings at the same time)
+ New minor version to allow Samba 4.10 to release a tevent if
required from that branch
-------------------------------------------------------------------
Tue Mar 5 18:22:33 UTC 2019 - dmulder@suse.com
- Update to version 0.9.39
+ py_tevent: add_timer takes float argument
+ C99 build fixes.
+ Fix standalone build of tevent.
-------------------------------------------------------------------
Wed Feb 6 17:50:12 UTC 2019 - dmulder@suse.com
- Update to version 0.9.38
+ Deprecate tevent wrapper api again
+ Build fixes
+ The build uses python3 by default:
+ --extra-python would take python2 now
+ To build with python2 only use:
PYTHON=python2 ./configure
PYTHON=python2 make
PYTHON=python2 make install
-------------------------------------------------------------------
Tue Sep 25 07:37:57 UTC 2018 - Samuel Cabrero <scabrero@suse.de>
- Update license to LGPL-3.0
-------------------------------------------------------------------
Wed Aug 8 16:28:21 UTC 2018 - dmulder@suse.com
- Update to version 0.9.37
+ simplify "poll" and "poll_mt" backends
+ make tevent_abort() reachable for backends
+ add tevent_common_invoke_*_handler() functions
+ add tevent_context_same_loop() function
+ add tevent_context_wrapper_create() infrastructure
+ add tevent_req_profile infrastructure
-------------------------------------------------------------------
Fri Mar 16 17:57:04 UTC 2018 - jmcdonough@suse.com
- Update to version 0.9.36; (bso#13291);
+ improve documentation of tevent_queue_add_optimize_empty()
+ add tevent_queue_entry_untrigger()
+ Minor cleanup. wakeup_fd can always be gotten from the event context.
+ Use smb_set_close_on_exec() in example code.
- Use tirpc on newer sytems
-------------------------------------------------------------------
Tue Nov 28 17:31:07 UTC 2017 - scabrero@suse.com
- Update to version 0.9.34; (bsc#1069666);
+ Remove unused select backend
+ Fix a race condition in tevent_threaded_schedule_immediate();
(bso#13130);
-------------------------------------------------------------------
Wed Jul 26 08:49:04 UTC 2017 - scabrero@suse.com
- Update to version 0.9.33
+ make tevent_req_print() more robust against crashes
-------------------------------------------------------------------
Fri Jun 30 11:58:18 UTC 2017 - scabrero@suse.com
- Update to version 0.9.32
+ Fix mutex locking in tevent_threaded_context_destructor().
+ Fix a memleak on FreeBSD.
+ Re-init threading in tevent_re_initialise().
+ Include the finish location in tevent_req_default_print().
-------------------------------------------------------------------
Mon Feb 6 15:00:05 UTC 2017 - jengelh@inai.de
- Drop redundant PreReq for ldconfig; this is autodetected.
Set RPM group right.
-------------------------------------------------------------------
Thu Feb 2 14:57:25 UTC 2017 - aaptel@suse.com
- Use https urls.
-------------------------------------------------------------------
Tue Jan 24 17:21:20 UTC 2017 - ddiss@suse.com
- Update to version 0.9.31; (bsc#1032915).
+ Add tevent_req_reset_endtime
+ Make talloc_free safe when threaded_contexts exist
+ Add tevent_update_timer
+ Factor out tevent_common_insert_timer
+ Add threaded immediate activation
-------------------------------------------------------------------
Wed Sep 14 08:49:43 UTC 2016 - jmcdonough@suse.com
- Update to version 0.9.29.
+ performance improvements.
-------------------------------------------------------------------
Tue Mar 15 16:43:15 UTC 2016 - lmuelle@suse.com
- Require talloc 2.1.6 at build-time; (bsc#954658).
-------------------------------------------------------------------
Sun Feb 21 16:53:17 UTC 2016 - lmuelle@suse.com
- Avoid a file collision for non SUSE build targets; (bsc#966174).
-------------------------------------------------------------------
Wed Feb 19 15:48:45 UTC 2016 - lmuelle@suse.com
- 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).
-------------------------------------------------------------------
Wed Nov 11 17:52:45 UTC 2015 - lmuelle@suse.com
- Update to 0.9.26; (bsc#954658).
+ New tevent_thread_proxy API
+ Minor build fixes
-------------------------------------------------------------------
Fri Oct 30 15:18:10 UTC 2015 - lmuelle@suse.com
- Disable rpath-install and silent-rules while configure.
-------------------------------------------------------------------
Sun Oct 25 13:48:42 UTC 2015 - lmuelle@suse.com
- Add python3-tevent; (bsc#951911).
-------------------------------------------------------------------
Thu Oct 22 21:03:11 UTC 2015 - lmuelle@suse.com
- Require python-talloc-devel instead of pytalloc-devel.
-------------------------------------------------------------------
Mon Sep 7 22:14:42 UTC 2015 - lmuelle@suse.com
- Recommend to install tevent-man from libtevent-devel on post-10.3 systems.
-------------------------------------------------------------------
Mon Sep 7 17:50:34 UTC 2015 - lmuelle@suse.com
- Remove superfluous _name define.
-------------------------------------------------------------------
Mon Sep 7 17:06:26 UTC 2015 - lmuelle@suse.com
- Update the Samba Library Distribution Key file 'tevent.keyring';
(bso#945116).
-------------------------------------------------------------------
Thu Aug 20 08:58:37 UTC 2015 - dimstar@opensuse.org
- Create 2nd spec-file tevent-man.spec: build the man pages in a
separate cycle in order to avoid the follwing build cycle:
doxygen -> curl -> krb5-mini -> libverto -> tevent -> doxygen.
- Recommend tevent-man for installation.
-------------------------------------------------------------------
Sat Jun 27 17:20:12 UTC 2015 - lmuelle@suse.com
- Update to 0.9.25.
+ Fix compile error in Solaris ports backend.
+ Fix access after free in tevent_common_check_signal(); (bso#11308).
+ Improve pytevent bindings.
+ Testsuite fixes.
+ Improve the documentation of the tevent_add_fd() assumtions. It must be
talloc_free'ed before closing the fd! (bso##11141); (bso#11316).
-------------------------------------------------------------------
Thu Mar 5 11:16:25 UTC 2015 - lmuelle@suse.com
- Update to 0.9.24.
+ Ignore unexpected signal events in the same way the epoll backend does.
-------------------------------------------------------------------
Fri Feb 27 19:36:39 UTC 2015 - lmuelle@suse.com
- Update to 0.9.23.
+ Update the tevent_data.dox tutrial stuff to fix some errors, including
white space problems.
+ Use tevent_req_simple_recv_unix in a few places.
-------------------------------------------------------------------
Thu Nov 6 13:21:57 UTC 2014 - lmuelle@suse.com
- Use the upstream tar ball, as signature verification is now able to handle
compressed archives.
-------------------------------------------------------------------
Tue Oct 28 15:45:11 UTC 2014 - lmuelle@suse.com
- Remove dependency on gpg-offline as signature checking is implemented in the
source validator.
-------------------------------------------------------------------
Sun Oct 5 17:40:34 UTC 2014 - lmuelle@suse.com
- Update to 0.9.22.
+ remove unused exit_code in tevent_select.c
+ remove unused exit_code in tevent_poll.c
+ build: improve detection of srcdir
+ lib: tevent: make TEVENT_SIG_INCREMENT atomic.
+ Update flags in tevent pkgconfig file
-------------------------------------------------------------------
Tue Sep 23 20:41:59 UTC 2014 - lmuelle@suse.com
- Utilize doxygen to generate the API documentation and package it.
-------------------------------------------------------------------
Mon Feb 17 22:00:55 UTC 2014 - lmuelle@suse.com
- Update to 0.9.21.
+ add tevent_req_set_cleanup_fn()
+ add/use tevent_req_destructor
+ add doxygen comments for tevent_num_signals() and
tevent_sa_info_queue_count()
+ Add prototypes
+ Only build "std_fallback_to_poll" when epoll is around
+ fix crash bug in tevent_queue_immediate_trigger()
+ Fix CID 1138326 Unchecked return value
- Update to 0.9.20.
+ give the user the chance to ask for TEVENT_NUM_SIGNALS and
TEVENT_SA_INFO_QUEUE_COUNT
+ change TEVENT_SA_INFO_QUEUE_COUNT from 64 to 256
+ tevent_epoll_set_panic_fallback() can be a void function
+ make use of talloc_get_type_abort() in tevent_epoll.c, tevent_signal.c,
tevent_select.c, and tevent_queue.c
+ use talloc_get_type_abort() in the documentation examples
+ add tevent_queue_wait_send/recv()
+ tevent_req_create() already uses ZERO_STRUCT(req)
+ let tevent_req_received() clear the private_cancel function
+ cancel the timeout timer when the request is finished
+ Use talloc_pooled_object for tevent_req_create
+ Remove a pointless goto
+ Add tevent_received to tevent_req_simple_recv_ntstatus
+ Fix tutorial reference
+ Add echo server sample code
+ Sync to tevent 0.9.18 from upstream
+ expose tevent_context_init_ops
-------------------------------------------------------------------
Fri Dec 6 13:51:45 UTC 2013 - lmuelle@suse.com
- Update to 0.9.19.
+ Remove the signal pipe if no signal events are around
+ document tevent_req_create state zeroing
+ Fix Coverity ID 989236 Operands don't affect result
+ Add tevent tutorial files and link it on the mainpage
+ Only set poll_ev->delete=false if it was true
-------------------------------------------------------------------
Fri Dec 6 13:42:37 UTC 2013 - lmuelle@suse.com
- Verify source tar ball gpg signature.
-------------------------------------------------------------------
Thu Aug 29 12:12:58 UTC 2013 - lmuelle@suse.com
- PreReq /sbin/ldconfig from python-tevent.
-------------------------------------------------------------------
Thu Aug 29 10:54:02 UTC 2013 - lmuelle@suse.com
- Add python-tevent to baselibs.conf.
-------------------------------------------------------------------
Tue Jul 2 11:47:29 UTC 2013 - lmuelle@suse.com
- Add tevent.pyc and pyo to the file list of python-tevent for post Centos and
RHEL 5 and Fedora 11 builds.
-------------------------------------------------------------------
Tue Apr 9 14:44:24 UTC 2013 - lmuelle@suse.com
- Update to 0.9.18.
+ Adding new timer events is now faster, if there's
a large number of timer events.
+ sigprocmask does not work on FreeBSD to stop further signals in a signal
handler.
+ TEVENT_NUM_SIGNALS is calculated by configure in order
to support realtime signals on freebsd.
+ ./configure --disable-python was fixed for the standalone build.
+ Several crash bugs in the poll backend are fixed.
+ The poll backend removes deleted events from the cached pollfd array now.
+ The poll doesn't pass pollfd.events == 0 to poll() and maintains a list
of disabled events, instead of consuming 100% cpu and/or triggering
the callers handler.
+ The poll backend detects POLLNVAL and reports EBADF
instead of consuming 100% cpu.
+ The select backend supports separate handlers
for TEVENT_FD_READ and TEVENT_FD_WRITE.
+ The poll and select backends are now doing fair queuing of fd events.
+ The epoll has better error checking and supports separate handlers
for TEVENT_FD_READ and TEVENT_FD_WRITE.
+ The standard backend was rewritten to be a tiny
wrapper on top of epoll with a fallback to poll,
which means that it doesn't use select directly anymore.
+ TEVENT_TRACE_BEFORE_LOOP_ONCE and TEVENT_TRACE_AFTER_LOOP_ONCE are added
in order to allow the application to hook in before and after the
loop_once() backend function is called.
The TEVENT_HAS_LOOP_ONCE_TRACE_POINTS define can be used to
detect the new feature.
-------------------------------------------------------------------
Thu Aug 30 16:25:22 UTC 2012 - lmuelle@suse.com
- Update to 0.9.17.
+ Add threaded poll_mt testcase
+ tevent_poll: Decouple poll_ev->fds handling from adding/removing fds
+ tevent: Refer to the correct header in testsuite.c
-------------------------------------------------------------------
Tue Aug 7 21:49:07 UTC 2012 - lmuelle@suse.com
- Update to 0.9.16.
+ Adds tevent_*_trace_*() and tevent_context_init_ops().
+ Move tevent.py to the arch-specific directory.
-------------------------------------------------------------------
Thu Jun 28 16:29:25 UTC 2012 - lmuelle@suse.com
- Disable rpath while configure.
-------------------------------------------------------------------
Wed Jun 13 16:09:22 UTC 2012 - ddiss@suse.com
- Tag GPLv3 due to tevent_util.h license; (bnc#765270).
-------------------------------------------------------------------
Sun Jun 3 21:52:07 UTC 2012 - lmuelle@suse.com
- Define library name and use it instead of libtevent0.
-------------------------------------------------------------------
Sat Jun 2 15:46:14 UTC 2012 - lmuelle@suse.com
- Rename package to tevent and add an independent libtevent0 subpackage.
- Enhance and polish the package descriptions and summaries.
-------------------------------------------------------------------
Sat Jun 2 00:04:43 UTC 2012 - lmuelle@suse.com
- Define and use talloc version macro.
-------------------------------------------------------------------
Fri Jun 1 15:41:27 UTC 2012 - lmuelle@suse.com
- BuildIgnore libtalloc to prevent a package conflict on Fedora systems.
-------------------------------------------------------------------
Thu May 31 21:33:31 UTC 2012 - lmuelle@suse.com
- Define python_sitelib and python_sitearch if undefined.
-------------------------------------------------------------------
Thu May 31 12:01:45 UTC 2012 - lmuelle@suse.com
- BuildRequire libtalloc-devel instead of libtalloc2-devel.
- Rename libtevent2-devel to libtevent-devel.
-------------------------------------------------------------------
Wed May 30 15:30:59 UTC 2012 - lmuelle@suse.com
- Remove superfluous AutoReqProv on line.
-------------------------------------------------------------------
Fri May 25 08:10:05 UTC 2012 - lmuelle@suse.com
- BuildRequire pkg-config.
- Move _tevent.so to the python-tevent package.
-------------------------------------------------------------------
Wed May 16 13:28:23 UTC 2012 - lmuelle@suse.com
- Cleanup BuildRequires and spec file in general.
- BuildRequire doxygen, libtalloc2-devel >= 2.0.7, python-devel, and
pytalloc-devel >= 2.0.7.
- Require libtalloc2-devel >= 2.0.7 and pkg-config from the devel package.
- Move python files to an independent python-tevent package.
-------------------------------------------------------------------
Mon May 14 14:56:44 UTC 2012 - lmuelle@suse.com
- Adjust licence.
- Require libtevent0 = %{version} from the devel package.
- Extend the description of the devel package.
-------------------------------------------------------------------
Mon May 14 14:26:10 UTC 2012 - lmuelle@suse.com
- BuildRequire libtalloc2-devel.
- Remove superfluous BuildRequires to talloc libraries.
-------------------------------------------------------------------
Wed Sep 7 17:52:30 UTC 2011 - lars@samba.org
- Initial independent libtevent0 package.

228
tevent-man.spec Normal file
View File

@ -0,0 +1,228 @@
#
# spec file for package tevent-man
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{!?py3_soflags: %global py3_soflags cpython-%{python3_version_nodots}m}
%define talloc_version 2.4.1
%define build_man 1
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
%define bundle_cmocka 0
%else
%define bundle_cmocka 1
%endif
%if %{build_man}
Name: tevent-man
BuildRequires: doxygen
%else
Name: tevent
BuildRequires: libtalloc-devel >= %{talloc_version}
%if 0%{?suse_version} >= 1330
BuildRequires: libtirpc-devel
%endif
%if 0%{?suse_version} > 1020
BuildRequires: pkg-config
%else
BuildRequires: pkgconfig
%endif
BuildRequires: pkg-config
BuildRequires: python3-devel
BuildRequires: python3-talloc >= %{talloc_version}
BuildRequires: python3-talloc-devel >= %{talloc_version}
%if ! %{bundle_cmocka}
BuildRequires: pkgconfig(cmocka) >= 1.1.3
%endif
%endif # build_man
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1140
%define build_make_smp_mflags %{?_smp_mflags}
%else
%define build_make_smp_mflags %{?jobs:-j%jobs}
%endif
URL: https://tevent.samba.org/
Version: 0.15.0
Release: 0
Summary: An event system based on the talloc memory management library
License: LGPL-3.0-or-later
Group: Development/Libraries/C and C++
Source: https://download.samba.org/pub/tevent/tevent-%{version}.tar.gz
Source1: https://download.samba.org/pub/tevent/tevent-%{version}.tar.asc
Source2: tevent.keyring
Source4: baselibs.conf
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Tevent is an event system based on the talloc memory management library. It
is the core event system used in Samba.
The low level tevent has support for many event types, including timers,
signals, and the classic file descriptor events.
Tevent also provide helpers to deal with asynchronous code providing the
tevent_req (tevent request) functions.
%if ! %{build_man}
%package -n libtevent0
PreReq: /sbin/ldconfig
Summary: Samba tevent Library
Group: System/Libraries
%description -n libtevent0
Tevent is an event system based on the talloc memory management library. It
is the core event system used in Samba.
The low level tevent has support for many event types, including timers,
signals, and the classic file descriptor events.
This package contains the tevent0 library.
%package -n libtevent-devel
Summary: Libraries and Header Files to Develop Programs with tevent0 Support
# Man pages are built in a 2nd spec file in order to break a build cycle with doxygen->cmake->krb5->libtevent
Group: Development/Libraries/C and C++
%if 0%{?suse_version} > 1030
Recommends: %{name}-man
%endif
Requires: libtalloc-devel >= %{talloc_version}
Requires: libtevent0 = %{version}
%if 0%{?suse_version} > 1020
Requires: pkg-config
%else
Requires: pkgconfig
%endif
%description -n libtevent-devel
Tevent is an event system based on the talloc memory management library. It
is the core event system used in Samba.
The low level tevent has support for many event types, including timers,
signals, and the classic file descriptor events.
Tevent also provide helpers to deal with asynchronous code providing the
tevent_req (tevent request) functions.
This package contains libraries and header files need for development.
%package -n python3-tevent
Summary: Python3 bindings for the Tevent library
Group: Development/Libraries/Python
Requires: libtevent0 = %{version}
PreReq: /sbin/ldconfig
Obsoletes: python-tevent
%description -n python3-tevent
This package contains the python bindings for the Tevent library.
%endif # ! build_man
%prep
%setup -n tevent-%{version} -q
%build
%if ! %{build_man}
%if 0%{?suse_version} && 0%{?suse_version} < 911
OPTIMIZATION="-O"
%else
# use the default optimization
unset OPTIMIZATION
%endif
%if %{bundle_cmocka}
BUNDLED_LIBS="cmocka"
%endif
export CFLAGS="${RPM_OPT_FLAGS} -D_GNU_SOURCE ${OPTIMIZATION} -D_LARGEFILE64_SOURCE -DIDMAP_RID_SUPPORT_TRUSTED_DOMAINS"
CONFIGURE_OPTIONS="\
--prefix=%{_prefix} \
--libdir=%{_libdir} \
--disable-rpath \
--disable-rpath-install \
--disable-silent-rules \
--bundled-libraries=NONE,${BUNDLED_LIBS} \
--builtin-libraries=replace \
"
./configure ${CONFIGURE_OPTIONS}
%{__make} %{build_make_smp_mflags} \
all
%else
doxygen doxy.config
%endif # ! build_man
%if ! %{build_man}
%check
LD_LIBRARY_PATH=bin/shared %{__make} test
%endif # ! build_man
%install
%if ! %{build_man}
DESTDIR=${RPM_BUILD_ROOT} make install
# Shared libraries need to be marked executable for rpmbuild to strip them and
# include them in debuginfo
find ${RPM_BUILD_ROOT} -name "*.so*" -exec chmod -c +x {} \;
%else
# install API docs
mkdir -p $RPM_BUILD_ROOT/%{_mandir}
cp -a doc/man/* $RPM_BUILD_ROOT/%{_mandir}
rm $RPM_BUILD_ROOT/%{_mandir}/man3/todo.3
%endif # ! build_man
%if ! %{build_man}
%post -n libtevent0 -p /sbin/ldconfig
%postun -n libtevent0 -p /sbin/ldconfig
%post -n python3-tevent -p /sbin/ldconfig
%postun -n python3-tevent -p /sbin/ldconfig
%files -n libtevent0
%defattr(-,root,root)
%{_libdir}/libtevent.so.*
%if %{bundle_cmocka}
%dir %{_libdir}/tevent
%{_libdir}/tevent/libcmocka-tevent.so
%endif
%files -n libtevent-devel
%defattr(-,root,root)
%{_includedir}/tevent.h
%{_libdir}/libtevent.so
%{_libdir}/pkgconfig/tevent.pc
%files -n python3-tevent
%defattr(-,root,root)
%{python3_sitearch}/_tevent.%{py3_soflags}.so
%{python3_sitearch}/tevent.py
%if 0%{?centos_version} > 599 || 0%{?fedora_version} > 11 || 0%{?rhel_version} > 599
%{python3_sitearch}/__pycache__/tevent.cpython-*.py[co]
%endif
%else
%files
%defattr(-,root,root)
%{_mandir}/man3/tevent*.*
%endif # ! build_man
%changelog

484
tevent.changes Normal file
View File

@ -0,0 +1,484 @@
-------------------------------------------------------------------
Tue Sep 26 09:34:49 UTC 2023 - Noel Power <nopower@suse.com>
- Update to version 0.15.0
* remove py2 ifdefs
* python: Safely clear structure members
* the tevent_thread_call_depth API is updated
in order to allow better tracing.
* add tevent_set_max_debug_level() only and don't
pass TEVENT_DEBUG_TRACE to tevent_debug() callbacks by default.
* Spelling fixes
* Make use of epoll_create1() for epoll backend
* Optimize overhead in the epoll backend
-------------------------------------------------------------------
Mon Apr 24 10:07:08 UTC 2023 - Dominique Leuenberger <dimstar@opensuse.org>
- Add _multibuild to define 2nd spec file as additional flavor.
Eliminates the need for source package links in OBS.
-------------------------------------------------------------------
Fri Mar 17 07:58:05 UTC 2023 - Samuel Cabrero <scabrero@suse.de>
- Update to version 0.14.1
* Build fix for GNU/Hurd
* Build fix for Solaris, after removal of ports backend (bso#15298)
- Changes from version 0.14.0
* Support python 3.12
* Remove solaris port backend
* Make tevent_find_ops_byname() available for callers
* Allow the "standard" backend to be overloaded
* Add interface for request/subrequest call depth tracking
-------------------------------------------------------------------
Thu Sep 22 15:48:44 UTC 2022 - Noel Power <nopower@suse.com>
- Update to version 0.13.0
+ tevent: add tevent_cached_getpid() helper
- Update to version 0.12.0
+ tevent: Add tevent queue tracing support
+ tevent: Use internally an empty trigger function for
blocker requests
-------------------------------------------------------------------
Wed Feb 02 13:56:12 UTC 2022 - David Mulder <dmulder@suse.com>
- Fix build on 15.3 (for the heimdal addc build), by bundling cmocka.
-------------------------------------------------------------------
Fri Sep 17 08:49:47 UTC 2021 - Samuel Cabrero <scabrero@suse.de>
- Update to version 0.11.0
+ Other minor build fixes; (bso#14526);
+ Add custom tag to events
+ Add event trace api
-------------------------------------------------------------------
Sat Mar 7 00:20:55 UTC 2020 - Noel Power <nopower@suse.com>
- Update to version 0.10.2
+ Upgrade waf to version 2.0.18 to fix a cross-compilation issue;
(bso#13846).
-------------------------------------------------------------------
Tue Nov 26 21:52:29 CET 2019 - Matej Cepl <mcepl@suse.com>
- Update to 0.10.1 ... make build with Python 3.8 working again
(new waf).
-------------------------------------------------------------------
Thu Oct 03 22:04:33 UTC 2019 - James McDonough <jmcdonough@suse.com>
- Update to version 0.10.0
+ Remove Python 2.x support except to build just the bare C library
+ Remove --extra-python (a build time mode to produce Python2 and Python3
bindings at the same time)
+ New minor version to allow Samba 4.10 to release a tevent if
required from that branch
-------------------------------------------------------------------
Tue Mar 5 18:22:33 UTC 2019 - dmulder@suse.com
- Update to version 0.9.39
+ py_tevent: add_timer takes float argument
+ C99 build fixes.
+ Fix standalone build of tevent.
-------------------------------------------------------------------
Wed Feb 6 17:50:12 UTC 2019 - dmulder@suse.com
- Update to version 0.9.38
+ Deprecate tevent wrapper api again
+ Build fixes
+ The build uses python3 by default:
+ --extra-python would take python2 now
+ To build with python2 only use:
PYTHON=python2 ./configure
PYTHON=python2 make
PYTHON=python2 make install
-------------------------------------------------------------------
Tue Sep 25 07:37:57 UTC 2018 - Samuel Cabrero <scabrero@suse.de>
- Update license to LGPL-3.0
-------------------------------------------------------------------
Wed Aug 8 16:28:21 UTC 2018 - dmulder@suse.com
- Update to version 0.9.37
+ simplify "poll" and "poll_mt" backends
+ make tevent_abort() reachable for backends
+ add tevent_common_invoke_*_handler() functions
+ add tevent_context_same_loop() function
+ add tevent_context_wrapper_create() infrastructure
+ add tevent_req_profile infrastructure
-------------------------------------------------------------------
Fri Mar 16 17:57:04 UTC 2018 - jmcdonough@suse.com
- Update to version 0.9.36; (bso#13291);
+ improve documentation of tevent_queue_add_optimize_empty()
+ add tevent_queue_entry_untrigger()
+ Minor cleanup. wakeup_fd can always be gotten from the event context.
+ Use smb_set_close_on_exec() in example code.
- Use tirpc on newer sytems
-------------------------------------------------------------------
Tue Nov 28 17:31:07 UTC 2017 - scabrero@suse.com
- Update to version 0.9.34; (bsc#1069666);
+ Remove unused select backend
+ Fix a race condition in tevent_threaded_schedule_immediate();
(bso#13130);
-------------------------------------------------------------------
Wed Jul 26 08:49:04 UTC 2017 - scabrero@suse.com
- Update to version 0.9.33
+ make tevent_req_print() more robust against crashes
-------------------------------------------------------------------
Fri Jun 30 11:58:18 UTC 2017 - scabrero@suse.com
- Update to version 0.9.32
+ Fix mutex locking in tevent_threaded_context_destructor().
+ Fix a memleak on FreeBSD.
+ Re-init threading in tevent_re_initialise().
+ Include the finish location in tevent_req_default_print().
-------------------------------------------------------------------
Mon Feb 6 15:00:05 UTC 2017 - jengelh@inai.de
- Drop redundant PreReq for ldconfig; this is autodetected.
Set RPM group right.
-------------------------------------------------------------------
Thu Feb 2 14:57:25 UTC 2017 - aaptel@suse.com
- Use https urls.
-------------------------------------------------------------------
Tue Jan 24 17:21:20 UTC 2017 - ddiss@suse.com
- Update to version 0.9.31; (bsc#1032915).
+ Add tevent_req_reset_endtime
+ Make talloc_free safe when threaded_contexts exist
+ Add tevent_update_timer
+ Factor out tevent_common_insert_timer
+ Add threaded immediate activation
-------------------------------------------------------------------
Wed Sep 14 08:49:43 UTC 2016 - jmcdonough@suse.com
- Update to version 0.9.29.
+ performance improvements.
-------------------------------------------------------------------
Tue Mar 15 16:43:15 UTC 2016 - lmuelle@suse.com
- Require talloc 2.1.6 at build-time; (bsc#954658).
-------------------------------------------------------------------
Sun Feb 21 16:53:17 UTC 2016 - lmuelle@suse.com
- Avoid a file collision for non SUSE build targets; (bsc#966174).
-------------------------------------------------------------------
Wed Feb 19 15:48:45 UTC 2016 - lmuelle@suse.com
- 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).
-------------------------------------------------------------------
Wed Nov 11 17:52:45 UTC 2015 - lmuelle@suse.com
- Update to 0.9.26; (bsc#954658).
+ New tevent_thread_proxy API
+ Minor build fixes
-------------------------------------------------------------------
Fri Oct 30 15:18:10 UTC 2015 - lmuelle@suse.com
- Disable rpath-install and silent-rules while configure.
-------------------------------------------------------------------
Sun Oct 25 13:48:42 UTC 2015 - lmuelle@suse.com
- Add python3-tevent; (bsc#951911).
-------------------------------------------------------------------
Thu Oct 22 21:03:11 UTC 2015 - lmuelle@suse.com
- Require python-talloc-devel instead of pytalloc-devel.
-------------------------------------------------------------------
Mon Sep 7 22:14:42 UTC 2015 - lmuelle@suse.com
- Recommend to install tevent-man from libtevent-devel on post-10.3 systems.
-------------------------------------------------------------------
Mon Sep 7 17:50:34 UTC 2015 - lmuelle@suse.com
- Remove superfluous _name define.
-------------------------------------------------------------------
Mon Sep 7 17:06:26 UTC 2015 - lmuelle@suse.com
- Update the Samba Library Distribution Key file 'tevent.keyring';
(bso#945116).
-------------------------------------------------------------------
Thu Aug 20 08:58:37 UTC 2015 - dimstar@opensuse.org
- Create 2nd spec-file tevent-man.spec: build the man pages in a
separate cycle in order to avoid the follwing build cycle:
doxygen -> curl -> krb5-mini -> libverto -> tevent -> doxygen.
- Recommend tevent-man for installation.
-------------------------------------------------------------------
Sat Jun 27 17:20:12 UTC 2015 - lmuelle@suse.com
- Update to 0.9.25.
+ Fix compile error in Solaris ports backend.
+ Fix access after free in tevent_common_check_signal(); (bso#11308).
+ Improve pytevent bindings.
+ Testsuite fixes.
+ Improve the documentation of the tevent_add_fd() assumtions. It must be
talloc_free'ed before closing the fd! (bso##11141); (bso#11316).
-------------------------------------------------------------------
Thu Mar 5 11:16:25 UTC 2015 - lmuelle@suse.com
- Update to 0.9.24.
+ Ignore unexpected signal events in the same way the epoll backend does.
-------------------------------------------------------------------
Fri Feb 27 19:36:39 UTC 2015 - lmuelle@suse.com
- Update to 0.9.23.
+ Update the tevent_data.dox tutrial stuff to fix some errors, including
white space problems.
+ Use tevent_req_simple_recv_unix in a few places.
-------------------------------------------------------------------
Thu Nov 6 13:21:57 UTC 2014 - lmuelle@suse.com
- Use the upstream tar ball, as signature verification is now able to handle
compressed archives.
-------------------------------------------------------------------
Tue Oct 28 15:45:11 UTC 2014 - lmuelle@suse.com
- Remove dependency on gpg-offline as signature checking is implemented in the
source validator.
-------------------------------------------------------------------
Sun Oct 5 17:40:34 UTC 2014 - lmuelle@suse.com
- Update to 0.9.22.
+ remove unused exit_code in tevent_select.c
+ remove unused exit_code in tevent_poll.c
+ build: improve detection of srcdir
+ lib: tevent: make TEVENT_SIG_INCREMENT atomic.
+ Update flags in tevent pkgconfig file
-------------------------------------------------------------------
Tue Sep 23 20:41:59 UTC 2014 - lmuelle@suse.com
- Utilize doxygen to generate the API documentation and package it.
-------------------------------------------------------------------
Mon Feb 17 22:00:55 UTC 2014 - lmuelle@suse.com
- Update to 0.9.21.
+ add tevent_req_set_cleanup_fn()
+ add/use tevent_req_destructor
+ add doxygen comments for tevent_num_signals() and
tevent_sa_info_queue_count()
+ Add prototypes
+ Only build "std_fallback_to_poll" when epoll is around
+ fix crash bug in tevent_queue_immediate_trigger()
+ Fix CID 1138326 Unchecked return value
- Update to 0.9.20.
+ give the user the chance to ask for TEVENT_NUM_SIGNALS and
TEVENT_SA_INFO_QUEUE_COUNT
+ change TEVENT_SA_INFO_QUEUE_COUNT from 64 to 256
+ tevent_epoll_set_panic_fallback() can be a void function
+ make use of talloc_get_type_abort() in tevent_epoll.c, tevent_signal.c,
tevent_select.c, and tevent_queue.c
+ use talloc_get_type_abort() in the documentation examples
+ add tevent_queue_wait_send/recv()
+ tevent_req_create() already uses ZERO_STRUCT(req)
+ let tevent_req_received() clear the private_cancel function
+ cancel the timeout timer when the request is finished
+ Use talloc_pooled_object for tevent_req_create
+ Remove a pointless goto
+ Add tevent_received to tevent_req_simple_recv_ntstatus
+ Fix tutorial reference
+ Add echo server sample code
+ Sync to tevent 0.9.18 from upstream
+ expose tevent_context_init_ops
-------------------------------------------------------------------
Fri Dec 6 13:51:45 UTC 2013 - lmuelle@suse.com
- Update to 0.9.19.
+ Remove the signal pipe if no signal events are around
+ document tevent_req_create state zeroing
+ Fix Coverity ID 989236 Operands don't affect result
+ Add tevent tutorial files and link it on the mainpage
+ Only set poll_ev->delete=false if it was true
-------------------------------------------------------------------
Fri Dec 6 13:42:37 UTC 2013 - lmuelle@suse.com
- Verify source tar ball gpg signature.
-------------------------------------------------------------------
Thu Aug 29 12:12:58 UTC 2013 - lmuelle@suse.com
- PreReq /sbin/ldconfig from python-tevent.
-------------------------------------------------------------------
Thu Aug 29 10:54:02 UTC 2013 - lmuelle@suse.com
- Add python-tevent to baselibs.conf.
-------------------------------------------------------------------
Tue Jul 2 11:47:29 UTC 2013 - lmuelle@suse.com
- Add tevent.pyc and pyo to the file list of python-tevent for post Centos and
RHEL 5 and Fedora 11 builds.
-------------------------------------------------------------------
Tue Apr 9 14:44:24 UTC 2013 - lmuelle@suse.com
- Update to 0.9.18.
+ Adding new timer events is now faster, if there's
a large number of timer events.
+ sigprocmask does not work on FreeBSD to stop further signals in a signal
handler.
+ TEVENT_NUM_SIGNALS is calculated by configure in order
to support realtime signals on freebsd.
+ ./configure --disable-python was fixed for the standalone build.
+ Several crash bugs in the poll backend are fixed.
+ The poll backend removes deleted events from the cached pollfd array now.
+ The poll doesn't pass pollfd.events == 0 to poll() and maintains a list
of disabled events, instead of consuming 100% cpu and/or triggering
the callers handler.
+ The poll backend detects POLLNVAL and reports EBADF
instead of consuming 100% cpu.
+ The select backend supports separate handlers
for TEVENT_FD_READ and TEVENT_FD_WRITE.
+ The poll and select backends are now doing fair queuing of fd events.
+ The epoll has better error checking and supports separate handlers
for TEVENT_FD_READ and TEVENT_FD_WRITE.
+ The standard backend was rewritten to be a tiny
wrapper on top of epoll with a fallback to poll,
which means that it doesn't use select directly anymore.
+ TEVENT_TRACE_BEFORE_LOOP_ONCE and TEVENT_TRACE_AFTER_LOOP_ONCE are added
in order to allow the application to hook in before and after the
loop_once() backend function is called.
The TEVENT_HAS_LOOP_ONCE_TRACE_POINTS define can be used to
detect the new feature.
-------------------------------------------------------------------
Thu Aug 30 16:25:22 UTC 2012 - lmuelle@suse.com
- Update to 0.9.17.
+ Add threaded poll_mt testcase
+ tevent_poll: Decouple poll_ev->fds handling from adding/removing fds
+ tevent: Refer to the correct header in testsuite.c
-------------------------------------------------------------------
Tue Aug 7 21:49:07 UTC 2012 - lmuelle@suse.com
- Update to 0.9.16.
+ Adds tevent_*_trace_*() and tevent_context_init_ops().
+ Move tevent.py to the arch-specific directory.
-------------------------------------------------------------------
Thu Jun 28 16:29:25 UTC 2012 - lmuelle@suse.com
- Disable rpath while configure.
-------------------------------------------------------------------
Wed Jun 13 16:09:22 UTC 2012 - ddiss@suse.com
- Tag GPLv3 due to tevent_util.h license; (bnc#765270).
-------------------------------------------------------------------
Sun Jun 3 21:52:07 UTC 2012 - lmuelle@suse.com
- Define library name and use it instead of libtevent0.
-------------------------------------------------------------------
Sat Jun 2 15:46:14 UTC 2012 - lmuelle@suse.com
- Rename package to tevent and add an independent libtevent0 subpackage.
- Enhance and polish the package descriptions and summaries.
-------------------------------------------------------------------
Sat Jun 2 00:04:43 UTC 2012 - lmuelle@suse.com
- Define and use talloc version macro.
-------------------------------------------------------------------
Fri Jun 1 15:41:27 UTC 2012 - lmuelle@suse.com
- BuildIgnore libtalloc to prevent a package conflict on Fedora systems.
-------------------------------------------------------------------
Thu May 31 21:33:31 UTC 2012 - lmuelle@suse.com
- Define python_sitelib and python_sitearch if undefined.
-------------------------------------------------------------------
Thu May 31 12:01:45 UTC 2012 - lmuelle@suse.com
- BuildRequire libtalloc-devel instead of libtalloc2-devel.
- Rename libtevent2-devel to libtevent-devel.
-------------------------------------------------------------------
Wed May 30 15:30:59 UTC 2012 - lmuelle@suse.com
- Remove superfluous AutoReqProv on line.
-------------------------------------------------------------------
Fri May 25 08:10:05 UTC 2012 - lmuelle@suse.com
- BuildRequire pkg-config.
- Move _tevent.so to the python-tevent package.
-------------------------------------------------------------------
Wed May 16 13:28:23 UTC 2012 - lmuelle@suse.com
- Cleanup BuildRequires and spec file in general.
- BuildRequire doxygen, libtalloc2-devel >= 2.0.7, python-devel, and
pytalloc-devel >= 2.0.7.
- Require libtalloc2-devel >= 2.0.7 and pkg-config from the devel package.
- Move python files to an independent python-tevent package.
-------------------------------------------------------------------
Mon May 14 14:56:44 UTC 2012 - lmuelle@suse.com
- Adjust licence.
- Require libtevent0 = %{version} from the devel package.
- Extend the description of the devel package.
-------------------------------------------------------------------
Mon May 14 14:26:10 UTC 2012 - lmuelle@suse.com
- BuildRequire libtalloc2-devel.
- Remove superfluous BuildRequires to talloc libraries.
-------------------------------------------------------------------
Wed Sep 7 17:52:30 UTC 2011 - lars@samba.org
- Initial independent libtevent0 package.

70
tevent.keyring Normal file
View File

@ -0,0 +1,70 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2
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
T5Q=
=9mzF
-----END PGP PUBLIC KEY BLOCK-----

228
tevent.spec Normal file
View File

@ -0,0 +1,228 @@
#
# spec file for package tevent-man
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{!?py3_soflags: %global py3_soflags cpython-%{python3_version_nodots}m}
%define talloc_version 2.4.1
%define build_man 0
%if 0%{?suse_version} > 1500 || 0%{?sle_version} > 150300
%define bundle_cmocka 0
%else
%define bundle_cmocka 1
%endif
%if %{build_man}
Name: tevent-man
BuildRequires: doxygen
%else
Name: tevent
BuildRequires: libtalloc-devel >= %{talloc_version}
%if 0%{?suse_version} >= 1330
BuildRequires: libtirpc-devel
%endif
%if 0%{?suse_version} > 1020
BuildRequires: pkg-config
%else
BuildRequires: pkgconfig
%endif
BuildRequires: pkg-config
BuildRequires: python3-devel
BuildRequires: python3-talloc >= %{talloc_version}
BuildRequires: python3-talloc-devel >= %{talloc_version}
%if ! %{bundle_cmocka}
BuildRequires: pkgconfig(cmocka) >= 1.1.3
%endif
%endif # build_man
%if 0%{?suse_version} == 0 || 0%{?suse_version} > 1140
%define build_make_smp_mflags %{?_smp_mflags}
%else
%define build_make_smp_mflags %{?jobs:-j%jobs}
%endif
URL: https://tevent.samba.org/
Version: 0.15.0
Release: 0
Summary: An event system based on the talloc memory management library
License: LGPL-3.0-or-later
Group: Development/Libraries/C and C++
Source: https://download.samba.org/pub/tevent/tevent-%{version}.tar.gz
Source1: https://download.samba.org/pub/tevent/tevent-%{version}.tar.asc
Source2: tevent.keyring
Source4: baselibs.conf
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
Tevent is an event system based on the talloc memory management library. It
is the core event system used in Samba.
The low level tevent has support for many event types, including timers,
signals, and the classic file descriptor events.
Tevent also provide helpers to deal with asynchronous code providing the
tevent_req (tevent request) functions.
%if ! %{build_man}
%package -n libtevent0
PreReq: /sbin/ldconfig
Summary: Samba tevent Library
Group: System/Libraries
%description -n libtevent0
Tevent is an event system based on the talloc memory management library. It
is the core event system used in Samba.
The low level tevent has support for many event types, including timers,
signals, and the classic file descriptor events.
This package contains the tevent0 library.
%package -n libtevent-devel
Summary: Libraries and Header Files to Develop Programs with tevent0 Support
# Man pages are built in a 2nd spec file in order to break a build cycle with doxygen->cmake->krb5->libtevent
Group: Development/Libraries/C and C++
%if 0%{?suse_version} > 1030
Recommends: %{name}-man
%endif
Requires: libtalloc-devel >= %{talloc_version}
Requires: libtevent0 = %{version}
%if 0%{?suse_version} > 1020
Requires: pkg-config
%else
Requires: pkgconfig
%endif
%description -n libtevent-devel
Tevent is an event system based on the talloc memory management library. It
is the core event system used in Samba.
The low level tevent has support for many event types, including timers,
signals, and the classic file descriptor events.
Tevent also provide helpers to deal with asynchronous code providing the
tevent_req (tevent request) functions.
This package contains libraries and header files need for development.
%package -n python3-tevent
Summary: Python3 bindings for the Tevent library
Group: Development/Libraries/Python
Requires: libtevent0 = %{version}
PreReq: /sbin/ldconfig
Obsoletes: python-tevent
%description -n python3-tevent
This package contains the python bindings for the Tevent library.
%endif # ! build_man
%prep
%setup -n tevent-%{version} -q
%build
%if ! %{build_man}
%if 0%{?suse_version} && 0%{?suse_version} < 911
OPTIMIZATION="-O"
%else
# use the default optimization
unset OPTIMIZATION
%endif
%if %{bundle_cmocka}
BUNDLED_LIBS="cmocka"
%endif
export CFLAGS="${RPM_OPT_FLAGS} -D_GNU_SOURCE ${OPTIMIZATION} -D_LARGEFILE64_SOURCE -DIDMAP_RID_SUPPORT_TRUSTED_DOMAINS"
CONFIGURE_OPTIONS="\
--prefix=%{_prefix} \
--libdir=%{_libdir} \
--disable-rpath \
--disable-rpath-install \
--disable-silent-rules \
--bundled-libraries=NONE,${BUNDLED_LIBS} \
--builtin-libraries=replace \
"
./configure ${CONFIGURE_OPTIONS}
%{__make} %{build_make_smp_mflags} \
all
%else
doxygen doxy.config
%endif # ! build_man
%if ! %{build_man}
%check
LD_LIBRARY_PATH=bin/shared %{__make} test
%endif # ! build_man
%install
%if ! %{build_man}
DESTDIR=${RPM_BUILD_ROOT} make install
# Shared libraries need to be marked executable for rpmbuild to strip them and
# include them in debuginfo
find ${RPM_BUILD_ROOT} -name "*.so*" -exec chmod -c +x {} \;
%else
# install API docs
mkdir -p $RPM_BUILD_ROOT/%{_mandir}
cp -a doc/man/* $RPM_BUILD_ROOT/%{_mandir}
rm $RPM_BUILD_ROOT/%{_mandir}/man3/todo.3
%endif # ! build_man
%if ! %{build_man}
%post -n libtevent0 -p /sbin/ldconfig
%postun -n libtevent0 -p /sbin/ldconfig
%post -n python3-tevent -p /sbin/ldconfig
%postun -n python3-tevent -p /sbin/ldconfig
%files -n libtevent0
%defattr(-,root,root)
%{_libdir}/libtevent.so.*
%if %{bundle_cmocka}
%dir %{_libdir}/tevent
%{_libdir}/tevent/libcmocka-tevent.so
%endif
%files -n libtevent-devel
%defattr(-,root,root)
%{_includedir}/tevent.h
%{_libdir}/libtevent.so
%{_libdir}/pkgconfig/tevent.pc
%files -n python3-tevent
%defattr(-,root,root)
%{python3_sitearch}/_tevent.%{py3_soflags}.so
%{python3_sitearch}/tevent.py
%if 0%{?centos_version} > 599 || 0%{?fedora_version} > 11 || 0%{?rhel_version} > 599
%{python3_sitearch}/__pycache__/tevent.cpython-*.py[co]
%endif
%else
%files
%defattr(-,root,root)
%{_mandir}/man3/tevent*.*
%endif # ! build_man
%changelog