Compare commits

...

No commits in common. "c8-stream-1.1" and "c9-beta" have entirely different histories.

6 changed files with 1481 additions and 33 deletions

View File

@ -0,0 +1,21 @@
diff --git a/buckets/ssl_buckets.c b/buckets/ssl_buckets.c
index b01e5359db08..3c8b7e2a685f 100644
--- a/buckets/ssl_buckets.c
+++ b/buckets/ssl_buckets.c
@@ -407,7 +407,7 @@ static int bio_bucket_destroy(BIO *bio)
static long bio_bucket_ctrl(BIO *bio, int cmd, long num, void *ptr)
{
- long ret = 1;
+ long ret = 0;
switch (cmd) {
default:
@@ -415,6 +415,7 @@ static long bio_bucket_ctrl(BIO *bio, int cmd, long num, void *ptr)
break;
case BIO_CTRL_FLUSH:
/* At this point we can't force a flush. */
+ ret = 1;
break;
case BIO_CTRL_PUSH:
case BIO_CTRL_POP:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
--- serf-1.3.9/buckets/ssl_buckets.c.errgetfunc
+++ serf-1.3.9/buckets/ssl_buckets.c
@@ -1204,6 +1204,10 @@
}
}
+#ifndef ERR_GET_FUNC
+#define ERR_GET_FUNC(ec) (0)
+#endif
+
static int ssl_need_client_cert(SSL *ssl, X509 **cert, EVP_PKEY **pkey)
{
serf_ssl_context_t *ctx = SSL_get_app_data(ssl);

View File

@ -0,0 +1,60 @@
commit 821fc34e224a4e82563f0561be2e60fd1d4ec92b
Author: Tomas Korbar <tkorbar@redhat.com>
Date: Tue Nov 14 12:42:45 2023 +0100
Add gssapi linking
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3f10eae..e435e29 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -51,7 +51,7 @@ option(DEBUG "Enable debugging info and strict compile warnings" OFF)
option(SKIP_SHARED "Disable building shared Serf libraries" OFF)
option(SKIP_STATIC "Disable building static Serf libraries" OFF)
option(LIBDIR "Install directory for architecture-dependent libraries" "")
-option(GSSAPI "Path to GSSAPI's install area" "")
+option(GSSAPI "Use pkg-config to link with GSSAPI" OFF)
option(BROTLI "Path to Brotli's install area" "")
option(DISABLE_LOGGING "Disable the logging framework at compile time" OFF)
option(SKIP_TESTS "Disable building the unit tests and utilities" OFF)
@@ -156,10 +156,14 @@ if(SERF_WINDOWS)
)
endif(SERF_WINDOWS)
-
# Process build options for dependency search
if(GSSAPI)
- message(WARNING "option GSSAPI is not implemented")
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(GSSAPI krb5-gssapi)
+ if (NOT GSSAPI_FOUND)
+ message(WARNING "GSSAPI pkgconfig module was not found")
+ endif()
+ add_definitions("-DSERF_HAVE_GSSAPI")
endif()
if(BROTLI)
@@ -285,6 +289,11 @@ if(NOT SKIP_SHARED)
PRIVATE ${SERF_PRIVATE_TARGETS}
${SERF_STANDARD_LIBRARIES}
PUBLIC ${SERF_PUBLIC_TARGETS})
+ if (GSSAPI_FOUND)
+ target_link_libraries(serf_shared PRIVATE ${GSSAPI_LIBRARIES})
+ target_include_directories(serf_shared PRIVATE ${GSSAPI_INCLUDE_DIRS})
+ target_compile_options(serf_shared PRIVATE ${GSSAPI_CFLAGS_OTHER})
+ endif (GSSAPI_FOUND)
set_target_properties(serf_shared PROPERTIES
VERSION ${SERF_VERSION}
SOVERSION ${SERF_SOVERSION})
@@ -307,6 +316,11 @@ if(NOT SKIP_STATIC)
${SERF_PRIVATE_TARGETS}
${SERF_PUBLIC_TARGETS}
${SERF_STANDARD_LIBRARIES})
+ if (GSSAPI_FOUND)
+ target_link_libraries(serf_shared PRIVATE ${GSSAPI_LIBRARIES})
+ target_include_directories(serf_shared PRIVATE ${GSSAPI_INCLUDE_DIRS})
+ target_compile_options(serf_shared PRIVATE ${GSSAPI_CFLAGS_OTHER})
+ endif (GSSAPI_FOUND)
list(APPEND SERF_TARGETS "serf_static")
endif()

View File

@ -28,3 +28,33 @@ diff -up serf-1.3.9/SConstruct.python3 serf-1.3.9/SConstruct
apr = str(env['APR'])
apu = str(env['APU'])
diff -uap serf-1.3.9/build/check.py.python3 serf-1.3.9/build/check.py
--- serf-1.3.9/build/check.py.python3 2015-09-17 13:46:24.000000000 +0100
+++ serf-1.3.9/build/check.py 2018-12-17 11:40:06.524901129 +0000
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/python3
#
# check.py : Run all the test cases.
#
@@ -52,16 +52,16 @@ if __name__ == '__main__':
# Find test responses and run them one by one
for case in glob.glob(testdir + "/testcases/*.response"):
- print "== Testing %s ==" % (case)
+ print("== Testing %s ==" % (case))
try:
subprocess.check_call([SERF_RESPONSE_EXE, case])
except subprocess.CalledProcessError:
- print "ERROR: test case %s failed" % (case)
+ print("ERROR: test case %s failed" % (case))
sys.exit(1)
- print "== Running the unit tests =="
+ print("== Running the unit tests ==")
try:
subprocess.check_call(TEST_ALL_EXE)
except subprocess.CalledProcessError:
- print "ERROR: test(s) failed in test_all"
+ print("ERROR: test(s) failed in test_all")
sys.exit(1)

View File

@ -1,23 +1,22 @@
%if ! 0%{?fedora}%{?rhel} || 0%{?fedora} > 28 || 0%{?rhel} > 7
%global scons scons-3
%global scons_pkg python3-scons
%else
%global scons scons-2
%global scons_pkg python2-scons
%endif
Name: libserf
Version: 1.3.9
Release: 9%{?dist}
Release: 27%{?dist}
Summary: High-Performance Asynchronous HTTP Client Library
License: ASL 2.0
URL: http://serf.apache.org/
Source0: https://archive.apache.org/dist/serf/serf-%{version}.tar.bz2
BuildRequires: gcc, %{scons_pkg}, pkgconfig
BuildRequires: gcc, pkgconfig
BuildRequires: apr-devel, apr-util-devel, krb5-devel, openssl-devel
BuildRequires: zlib-devel
BuildRequires: zlib-devel, cmake
Patch0: %{name}-norpath.patch
Patch1: %{name}-python3.patch
Patch2: %{name}-1.3.9-cmake.patch
Patch3: %{name}-1.3.9-errgetfunc.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=2004714
# Patch BIO to work with openssl 3
Patch4: %{name}-1.3.9-bio-ctrl.patch
# https://issues.redhat.com/browse/RHEL-6802
Patch5: %{name}-1.3.9-gssapi.patch
%description
The serf library is a C-based HTTP client library built upon the Apache
@ -37,33 +36,21 @@ developing applications that use %{name}.
%prep
%autosetup -n serf-%{version} -p1
# Shared library versioning support in scons is worse than awful...
# minimally, here fix the soname to match serf-1.2.x. Minor version
# handling should be fixed too; really requires better upstream support:
# http://scons.tigris.org/issues/show_bug.cgi?id=2869
sed -i '/SHLIBVERSION/s/MAJOR/0/' SConstruct
%build
%{scons} \
CFLAGS="%{optflags}" \
LINKFLAGS="%{__global_ldflags}" \
PREFIX=%{_prefix} \
LIBDIR=%{_libdir} \
GSSAPI=%{_prefix} \
%{?_smp_mflags}
%cmake -DCMAKE_INSTALL_LIBDIR=%{_libdir} -DGSSAPI=ON -DSKIP_STATIC=ON
%cmake_build
%install
%{scons} install --install-sandbox=%{buildroot}
%cmake_install
find %{buildroot}%{_libdir} -type f -name '*.*a' -delete -print
mkdir -p %{buildroot}%{_libdir}/pkgconfig
mv %{buildroot}%{_datadir}/pkgconfig/serf.pc %{buildroot}%{_libdir}/pkgconfig/serf.pc
rm -rf %{buildroot}%{_datadir}
%check
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
%{scons} %{?_smp_mflags} check || true
%ctest || true
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%ldconfig_scriptlets
%files
%license LICENSE NOTICE
@ -76,8 +63,71 @@ export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
%{_libdir}/pkgconfig/serf*.pc
%changelog
* Mon Aug 05 2019 Lubos Uhliarik <luhliari@redhat.com> - 1.3.9-9
- Resolves: #1695587 - Ensure modular RPM upgrade path
* Fri Dec 15 2023 Tomas Korbar <tkorbar@redhat.com> - 1.3.9-27
- Fix linking of gssapi to support kerberos
- Resolves: RHEL-6802
* Fri Sep 17 2021 Tomas Korbar <tkorbar@redhat.com> - 1.3.9-26
- Fix BIO control function implementation
- Resolves: rhbz#2004714
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.3.9-25
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Mon Aug 9 2021 Joe Orton <jorton@redhat.com> - 1.3.9-24
- fix FTBFS with OpenSSL 3.0 beta 2 (#1991008)
* Wed Jun 30 2021 Tomas Korbar <tkorbar@redhat.com> - 1.3.9-23
- Fix soname problems
- Related: rhbz#1974621
* Wed Jun 30 2021 Tomas Korbar <tkorbar@redhat.com> - 1.3.9-22
- Remove scons from build requirements
- Related: rhbz#1974621
* Wed Jun 30 2021 Tomas Korbar <tkorbar@redhat.com> - 1.3.9-21
- Backport cmake support
- Resolves: rhbz#1974621
* Wed Jun 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.3.9-20
- Rebuilt for RHEL 9 BETA for openssl 3.0
Related: rhbz#1971065
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.3.9-19
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-17
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Nov 14 2019 Joe Orton <jorton@redhat.com> - 1.3.9-14
- revert broken IPv6 workaround
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue Apr 16 2019 Joe Orton <jorton@redhat.com> - 1.3.9-12
- fix IPv6 fallback behaviour (#1130328)
- use Python3 in tests
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.9-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Jul 02 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 1.3.9-9
- Switch to %%ldconfig_scriptlets
* Mon Jul 02 2018 Nils Philippsen <nils@redhat.com> - 1.3.9-8
- use the Python 3 version of scons from Fedora 29 on