diff -Nru quickfix-1.13.3+dfsg/debian/changelog quickfix-1.13.3+dfsg/debian/changelog --- quickfix-1.13.3+dfsg/debian/changelog 2014-03-05 19:19:23.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/changelog 2014-04-09 17:24:41.000000000 +0000 @@ -1,3 +1,18 @@ +quickfix (1.13.3+dfsg-8ubuntu1) trusty; urgency=medium + + * Merge from Debian unstable. Remaining changes: + - Use autotools-dev dh helper instead of manually copying + config.{sub,guess} to fix FTBFS on arm64. + + -- Logan Rosen Wed, 09 Apr 2014 13:24:18 -0400 + +quickfix (1.13.3+dfsg-8) unstable; urgency=low + + * Standardize patch names and number patches + * Fix FTBFS: explicitly use -pthread when building on kfreebsd-* + + -- Roberto C. Sanchez Mon, 31 Mar 2014 10:02:48 -0400 + quickfix (1.13.3+dfsg-7ubuntu1) trusty; urgency=medium * Use autotools-dev dh helper instead of manually copying config.{sub,guess} diff -Nru quickfix-1.13.3+dfsg/debian/patches/01_uninitialized_v2.patch quickfix-1.13.3+dfsg/debian/patches/01_uninitialized_v2.patch --- quickfix-1.13.3+dfsg/debian/patches/01_uninitialized_v2.patch 1970-01-01 00:00:00.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/01_uninitialized_v2.patch 2014-04-09 17:23:49.000000000 +0000 @@ -0,0 +1,20 @@ +Description: Initialize uninitialized things. +Author: Athena Capital Research +--- trunk.orig/src/C++/Initiator.cpp ++++ trunk/src/C++/Initiator.cpp +@@ -43,6 +43,7 @@ + m_settings( settings ), + m_pLogFactory( 0 ), + m_pLog( 0 ), ++ m_firstPoll( true ), + m_stop( true ) + { initialize(); } + +@@ -56,6 +57,7 @@ + m_settings( settings ), + m_pLogFactory( &logFactory ), + m_pLog( logFactory.create() ), ++ m_firstPoll( true ), + m_stop( true ) + { initialize(); } + diff -Nru quickfix-1.13.3+dfsg/debian/patches/02_src_fieldbase_calculate.patch quickfix-1.13.3+dfsg/debian/patches/02_src_fieldbase_calculate.patch --- quickfix-1.13.3+dfsg/debian/patches/02_src_fieldbase_calculate.patch 1970-01-01 00:00:00.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/02_src_fieldbase_calculate.patch 2014-04-09 17:23:49.000000000 +0000 @@ -0,0 +1,105 @@ +Description: Fix fieldbase calculation. +Author: Athena Capital Research +--- trunk.orig/src/C++/Field.h ++++ trunk/src/C++/Field.h +@@ -27,6 +27,7 @@ + #endif + + #include ++#include + #include + #include "FieldNumbers.h" + #include "FieldConvertors.h" +@@ -47,7 +48,7 @@ + friend class Message; + public: + FieldBase( int field, const std::string& string ) +- : m_field( field ), m_string(string), m_length( 0 ), m_total( 0 ), ++ : m_field( field ), m_string(string), + m_calculated( false ) + {} + +@@ -57,6 +58,7 @@ + { + m_field = field; + m_calculated = false; ++ m_data.clear(); // dirty + } + + void setString( const std::string& string ) +@@ -84,13 +86,13 @@ + int getLength() const + { + calculate(); +- return m_length; ++ return m_data.length(); + } + + /// Get the total value the fields characters added together + int getTotal() const + { +- calculate(); ++ sum(); + return m_total; + } + +@@ -103,33 +105,46 @@ + { + if( m_calculated ) return; + +- char buf[64]; ++ m_total = -1; // dirty + +- if( 13 + m_string.length() < sizeof(buf) ) ++ if( m_data.empty() ) + { +- int tagLength = STRING_SPRINTF( buf, "%d=", m_field ); +- m_length = tagLength + m_string.length() + 1; +- memcpy( buf + tagLength, m_string.data(), m_string.length() ); +- buf[m_length - 1] = '\001'; +- m_data.assign( buf, m_length ); ++ // buffer is big enough for significant digits and extra digit, ++ // minus and equals (but no null) ++ char buf[std::numeric_limits::digits10 + 3]; ++ char* p = integer_to_string( buf, sizeof (buf), m_field ); ++ buf[sizeof (buf) - 1] = '='; ++ ++ m_tagLength = buf + sizeof (buf) - p; ++ m_data.resize( m_tagLength + m_string.length() + 1 ); ++ std::copy( p, p + m_tagLength, m_data.begin() ); + } + else + { +- m_data = IntConvertor::convert(m_field) + "=" + m_string + "\001"; +- m_length = m_data.length(); ++ m_data.resize( m_tagLength + m_string.length() + 1 ); + } + +- const unsigned char* iter = +- reinterpret_cast( m_data.c_str() ); +- m_total = std::accumulate( iter, iter + m_length, 0 ); ++ std::copy( m_string.begin(), m_string.end(), m_data.begin() + m_tagLength ); ++ m_data[m_data.length() - 1] = '\001'; + + m_calculated = true; + } + ++ void sum() const ++ { ++ calculate(); ++ ++ if( m_total != -1 ) return; ++ ++ const unsigned char* iter = ++ reinterpret_cast( m_data.c_str() ); ++ m_total = std::accumulate( iter, iter + m_data.length(), 0 ); ++ } ++ + int m_field; + std::string m_string; + mutable std::string m_data; +- mutable int m_length; ++ mutable int m_tagLength; + mutable int m_total; + mutable bool m_calculated; + }; diff -Nru quickfix-1.13.3+dfsg/debian/patches/03_src_heartbeat.patch quickfix-1.13.3+dfsg/debian/patches/03_src_heartbeat.patch --- quickfix-1.13.3+dfsg/debian/patches/03_src_heartbeat.patch 1970-01-01 00:00:00.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/03_src_heartbeat.patch 2014-04-09 17:23:49.000000000 +0000 @@ -0,0 +1,13 @@ +Description: Add heartbeat object access. +Author: Athena Capital Research +--- trunk.orig/src/C++/Session.h ++++ trunk/src/C++/Session.h +@@ -207,6 +207,8 @@ + Log* getLog() { return &m_state; } + const MessageStore* getStore() { return &m_state; } + ++ const HeartBtInt& getHeartBtInt() const { return m_state.heartBtInt(); } ++ + private: + typedef std::map < SessionID, Session* > Sessions; + typedef std::set < SessionID > SessionIDs; diff -Nru quickfix-1.13.3+dfsg/debian/patches/04_ruby_site_packages.patch quickfix-1.13.3+dfsg/debian/patches/04_ruby_site_packages.patch --- quickfix-1.13.3+dfsg/debian/patches/04_ruby_site_packages.patch 1970-01-01 00:00:00.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/04_ruby_site_packages.patch 2014-04-09 17:23:49.000000000 +0000 @@ -0,0 +1,104 @@ +Description: Change installation location of Ruby site packages. +Author: Roberto C. Sanchez +--- trunk.orig/configure ++++ trunk/configure +@@ -15015,7 +15015,7 @@ + then + RUBY_CFLAGS="-I${RUBY_PREFIX}" + +- RUBY_SITE_PACKAGES=`ruby -e 'require "rbconfig"; print Config::CONFIG["sitedir"], "\n"'` ++ RUBY_SITE_PACKAGES=`ruby -e 'require "rbconfig"; print Config::CONFIG["libdir"], "\n"'` + + + $as_echo "#define HAVE_RUBY 1" >>confdefs.h +--- trunk.orig/configure.in ++++ trunk/configure.in +@@ -176,7 +176,7 @@ + then + RUBY_CFLAGS="-I${RUBY_PREFIX}" + AC_SUBST(RUBY_CFLAGS) +- RUBY_SITE_PACKAGES=[`ruby -e 'require "rbconfig"; print Config::CONFIG["sitedir"], "\n"'`] ++ RUBY_SITE_PACKAGES=[`ruby -e 'require "rbconfig"; print Config::CONFIG["libdir"], "\n"'`] + AC_SUBST(RUBY_SITE_PACKAGES) + AC_DEFINE(HAVE_RUBY, 1, Define if you have ruby) + fi +--- trunk.orig/src/ruby/Makefile.am ++++ trunk/src/ruby/Makefile.am +@@ -2,34 +2,13 @@ + + all-local: + bash ./make_ruby.sh $(CXX) $(CXXFLAGS) $(LIBS) +- mkdir -p $(top_builddir)/lib/ruby +- ln -sf ../../src/ruby/quickfix_ruby.rb $(top_builddir)/lib/ruby/quickfix_ruby.rb +- ln -sf ../../src/ruby/quickfix_fields.rb $(top_builddir)/lib/ruby/quickfix_fields.rb +- ln -sf ../../src/ruby/quickfix40.rb $(top_builddir)/lib/ruby/quickfix40.rb +- ln -sf ../../src/ruby/quickfix41.rb $(top_builddir)/lib/ruby/quickfix41.rb +- ln -sf ../../src/ruby/quickfix42.rb $(top_builddir)/lib/ruby/quickfix42.rb +- ln -sf ../../src/ruby/quickfix43.rb $(top_builddir)/lib/ruby/quickfix43.rb +- ln -sf ../../src/ruby/quickfix44.rb $(top_builddir)/lib/ruby/quickfix44.rb +- ln -sf ../../src/ruby/quickfix50.rb $(top_builddir)/lib/ruby/quickfix50.rb +- ln -sf ../../src/ruby/quickfix50sp1.rb $(top_builddir)/lib/ruby/quickfix50sp1.rb +- ln -sf ../../src/ruby/quickfix50sp2.rb $(top_builddir)/lib/ruby/quickfix50sp2.rb +- ln -sf ../../src/ruby/quickfixt11.rb $(top_builddir)/lib/ruby/quickfixt11.rb +- ln -sf ../../src/ruby/quickfix.so $(top_builddir)/lib/ruby/quickfix.so +- ln -sf ../../src/ruby/quickfix.bundle $(top_builddir)/lib/ruby/quickfix.bundle +- +- bash ./link.sh $(top_builddir)/lib/ruby quickfix.so quickfix.bundle + + clean-local: + make -f Makefile.ruby clean +- rm -rf $(top_builddir)/lib/ruby + + install-exec-local: +- cp -f $(top_builddir)/lib/ruby/*.rb $(RUBY_SITE_PACKAGES) +- cp -f $(top_builddir)/lib/ruby/quickfix.so $(RUBY_SITE_PACKAGES) +- cp -f $(top_builddir)/lib/ruby/quickfix.bundle $(RUBY_SITE_PACKAGES) ++ make -f Makefile.ruby install + + uninstall-local: +- rm -rf $(RUBY_SITE_PACKAGES)/quickfix*.rb +- rm -rf $(RUBY_SITE_PACKAGES)/quickfix*.so +- rm -rf $(RUBY_SITE_PACKAGES)/quickfix.bundle ++ make -f Makefile.ruby install + +--- trunk.orig/src/ruby/Makefile.in ++++ trunk/src/ruby/Makefile.in +@@ -426,36 +426,15 @@ + + all-local: + bash ./make_ruby.sh $(CXX) $(CXXFLAGS) $(LIBS) +- mkdir -p $(top_builddir)/lib/ruby +- ln -sf ../../src/ruby/quickfix_ruby.rb $(top_builddir)/lib/ruby/quickfix_ruby.rb +- ln -sf ../../src/ruby/quickfix_fields.rb $(top_builddir)/lib/ruby/quickfix_fields.rb +- ln -sf ../../src/ruby/quickfix40.rb $(top_builddir)/lib/ruby/quickfix40.rb +- ln -sf ../../src/ruby/quickfix41.rb $(top_builddir)/lib/ruby/quickfix41.rb +- ln -sf ../../src/ruby/quickfix42.rb $(top_builddir)/lib/ruby/quickfix42.rb +- ln -sf ../../src/ruby/quickfix43.rb $(top_builddir)/lib/ruby/quickfix43.rb +- ln -sf ../../src/ruby/quickfix44.rb $(top_builddir)/lib/ruby/quickfix44.rb +- ln -sf ../../src/ruby/quickfix50.rb $(top_builddir)/lib/ruby/quickfix50.rb +- ln -sf ../../src/ruby/quickfix50sp1.rb $(top_builddir)/lib/ruby/quickfix50sp1.rb +- ln -sf ../../src/ruby/quickfix50sp2.rb $(top_builddir)/lib/ruby/quickfix50sp2.rb +- ln -sf ../../src/ruby/quickfixt11.rb $(top_builddir)/lib/ruby/quickfixt11.rb +- ln -sf ../../src/ruby/quickfix.so $(top_builddir)/lib/ruby/quickfix.so +- ln -sf ../../src/ruby/quickfix.bundle $(top_builddir)/lib/ruby/quickfix.bundle +- +- bash ./link.sh $(top_builddir)/lib/ruby quickfix.so quickfix.bundle + + clean-local: + make -f Makefile.ruby clean +- rm -rf $(top_builddir)/lib/ruby + + install-exec-local: +- cp -f $(top_builddir)/lib/ruby/*.rb $(RUBY_SITE_PACKAGES) +- cp -f $(top_builddir)/lib/ruby/quickfix.so $(RUBY_SITE_PACKAGES) +- cp -f $(top_builddir)/lib/ruby/quickfix.bundle $(RUBY_SITE_PACKAGES) ++ make -f Makefile.ruby install + + uninstall-local: +- rm -rf $(RUBY_SITE_PACKAGES)/quickfix*.rb +- rm -rf $(RUBY_SITE_PACKAGES)/quickfix*.so +- rm -rf $(RUBY_SITE_PACKAGES)/quickfix.bundle ++ make -f Makefile.ruby install + + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru quickfix-1.13.3+dfsg/debian/patches/05_ruby_hardcode_lower_optimization.patch quickfix-1.13.3+dfsg/debian/patches/05_ruby_hardcode_lower_optimization.patch --- quickfix-1.13.3+dfsg/debian/patches/05_ruby_hardcode_lower_optimization.patch 1970-01-01 00:00:00.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/05_ruby_hardcode_lower_optimization.patch 2014-04-09 17:23:49.000000000 +0000 @@ -0,0 +1,18 @@ +Decription: Force a lower level of optimization on the build of the Ruby module. +Author: Roberto C. Sanchez +--- quickfix.hg.orig/src/ruby/make_ruby.sh ++++ quickfix.hg/src/ruby/make_ruby.sh +@@ -1,5 +1,5 @@ + export CXX=$1 +-export CXXFLAGS=$2 ++export CXXFLAGS="-O2" + export LIBS=$3 + + rm -rf ../temp +@@ -13,4 +13,4 @@ + cp ../temp/Makefile Makefile.ruby + rm -rf ../temp + +-make -f Makefile.ruby +\ No newline at end of file ++make -f Makefile.ruby diff -Nru quickfix-1.13.3+dfsg/debian/patches/06_build_system_cleanup.patch quickfix-1.13.3+dfsg/debian/patches/06_build_system_cleanup.patch --- quickfix-1.13.3+dfsg/debian/patches/06_build_system_cleanup.patch 1970-01-01 00:00:00.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/06_build_system_cleanup.patch 2014-04-09 17:23:49.000000000 +0000 @@ -0,0 +1,122 @@ +Description: Clean up brain damage in the build system. +Author: Roberto C. Sanchez +--- trunk.orig/examples/ordermatch/test/Makefile.am ++++ trunk/examples/ordermatch/test/Makefile.am +@@ -1,5 +1,5 @@ + CFLAGS += -O0 -g +-CXXFLAGS += -O0 -g ++AM_CXXFLAGS = -O0 -g + + noinst_PROGRAMS = ordermatch_ut + +@@ -11,4 +11,4 @@ + ordermatch_ut_LDADD = -L$(top_builddir)/src/C++ -lquickfix + + INCLUDES = -I$(top_builddir)/include -I.. -I../../../UnitTest++/src +-LDFLAGS = -L../../../UnitTest++ -lUnitTest++ +\ No newline at end of file ++AM_LDFLAGS = -L../../../UnitTest++ -lUnitTest++ +--- trunk.orig/src/C++/test/Makefile.am ++++ trunk/src/C++/test/Makefile.am +@@ -1,5 +1,5 @@ + CFLAGS += -O0 -g +-CXXFLAGS += -O0 -g ++AM_CXXFLAGS = -O0 -g + + noinst_LTLIBRARIES = libquickfixcpptest.la + +--- trunk.orig/src/Makefile.am ++++ trunk/src/Makefile.am +@@ -21,7 +21,7 @@ + pt_LDADD = C++/libquickfix.la + + INCLUDES =-IC++ -IC++/test -I../UnitTest++/src +-LDFLAGS =-L../UnitTest++ -lUnitTest++ ++AM_LDFLAGS =-L../UnitTest++ -lUnitTest++ + + all-local: + rm -f ../test/ut ../test/pt ../test/at ../test/ut_debug +--- trunk.orig/src/python/Makefile.am ++++ trunk/src/python/Makefile.am +@@ -25,35 +25,10 @@ + rm -rf $(top_builddir)/lib/python + + install-exec-local: +- rm -rf $(PYTHON_SITE_PACKAGES)/python/_quickfix.so +- rm -rf $(PYTHON_SITE_PACKAGES)/python/_quickfix.dylib +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix40.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix41.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix42.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix43.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix44.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix50.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix50sp1.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix50sp2.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfixt11.py +- ln -sf $(prefix)/lib/python/_quickfix.so $(PYTHON_SITE_PACKAGES)/_quickfix.so +- ln -sf $(prefix)/lib/python/_quickfix.dylib $(PYTHON_SITE_PACKAGES)/_quickfix.dylib +- cp $(top_builddir)/lib/python/*.py $(PYTHON_SITE_PACKAGES) +- +-uninstall-local: +- rm -rf $(PYTHON_SITE_PACKAGES)/_quickfix.so +- rm -rf $(PYTHON_SITE_PACKAGES)/_quickfix.dylib +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix40.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix41.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix42.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix43.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix44.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix50.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix50sp1.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix50sp2.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfixt11.py ++ mkdir -p $(DESTDIR)$(PYTHON_SITE_PACKAGES) ++ ln -sf $(prefix)/lib/python/_quickfix.so $(DESTDIR)$(PYTHON_SITE_PACKAGES)/_quickfix.so ++ ln -sf $(prefix)/lib/python/_quickfix.dylib $(DESTDIR)$(PYTHON_SITE_PACKAGES)/_quickfix.dylib ++ cp $(top_builddir)/lib/python/*.py $(DESTDIR)$(PYTHON_SITE_PACKAGES) + + libquickfix_python_la_LDFLAGS = -version-info 10:0:0 + libquickfix_python_la_LIBADD = $(top_builddir)/src/C++/libquickfix.la +--- trunk.orig/src/python/Makefile.in ++++ trunk/src/python/Makefile.in +@@ -594,35 +594,10 @@ + rm -rf $(top_builddir)/lib/python + + install-exec-local: +- rm -rf $(PYTHON_SITE_PACKAGES)/python/_quickfix.so +- rm -rf $(PYTHON_SITE_PACKAGES)/python/_quickfix.dylib +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix40.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix41.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix42.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix43.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix44.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix50.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix50sp1.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix50sp2.py +- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfixt11.py +- ln -sf $(prefix)/lib/python/_quickfix.so $(PYTHON_SITE_PACKAGES)/_quickfix.so +- ln -sf $(prefix)/lib/python/_quickfix.dylib $(PYTHON_SITE_PACKAGES)/_quickfix.dylib +- cp $(top_builddir)/lib/python/*.py $(PYTHON_SITE_PACKAGES) +- +-uninstall-local: +- rm -rf $(PYTHON_SITE_PACKAGES)/_quickfix.so +- rm -rf $(PYTHON_SITE_PACKAGES)/_quickfix.dylib +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix40.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix41.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix42.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix43.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix44.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix50.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix50sp1.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix50sp2.py +- rm -rf $(PYTHON_SITE_PACKAGES)/quickfixt11.py ++ mkdir -p $(DESTDIR)$(PYTHON_SITE_PACKAGES) ++ ln -sf $(prefix)/lib/python/_quickfix.so $(DESTDIR)$(PYTHON_SITE_PACKAGES)/_quickfix.so ++ ln -sf $(prefix)/lib/python/_quickfix.dylib $(DESTDIR)$(PYTHON_SITE_PACKAGES)/_quickfix.dylib ++ cp $(top_builddir)/lib/python/*.py $(DESTDIR)$(PYTHON_SITE_PACKAGES) + + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru quickfix-1.13.3+dfsg/debian/patches/07_stdlib.patch quickfix-1.13.3+dfsg/debian/patches/07_stdlib.patch --- quickfix-1.13.3+dfsg/debian/patches/07_stdlib.patch 1970-01-01 00:00:00.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/07_stdlib.patch 2014-04-09 17:23:49.000000000 +0000 @@ -0,0 +1,12 @@ +Description: Add missing standard header include. +Author: Roberto C. Sanchez +--- trunk.orig/src/C++/Utility.h ++++ trunk/src/C++/Utility.h +@@ -91,6 +91,7 @@ + #include + #include + #include ++#include + + namespace FIX + { diff -Nru quickfix-1.13.3+dfsg/debian/patches/08_test_runner_bad_virtual_method_arg.patch quickfix-1.13.3+dfsg/debian/patches/08_test_runner_bad_virtual_method_arg.patch --- quickfix-1.13.3+dfsg/debian/patches/08_test_runner_bad_virtual_method_arg.patch 1970-01-01 00:00:00.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/08_test_runner_bad_virtual_method_arg.patch 2014-04-09 17:23:49.000000000 +0000 @@ -0,0 +1,21 @@ +Description: Fix bad method virtual argument (Closes: #648257) +Author: Johan Euphrosine (proppy) +--- quickfix.hg.orig/UnitTest++/src/tests/TestTestRunner.cpp ++++ quickfix.hg/UnitTest++/src/tests/TestTestRunner.cpp +@@ -20,14 +20,14 @@ + { + } + +- virtual void RunImpl(TestResults& testResults_) const ++ virtual void RunImpl() const + { + for (int i=0; i < count; ++i) + { + if (asserted) + ReportAssert("desc", "file", 0); + else if (!success) +- testResults_.OnTestFailure(m_details, "message"); ++ CurrentTest::Results()->OnTestFailure(m_details, "message"); + } + } + diff -Nru quickfix-1.13.3+dfsg/debian/patches/09_error_string_format.patch quickfix-1.13.3+dfsg/debian/patches/09_error_string_format.patch --- quickfix-1.13.3+dfsg/debian/patches/09_error_string_format.patch 1970-01-01 00:00:00.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/09_error_string_format.patch 2014-04-09 17:23:49.000000000 +0000 @@ -0,0 +1,13 @@ +Decription: Correct an error resulting from an insecure call to PyErr_Format +Author: Roberto C. Sanchez +--- quickfix.hg.orig/src/python/QuickfixPython.cpp ++++ quickfix.hg/src/python/QuickfixPython.cpp +@@ -869,7 +869,7 @@ + Py_DECREF(old_str); + Py_DECREF(value); + } else { +- PyErr_Format(PyExc_RuntimeError, mesg); ++ PyErr_Format(PyExc_RuntimeError, "%s", mesg); + } + } + diff -Nru quickfix-1.13.3+dfsg/debian/patches/10_STR2CSTR_replace.patch quickfix-1.13.3+dfsg/debian/patches/10_STR2CSTR_replace.patch --- quickfix-1.13.3+dfsg/debian/patches/10_STR2CSTR_replace.patch 1970-01-01 00:00:00.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/10_STR2CSTR_replace.patch 2014-04-09 17:23:49.000000000 +0000 @@ -0,0 +1,114 @@ +Decription: Replace calls to the deprecated STR2CSTR +Author: Roberto C. Sanchez +--- quickfix.hg.orig/src/quickfix.i ++++ quickfix.hg/src/quickfix.i +@@ -126,7 +126,7 @@ + + #ifdef SWIGRUBY + %typemap(in) std::string& (std::string temp) { +- temp = std::string((char*)STR2CSTR($input)); ++ temp = std::string((char*)StringValuePtr($input)); + $1 = &temp; + } + +--- quickfix.hg.orig/src/ruby/QuickfixRuby.cpp ++++ quickfix.hg/src/ruby/QuickfixRuby.cpp +@@ -3975,7 +3975,7 @@ + + + +- char *cstr = STR2CSTR(obj); ++ char *cstr = StringValuePtr(obj); + + size_t size = RSTRING_LEN(obj) + 1; + if (cptr) { +@@ -14843,7 +14843,7 @@ + } + arg1 = reinterpret_cast< FIX::FieldMap * >(argp1); + { +- temp2 = std::string((char*)STR2CSTR(argv[0])); ++ temp2 = std::string((char*)StringValuePtr(argv[0])); + arg2 = &temp2; + } + ecode3 = SWIG_AsVal_bool(argv[1], &val3); +@@ -14888,7 +14888,7 @@ + } + arg1 = reinterpret_cast< FIX::FieldMap * >(argp1); + { +- temp2 = std::string((char*)STR2CSTR(argv[0])); ++ temp2 = std::string((char*)StringValuePtr(argv[0])); + arg2 = &temp2; + } + { +@@ -16521,7 +16521,7 @@ + } + arg1 = reinterpret_cast< FIX::Message * >(argp1); + { +- temp2 = std::string((char*)STR2CSTR(argv[0])); ++ temp2 = std::string((char*)StringValuePtr(argv[0])); + arg2 = &temp2; + } + ecode3 = SWIG_AsVal_int(argv[1], &val3); +@@ -16582,7 +16582,7 @@ + } + arg1 = reinterpret_cast< FIX::Message * >(argp1); + { +- temp2 = std::string((char*)STR2CSTR(argv[0])); ++ temp2 = std::string((char*)StringValuePtr(argv[0])); + arg2 = &temp2; + } + ecode3 = SWIG_AsVal_int(argv[1], &val3); +@@ -16635,7 +16635,7 @@ + } + arg1 = reinterpret_cast< FIX::Message * >(argp1); + { +- temp2 = std::string((char*)STR2CSTR(argv[0])); ++ temp2 = std::string((char*)StringValuePtr(argv[0])); + arg2 = &temp2; + } + ecode3 = SWIG_AsVal_int(argv[1], &val3); +@@ -16680,7 +16680,7 @@ + } + arg1 = reinterpret_cast< FIX::Message * >(argp1); + { +- temp2 = std::string((char*)STR2CSTR(argv[0])); ++ temp2 = std::string((char*)StringValuePtr(argv[0])); + arg2 = &temp2; + } + { +@@ -16926,7 +16926,7 @@ + } + arg1 = reinterpret_cast< FIX::Message * >(argp1); + { +- temp2 = std::string((char*)STR2CSTR(argv[0])); ++ temp2 = std::string((char*)StringValuePtr(argv[0])); + arg2 = &temp2; + } + { +@@ -221534,7 +221534,7 @@ + } + arg1 = reinterpret_cast< FIX::SessionID * >(argp1); + { +- temp2 = std::string((char*)STR2CSTR(argv[0])); ++ temp2 = std::string((char*)StringValuePtr(argv[0])); + arg2 = &temp2; + } + { +@@ -234994,7 +234994,7 @@ + } + arg2 = static_cast< int >(val2); + { +- temp3 = std::string((char*)STR2CSTR(argv[1])); ++ temp3 = std::string((char*)StringValuePtr(argv[1])); + arg3 = &temp3; + } + result = (bool)((FIX::DataDictionary const *)arg1)->getFieldName(arg2,*arg3); +@@ -235172,7 +235172,7 @@ + arg3 = ptr; + } + { +- temp4 = std::string((char*)STR2CSTR(argv[2])); ++ temp4 = std::string((char*)StringValuePtr(argv[2])); + arg4 = &temp4; + } + result = (bool)((FIX::DataDictionary const *)arg1)->getValueName(arg2,(std::string const &)*arg3,*arg4); diff -Nru quickfix-1.13.3+dfsg/debian/patches/11_RSTRING_update.patch quickfix-1.13.3+dfsg/debian/patches/11_RSTRING_update.patch --- quickfix-1.13.3+dfsg/debian/patches/11_RSTRING_update.patch 1970-01-01 00:00:00.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/11_RSTRING_update.patch 2014-04-09 17:23:49.000000000 +0000 @@ -0,0 +1,67 @@ +Decription: Replace calls to the deprecated RSTRING(foo)->ptr +Author: Roberto C. Sanchez +--- quickfix.hg.orig/src/ruby/QuickfixRuby.cpp ++++ quickfix.hg/src/ruby/QuickfixRuby.cpp +@@ -4267,7 +4267,7 @@ + if (Application_onCreate_call_depth == 1) { + if( error != 0 ) { + VALUE message = rb_obj_as_string( error ); +- printf( "%s\n", RSTRING(message)->ptr ); ++ printf( "%s\n", RSTRING_PTR(message) ); + exit(1); + } + +@@ -4300,7 +4300,7 @@ + if (Application_onLogon_call_depth == 1) { + if( error != 0 ) { + VALUE message = rb_obj_as_string( error ); +- printf( "%s\n", RSTRING(message)->ptr ); ++ printf( "%s\n", RSTRING_PTR(message) ); + exit(1); + } + +@@ -4333,7 +4333,7 @@ + if (Application_onLogout_call_depth == 1) { + if( error != 0 ) { + VALUE message = rb_obj_as_string( error ); +- printf( "%s\n", RSTRING(message)->ptr ); ++ printf( "%s\n", RSTRING_PTR(message) ); + exit(1); + } + +@@ -4366,7 +4366,7 @@ + if (Application_toAdmin_call_depth == 1) { + if( error != 0 ) { + VALUE message = rb_obj_as_string( error ); +- printf( "%s\n", RSTRING(message)->ptr ); ++ printf( "%s\n", RSTRING_PTR(message) ); + exit(1); + } + +@@ -4406,7 +4406,7 @@ + throw *((FIX::DoNotSend*)result); + } else { + VALUE message = rb_obj_as_string( error ); +- printf( "%s\n", RSTRING(message)->ptr ); ++ printf( "%s\n", RSTRING_PTR(message) ); + exit(1); + } + } +@@ -4473,7 +4473,7 @@ + throw *((FIX::RejectLogon*)result); + } else { + VALUE message = rb_obj_as_string( error ); +- printf( "%s\n", RSTRING(message)->ptr ); ++ printf( "%s\n", RSTRING_PTR(message) ); + exit(1); + } + } +@@ -4546,7 +4546,7 @@ + throw *((FIX::UnsupportedMessageType*)result); + } else { + VALUE message = rb_obj_as_string( error ); +- printf( "%s\n", RSTRING(message)->ptr ); ++ printf( "%s\n", RSTRING_PTR(message) ); + exit(1); + } + } diff -Nru quickfix-1.13.3+dfsg/debian/patches/build_system_cleanup.patch quickfix-1.13.3+dfsg/debian/patches/build_system_cleanup.patch --- quickfix-1.13.3+dfsg/debian/patches/build_system_cleanup.patch 2013-07-07 00:10:45.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/build_system_cleanup.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,122 +0,0 @@ -Description: Clean up brain damage in the build system. -Author: Roberto C. Sanchez ---- trunk.orig/examples/ordermatch/test/Makefile.am -+++ trunk/examples/ordermatch/test/Makefile.am -@@ -1,5 +1,5 @@ - CFLAGS += -O0 -g --CXXFLAGS += -O0 -g -+AM_CXXFLAGS = -O0 -g - - noinst_PROGRAMS = ordermatch_ut - -@@ -11,4 +11,4 @@ - ordermatch_ut_LDADD = -L$(top_builddir)/src/C++ -lquickfix - - INCLUDES = -I$(top_builddir)/include -I.. -I../../../UnitTest++/src --LDFLAGS = -L../../../UnitTest++ -lUnitTest++ -\ No newline at end of file -+AM_LDFLAGS = -L../../../UnitTest++ -lUnitTest++ ---- trunk.orig/src/C++/test/Makefile.am -+++ trunk/src/C++/test/Makefile.am -@@ -1,5 +1,5 @@ - CFLAGS += -O0 -g --CXXFLAGS += -O0 -g -+AM_CXXFLAGS = -O0 -g - - noinst_LTLIBRARIES = libquickfixcpptest.la - ---- trunk.orig/src/Makefile.am -+++ trunk/src/Makefile.am -@@ -21,7 +21,7 @@ - pt_LDADD = C++/libquickfix.la - - INCLUDES =-IC++ -IC++/test -I../UnitTest++/src --LDFLAGS =-L../UnitTest++ -lUnitTest++ -+AM_LDFLAGS =-L../UnitTest++ -lUnitTest++ - - all-local: - rm -f ../test/ut ../test/pt ../test/at ../test/ut_debug ---- trunk.orig/src/python/Makefile.am -+++ trunk/src/python/Makefile.am -@@ -25,35 +25,10 @@ - rm -rf $(top_builddir)/lib/python - - install-exec-local: -- rm -rf $(PYTHON_SITE_PACKAGES)/python/_quickfix.so -- rm -rf $(PYTHON_SITE_PACKAGES)/python/_quickfix.dylib -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix40.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix41.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix42.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix43.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix44.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix50.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix50sp1.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix50sp2.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfixt11.py -- ln -sf $(prefix)/lib/python/_quickfix.so $(PYTHON_SITE_PACKAGES)/_quickfix.so -- ln -sf $(prefix)/lib/python/_quickfix.dylib $(PYTHON_SITE_PACKAGES)/_quickfix.dylib -- cp $(top_builddir)/lib/python/*.py $(PYTHON_SITE_PACKAGES) -- --uninstall-local: -- rm -rf $(PYTHON_SITE_PACKAGES)/_quickfix.so -- rm -rf $(PYTHON_SITE_PACKAGES)/_quickfix.dylib -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix40.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix41.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix42.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix43.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix44.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix50.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix50sp1.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix50sp2.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfixt11.py -+ mkdir -p $(DESTDIR)$(PYTHON_SITE_PACKAGES) -+ ln -sf $(prefix)/lib/python/_quickfix.so $(DESTDIR)$(PYTHON_SITE_PACKAGES)/_quickfix.so -+ ln -sf $(prefix)/lib/python/_quickfix.dylib $(DESTDIR)$(PYTHON_SITE_PACKAGES)/_quickfix.dylib -+ cp $(top_builddir)/lib/python/*.py $(DESTDIR)$(PYTHON_SITE_PACKAGES) - - libquickfix_python_la_LDFLAGS = -version-info 10:0:0 - libquickfix_python_la_LIBADD = $(top_builddir)/src/C++/libquickfix.la ---- trunk.orig/src/python/Makefile.in -+++ trunk/src/python/Makefile.in -@@ -594,35 +594,10 @@ - rm -rf $(top_builddir)/lib/python - - install-exec-local: -- rm -rf $(PYTHON_SITE_PACKAGES)/python/_quickfix.so -- rm -rf $(PYTHON_SITE_PACKAGES)/python/_quickfix.dylib -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix40.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix41.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix42.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix43.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix44.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix50.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix50sp1.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfix50sp2.py -- rm -rf $(PYTHON_SITE_PACKAGES)/python/quickfixt11.py -- ln -sf $(prefix)/lib/python/_quickfix.so $(PYTHON_SITE_PACKAGES)/_quickfix.so -- ln -sf $(prefix)/lib/python/_quickfix.dylib $(PYTHON_SITE_PACKAGES)/_quickfix.dylib -- cp $(top_builddir)/lib/python/*.py $(PYTHON_SITE_PACKAGES) -- --uninstall-local: -- rm -rf $(PYTHON_SITE_PACKAGES)/_quickfix.so -- rm -rf $(PYTHON_SITE_PACKAGES)/_quickfix.dylib -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix40.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix41.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix42.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix43.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix44.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix50.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix50sp1.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfix50sp2.py -- rm -rf $(PYTHON_SITE_PACKAGES)/quickfixt11.py -+ mkdir -p $(DESTDIR)$(PYTHON_SITE_PACKAGES) -+ ln -sf $(prefix)/lib/python/_quickfix.so $(DESTDIR)$(PYTHON_SITE_PACKAGES)/_quickfix.so -+ ln -sf $(prefix)/lib/python/_quickfix.dylib $(DESTDIR)$(PYTHON_SITE_PACKAGES)/_quickfix.dylib -+ cp $(top_builddir)/lib/python/*.py $(DESTDIR)$(PYTHON_SITE_PACKAGES) - - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru quickfix-1.13.3+dfsg/debian/patches/error_string_format.patch quickfix-1.13.3+dfsg/debian/patches/error_string_format.patch --- quickfix-1.13.3+dfsg/debian/patches/error_string_format.patch 2013-07-09 00:44:57.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/error_string_format.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -Decription: Correct an error resulting from an insecure call to PyErr_Format -Author: Roberto C. Sanchez ---- quickfix.hg.orig/src/python/QuickfixPython.cpp -+++ quickfix.hg/src/python/QuickfixPython.cpp -@@ -869,7 +869,7 @@ - Py_DECREF(old_str); - Py_DECREF(value); - } else { -- PyErr_Format(PyExc_RuntimeError, mesg); -+ PyErr_Format(PyExc_RuntimeError, "%s", mesg); - } - } - diff -Nru quickfix-1.13.3+dfsg/debian/patches/RSTRING_update.patch quickfix-1.13.3+dfsg/debian/patches/RSTRING_update.patch --- quickfix-1.13.3+dfsg/debian/patches/RSTRING_update.patch 2013-07-10 00:07:52.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/RSTRING_update.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,67 +0,0 @@ -Decription: Replace calls to the deprecated RSTRING(foo)->ptr -Author: Roberto C. Sanchez ---- quickfix.hg.orig/src/ruby/QuickfixRuby.cpp -+++ quickfix.hg/src/ruby/QuickfixRuby.cpp -@@ -4267,7 +4267,7 @@ - if (Application_onCreate_call_depth == 1) { - if( error != 0 ) { - VALUE message = rb_obj_as_string( error ); -- printf( "%s\n", RSTRING(message)->ptr ); -+ printf( "%s\n", RSTRING_PTR(message) ); - exit(1); - } - -@@ -4300,7 +4300,7 @@ - if (Application_onLogon_call_depth == 1) { - if( error != 0 ) { - VALUE message = rb_obj_as_string( error ); -- printf( "%s\n", RSTRING(message)->ptr ); -+ printf( "%s\n", RSTRING_PTR(message) ); - exit(1); - } - -@@ -4333,7 +4333,7 @@ - if (Application_onLogout_call_depth == 1) { - if( error != 0 ) { - VALUE message = rb_obj_as_string( error ); -- printf( "%s\n", RSTRING(message)->ptr ); -+ printf( "%s\n", RSTRING_PTR(message) ); - exit(1); - } - -@@ -4366,7 +4366,7 @@ - if (Application_toAdmin_call_depth == 1) { - if( error != 0 ) { - VALUE message = rb_obj_as_string( error ); -- printf( "%s\n", RSTRING(message)->ptr ); -+ printf( "%s\n", RSTRING_PTR(message) ); - exit(1); - } - -@@ -4406,7 +4406,7 @@ - throw *((FIX::DoNotSend*)result); - } else { - VALUE message = rb_obj_as_string( error ); -- printf( "%s\n", RSTRING(message)->ptr ); -+ printf( "%s\n", RSTRING_PTR(message) ); - exit(1); - } - } -@@ -4473,7 +4473,7 @@ - throw *((FIX::RejectLogon*)result); - } else { - VALUE message = rb_obj_as_string( error ); -- printf( "%s\n", RSTRING(message)->ptr ); -+ printf( "%s\n", RSTRING_PTR(message) ); - exit(1); - } - } -@@ -4546,7 +4546,7 @@ - throw *((FIX::UnsupportedMessageType*)result); - } else { - VALUE message = rb_obj_as_string( error ); -- printf( "%s\n", RSTRING(message)->ptr ); -+ printf( "%s\n", RSTRING_PTR(message) ); - exit(1); - } - } diff -Nru quickfix-1.13.3+dfsg/debian/patches/ruby_hardcode_lower_optimization.patch quickfix-1.13.3+dfsg/debian/patches/ruby_hardcode_lower_optimization.patch --- quickfix-1.13.3+dfsg/debian/patches/ruby_hardcode_lower_optimization.patch 2013-07-07 00:10:45.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/ruby_hardcode_lower_optimization.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,18 +0,0 @@ -Decription: Force a lower level of optimization on the build of the Ruby module. -Author: Roberto C. Sanchez ---- quickfix.hg.orig/src/ruby/make_ruby.sh -+++ quickfix.hg/src/ruby/make_ruby.sh -@@ -1,5 +1,5 @@ - export CXX=$1 --export CXXFLAGS=$2 -+export CXXFLAGS="-O2" - export LIBS=$3 - - rm -rf ../temp -@@ -13,4 +13,4 @@ - cp ../temp/Makefile Makefile.ruby - rm -rf ../temp - --make -f Makefile.ruby -\ No newline at end of file -+make -f Makefile.ruby diff -Nru quickfix-1.13.3+dfsg/debian/patches/ruby_site_packages.patch quickfix-1.13.3+dfsg/debian/patches/ruby_site_packages.patch --- quickfix-1.13.3+dfsg/debian/patches/ruby_site_packages.patch 2013-07-07 00:10:45.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/ruby_site_packages.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,104 +0,0 @@ -Description: Change installation location of Ruby site packages. -Author: Roberto C. Sanchez ---- trunk.orig/configure -+++ trunk/configure -@@ -15015,7 +15015,7 @@ - then - RUBY_CFLAGS="-I${RUBY_PREFIX}" - -- RUBY_SITE_PACKAGES=`ruby -e 'require "rbconfig"; print Config::CONFIG["sitedir"], "\n"'` -+ RUBY_SITE_PACKAGES=`ruby -e 'require "rbconfig"; print Config::CONFIG["libdir"], "\n"'` - - - $as_echo "#define HAVE_RUBY 1" >>confdefs.h ---- trunk.orig/configure.in -+++ trunk/configure.in -@@ -176,7 +176,7 @@ - then - RUBY_CFLAGS="-I${RUBY_PREFIX}" - AC_SUBST(RUBY_CFLAGS) -- RUBY_SITE_PACKAGES=[`ruby -e 'require "rbconfig"; print Config::CONFIG["sitedir"], "\n"'`] -+ RUBY_SITE_PACKAGES=[`ruby -e 'require "rbconfig"; print Config::CONFIG["libdir"], "\n"'`] - AC_SUBST(RUBY_SITE_PACKAGES) - AC_DEFINE(HAVE_RUBY, 1, Define if you have ruby) - fi ---- trunk.orig/src/ruby/Makefile.am -+++ trunk/src/ruby/Makefile.am -@@ -2,34 +2,13 @@ - - all-local: - bash ./make_ruby.sh $(CXX) $(CXXFLAGS) $(LIBS) -- mkdir -p $(top_builddir)/lib/ruby -- ln -sf ../../src/ruby/quickfix_ruby.rb $(top_builddir)/lib/ruby/quickfix_ruby.rb -- ln -sf ../../src/ruby/quickfix_fields.rb $(top_builddir)/lib/ruby/quickfix_fields.rb -- ln -sf ../../src/ruby/quickfix40.rb $(top_builddir)/lib/ruby/quickfix40.rb -- ln -sf ../../src/ruby/quickfix41.rb $(top_builddir)/lib/ruby/quickfix41.rb -- ln -sf ../../src/ruby/quickfix42.rb $(top_builddir)/lib/ruby/quickfix42.rb -- ln -sf ../../src/ruby/quickfix43.rb $(top_builddir)/lib/ruby/quickfix43.rb -- ln -sf ../../src/ruby/quickfix44.rb $(top_builddir)/lib/ruby/quickfix44.rb -- ln -sf ../../src/ruby/quickfix50.rb $(top_builddir)/lib/ruby/quickfix50.rb -- ln -sf ../../src/ruby/quickfix50sp1.rb $(top_builddir)/lib/ruby/quickfix50sp1.rb -- ln -sf ../../src/ruby/quickfix50sp2.rb $(top_builddir)/lib/ruby/quickfix50sp2.rb -- ln -sf ../../src/ruby/quickfixt11.rb $(top_builddir)/lib/ruby/quickfixt11.rb -- ln -sf ../../src/ruby/quickfix.so $(top_builddir)/lib/ruby/quickfix.so -- ln -sf ../../src/ruby/quickfix.bundle $(top_builddir)/lib/ruby/quickfix.bundle -- -- bash ./link.sh $(top_builddir)/lib/ruby quickfix.so quickfix.bundle - - clean-local: - make -f Makefile.ruby clean -- rm -rf $(top_builddir)/lib/ruby - - install-exec-local: -- cp -f $(top_builddir)/lib/ruby/*.rb $(RUBY_SITE_PACKAGES) -- cp -f $(top_builddir)/lib/ruby/quickfix.so $(RUBY_SITE_PACKAGES) -- cp -f $(top_builddir)/lib/ruby/quickfix.bundle $(RUBY_SITE_PACKAGES) -+ make -f Makefile.ruby install - - uninstall-local: -- rm -rf $(RUBY_SITE_PACKAGES)/quickfix*.rb -- rm -rf $(RUBY_SITE_PACKAGES)/quickfix*.so -- rm -rf $(RUBY_SITE_PACKAGES)/quickfix.bundle -+ make -f Makefile.ruby install - ---- trunk.orig/src/ruby/Makefile.in -+++ trunk/src/ruby/Makefile.in -@@ -426,36 +426,15 @@ - - all-local: - bash ./make_ruby.sh $(CXX) $(CXXFLAGS) $(LIBS) -- mkdir -p $(top_builddir)/lib/ruby -- ln -sf ../../src/ruby/quickfix_ruby.rb $(top_builddir)/lib/ruby/quickfix_ruby.rb -- ln -sf ../../src/ruby/quickfix_fields.rb $(top_builddir)/lib/ruby/quickfix_fields.rb -- ln -sf ../../src/ruby/quickfix40.rb $(top_builddir)/lib/ruby/quickfix40.rb -- ln -sf ../../src/ruby/quickfix41.rb $(top_builddir)/lib/ruby/quickfix41.rb -- ln -sf ../../src/ruby/quickfix42.rb $(top_builddir)/lib/ruby/quickfix42.rb -- ln -sf ../../src/ruby/quickfix43.rb $(top_builddir)/lib/ruby/quickfix43.rb -- ln -sf ../../src/ruby/quickfix44.rb $(top_builddir)/lib/ruby/quickfix44.rb -- ln -sf ../../src/ruby/quickfix50.rb $(top_builddir)/lib/ruby/quickfix50.rb -- ln -sf ../../src/ruby/quickfix50sp1.rb $(top_builddir)/lib/ruby/quickfix50sp1.rb -- ln -sf ../../src/ruby/quickfix50sp2.rb $(top_builddir)/lib/ruby/quickfix50sp2.rb -- ln -sf ../../src/ruby/quickfixt11.rb $(top_builddir)/lib/ruby/quickfixt11.rb -- ln -sf ../../src/ruby/quickfix.so $(top_builddir)/lib/ruby/quickfix.so -- ln -sf ../../src/ruby/quickfix.bundle $(top_builddir)/lib/ruby/quickfix.bundle -- -- bash ./link.sh $(top_builddir)/lib/ruby quickfix.so quickfix.bundle - - clean-local: - make -f Makefile.ruby clean -- rm -rf $(top_builddir)/lib/ruby - - install-exec-local: -- cp -f $(top_builddir)/lib/ruby/*.rb $(RUBY_SITE_PACKAGES) -- cp -f $(top_builddir)/lib/ruby/quickfix.so $(RUBY_SITE_PACKAGES) -- cp -f $(top_builddir)/lib/ruby/quickfix.bundle $(RUBY_SITE_PACKAGES) -+ make -f Makefile.ruby install - - uninstall-local: -- rm -rf $(RUBY_SITE_PACKAGES)/quickfix*.rb -- rm -rf $(RUBY_SITE_PACKAGES)/quickfix*.so -- rm -rf $(RUBY_SITE_PACKAGES)/quickfix.bundle -+ make -f Makefile.ruby install - - # Tell versions [3.59,3.63) of GNU make to not export all variables. - # Otherwise a system limit (for SysV at least) may be exceeded. diff -Nru quickfix-1.13.3+dfsg/debian/patches/series quickfix-1.13.3+dfsg/debian/patches/series --- quickfix-1.13.3+dfsg/debian/patches/series 2013-07-10 00:03:33.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/series 2014-04-09 17:23:49.000000000 +0000 @@ -1,11 +1,11 @@ -uninitialized-v2.patch -src-fieldbase_calculate.patch -src-heartbeat.patch -ruby_site_packages.patch -ruby_hardcode_lower_optimization.patch -build_system_cleanup.patch -stdlib.patch -test_runner_bad_virtual_method_arg.patch -error_string_format.patch -STR2CSTR_replace.patch -RSTRING_update.patch +01_uninitialized_v2.patch +02_src_fieldbase_calculate.patch +03_src_heartbeat.patch +04_ruby_site_packages.patch +05_ruby_hardcode_lower_optimization.patch +06_build_system_cleanup.patch +07_stdlib.patch +08_test_runner_bad_virtual_method_arg.patch +09_error_string_format.patch +10_STR2CSTR_replace.patch +11_RSTRING_update.patch diff -Nru quickfix-1.13.3+dfsg/debian/patches/src-fieldbase_calculate.patch quickfix-1.13.3+dfsg/debian/patches/src-fieldbase_calculate.patch --- quickfix-1.13.3+dfsg/debian/patches/src-fieldbase_calculate.patch 2013-07-07 00:10:45.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/src-fieldbase_calculate.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,105 +0,0 @@ -Description: Fix fieldbase calculation. -Author: Athena Capital Research ---- trunk.orig/src/C++/Field.h -+++ trunk/src/C++/Field.h -@@ -27,6 +27,7 @@ - #endif - - #include -+#include - #include - #include "FieldNumbers.h" - #include "FieldConvertors.h" -@@ -47,7 +48,7 @@ - friend class Message; - public: - FieldBase( int field, const std::string& string ) -- : m_field( field ), m_string(string), m_length( 0 ), m_total( 0 ), -+ : m_field( field ), m_string(string), - m_calculated( false ) - {} - -@@ -57,6 +58,7 @@ - { - m_field = field; - m_calculated = false; -+ m_data.clear(); // dirty - } - - void setString( const std::string& string ) -@@ -84,13 +86,13 @@ - int getLength() const - { - calculate(); -- return m_length; -+ return m_data.length(); - } - - /// Get the total value the fields characters added together - int getTotal() const - { -- calculate(); -+ sum(); - return m_total; - } - -@@ -103,33 +105,46 @@ - { - if( m_calculated ) return; - -- char buf[64]; -+ m_total = -1; // dirty - -- if( 13 + m_string.length() < sizeof(buf) ) -+ if( m_data.empty() ) - { -- int tagLength = STRING_SPRINTF( buf, "%d=", m_field ); -- m_length = tagLength + m_string.length() + 1; -- memcpy( buf + tagLength, m_string.data(), m_string.length() ); -- buf[m_length - 1] = '\001'; -- m_data.assign( buf, m_length ); -+ // buffer is big enough for significant digits and extra digit, -+ // minus and equals (but no null) -+ char buf[std::numeric_limits::digits10 + 3]; -+ char* p = integer_to_string( buf, sizeof (buf), m_field ); -+ buf[sizeof (buf) - 1] = '='; -+ -+ m_tagLength = buf + sizeof (buf) - p; -+ m_data.resize( m_tagLength + m_string.length() + 1 ); -+ std::copy( p, p + m_tagLength, m_data.begin() ); - } - else - { -- m_data = IntConvertor::convert(m_field) + "=" + m_string + "\001"; -- m_length = m_data.length(); -+ m_data.resize( m_tagLength + m_string.length() + 1 ); - } - -- const unsigned char* iter = -- reinterpret_cast( m_data.c_str() ); -- m_total = std::accumulate( iter, iter + m_length, 0 ); -+ std::copy( m_string.begin(), m_string.end(), m_data.begin() + m_tagLength ); -+ m_data[m_data.length() - 1] = '\001'; - - m_calculated = true; - } - -+ void sum() const -+ { -+ calculate(); -+ -+ if( m_total != -1 ) return; -+ -+ const unsigned char* iter = -+ reinterpret_cast( m_data.c_str() ); -+ m_total = std::accumulate( iter, iter + m_data.length(), 0 ); -+ } -+ - int m_field; - std::string m_string; - mutable std::string m_data; -- mutable int m_length; -+ mutable int m_tagLength; - mutable int m_total; - mutable bool m_calculated; - }; diff -Nru quickfix-1.13.3+dfsg/debian/patches/src-heartbeat.patch quickfix-1.13.3+dfsg/debian/patches/src-heartbeat.patch --- quickfix-1.13.3+dfsg/debian/patches/src-heartbeat.patch 2013-07-07 00:10:45.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/src-heartbeat.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -Description: Add heartbeat object access. -Author: Athena Capital Research ---- trunk.orig/src/C++/Session.h -+++ trunk/src/C++/Session.h -@@ -207,6 +207,8 @@ - Log* getLog() { return &m_state; } - const MessageStore* getStore() { return &m_state; } - -+ const HeartBtInt& getHeartBtInt() const { return m_state.heartBtInt(); } -+ - private: - typedef std::map < SessionID, Session* > Sessions; - typedef std::set < SessionID > SessionIDs; diff -Nru quickfix-1.13.3+dfsg/debian/patches/stdlib.patch quickfix-1.13.3+dfsg/debian/patches/stdlib.patch --- quickfix-1.13.3+dfsg/debian/patches/stdlib.patch 2013-07-07 00:10:45.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/stdlib.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -Description: Add missing standard header include. -Author: Roberto C. Sanchez ---- trunk.orig/src/C++/Utility.h -+++ trunk/src/C++/Utility.h -@@ -91,6 +91,7 @@ - #include - #include - #include -+#include - - namespace FIX - { diff -Nru quickfix-1.13.3+dfsg/debian/patches/STR2CSTR_replace.patch quickfix-1.13.3+dfsg/debian/patches/STR2CSTR_replace.patch --- quickfix-1.13.3+dfsg/debian/patches/STR2CSTR_replace.patch 2013-07-09 09:54:26.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/STR2CSTR_replace.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,114 +0,0 @@ -Decription: Replace calls to the deprecated STR2CSTR -Author: Roberto C. Sanchez ---- quickfix.hg.orig/src/quickfix.i -+++ quickfix.hg/src/quickfix.i -@@ -126,7 +126,7 @@ - - #ifdef SWIGRUBY - %typemap(in) std::string& (std::string temp) { -- temp = std::string((char*)STR2CSTR($input)); -+ temp = std::string((char*)StringValuePtr($input)); - $1 = &temp; - } - ---- quickfix.hg.orig/src/ruby/QuickfixRuby.cpp -+++ quickfix.hg/src/ruby/QuickfixRuby.cpp -@@ -3975,7 +3975,7 @@ - - - -- char *cstr = STR2CSTR(obj); -+ char *cstr = StringValuePtr(obj); - - size_t size = RSTRING_LEN(obj) + 1; - if (cptr) { -@@ -14843,7 +14843,7 @@ - } - arg1 = reinterpret_cast< FIX::FieldMap * >(argp1); - { -- temp2 = std::string((char*)STR2CSTR(argv[0])); -+ temp2 = std::string((char*)StringValuePtr(argv[0])); - arg2 = &temp2; - } - ecode3 = SWIG_AsVal_bool(argv[1], &val3); -@@ -14888,7 +14888,7 @@ - } - arg1 = reinterpret_cast< FIX::FieldMap * >(argp1); - { -- temp2 = std::string((char*)STR2CSTR(argv[0])); -+ temp2 = std::string((char*)StringValuePtr(argv[0])); - arg2 = &temp2; - } - { -@@ -16521,7 +16521,7 @@ - } - arg1 = reinterpret_cast< FIX::Message * >(argp1); - { -- temp2 = std::string((char*)STR2CSTR(argv[0])); -+ temp2 = std::string((char*)StringValuePtr(argv[0])); - arg2 = &temp2; - } - ecode3 = SWIG_AsVal_int(argv[1], &val3); -@@ -16582,7 +16582,7 @@ - } - arg1 = reinterpret_cast< FIX::Message * >(argp1); - { -- temp2 = std::string((char*)STR2CSTR(argv[0])); -+ temp2 = std::string((char*)StringValuePtr(argv[0])); - arg2 = &temp2; - } - ecode3 = SWIG_AsVal_int(argv[1], &val3); -@@ -16635,7 +16635,7 @@ - } - arg1 = reinterpret_cast< FIX::Message * >(argp1); - { -- temp2 = std::string((char*)STR2CSTR(argv[0])); -+ temp2 = std::string((char*)StringValuePtr(argv[0])); - arg2 = &temp2; - } - ecode3 = SWIG_AsVal_int(argv[1], &val3); -@@ -16680,7 +16680,7 @@ - } - arg1 = reinterpret_cast< FIX::Message * >(argp1); - { -- temp2 = std::string((char*)STR2CSTR(argv[0])); -+ temp2 = std::string((char*)StringValuePtr(argv[0])); - arg2 = &temp2; - } - { -@@ -16926,7 +16926,7 @@ - } - arg1 = reinterpret_cast< FIX::Message * >(argp1); - { -- temp2 = std::string((char*)STR2CSTR(argv[0])); -+ temp2 = std::string((char*)StringValuePtr(argv[0])); - arg2 = &temp2; - } - { -@@ -221534,7 +221534,7 @@ - } - arg1 = reinterpret_cast< FIX::SessionID * >(argp1); - { -- temp2 = std::string((char*)STR2CSTR(argv[0])); -+ temp2 = std::string((char*)StringValuePtr(argv[0])); - arg2 = &temp2; - } - { -@@ -234994,7 +234994,7 @@ - } - arg2 = static_cast< int >(val2); - { -- temp3 = std::string((char*)STR2CSTR(argv[1])); -+ temp3 = std::string((char*)StringValuePtr(argv[1])); - arg3 = &temp3; - } - result = (bool)((FIX::DataDictionary const *)arg1)->getFieldName(arg2,*arg3); -@@ -235172,7 +235172,7 @@ - arg3 = ptr; - } - { -- temp4 = std::string((char*)STR2CSTR(argv[2])); -+ temp4 = std::string((char*)StringValuePtr(argv[2])); - arg4 = &temp4; - } - result = (bool)((FIX::DataDictionary const *)arg1)->getValueName(arg2,(std::string const &)*arg3,*arg4); diff -Nru quickfix-1.13.3+dfsg/debian/patches/test_runner_bad_virtual_method_arg.patch quickfix-1.13.3+dfsg/debian/patches/test_runner_bad_virtual_method_arg.patch --- quickfix-1.13.3+dfsg/debian/patches/test_runner_bad_virtual_method_arg.patch 2013-07-07 00:10:45.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/test_runner_bad_virtual_method_arg.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -Description: Fix bad method virtual argument (Closes: #648257) -Author: Johan Euphrosine (proppy) ---- quickfix.hg.orig/UnitTest++/src/tests/TestTestRunner.cpp -+++ quickfix.hg/UnitTest++/src/tests/TestTestRunner.cpp -@@ -20,14 +20,14 @@ - { - } - -- virtual void RunImpl(TestResults& testResults_) const -+ virtual void RunImpl() const - { - for (int i=0; i < count; ++i) - { - if (asserted) - ReportAssert("desc", "file", 0); - else if (!success) -- testResults_.OnTestFailure(m_details, "message"); -+ CurrentTest::Results()->OnTestFailure(m_details, "message"); - } - } - diff -Nru quickfix-1.13.3+dfsg/debian/patches/uninitialized-v2.patch quickfix-1.13.3+dfsg/debian/patches/uninitialized-v2.patch --- quickfix-1.13.3+dfsg/debian/patches/uninitialized-v2.patch 2013-07-07 00:10:45.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/patches/uninitialized-v2.patch 1970-01-01 00:00:00.000000000 +0000 @@ -1,20 +0,0 @@ -Description: Initialize uninitialized things. -Author: Athena Capital Research ---- trunk.orig/src/C++/Initiator.cpp -+++ trunk/src/C++/Initiator.cpp -@@ -43,6 +43,7 @@ - m_settings( settings ), - m_pLogFactory( 0 ), - m_pLog( 0 ), -+ m_firstPoll( true ), - m_stop( true ) - { initialize(); } - -@@ -56,6 +57,7 @@ - m_settings( settings ), - m_pLogFactory( &logFactory ), - m_pLog( logFactory.create() ), -+ m_firstPoll( true ), - m_stop( true ) - { initialize(); } - diff -Nru quickfix-1.13.3+dfsg/debian/rules quickfix-1.13.3+dfsg/debian/rules --- quickfix-1.13.3+dfsg/debian/rules 2014-03-05 19:18:58.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/rules 2014-04-09 17:24:16.000000000 +0000 @@ -33,6 +33,14 @@ CXXFLAGS += -O3 -msse3 endif +# Fix FTBFS on kfreebsd-* builds, which require explicit pthread linkage +# Using CFLAGS/CXXFLAGS feels like an ugly hack, but no amount of coaxing with +# DEB_LDFLAGS_MAINT_{PRE,AP}PEND seems to get the flag in the right position +ifneq (,$(findstring kfreebsd,$(DEB_HOST_ARCH))) +CFLAGS += -pthread +CXXFLAGS += -pthread +endif + #CFLAGS = -Wall -g #ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) @@ -59,6 +67,7 @@ build-indep: build-stamp build-stamp: config.status dh_testdir + [ -d $(CURDIR)/lib ] || mkdir $(CURDIR)/lib $(MAKE) $(shell $(dpkg_buildflags) --export=configure) touch $@ @@ -67,6 +76,7 @@ dh_testroot rm -f build-stamp [ ! -f Makefile ] || $(MAKE) distclean + -rmdir $(CURDIR)/lib dh_autotools-dev_restoreconfig dh_clean diff -Nru quickfix-1.13.3+dfsg/debian/source/options quickfix-1.13.3+dfsg/debian/source/options --- quickfix-1.13.3+dfsg/debian/source/options 1970-01-01 00:00:00.000000000 +0000 +++ quickfix-1.13.3+dfsg/debian/source/options 2014-04-09 17:23:49.000000000 +0000 @@ -0,0 +1,2 @@ +--diff-ignore +--tar-ignore