diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..740d89f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/asl_1.0.43.tgz diff --git a/adobe-source-libraries.pc b/adobe-source-libraries.pc new file mode 100644 index 0000000..ccded20 --- /dev/null +++ b/adobe-source-libraries.pc @@ -0,0 +1,8 @@ +prefix=/usr +includedir=/usr/include + +Name: adobe-source-libraries +Description: General purpose addon to STL and Boost. +Version: 1.0.43 +Libs: -lasl_dev +Cflags: -I${includedir}/adobe diff --git a/adobe-source-libraries.spec b/adobe-source-libraries.spec new file mode 100644 index 0000000..e5fe6d4 --- /dev/null +++ b/adobe-source-libraries.spec @@ -0,0 +1,175 @@ +Name: adobe-source-libraries +Version: 1.0.43 +Release: 9%{?dist} +Summary: General purpose C++ libraries +Group: System Environment/Libraries + # License breakdown: http://stlab.adobe.com/licenses.html +License: MIT +URL: http://stlab.adobe.com/ + +Source0: http://downloads.sourceforge.net/project/adobe-source/adobe-source/%{version}/asl_%{version}.tgz + # pkg-config(1) configuration file, part of packaging. +Source1: adobe-source-libraries.pc +# https://sourceforge.net/tracker/?func=detail&aid=3487687&group_id=132417&atid=724218 +# (pathch0, patch1) +Patch0: asl-gcc.patch +Patch1: asl-fedora-build-options.patch +# https://svn.boost.org/trac/boost/ticket/4647 +Patch2: asl-no-concept-check1043.patch + +BuildRequires: boost-build +BuildRequires: boost-devel +BuildRequires: doxygen +BuildRequires: tbb-devel +BuildRequires: texlive-dvips texlive-latex + +# needs to match TBB +ExclusiveArch: %{ix86} x86_64 ia64 + +%description +ASL provides peer-reviewed and portable C++ source libraries. The +libraries are intended to be widely useful, leveraging and extending +both the C++ Standard Library and the Boost Libraries. + +%package devel +Summary: Development files for %{name} +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Requires: pkgconfig + +%description devel +Libraries and header files for developing applications that +use %{name}. + +%package doc +Summary: Documentation +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description doc +API and other documentation for Adobe Source Libraries (ASL). + + +%prep +%setup -qn source_release +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 + +find . \( -name *.hpp -o -name *.jpg \) -executable -exec chmod 644 {} \; +iconv -f iso8859-1 -t utf-8 release_notes.txt > release_notes.txt.conv && \ + mv -f release_notes.txt.conv release_notes.txt +chmod 644 LICENSE_1_0_0.txt + +sed -i 's/@optflags@/%{optflags}/g' jamroot.jam +sed -i 's/@version@/%{version}/g' %{SOURCE1} + + +%build +# Using static lib (relinked in next step) due to soname problems: +# https://svn.boost.org/trac/boost/ticket/2746. +bjam link=static toolset=gcc variant=release asl_dev + +rm -rf tmp; mkdir tmp; cd tmp +ar x ../../built_artifacts/*/*/*/*/threading-multi/libasl_dev.a +gcc -shared -g -Wl,-soname=libasl_dev.so.%{version} -Wl,-as-needed \ + *.o -o ../libasl_dev.so.%{version} \ + -lboost_thread-mt -lboost_signals -lboost_filesystem + +#bjam link=static toolset=gcc variant=release documentation/examples +cd ../documentation +./build_docs.pl + + +%install +cd documentation +rm -f build_docs.pl +find . -name *.dox -delete +rm -rf asl doxygen_support_files doxyfile performance stldoc \ + structure tutorials widget_lib +# https://sourceforge.net/projects/adobe-source/forums/forum/449268/topic/5126565 +[ -s performance/index.html ] || rm -f performance/index.html + +mkdir -p %{buildroot}%{_datadir}/doc/%{name}-%{version} +cd .. +mv documentation %{buildroot}%{_datadir}/doc/%{name}-%{version} + +mkdir -p %{buildroot}%{_libdir}/pkgconfig +cp %{SOURCE1} %{buildroot}%{_libdir}/pkgconfig +mkdir -p %{buildroot}%{_includedir} +cp -ar adobe %{buildroot}%{_includedir} + +sofile=libasl_dev.so.%{version} +mkdir -p %{buildroot}%{_libdir} +install -m 755 $sofile %{buildroot}%{_libdir} +cd %{buildroot}%{_libdir} +ln -sf $sofile ${sofile%%.*} +ln -sf $sofile ${sofile%%.*.*} +ln -sf $sofile ${sofile%%.*.*.*} + + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + + +%files +%doc LICENSE_1_0_0.txt read_me.html release_notes.txt +%{_libdir}/*.so.* +%exclude %{_datadir}/doc/%{name}-%{version}/documentation + +%files devel +%{_includedir}/* +%{_libdir}/*.so +%{_libdir}/pkgconfig/*.pc + +%files doc +%doc %{_datadir}/doc/%{name}-%{version}/documentation + + +%changelog +* Sun Apr 1 2012 Dan HorĂ¡k 1.0.43-9 +- set ExclusiveArch to match TBB + +* Wed Mar 28 2012 Alec Leamas 1.0.43-8 +- Adding Patch2: Relaxing certain tests to fit bombono-dvd + +* Tue Mar 20 2012 Alec Leamas 1.0.43-7 +- Removing remaining documentation sources, minor fixes + +* Mon Mar 19 2012 Alec Leamas 1.0.43-7 +- Removing documentation from base package (%%exclude) +- Removing .dox files from documentation + +* Mon Mar 19 2012 Alec Leamas 1.0.43-7 +- Fixing bad source URL. +- Handling empty performance/index.html +- Moving documentation. + +* Sun Mar 18 2012 Alec Leamas 1.0.43-6 +- Using boost-build, purging get-source.sh, related clean-up. +- Source0 refers directly to sourceforge. + +* Sat Mar 17 2012 Alec Leamas 1.0.43-5 +- Updating get-source.sh to exclude APL. + +* Fri Mar 16 2012 Alec Leamas 1.0.43-5.fc15 +- Updating get-source.sh (wrong version packed in v4) +- Comments update, renamed patch0. + +* Sun Feb 19 2012 Alec Leamas 1.0.43-4.fc15 +- Fixing David Timms's comment #12. +- Removing unused parts of bundled boost in get-source.sh. +- Documenting boost bundling in spec file. +- Several patches removed, not required anymore. + +* Thu Feb 16 2012 Alec Leamas 1.0.43-3.fc15 +- Even better handling of instruction set (removed it). +- Factored out fedora flags to new patch. + +* Wed Feb 15 2012 Alec Leamas 1.0.43-2.fc15 +- Fixed linkage problems in installed package. +- Better handling of instruction set in %%prep. + +* Fri Feb 10 2012 Alec Leamas 1.0.43-1.fc15 +- Initial package diff --git a/asl-fedora-build-options.patch b/asl-fedora-build-options.patch new file mode 100644 index 0000000..a5a534d --- /dev/null +++ b/asl-fedora-build-options.patch @@ -0,0 +1,60 @@ +asl-fedora-flags + +From: Alec Leamas + +Fix fedora compilation flags in jamroot.jam +--- + + adobe_source_libraries/jamroot.jam | 26 ++++++++++---------------- + 1 files changed, 10 insertions(+), 16 deletions(-) + + +diff --git a/jamroot.jam b/adobe_source_libraries/jamroot.jam +index 8c7b593..dfd88c8 100644 +--- a/jamroot.jam ++++ b/jamroot.jam +@@ -46,6 +46,7 @@ adobe_requirements = + msvc:_WIN32_WINNT=0x400 + darwin:"-Werror -Wall -Wno-trigraphs -Wreturn-type -Wnon-virtual-dtor -Woverloaded-virtual -Wformat -Wmissing-braces -Wparentheses -Wswitch -Wunused-function -Wunused-label -Wunused-parameter -Wunused-variable -Wunused-value -Wunknown-pragmas -Wsign-compare" + darwin:"-Xlinker -Y -Xlinker 5" ++ gcc,release:"-fPIC @optflags@ -fpermissive -Wno-long-long -Wno-strict-aliasing -Wno-trigraphs -Wnon-virtual-dtor -Woverloaded-virtual -Wunused-parameter -Wno-unused-variable -Wunknown-pragmas -Wsign-compare -Wno-parentheses" + gcc,debug:"-Werror -Wall -Wno-trigraphs -Wreturn-type -Wnon-virtual-dtor -Woverloaded-virtual -Wformat -Wmissing-braces -Wparentheses -Wswitch -Wunused-function -Wunused-label -Wunused-parameter -Wunused-variable -Wunused-value -Wunknown-pragmas -Wsign-compare -Wno-parentheses" + # gcc-4.5.0:_GLIBCXX_USE_C99_MATH_TR1 # apparent problems using this without using other tr1 libs + gcc-4.5.0:__GXX_EXPERIMENTAL_CXX0X__ +@@ -63,8 +64,6 @@ asl_requirements = + $(tbb_requirements) + . + gcc:NOMINMAX +- gcc:x86 +- gcc,multi:i486 + msvc:"-DUNICODE -D_UNICODE" + msvc-8.0:"/W3 /WX /Wp64 /Zc:wchar_t /Zc:forScope" + msvc-9.0:"/W3 /WX /Zc:wchar_t /Zc:forScope" +@@ -74,10 +73,6 @@ asl_requirements = + $(ASL_ADDITIONAL_MACROS) + BOOST_ALL_NO_LIB + darwin:"-lSystemStubs" +- multi:/boost/thread//boost_thread +- /boost/filesystem +- /boost/system +- /boost/signals + ; + + project +@@ -116,6 +111,7 @@ switch [ os.name ] + + + import os ; ++import path ; + local boost-path = [ os.environ BOOST_PATH ] ; + if $(boost-path) + { +@@ -124,8 +120,6 @@ if $(boost-path) + boost-path = [ path.make ../boost_libraries ] ; + } + +-use-project /boost : $(boost-path) ; +- + + lib asl + : #sources diff --git a/asl-gcc.patch b/asl-gcc.patch new file mode 100644 index 0000000..f1fed07 --- /dev/null +++ b/asl-gcc.patch @@ -0,0 +1,47 @@ +asl-gcc-4.6 + +From: Alec Leamas + +Fixes to for gcc 4.6 - 4.7. +--- + + adobe/cmath.hpp | 4 ++-- + source/any_regular.cpp | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + + +diff --git a/adobe/cmath.hpp b/adobe_source_libraries/adobe/cmath.hpp +index 250a3ef..733c299 100644 +--- a/adobe/cmath.hpp ++++ b/adobe/cmath.hpp +@@ -37,7 +37,7 @@ back to include math.h. This also needs to add any other C99 math.h extensions. + #define ADOBE_HAS_CPP_CMATH + + #elif __GNUC__ == 4 +-#if (__GNUC_MINOR__ < 6) || (!(defined(_GLIBCXX_USE_C99_MATH_TR1))) ++#if (__GNUC_MINOR__ <= 7) || (!(defined(_GLIBCXX_USE_C99_MATH_TR1))) + // at least Ubuntu 9.x, gcc 4.4.1, still falls into this case + /* + The currently supported version of GNUC has C99 extensions in math.h. But no TR1 extensions. +@@ -46,7 +46,7 @@ back to include math.h. This also needs to add any other C99 math.h extensions. + #include + #else + #include +-s ++ + #define ADOBE_HAS_C99_STD_MATH_H + #endif + #endif +diff --git a/source/any_regular.cpp b/adobe_source_libraries/source/any_regular.cpp +index b0826ba..2f4f3fb 100644 +--- a/source/any_regular.cpp ++++ b/source/any_regular.cpp +@@ -62,7 +62,7 @@ template + struct make_serializable { static const serializable value; }; + + template +-const serializable make_serializable::value; ++const serializable make_serializable::value = serializable(); + + /**************************************************************************************************/ + diff --git a/asl-no-concept-check1043.patch b/asl-no-concept-check1043.patch new file mode 100644 index 0000000..6bfdc89 --- /dev/null +++ b/asl-no-concept-check1043.patch @@ -0,0 +1,88 @@ +diff -Naur source_release_orig/adobe/any_iterator.hpp source_release/adobe/any_iterator.hpp +--- source_release_orig/adobe/any_iterator.hpp 2010-11-08 21:18:19.000000000 +0300 ++++ source_release/adobe/any_iterator.hpp 2012-03-28 16:59:42.000000000 +0400 +@@ -47,7 +47,10 @@ + { + typedef typename optimized_storage_type >::type base_t; + ++// this is too restrictive check; need to make appropriate one ++#ifndef NO_ASL_AI_CONCEPT_CHECK + BOOST_CLASS_REQUIRE(I, boost, ForwardIteratorConcept); ++#endif + + type(const I& x) : base_t (x) + { } +@@ -133,7 +136,9 @@ + { + typedef typename optimized_storage_type >::type base_t; + ++#ifndef NO_ASL_AI_CONCEPT_CHECK + BOOST_CLASS_REQUIRE(I, boost, BidirectionalIteratorConcept); ++#endif + + type(const I& x) + : base_t(x) {} +@@ -235,7 +240,9 @@ + { + typedef typename optimized_storage_type >::type base_t; + ++#ifndef NO_ASL_AI_CONCEPT_CHECK + BOOST_CLASS_REQUIRE(I, boost, RandomAccessIteratorConcept); ++#endif + + type(const I& x) + : base_t(x) {} +diff -Naur source_release_orig/adobe/poly.hpp source_release/adobe/poly.hpp +--- source_release_orig/adobe/poly.hpp 2010-11-08 21:18:20.000000000 +0300 ++++ source_release/adobe/poly.hpp 2012-03-28 17:01:40.000000000 +0400 +@@ -70,8 +70,10 @@ + virtual const void* cast() const = 0; + virtual const std::type_info& type_info() const = 0; + ++#ifndef NO_ASL_AI_CONCEPT_CHECK + // Precondition of assignment: this->type_info() == x.type_info() + virtual void assign(const poly_copyable_interface& x) = 0; ++#endif + + // Precondition of exchange: this->type_info() == x.type_info() + virtual void exchange(poly_copyable_interface& x) = 0; +@@ -107,9 +109,11 @@ + ~poly_state_remote() + { delete value_ptr_m; } + ++#ifndef NO_ASL_AI_CONCEPT_CHECK + // Precondition : this->type_info() == x.type_info() + void assign(const poly_copyable_interface& x) + { *value_ptr_m = *static_cast(x).value_ptr_m; } ++#endif + + const std::type_info& type_info() const + { return typeid(value_type); } +@@ -144,9 +148,11 @@ + explicit poly_state_local(value_type x) + : value_m(adobe::move(x)) { } + ++#ifndef NO_ASL_AI_CONCEPT_CHECK + // Precondition : this->type_info() == x.type_info() + void assign(const poly_copyable_interface& x) + { value_m = static_cast(x).value_m; } ++#endif + + const std::type_info& type_info() const + { return typeid(value_type); } +@@ -342,6 +348,7 @@ + return true; + } + ++#ifndef NO_ASL_AI_CONCEPT_CHECK + template poly_base& assign(const T& x) + { + if (type_info() == typeid(T)) +@@ -364,6 +371,7 @@ + interface_ref().~interface_type(); + x.interface_ref().clone(storage()); + } ++#endif + + const interface_type* operator->() const + { return &interface_ref(); } diff --git a/dead.package b/dead.package deleted file mode 100644 index 6601704..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -Orphaned diff --git a/sources b/sources new file mode 100644 index 0000000..6a9ee74 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +eac9f3eec40ed1f41d1e4671289b5e8b asl_1.0.43.tgz