apr/apr.spec

175 lines
5.7 KiB
RPMSpec
Raw Normal View History

#
# spec file for package apr
#
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#
%define aprver 1
%define libname lib%{name}%{aprver}
%define installbuilddir %{_libdir}/apr-%{aprver}/build
%define includedir %{_includedir}/apr-%{aprver}
Name: apr
Version: 1.6.2
Release: 0
Summary: Apache Portable Runtime (APR) Library
License: Apache-2.0
Group: Development/Libraries/Other
Url: https://apr.apache.org/
Source0: https://www.apache.org/dist/apr/apr-%{version}.tar.bz2
Source1: https://www.apache.org/dist/apr/apr-%{version}.tar.bz2.asc
Source2: %{name}.keyring
Patch4: apr-1.4.5-linux3.patch
Patch5: apr-visibility.patch
Patch6: apr-use-getrandom.patch
Patch9: apr-proc-mutex-map-anon.patch
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: libtool
BuildRequires: libuuid-devel
BuildRequires: lksctp-tools-devel
# for the testsuite
BuildRequires: netcfg
BuildRequires: pkgconfig
BuildRequires: python
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
The mission of the Apache Portable Runtime (APR) project is to create
and maintain software libraries that provide a predictable and
consistent interface to underlying platform-specific implementations.
The primary goal is to provide an API to which software developers may
code and be assured of predictable if not identical behaviour
regardless of the platform on which their software is built, relieving
them of the need to code special-case conditions to work around or take
advantage of platform-specific deficiencies or features.
The APR is used by both Open Source and Commercial projects, prominent
examples being the Apache HTTP server.
%package -n %{libname}
Summary: Apache Portable Runtime (APR) Library
Group: System/Libraries
%description -n %{libname}
The mission of the Apache Portable Runtime (APR) project is to create
and maintain software libraries that provide a predictable and
consistent interface to underlying platform-specific implementations.
The primary goal is to provide an API to which software developers may
code and be assured of predictable if not identical behaviour
regardless of the platform on which their software is built, relieving
them of the need to code special-case conditions to work around or take
advantage of platform-specific deficiencies or features.
The APR is used by both Open Source and Commercial projects, prominent
examples being the Apache HTTP server.
%package devel
Summary: Apache Portable Runtime (APR) Library
Group: Development/Libraries/Other
Requires: %{libname} = %{version}
Provides: %{libname}-devel = %{version}
Obsoletes: %{libname}-devel < %{version}
%description devel
The mission of the Apache Portable Runtime (APR) project is to create
and maintain software libraries that provide a predictable and
consistent interface to underlying platform-specific implementations.
The primary goal is to provide an API to which software developers may
code and be assured of predictable if not identical behaviour
regardless of the platform on which their software is built, relieving
them of the need to code special-case conditions to work around or take
advantage of platform-specific deficiencies or features.
The APR is used by both Open Source and Commercial projects, prominent
examples being the Apache HTTP server.
%prep
%setup -q
%patch4
%patch5 -p1
%patch6 -p1
%patch9 -p1
# Do not put date to doxy content
sed -i \
-e '4 iHTML_TIMESTAMP=NO' \
docs/doxygen.conf
%build
./buildconf
export apr_lock_method=USE_PROC_PTHREAD_SERIALIZE
%configure \
--enable-other-child \
--with-installbuilddir=%{installbuilddir} \
--includedir=%{includedir} \
%ifarch %{ix86}
--enable-nonportable-atomics=yes \
%endif
--with-devrandom=/dev/urandom \
--disable-static \
--enable-posix-shm \
--with-sendfile \
--with-pic
make %{?_smp_mflags} CFLAGS="%{optflags} -DREADDIR_IS_THREAD_SAFE -fvisibility=hidden -fPIC"
make dox %{?_smp_mflags}
%install
%make_install
# Move docs to more convenient location
mv docs/dox/html html
# Unpackaged files:
rm -f %{buildroot}/%{_libdir}/apr.exp
rm -f %{buildroot}%{_libdir}/libapr-%{aprver}.la
# Trim exported dependecies
sed -ri '/^LIBS=/{s,-l(uuid|crypt) ,,g;s/ */ /g}' \
%{buildroot}%{_bindir}/apr-%{aprver}-config
sed -ri '/^Libs/{s,-l(uuid|crypt) ,,g}' \
%{buildroot}%{_libdir}/pkgconfig/apr-%{aprver}.pc
%fdupes %{buildroot}
%check
%if ! 0%{?qemu_user_space_build}
make check -j1
%endif
%post -n %{libname} -p /sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig
%files -n %{libname}
%defattr(-,root,root)
%doc CHANGES
%doc LICENSE
%doc NOTICE
%{_libdir}/libapr-%{aprver}.so.*
# Do NOT move to devel as this is utilized by Tomcat
%{_libdir}/libapr-%{aprver}.so
%files devel
%defattr(-,root,root)
%doc docs/APRDesign.html
%doc docs/canonical_filenames.html
%doc docs/incomplete_types
%doc docs/non_apr_programs
%doc html
%doc emacs-mode
%{includedir}
%{_bindir}/apr-%{aprver}-config
%{_libdir}/pkgconfig/apr-%{aprver}.pc
%{_libdir}/apr-%{aprver}
%changelog