diff --git a/.cvsignore b/.cvsignore index e69de29..a23ca01 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1 @@ +ETL-0.04.12.tar.gz diff --git a/ETL-0.04.12-build.patch b/ETL-0.04.12-build.patch new file mode 100644 index 0000000..2c8b4af --- /dev/null +++ b/ETL-0.04.12-build.patch @@ -0,0 +1,401 @@ +Upstream review: +http://patches.synfig.org/r/12/ + +* Replace autoconf-generated etl_profile.h with custom one + - Do not use the HAVE_* autoconf macros so that we don't conflict + - Include only necessary defines +* Abort if mandatory checks don't pass +* Do not redefine v*printf + +Lubomir Rintel + +diff -urp ETL-0.04.12.orig/configure.ac ETL-0.04.12/configure.ac +--- ETL-0.04.12.orig/configure.ac 2008-10-17 17:21:58.000000000 +0200 ++++ ETL-0.04.12/configure.ac 2009-01-09 16:00:42.000000000 +0100 +@@ -6,7 +6,7 @@ AC_INIT([Extended Template Library],[0.0 + AC_REVISION + + AC_CONFIG_AUX_DIR(config) +-AC_CONFIG_HEADERS([ETL/etl_profile_.h]) ++AC_CONFIG_HEADERS([config.h]) + AC_CANONICAL_HOST + AC_CANONICAL_TARGET + +@@ -44,27 +44,14 @@ AC_WIN32_QUIRKS + # -- H E A D E R S -------------------------------------------- + + AH_TOP([ +-// We want to be autoconf/autoheader friendly, so +-// if the developer has already included an +-// autoheader-generated configuration script, +-// we can assume that the user knew what they +-// were doing and let them use their own config.h. +-//#ifndef PACKAGE_TARNAME ++// This is not used anywhere + ]) + +-AH_BOTTOM([ +-//#endif // ifndef PACKAGE_TARNAME +-]) +- +- + # -- T Y P E S & S T R U C T S -------------------------------- + + # -- F U N C T I O N S ---------------------------------------- + + ETL_DEPS +-AC_CHECK_FUNCS([fork]) +-AC_CHECK_FUNCS([kill]) +-AC_CHECK_FUNCS([pipe]) + + # -- O U T P U T ---------------------------------------------- + +diff -urp ETL-0.04.12.orig/ETL/clock ETL-0.04.12/ETL/clock +--- ETL-0.04.12.orig/ETL/clock 2007-10-30 11:53:52.000000000 +0100 ++++ ETL-0.04.12/ETL/clock 2009-01-09 16:00:42.000000000 +0100 +@@ -29,7 +29,7 @@ + + #include "etl_config.h" + +-#ifdef HAVE_GETTIMEOFDAY ++#ifdef ETL_HAS_GETTIMEOFDAY + #include "_clock_gettimeofday.h" + #ifndef ETL_CLOCK_DEFAULT_DESC_CLASS + #define ETL_CLOCK_DEFAULT_DESC_CLASS _ETL::clock_desc_gettimeofday +diff -urp ETL-0.04.12.orig/ETL/Makefile.am ETL-0.04.12/ETL/Makefile.am +--- ETL-0.04.12.orig/ETL/Makefile.am 2008-02-23 12:09:53.000000000 +0100 ++++ ETL-0.04.12/ETL/Makefile.am 2009-01-09 16:00:42.000000000 +0100 +@@ -2,14 +2,11 @@ + + MAINTAINERCLEANFILES=Makefile.in + +-CLEANFILES=$(top_builddir)/ETL/etl_profile.h ++DISTCLEANFILES=$(top_builddir)/ETL/etl_profile.h + + etldir = $(includedir)/ETL + + etl_HEADERS= value _value.h rect _rect.h misc _misc.h ref_count _ref_count.h angle fastangle handle ipc thread fixed random clock hermite calculus stringf trivial spline _stringf.h _bspline.h _calculus.h _mutex_null.h _hermite.h _curve_func.h _clock_base.h _clock_system.h _clock_gettimeofday.h _random.h _angle.h _fastangle.h _curve.h _handle.h _thread.h _mutex_pthreads.h _mutex_win32.h _condition.h _rwlock.h smach _smach.h _trivial.h _fixed.h etl_config.h $(top_builddir)/ETL/etl_profile.h _fastangle_tables.h bezier _bezier.h _bezier_angle.h _status.h status pen _pen.h boxblur _boxblur.h gaussian _gaussian.h surface _surface.h smart_ptr _smart_ptr.h _clock_win32hpcount.h mutex _mutex_pthreads_simple.h + +-$(top_builddir)/ETL/etl_profile.h:$(top_builddir)/ETL/etl_profile_.h +- sed "s/PACKAGE/ETL/g;" < $(top_builddir)/ETL/etl_profile_.h > $(top_builddir)/ETL/etl_profile.h +- + # FIXME: figure out why this is in SVN, but isn't installed + EXTRA_DIST=_bit_rotate.h +diff -urp ETL-0.04.12.orig/ETL/mutex ETL-0.04.12/ETL/mutex +--- ETL-0.04.12.orig/ETL/mutex 2008-02-23 12:09:53.000000000 +0100 ++++ ETL-0.04.12/ETL/mutex 2009-01-09 16:00:42.000000000 +0100 +@@ -29,7 +29,7 @@ + + #include "etl_config.h" + +-#ifdef HAVE_LIBPTHREAD ++#ifdef ETL_HAS_LIBPTHREAD + # include "_mutex_pthreads_simple.h" + #else + #ifdef _WIN32 +diff -urp ETL-0.04.12.orig/ETL/_mutex_pthreads.h ETL-0.04.12/ETL/_mutex_pthreads.h +--- ETL-0.04.12.orig/ETL/_mutex_pthreads.h 2007-03-16 01:37:48.000000000 +0100 ++++ ETL-0.04.12/ETL/_mutex_pthreads.h 2009-01-09 16:00:42.000000000 +0100 +@@ -33,7 +33,7 @@ + + #include + +-#ifdef HAVE_SCHED_H ++#ifdef ETL_HAS_SCHED_H + # include + #endif + +diff -urp ETL-0.04.12.orig/ETL/_stringf.h ETL-0.04.12/ETL/_stringf.h +--- ETL-0.04.12.orig/ETL/_stringf.h 2008-01-25 13:23:29.000000000 +0100 ++++ ETL-0.04.12/ETL/_stringf.h 2009-01-09 16:00:42.000000000 +0100 +@@ -48,6 +48,13 @@ + #define POPEN_BINARY_WRITE_TYPE "w" + #endif + ++#ifdef ETL_HAS__VSNPRINTF ++#ifndef ETL_HAS_VSNPRINTF ++#define vnsprintf _vnsprintf ++#define ETL_HAS_VSNPRINTF 1 ++#endif ++#endif ++ + /* === T Y P E D E F S ===================================================== */ + + _ETL_BEGIN_CDECLS +@@ -58,24 +65,39 @@ _ETL_BEGIN_CDECLS + #define ETL_NO_THROW throw() + #endif + +-#ifdef HAVE_VASPRINTF // This is the preferred method ++#ifdef __GLIBC__ ++// We prefer prototypes from GLIBC, since defining them ourselves ++// works around its security mechanisms ++#define _GNU_SOURCE ++#include ++#endif ++ ++#ifdef ETL_HAS_VASPRINTF // This is the preferred method ++#ifndef __GLIBC__ + extern int vasprintf(char **,const char *,va_list)ETL_NO_THROW; ++#endif + #else + +-# ifdef HAVE_VSNPRINTF // This is the secondary method ++# ifdef ETL_HAS_VSNPRINTF // This is the secondary method ++#ifndef __GLIBC__ + extern int vsnprintf(char *,size_t,const char*,va_list)ETL_NO_THROW; ++#endif + # endif + + #endif + +-#ifdef HAVE_VSSCANF ++#ifdef ETL_HAS_VSSCANF ++#ifndef __GLIBC__ + extern int vsscanf(const char *,const char *,va_list)ETL_NO_THROW; ++#endif + #else + #define ETL_NO_VSTRSCANF +-#ifdef HAVE_SSCANF ++#ifdef ETL_HAS_SSCANF ++#ifndef __GLIBC__ + extern int sscanf(const char *buf, const char *format, ...)ETL_NO_THROW; + #endif + #endif ++#endif + + #include + +@@ -88,7 +110,7 @@ _ETL_BEGIN_NAMESPACE + inline std::string + vstrprintf(const char *format, va_list args) + { +-#ifdef HAVE_VASPRINTF // This is the preferred method (and safest) ++#ifdef ETL_HAS_VASPRINTF // This is the preferred method (and safest) + char *buffer; + std::string ret; + vasprintf(&buffer,format,args); +@@ -96,7 +118,7 @@ vstrprintf(const char *format, va_list a + free(buffer); + return ret; + #else +-#ifdef HAVE_VSNPRINTF // This is the secondary method (Safe, but bulky) ++#ifdef ETL_HAS_VSNPRINTF // This is the secondary method (Safe, but bulky) + #warning etl::vstrprintf() has a maximum size of ETL_STRPRINTF_MAX_LENGTH in this configuration. + #ifdef ETL_THREAD_SAFE + char buffer[ETL_STRPRINTF_MAX_LENGTH]; +@@ -145,7 +167,7 @@ strscanf(const std::string &data, const + } + #else + +-#if defined (HAVE_SSCANF) && defined (__GNUC__) ++#if defined (ETL_HAS_SSCANF) && defined (__GNUC__) + #define strscanf(data,format,...) sscanf(data.c_str(),format,__VA_ARGS__) + #endif + #endif +diff -urp ETL-0.04.12.orig/ETL/_thread.h ETL-0.04.12/ETL/_thread.h +--- ETL-0.04.12.orig/ETL/_thread.h 2007-03-16 01:37:48.000000000 +0100 ++++ ETL-0.04.12/ETL/_thread.h 2009-01-09 16:00:42.000000000 +0100 +@@ -31,21 +31,21 @@ + + #define __USE_GNU + +-#ifdef HAVE_PTHREAD_H ++#ifdef ETL_HAS_PTHREAD_H + # include + #endif + +-#ifdef HAVE_SCHED_H ++#ifdef ETL_HAS_SCHED_H + # include + #endif + +-#ifdef HAVE_CREATETHREAD ++#ifdef ETL_HAS_CREATETHREAD + # include + #endif + + /* === M A C R O S ========================================================= */ + +-#if ( defined (HAVE_PTHREAD_CREATE) || defined (HAVE_CLONE) || defined (HAVE_CREATETHREAD) ) && !defined (NO_THREADS) ++#if ( defined (ETL_HAS_PTHREAD_CREATE) || defined (ETL_HAS_CLONE) || defined (ETL_HAS_CREATETHREAD) ) && !defined (NO_THREADS) + # define CALLISTO_THREADS + #endif + +@@ -53,7 +53,7 @@ + + /* === C L A S S E S & S T R U C T S ======================================= */ + +-#if defined(CALLISTO_THREADS) && defined(HAVE_PTHREAD_CREATE) ++#if defined(CALLISTO_THREADS) && defined(ETL_HAS_PTHREAD_CREATE) + static inline void Yield(void) + { + sched_yield(); +@@ -68,7 +68,7 @@ inline void Yield(void) { } + + #ifdef CALLISTO_THREADS + +-#ifdef HAVE_PTHREAD_CREATE ++#ifdef ETL_HAS_PTHREAD_CREATE + + class Thread + { +@@ -207,7 +207,7 @@ public: + } + }; + +-#ifdef HAVE_PTHREAD_RW_LOCK_INIT ++#ifdef ETL_HAS_PTHREAD_RW_LOCK_INIT + class ReadWriteLock + { + pthread_rwlock_t rwlock; +@@ -290,8 +290,8 @@ public: + }; + */ + +-#else // if defined HAVE_PTHREAD +-#ifdef HAVE_CREATETHREAD ++#else // if defined ETL_HAS_PTHREAD ++#ifdef ETL_HAS_CREATETHREAD + + + #ifdef THREAD_ENTRYPOINT +@@ -448,8 +448,8 @@ public: + }; + + +-#endif // if defined HAVE_CREATETHREAD +-#endif // if defined HAVE_PTHREAD_CREATE ++#endif // if defined ETL_HAS_CREATETHREAD ++#endif // if defined ETL_HAS_PTHREAD_CREATE + #endif // if defined CALLISTO_THREADS + + +diff -urp ETL-0.04.12.orig/m4/ETL.m4 ETL-0.04.12/m4/ETL.m4 +--- ETL-0.04.12.orig/m4/ETL.m4 2007-11-07 12:05:28.000000000 +0100 ++++ ETL-0.04.12/m4/ETL.m4 2009-01-09 16:00:42.000000000 +0100 +@@ -3,43 +3,71 @@ + # $Id: ETL-0.04.12-build.patch,v 1.1 2009/03/01 10:44:41 lkundrak Exp $ + # + # By Robert B. Quattlebaum Jr. ++# Errors are Lubomir Rintel's fault + # + ++AC_DEFUN([ETL_PROFILE], [ ++ etl_profile=$1 ++ echo "/* Configuration profile of ETL */" >$etl_profile ++]) ++ ++AC_DEFUN([ETL_CHECK_HEADER], [ ++ etl_header_name=AS_TR_CPP($1) ++ AC_CHECK_HEADER($1, ++ [echo "#define ETL_HAS_$etl_header_name 1" >> $etl_profile], ++ [echo "/* #undef ETL_HAS_$etl_header_name */" >> $etl_profile]) ++]) ++ ++AC_DEFUN([ETL_CHECK_FUNC], [ ++ etl_func_name=AS_TR_CPP($1) ++ AC_CHECK_FUNC($1, ++ [echo "#define ETL_HAS_$etl_func_name 1" >> $etl_profile], ++ [echo "/* #undef ETL_HAS_$etl_func_name */" >> $etl_profile]) ++]) ++ ++AC_DEFUN([ETL_CHECK_LIB], [ ++ etl_lib_name=AS_TR_CPP($1) ++ AC_CHECK_LIB($1, $2, ++ [echo "#define ETL_HAS_LIB$etl_lib_name 1" >> $etl_profile ++ LIBS="$LIBS -l$1"], ++ [echo "/* #undef ETL_HAS_LIB$etl_lib_name */" >> $etl_profile]) ++]) ++ + AC_DEFUN([ETL_DEPS], + [ +- AC_C_BIGENDIAN +- +- AC_CHECK_LIB(user32, main) +- AC_CHECK_LIB(kernel32, main) +- AC_CHECK_LIB(pthread, main) +- +- AC_HEADER_STDC +- +- AC_CHECK_HEADERS(pthread.h) +- AC_CHECK_HEADERS(sched.h) +- AC_CHECK_HEADERS(sys/times.h) +- AC_CHECK_HEADERS(sys/time.h) +- AC_CHECK_HEADERS(unistd.h) +- AC_CHECK_HEADERS(windows.h) +- AC_CHECK_FUNCS([pthread_create]) +- AC_CHECK_FUNCS([pthread_rwlock_init]) +- AC_CHECK_FUNCS([pthread_yield]) +- AC_CHECK_FUNCS([sched_yield]) +- AC_CHECK_FUNCS([CreateThread]) +- AC_CHECK_FUNCS([__clone]) +- AC_CHECK_FUNCS([QueryPerformanceCounter]) +- +- AC_CHECK_FUNCS([gettimeofday]) +- AC_CHECK_FUNCS([sscanf]) +- AC_CHECK_FUNCS([vsscanf]) +- AC_CHECK_FUNCS([vsprintf]) +- AC_CHECK_FUNCS([vasprintf]) +- AC_CHECK_FUNCS([vsnprintf],[],[ +- AC_CHECK_FUNC([_vsnprintf],[ +- AC_DEFINE(vsnprintf,_vsnprintf,[define if the vsnprintf function is mangled]) +- AC_DEFINE(HAVE_VSNPRINTF,1) +- ]) +- ]) ++ ETL_PROFILE(ETL/etl_profile.h) ++ ++ # Common mandatory ++ AC_CHECK_HEADERS(sys/time.h, [], ++ AC_MSG_ERROR([sys/time.h is needed])) ++ AC_CHECK_HEADERS(unistd.h, [], ++ AC_MSG_ERROR([unistd.h is needed])) ++ ++ # Mandatory on Windows ++ if echo $host |grep -q win; then ++ AC_CHECK_LIB(user32, main, ++ AC_MSG_ERROR([user32 is needed])) ++ AC_CHECK_LIB(kernel32, main, ++ AC_MSG_ERROR([kernel32 is needed])) ++ AC_CHECK_HEADERS(windows.h, ++ AC_MSG_ERROR([windows.h is needed])) ++ AC_CHECK_FUNCS([QueryPerformanceCounter], ++ AC_MSG_ERROR([QueryPerformanceCounter is needed])) ++ fi ++ ++ # Optional ++ ETL_CHECK_HEADER(sched.h) ++ ETL_CHECK_HEADER(pthread.h) ++ ETL_CHECK_LIB(pthread, main) ++ ETL_CHECK_FUNC([pthread_create]) ++ ETL_CHECK_FUNC([pthread_rwlock_init]) ++ ETL_CHECK_FUNC([CreateThread]) ++ ETL_CHECK_FUNC([gettimeofday]) ++ ETL_CHECK_FUNC([sscanf]) ++ ETL_CHECK_FUNC([vsscanf]) ++ ETL_CHECK_FUNC([vasprintf]) ++ ETL_CHECK_FUNC([vsnprintf]) ++ ETL_CHECK_FUNC([_vsnprintf]) + ]) + + AC_DEFUN([USING_ETL], +diff -urp ETL-0.04.12.orig/Makefile.am ETL-0.04.12/Makefile.am +--- ETL-0.04.12.orig/Makefile.am 2008-02-03 02:38:12.000000000 +0100 ++++ ETL-0.04.12/Makefile.am 2009-01-09 16:00:42.000000000 +0100 +@@ -1,6 +1,6 @@ + # $Id: ETL-0.04.12-build.patch,v 1.1 2009/03/01 10:44:41 lkundrak Exp $ + +-MAINTAINERCLEANFILES=COPYING INSTALL config/config.guess config/config.sub config/ltmain.sh config/install-sh config/mkinstalldirs config/aclocal.m4 config/missing config/texinfo.tex config/depcomp aclocal.m4 config.h.in configure stamp-h.in Makefile.in config.log config.status .doc_stamp .DS_Store include/etl_profile.h.in doxygen.cfg ++MAINTAINERCLEANFILES=COPYING INSTALL config/config.guess config/config.sub config/ltmain.sh config/install-sh config/mkinstalldirs config/aclocal.m4 config/missing config/texinfo.tex config/depcomp aclocal.m4 config.h.in configure stamp-h.in Makefile.in config.log config.status .doc_stamp .DS_Store doxygen.cfg + + SUBDIRS=ETL test + +@@ -14,7 +14,7 @@ aclocaldir = $(prefix)/share/aclocal + + ACLOCAL_AMFLAGS = -I m4 + +-EXTRA_DIST=COPYING m4/subs.m4 config/depcomp m4/cxx_macros.m4 ETL.pbproj/project.pbxproj ETL.pbproj/etl_profile.h ETL.pbproj/frameworkfix.cpp ETL-config.in m4/ETL.m4 doxygen.cfg.in doxygen.cfg ETL.pc.in ++EXTRA_DIST=COPYING m4/subs.m4 config/depcomp m4/cxx_macros.m4 ETL.pbproj/project.pbxproj ETL.pbproj/frameworkfix.cpp ETL-config.in m4/ETL.m4 doxygen.cfg.in doxygen.cfg ETL.pc.in + + CVS=cvs + SVN=svn diff --git a/ETL.spec b/ETL.spec new file mode 100644 index 0000000..e0fe8ce --- /dev/null +++ b/ETL.spec @@ -0,0 +1,95 @@ +%define debug_package %{nil} + +Name: ETL +Version: 0.04.12 +Release: 1%{?dist} +Summary: Extended Template Library + +Group: Development/Libraries +License: GPLv2+ +URL: http://synfig.org +Source0: http://downloads.sourceforge.net/synfig/ETL-%{version}.tar.gz +Patch0: ETL-0.04.12-build.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +Buildrequires: doxygen +Buildrequires: autoconf automake +Requires: pkgconfig + +%description +Voria ETL is a multi-platform class and template library designed to add +new datatypes and functions which combine well with the existing +types and functions from the C++ Standard Template Library (STL). + + +%package devel +Summary: Development files for %{name} +Group: Development/Libraries + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + + +%prep +%setup -q +%patch0 -p1 -b .build +autoreconf + + +%build +%configure +make %{?_smp_mflags} all docs + + +%install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p" +touch -r ChangeLog $RPM_BUILD_ROOT%{_bindir}/ETL-config +touch -r ChangeLog $RPM_BUILD_ROOT%{_includedir}/ETL/etl_profile.h + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%check +make check + + +%files devel +%defattr(-,root,root,-) +%doc README COPYING AUTHORS NEWS +%{_includedir}/ETL/ +%{_bindir}/ETL-config +%{_libdir}/pkgconfig/ETL.pc + + +%changelog +* Fri Jan 9 2009 Lubomir Rintel 0.04.12-1 +- New upstream release +- Run regression tests +- Build documentation +- Fix BRs + +* Tue May 6 2008 Marc Wiriadisastra - 0.4.11-4 +- Removed some requires and buildrequires to clean stuff up. + +* Thu May 1 2008 Marc Wiriadisastra - 0.4.11-3 +- Added the lines for timestamp consistency + +* Fri Mar 7 2008 Marc Wiriadisastra - 0.4.11-2 +- Added patch to clean up etl-profile_.in +- renamed package to ETL as requested by ralf + +* Thu Mar 6 2008 Marc Wiriadisastra - 0.4.11-1 +- Removed patches +- New version + +* Sun Feb 3 2008 Marc Wiriadisastra - 0.04-10-3 +- Added backported patch adding + +* Thu Jan 24 2008 Marc Wiriadisastra - 0.04-10-2 +- Included Ralfs patch for ETL-config + +* Sat Jan 12 2008 Marc Wiriadisastra - 0.04.10-1 +- new release diff --git a/sources b/sources index e69de29..afbcb7d 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +4cd7fb673fa5c77cfa1986aeecdb3ffe ETL-0.04.12.tar.gz