tbb-vl.spec 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. %define releasedate 20150611
  2. %define major 4
  3. %define minor 3
  4. %define update 6
  5. %define dotver %{major}.%{minor}
  6. %define sourcebasename tbb%{major}%{minor}_%{releasedate}oss
  7. %define sourcefilename %{sourcebasename}_src.tgz
  8. Name: tbb
  9. Summary: The Threading Building Blocks library abstracts low-level threading details
  10. Summary(ja): スレッド処理を抽象化するスレッディング・ビルディング・ブロックライブラリ
  11. Version: %{dotver}%{?update:u%{update}}
  12. Release: 1%{?_dist_release}
  13. License: GPLv2 with exceptions
  14. Group: System Environment/Libraries
  15. URL: http://threadingbuildingblocks.org/
  16. Source0: http://threadingbuildingblocks.org/sites/default/files/software_releases/source/%{sourcebasename}_src.tgz
  17. # These two are downstream sources.
  18. Source6: tbb.pc
  19. Source7: tbbmalloc.pc
  20. Source8: tbbmalloc_proxy.pc
  21. # Propagate CXXFLAGS variable into flags used when compiling C++.
  22. # This so that RPM_OPT_FLAGS are respected.
  23. Patch1: tbb-3.0-cxxflags.patch
  24. # Replace mfence with xchg (for 32-bit builds only) so that TBB
  25. # compiles and works supported hardware. mfence was added with SSE2,
  26. # which we still don't assume.
  27. Patch2: tbb-4.0-mfence.patch
  28. # Don't snip -Wall from C++ flags. Add -fno-strict-aliasing, as that
  29. # uncovers some static-aliasing warnings.
  30. # Related: https://bugzilla.redhat.com/show_bug.cgi?id=1037347
  31. Patch3: tbb-4.3-dont-snip-Wall.patch
  32. BuildRoot: %{_tmppath}/%{name}-%{version}-root
  33. BuildRequires: libstdc++-devel
  34. %description
  35. Threading Building Blocks (TBB) is a C++ runtime library that
  36. abstracts the low-level threading details necessary for optimal
  37. multi-core performance. It uses common C++ templates and coding style
  38. to eliminate tedious threading implementation work.
  39. TBB requires fewer lines of code to achieve parallelism than other
  40. threading models. The applications you write are portable across
  41. platforms. Since the library is also inherently scalable, no code
  42. maintenance is required as more processor cores become available.
  43. %package devel
  44. Summary: The Threading Building Blocks C++ headers and shared development libraries
  45. Summary(ja): スレッディング・ビルディング・ブロックの C++ ヘッダファイルと開発用共有ライブラリ
  46. Group: Development/Libraries
  47. Requires: %{name} = %{version}-%{release}
  48. %description devel
  49. Header files and shared object symlinks for the Threading Building
  50. Blocks (TBB) C++ libraries.
  51. %package doc
  52. Summary: The Threading Building Blocks documentation
  53. Summary(ja): スレッディング・ビルディング・ブロックのドキュメント
  54. Group: Documentation
  55. BuildArch: noarch
  56. %description doc
  57. PDF documentation for the user of the Threading Building Block (TBB)
  58. C++ library.
  59. %prep
  60. %setup -q -n %{sourcebasename}
  61. %patch1 -p1
  62. %patch2 -p1
  63. %patch3 -p1
  64. %build
  65. make %{?_smp_mflags} CXXFLAGS="$RPM_OPT_FLAGS" tbb_build_prefix=obj
  66. for file in %{SOURCE6} %{SOURCE7} %{SOURCE8}; do
  67. sed 's/_FEDORA_VERSION/%{major}.%{minor}.%{update}/' ${file} \
  68. > $(basename ${file})
  69. done
  70. %check
  71. %ifarch ppc64le
  72. make test
  73. %endif
  74. %install
  75. rm -rf $RPM_BUILD_ROOT
  76. mkdir -p $RPM_BUILD_ROOT%{_libdir}
  77. mkdir -p $RPM_BUILD_ROOT%{_includedir}
  78. pushd build/obj_release
  79. for file in libtbb{,malloc{,_proxy}}; do
  80. install -p -D -m 755 ${file}.so.2 $RPM_BUILD_ROOT%{_libdir}
  81. ln -s $file.so.2 $RPM_BUILD_ROOT%{_libdir}/$file.so
  82. done
  83. popd
  84. pushd include
  85. find tbb -type f ! -name \*.htm\* -exec \
  86. install -p -D -m 644 {} $RPM_BUILD_ROOT%{_includedir}/{} \
  87. \;
  88. popd
  89. for file in %{SOURCE6} %{SOURCE7} %{SOURCE8}; do
  90. install -p -D -m 644 $(basename ${file}) \
  91. $RPM_BUILD_ROOT%{_libdir}/pkgconfig/$(basename ${file})
  92. done
  93. %clean
  94. rm -rf $RPM_BUILD_ROOT
  95. %post -p /sbin/ldconfig
  96. %postun -p /sbin/ldconfig
  97. %files
  98. %doc COPYING doc/Release_Notes.txt
  99. %{_libdir}/*.so.2
  100. %files devel
  101. %doc CHANGES
  102. %{_includedir}/tbb
  103. %{_libdir}/*.so
  104. %{_libdir}/pkgconfig/*.pc
  105. %files doc
  106. %doc doc/Release_Notes.txt
  107. %doc doc/html
  108. %changelog
  109. * Fri Jun 19 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> - 4.3u6-1
  110. - new upstream release
  111. * Wed Mar 4 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> - 4.3u3-2
  112. - Initial build for Vine Linux based on 4.3 update3
  113. * Mon Jan 19 2015 Petr Machata <pmachata@redhat.com> - 4.3-1.20141204
  114. - Rebase to 4.3u2
  115. - Drop ExclusiveArch
  116. * Thu Sep 25 2014 Karsten Hopp <karsten@redhat.com> 4.1-9.20130314
  117. - enable ppc64le and run 'make test' on that new arch
  118. * Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1-8.20130314
  119. - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
  120. * Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1-7.20130314
  121. - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
  122. * Sun Jan 12 2014 Peter Robinson <pbrobinson@fedoraproject.org> 4.1-6.20130314
  123. - Build on aarch64, minor spec cleanups
  124. * Tue Dec 3 2013 Petr Machata <pmachata@redhat.com> - 4.1-5.20130314
  125. - Fix building with -Werror=format-security (tbb-4.1-dont-snip-Wall.patch)
  126. * Thu Oct 3 2013 Petr Machata <pmachata@redhat.com> - 4.1-4.20130314
  127. - Fix %%install to also install include files that are not named *.h
  128. * Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1-3.20130314
  129. - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
  130. * Tue May 28 2013 Petr Machata <pmachata@redhat.com> - 4.1-3.20130314
  131. - Enable ARM arches
  132. * Wed May 22 2013 Petr Machata <pmachata@redhat.com> - 4.1-2.20130314
  133. - Fix mfence patch. Since the __TBB_full_memory_fence macro was
  134. function-call-like, it stole () intended for function invocation.
  135. * Wed May 22 2013 Petr Machata <pmachata@redhat.com> - 4.1-1.20130314
  136. - Rebase to 4.1 update 3
  137. * Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-7.20120408
  138. - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
  139. * Tue Aug 28 2012 Petr Machata <pmachata@redhat.com> - 4.0-6.20120408
  140. - Fix build on PowerPC
  141. * Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-5.20120408
  142. - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
  143. * Thu Jun 7 2012 Petr Machata <pmachata@redhat.com> - 4.0-4.20120408
  144. - Rebase to 4.0 update 4
  145. - Refresh Getting_Started.pdf, Reference.pdf, Tutorial.pdf
  146. - Provide pkg-config files
  147. - Resolves: #825402
  148. * Thu Apr 05 2012 Karsten Hopp <karsten@redhat.com> 4.0-3.20110809
  149. - tbb builds now on PPC(64)
  150. * Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-2.20110809
  151. - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
  152. * Tue Oct 18 2011 Petr Machata <pmachata@redhat.com> - 4.0-1.20110809
  153. - Rebase to 4.0
  154. - Port the mfence patch
  155. - Refresh the documentation bundle
  156. * Tue Jul 26 2011 Petr Machata <pmachata@redhat.com> - 3.0-1.20110419
  157. - Rebase to 3.0-r6
  158. - Port both patches
  159. - Package Design_Patterns.pdf
  160. - Thanks to Richard Shaw for initial rebase patch
  161. - Resolves: #723043
  162. * Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2-3.20090809
  163. - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
  164. * Thu Jun 10 2010 Petr Machata <pmachata@redhat.com> - 2.2-2.20090809
  165. - Replace mfence instruction with xchg to make it run on ia32-class
  166. machines without SSE2.
  167. - Resolves: #600654
  168. * Tue Nov 3 2009 Petr Machata <pmachata@redhat.com> - 2.2-1.20090809
  169. - New upstream 2.2
  170. - Resolves: #521571
  171. * Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-3.20080605
  172. - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
  173. * Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-2.20080605
  174. - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
  175. * Fri Jun 13 2008 Petr Machata <pmachata@redhat.com> - 2.1-1.20080605
  176. - New upstream 2.1
  177. - Drop soname patch, parallel make patch, and GCC 4.3 patch
  178. * Wed Feb 13 2008 Petr Machata <pmachata@redhat.com> - 2.0-4.20070927
  179. - Review fixes
  180. - Use updated URL
  181. - More timestamp preservation
  182. - Initial import into Fedora CVS
  183. * Mon Feb 11 2008 Petr Machata <pmachata@redhat.com> - 2.0-3.20070927
  184. - Review fixes
  185. - Preserve timestamp of installed files
  186. - Fix soname not to contain "debug"
  187. * Tue Feb 5 2008 Petr Machata <pmachata@redhat.com> - 2.0-2.20070927
  188. - Review fixes
  189. - GCC 4.3 patchset
  190. - Add BR util-linux net-tools
  191. - Add full URL to Source0
  192. - Build in debug mode to work around problems with GCC 4.3
  193. * Mon Dec 17 2007 Petr Machata <pmachata@redhat.com> - 2.0-1.20070927
  194. - Initial package.
  195. - Using SONAME patch from Debian.