Blame SPECS/memkind.spec

eed591
%global gittag0 v1.7.0
eed591
%global githash 76495a7
eed591
eed591
Name: memkind
eed591
Summary: User Extensible Heap Manager
eed591
Version: 1.7.0
eed591
Release: 3%{?checkout}%{?dist}
eed591
License: BSD
eed591
Group: System Environment/Libraries
eed591
URL: http://memkind.github.io/memkind
eed591
BuildRequires: automake libtool numactl-devel systemd
eed591
eed591
# x86_64 is the only arch memkind will build and work due to
eed591
# its current dependency on SSE4.2 CRC32 instruction which
eed591
# is used to compute thread local storage arena mappings
eed591
# with polynomial accumulations via GCC's intrinsic _mm_crc32_u64
eed591
# For further info check: 
eed591
# - /lib/gcc/<target>/<version>/include/smmintrin.h
eed591
# - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36095 
eed591
# - http://en.wikipedia.org/wiki/SSE4
eed591
ExclusiveArch: x86_64
eed591
eed591
# Source0 creation:
eed591
# (1) "git archive git archive --prefix=%%{name}-%%{version}/ --format=tar [githash] | \
eed591
#				gzip > [srcdir]/%%{name}-%%{version}-%%{githash}.tar.gz"; or
eed591
# (2) wget https://github.com/%%{name}/%%{name}/archive/%%{gittag0}/%%{name}-%%{version}.tar.gz
eed591
Source0: %{name}-%{version}-%{githash}.tar.gz
eed591
eed591
# void nonsensical CFLAGS override done by autotools which invalidates
eed591
# the strong stack protection setup
eed591
Patch0: configure.ac.patch
eed591
eed591
%description
eed591
The memkind library is an user extensible heap manager built on top of
eed591
jemalloc which enables control of memory characteristics and a
eed591
partitioning of the heap between kinds of memory.  The kinds of memory
eed591
are defined by operating system memory policies that have been applied
eed591
to virtual address ranges. Memory characteristics supported by
eed591
memkind without user extension include control of NUMA and page size
eed591
features. The jemalloc non-standard interface has been extended to
eed591
enable specialized arenas to make requests for virtual memory from the
eed591
operating system through the memkind partition interface. Through the
eed591
other memkind interfaces the user can control and extend memory
eed591
partition features and allocate memory while selecting enabled
eed591
features. This software is being made available for early evaluation.
eed591
Feedback on design or implementation is greatly appreciated.
eed591
eed591
%package devel
eed591
Summary: Memkind User Extensible Heap Manager development lib and tools
eed591
Group: Development/Libraries
eed591
Requires: %{name} = %{version}-%{release}
eed591
eed591
%description devel
eed591
Install header files and development aids to link memkind library 
eed591
into applications. The memkind library is an user extensible heap manager 
eed591
built on top of jemalloc which enables control of memory characteristics and
eed591
heap partitioning on different kinds of memory. This software is being made 
eed591
available for early evaluation. The memkind library should be considered 
eed591
pre-alpha: bugs may exist and the interfaces may be subject to change prior to 
eed591
alpha release. Feedback on design or implementation is greatly appreciated.
eed591
eed591
%prep
eed591
%setup -q -a 0 -n %{name}-%{version}
eed591
%patch0 -p1
eed591
eed591
%build
eed591
%set_build_flags
eed591
eed591
# It is required that we configure and build the jemalloc subdirectory
eed591
# before we configure and start building the top level memkind directory.
eed591
# To ensure the memkind build step is able to discover the output
eed591
# of the jemalloc build we must create an 'obj' directory, and build
eed591
# from within that directory.
eed591
cd %{_builddir}/%{name}-%{version}
eed591
echo %{version} > %{_builddir}/%{name}-%{version}/VERSION
eed591
./build.sh --prefix=%{_prefix} --includedir=%{_includedir} --libdir=%{_libdir} \
eed591
           --bindir=%{_bindir} --docdir=%{_docdir}/%{name} --mandir=%{_mandir} \
eed591
           --sbindir=%{_sbindir}
eed591
eed591
%install
eed591
cd %{_builddir}/%{name}-%{version}
eed591
make DESTDIR=%{buildroot} INSTALL='install -p' install
eed591
rm -f %{buildroot}/%{_libdir}/lib%{name}.{l,}a
eed591
rm -f %{buildroot}/%{_libdir}/libautohbw.{l,}a
eed591
rm -f %{buildroot}/%{_docdir}/%{name}/VERSION
eed591
eed591
%post -p /sbin/ldconfig
eed591
eed591
%postun -p /sbin/ldconfig
eed591
eed591
%files
eed591
%defattr(-,root,root,-)
eed591
%{_libdir}/lib%{name}.so.*
eed591
%{_libdir}/libautohbw.so.*
eed591
%{_bindir}/%{name}-hbw-nodes
eed591
%dir %{_docdir}/%{name}
eed591
%doc %{_docdir}/%{name}/README
eed591
%license %{_docdir}/%{name}/COPYING
eed591
eed591
%files devel
eed591
%defattr(-,root,root,-)
eed591
%dir %{_includedir}/%{name}
eed591
%dir %{_includedir}/%{name}/internal/
eed591
%{_includedir}/%{name}/internal/*.h
eed591
%{_includedir}/%{name}*.h
eed591
%{_includedir}/hbwmalloc.h
eed591
%{_includedir}/hbw_allocator.h
eed591
%{_includedir}/pmem_allocator.h
eed591
%{_libdir}/lib%{name}.so
eed591
%{_libdir}/libautohbw.so
eed591
%{_mandir}/man3/hbwmalloc.3.*
eed591
%{_mandir}/man3/hbwallocator.3.*
eed591
%{_mandir}/man3/pmemallocator.3.*
eed591
%{_mandir}/man3/%{name}*.3.*
eed591
eed591
%changelog
eed591
* Mon Oct  8 2018 Rafael Aquini <aquini@redhat.com> - 1.7.0-3
eed591
- Update to upstream 76495a7 to pick up assorted fixes (1631144)
eed591
eed591
* Tue Oct  2 2018 Rafael Aquini <aquini@redhat.com> - 1.7.0-2
eed591
- Fix up annocheck distro flag failures (1630595)
eed591
eed591
* Fri Mar 23 2018 Rafael Aquini <aquini@linux.com> - 1.7.0-1
eed591
- Update memkind source file to 1.7.0 upstream
eed591
eed591
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.0-4
eed591
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
eed591
eed591
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.0-3
eed591
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
eed591
eed591
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.0-2
eed591
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
eed591
eed591
* Mon Mar 27 2017 Rafael Aquini <aquini@linux.com> - 1.5.0-1
eed591
- Update memkind source file to 1.5.0 upstream
eed591
eed591
* Fri Feb 17 2017 Rafael Aquini <aquini@linux.com> - 1.4.0-1
eed591
- Update memkind source file to 1.4.0 upstream
eed591
eed591
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.0-2
eed591
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
eed591
eed591
* Wed Nov 16 2016 Rafael Aquini <aquini@linux.com> - 1.3.0-1
eed591
- Update memkind source file to 1.3.0 upstream
eed591
eed591
* Wed Jun 08 2016 Rafael Aquini <aquini@linux.com> - 1.1.0-1
eed591
- Update memkind source file to 1.1.0 upstream
eed591
eed591
* Thu Mar 17 2016 Rafael Aquini <aquini@linux.com> - 1.0.0-1
eed591
- Update memkind source file to 1.0.0 upstream
eed591
eed591
* Sun Feb 07 2016 Rafael Aquini <aquini@linux.com> - 0.3.0-5
eed591
- Fix rpmlint error dir-or-file-in-var-run for /var/run/memkind
eed591
eed591
* Sat Feb 06 2016 Rafael Aquini <aquini@linux.com> - 0.3.0-4
eed591
- Update upstream fixes for memkind-0.3.0
eed591
- Switch old init.d scripts for systemd unit service
eed591
- Fix fc24 build error
eed591
eed591
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.3.0-3
eed591
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
eed591
eed591
* Tue Nov 17 2015 Rafael Aquini <aquini@linux.com> - 0.3.0-2
eed591
- Minor clean-ups and adjustments required for the RPM
eed591
eed591
* Tue Nov 17 2015 Rafael Aquini <aquini@linux.com> - 0.3.0-1
eed591
- Update memkind source file to 0.3.0 upstream
eed591
eed591
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.2.2-4.20150525git
eed591
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
eed591
eed591
* Mon May 25 2015 Rafael Aquini <aquini@linux.com> - 0.2.2-3.20150525git
eed591
- Get rid of obsolete m4 macros usage on autotool scripts
eed591
eed591
* Mon May 18 2015 Rafael Aquini <aquini@linux.com> - 0.2.2-2.20150525git
eed591
- Fix to BuildRequires and License Text Marker in spec file (1222709#c1)
eed591
eed591
* Mon May 18 2015 Rafael Aquini <aquini@linux.com> - 0.2.2-1.20150518git
eed591
- Initial RPM packaging for Fedora