diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..1f6b48c --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +all: boost.spec + +boost.spec: boost.spec.in + @./mkspec.sh diff --git a/README b/README index 68d0309..58d8ade 100644 --- a/README +++ b/README @@ -1,2 +1,2 @@ This package is only needed for updating from an older version of -openSUSE. +of the distribution. diff --git a/boost.changes b/boost.changes index d6eb226..33c52ed 100644 --- a/boost.changes +++ b/boost.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Oct 23 18:31:36 CEST 2008 - pth@suse.de + +- Use a script and a Makefile to generate boost.spec. +- Pull in all libraries on update. +- Modify README to apply to both openSUSE and SLE. + ------------------------------------------------------------------- Thu Oct 23 16:13:56 CEST 2008 - ro@suse.de diff --git a/boost.spec b/boost.spec index acf2c85..4e358d2 100644 --- a/boost.spec +++ b/boost.spec @@ -17,20 +17,17 @@ # norootforbuild +%ifarch s390 s390x ia64 +%define build_mpi 0 +%else +%define build_mpi 1 +%endif Name: boost -%define file_version 1_36_0 -%define man_version 1.33.1 -%define man_file_version 1_33_1 -%define short_version 1_36 -%define gcc_version 43 BuildRequires: boost-jam >= 3.1.16 dos2unix gcc-c++ libbz2-devel libicu-devel python-devel xorg-x11-devel BuildRequires: libexpat-devel -%ifnarch ia64 s390 s390x -%define build_mpi 1 +%if %build_mpi BuildRequires: openmpi-devel -%else -%define build_mpi 0 %endif %if 0%suse_version > 1020 BuildRequires: fdupes @@ -41,12 +38,15 @@ Group: Development/Libraries/C and C++ Summary: Boost C++ Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-build Version: 1.36.0 -Release: 4 -Source0: %{name}_%{file_version}.tar.bz2 +Release: 5 +Source0: %{name}_1_36_0.tar.bz2 Source1: boost-rpmlintrc -Source2: boost_%{man_file_version}_man.tar.bz2 +Source2: boost_1_33_1_man.tar.bz2 Source3: existing_extra_docs Source4: README +Source5: mkspec.sh +Source6: boost.spec.in +Source7: Makefile Patch0: boost-threading.patch Patch1: boost-thread.patch Patch2: boost-no_type_punning.patch @@ -55,17 +55,23 @@ Patch5: boost-pass_BJAM_CONFIG.patch Patch6: boost-use_rpm_optflags.patch Patch8: boost-no_segfault_in_Regex_filter.patch Patch17: boost-ppc-asm.patch -%define lib_appendix %{gcc_version}-mt-%{short_version}-%{file_version} Requires: libboost_date_time-gcc43-mt-1_36-1_36_0 Requires: libboost_filesystem-gcc43-mt-1_36-1_36_0 +Requires: libboost_graph-gcc43-mt-1_36-1_36_0 Requires: libboost_iostreams-gcc43-mt-1_36-1_36_0 +Requires: libboost_math-gcc43-mt-1_36-1_36_0 +%if %build_mpi +Requires: libboost_mpi-gcc43-mt-1_36-1_36_0 +%endif Requires: libboost_test-gcc43-mt-1_36-1_36_0 Requires: libboost_program_options-gcc43-mt-1_36-1_36_0 Requires: libboost_python-gcc43-mt-1_36-1_36_0 -Requires: libboost_regex-gcc43-mt-1_36-1_36_0 Requires: libboost_serialization-gcc43-mt-1_36-1_36_0 Requires: libboost_signals-gcc43-mt-1_36-1_36_0 +Requires: libboost_system-gcc43-mt-1_36-1_36_0 Requires: libboost_thread-gcc43-mt-1_36-1_36_0 +Requires: libboost_wave-gcc43-mt-1_36-1_36_0 +Requires: libboost_regex-gcc43-mt-1_36-1_36_0 Requires: boost-license %define _prefix /usr @@ -114,7 +120,7 @@ This package contains the license boost is provided under. -%package doc +%package doc License: BSD 3-Clause Summary: Documentation for the Boost C++ Libraries Group: Development/Libraries/C and C++ @@ -311,7 +317,7 @@ This package contains the Boost::Regex runtime library. %prep -%setup -q -n %{name}_%{file_version} -a 2 +%setup -q -n %{name}_1_36_0 -a 2 cp %{S:4} . find -name .cvsignore -exec rm -f {} + #everything in the tarball has the executable flag set ...... @@ -356,10 +362,10 @@ for i in $(find stage -type f -name \*.a); do install -p -m 0644 $i %{buildroot}%{_libdir}/$NAME; done; cd stage/lib -for lib in $(find . -follow -name \*-gcc??-mt-%{short_version}.so); do +for lib in $(find . -follow -name \*-gcc??-mt-1_36.so); do NAME=${lib}.%{version} - SONAME_MT=$(echo $lib | sed -e 's/-gcc..-mt-%{short_version}/-mt/g') - SONAME=$(echo $lib | sed -e 's/-gcc..-mt-%{short_version}//g') + SONAME_MT=$(echo $lib | sed -e 's/-gcc..-mt-1_36/-mt/g') + SONAME=$(echo $lib | sed -e 's/-gcc..-mt-1_36//g') rm $lib ln -sf $NAME $SONAME_MT ln -sf $NAME $SONAME @@ -381,7 +387,7 @@ chmod +x %{buildroot}%{_includedir}/boost/signals/detail/gen_signal_N.pl \ #install the man pages install -d %buildroot/%{_mandir}/man3 install -d %buildroot/%{_mandir}/man7 -pushd boost-%{man_version}/doc/man +pushd boost-1.33.1/doc/man for page in $(find . -type f); do install -p -m 644 $page %buildroot/%{_mandir}/$page done @@ -556,6 +562,10 @@ find %{buildroot}%{_docdir}/boost-%{version} -name \*.py -exec chmod -x {} + %doc %{_mandir}/man7/*.7.gz %changelog +* Thu Oct 23 2008 pth@suse.de +- Use a script and a Makefile to generate boost.spec. +- Pull in all libraries on update. +- Modify README to apply to both openSUSE and SLE. * Thu Oct 23 2008 ro@suse.de - fix regexp for short symlinks - hook all mpi related parts to build_mpi macro diff --git a/boost.spec.in b/boost.spec.in new file mode 100644 index 0000000..4004e02 --- /dev/null +++ b/boost.spec.in @@ -0,0 +1,947 @@ +# +# spec file for package boost (Version 1.36.0) +# +# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild + +# WARNING: This file is generated from boost.spec.in by running +# mkspec.sh. Changes to this file will get lost. + +# Just hardcode build_mpi to 1 as soon as openmpi builds on all +# named architectures. + +%ifarch s390 s390x ia64 +%define build_mpi 0 +%else +%define build_mpi 1 +%endif + +Name: boost +BuildRequires: boost-jam >= 3.1.16 dos2unix gcc-c++ libbz2-devel libicu-devel python-devel xorg-x11-devel +BuildRequires: libexpat-devel +%if %build_mpi +BuildRequires: openmpi-devel +%endif +%if 0%suse_version > 1020 +BuildRequires: fdupes +%endif +Url: http://www.boost.org +License: BSD 3-Clause +Group: Development/Libraries/C and C++ +Summary: Boost C++ Libraries +BuildRoot: %{_tmppath}/%{name}-%{version}-build +Version: 1.36.0 +Release: 2 +Source0: %{name}_@file_version@.tar.bz2 +Source1: boost-rpmlintrc +Source2: boost_@man_file_version@_man.tar.bz2 +Source3: existing_extra_docs +Source4: README +Source5: mkspec.sh +Source6: boost.spec.in +Source7: Makefile +Patch0: boost-threading.patch +Patch1: boost-thread.patch +Patch2: boost-no_type_punning.patch +Patch4: boost-visit_each.diff +Patch5: boost-pass_BJAM_CONFIG.patch +Patch6: boost-use_rpm_optflags.patch +Patch8: boost-no_segfault_in_Regex_filter.patch +Patch17: boost-ppc-asm.patch + +Requires: libboost_date_time-@lib_appendix@ +Requires: libboost_filesystem-@lib_appendix@ +Requires: libboost_graph-@lib_appendix@ +Requires: libboost_iostreams-@lib_appendix@ +Requires: libboost_math-@lib_appendix@ +%if %build_mpi +Requires: libboost_mpi-@lib_appendix@ +%endif +Requires: libboost_test-@lib_appendix@ +Requires: libboost_program_options-@lib_appendix@ +Requires: libboost_python-@lib_appendix@ +Requires: libboost_serialization-@lib_appendix@ +Requires: libboost_signals-@lib_appendix@ +Requires: libboost_system-@lib_appendix@ +Requires: libboost_thread-@lib_appendix@ +Requires: libboost_wave-@lib_appendix@ +Requires: libboost_regex-@lib_appendix@ +Requires: boost-license +%define _prefix /usr + +%description +Boost provides free peer-reviewed portable C++ source libraries. The +emphasis is on libraries that work well with the C++ Standard Library. +One goal is to establish "existing practice" and provide reference +implementations so that the Boost libraries are suitable for eventual +standardization. Some of the libraries have already been proposed for +inclusion in the C++ Standards Committee's upcoming C++ Standard +Library Technical Report. + +Although Boost was begun by members of the C++ Standards Committee +Library Working Group, membership has expanded to include nearly two +thousand members of the C++ community at large. + +This package is mainly needed for updating from a prior version, the +dynamic libraries are found in their respective packge. For development +using Boost, you also need the boost-devel package. For documentation, +see the boost-doc package. + + + +%package devel +License: BSD 3-Clause +Summary: Development package for Boost C++ +Group: Development/Libraries/C and C++ +Requires: %{name} = %{version} +AutoReqProv: on + +%description devel +This package contains all that is needed to develop/compile +applications that use the Boost C++ libraries. For documentation see +the package boost-doc. + + + +%package license +License: BSD 3-Clause +Summary: Boost License +Group: Development/Libraries/C and C++ +AutoReqProv: on + +%description license +This package contains the license boost is provided under. + + + +%package doc +License: BSD 3-Clause +Summary: Documentation for the Boost C++ Libraries +Group: Development/Libraries/C and C++ +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description doc +This package contains documentation about the boost dynamic libraries. + + + +%package -n libboost_date_time-@lib_appendix@ +License: BSD 3-Clause +Summary: Boost::Date.Time Runtime libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_date_time-@lib_appendix@ +This package contains the Boost Date.Time runtime libraries. + + + +%package -n libboost_filesystem-@lib_appendix@ +License: BSD 3-Clause +Summary: Boost::Filesystem Runtime Libraries +Group: System/Localization +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_filesystem-@lib_appendix@ +This package contains the Boost::Filesystem libraries. + + + +%package -n libboost_graph-@lib_appendix@ +License: BSD 3-Clause +Summary: Boost::Graph Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_graph-@lib_appendix@ +This package contains the Boost::Graph Runtime libraries. + + + +%package -n libboost_iostreams-@lib_appendix@ +License: BSD 3-Clause +Summary: Boost::IOStreams Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_iostreams-@lib_appendix@ +This package contains the Boost::IOStreams Runtime libraries. + + + +%package -n libboost_math-@lib_appendix@ +License: BSD 3-Clause +Summary: Boost::Math Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_math-@lib_appendix@ +This package contains the Boost::Math Runtime libraries. + + +%if %build_mpi +%package -n libboost_mpi-@lib_appendix@ +License: BSD 3-Clause +Summary: Boost::MPI Runtime libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_mpi-@lib_appendix@ +This package contains the Boost::MPI Runtime libraries. + +%endif + +%package -n libboost_test-@lib_appendix@ +License: BSD 3-Clause +Summary: Boost::Test Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_test-@lib_appendix@ +This package contains the Boost::Test runtime libraries. + + + +%package -n libboost_program_options-@lib_appendix@ +License: BSD 3-Clause +Summary: Boost::ProgramOptions Runtime libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_program_options-@lib_appendix@ +This package contains the Boost::ProgramOptions Runtime libraries. + + + +%package -n libboost_python-@lib_appendix@ +License: BSD 3-Clause +Summary: Boost::Python Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_python-@lib_appendix@ +This package contains the Boost::Python Runtime libraries. + + + +%package -n libboost_serialization-@lib_appendix@ +License: BSD 3-Clause +Summary: Boost::Serialization Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_serialization-@lib_appendix@ +This package contains the Boost::Serialization Runtime libraries. + + + +%package -n libboost_signals-@lib_appendix@ +License: BSD 3-Clause +Summary: Boost::Signals Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_signals-@lib_appendix@ +This package contains the Boost::Signals Runtime libraries. + + + +%package -n libboost_system-@lib_appendix@ +License: BSD 3-Clause +Summary: Boost::System Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_system-@lib_appendix@ +This package contains the Boost::System runtime libraries. + + + +%package -n libboost_thread-@lib_appendix@ +License: BSD 3-Clause +Summary: Boost::Thread Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_thread-@lib_appendix@ +This package contains the Boost::Thread runtime libraries. + + + +%package -n libboost_wave-@lib_appendix@ +License: BSD 3-Clause +Summary: Boost::Wave Runtime Libraries +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_wave-@lib_appendix@ +This package contains the Boost::Wave runtime libraries. + + + +%package -n libboost_regex-@lib_appendix@ +License: BSD 3-Clause +Summary: The Boost::Regex runtime library +Group: System/Libraries +Requires: %{name}-license = %{version} +AutoReqProv: on + +%description -n libboost_regex-@lib_appendix@ +This package contains the Boost::Regex runtime library. + + + +%prep +%setup -q -n %{name}_@file_version@ -a 2 +cp %{S:4} . +find -name .cvsignore -exec rm -f {} + +#everything in the tarball has the executable flag set ...... +find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {} + +%patch +%patch1 +%patch2 +%patch4 +%patch5 +%patch6 +%patch8 +%patch17 +chmod +x configure +#stupid build machinery copies .orig files +find . -name \*.orig -exec rm {} + + +%build +# define bjam_config -d2 --layout=system %{?jobs:-j%jobs} +%define bjam_config -d2 %{?jobs:-j%jobs} +find . -type f -exec chmod u+w {} + +# Now build it +BUILD_FLAGS="--with-toolset=gcc --prefix=%{buildroot}/usr --libdir=%{buildroot}%{_libdir} --with-bjam=/usr/bin/bjam" +PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]') +PYTHON_FLAGS="--with-python-root=/usr --with-python-version=$PYTHON_VERSION" +REGEX_FLAGS="--with-icu" +#BJAM_TARGET=rpm +export EXPAT_INCLUDE=/usr/include EXPAT_LIBPATH=%{_libdir} +BJAM_CONFIG="%bjam_config" BJAM_TARGET="$BJAM_TARGET" ./configure $BUILD_FLAGS $PYTHON_FLAGS $REGEX_FLAGS +%if %build_mpi +echo "using mpi ;" >> user-config.jam +%endif +export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-deprecated" +make all + +%install +mkdir -p %{buildroot}%{_libdir} +mkdir -p %{buildroot}%{_includedir} +mkdir -p %{buildroot}%{_docdir}/boost-%{version} +# install lib +for i in $(find stage -type f -name \*.a); do + NAME=$(basename $i); + install -p -m 0644 $i %{buildroot}%{_libdir}/$NAME; +done; +cd stage/lib +for lib in $(find . -follow -name \*-gcc??-mt-@short_version@.so); do + NAME=${lib}.%{version} + SONAME_MT=$(echo $lib | sed -e 's/-gcc..-mt-@short_version@/-mt/g') + SONAME=$(echo $lib | sed -e 's/-gcc..-mt-@short_version@//g') + rm $lib + ln -sf $NAME $SONAME_MT + ln -sf $NAME $SONAME +done +cd ../.. +mv stage/lib/*.so* %{buildroot}%{_libdir} +# install include files +for i in $(find boost -type d); do + mkdir -p %{buildroot}%{_includedir}/$i +done +for i in $(find boost -type f); do + install -p -m 644 $i %{buildroot}%{_includedir}/$i +done +chmod +x %{buildroot}%{_includedir}/boost/signals/detail/gen_signal_N.pl \ + %{buildroot}%{_includedir}/boost/pool/detail/pool_construct_simple.sh \ + %{buildroot}%{_includedir}/boost/pool/detail/pool_construct.sh \ + %{buildroot}%{_includedir}/boost/function/gen_function_N.pl \ + %{buildroot}%{_includedir}/boost/function/detail/gen_maybe_include.pl +#install the man pages +install -d %buildroot/%{_mandir}/man3 +install -d %buildroot/%{_mandir}/man7 +pushd boost-@man_version@/doc/man +for page in $(find . -type f); do + install -p -m 644 $page %buildroot/%{_mandir}/$page +done +popd +#install doc files +dos2unix libs/ptr_container/doc/tutorial_example.html \ + libs/parameter/doc/html/reference.html \ + libs/parameter/doc/html/index.html \ + libs/iostreams/doc/tree/tree.js \ + libs/graph/doc/lengauer_tarjan_dominator.htm \ + libs/test/test/test_files/errors_handling_test.pattern \ + libs/test/test/test_files/result_report_test.pattern +find . -name \*.htm\* -o -name \*.gif -o -name \*.css -o -name \*.jpg -o -name \*.png -o -name \*.ico | tar --files-from=%{S:3} -cf - --files-from=- | tar -C %{buildroot}%{_docdir}/boost-%{version} -xf - +rm -rf %{buildroot}%{_docdir}/boost-%{version}/boost +ln -s /usr/include/boost %{buildroot}%{_docdir}/boost-%{version}/ +ln -s ../LICENSE_1_0.txt %{buildroot}%{_docdir}/boost-%{version}/libs +#only for documentation, don't need to be executable +find %{buildroot}%{_docdir}/boost-%{version} -name \*.py -exec chmod -x {} + +#symlink dupes +%if 0%suse_version > 1020 +%fdupes %buildroot +%endif + +%post -n libboost_date_time-@lib_appendix@ -p /sbin/ldconfig +%post -n libboost_filesystem-@lib_appendix@ -p /sbin/ldconfig +%post -n libboost_iostreams-@lib_appendix@ -p /sbin/ldconfig +%post -n libboost_test-@lib_appendix@ -p /sbin/ldconfig +%post -n libboost_program_options-@lib_appendix@ -p /sbin/ldconfig +%post -n libboost_python-@lib_appendix@ -p /sbin/ldconfig +%post -n libboost_regex-@lib_appendix@ -p /sbin/ldconfig +%post -n libboost_serialization-@lib_appendix@ -p /sbin/ldconfig +%post -n libboost_signals-@lib_appendix@ -p /sbin/ldconfig +%post -n libboost_thread-@lib_appendix@ -p /sbin/ldconfig +%post -n libboost_math-@lib_appendix@ -p /sbin/ldconfig +%if %build_mpi +%post -n libboost_mpi-@lib_appendix@ -p /sbin/ldconfig +%endif +%post -n libboost_graph-@lib_appendix@ -p /sbin/ldconfig +%post -n libboost_system-@lib_appendix@ -p /sbin/ldconfig +%post -n libboost_wave-@lib_appendix@ -p /sbin/ldconfig + +%postun -n libboost_date_time-@lib_appendix@ -p /sbin/ldconfig +%postun -n libboost_filesystem-@lib_appendix@ -p /sbin/ldconfig +%postun -n libboost_iostreams-@lib_appendix@ -p /sbin/ldconfig +%postun -n libboost_test-@lib_appendix@ -p /sbin/ldconfig +%postun -n libboost_program_options-@lib_appendix@ -p /sbin/ldconfig +%postun -n libboost_python-@lib_appendix@ -p /sbin/ldconfig +%postun -n libboost_regex-@lib_appendix@ -p /sbin/ldconfig +%postun -n libboost_serialization-@lib_appendix@ -p /sbin/ldconfig +%postun -n libboost_signals-@lib_appendix@ -p /sbin/ldconfig +%postun -n libboost_thread-@lib_appendix@ -p /sbin/ldconfig +%postun -n libboost_math-@lib_appendix@ -p /sbin/ldconfig +%if %build_mpi +%postun -n libboost_mpi-@lib_appendix@ -p /sbin/ldconfig +%endif +%postun -n libboost_graph-@lib_appendix@ -p /sbin/ldconfig +%postun -n libboost_system-@lib_appendix@ -p /sbin/ldconfig +%postun -n libboost_wave-@lib_appendix@ -p /sbin/ldconfig + + +%files +%defattr(-, root, root, -) +%doc README + +%files license +%defattr(-, root, root, -) +%doc LICENSE_1_0.txt + +%files -n libboost_date_time-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_date_time*.so.* + +%files -n libboost_filesystem-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_filesystem*.so.* + +%files -n libboost_graph-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_graph*.so.* + +%files -n libboost_iostreams-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_iostreams*.so.* + +%files -n libboost_math-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_math_*.so.* + +%if %build_mpi +%files -n libboost_mpi-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_mpi*.so.* +#%{_libdir}/libboost_mpi*.so +#%{_libdir}/mpi*.so.%{version} +#%{_libdir}/mpi*.so +%endif + +%files -n libboost_test-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_prg_exec_monitor*.so.* +%{_libdir}/libboost_unit_test_framework*.so.* + +%files -n libboost_program_options-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_program_options*.so.* + +%files -n libboost_python-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_python*.so.* + +%files -n libboost_serialization-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_*serialization*.so.* + +%files -n libboost_signals-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_signals*.so.* + +%files -n libboost_system-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_system*.so.* + +%files -n libboost_thread-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_thread*.so.* + +%files -n libboost_wave-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_wave*.so.* + +%files -n libboost_regex-@lib_appendix@ +%defattr(-, root, root, -) +%{_libdir}/libboost_regex*.so.* + +%files devel +%defattr(-, root, root, -) +%{_includedir}/boost +%{_libdir}/*.so +%{_libdir}/*.a + +%files doc +%defattr(-, root, root, -) +%doc %{_docdir}/boost-%{version} +%doc %{_mandir}/man3/*.3.gz +%doc %{_mandir}/man7/*.7.gz + +%changelog +* Tue Sep 02 2008 pth@suse.de +- Split off runtime libraries into their own packages. +- Update to 1.36.0: + New Libraries + * Accumulators: Framework for incremental calculation, and + collection of statistical accumulators. + * Exception: A library for transporting of arbitrary data in + exception objects, and transporting of exceptions + between threads. + * Units: Zero-overhead dimensional analysis and unit/quantity + manipulation and conversion. + * Unordered: Unordered associative containers. + Updated Libraries + * Asio: + o Added support for serial ports. + o Added support for UNIX domain sockets. + o Added support for raw sockets and ICMP. + o Added wrappers for POSIX stream-oriented file descriptors + (excluding regular files). + o Added support for reactor-style operations using a new + null_buffers type. + o Added an iterator type for bytewise traversal of buffer + sequences. + o Added new read_until() and async_read_until() overloads that + take a user-defined function object for locating message + boundaries. + o Added an experimental two-lock queue (enabled by defining + BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE) that may provide better + io_service scalability across many processors. + o Various fixes, performance improvements, and more complete + coverage of the custom memory allocation support. + * Assign:list_of() (and its variants) now has overloaded comparison + operators. This allows you to write test code such as + BOOST_CHECK_EQUAL(my_container,list_of(2)(3)(4)(5));. + * Foreach:BOOST_FOREACH macro for easily iterating over the elements + of a sequence. + o New BOOST_REVERSE_FOREACH macro for iterating over a sequence + in reverse. + * Function: + o Improved allocator support. + * Hash: Minor updates and fixes, for more info see the change log. + * Interprocess: + o Added anonymous shared memory for UNIX systems. + o Fixed missing move semantics on managed memory classes. + o Added copy_on_write and open_read_only options for shared + memory and mapped file managed classes. + o shared_ptr is movable and supports aliasing. + * Intrusive: + o Added linear<> and cache_last<> options to singly linked lists. + o Added optimize_multikey<> option to unordered container hooks. + o Optimized unordered containers when store_hash option is used + in the hook. + o Implementation changed to avoid explicit use of try-catch + blocks and be compilable with exceptions disabled. + * Math: + o Added new non-central Chi-Square, Beta, F and T distributions. + o Added Exponential Integral and Zeta special functions. + o Added Rounding, Truncation, and Unit-in-the-last-place + functions. + o Added support for compile time powers of a runtime base. + o Added a few SSE2 based optimisations for the Lanczos + approximations. + * MPI: + o Added support for non-blocking operations in Python + o Added support for graph topologies. + * Multi-index Containers: Minor additions and maintenance fixes. + Consult the library release notes for + further information. + * PtrContainer: Support for a few more containers, and addition + of insert iterators. For details see upgrading + details. + * Spirit: Integrated the "Classic" Spirit V1.8.x code base with + Spirit V2, "The New Generation". See Change Log. + * Thread: + o New generic lock and try_lock functions for locking multiple + mutexes at once. + o Rvalue reference support for move semantics where the + compilers supports it. + o A few bugs fixed and missing functions added (including + the serious win32 condition variable bug). + o scoped_try_lock types are now backwards-compatible with + Boost 1.34.0 and previous releases. + o Support for passing function arguments to the thread + function by supplying additional arguments to the thread + constructor. + o Backwards-compatibility overloads added for timed_lock and + timed_wait functions to allow use of xtime for timeouts. + * Wave: + o Wave V2.0 is a new major release introducing some breaking + API changes, preventing it to be used with Boost versions + earlier than V1.36.0. Mainly, the API and hook interface + have been streamlined for more consistency. + o Fixed a couple of bugs, improved regression test system to + include testing of the preporcessing hooks interface + (for details see: Changelog). + * Xpressive: + o Regular expressions that can be written as strings or as + expression templates, and that can refer to each other and + themselves recursively with the power of context-free + grammars. + o skip() for specifying which parts of the input sequence + to ignore when matching it against a regex. + o regex_replace() accepts formatter objects and formatter + expressions in addition to format strings. + o Range-based regex_replace() algorithm. + o Fix crash when semantic actions are placed in look-aheads, + look-behinds or independent sub-expressions. +* Mon Jun 23 2008 pth@suse.de +- Qualify name to avoid clash (bnc#401964) +* Fri Jun 20 2008 schwab@suse.de +- Fix ppc atomic ops. +* Thu Apr 10 2008 ro@suse.de +- added baselibs.conf file to build xxbit packages + for multilib support +* Mon Jan 28 2008 schwab@suse.de +- Remove obsolete patch again. +* Fri Jan 18 2008 pth@suse.de +- Fix CVE-2008-0171 and CVE-2008-0171 (bugzilla #353180) +- Qualify special_values_parser (bugzilla #353897) +* Thu Jan 17 2008 schwab@suse.de +- Remove obsolete patch. +* Mon Jan 14 2008 pth@suse.de +- Move 1.34.1 from BS to Autobuild +- Add patch for critical bug in Boost.Function. +- Include C headers where necessary. +- Make the tests for ULONG_MAX more readable 64. +* Wed Oct 24 2007 rguenther@suse.de +- Use -fpermissive in addition to -O2 for building. +- Add patch to enable building wave with GCC 4.3. +* Mon Aug 20 2007 pth@suse.de +- Only use fdupes from 10.3 onwards. +* Sat Aug 11 2007 aj@suse.de +- Fix spec file to build again. +* Thu Aug 09 2007 pth@suse.de +- Add man pages (made for 1.33.1). +- Package html documentation differently. +- Check all links and add missing files that do exist. +- Use %%fdupes +- Add patch by rschiele@gmail.com to pass compiler flags into + Boost.build. +- Update to 1.34.1 and use .spec file from bkoz@redhat.com as + a basis. + Changes 1.33.1 -> 1.34.0: + New Libraries: + * Foreach Library: BOOST_FOREACH macro for easily iterating over + the elements of a sequence, + * Statechart Library: Arbitrarily complex finite state machines + can be implemented in easily readable and + maintainable C++ code, + * TR1 Library: An implementation of the C++ Technical Report on Standard + Library Extensions, from John Maddock. This library does + not itself implement the TR1 components, rather it's a + thin wrapper that will include your standard library's + TR1 implementation (if it has one), otherwise it will + include the Boost Library equivalents, and import them + into namespace std::tr1. Highlights include: Reference + Wrappers, Smart Pointers, result_of, Function Object + Binders, Polymorphic function wrappers, Type Traits, + Random Number Generators and Distributions, Tuples, Fixed + Size Array, Hash Function Objects, Regular Expressions, + and Complex Number Additional Algorithms. + * Typeof Library: Typeof operator emulation, from Arkadiy Vertleyb + and Peder Holt. + * Xpressive Library: Regular expressions that can be written as strings + or as expression templates, and that can refer to + each other and themselves recursively with the + power of context-free grammars, from Eric Niebler. + Updated Libraries: + * Assign Library: + o Support for ptr_map via the new function ptr_map_insert() + o Support for initialization of Pointer Containers when the + containers hold pointers to an abstract base class. + * Date_time library: + o Support for new US/Canada timezone rules and other bug fixes. + See Change History for details. + * Filesystem Library: Major upgrade in preparation for submission to the + C++ Standards Committee for TR2. Changes include: + o Internationalization, provided by class templates basic_path, + basic_filesystem_error, basic_directory_iterator, and + basic_directory_entry. + o Simplification of the path interface by eliminating special + constructors to identify native formats. + o Rationalization of predicate function design, including the + addition of several new functions. + o Clearer specification by reference to POSIX, the ISO/IEEE Single + Unix Standard, with provisions for Windows and other operating + systems. + o Preservation of existing user code whenever possible. + o More efficient directory iteration. + o Addition of a recursive directory iterator. + * Function Library: Boost.Function now implements a small buffer + optimization, which can drastically improve the + performance when copying or constructing + Boost.Function objects storing small function + objects. For instance, bind(&X:foo, &x, _1, _2) + requires no heap allocation when placed into a + Boost.Function object. + * Functional/Hash Library + o Use declarations for standard classes, so that the library + doesn't need to include all of their headers + o Deprecated the headers. + o Add support for the BOOST_HASH_NO_EXTENSIONS macro, which + disables the extensions to TR1 + o Minor improvements to the hash functions for floating point numbers. + * Graph Library: + o edmonds_maximum_cardinality_matching, + o lengauer_tarjan_dominator_tree, + o compressed_sparse_row_graph, + o sorted_erdos_renyi_iterator, + o biconnected_components now supports a visitor and named + parameters, + o adjacency_matrix now models the Bidirectional Graph concept. + o dijkstra_shortest_paths now calls vis.initialize_vertex for each + vertex during initialization. + o Note: the name of the compiled library for the GraphViz reader has + changed to boost_graph (from bgl-viz) to match Boost conventions. + o See the complete revision history for more information. + * MultiArray Library: Boost.MultiArray now by default provides + range-checking for operator[]. Range checking can + be disabled by defining the macro + BOOST_DISABLE_ASSERTS before including + multi_array.hpp. A bug in multi_array::resize() + related to storage orders was fixed. + * Multi-index Containers Library: + o New random access indices. + o Non key-based indices feature new rearrange facilities. + o This version also includes a number of optimizations and usage + improvements. For a complete list of changes, see the library + release notes. + * Optional Library: + o boost::none_t and boost::none now added to Optional's + documentation + o Relational operators now directly support arguments of type + 'T' and 'none_t' + o operator->() now also works with reference types. + o Helper functions make_optional(val), make_optional(cond,val) + and get_optional_value_or(opt,alternative_value) added. + o Constructor taking a boolean condition (as well as a value) + added. + o Member function get_value_or(alternative_value) added. + o Incompatbility bug with mpl::apply<> fixed. + o Converting assignment bug with uninitialized lvalues fixed. + * Parameter Library: + o Every ArgumentPack is now a valid MPL Forward Sequence. + o Support for unnamed arguments (those whose keyword is + deduced from their types) is added. + o Support for named and unnamed template arguments is added. + o New overload generation macros solve the forwarding problem + directly. + o See also the Python library changes, below. + * Pointer Container Library: + o Support for serialization via Boost.Serialization. + o Exceptions can be disabled by defining the macro + BOOST_PTR_CONTAINER_NO_EXCEPTIONS before including any header. + This macro is defined by default if BOOST_NO_EXCEPTIONS is defined. + o Additional std::auto_ptr overloads added s.t. one can also + pass std::auto_ptr instead of only T* arguments to member + functions. + o transfer() now has weaker requirements s.t. one can transfer + objects from ptr_container to ptr_container, + * Python Library: + o Boost.Python now automatically appends C++ signatures to + docstrings. The new docstring_options.hpp header is available to + control the content of docstrings. + o stl_input_iterator, for turning a Python iterable object into an + STL input iterator, from Eric Niebler. + o Support for void* conversions is added. + o Integrated support for wrapping C++ functions built with the + parameter library; keyword names are automatically known to + docsstrings. + o Enhancements to the API for better embedding support + (boost::python::import(), boost::python::exec(), and + boost::python::exec_file()). + * Signals Library: More improvements to signal invocation performance. + * Smart Pointers Library: + o Allocator support as proposed in N1851 (162 Kb PDF). + o pointer_cast and pointer_to_other utilities to allow + pointer-independent code, + * String Algorithm Library: + o lexicographical_compare + o join + o New comparison predicates is_less, is_not_greater. + o Negative indexes support (like Perl) in various algorihtms + (*_head/tail, *_nth). + * Wave Library: + o Wave now correctly recognizes pp-number tokens as mandated by + the C++ Standard, which are converted to C++ tokens right before + they are returned from the library. + o Several new preprocessing hooks have been added. For a complete + description please refer to the related documentation page: The + Context Policy. + o Shared library (dll) support has been added for the generated + Wave libraries. + o The overall error handling has been improved. It is now possible + to recover and continue after an error or a warning was issued. + o Support for optional comment and/or full whitespace + preservation in the generated output stream has been added. + o The Wave library now performs automatic include guard + detection to avoid accessing header files more than once, if + appropriate. + o Full interactive mode has been added to the Wave tool. Now the + Wave tool can be used just like Python or Perl for instance to + interactively try out your BOOST_PP macros. Additionally it is + now possible to load and save the current state of an + interactive session (macro tables et.al.). + o The overall performance has been improved by upto 40-60%%, + depending on the concrete files to process. + o Support for new pragmas has been added allowing to control + certain library features from inside the preprocessed sources + (partial output redirection, control of generated whitespace + and #line directives). + o Optional support for #pragma message "..." has been added. + o This version also includes a number of bug fixes and usage + improvements. For a complete list of changes, see the + libraries change log. + Fixes in 1.34.1: + * Fixes for build on IBM pSeries for AIX and Linux + * gcc-4.2 atomicity.h location fixed + * [iostreams] zlib_compressor memory leaks in 1.34.0 + * filtering ostream problem... pushing zlib_compressor works in 1_33, + dies in 1_34 + * [doc] The "Getting Started" page mentions incorrect library names + * [filesystem] missing documentation or bad links + * add missing docs for boost.python API enhancements. + * Entire iostreams library outdated in 1.34.0 + * numeric_limits specializations in limits.hpp are incorrect + * Updated ICU support in Boost.Regex + * Make boost.python compatible with python 2.5 + * ::boost::detail::empty_base improved + * Fix failing uild of libs/python/example/quickstart. + * Fix problems when building Python modules on boost 1.34.0 + * Patches to allow boost 1.34.0 to compile with stricter warning + checking under mac OS and gcc + * Unable to compile Python example, tutorial, or quickstart with + Boost 1_34_0 + * Improper overflow handling in shortest paths algorithms + * Multiple include paths for Python + * Add documentation for the iter_find/split algorithms + * regex_token_iterator crashes + * regex_error exception when quantifying some non-capturing groups + * read_write_mutex docs don't clearly specify that the functionality + is not present +- Remove patches not needed anymore. +- Replace file dupes by symlinks. +- Add rpmlintrc to suppress rpmlint warnings for things that won't be + changed. +* Sun Jul 15 2007 schwab@suse.de +- Fix reference to atomicity.h. +* Sat Mar 24 2007 aj@suse.de +- Add libbz2-devel to BuildRequires. +* Fri Sep 22 2006 pth@suse.de +- Apply patch from community to build with Python 2.5 +* Fri Jul 14 2006 sf@suse.de +- fixed wrong usage of visit_each() (Bug #192116 ) +* Thu Jul 13 2006 sf@suse.de +- fixed link creation to libboost_thread.so, using %%_lib instead + of lib +* Mon Jun 19 2006 jw@suse.de +- added a libboost_thread.so as a symlink to libboost_thread-mt.so +* Tue Apr 04 2006 pth@suse.de +- Add libboost_wave.a to file list +* Tue Apr 04 2006 pth@suse.de +- Use explicit file names instead of wildcards to detect libraries + that weren't built. +* Wed Feb 08 2006 schwab@suse.de +- Fix broken assembler constraints [#148429]. +* Wed Jan 25 2006 mls@suse.de +- converted neededforbuild to BuildRequires +* Wed Jan 18 2006 schwab@suse.de +- Don't strip binaries. +* Wed Dec 07 2005 pth@suse.de +- Fix cases of type-punning in boost::python +- Compile without -fno-strict-aliasing again. +- Remove unnecessary type attributes in forward declarations. +* Tue Dec 06 2005 pth@suse.de +- Update to 1.33.1. +- Fix use of uninitialized variable. +- Compile with -fno-strict-aliasing. +- Update NEWS file +* Thu Aug 25 2005 pth@suse.de +- Incorporate fixes that are bound to be in 1.33.1 +- Build boost.regex with unicode support. +* Fri Aug 19 2005 pth@suse.de +- Add a NEWS file. +* Thu Aug 18 2005 pth@suse.de +- Update to 1.33.0 with 5 new libraries. See NEWS for specifics. +- Fix use of uninitialized class member (matz@suse.de) +- Compile with -O2 instead of -O3 +- Make build process use %%optflags +* Thu Mar 10 2005 pth@suse.de +- Update to 1.32.0 +* Fri May 07 2004 pth@suse.de +- Add convenience symlinks (#38491) +* Sun Apr 25 2004 coolo@suse.de +- build with several jobs +* Fri Mar 05 2004 pth@suse.de +- Update to 1.31.0. +- Make building boost work on Linux platforms where gcc does not + define _REENTRANT when passed -pthread. Patch was done by + Robert Schiele. +* Sat Jan 10 2004 adrian@suse.de +- add %%run_ldconfig +* Wed Aug 20 2003 pthomas@suse.de +- Update to 1.30.2, a bugfix release +* Wed Jul 23 2003 pthomas@suse.de +- Initial package, based on the work by Robert Schiele. +- Fix building with Python 2.3 diff --git a/mkspec.sh b/mkspec.sh new file mode 100644 index 0000000..47715d1 --- /dev/null +++ b/mkspec.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +version=1.36.0 +man_version=1.33.1 +gcc_version=43 + +file_version="$(echo $version|sed 's/\./_/g')" +short_version="$(echo $file_version | cut -d_ -f 1,2)" +gcc_part="gcc$gcc_version" +lib_appendix="${gcc_part}-mt-${short_version}-${file_version}" + +man_file_version="$(echo $man_version|sed 's/\./_/g')" + +sed -e "s/@lib_appendix@/$lib_appendix/g" \ + -e "s/@man_version@/$man_version/g" \ + -e "s/@man_file_version@/$man_file_version/g" \ + -e "s/@file_version@/$file_version/g" \ + -e "s/@short_version@/$short_version/g" \ + boost.spec.in >boost.spec + +if [ $? -eq 0 ]; then + echo "boost.spec generated" +else + echo "error when generating boost.spec" + rm -f boost.spec +fi