tbb-vl.spec 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  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: 2%{?_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. * Sat Sep 03 2016 Toshiaki Ara <ara_t@384.jp> - 4.3u6-2
  110. - rebuild with gcc-5.4.0
  111. * Fri Jun 19 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> - 4.3u6-1
  112. - new upstream release
  113. * Wed Mar 4 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> - 4.3u3-2
  114. - Initial build for Vine Linux based on 4.3 update3
  115. * Mon Jan 19 2015 Petr Machata <pmachata@redhat.com> - 4.3-1.20141204
  116. - Rebase to 4.3u2
  117. - Drop ExclusiveArch
  118. * Thu Sep 25 2014 Karsten Hopp <karsten@redhat.com> 4.1-9.20130314
  119. - enable ppc64le and run 'make test' on that new arch
  120. * Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1-8.20130314
  121. - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
  122. * Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1-7.20130314
  123. - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
  124. * Sun Jan 12 2014 Peter Robinson <pbrobinson@fedoraproject.org> 4.1-6.20130314
  125. - Build on aarch64, minor spec cleanups
  126. * Tue Dec 3 2013 Petr Machata <pmachata@redhat.com> - 4.1-5.20130314
  127. - Fix building with -Werror=format-security (tbb-4.1-dont-snip-Wall.patch)
  128. * Thu Oct 3 2013 Petr Machata <pmachata@redhat.com> - 4.1-4.20130314
  129. - Fix %%install to also install include files that are not named *.h
  130. * Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1-3.20130314
  131. - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
  132. * Tue May 28 2013 Petr Machata <pmachata@redhat.com> - 4.1-3.20130314
  133. - Enable ARM arches
  134. * Wed May 22 2013 Petr Machata <pmachata@redhat.com> - 4.1-2.20130314
  135. - Fix mfence patch. Since the __TBB_full_memory_fence macro was
  136. function-call-like, it stole () intended for function invocation.
  137. * Wed May 22 2013 Petr Machata <pmachata@redhat.com> - 4.1-1.20130314
  138. - Rebase to 4.1 update 3
  139. * Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-7.20120408
  140. - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
  141. * Tue Aug 28 2012 Petr Machata <pmachata@redhat.com> - 4.0-6.20120408
  142. - Fix build on PowerPC
  143. * Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-5.20120408
  144. - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
  145. * Thu Jun 7 2012 Petr Machata <pmachata@redhat.com> - 4.0-4.20120408
  146. - Rebase to 4.0 update 4
  147. - Refresh Getting_Started.pdf, Reference.pdf, Tutorial.pdf
  148. - Provide pkg-config files
  149. - Resolves: #825402
  150. * Thu Apr 05 2012 Karsten Hopp <karsten@redhat.com> 4.0-3.20110809
  151. - tbb builds now on PPC(64)
  152. * Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-2.20110809
  153. - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
  154. * Tue Oct 18 2011 Petr Machata <pmachata@redhat.com> - 4.0-1.20110809
  155. - Rebase to 4.0
  156. - Port the mfence patch
  157. - Refresh the documentation bundle
  158. * Tue Jul 26 2011 Petr Machata <pmachata@redhat.com> - 3.0-1.20110419
  159. - Rebase to 3.0-r6
  160. - Port both patches
  161. - Package Design_Patterns.pdf
  162. - Thanks to Richard Shaw for initial rebase patch
  163. - Resolves: #723043
  164. * Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2-3.20090809
  165. - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
  166. * Thu Jun 10 2010 Petr Machata <pmachata@redhat.com> - 2.2-2.20090809
  167. - Replace mfence instruction with xchg to make it run on ia32-class
  168. machines without SSE2.
  169. - Resolves: #600654
  170. * Tue Nov 3 2009 Petr Machata <pmachata@redhat.com> - 2.2-1.20090809
  171. - New upstream 2.2
  172. - Resolves: #521571
  173. * Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-3.20080605
  174. - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
  175. * Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-2.20080605
  176. - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
  177. * Fri Jun 13 2008 Petr Machata <pmachata@redhat.com> - 2.1-1.20080605
  178. - New upstream 2.1
  179. - Drop soname patch, parallel make patch, and GCC 4.3 patch
  180. * Wed Feb 13 2008 Petr Machata <pmachata@redhat.com> - 2.0-4.20070927
  181. - Review fixes
  182. - Use updated URL
  183. - More timestamp preservation
  184. - Initial import into Fedora CVS
  185. * Mon Feb 11 2008 Petr Machata <pmachata@redhat.com> - 2.0-3.20070927
  186. - Review fixes
  187. - Preserve timestamp of installed files
  188. - Fix soname not to contain "debug"
  189. * Tue Feb 5 2008 Petr Machata <pmachata@redhat.com> - 2.0-2.20070927
  190. - Review fixes
  191. - GCC 4.3 patchset
  192. - Add BR util-linux net-tools
  193. - Add full URL to Source0
  194. - Build in debug mode to work around problems with GCC 4.3
  195. * Mon Dec 17 2007 Petr Machata <pmachata@redhat.com> - 2.0-1.20070927
  196. - Initial package.
  197. - Using SONAME patch from Debian.