File umem.spec of Package umem

#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

Name:           umem
Version:        1.0.1
Release:        1
License:        CDDL-1.0
Summary:        Port of Solaris's slab allocator
Url:            https://labs.omniti.com/trac/portableumem
Group:          Development/Libraries/C and C++
Source0:        https://labs.omniti.com/portableumem/releases/1.0/%{name}-%{version}.tar.bz2
Patch0:         umem-1.0.1-fix-malloc-hook-def.patch
BuildRequires:  autoconf
BuildRequires:  automake
BuildRequires:  doxygen
BuildRequires:  libtool
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
This a port of Solaris's slab allocator, libumem, to Linux.

"A slab allocator is a cache management structure for efficient use
of [...] memory. [...] It is targeted for use of many small pieces
of memory chunks. By managing small memory chunks in the units
called slabs, this mechanism enables lower fragmentation, fast allocation,
and reclaming memory." (Description sourced from Wikipedia.)

%package -n libumem0
Summary:        Port of Solaris's slab allocator
Group:          Development/Libraries/C and C++
Provides:       %{name} = %{version}
Obsoletes:      %{name} <= %{version}

%description -n libumem0

This a port of Solaris's slab allocator, libumem, to Linux.

"A slab allocator is a cache management structure for efficient use
of [...] memory. [...] It is targeted for use of many small pieces
of memory chunks. By managing small memory chunks in the units
called slabs, this mechanism enables lower fragmentation, fast allocation,
and reclaming memory." (Description sourced from Wikipedia.)

%package -n libumem-devel
Summary:        Port of Solaris's slab allocator
Group:          Development/Libraries/C and C++
Requires:       glibc-devel
Requires:       libumem0 = %{version}
Provides:       %{name}-devel = %{version}
Obsoletes:      %{name}-devel <= %{version}

%description -n libumem-devel

This contains the libraries and header files for using this port
of Solaris's slab allocator, libumem, to Linux.

%prep
%setup -q
%if 0%{?suse_version} > 1140
%patch0
%endif

%build
autoreconf -fi

CFLAGS="%{optflags}"
CXXFLAGS="%{optflags}"
CFLAGS="$CFLAGS -fstack-protector"
CXXFLAGS="$CXXFLAGS -fstack-protector"

export CFLAGS
export CXXFLAGS

%configure --disable-static --with-pic

# Parallel build not successful
make -j1
make html

%check
make check || echo "tests failed"

%install
make DESTDIR=%{buildroot} install

%post -n libumem0 -p /sbin/ldconfig
%postun -n libumem0 -p /sbin/ldconfig

%files -n libumem0
%defattr(-,root,root,-)
%doc COPYING COPYRIGHT OPENSOLARIS.LICENSE
%{_libdir}/*.so.0*

%files -n libumem-devel
%defattr(-,root,root,-)
%doc COPYING COPYRIGHT OPENSOLARIS.LICENSE README TODO
%doc docs/html
%{_includedir}/*.h
%{_includedir}/sys/*.h
%{_libdir}/*.so
%{_mandir}/man3/*
%exclude %{_libdir}/*.la
openSUSE Build Service is sponsored by