tbb-vl.spec 8.3 KB

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