Package init

This commit is contained in:
overweight 2019-09-30 10:58:23 -04:00
commit d21f92a7f9
5 changed files with 215 additions and 0 deletions

View File

@ -0,0 +1,37 @@
From 3761d42e4fe563ad893f14468e98bd1f5a807604 Mon Sep 17 00:00:00 2001
From: Ralph Boehme <slow@samba.org>
Date: Tue, 17 Jul 2018 12:54:29 +0200
Subject: [PATCH 03/27] tevent: fix CID 1437976 dereference before null check
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Signed-off-by: root <root@localhost.localdomain>
---
tevent_threads.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tevent_threads.c b/tevent_threads.c
index 21a9b686ba9..a89990f231a 100644
--- a/tevent_threads.c
+++ b/tevent_threads.c
@@ -473,7 +473,7 @@ void _tevent_threaded_schedule_immediate(struct tevent_threaded_context *tctx,
#ifdef HAVE_PTHREAD
const char *create_location = im->create_location;
struct tevent_context *main_ev = NULL;
- struct tevent_wrapper_glue *glue = tctx->event_ctx->wrapper.glue;
+ struct tevent_wrapper_glue *glue = NULL;
int ret, wakeup_fd;
ret = pthread_mutex_lock(&tctx->event_ctx_mutex);
@@ -492,6 +492,8 @@ void _tevent_threaded_schedule_immediate(struct tevent_threaded_context *tctx,
return;
}
+ glue = tctx->event_ctx->wrapper.glue;
+
if ((im->event_ctx != NULL) || (handler == NULL)) {
abort();
}
--
2.19.1

View File

@ -0,0 +1,36 @@
From ba991da43469a1844b67fcec19a15ceda409fc3f Mon Sep 17 00:00:00 2001
From: Ralph Boehme <slow@samba.org>
Date: Tue, 17 Jul 2018 12:59:50 +0200
Subject: [PATCH 04/27] tevent: fix CID 1437974 dereference after null check
Probably a copy/paste error from the tevent_debug() statement a few
lines above as at this place we want to pass main_ev directly to
tevent_debug() anyway.
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
Autobuild-User(master): Volker Lendecke <vl@samba.org>
Autobuild-Date(master): Tue Jul 17 16:21:21 CEST 2018 on sn-devel-144
Signed-off-by: root <root@localhost.localdomain>
---
tevent_wrapper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tevent_wrapper.c b/tevent_wrapper.c
index 05c4c06968a..a07696af0a4 100644
--- a/tevent_wrapper.c
+++ b/tevent_wrapper.c
@@ -347,7 +347,7 @@ struct tevent_context *_tevent_context_wrapper_create(struct tevent_context *mai
/*
* wrappers conflict with nesting
*/
- tevent_debug(main_ev->wrapper.glue->main_ev, TEVENT_DEBUG_FATAL,
+ tevent_debug(main_ev, TEVENT_DEBUG_FATAL,
"%s: %s() conflicts with nesting\n",
__func__, location);
errno = EINVAL;
--
2.19.1

View File

@ -0,0 +1,36 @@
From 0da2e9c215f882ea4c331ac4f17738913beb7404 Mon Sep 17 00:00:00 2001
From: Andreas Schneider <asn@samba.org>
Date: Mon, 14 Jan 2019 11:59:59 +0100
Subject: [PATCH 21/27] lib:tevent: Use correct C99 initializer for tevent_req
Signed-off-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Signed-off-by: root <root@localhost.localdomain>
---
tevent_req.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/tevent_req.c b/tevent_req.c
index 76e27b8f7e9..7821d9ae734 100644
--- a/tevent_req.c
+++ b/tevent_req.c
@@ -84,10 +84,12 @@ struct tevent_req *_tevent_req_create(TALLOC_CTX *mem_ctx,
}
*req = (struct tevent_req) {
- .internal.private_type = type,
- .internal.create_location = location,
- .internal.state = TEVENT_REQ_IN_PROGRESS,
- .internal.trigger = tevent_create_immediate(req)
+ .internal = {
+ .private_type = type,
+ .create_location = location,
+ .state = TEVENT_REQ_IN_PROGRESS,
+ .trigger = tevent_create_immediate(req),
+ },
};
data = talloc_zero_size(req, data_size);
--
2.19.1

106
libtevent.spec Normal file
View File

@ -0,0 +1,106 @@
%{!?python3_sitearch: %define python3_sitearch %(%{__python3} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")}
Name: libtevent
Version: 0.9.37
Release: 4
Summary: Tevent is an event system based on the talloc memory management library.
License: LGPLv3+
URL: http://tevent.samba.org
Source0: http://samba.org/ftp/tevent/tevent-%{version}.tar.gz
Patch6000: 6000-tevent-fix-CID-1437976-dereference-before-null-check.patch
Patch6001: 6001-tevent-fix-CID-1437974-dereference-after-null-check.patch
Patch6002: 6002-lib-tevent-Use-correct-C99-initializer-for-tevent_re.patch
BuildRequires: gcc libtirpc-devel docbook-style-xsl doxygen libxslt git
BuildRequires: python2-devel python2-talloc-devel >= 2.1.0 libtalloc-devel >= 2.1.0
BuildRequires: python3-devel python3-talloc-devel >= 2.0.7
Provides: bundled(libreplace)
%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.
%package devel
Summary: Libraries and header files for tevent
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: libtalloc-devel%{?_isa} >= 2.0.7 pkgconfig
%description devel
Libraries and header files for tevent
%package -n python2-tevent
Summary: Python 2 libraries files for tevent
Requires: libtevent%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python2-tevent}
%description -n python2-tevent
Python2 libraries files for tevent
%package -n python3-tevent
Summary: Python 3 libraries files for tevent
Requires: libtevent%{?_isa} = %{version}-%{release}
%{?python_provide:%python_provide python3-tevent}
%description -n python3-tevent
Python3 libraries files for tevent
%package help
Summary: Man for tevent
Requires: man
%description help
Man for tevent
%prep
%autosetup -n tevent-%{version} -p1 -Sgit
%build
pathfix.py -npi %{__python2} buildtools/bin/waf
%configure --disable-rpath --bundled-libraries=NONE --builtin-libraries=replace --extra-python=%{__python3}
%make_build V=1
doxygen doxy.config
%install
%make_install
find $RPM_BUILD_ROOT -name "*.so*" -exec chmod -c +x {} \;
mkdir -p $RPM_BUILD_ROOT/%{_mandir}
cp -a ./doc/man/* $RPM_BUILD_ROOT/%{_mandir}/
%check
%make_build check
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%{_libdir}/libtevent.so.*
%files devel
%{_includedir}/tevent.h
%{_libdir}/libtevent.so
%{_libdir}/pkgconfig/tevent.pc
%files -n python2-tevent
%{python2_sitearch}/*
%files -n python3-tevent
%{python3_sitearch}/*
%files help
%exclude %{_mandir}/man3/todo*
%{_mandir}/man3/tevent*
%changelog
* Tue Sep 3 2019 wubo<wubo40@huawei.com> - 0.9.37-4
- Package init

BIN
tevent-0.9.37.tar.gz Normal file

Binary file not shown.