File libserf.spec of Package libserf

#
# spec file for package libserf
#
# Copyright (c) 2024 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/
#


# version 1.2.0 requires apr 1.3.0 or later for apr_socket_addr_get
%define minimum_apr_version 1.3.0
%define major	1
%define minor	3
%define SHLIBVER %{major}.%{minor}.0
%bcond_without	gssapi
Name:           libserf
Version:        1.3.10
Release:        0
Summary:        High-Performance Asynchronous HTTP Client Library
License:        Apache-2.0
Group:          System/Libraries
URL:            https://serf.apache.org/
Source:         https://www.apache.org/dist/serf/serf-%{version}.tar.bz2
Source2:        https://www.apache.org/dist/serf/serf-%{version}.tar.bz2.asc
Source3:        https://www.apache.org/dist/serf/KEYS#/%{name}.keyring
BuildRequires:  pkgconfig
BuildRequires:  scons >= 2.3
BuildRequires:  pkgconfig(apr-1) >= %{minimum_apr_version}
BuildRequires:  pkgconfig(apr-util-1) >= %{minimum_apr_version}
BuildRequires:  pkgconfig(libcrypto)
BuildRequires:  pkgconfig(libssl)
BuildRequires:  pkgconfig(zlib)
%if %{with gssapi}
BuildRequires:  pkgconfig(krb5-gssapi)
%endif

%description
The serf library is a C-based HTTP client library built upon the Apache
Portable Runtime (APR) library. It multiplexes connections, running the
read/write communication asynchronously. Memory copies and transformations are
kept to a minimum to provide high performance operation.

%package -n libserf-%{major}-%{major}
Summary:        High-Performance Asynchronous HTTP Client Library
Group:          Development/Libraries/C and C++

%description -n libserf-%{major}-%{major}
The serf library is a C-based HTTP client library built upon the Apache
Portable Runtime (APR) library. It multiplexes connections, running the
read/write communication asynchronously. Memory copies and transformations are
kept to a minimum to provide high performance operation.

%package -n libserf-devel
Summary:        High-Performance Asynchronous HTTP Client Library
Group:          Development/Libraries/C and C++
Requires:       libserf-%{major}-%{major} = %{version}

%description -n libserf-devel
The serf library is a C-based HTTP client library built upon the Apache
Portable Runtime (APR) library. It multiplexes connections, running the
read/write communication asynchronously. Memory copies and transformations are
kept to a minimum to provide high performance operation.

%prep
%autosetup -p1 -n "serf-%{version}"

%build
scons \
	PREFIX=%{_prefix} \
	LIBDIR=%{_libdir} \
	APR=%{_prefix} \
	OPENSSL=%{_prefix} \
	ZLIB=%{_prefix} \
%if %{with gssapi}
	GSSAPI=$(which krb5-config) \
%endif
	DEBUG=yes \
	CFLAGS="%{optflags}" \
	APR_STATIC=no \
	%{?_smp_mflags}

%install
scons install --install-sandbox=%{buildroot}
rm -f "%{buildroot}%{_libdir}"/lib*.a

%post   -n libserf-%{major}-%{major} -p /sbin/ldconfig
%postun -n libserf-%{major}-%{major} -p /sbin/ldconfig

%files -n libserf-%{major}-%{major}
%license LICENSE
%doc CHANGES NOTICE README
%doc design-guide.txt
%{_libdir}/libserf-%{major}.so.%{major}
%{_libdir}/libserf-%{major}.so.%{SHLIBVER}

%files -n libserf-devel
%license LICENSE
%{_includedir}/serf-%{major}
%{_libdir}/libserf-%{major}.so
%{_libdir}/pkgconfig/serf-%{major}.pc

%changelog
openSUSE Build Service is sponsored by