Skip to content
Commits on Source (12)
ncbi-blast+ (2.9.0-3) UNRELEASED; urgency=medium
* Team upload.
* Drop transitional blast2 package. (Closes: #940742).
* debian/copyright: refreshed
* debhelper-compat 12
* Secure URI in copyright format
* Remove trailing whitespace in debian/changelog
* Use secure URI in Homepage field.
* Move source package lintian overrides to debian/source.
* Set upstream metadata fields: Contact, Name.
-- Michael R. Crusoe <michael.crusoe@gmail.com> Sun, 29 Sep 2019 13:29:30 +0200
ncbi-blast+ (2.9.0-2) unstable; urgency=medium
* debian/control: Standards-Version: 4.4.1 (already compliant).
......
......@@ -5,7 +5,7 @@ Uploaders: Olivier Sallou <osallou@debian.org>,
Aaron M. Ucko <ucko@debian.org>
Section: science
Priority: optional
Build-Depends: debhelper (>= 11~)
Build-Depends: debhelper-compat (= 12)
Build-Depends-Arch: 2to3,
libboost-test-dev,
libbz2-dev,
......@@ -19,7 +19,7 @@ Build-Depends-Arch: 2to3,
Standards-Version: 4.4.1
Vcs-Browser: https://salsa.debian.org/med-team/ncbi-blastplus
Vcs-Git: https://salsa.debian.org/med-team/ncbi-blastplus.git
Homepage: http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/
Homepage: https://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/
Rules-Requires-Root: no
Package: ncbi-blast+
......@@ -56,14 +56,3 @@ Description: NCBI Blast legacy call script
This package adds some fake scripts to call NCBI+ programs
with the NCBI blast command line. It makes use of the
legacy_blast script in ncbi-blast+ package.
Package: blast2
Architecture: all
Multi-Arch: foreign
Section: oldlibs
Priority: optional
Depends: ncbi-blast+-legacy,
${misc:Depends}
Description: transitional dummy package to ncbi-blast+-legacy
This is a transitional dummy package for ncbi-blast+-legacy.
It can safely be removed.
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: ncbi-blast+
Upstream-Contact: blastsoft@ncbi.nlm.nih.gov
Files: c++/*
Copyright: NCBI
License: PD
PUBLIC DOMAIN NOTICE
National Center for Biotechnology Information
.
This software/database is a "United States Government Work" under the
terms of the United States Copyright Act. It was written as part of
the author's official duties as a United States Government employee and
thus cannot be copyrighted. This software/database is freely available
to the public for use. The National Library of Medicine and the U.S.
Government have not placed any restriction on its use or reproduction.
.
Although all reasonable efforts have been taken to ensure the accuracy
and reliability of the software and data, the NLM and the U.S.
Government do not and cannot warrant the performance or results that
may be obtained by using this software or data. The NLM and the U.S.
Government disclaim all warranties, express or implied, including
warranties of performance, merchantability or fitness for any particular
purpose.
.
Please cite the author in any work or product based on this material.
Files: c++/src/connect/mbedtls/*
Copyright: 2006-2015, ARM Limited, All Rights Reserved
License: Apache-2.0
......@@ -27,29 +50,6 @@ License: Netscape
software provided that this copyright notice appears on all copies.
This software is provided "AS IS," without a warranty of any kind.
Files: c++/*
Copyright: NCBI
License: PD
PUBLIC DOMAIN NOTICE
National Center for Biotechnology Information
.
This software/database is a "United States Government Work" under the
terms of the United States Copyright Act. It was written as part of
the author's official duties as a United States Government employee and
thus cannot be copyrighted. This software/database is freely available
to the public for use. The National Library of Medicine and the U.S.
Government have not placed any restriction on its use or reproduction.
.
Although all reasonable efforts have been taken to ensure the accuracy
and reliability of the software and data, the NLM and the U.S.
Government do not and cannot warrant the performance or results that
may be obtained by using this software or data. The NLM and the U.S.
Government disclaim all warranties, express or implied, including
warranties of performance, merchantability or fitness for any particular
purpose.
.
Please cite the author in any work or product based on this material.
Files: c++/*/util/compress/zlib/*
Copyright: 1995-2004 Jean-loup Gailly and Mark Adler
License: BSD-3-clause
......@@ -106,11 +106,11 @@ License: BSD-4-clause
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Files: c++/src/build-system/config.*s* c++/src/util/regexp/missing
Files: c++/src/build-system/config.*s*
Copyright: 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc
License: GPL-2
Files: c++/src/build-system/ax_jni_include_dir.m4
Files: c++/src/build-system/m4/ax_jni_include_dir.m4
Copyright: 2008 Don Anderson <dda@sleepycat.com>
License: as_is
Copying and distribution of this file, with or without modification, are
......
Author: Andreas Tille <tille@debian.org>
Date: Wed, 21 Dec 2011 15:47:04 +0100
Bug-Closed: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=644237
Description: Output non-erroneous messages to STDOUT instead of STDERR
--- ncbi-blast+-2.2.25.orig/c++/src/app/blast/update_blastdb.pl
+++ ncbi-blast+-2.2.25/c++/src/app/blast/update_blastdb.pl
@@ -104,7 +104,7 @@
or die "Failed to login to " . NCBI_FTP . ": $!\n";
$ftp->cwd(BLAST_DB_DIR);
$ftp->binary();
- print STDERR "Connected to NCBI\n" if $opt_verbose;
+ print STDOUT "Connected to NCBI\n" if $opt_verbose;
return $ftp;
}
@@ -170,14 +170,14 @@
if ($opt_verbose and &is_multivolume_db($file)) {
my $db_name = &extract_db_name($file);
my $nvol = &get_num_volumes($db_name, @_);
- print STDERR "Downloading $db_name (" . $nvol . " volumes) ...\n";
+ print STDOUT "Downloading $db_name (" . $nvol . " volumes) ...\n";
}
download_file:
if ($opt_force_download or
not -f $file or
((stat($file))->mtime < $ftp->mdtm($file))) {
- print STDERR "Downloading $file... " if $opt_verbose;
+ print STDOUT "Downloading $file... " if $opt_verbose;
$ftp->get($file);
if ($opt_check_md5) {
unless ($ftp->get("$file.md5")) {
@@ -199,10 +199,10 @@
}
}
}
- print STDERR "done.\n" if $opt_verbose;
+ print STDOUT "done.\n" if $opt_verbose;
$retval = 1 if ($retval == 0);
} else {
- print STDERR "$file is up to date.\n" if $opt_verbose;
+ print STDOUT "$file is up to date.\n" if $opt_verbose;
}
}
return $retval;
Subject: FTBS issue on ARM and MIPS
Descrition: switch NCBI_BIG_TYPE's baseline to Int8 from NCBI_INT8_TYPE
to fix build failures on Linux systems with ARM or MIPS processors,
which have inttypes.h and lack an extra-wide scalar type.
Bug fixed upstream.
Last-Updated: 2012-09-25
Author: Aaron Ucko <ucko@debian.org>
Forwarded: not-needed
--- trunk/c++/include/corelib/ncbitype.h 2012/06/01 19:13:24 54673
+++ trunk/c++/include/corelib/ncbitype.h 2012/09/24 14:15:47 55773
@@ -150,7 +150,7 @@
/* BigScalar
*/
-#define NCBI_BIG_TYPE NCBI_INT8_TYPE
+#define NCBI_BIG_TYPE Int8
#define SIZEOF_NCBI_BIG 8
#if (SIZEOF_LONG_DOUBLE > SIZEOF_NCBI_BIG)
# undef NCBI_BIG_TYPE
Subject: checks misreported as absent when unpacked under /*/src/*
* src/build-system/Makefile.meta.in: supply it to check_add.sh
Author: Aaron M. Ucko <ucko@debian.org>
Last-Update: 2011-05-23
--- a/c++/src/build-system/Makefile.meta.in 2011-05-23 18:48:59.000000000 -0400
+++ b/c++/src/build-system/Makefile.meta.in 2011-05-23 18:49:20.000000000 -0400
@@ -188,7 +188,7 @@
expendable=false ; \
for i in $$x_project ; do \
if test "x$$i" = "x-" ; then expendable=true ; continue ; fi ; \
- $(check_add) $(abs_srcdir) $$i @signature@ @exe_ext@
+ $(check_add) $(abs_srcdir) $$i @signature@ $(subdir)
CHECK_ADD_KET = || exit 5 ; \
done ; \
fi
Subject: GCC 4.6 compilation error due to missing def
* include/corelib/ncbistre.hpp: Add stddef definition required by gcc4.6
* src/objtools/blast/seqdb_reader/seqdbimpl.hpp: remove mutable reference
Author: Olivier Sallou <olivier.sallou@irisa.fr>
Last-Update: 2011-05-03
--- a/c++/include/corelib/ncbistre.hpp
+++ b/c++/include/corelib/ncbistre.hpp
@@ -116,6 +116,7 @@
#define SEEKOFF PUBSEEKOFF
#include <string>
+#include <stddef.h>
// (BEGIN_NCBI_SCOPE must be followed by END_NCBI_SCOPE later in this file)
--- a/c++/src/objtools/blast/seqdb_reader/seqdbimpl.hpp
+++ b/c++/src/objtools/blast/seqdb_reader/seqdbimpl.hpp
@@ -1245,7 +1245,7 @@
CSeqDBAtlasHolder m_AtlasHolder;
/// Reference to memory management layer.
- mutable CSeqDBAtlas & m_Atlas;
+ CSeqDBAtlas & m_Atlas;
/// The list of database names provided to the constructor.
string m_DBNames;
Subject: fix various GCC 4.7 compilation errors and warnings
* Explicitly qualify more dependent names originating in base templates.
* Directly #include headers as needed.
* Use modern syntax for making protected base members public.
* Add forward declarations as needed.
Author: Aaron M. Ucko <ucko@debian.org>
Last-Update: 2012-04-13
--- a/c++/include/connect/ncbi_conn_stream.hpp
+++ b/c++/include/connect/ncbi_conn_stream.hpp
@@ -259,7 +259,7 @@
class CConn_IOStreamSetReadTimeout : protected CConn_IOStreamSetTimeout
{
public:
- CConn_IOStreamSetTimeout::GetTimeout;
+ using CConn_IOStreamSetTimeout::GetTimeout;
protected:
CConn_IOStreamSetReadTimeout(const STimeout* timeout)
@@ -289,7 +289,7 @@
class CConn_IOStreamSetWriteTimeout : protected CConn_IOStreamSetTimeout
{
public:
- CConn_IOStreamSetTimeout::GetTimeout;
+ using CConn_IOStreamSetTimeout::GetTimeout;
protected:
CConn_IOStreamSetWriteTimeout(const STimeout* timeout)
--- a/c++/include/corelib/ncbiexpt.hpp
+++ b/c++/include/corelib/ncbiexpt.hpp
@@ -852,7 +852,7 @@
exception_class(const exception_class& other) \
: base_class(other) \
{ \
- x_Assign(other); \
+ this->x_Assign(other); \
} \
public: \
virtual ~exception_class(void) throw() {} \
@@ -1172,7 +1172,7 @@
: TBase( other)
{
m_Errno = other.m_Errno;
- x_Assign(other);
+ this->x_Assign(other);
}
/// Destructor.
--- a/c++/include/corelib/ncbimisc.hpp
+++ b/c++/include/corelib/ncbimisc.hpp
@@ -39,6 +39,7 @@
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
+#include <cstdlib>
#ifdef NCBI_COMPILER_ICC
// Preemptively pull in <cctype>, which breaks if we've already
// repointed is* at NCBI_is*.
--- a/c++/include/corelib/ncbistl.hpp
+++ b/c++/include/corelib/ncbistl.hpp
@@ -37,6 +37,7 @@
#include <common/ncbi_export.h>
+#include <algorithm>
// Get rid of some warnings in MSVC++
#if (_MSC_VER >= 1200)
--- a/c++/include/corelib/ncbistr.hpp
+++ b/c++/include/corelib/ncbistr.hpp
@@ -3039,7 +3039,7 @@
: TBase(other)
{
m_Pos = other.m_Pos;
- x_Assign(other);
+ this->x_Assign(other);
}
/// Destructor.
--- a/c++/include/serial/impl/stltypes.hpp
+++ b/c++/include/serial/impl/stltypes.hpp
@@ -412,6 +412,7 @@
typedef StlIterator TStlIterator;
typedef TypeInfoIterator TTypeInfoIterator;
typedef typename TTypeInfoIterator::TObjectPtr TObjectPtr;
+ typedef CStlClassInfoFunctions<Container> CParent;
static TStlIterator& It(TTypeInfoIterator& iter)
{
@@ -437,7 +438,8 @@
}
static bool InitIterator(TTypeInfoIterator& iter)
{
- TStlIterator stl_iter = Get(iter.GetContainerPtr()).begin();
+ TStlIterator stl_iter
+ = CParent::Get(iter.GetContainerPtr()).begin();
if ( sizeof(TStlIterator) <= sizeof(iter.m_IteratorData) ) {
void* data = &iter.m_IteratorData;
new (data) TStlIterator(stl_iter);
@@ -445,7 +447,7 @@
else {
iter.m_IteratorData = new TStlIterator(stl_iter);
}
- return stl_iter != Get(iter.GetContainerPtr()).end();
+ return stl_iter != CParent::Get(iter.GetContainerPtr()).end();
}
static void ReleaseIterator(TTypeInfoIterator& iter)
{
@@ -466,7 +468,7 @@
static bool NextElement(TTypeInfoIterator& iter)
{
- return ++It(iter) != Get(iter.GetContainerPtr()).end();
+ return ++It(iter) != CParent::Get(iter.GetContainerPtr()).end();
}
static TObjectPtr GetElementPtr(const TTypeInfoIterator& iter)
{
@@ -503,7 +505,7 @@
static bool EraseElement(TTypeInfoIterator& iter)
{
- TStlIterator& it = It(iter);
+ TStlIterator& it = CParent::It(iter);
Container* c = static_cast<Container*>(iter.GetContainerPtr());
it = c->erase(it);
return it != c->end();
@@ -511,7 +513,7 @@
static void EraseAllElements(TTypeInfoIterator& iter)
{
Container* c = static_cast<Container*>(iter.GetContainerPtr());
- c->erase(It(iter), c->end());
+ c->erase(CParent::It(iter), c->end());
}
static void SetIteratorFunctions(CStlOneArgTemplate* info)
@@ -542,7 +544,7 @@
}
static bool EraseElement(TTypeInfoIterator& iter)
{
- TStlIterator& it = It(iter);
+ TStlIterator& it = CParent::It(iter);
Container* c = static_cast<Container*>(iter.GetContainerPtr());
TStlIterator erase = it++;
c->erase(erase);
@@ -551,7 +553,7 @@
static void EraseAllElements(TTypeInfoIterator& iter)
{
Container* c = static_cast<Container*>(iter.GetContainerPtr());
- c->erase(It(iter), c->end());
+ c->erase(CParent::It(iter), c->end());
}
static void SetIteratorFunctions(CStlOneArgTemplate* info)
--- a/c++/include/serial/iterator.hpp
+++ b/c++/include/serial/iterator.hpp
@@ -520,13 +520,13 @@
CTypeIteratorBase(TTypeInfo needType, const TBeginInfo& beginInfo)
: m_NeedType(needType)
{
- Init(beginInfo);
+ this->Init(beginInfo);
}
CTypeIteratorBase(TTypeInfo needType, const TBeginInfo& beginInfo,
const string& filter)
: m_NeedType(needType)
{
- Init(beginInfo, filter);
+ this->Init(beginInfo, filter);
}
virtual bool CanSelect(const CConstObjectInfo& object)
--- a/c++/include/util/bitset/bmfunc.h
+++ b/c++/include/util/bitset/bmfunc.h
@@ -39,6 +39,13 @@
namespace bm
{
+bm::id_t bit_block_any_range(const bm::word_t* block,
+ bm::word_t left,
+ bm::word_t right);
+
+bm::id_t bit_block_calc_count_range(const bm::word_t* block,
+ bm::word_t left,
+ bm::word_t right);
/*!
@brief Structure with statistical information about bitset's memory
--- a/c++/include/util/bitset/bmserial.h
+++ b/c++/include/util/bitset/bmserial.h
@@ -1381,7 +1381,7 @@
case set_block_arrgap:
case set_block_arrgap_egamma:
{
- unsigned arr_len = read_id_list(dec, btype, this->id_array_);
+ unsigned arr_len = this->read_id_list(dec, btype, this->id_array_);
gap_len = gap_set_array(gap_temp_block_, this->id_array_, arr_len);
break;
}
@@ -1390,7 +1390,7 @@
(sizeof(gap_word_t) == 2 ? dec.get_16() : dec.get_32());
case set_block_arrgap_egamma_inv:
case set_block_arrgap_inv:
- gap_len = read_gap_block(dec, btype, gap_temp_block_, gap_head);
+ gap_len = this->read_gap_block(dec, btype, gap_temp_block_, gap_head);
break;
default:
BM_ASSERT(0);
--- a/c++/include/util/linkedset.hpp
+++ b/c++/include/util/linkedset.hpp
@@ -268,10 +268,10 @@
pair<iterator, bool> ins = m_Container.insert(value);
if ( ins.second ) {
if ( ins.first == begin() )
- insertToStart(*ins.first);
+ this->insertToStart(*ins.first);
else {
iterator prev = ins.first;
- insertAfter(*--prev, *ins.first);
+ this->insertAfter(*--prev, *ins.first);
}
}
return ins;
@@ -280,10 +280,10 @@
void erase(iterator iter)
{
if ( iter == begin() )
- removeFromStart(*iter);
+ this->removeFromStart(*iter);
else {
iterator prev = iter;
- removeAfter(*--prev, *iter);
+ this->removeAfter(*--prev, *iter);
}
m_Container.erase(iter);
}
@@ -422,10 +422,10 @@
{
iterator iter = m_Container.insert(value);
if ( iter == begin() )
- insertToStart(get(iter));
+ this->insertToStart(get(iter));
else {
iterator prev = iter;
- insertAfter(get(--prev), get(iter));
+ this->insertAfter(get(--prev), get(iter));
}
return iter;
}
@@ -433,10 +433,10 @@
void erase(iterator iter)
{
if ( iter == begin() )
- removeFromStart(get(iter));
+ this->removeFromStart(get(iter));
else {
iterator prev = iter;
- removeAfter(get(--prev), get(iter));
+ this->removeAfter(get(--prev), get(iter));
}
m_Container.erase(iter);
}
--- a/c++/include/util/rangemap.hpp
+++ b/c++/include/util/rangemap.hpp
@@ -578,7 +578,7 @@
// get level
// insert element
- TSelectMapI selectIter = insertLevel(selectKey);
+ TSelectMapI selectIter = this->insertLevel(selectKey);
pair<TLevelMapI, bool> levelIns = selectIter->second.insert(value);
pair<iterator, bool> ret;
@@ -640,7 +640,7 @@
// insert element
iterator ret;
ret.m_Range = range_type::GetWhole();
- ret.m_SelectIter = insertLevel(selectKey);
+ ret.m_SelectIter = this->insertLevel(selectKey);
ret.m_SelectIterEnd = this->m_SelectMap.end();
ret.m_LevelIter = ret.m_SelectIter->second.insert(value);
return ret;
--- a/c++/src/serial/stdtypes.cpp
+++ b/c++/src/serial/stdtypes.cpp
@@ -720,7 +720,7 @@
if ( IsSigned() ) {
// signed -> unsigned
// check for negative value
- if ( IsNegative(value) )
+ if ( CParent::IsNegative(value) )
ThrowIntegerOverflow();
}
if ( sizeof(value) > sizeof(result) ) {
@@ -751,7 +751,7 @@
// unsigned -> signed
if ( sizeof(value) == sizeof(result) ) {
// same size - check for sign change only
- if ( IsNegative(result) )
+ if ( CParent::IsNegative(result) )
ThrowIntegerOverflow();
}
}
@@ -786,7 +786,7 @@
if ( IsSigned() ) {
// signed -> unsigned
// check for negative value
- if ( IsNegative(value) )
+ if ( CParent::IsNegative(value) )
ThrowIntegerOverflow();
}
if ( sizeof(value) > sizeof(result) ) {
@@ -817,7 +817,7 @@
// unsigned -> signed
if ( sizeof(value) == sizeof(result) ) {
// same size - check for sign change only
- if ( IsNegative(result) )
+ if ( CParent::IsNegative(result) )
ThrowIntegerOverflow();
}
}
--- a/c++/src/build-system/configure.ac
+++ b/c++/src/build-system/configure.ac
@@ -5181,15 +5187,26 @@ if test "$with_boost" != "no"; then
AC_CACHE_CHECK([Boost version],
ncbi_cv_lib_boost_version,
[AC_LANG_CONFTEST([AC_LANG_SOURCE([[
+cat >/dev/null <<_NCBI_EOF
#include <boost/version.hpp>
-ncbi_cv_lib_boost_version_num=BOOST_VERSION
-ncbi_cv_lib_boost_version=BOOST_LIB_VERSION
+_NCBI_EOF
+get_BOOST_VERSION() {
+ grep '^[^#]' <<_NCBI_EOF
+BOOST_VERSION
+_NCBI_EOF
+}
+get_BOOST_LIB_VERSION() {
+ grep '^[^#]' <<_NCBI_EOF
+BOOST_LIB_VERSION
+_NCBI_EOF
+}
+ncbi_cv_lib_boost_version_num=\`get_BOOST_VERSION\`
+ncbi_cv_lib_boost_version=\`get_BOOST_LIB_VERSION | tr -d '"'\`
]])])
- eval "$ac_cpp $BOOST_INCLUDE conftest.$ac_ext" \
- 2>&AS_MESSAGE_LOG_FD | grep '^ncbi_cv_' \
- | tr -d "$wschars" > conftest.sh
+ eval "$ac_cpp $BOOST_INCLUDE conftest.$ac_ext" > conftest.sh \
+ 2>&AS_MESSAGE_LOG_FD
. ./conftest.sh
- rm -f contest*
+ rm -f conftest*
])
AC_DEFINE_UNQUOTED(NCBI_EXPECTED_BOOST_VERSION,
$ncbi_cv_lib_boost_version_num,
Subject: include required by recent compiler
Description: a recent gcc version requires an include
Author: Olivier Sallou <osallou@debian.org>
Forwarded: yes
Bug: sent by mail
Last-Updated: 2014-06-30
--- a/c++/include/corelib/ncbistl.hpp
+++ b/c++/include/corelib/ncbistl.hpp
@@ -215,6 +215,7 @@ END_NCBI_SCOPE
# elif defined(_GLIBCXX_DEPRECATED)
# include <ext/concurrence.h>
# ifdef _GLIBCXX_THROW_OR_ABORT /* using libstdc++ from GCC 4.8 or later */
+# include <typeinfo>
# include <bits/unique_ptr.h>
# include <bits/shared_ptr.h>
# endif
Author: Aaron M. Ucko <ucko@debian.org>
Date: Wed Dec 14 22:44:19 2016 -0500
Description: Hang on to sequence data even if -parse_deflines recognized a non-local ID,
on the condition that the environment variable BLAST_ALWAYS_KEEP_SEQUENCE
(or configuration parameter [BLAST] always_keep_sequence) is set to a
"true" value (English-only, case-insensitive true, t, yes, y, or 1).
--- a/c++/src/algo/blast/api/search_strategy.cpp
+++ b/c++/src/algo/blast/api/search_strategy.cpp
@@ -495,6 +495,11 @@ void CExportStrategy::x_Process_Pssm(CRe
......
......@@ -6,11 +6,8 @@ no_multiarch_rpath
use_pie_for_apps
skip_services_unit_test
fix_configure
#fix_version_extraction
#support_recent_boost
support_x32
suppress_gnutls_version_check
optionally_keep_sequence
fix_unit_tests
#support_boost_1_67
system_mbedtls_only
--- a/c++/include/corelib/teamcity_messages.h
+++ b/c++/include/corelib/teamcity_messages.h
@@ -33,9 +33,9 @@ protected:
std::ostream *m_out;
public:
- std::string escape(std::string s);
+ std::string escape(const std::string &s);
void openMsg(const std::string &name);
- void writeProperty(std::string name, std::string value);
+ void writeProperty(const std::string &name, const std::string &value);
void closeMsg();
public:
@@ -46,14 +46,14 @@ public:
void setOutput(std::ostream &);
- void suiteStarted(std::string name, std::string flowid = std::string());
- void suiteFinished(std::string name, std::string flowid = std::string());
+ void suiteStarted(const std::string &name, const std::string &flowid = std::string());
+ void suiteFinished(const std::string &name, const std::string &flowid = std::string());
- void testStarted(std::string name, std::string flowid = std::string(), bool captureStandardOutput = false);
- void testFailed(std::string name, std::string message, std::string details, std::string flowid = std::string());
- void testIgnored(std::string name, std::string message, std::string flowid = std::string());
- void testOutput(std::string name, std::string output, std::string flowid, bool isStdErr = StdOut);
- void testFinished(std::string name, int durationMs = -1, std::string flowid = std::string());
+ void testStarted(const std::string &name, const std::string &flowid = std::string(), bool captureStandardOutput = false);
+ void testFailed(const std::string &name, const std::string &message, const std::string &details, const std::string &flowid = std::string());
+ void testIgnored(const std::string &name, const std::string &message, const std::string &flowid = std::string());
+ void testOutput(const std::string &name, const std::string &output, const std::string &flowid, bool isStdErr = StdOut);
+ void testFinished(const std::string &name, int durationMs = -1, const std::string &flowid = std::string());
};
}
--- a/c++/src/corelib/teamcity_boost.cpp
+++ b/c++/src/corelib/teamcity_boost.cpp
@@ -83,6 +83,17 @@ public:
virtual void entry_context_start(std::ostream&, boost::unit_test::log_level);
virtual void log_entry_context(std::ostream&, boost::unit_test::const_string);
virtual void entry_context_finish(std::ostream&);
+
+#if BOOST_VERSION >= 106500
+ // Since v1.65.0 the log level is passed to the formatters for the contexts
+ // See boostorg/test.git:fcb302b66ea09c25f0682588d22fbfdf59eac0f7
+ void log_entry_context(std::ostream& os, boost::unit_test::log_level, boost::unit_test::const_string ctx) override {
+ log_entry_context(os, ctx);
+ }
+ void entry_context_finish(std::ostream& os, boost::unit_test::log_level) override {
+ entry_context_finish(os);
+ }
+#endif
};
// Fake fixture to register formatter
@@ -90,14 +101,17 @@ struct TeamcityFormatterRegistrar {
TeamcityFormatterRegistrar() {
if (underTeamcity()) {
boost::unit_test::unit_test_log.set_formatter(new TeamcityBoostLogFormatter());
- boost::unit_test::unit_test_log.set_threshold_level
- (RTCFG(but::log_level, LOG_LEVEL, log_level));
+ boost::unit_test::unit_test_log.set_threshold_level(boost::unit_test::log_test_units);
}
}
};
BOOST_GLOBAL_FIXTURE(TeamcityFormatterRegistrar);
+// Dummy method used to keep object file in case of static library linking
+// See README.md and https://github.com/JetBrains/teamcity-cpp/pull/19
+void TeamcityGlobalFixture() {}
+
// Formatter implementation
static std::string toString(boost::unit_test::const_string bstr) {
std::stringstream ss;
--- a/c++/src/corelib/teamcity_messages.cpp
+++ b/c++/src/corelib/teamcity_messages.cpp
@@ -26,7 +26,7 @@ namespace jetbrains {
namespace teamcity {
std::string getFlowIdFromEnvironment() {
-#if (defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)) && 0
+#if (defined(WIN32) || defined(_WIN32) || defined(__WIN32)) && !defined(__CYGWIN__) && !defined(__MINGW32__) && 0
char *flowId = NULL;
size_t sz = 0;
std::string result;
@@ -43,7 +43,7 @@ std::string getFlowIdFromEnvironment() {
}
bool underTeamcity() {
-#if (defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)) && 0
+#if (defined(WIN32) || defined(_WIN32) || defined(__WIN32)) && !defined(__CYGWIN__) && !defined(__MINGW32__) && 0
char *teamCityProjectName = 0;
size_t sz = 0;
bool result = false;
@@ -66,8 +66,9 @@ void TeamcityMessages::setOutput(std::os
m_out = &out;
}
-std::string TeamcityMessages::escape(std::string s) {
+std::string TeamcityMessages::escape(const std::string &s) {
std::string result;
+ result.reserve(s.length());
for (size_t i = 0; i < s.length(); i++) {
char c = s[i];
@@ -86,8 +87,7 @@ std::string TeamcityMessages::escape(std
}
void TeamcityMessages::openMsg(const std::string &name) {
- // endl for http://jetbrains.net/tracker/issue/TW-4412
- *m_out << std::endl << "##teamcity[" << name;
+ *m_out << "##teamcity[" << name;
}
void TeamcityMessages::closeMsg() {
@@ -96,11 +96,11 @@ void TeamcityMessages::closeMsg() {
*m_out << std::endl;
}
-void TeamcityMessages::writeProperty(std::string name, std::string value) {
+void TeamcityMessages::writeProperty(const std::string &name, const std::string &value) {
*m_out << " " << name << "='" << escape(value) << "'";
}
-void TeamcityMessages::suiteStarted(std::string name, std::string flowid) {
+void TeamcityMessages::suiteStarted(const std::string &name, const std::string &flowid) {
openMsg("testSuiteStarted");
writeProperty("name", name);
if(flowid.length() > 0) {
@@ -110,7 +110,7 @@ void TeamcityMessages::suiteStarted(std:
closeMsg();
}
-void TeamcityMessages::suiteFinished(std::string name, std::string flowid) {
+void TeamcityMessages::suiteFinished(const std::string &name, const std::string &flowid) {
openMsg("testSuiteFinished");
writeProperty("name", name);
if(flowid.length() > 0) {
@@ -120,7 +120,7 @@ void TeamcityMessages::suiteFinished(std
closeMsg();
}
-void TeamcityMessages::testStarted(std::string name, std::string flowid, bool captureStandardOutput) {
+void TeamcityMessages::testStarted(const std::string &name, const std::string &flowid, bool captureStandardOutput) {
openMsg("testStarted");
writeProperty("name", name);
if(flowid.length() > 0) {
@@ -134,7 +134,7 @@ void TeamcityMessages::testStarted(std::
closeMsg();
}
-void TeamcityMessages::testFinished(std::string name, int durationMs, std::string flowid) {
+void TeamcityMessages::testFinished(const std::string &name, int durationMs, const std::string &flowid) {
openMsg("testFinished");
writeProperty("name", name);
@@ -152,7 +152,7 @@ void TeamcityMessages::testFinished(std:
closeMsg();
}
-void TeamcityMessages::testFailed(std::string name, std::string message, std::string details, std::string flowid) {
+void TeamcityMessages::testFailed(const std::string &name, const std::string &message, const std::string &details, const std::string &flowid) {
openMsg("testFailed");
writeProperty("name", name);
writeProperty("message", message);
@@ -164,7 +164,7 @@ void TeamcityMessages::testFailed(std::s
closeMsg();
}
-void TeamcityMessages::testIgnored(std::string name, std::string message, std::string flowid) {
+void TeamcityMessages::testIgnored(const std::string &name, const std::string &message, const std::string &flowid) {
openMsg("testIgnored");
writeProperty("name", name);
writeProperty("message", message);
@@ -175,7 +175,7 @@ void TeamcityMessages::testIgnored(std::
closeMsg();
}
-void TeamcityMessages::testOutput(std::string name, std::string output, std::string flowid, bool isStdError) {
+void TeamcityMessages::testOutput(const std::string &name, const std::string &output, const std::string &flowid, bool isStdError) {
openMsg(isStdError ? "testStdErr" : "testStdOut");
writeProperty("name", name);
writeProperty("out", output);
--- a/c++/src/corelib/test_boost.cpp
+++ b/c++/src/corelib/test_boost.cpp
@@ -95,8 +95,15 @@
#if BOOST_VERSION >= 106000
# define attr_value utils::attr_value
-# define RTCFG(type, new_name, old_name) \
- but::runtime_config::get<type >(but::runtime_config::new_name)
+# if BOOST_VERSION >= 106400
+ // Everything old is new again, apparently...
+# define RTCFG(type, new_name, old_name) \
+ but::runtime_config::get<type >(but::runtime_config::btrt_##old_name)
+# define CONFIGURED_FILTERS RTCFG(std::vector<std::string>, _, run_filters)
+# else
+# define RTCFG(type, new_name, old_name) \
+ but::runtime_config::get<type >(but::runtime_config::new_name)
+# endif
#else
# define RTCFG(type, new_name, old_name) but::runtime_config::old_name()
# if BOOST_VERSION >= 105900
@@ -112,8 +119,10 @@
# endif
#endif
-#define CONFIGURED_FILTERS \
+#ifndef CONFIGURED_FILTERS
+ #define CONFIGURED_FILTERS \
RTCFG(std::vector<std::string>, RUN_FILTERS, test_to_run)
+#endif
#ifdef NCBI_COMPILER_MSVC
# pragma warning(pop)
@@ -278,11 +287,19 @@ public:
virtual
void entry_context_start(ostream& ostr, but::log_level l);
+# if BOOST_VERSION >= 106500
+ virtual
+ void log_entry_context(ostream& os, but::log_level l, but::const_string v);
+
+ virtual
+ void entry_context_finish(ostream& os, but::log_level l);
+# else
virtual
void log_entry_context(ostream& ostr, but::const_string value);
virtual
void entry_context_finish (ostream& ostr);
+# endif
#endif
private:
@@ -2124,6 +2141,19 @@ void CNcbiBoostLogger::entry_context_sta
m_Upper->entry_context_start(ostr, l);
}
+# if BOOST_VERSION >= 106500
+void CNcbiBoostLogger::log_entry_context(ostream& ostr,
+ but::log_level l,
+ but::const_string value)
+{
+ m_Upper->log_entry_context(ostr, l, value);
+}
+
+void CNcbiBoostLogger::entry_context_finish(ostream& ostr, but::log_level l)
+{
+ m_Upper->entry_context_finish(ostr, l);
+}
+# else
void CNcbiBoostLogger::log_entry_context(ostream& ostr,
but::const_string value)
{
@@ -2134,6 +2164,7 @@ void CNcbiBoostLogger::entry_context_fin
{
m_Upper->entry_context_finish(ostr);
}
+# endif
#endif
void
@@ -2316,7 +2347,7 @@ main(int argc, char* argv[])
if (
#if BOOST_VERSION >= 106000
- runtime_config::get<bool>( runtime_config::RESULT_CODE )
+ RTCFG(bool, RESULT_CODE, result_code)
#else
!runtime_config::no_result_code()
#endif
Subject: build correctly on architectures that wound up w/NCBI_SLOW_ATOMIC_SWAP
* include/corelib/impl/ncbi_atomic_defs.h, include/corelib/ncbiatomic.h:
fix powerpc detection, which previously only worked under Darwin.
* src/objects/seq/seq_id_*.hpp: move sx_GetSeqIdMutex to join its users.
Author: Aaron M. Ucko <ucko@debian.org>
Last-Update: 2011-06-08
Index: b/c++/include/corelib/impl/ncbi_atomic_defs.h
===================================================================
--- a/c++/include/corelib/impl/ncbi_atomic_defs.h 2011-06-08 20:26:07.000000000 -0400
+++ b/c++/include/corelib/impl/ncbi_atomic_defs.h 2011-06-08 20:29:25.000000000 -0400
@@ -259,7 +259,7 @@
# endif
#endif
-#if !defined(NCBI_SWAP_POINTERS) && !defined(NCBI_SWAP_POINTERS_CONDITIONALLY) && !defined(NCBI_NO_THREADS) && (!defined(NCBI_COUNTER_ASM_OK) || (!defined(__i386) && !defined(__ppc__) && !defined(__ppc64__) && !defined(__sparc) && !defined(__x86_64)))
+#if !defined(NCBI_SWAP_POINTERS) && !defined(NCBI_SWAP_POINTERS_CONDITIONALLY) && !defined(NCBI_NO_THREADS) && (!defined(NCBI_COUNTER_ASM_OK) || (!defined(__i386) && !defined(__powerpc__) && !defined(__powerpc64__) && !defined(__ppc__) && !defined(__ppc64__) && !defined(__sparc) && !defined(__x86_64)))
# define NCBI_SWAP_POINTERS_EXTERN 1
# define NCBI_SLOW_ATOMIC_SWAP 1
#endif
Index: b/c++/include/corelib/ncbiatomic.h
===================================================================
--- a/c++/include/corelib/ncbiatomic.h 2011-06-08 20:26:00.000000000 -0400
+++ b/c++/include/corelib/ncbiatomic.h 2011-06-08 20:30:34.000000000 -0400
@@ -121,14 +121,14 @@
asm volatile("swap [%2], %1" : "=m" (*nv_loc), "=r" (old_value)
: "r" (nv_loc), "1" (new_value), "m" (*nv_loc));
return old_value;
-# elif defined(__ppc__) || defined(__ppc64__)
+# elif defined(__powerpc__) || defined(__powerpc64__) || defined(__ppc__) || defined(__ppc64__)
void* old_value;
int swapped = 0;
NCBI_SCHED_SPIN_INIT();
while ( !swapped ) {
swapped = 0;
asm volatile(
-#ifdef __ppc64__
+#if defined(__powerpc64__) || defined(__ppc64__)
"ldarx %1,0,%4\n\tstdcx. %3,0,%4"
#else
"lwarx %1,0,%4\n\tstwcx. %3,0,%4"
Index: b/c++/src/objects/seq/seq_id_handle.cpp
===================================================================
--- a/c++/src/objects/seq/seq_id_handle.cpp 2011-06-08 20:26:34.000000000 -0400
+++ b/c++/src/objects/seq/seq_id_handle.cpp 2011-06-08 20:28:43.000000000 -0400
@@ -47,11 +47,6 @@
// CSeq_id_Info
//
-//#define NCBI_SLOW_ATOMIC_SWAP
-#ifdef NCBI_SLOW_ATOMIC_SWAP
-DEFINE_STATIC_FAST_MUTEX(sx_GetSeqIdMutex);
-#endif
-
CSeq_id_Info::CSeq_id_Info(CSeq_id::E_Choice type,
CSeq_id_Mapper* mapper)
Index: b/c++/src/objects/seq/seq_id_tree.cpp
===================================================================
--- a/c++/src/objects/seq/seq_id_tree.cpp 2011-06-08 20:26:34.000000000 -0400
+++ b/c++/src/objects/seq/seq_id_tree.cpp 2011-06-08 20:28:53.000000000 -0400
@@ -42,6 +42,11 @@
BEGIN_NCBI_SCOPE
BEGIN_SCOPE(objects)
+//#define NCBI_SLOW_ATOMIC_SWAP
+#ifdef NCBI_SLOW_ATOMIC_SWAP
+DEFINE_STATIC_FAST_MUTEX(sx_GetSeqIdMutex);
+#endif
+
////////////////////////////////////////////////////////////////////
//
// CSeq_id_***_Tree::
--- a/c++/src/corelib/teamcity_messages.cpp
+++ b/c++/src/corelib/teamcity_messages.cpp
@@ -15,40 +15,61 @@
* $Id: teamcity_messages.cpp 435791 2014-05-20 18:47:58Z camacho $
*/
-#include <ncbi_pch.hpp>
-
-#include <stdlib.h>
-#include <sstream>
-
#include "teamcity_messages.h"
-using namespace std;
+#include <cstdlib>
+#include <sstream>
-namespace JetBrains {
+namespace jetbrains {
+namespace teamcity {
std::string getFlowIdFromEnvironment() {
+#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
+ char *flowId = NULL;
+ size_t sz = 0;
+ std::string result;
+ if(!_dupenv_s(&flowId, &sz,"TEAMCITY_PROCESS_FLOW_ID")) {
+ result = flowId != NULL ? flowId : "";
+ free(flowId);
+ }
+
+ return result;
+#else
const char *flowId = getenv("TEAMCITY_PROCESS_FLOW_ID");
return flowId == NULL ? "" : flowId;
+#endif
}
bool underTeamcity() {
+#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
+ char *teamCityProjectName = 0;
+ size_t sz = 0;
+ bool result = false;
+ if(!_dupenv_s(&teamCityProjectName, &sz, "TEAMCITY_PROJECT_NAME")) {
+ result = teamCityProjectName != NULL;
+ free(teamCityProjectName);
+ }
+
+ return result;
+#else
return getenv("TEAMCITY_PROJECT_NAME") != NULL;
+#endif
}
TeamcityMessages::TeamcityMessages()
-: m_out(&cout)
+: m_out(&std::cout)
{}
-void TeamcityMessages::setOutput(ostream &out) {
+void TeamcityMessages::setOutput(std::ostream &out) {
m_out = &out;
}
-string TeamcityMessages::escape(string s) {
- string result;
-
+std::string TeamcityMessages::escape(std::string s) {
+ std::string result;
+
for (size_t i = 0; i < s.length(); i++) {
char c = s[i];
-
+
switch (c) {
case '\n': result.append("|n"); break;
case '\r': result.append("|r"); break;
@@ -58,56 +79,60 @@ string TeamcityMessages::escape(string s
default: result.append(&c, 1);
}
}
-
+
return result;
}
-void TeamcityMessages::openMsg(const string &name) {
- *m_out << "##teamcity[" << name;
+void TeamcityMessages::openMsg(const std::string &name) {
+ // endl for http://jetbrains.net/tracker/issue/TW-4412
+ *m_out << std::endl << "##teamcity[" << name;
}
void TeamcityMessages::closeMsg() {
*m_out << "]";
// endl for http://jetbrains.net/tracker/issue/TW-4412
- *m_out << endl;
- m_out->flush();
+ *m_out << std::endl;
}
-void TeamcityMessages::writeProperty(string name, string value) {
+void TeamcityMessages::writeProperty(std::string name, std::string value) {
*m_out << " " << name << "='" << escape(value) << "'";
}
-void TeamcityMessages::suiteStarted(string name, string flowid) {
+void TeamcityMessages::suiteStarted(std::string name, std::string flowid) {
openMsg("testSuiteStarted");
writeProperty("name", name);
if(flowid.length() > 0) {
writeProperty("flowId", flowid);
}
-
+
closeMsg();
}
-void TeamcityMessages::suiteFinished(string name, string flowid) {
+void TeamcityMessages::suiteFinished(std::string name, std::string flowid) {
openMsg("testSuiteFinished");
writeProperty("name", name);
if(flowid.length() > 0) {
writeProperty("flowId", flowid);
}
-
+
closeMsg();
}
-void TeamcityMessages::testStarted(string name, string flowid) {
+void TeamcityMessages::testStarted(std::string name, std::string flowid, bool captureStandardOutput) {
openMsg("testStarted");
writeProperty("name", name);
if(flowid.length() > 0) {
writeProperty("flowId", flowid);
}
-
+
+ if(captureStandardOutput) {
+ writeProperty("captureStandardOutput", "true"); // false by default
+ }
+
closeMsg();
}
-void TeamcityMessages::testFinished(string name, int durationMs, string flowid) {
+void TeamcityMessages::testFinished(std::string name, int durationMs, std::string flowid) {
openMsg("testFinished");
writeProperty("name", name);
@@ -117,15 +142,15 @@ void TeamcityMessages::testFinished(stri
}
if(durationMs >= 0) {
- stringstream out;
+ std::stringstream out(std::ios_base::out);
out << durationMs;
writeProperty("duration", out.str());
}
-
+
closeMsg();
}
-void TeamcityMessages::testFailed(string name, string message, string details, string flowid) {
+void TeamcityMessages::testFailed(std::string name, std::string message, std::string details, std::string flowid) {
openMsg("testFailed");
writeProperty("name", name);
writeProperty("message", message);
@@ -133,19 +158,31 @@ void TeamcityMessages::testFailed(string
if(flowid.length() > 0) {
writeProperty("flowId", flowid);
}
-
+
closeMsg();
}
-void TeamcityMessages::testIgnored(std::string name, std::string message, string flowid) {
+void TeamcityMessages::testIgnored(std::string name, std::string message, std::string flowid) {
openMsg("testIgnored");
writeProperty("name", name);
writeProperty("message", message);
if(flowid.length() > 0) {
writeProperty("flowId", flowid);
}
-
+
closeMsg();
}
+void TeamcityMessages::testOutput(std::string name, std::string output, std::string flowid, bool isStdError) {
+ openMsg(isStdError ? "testStdErr" : "testStdOut");
+ writeProperty("name", name);
+ writeProperty("out", output);
+ if(flowid.length() > 0) {
+ writeProperty("flowId", flowid);
+ }
+
+ closeMsg();
+}
+
+}
}
--- a/c++/src/corelib/teamcity_messages.h
+++ b/c++/src/corelib/teamcity_messages.h
@@ -18,17 +18,18 @@
#ifndef H_TEAMCITY_MESSAGES
#define H_TEAMCITY_MESSAGES
-#include <string>
#include <iostream>
+#include <string>
-namespace JetBrains {
+namespace jetbrains {
+namespace teamcity {
std::string getFlowIdFromEnvironment();
bool underTeamcity();
class TeamcityMessages {
std::ostream *m_out;
-
+
protected:
std::string escape(std::string s);
@@ -37,19 +38,24 @@ protected:
void closeMsg();
public:
+ static const bool StdErr = true;
+ static const bool StdOut = false;
+
TeamcityMessages();
-
+
void setOutput(std::ostream &);
-
- void suiteStarted(std::string name, std::string flowid = "");
- void suiteFinished(std::string name, std::string flowid = "");
-
- void testStarted(std::string name, std::string flowid = "");
- void testFailed(std::string name, std::string message, std::string details, std::string flowid = "");
- void testIgnored(std::string name, std::string message, std::string flowid = "");
- void testFinished(std::string name, int durationMs = -1, std::string flowid = "");
+
+ void suiteStarted(std::string name, std::string flowid = std::string());
+ void suiteFinished(std::string name, std::string flowid = std::string());
+
+ void testStarted(std::string name, std::string flowid = std::string(), bool captureStandardOutput = false);
+ void testFailed(std::string name, std::string message, std::string details, std::string flowid = std::string());
+ void testIgnored(std::string name, std::string message, std::string flowid = std::string());
+ void testOutput(std::string name, std::string output, std::string flowid, bool isStdErr = StdOut);
+ void testFinished(std::string name, int durationMs = -1, std::string flowid = std::string());
};
}
+}
#endif /* H_TEAMCITY_MESSAGES */
Author: Aaron M. Ucko <ucko@debian.org>
Date: Fri Aug 5 19:42:47 2016 -0400
Description: Support x32
Avoid picking up wrong inline assembly.
--- a/c++/include/corelib/impl/ncbi_atomic_defs.h
+++ b/c++/include/corelib/impl/ncbi_atomic_defs.h
@@ -117,7 +117,7 @@
......
Author: Aaron M. Ucko <ucko@debian.org>
Date: Wed Dec 7 21:34:44 2016 -0500
Description: suppress gnutls version check
Prevent bailing when the exact compile-time and runtime GNU TLS versions
differ; trust dpkg to disallow combinations that are actually incompatible.
--- a/c++/src/connect/ncbi_gnutls.c
+++ b/c++/src/connect/ncbi_gnutls.c
@@ -660,6 +660,7 @@ static EIO_Status s_GnuTlsInit(FSSLPull
......
Author: Aaron M. Ucko <amu@ucko.debian.net>
Date: Sun Feb 3 21:43:23 2019 -0500
Subject: Omit convenience mbed TLS copy
--- a/c++/src/connect/Makefile.connssl.lib
+++ b/c++/src/connect/Makefile.connssl.lib
@@ -2,7 +2,9 @@
......
Subject: upstream bug using hard path for touch
Description: upstream makes use of a hard path that
does not match on hurd systems. Patch comes from upstream
and will be included in next release
Author: Olivier Sallou <osallou@debian.org>
Last-Updated: 12/03/2012
--- a/c++/src/build-system/Makefile.meta.in
+++ b/c++/src/build-system/Makefile.meta.in
@@ -28,7 +28,7 @@
@make_shell@
RM = /bin/rm
-TOUCH = /usr/bin/touch
+TOUCH = @TOUCH@
MKDIR = /bin/mkdir
signature = @signature@
--- a/c++/src/build-system/Makefile.mk.in
+++ b/c++/src/build-system/Makefile.mk.in
@@ -54,7 +54,7 @@
RMDIR = /bin/rm -rf
COPY = /bin/cp -p
BINCOPY = @BINCOPY@
-TOUCH = /usr/bin/touch
+TOUCH = @TOUCH@
MKDIR = /bin/mkdir
BINTOUCH = $(TOUCH)
LN_S = @LN_S@
--- a/c++/src/build-system/NEWS
+++ b/c++/src/build-system/NEWS
@@ -8,3 +8,5 @@
2011-05-17: new @ncbi_java@ variable for --with-jni builds.
2011-10-05: new @FEATURES@ variable for the unit test framework.
+
+2012-02-27: new @TOUCH@ variable to avoid hard-coded paths.
--- a/c++/src/build-system/configure.ac
+++ b/c++/src/build-system/configure.ac
@@ -1965,6 +1965,7 @@
AC_MSG_RESULT(no)
fi
+AC_PATH_PROG(TOUCH, touch, [], /bin:/usr/bin:$PATH)
AC_PROG_EGREP
AC_MSG_CHECKING([how to run $EGREP quietly])
if test -z "`echo foo | $EGREP -q fo+ 2>>config.log || echo $?`"; then
--- a/c++/src/build-system/configure
+++ b/c++/src/build-system/configure
@@ -318,7 +318,7 @@
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PROJECTS build build_cpu build_vendor build_os host host_cpu host_vendor host_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX MT_SFX DLL DLL_LIB_SETTING IF_WITH_DLL UNLESS_WITH_DLL STATIC USUAL_AND_DLL USUAL_AND_LIB LN_S RANLIB ac_ct_RANLIB AR STRIP DISTCC CCACHE TAIL EGREP VALGRIND_PATH CXXCPP TCHECK_CL AMQ CPP Z_INCLUDE Z_LIBS BZ2_INCLUDE BZ2_LIBS LZO_INCLUDE LZO_LIBS PCRE_INCLUDE PCRE_LIBS LIBGNUTLS_CONFIG GNUTLS_INCLUDE GNUTLS_LIBS OPENSSL_INCLUDE OPENSSL_LIBS FTDS64_INCLUDE FTDS64_LIBS FTDS64_LIB FTDS64_CTLIB_INCLUDE FTDS64_CTLIB_LIBS FTDS64_CTLIB_LIB FTDS_INCLUDE FTDS_LIBS FTDS_LIB freetds ftds64 mysql_config PYTHON PYTHON_INCLUDE PYTHON_LIBS PYTHON23 PYTHON23_INCLUDE PYTHON23_LIBS PYTHON24 PYTHON24_INCLUDE PYTHON24_LIBS PYTHON25 PYTHON25_INCLUDE PYTHON25_LIBS _ACJNI_JAVAC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS wxconf EXPAT_INCLUDE EXPAT_LIBS SABLOT_INCLUDE SABLOT_LIBS LIBXML_INCLUDE LIBXML_LIBS LIBXSLT_INCLUDE LIBXSLT_LIBS XSLTPROC SQLITE3_INCLUDE SQLITE3_LIBS OECHEM_INCLUDE OECHEM_LIBS SGE_INCLUDE SGE_LIBS MUPARSER_INCLUDE MUPARSER_LIBS HDF5_INCLUDE HDF5_LIBS JPEG_INCLUDE JPEG_LIBS PNG_INCLUDE PNG_LIBS TIFF_INCLUDE TIFF_LIBS UNGIF_INCLUDE UNGIF_LIBS GIF_INCLUDE GIF_LIBS XPM_INCLUDE XPM_LIBS freetype_config MAGIC_INCLUDE MAGIC_LIBS CURL_INCLUDE CURL_LIBS signature build_root top_srcdir srcdir status_dir builddir runpath ncbi_runpath c_ncbi_runpath LINK C_LINK TAIL_N EGREP_Q FAST_CFLAGS FAST_CXXFLAGS OBJCXX_CXXFLAGS DEPFLAGS DEPFLAGS_POST FAST_LDFLAGS APP_LDFLAGS DLL_LDFLAGS C_LIBS OBJCXX_LIBS GCCPCH RUNPATH_ORIGIN NO_STRICT_ALIASING D_SFX DEBUG_SFX LIB_OR_DLL FORCE_STATIC_LIB APP_LIB_SETTING APP_LIBS_SETTING LINK_DLL has_dll_loadable LINK_LOADABLE CFLAGS_DLL CXXFLAGS_DLL ALLOW_UNDEF FORBID_UNDEF OPT_GROUPS local_lbsm ncbi_crypt CONNEXT XCONNEXT serial bdb dbapi objects gui algo app internal sra check CHECK_ARG CHECK_TOOLS CHECK_TIMEOUT_MULT CHECK_OS_NAME FEATURES script_shell make_shell obj_ext lib_pre lib_l_pre lib_ext dll_ext loadable_ext lib_l_ext exe_ext f_compile f_outobj f_outlib f_libpath f_runpath f_outexe BDB_LIB BDB_CACHE_LIB DBAPI_DRIVER DBAPI_CTLIB DBAPI_DBLIB DBAPI_MYSQL DBAPI_ODBC THREAD_LIBS NCBIATOMIC_LIB NETWORK_LIBS NETWORK_PURE_LIBS RESOLVER_LIBS MATH_LIBS KSTAT_LIBS RPCSVC_LIBS CRYPT_LIBS DL_LIBS RT_LIBS UUID_LIBS DEMANGLE_LIBS ICONV_LIBS Z_LIB BZ2_LIB PCREPOSIX_LIBS PCRE_LIB OPENSSL_STATIC_LIBS TLS_INCLUDE TLS_LIBS SYBASE_PATH SYBASE_LCL_PATH SYBASE_INCLUDE SYBASE_LIBS SYBASE_DLLS SYBASE_DBLIBS MYSQL_INCLUDE MYSQL_LIBS BERKELEYDB_INCLUDE BERKELEYDB_LIBS BERKELEYDB_STATIC_LIBS BERKELEYDB_CXX_LIBS BERKELEYDB_CXX_STATIC_LIBS ODBC_INCLUDE ODBC_LIBS BOOST_INCLUDE BOOST_LIBPATH BOOST_TAG BOOST_REGEX_LIBS BOOST_REGEX_STATIC_LIBS BOOST_TEST_PEM_LIBS BOOST_TEST_PEM_STATIC_LIBS BOOST_TEST_TEM_LIBS BOOST_TEST_TEM_STATIC_LIBS BOOST_TEST_UTF_LIBS BOOST_TEST_UTF_STATIC_LIBS BOOST_THREAD_LIBS BOOST_THREAD_STATIC_LIBS NCBI_C_INCLUDE NCBI_C_LIBPATH OPENGL_INCLUDE OPENGL_LIBS OPENGL_STATIC_LIBS OSMESA_INCLUDE OSMESA_LIBS OSMESA_STATIC_LIBS GLUT_INCLUDE GLUT_LIBS GLEW_INCLUDE GLEW_LIBS GLEW_STATIC_LIBS FLTK_INCLUDE FLTK_LIBS FLTK_LIBS_GL FLTK_LIBS_IMAGES FLTK_LIBS_ALL FLTK_STATIC_LIBS FLTK_STATIC_LIBS_GL FLTK_STATIC_LIBS_IMAGES FLTK_STATIC_LIBS_ALL FLTK_CONFIG WXWIDGETS_INCLUDE WXWIDGETS_LIBS WXWIDGETS_STATIC_LIBS WXWIDGETS_GL_LIBS WXWIDGETS_GL_STATIC_LIBS WXWIDGETS_POST_LINK FASTCGI_INCLUDE FASTCGI_LIBS FASTCGI_OBJS NCBI_SSS_INCLUDE NCBI_SSS_LIBPATH LIBSSSUTILS LIBSSSDB sssutils SP_INCLUDE SP_LIBS ORBACUS_INCLUDE ORBACUS_LIBPATH LIBOB LIBIMR ICU_CONFIG ICU_INCLUDE ICU_LIBS ICU_STATIC_LIBS EXPAT_STATIC_LIBS SABLOT_STATIC_LIBS LIBXML_STATIC_LIBS LIBXSLT_STATIC_LIBS XERCES_INCLUDE XERCES_LIBS XERCES_STATIC_LIBS XALAN_INCLUDE XALAN_LIBS XALAN_STATIC_LIBS SQLITE3_STATIC_LIBS FREETYPE_INCLUDE FREETYPE_LIBS ncbi_xreader_pubseqos ncbi_xreader_pubseqos2 UNLESS_PUBSEQOS JDK_PATH JDK_INCLUDE ncbi_java NCBI_C_ncbi BINCOPY APP_NOCOPY APP_OR_NULL IF_REBUILDING_LIBS IF_REBUILDING_CONDITIONALLY IF_DEACTIVATING configurables_mfname CC_FILTER CXX_FILTER AR_FILTER LINK_FILTER CC_WRAPPER CXX_WRAPPER AR_WRAPPER LINK_WRAPPER KeepStateTarget Rules serial_ws50_rtti_kludge ncbicntr UNIX_SRC UNIX_USR_PROJ compiler compiler_root compiler_version COMPILER OSTYPE NCBI_PLATFORM_BITS LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS PROJECTS build build_cpu build_vendor build_os host host_cpu host_vendor host_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX MT_SFX DLL DLL_LIB_SETTING IF_WITH_DLL UNLESS_WITH_DLL STATIC USUAL_AND_DLL USUAL_AND_LIB LN_S RANLIB ac_ct_RANLIB AR STRIP DISTCC CCACHE TAIL TOUCH EGREP VALGRIND_PATH CXXCPP TCHECK_CL AMQ CPP Z_INCLUDE Z_LIBS BZ2_INCLUDE BZ2_LIBS LZO_INCLUDE LZO_LIBS PCRE_INCLUDE PCRE_LIBS LIBGNUTLS_CONFIG GNUTLS_INCLUDE GNUTLS_LIBS OPENSSL_INCLUDE OPENSSL_LIBS FTDS64_INCLUDE FTDS64_LIBS FTDS64_LIB FTDS64_CTLIB_INCLUDE FTDS64_CTLIB_LIBS FTDS64_CTLIB_LIB FTDS_INCLUDE FTDS_LIBS FTDS_LIB freetds ftds64 mysql_config PYTHON PYTHON_INCLUDE PYTHON_LIBS PYTHON23 PYTHON23_INCLUDE PYTHON23_LIBS PYTHON24 PYTHON24_INCLUDE PYTHON24_LIBS PYTHON25 PYTHON25_INCLUDE PYTHON25_LIBS _ACJNI_JAVAC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS wxconf EXPAT_INCLUDE EXPAT_LIBS SABLOT_INCLUDE SABLOT_LIBS LIBXML_INCLUDE LIBXML_LIBS LIBXSLT_INCLUDE LIBXSLT_LIBS XSLTPROC SQLITE3_INCLUDE SQLITE3_LIBS OECHEM_INCLUDE OECHEM_LIBS SGE_INCLUDE SGE_LIBS MUPARSER_INCLUDE MUPARSER_LIBS HDF5_INCLUDE HDF5_LIBS JPEG_INCLUDE JPEG_LIBS PNG_INCLUDE PNG_LIBS TIFF_INCLUDE TIFF_LIBS UNGIF_INCLUDE UNGIF_LIBS GIF_INCLUDE GIF_LIBS XPM_INCLUDE XPM_LIBS freetype_config MAGIC_INCLUDE MAGIC_LIBS CURL_INCLUDE CURL_LIBS signature build_root top_srcdir srcdir status_dir builddir runpath ncbi_runpath c_ncbi_runpath LINK C_LINK TAIL_N EGREP_Q FAST_CFLAGS FAST_CXXFLAGS OBJCXX_CXXFLAGS DEPFLAGS DEPFLAGS_POST FAST_LDFLAGS APP_LDFLAGS DLL_LDFLAGS C_LIBS OBJCXX_LIBS GCCPCH RUNPATH_ORIGIN NO_STRICT_ALIASING D_SFX DEBUG_SFX LIB_OR_DLL FORCE_STATIC_LIB APP_LIB_SETTING APP_LIBS_SETTING LINK_DLL has_dll_loadable LINK_LOADABLE CFLAGS_DLL CXXFLAGS_DLL ALLOW_UNDEF FORBID_UNDEF OPT_GROUPS local_lbsm ncbi_crypt CONNEXT XCONNEXT serial bdb dbapi objects gui algo app internal sra check CHECK_ARG CHECK_TOOLS CHECK_TIMEOUT_MULT CHECK_OS_NAME FEATURES script_shell make_shell obj_ext lib_pre lib_l_pre lib_ext dll_ext loadable_ext lib_l_ext exe_ext f_compile f_outobj f_outlib f_libpath f_runpath f_outexe BDB_LIB BDB_CACHE_LIB DBAPI_DRIVER DBAPI_CTLIB DBAPI_DBLIB DBAPI_MYSQL DBAPI_ODBC THREAD_LIBS NCBIATOMIC_LIB NETWORK_LIBS NETWORK_PURE_LIBS RESOLVER_LIBS MATH_LIBS KSTAT_LIBS RPCSVC_LIBS CRYPT_LIBS DL_LIBS RT_LIBS UUID_LIBS DEMANGLE_LIBS ICONV_LIBS Z_LIB BZ2_LIB PCREPOSIX_LIBS PCRE_LIB OPENSSL_STATIC_LIBS TLS_INCLUDE TLS_LIBS SYBASE_PATH SYBASE_LCL_PATH SYBASE_INCLUDE SYBASE_LIBS SYBASE_DLLS SYBASE_DBLIBS MYSQL_INCLUDE MYSQL_LIBS BERKELEYDB_INCLUDE BERKELEYDB_LIBS BERKELEYDB_STATIC_LIBS BERKELEYDB_CXX_LIBS BERKELEYDB_CXX_STATIC_LIBS ODBC_INCLUDE ODBC_LIBS BOOST_INCLUDE BOOST_LIBPATH BOOST_TAG BOOST_REGEX_LIBS BOOST_REGEX_STATIC_LIBS BOOST_TEST_PEM_LIBS BOOST_TEST_PEM_STATIC_LIBS BOOST_TEST_TEM_LIBS BOOST_TEST_TEM_STATIC_LIBS BOOST_TEST_UTF_LIBS BOOST_TEST_UTF_STATIC_LIBS BOOST_THREAD_LIBS BOOST_THREAD_STATIC_LIBS NCBI_C_INCLUDE NCBI_C_LIBPATH OPENGL_INCLUDE OPENGL_LIBS OPENGL_STATIC_LIBS OSMESA_INCLUDE OSMESA_LIBS OSMESA_STATIC_LIBS GLUT_INCLUDE GLUT_LIBS GLEW_INCLUDE GLEW_LIBS GLEW_STATIC_LIBS FLTK_INCLUDE FLTK_LIBS FLTK_LIBS_GL FLTK_LIBS_IMAGES FLTK_LIBS_ALL FLTK_STATIC_LIBS FLTK_STATIC_LIBS_GL FLTK_STATIC_LIBS_IMAGES FLTK_STATIC_LIBS_ALL FLTK_CONFIG WXWIDGETS_INCLUDE WXWIDGETS_LIBS WXWIDGETS_STATIC_LIBS WXWIDGETS_GL_LIBS WXWIDGETS_GL_STATIC_LIBS WXWIDGETS_POST_LINK FASTCGI_INCLUDE FASTCGI_LIBS FASTCGI_OBJS NCBI_SSS_INCLUDE NCBI_SSS_LIBPATH LIBSSSUTILS LIBSSSDB sssutils SP_INCLUDE SP_LIBS ORBACUS_INCLUDE ORBACUS_LIBPATH LIBOB LIBIMR ICU_CONFIG ICU_INCLUDE ICU_LIBS ICU_STATIC_LIBS EXPAT_STATIC_LIBS SABLOT_STATIC_LIBS LIBXML_STATIC_LIBS LIBXSLT_STATIC_LIBS XERCES_INCLUDE XERCES_LIBS XERCES_STATIC_LIBS XALAN_INCLUDE XALAN_LIBS XALAN_STATIC_LIBS SQLITE3_STATIC_LIBS FREETYPE_INCLUDE FREETYPE_LIBS ncbi_xreader_pubseqos ncbi_xreader_pubseqos2 UNLESS_PUBSEQOS JDK_PATH JDK_INCLUDE ncbi_java NCBI_C_ncbi BINCOPY APP_NOCOPY APP_OR_NULL IF_REBUILDING_LIBS IF_REBUILDING_CONDITIONALLY IF_DEACTIVATING configurables_mfname CC_FILTER CXX_FILTER AR_FILTER LINK_FILTER CC_WRAPPER CXX_WRAPPER AR_WRAPPER LINK_WRAPPER KeepStateTarget Rules serial_ws50_rtti_kludge ncbicntr UNIX_SRC UNIX_USR_PROJ compiler compiler_root compiler_version COMPILER OSTYPE NCBI_PLATFORM_BITS LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -6615,6 +6615,46 @@
echo "${ECHO_T}no" >&6
fi
+# Extract the first word of "touch", so it can be a program name with args.
+set dummy touch; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_TOUCH+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $TOUCH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TOUCH="$TOUCH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_dummy="/bin:/usr/bin:$PATH"
+for as_dir in $as_dummy
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TOUCH="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+ ;;
+esac
+fi
+TOUCH=$ac_cv_path_TOUCH
+
+if test -n "$TOUCH"; then
+ echo "$as_me:$LINENO: result: $TOUCH" >&5
+echo "${ECHO_T}$TOUCH" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
echo "$as_me:$LINENO: checking for egrep" >&5
echo $ECHO_N "checking for egrep... $ECHO_C" >&6
if test "${ac_cv_prog_egrep+set}" = set; then
@@ -33848,6 +33888,7 @@
s,@DISTCC@,$DISTCC,;t t
s,@CCACHE@,$CCACHE,;t t
s,@TAIL@,$TAIL,;t t
+s,@TOUCH@,$TOUCH,;t t
s,@EGREP@,$EGREP,;t t
s,@VALGRIND_PATH@,$VALGRIND_PATH,;t t
s,@CXXCPP@,$CXXCPP,;t t