Re-add debian/ dir
authorAndreas Tille <tille@debian.org>
Tue, 12 Apr 2016 11:01:40 +0000 (13:01 +0200)
committerAndreas Tille <tille@debian.org>
Tue, 12 Apr 2016 11:01:40 +0000 (13:01 +0200)
39 files changed:
debian/README.Debian [new file with mode: 0644]
debian/README.source [new file with mode: 0644]
debian/changelog [new file with mode: 0644]
debian/compat [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/dirs [new file with mode: 0644]
debian/docs [new file with mode: 0644]
debian/get-orig-source [new file with mode: 0755]
debian/legacy/legacy.sh [new file with mode: 0755]
debian/ncbi-blast+-legacy.dirs [new file with mode: 0644]
debian/ncbi-blast+-legacy.links [new file with mode: 0644]
debian/ncbi-blast+.1 [new file with mode: 0644]
debian/ncbi-blast+.dirs [new file with mode: 0644]
debian/ncbi-blast+.manpages [new file with mode: 0644]
debian/patches/allow_gcc5 [new file with mode: 0644]
debian/patches/do_not_output_everything_to_stderr.patch [new file with mode: 0644]
debian/patches/enable_clean_after_failed_compile [new file with mode: 0644]
debian/patches/fix_arm_mips_build [new file with mode: 0644]
debian/patches/fix_checks [new file with mode: 0644]
debian/patches/fix_compilation [new file with mode: 0644]
debian/patches/fix_configure [new file with mode: 0644]
debian/patches/fix_gcc46_errors [new file with mode: 0644]
debian/patches/fix_gcc47_errors [new file with mode: 0644]
debian/patches/fix_kfreebsd_ftbs.patch [new file with mode: 0644]
debian/patches/fix_lib_deps [new file with mode: 0644]
debian/patches/hurd_fixes [new file with mode: 0644]
debian/patches/include_typeinfo [new file with mode: 0644]
debian/patches/legacy_rename_rpsblast [new file with mode: 0644]
debian/patches/no_multiarch_rpath [new file with mode: 0644]
debian/patches/series [new file with mode: 0644]
debian/patches/skip_services_unit_test [new file with mode: 0644]
debian/patches/support_other_cpus [new file with mode: 0644]
debian/patches/use_pie_for_apps [new file with mode: 0644]
debian/patches/wrong_path_to_touch.patch [new file with mode: 0644]
debian/rules [new file with mode: 0755]
debian/source/format [new file with mode: 0644]
debian/source/lintian-overrides [new file with mode: 0644]
debian/watch [new file with mode: 0644]

diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644 (file)
index 0000000..ff4641b
--- /dev/null
@@ -0,0 +1,10 @@
+blast+ for Debian
+---------------------
+
+ This package does not include the documentation of the software. Documentation is available online.
+ Detail is available:  man ncbi-blast+
+ Package does  not include test binaries nor datatool and projet_tree_builder from upstream.
+ Those binaries are indeed for internal upstream use, and are of no use nor related to blast+ tool itself
+ (see Bug #642991 discussion with upstream answers)
+
+ -- Olivier Sallou <osallou@irisa.fr>  Wed, 27 Apr 2011 15:19:59 +0200
diff --git a/debian/README.source b/debian/README.source
new file mode 100644 (file)
index 0000000..6dde084
--- /dev/null
@@ -0,0 +1,7 @@
+blast+ for Debian
+---------------------
+
+Lintian raises  hardening no fortify warnings that are false positives.
+
+
+
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..55abee7
--- /dev/null
@@ -0,0 +1,253 @@
+ncbi-blast+ (2.2.31-4) unstable; urgency=medium
+
+  * Really enable building architecture independent package separately
+    Closes: #809120
+  * Save time and do nothing for architecture independent builds
+
+ -- Andreas Tille <tille@debian.org>  Thu, 07 Jan 2016 18:50:31 +0100
+
+ncbi-blast+ (2.2.31-3) unstable; urgency=medium
+
+  * Drop explicite mentioning of quilt
+  * Enable building architecture independent package separately
+    Closes: #809120
+  * Override false lintian error
+  * DEP5 fixes
+
+ -- Andreas Tille <tille@debian.org>  Mon, 28 Dec 2015 12:32:23 +0100
+
+ncbi-blast+ (2.2.31-2) unstable; urgency=medium
+
+  * Fix a long-standing typo for GNU/kFreeBSD FTBS (Aaron M. Ucko) 
+
+ -- Olivier Sallou <osallou@debian.org>  Fri, 11 Dec 2015 09:44:43 +0100
+
+ncbi-blast+ (2.2.31-1) unstable; urgency=medium
+
+  * New upstream release 
+  * Allow parallel build (Closes: #798277). Thanks to Aron Xu <aron@debian.org>
+  * GCC break fix (recompile with gcc5, Closes: #793263).
+
+ -- Olivier Sallou <osallou@debian.org>  Thu, 10 Dec 2015 13:37:03 +0100
+
+ncbi-blast+ (2.2.30-4) unstable; urgency=medium
+
+  * d/patches/fix_compilation: Add an upstream patch to
+    include/util/bitset/bmconst.h to fix builds with GCC 5 on platforms
+    such as arm64 on which char is unsigned.  (Closes: #790667.)
+
+ -- Aaron M. Ucko <ucko@debian.org>  Thu, 02 Jul 2015 16:22:39 -0400
+
+ncbi-blast+ (2.2.30-3) unstable; urgency=medium
+
+  * Switch to unstable after unfreeze.
+
+ -- Olivier Sallou <osallou@debian.org>  Mon, 18 May 2015 14:34:50 +0200
+
+ncbi-blast+ (2.2.30-2) experimental; urgency=medium
+
+  * d/patches/allow_gcc5 (new): Allow compilation with GCC 5, per upstream.
+    (Closes: #778021.)
+
+ -- Aaron M. Ucko <ucko@debian.org>  Mon, 16 Feb 2015 22:38:50 -0500
+
+ncbi-blast+ (2.2.30-1) experimental; urgency=medium
+
+  * New upstream release
+  * d/control: switch to Standards 3.9.6 
+               fix svn url
+  * d/patches/fix_compilation: fix compilation issue
+
+ -- Olivier Sallou <osallou@debian.org>  Fri, 21 Nov 2014 18:21:26 +0100
+
+ncbi-blast+ (2.2.29-3) unstable; urgency=medium
+
+  * debian/patches/include_typeinfo: Patch include/corelib/ncbistl.hpp to
+    ensure sufficient coverage; fix typos in patch headers.  (Closes: #753190.)
+  * Standards-Version: 3.9.4.  (Already compliant.)
+
+ -- Aaron M. Ucko <ucko@debian.org>  Tue, 01 Jul 2014 18:27:46 -0400
+
+ncbi-blast+ (2.2.29-2) unstable; urgency=medium
+
+  * d/patches/include_typeinfo (Closes: #753190).
+
+ -- Olivier Sallou <osallou@debian.org>  Sat, 07 Jun 2014 11:28:22 +0200
+
+ncbi-blast+ (2.2.29-1) unstable; urgency=medium
+
+  * New upstream release 
+
+ -- Olivier Sallou <osallou@debian.org>  Fri, 06 Jun 2014 22:38:40 +0200
+
+ncbi-blast+ (2.2.28-2) unstable; urgency=low
+
+  * debian/patches/use_pie_for_apps: Explicitly build all executables with
+    -fPIE -pie, to avoid giving project_tree_builder a partial PIE
+    treatment that now fails on mips and mipsel.  (Closes: #710807.)
+  * debian/rules: Retire redundant APP_LDFLAGS override.
+  * Standards-Version: 3.9.4.  (Already compliant.)
+  
+ -- Aaron M. Ucko <ucko@debian.org>  Sun, 02 Jun 2013 23:00:44 -0400
+
+ncbi-blast+ (2.2.28-1) unstable; urgency=low
+
+  * New upstream release
+    - Thanks to Tim Booth for package update help.
+
+ -- Olivier Sallou <osallou@debian.org>  Sat, 01 Jun 2013 08:40:51 +0200
+
+ncbi-blast+ (2.2.27-3) unstable; urgency=low
+
+  * debian/series: active patch fix_arm_mips_build (Closes: #688661).
+
+ -- Olivier Sallou <osallou@debian.org>  Fri, 05 Oct 2012 11:03:03 +0200
+
+ncbi-blast+ (2.2.27-2) unstable; urgency=low
+
+  * debian/patches/fix_arm_mips_build: Fix FTBS on ARM and MIPS
+    (Closes: #688661).
+  * debian/rules: rename seedtop to seedtop+ to avoid blast2 conflict
+    (Closes: #688684).
+
+ -- Olivier Sallou <osallou@debian.org>  Mon, 24 Sep 2012 09:28:29 +0200
+
+ncbi-blast+ (2.2.27-1) unstable; urgency=low
+
+  * New upstream release 
+
+ -- Olivier Sallou <osallou@debian.org>  Fri, 21 Sep 2012 17:25:41 +0200
+
+ncbi-blast+ (2.2.26-3) unstable; urgency=low
+
+  [ Aaron M. Ucko ]
+  * debian/patches/fix_gcc47_errors: fix various GCC 4.7 compilation
+    errors and warnings.  (Closes: #669679.)
+    - 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.
+  * Wrap and sort build dependencies to ease maintenance thereof.
+  * Enable full hardening flags, introducing a small patch
+    (use_pie_for_apps) to reflect the need to build executables and
+    libraries differently.
+  * Use upstream's new --with-symbols flag in nostrip builds.
+
+  [ Andreas Tille ]
+  * debian/control: Modernize Vcs-* fields.
+
+ -- Aaron M. Ucko <ucko@debian.org>  Thu, 10 May 2012 23:42:49 -0400
+
+ncbi-blast+ (2.2.26-2) unstable; urgency=low
+
+  * debian/patches/wrong_path_to_touch.patch :Fix upstream FTBFS on the Hurd
+    hardcodes wrong path to touch (Closes: #663244)
+
+ -- Olivier Sallou <osallou@debian.org>  Wed, 07 Mar 2012 17:29:23 +0100
+
+ncbi-blast+ (2.2.26-1) unstable; urgency=low
+
+  [ Olivier Sallou ]
+  * New upstream release 
+  * Remove some patches, applied upstream
+
+  [ Andreas Tille]
+  * debian/copyright: Added Upstream-Contact
+
+ -- Olivier Sallou <osallou@debian.org>  Wed, 07 Mar 2012 09:37:10 +0100
+
+ncbi-blast+ (2.2.25-7) unstable; urgency=low
+
+  * Do not output everything to STDERR in
+    c++/src/app/blast/update_blastdb.pl
+    Closes: #644237
+  * debian/control: Depends s/${python:Depends}/python/ because
+    the python dependency of /usr/bin/windowmasker_2.2.22_adapter
+    is not detected obviosely
+  * debian/copyright: Indentation fixes to get DEP5 compatibility
+
+ -- Andreas Tille <tille@debian.org>  Wed, 21 Dec 2011 15:47:04 +0100
+
+ncbi-blast+ (2.2.25-6) unstable; urgency=low
+
+   * debian/control:
+     Luca Capello <luca@pca.it>, fix reference for legacy_blast (Closes: #642986).
+     + add a new line to separate the actual description from usage
+      instruction in the long Description:.
+   * debian/rules: add gene_info_reader binary in package
+
+ -- Olivier Sallou <olivier.sallou@irisa.fr>  Fri, 30 Sep 2011 12:31:05 -0400
+
+ncbi-blast+ (2.2.25-5) unstable; urgency=low
+
+  * Team upload.
+  * debian/patches/hurd_fixes: further patch configure(.ac) to reflect
+    -Wl,rpath,... support.  (Closes: #629656.)
+  * debian/patches/fix_lib_deps: link makembindex and srsearch against
+    libxconnect rather than libconnect for consistency with libblast,
+    which uses the former for consistency with other projects.
+
+ -- Aaron M. Ucko <ucko@debian.org>  Mon, 29 Aug 2011 12:31:05 -0400
+
+ncbi-blast+ (2.2.25-4) unstable; urgency=low
+
+  [ Aaron M. Ucko ]
+  * Team upload.
+  * debian/patches/support_other_cpus: belatedly add a descriptive header.
+  * debian/patches/hurd_fixes: new; fix hurd-specific issues.
+    (In conjunction with the following change, finally closes: #629656.)
+  * debian/control:
+    - Build-Depends += libc0.3-dev (>= 2.13-9~) [hurd-i386] to avoid #630180.
+    - Declare both binary packages as Multi-Arch: foreign.
+  * debian/patches/fix_lib_deps: new; ensure that all libraries link against
+    all direct dependencies.  (Break the dependency loop between libxblast
+    and libxalgoblastdbindex by having the former provide only the C++ BLAST
+    API, leaving the C core only in libblast.)  (Closes: #633567.)
+  * debian/rules: tweak LDFLAGS, supplying -Wl,--as-needed across the
+    board (as it is now safe to do so) and adding -Wl,--enable-new-dtags
+    to allow LD_LIBRARY_PATH to override the private rpath.
+  * debian/patches/no_multiarch_rpath: new; avoid redundant rpath entries
+    on multiarch systems (courtesy of overzealous logic to ensure
+    executables will be able to find libstdc++.)
+
+  [ Andreas Tille ]
+  * Enhances: t-coffee (as stated in tasks file)
+
+ -- Aaron M. Ucko <ucko@debian.org>  Sun, 28 Aug 2011 18:45:19 -0400
+
+ncbi-blast+ (2.2.25-3) unstable; urgency=low
+
+  * Team upload.
+  * debian/rules:
+    - Export MAKE to override an internal upstream build script that
+      otherwise incorrectly defaults to gmake on non-Linux
+      architectures. (Really closes: #629656, with any luck.)
+    - Force CONFIG_SHELL=/bin/bash to avoid lossage that can occur with zsh4
+      masquerading as ksh, which configure otherwise favors (due to complaints
+      from users with broken BASH_ENV scripts that change directories).
+
+ -- Aaron M. Ucko <ucko@debian.org>  Thu, 09 Jun 2011 19:25:45 -0400
+
+ncbi-blast+ (2.2.25-2) unstable; urgency=low
+
+  * Team upload.
+  * Fix several sources of build failures (closes: #629656):
+    - debian/rules (override_dh_install): Correctly support building only
+      architecture-dependent packages.
+      (DEB_CONFIGURE_EXTRA_FLAGS): Add --without-caution to override the
+      upstream build system's reluctance to build shared libraries on the
+      Hurd or kFreeBSD, which it doesn't specifically recognize.  Limit C++
+      optimization level to -O (rather than the default -O2) on mips(el),
+      on which g++ otherwise crashes. :-/
+    - debian/patches/support_other_cpus (new; committed upstream too):
+      build correctly on architectures that wound up defining
+      NCBI_SLOW_ATOMIC_SWAP (spuriously in the case of powerpc,
+      whose detection the patch fixes as well).
+
+ -- Aaron M. Ucko <ucko@debian.org>  Wed, 08 Jun 2011 21:42:52 -0400
+
+ncbi-blast+ (2.2.25-1) unstable; urgency=low
+
+  * Initial release (Closes: #624394) 
+
+ -- Olivier Sallou <olivier.sallou@irisa.fr>  Wed, 08 Jun 2011 00:15:15 +0200
diff --git a/debian/compat b/debian/compat
new file mode 100644 (file)
index 0000000..ec63514
--- /dev/null
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..902dd05
--- /dev/null
@@ -0,0 +1,49 @@
+Source: ncbi-blast+
+Section: science
+Priority: optional
+Build-Depends: autotools-dev (>= 20100122),
+               debhelper (>= 9),
+               dpkg-dev (>= 1.16.1),
+               libboost-test-dev,
+               libbz2-dev,
+               libc0.3-dev (>= 2.13-9~) [hurd-i386],
+               libpcre3-dev,
+               time,
+               zlib1g-dev
+Standards-Version: 3.9.6
+Uploaders: Olivier Sallou <osallou@debian.org>, Andreas Tille <tille@debian.org>
+Maintainer: Debian Med Packaging Team <debian-med-packaging@lists.alioth.debian.org>
+Homepage: http://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/
+Vcs-Svn: svn://anonscm.debian.org/debian-med/trunk/packages/ncbi-blast+/trunk/
+Vcs-Browser: http://anonscm.debian.org/viewvc/debian-med/trunk/packages/ncbi-blast+/trunk/
+
+Package: ncbi-blast+
+Architecture: any
+Enhances: t-coffee
+Depends: ncbi-data, python, ${misc:Depends}, ${perl:Depends}, ${shlibs:Depends}
+Multi-Arch: foreign
+Description: next generation suite of BLAST sequence search tools
+ The Basic Local Alignment Search Tool (BLAST) is the most widely
+ used sequence similarity tool. There are versions of BLAST that
+ compare protein queries to protein databases, nucleotide queries
+ to nucleotide databases, as well as versions that translate nucleotide
+ queries or databases in all six frames and compare to protein databases
+ or queries.
+ PSI-BLAST produces a position-specific-scoring-matrix (PSSM) starting
+ with a protein query, and then uses that PSSM to perform further searches.
+ It is also possible to compare a protein or nucleotide query to a
+ database of PSSM’s.
+ The NCBI supports a BLAST web page at blast.ncbi.nlm.nih.gov as well as
+ a network service.
+
+Package: ncbi-blast+-legacy
+Architecture: all
+Depends: ncbi-blast+, ${misc:Depends}
+Multi-Arch: foreign
+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.
+ .
+ To use those scripts, /usr/share/ncbi-blast+/bin must be added
+ to the PATH.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..e20323a
--- /dev/null
@@ -0,0 +1,190 @@
+Format: http://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++/*/util/compress/zlib/*
+Copyright: 1995-2004 Jean-loup Gailly and Mark Adler
+License: BSD-3-clause
+  This software is provided 'as-is', without any express or implied
+  warranty.  In no event will the authors be held liable for any damages
+  arising from the use of this software.
+ .
+  Permission is granted to anyone to use this software for any purpose,
+  including commercial applications, and to alter it and redistribute it
+  freely, subject to the following restrictions:
+ .
+  1. The origin of this software must not be misrepresented; you must not
+     claim that you wrote the original software. If you use this software
+     in a product, an acknowledgment in the product documentation would be
+     appreciated but is not required.
+  2. Altered source versions must be plainly marked as such, and must not be
+     misrepresented as being the original software.
+  3. This notice may not be removed or altered from any source distribution.
+
+Files: c++/*/util/regexp/*
+Copyright: 1997-2009 University of Cambridge
+           2008-2009 Google Inc
+License: BSD-4-clause
+
+Files: c++/*/util/compress/bzip2/*
+Copyright: 1996-2002 Julian R Seward
+License: BSD-4-clause
+
+License: BSD-4-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+ 2. The origin of this software must not be misrepresented; you must
+   not claim that you wrote the original software.  If you use this
+   software in a product, an acknowledgment in the product
+   documentation would be appreciated but is not required.
+ 3. Altered source versions must be plainly marked as such, and must
+   not be misrepresented as being the original software.
+ 4. The name of the author may not be used to endorse or promote
+   products derived from this software without specific prior written
+   permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ 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
+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
+Copyright: 2008 Don Anderson <dda@sleepycat.com>
+License: as_is
+   Copying and distribution of this file, with or without modification, are
+   permitted in any medium without royalty provided the copyright notice
+   and this notice are preserved. This file is offered as-is, without any
+   warranty.
+
+Files: c++/include/util/impl/floating_point_comparison.hpp
+Copyright: 2001-2008 Gennadiy Rozental
+License: Boost
+ Permission is hereby granted, free of charge, to any person or organization
+ obtaining a copy of the software and accompanying documentation covered by
+ this license (the "Software") to use, reproduce, display, distribute,
+ execute, and transmit the Software, and to prepare derivative works of the
+ Software, and to permit third-parties to whom the Software is furnished to
+ do so, all subject to the following:
+ .
+ The copyright notices in the Software and this entire statement, including
+ the above license grant, this restriction and the following disclaimer,
+ must be included in all copies of the Software, in whole or in part, and
+ all derivative works of the Software, unless such copies or derivative
+ works are solely in the form of machine-executable object code generated by
+ a source language processor.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+ SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+ FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+
+Files: c++/include/dbapi/driver/odbc/unix_odbc/sqlfront.h
+Copyright: 1998-1999  Brian Bruns
+License: GPL-2
+
+License: GPL-2
+ This package is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ .
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>
+ .
+ On Debian systems, the complete text of the GNU General
+ Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
+
+
+Files: c++/src/html/ncbi_menu_*.js
+Copyright: 1997-1999 Netscape Communications Corp.
+License: Netscape
+ Netscape grants you a royalty free license to use or modify this
+ software provided that this copyright notice appears on all copies.
+ This software is provided "AS IS," without a warranty of any kind.
+
+
+Files: c++/include/util/bitset/*
+Copyright: 2002-2003 Anatoliy Kuznetsov
+License: MIT
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+ .
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+
+
+Files: debian/*
+Copyright: 2011 Olivier Sallou <olivier.sallou@irisa.fr>
+License: GPL-2+
+ This package is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ .
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+ .
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>
+ .
+ On Debian systems, the complete text of the GNU General
+ Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
diff --git a/debian/dirs b/debian/dirs
new file mode 100644 (file)
index 0000000..2b9d190
--- /dev/null
@@ -0,0 +1,2 @@
+usr/bin
+var/lib/ncbi-blast+/db
diff --git a/debian/docs b/debian/docs
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/debian/get-orig-source b/debian/get-orig-source
new file mode 100755 (executable)
index 0000000..58c4486
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+set -e
+
+uscan --rename --verbose --force-download
+
+
diff --git a/debian/legacy/legacy.sh b/debian/legacy/legacy.sh
new file mode 100755 (executable)
index 0000000..dba6d0c
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Execute legacy blast 
+exec legacy_blast ${0##*/} $@
diff --git a/debian/ncbi-blast+-legacy.dirs b/debian/ncbi-blast+-legacy.dirs
new file mode 100644 (file)
index 0000000..da6a408
--- /dev/null
@@ -0,0 +1 @@
+/usr/share/ncbi-blast+/bin
diff --git a/debian/ncbi-blast+-legacy.links b/debian/ncbi-blast+-legacy.links
new file mode 100644 (file)
index 0000000..c732056
--- /dev/null
@@ -0,0 +1,8 @@
+usr/share/ncbi-blast+/bin/legacy.sh usr/share/ncbi-blast+/bin/blastall
+usr/share/ncbi-blast+/bin/legacy.sh usr/share/ncbi-blast+/bin/megablast
+usr/share/ncbi-blast+/bin/legacy.sh usr/share/ncbi-blast+/bin/blastpgp
+usr/share/ncbi-blast+/bin/legacy.sh usr/share/ncbi-blast+/bin/bl2seq
+usr/share/ncbi-blast+/bin/legacy.sh usr/share/ncbi-blast+/bin/rpsblast
+usr/share/ncbi-blast+/bin/legacy.sh usr/share/ncbi-blast+/bin/fastacmd
+usr/share/ncbi-blast+/bin/legacy.sh usr/share/ncbi-blast+/bin/formatdb
+usr/share/ncbi-blast+/bin/legacy.sh usr/share/ncbi-blast+/bin/seedtop
diff --git a/debian/ncbi-blast+.1 b/debian/ncbi-blast+.1
new file mode 100644 (file)
index 0000000..fe9e0c3
--- /dev/null
@@ -0,0 +1,33 @@
+.TH ncbi-blast+ 1  "April 29, 2011" "version 2.2.25" "USER COMMANDS"
+.SH NAME
+ncbi-blast+ \- NCBI command tools for BLAST+
+.SH ONELINE DOCUMENTATION
+.B BLAST+ documentation is available online at http://www.ncbi.nlm.nih.gov/books/NBK1763/
+.PP
+.SH DESCRIPTION
+The NCBI BLAST+ is a group of tools for basic alignment search. BLAST+
+ is a rewrite of BLAST with new features and performance improvements.
+BLAST+ commands differ from original BLAST. For BLAST users, one should read
+ the BLAST USERS paragraph.
+.PP
+.SH CONFIGURATION
+BLAST+ uses the BLASTDB environment variable to get default db directory.
+It is possible to update the file /etc/ncbi/.ncbirc to add the following:
+.B [BLAST]
+.B BLASTDB=/var/lib/ncbi-blast+/db
+.SH BLAST USERS
+The easiest way to get started using these command line applications is
+ by means of the legacy_blast.pl PERL script which is bundled along with
+ the BLAST+ applications.
+To utilize this script, simply prefix it to the invocation of the C toolkit
+ BLAST command line application and append the --path option pointing to the 
+installation directory of the BLAST+ applications. For example, instead of using
+
+.B blastall -i query -d nr -o blast.out 
+use
+.B legacy_blast.pl blastall -i query -d nr -o blast.out --path /usr/bin
+
+.PP
+.SH AUTHOR
+Olivier Sallou (olivier.sallou (at) irisa.fr) - Man page and packaging
+NCBI - BLAST+
diff --git a/debian/ncbi-blast+.dirs b/debian/ncbi-blast+.dirs
new file mode 100644 (file)
index 0000000..32fdc47
--- /dev/null
@@ -0,0 +1,2 @@
+usr/bin
+usr/lib/ncbi-blast+
diff --git a/debian/ncbi-blast+.manpages b/debian/ncbi-blast+.manpages
new file mode 100644 (file)
index 0000000..0f65186
--- /dev/null
@@ -0,0 +1 @@
+debian/*.1
diff --git a/debian/patches/allow_gcc5 b/debian/patches/allow_gcc5
new file mode 100644 (file)
index 0000000..3814965
--- /dev/null
@@ -0,0 +1,47 @@
+Subject: allow compilation with GCC 5
+Description: Formally allow compilation with GCC 5, otherwise okay
+Author: Aaron M. Ucko <ucko@debian.org>
+Forwarded: yes
+Last-Updated: 2015-02-16
+--- a/c++/src/build-system/configure
++++ b/c++/src/build-system/configure
+@@ -5819,14 +5819,10 @@
+ if test "$GCC" = "yes" ; then
+    compiler_ver="`$real_CXX -dumpversion 2>&1`"
+-   case "$compiler_ver" in
+-     2.95* | 2.96* | 3.* | 4.* )
+-       compiler="GCC"
+-       ncbi_compiler="GCC"
+-       ncbi_compiler_ver="$compiler_ver"
+-                 WithFeatures="$WithFeatures${WithFeaturesSep}GCC"; WithFeaturesSep=" "
+-       ;;
+-   esac
++   compiler="GCC"
++   ncbi_compiler="GCC"
++   ncbi_compiler_ver="$compiler_ver"
++             WithFeatures="$WithFeatures${WithFeaturesSep}GCC"; WithFeaturesSep=" "
+ elif test "$KCC" = "yes" ; then
+    compiler_ver="$kcc_ver"
+    compiler="KCC"
+--- a/c++/src/build-system/configure.ac
++++ b/c++/src/build-system/configure.ac
+@@ -800,14 +800,10 @@
+ if test "$GCC" = "yes" ; then
+    compiler_ver="`$real_CXX -dumpversion 2>&1`"
+-   case "$compiler_ver" in
+-     2.95* | 2.96* | 3.* | 4.* )
+-       compiler="GCC"
+-       ncbi_compiler="GCC"
+-       ncbi_compiler_ver="$compiler_ver"
+-       NCBI_FEATURE(GCC)
+-       ;;
+-   esac
++   compiler="GCC"
++   ncbi_compiler="GCC"
++   ncbi_compiler_ver="$compiler_ver"
++   NCBI_FEATURE(GCC)
+ elif test "$KCC" = "yes" ; then
+    compiler_ver="$kcc_ver"
+    compiler="KCC"
diff --git a/debian/patches/do_not_output_everything_to_stderr.patch b/debian/patches/do_not_output_everything_to_stderr.patch
new file mode 100644 (file)
index 0000000..2fdcf00
--- /dev/null
@@ -0,0 +1,46 @@
+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;
diff --git a/debian/patches/enable_clean_after_failed_compile b/debian/patches/enable_clean_after_failed_compile
new file mode 100644 (file)
index 0000000..75434fb
--- /dev/null
@@ -0,0 +1,16 @@
+Subject: clean after failure
+Description: Enable clean
+Author: Tim Booth
+Last-Updated: 2013-06-01
+Forwarded: no
+--- a/c++/src/build-system/new_module.sh.in
++++ b/c++/src/build-system/new_module.sh.in
+@@ -180,7 +180,7 @@
+     if test -x "$bindir/datatool"; then
+         datatool=$bindir/datatool
+         COMMON_AddRunpath "$libdir"
+-    else
++    elif [ "$1" != "purge_sources" ] ; then
+         echo "Unable to find datatool." >&2
+         exit 2
+     fi
diff --git a/debian/patches/fix_arm_mips_build b/debian/patches/fix_arm_mips_build
new file mode 100644 (file)
index 0000000..017298a
--- /dev/null
@@ -0,0 +1,19 @@
+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
diff --git a/debian/patches/fix_checks b/debian/patches/fix_checks
new file mode 100644 (file)
index 0000000..f64ede6
--- /dev/null
@@ -0,0 +1,17 @@
+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
diff --git a/debian/patches/fix_compilation b/debian/patches/fix_compilation
new file mode 100644 (file)
index 0000000..f5a8940
--- /dev/null
@@ -0,0 +1,32 @@
+Subject: Fix compilation error
+Description: error in compilation, bug sent by mail to upstream
+Forwarded: yes
+Author: Olivier Sallou <osallou@debian.org>
+Last-Updated: 2014-12-14
+--- a/c++/src/util/regexp/pcretest.c
++++ b/c++/src/util/regexp/pcretest.c
+@@ -250,7 +250,7 @@ for (;;)
+     /* Read the next line by normal means, prompting if the file is stdin. */
+       {
+-      if (f == stdin) printf(prompt);
++      if (f == stdin) printf("%s",prompt);
+       if (fgets((char *)here, rlen,  f) == NULL)
+         return (here == start)? NULL : start;
+       }
+--- a/c++/include/util/bitset/bmconst.h
++++ b/c++/include/util/bitset/bmconst.h
+@@ -147,11 +147,11 @@ const unsigned DeBruijn_bit_position<T>:
+ */
+ template<bool T> struct first_bit_table
+ {
+-    static const char _idx[256];
++    static const signed char _idx[256];
+ };
+ template<bool T>
+-const char first_bit_table<T>::_idx[256] = {
++const signed char first_bit_table<T>::_idx[256] = {
+   -1, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
+     4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
diff --git a/debian/patches/fix_configure b/debian/patches/fix_configure
new file mode 100644 (file)
index 0000000..c360ef0
--- /dev/null
@@ -0,0 +1,14 @@
+Subject: fix path for debian build
+Description: Debian build is not done in configure directory,
+ need to update way to get relative configure.orig script
+Author: Olivier Sallou <osallou@debian.org>
+Forwarded: no
+Last-Updated: 2014-06-06
+--- a/c++/configure.orig
++++ b/c++/configure.orig
+@@ -1,3 +1,4 @@
+ #!/bin/sh
+-srcdir=`dirname $0`
++srcdir=$(readlink -f $0)
++srcdir=`dirname $srcdir`
+ exec $srcdir/src/build-system/configure --srcdir=$srcdir ${1+"$@"}
diff --git a/debian/patches/fix_gcc46_errors b/debian/patches/fix_gcc46_errors
new file mode 100644 (file)
index 0000000..a28de4e
--- /dev/null
@@ -0,0 +1,28 @@
+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;
diff --git a/debian/patches/fix_gcc47_errors b/debian/patches/fix_gcc47_errors
new file mode 100644 (file)
index 0000000..ba6255e
--- /dev/null
@@ -0,0 +1,320 @@
+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();
+                 }
+             }
diff --git a/debian/patches/fix_kfreebsd_ftbs.patch b/debian/patches/fix_kfreebsd_ftbs.patch
new file mode 100644 (file)
index 0000000..8a82e61
--- /dev/null
@@ -0,0 +1,34 @@
+Subject: Fix missing colon
+Description: colon missing causing FTBS on some archs
+Author: Olivier Sallou <olivier.sallou@irisa.fr>
+Forwarded: yes
+Comment: updated upstream at revision 70194
+--- a/c++/src/corelib/ncbifile.cpp
++++ b/c++/src/corelib/ncbifile.cpp
+@@ -4423,7 +4423,7 @@
+     if (statvfs(path.c_str(), &st) != 0) {                     \
+         NCBI_THROW(CFileErrnoException, eFileSystemInfo, msg); \
+     }                                                          \
+-    info->total_space  = (Uint8)st.f_bsize * st.f_blocks       \
++    info->total_space  = (Uint8)st.f_bsize * st.f_blocks;      \
+     if (st.f_frsize) {                                         \
+         info->free_space = (Uint8)st.f_frsize * st.f_bavail;   \
+         info->block_size = (unsigned long)st.f_frsize;         \
+@@ -4431,7 +4431,7 @@
+         info->free_space = (Uint8)st.f_bsize * st.f_bavail;    \
+         info->block_size = (unsigned long)st.f_bsize;          \
+     }                                                          \
+-    info->used_space   = info->total_space - info->free_space
++    info->used_space   = info->total_space - info->free_space;
+ #define GET_STATFS_INFO                                        \
+@@ -4443,7 +4443,7 @@
+     info->total_space  = (Uint8)st.f_bsize * st.f_blocks;      \
+     info->free_space   = (Uint8)st.f_bsize * st.f_bavail;      \
+     info->used_space   = info->total_space - info->free_space; \
+-    info->block_size   = (unsigned long)st.f_bsize
++    info->block_size   = (unsigned long)st.f_bsize;
diff --git a/debian/patches/fix_lib_deps b/debian/patches/fix_lib_deps
new file mode 100644 (file)
index 0000000..086900a
--- /dev/null
@@ -0,0 +1,657 @@
+Subject: ensure that all libraries link against all direct dependencies\r
+\r
+ * src/**/Makefile.*.lib: set DLL_(D)LIB correctly.  Break the dependency\r
+   loop between libxblast and libxalgoblastdbindex by having the former\r
+   provide only the C++ BLAST API, leaving the C core only in libblast.\r
+ * src/build-system/library_relations.txt: Change xblast's\r
+   relationship to blast from includes to needs, accordingly.\r
+ * src/algo/blast/dbindex*/*/Makefile.*.app: Link against libxconnect\r
+   rather than libconnect for consistency with libblast, which uses the\r
+   former to keep the aforementioned cycle-breaking from causing\r
+   inconsistency elsewhere.\r
+\r
+Debian-Bug: 633567.\r
+Author: Aaron M. Ucko <ucko@debian.org>\r
+Last-Update: 2014-12-02\r
+--- a/c++/src/algo/blast/Makefile.blast_macros.mk
++++ b/c++/src/algo/blast/Makefile.blast_macros.mk
+@@ -18,7 +18,7 @@
+ BLAST_SRA_LIBS=blast_sra $(SRAXF_LIBS) vxf $(SRA_LIBS)
+ # BLAST_FORMATTER_LIBS and BLAST_INPUT_LIBS need $BLAST_LIBS
+-BLAST_LIBS = xblast xalgoblastdbindex composition_adjustment \
++BLAST_LIBS = xblast xalgoblastdbindex blast composition_adjustment \
+               xalgodustmask xalgowinmask seqmasks_io seqdb blast_services xobjutil \
+               $(OBJREAD_LIBS) xnetblastcli xnetblast blastdb scoremat tables xalnmgr
+ # BLAST additionally needs xconnect $(SOBJMGR_LIBS) or $(OBJMGR_LIBS)
+--- a/c++/src/algo/blast/api/Makefile.xblast.lib
++++ b/c++/src/algo/blast/api/Makefile.xblast.lib
+@@ -74,14 +74,15 @@
+ deltablast_options \
+ deltablast
+-SRC  = $(SRC_C:%=.core_%) $(SRC_CXX)
++SRC  = $(SRC_CXX) # $(SRC_C:%=.core_%)
+ LIB = xblast
+ DLL_LIB = xalgoblastdbindex composition_adjustment xalgowinmask \
+       xalgodustmask seqmasks_io seqdb $(OBJREAD_LIBS) xobjutil \
+       blastdb xnetblastcli xnetblast scoremat xconnect tables \
+-      $(SOBJMGR_LIBS)
++        $(SOBJMGR_LIBS) blast seqdb seqset seq general \
++        xser xconnect sequtil tables xutil xncbi
+ CFLAGS   = $(FAST_CFLAGS) 
+ CPPFLAGS = -DNCBI_MODULE=BLAST $(ORIG_CPPFLAGS)
+--- a/c++/src/algo/blast/blastinput/Makefile.blastinput.lib
++++ b/c++/src/algo/blast/blastinput/Makefile.blastinput.lib
+@@ -24,7 +24,9 @@
+ LIB = blastinput
+-DLL_LIB = xblast align_format ncbi_xloader_blastdb_rmt ncbi_xloader_blastdb seqdb $(OBJREAD_LIBS) $(OBJMGR_LIBS) xutil
++    DLL_LIB = xblast align_format ncbi_xloader_blastdb_rmt ncbi_xloader_blastdb seqdb xobjread \
++              $(OBJREAD_LIBS) $(OBJMGR_LIBS) xutil ncbi_xloader_genbank ncbi_xreader_id2 ncbi_xreader \
++              scoremat seqset seq xser xutil xncbi
+ # should be redundant, given the above :-/
+ ASN_DEP = seqset xnetblast
+--- a/c++/src/algo/blast/core/Makefile.blast.lib
++++ b/c++/src/algo/blast/core/Makefile.blast.lib
+@@ -21,6 +21,7 @@
+ CFLAGS  = $(FAST_CFLAGS)  
+ LDFLAGS = $(FAST_LDFLAGS) 
++DLL_LIB = composition_adjustment xconnect tables
+ WATCHERS = madden camacho fongah2
+--- a/c++/src/algo/blast/dbindex/Makefile.xalgoblastdbindex.lib
++++ b/c++/src/algo/blast/dbindex/Makefile.xalgoblastdbindex.lib
+@@ -11,6 +11,8 @@
+ CXXFLAGS = -DDO_INLINE $(FAST_CXXFLAGS)
+ LDFLAGS  = $(FAST_LDFLAGS)
++DLL_LIB = blast seqdb xobjread xobjutil xobjmgr seqset seq xser xutil xncbi
++
+ ASN_DEP = seqset
+ WATCHERS = morgulis
+--- a/c++/src/algo/blast/dbindex/makeindex/Makefile.makeindex.app
++++ b/c++/src/algo/blast/dbindex/makeindex/Makefile.makeindex.app
+@@ -2,7 +2,7 @@
+ SRC = main mkindex_app
+ LIB_ = xalgoblastdbindex blast composition_adjustment seqdb blastdb \
+-      $(OBJREAD_LIBS) xobjutil tables connect $(SOBJMGR_LIBS)
++      $(OBJREAD_LIBS) xobjutil tables xconnect $(SOBJMGR_LIBS)
+ LIB = $(LIB_:%=%$(STATIC))
+ CXXFLAGS = $(FAST_CXXFLAGS)
+--- a/c++/src/algo/blast/format/Makefile.xblastformat.lib
++++ b/c++/src/algo/blast/format/Makefile.xblastformat.lib
+@@ -7,7 +7,8 @@
+ CPPFLAGS = -DNCBI_MODULE=BLASTFORMAT $(ORIG_CPPFLAGS)
+-DLL_LIB = align_format blastxml blastxml2 xhtml xcgi
++DLL_LIB = xblast align_format xalnmgr xobjmgr xnetblast scoremat blastxml \
++          seq general xser tables xncbi blastxml2
+ WATCHERS = jianye zaretska madden camacho fongah2
+--- a/c++/src/algo/dustmask/Makefile.xalgodustmask.lib
++++ b/c++/src/algo/dustmask/Makefile.xalgodustmask.lib
+@@ -8,6 +8,8 @@
+ SRC = symdust
++DLL_LIB = xobjmgr seq xncbi
++
+ CXXFLAGS = $(FAST_CXXFLAGS)
+ LDFLAGS  = $(FAST_LDFLAGS)
+--- a/c++/src/algo/segmask/Makefile.xalgosegmask.lib
++++ b/c++/src/algo/segmask/Makefile.xalgosegmask.lib
+@@ -8,6 +8,8 @@
+ SRC = segmask
++DLL_LIB = blast xobjmgr xncbi
++
+ CXXFLAGS = $(FAST_CXXFLAGS)
+ LDFLAGS  = $(FAST_LDFLAGS)
+--- a/c++/src/algo/winmask/Makefile.xalgowinmask.lib
++++ b/c++/src/algo/winmask/Makefile.xalgowinmask.lib
+@@ -21,7 +21,7 @@
+ CXXFLAGS = $(FAST_CXXFLAGS)
+ LDFLAGS  = $(FAST_LDFLAGS)
+-
++DLL_LIB = seqmasks_io xobjread xobjutil xobjmgr seq xncbi
+ USES_LIBRARIES =  \
+     seqmasks_io
+--- a/c++/src/build-system/library_relations.txt
++++ b/c++/src/build-system/library_relations.txt
+@@ -1163,7 +1163,7 @@
+ xasmcompare needs pub
+ xasn needs xhtml
+ xasn needs3party $(NCBI_C_ncbi)
+-xblast includes blast
++xblast needs blast
+ xblast needs xalgoblastdbindex
+ xblast needs xalgodustmask
+ xblast needs xalgowinmask
+--- a/c++/src/cgi/Makefile.cgi.lib
++++ b/c++/src/cgi/Makefile.cgi.lib
+@@ -9,6 +9,8 @@
+       user_agent
+ LIB = xcgi
++DLL_LIB = xutil xncbi
++
+ CPPFLAGS = $(ORIG_CPPFLAGS) $(FASTCGI_INCLUDE)
+ WATCHERS = vakatov
+--- a/c++/src/connect/Makefile.xconnect.lib
++++ b/c++/src/connect/Makefile.xconnect.lib
+@@ -14,6 +14,8 @@
+ LIB  = xconnect
+ PROJ_TAG = core
++DLL_LIB = xncbi
++
+ LIBS = $(NETWORK_LIBS) $(ORIG_LIBS)
+ WATCHERS = lavr
+--- a/c++/src/corelib/Makefile.test_boost.lib
++++ b/c++/src/corelib/Makefile.test_boost.lib
+@@ -3,6 +3,8 @@
+ SRC = test_boost teamcity_messages
+ LIB = test_boost
++DLL_LIB = xncbi
++
+ CPPFLAGS = $(ORIG_CPPFLAGS) $(BOOST_INCLUDE)
+ REQUIRES = Boost.Test.Included
+--- a/c++/src/corelib/Makefile.test_mt.lib
++++ b/c++/src/corelib/Makefile.test_mt.lib
+@@ -3,6 +3,8 @@
+ SRC = test_mt
+ LIB    = test_mt
++DLL_LIB = xncbi
++
+ # REQUIRES = MT
+ USE_PCH = no
+--- a/c++/src/html/Makefile.html.lib
++++ b/c++/src/html/Makefile.html.lib
+@@ -7,6 +7,8 @@
+       commentdiag indentstream html_exception writer_htmlenc
+ LIB = xhtml
++DLL_LIB = xncbi
++
+ WATCHERS = ivanov
+--- a/c++/src/objects/biblio/Makefile.biblio.lib
++++ b/c++/src/objects/biblio/Makefile.biblio.lib
+@@ -1,6 +1,8 @@
+ LIB = biblio
+ SRC = biblio__ biblio___ citation_base
++DLL_LIB = general xser xncbi
++
+ USES_LIBRARIES =  \
+     general
+--- a/c++/src/objects/blast/Makefile.blast.lib
++++ b/c++/src/objects/blast/Makefile.blast.lib
+@@ -1,6 +1,8 @@
+ LIB = xnetblast
+ SRC = blast__ blast___ names
++DLL_LIB = scoremat seqset seq xser xncbi
++
+ WATCHERS = camacho
+--- a/c++/src/objects/blast/Makefile.xnetblastcli.lib
++++ b/c++/src/objects/blast/Makefile.xnetblastcli.lib
+@@ -3,6 +3,7 @@
+ LIB = xnetblastcli
+ SRC = blastclient blastclient_
++DLL_LIB = xnetblast xser xconnect xutil xncbi
+ USES_LIBRARIES =  \
+     xconnect xnetblast
+--- a/c++/src/objects/blastdb/Makefile.blastdb.lib
++++ b/c++/src/objects/blastdb/Makefile.blastdb.lib
+@@ -1,5 +1,7 @@
+ # $Id: Makefile.blastdb.lib 427424 2014-02-20 13:38:50Z gouriano $
++
++DLL_LIB = seq xser xncbi
+ LIB = blastdb
+ SRC = blastdb__ blastdb___
+--- a/c++/src/objects/blastxml/Makefile.blastxml.lib
++++ b/c++/src/objects/blastxml/Makefile.blastxml.lib
+@@ -1,6 +1,8 @@
+ LIB = blastxml
+ SRC = blastxml__ blastxml___
++DLL_LIB = xser xncbi
++
+ USES_LIBRARIES =  \
+     xser
+--- a/c++/src/objects/general/Makefile.general.lib
++++ b/c++/src/objects/general/Makefile.general.lib
+@@ -1,6 +1,8 @@
+ LIB = general
+ SRC = general__ general___ uoconv
++DLL_LIB = xser xncbi
++
+ USES_LIBRARIES =  \
+     xser
+--- a/c++/src/objects/genomecoll/Makefile.genome_collection.lib
++++ b/c++/src/objects/genomecoll/Makefile.genome_collection.lib
+@@ -3,6 +3,8 @@
+ LIB = genome_collection
+ SRC = genome_collection__ genome_collection___
++DLL_LIB = seq general xser xncbi
++
+ WATCHERS = dicuccio
+--- a/c++/src/objects/id1/Makefile.id1.lib
++++ b/c++/src/objects/id1/Makefile.id1.lib
+@@ -3,6 +3,8 @@
+ LIB = id1
+ SRC = id1__ id1___
++DLL_LIB = seqset seq xser xncbi
++
+ WATCHERS = vasilche
+--- a/c++/src/objects/id2/Makefile.id2.lib
++++ b/c++/src/objects/id2/Makefile.id2.lib
+@@ -1,6 +1,8 @@
+ LIB = id2
+ SRC = id2__ id2___
++DLL_LIB = seqsplit seq xser xncbi
++
+ WATCHERS = vasilche
+--- a/c++/src/objects/medline/Makefile.medline.lib
++++ b/c++/src/objects/medline/Makefile.medline.lib
+@@ -1,6 +1,8 @@
+ LIB = medline
+ SRC = medline__ medline___
++DLL_LIB = biblio general xser xncbi
++
+ USES_LIBRARIES =  \
+     biblio
+--- a/c++/src/objects/pub/Makefile.pub.lib
++++ b/c++/src/objects/pub/Makefile.pub.lib
+@@ -1,6 +1,8 @@
+ LIB = pub
+ SRC = pub__ pub___
++DLL_LIB = medline biblio xser xncbi
++
+ USES_LIBRARIES =  \
+     medline
+--- a/c++/src/objects/scoremat/Makefile.scoremat.lib
++++ b/c++/src/objects/scoremat/Makefile.scoremat.lib
+@@ -1,6 +1,8 @@
+ LIB = scoremat
+ SRC = scoremat__ scoremat___
++DLL_LIB = seqset seq general xser xncbi
++
+ USES_LIBRARIES =  \
+     seqset
+--- a/c++/src/objects/seq/Makefile.seq.lib
++++ b/c++/src/objects/seq/Makefile.seq.lib
+@@ -12,6 +12,8 @@
+       seq_loc_mapper_base seq_align_mapper_base seqlocinfo sofa_map \
+       seq_loc_from_string seq_loc_reverse_complementer
++DLL_LIB = seqcode pub biblio general xser sequtil xutil xncbi
++
+ WATCHERS = vasilche grichenk
+--- a/c++/src/objects/seqcode/Makefile.seqcode.lib
++++ b/c++/src/objects/seqcode/Makefile.seqcode.lib
+@@ -1,6 +1,8 @@
+ LIB = seqcode
+ SRC = seqcode__ seqcode___
++DLL_LIB = xser xncbi
++
+ USES_LIBRARIES =  \
+     xser
+--- a/c++/src/objects/seqedit/Makefile.seqedit.lib
++++ b/c++/src/objects/seqedit/Makefile.seqedit.lib
+@@ -1,6 +1,7 @@
+ LIB = seqedit
+ SRC = seqedit__ seqedit___
+- 
++
++DLL_LIB = seqset seq general xser xncbi
+ USES_LIBRARIES =  \
+--- a/c++/src/objects/seqset/Makefile.seqset.lib
++++ b/c++/src/objects/seqset/Makefile.seqset.lib
+@@ -1,6 +1,8 @@
+ LIB = seqset
+ SRC = seqset__ seqset___ gb_release_file
++DLL_LIB = seq general xser xncbi
++
+ USES_LIBRARIES =  \
+     $(SEQ_LIBS) pub
+--- a/c++/src/objects/seqsplit/Makefile.seqsplit.lib
++++ b/c++/src/objects/seqsplit/Makefile.seqsplit.lib
+@@ -1,6 +1,8 @@
+ LIB = seqsplit
+ SRC = seqsplit__ seqsplit___
++DLL_LIB = seqset seq xser xncbi
++
+ WATCHERS = vasilche
+--- a/c++/src/objects/submit/Makefile.submit.lib
++++ b/c++/src/objects/submit/Makefile.submit.lib
+@@ -1,6 +1,8 @@
+ LIB = submit
+ SRC = submit__ submit___
++DLL_LIB = seqset seq biblio general xser xncbi
++
+ USES_LIBRARIES =  \
+     seqset
+--- a/c++/src/objmgr/split/Makefile.id2_split.lib
++++ b/c++/src/objmgr/split/Makefile.id2_split.lib
+@@ -17,7 +17,7 @@
+ CPPFLAGS = $(ORIG_CPPFLAGS) $(CMPRS_INCLUDE)
+-DLL_LIB = $(SOBJMGR_LIBS)
++DLL_LIB = xobjmgr seqsplit seqset seq general xser xcompress xncbi
+ WATCHERS = vasilche
+--- a/c++/src/objmgr/util/Makefile.util.lib
++++ b/c++/src/objmgr/util/Makefile.util.lib
+@@ -8,6 +8,8 @@
+ SRC = weight sequence feature seqtitle create_defline obj_sniff seq_loc_util seq_align_util seq_trimmer bioseqgaps_ci
+ LIB = xobjutil
++DLL_LIB = xobjmgr seqset seq pub biblio general xser sequtil xutil xncbi
++
+ WATCHERS = ucko vasilche kornbluh
+--- a/c++/src/objtools/align_format/Makefile.align_format.lib
++++ b/c++/src/objtools/align_format/Makefile.align_format.lib
+@@ -13,6 +13,10 @@
+ CPPFLAGS = -DNCBI_MODULE=BLASTFORMAT $(ORIG_CPPFLAGS)
++DLL_LIB = xalnmgr ncbi_xloader_genbank seqdb blast_services xobjread xobjutil \
++          xobjmgr xnetblast blastdb gene_info seqset seq general xser \
++          xcgi xhtml tables xncbi
++
+ ###  EXAMPLES OF OTHER SETTINGS THAT MIGHT BE OF INTEREST
+ # CFLAGS   = $(FAST_CFLAGS)
+ # CXXFLAGS = $(FAST_CXXFLAGS)
+--- a/c++/src/objtools/alnmgr/Makefile.alnmgr.lib
++++ b/c++/src/objtools/alnmgr/Makefile.alnmgr.lib
+@@ -12,7 +12,7 @@
+ WATCHERS = todorov dicuccio grichenk
+-
++DLL_LIB = xobjmgr seqset seq xser tables xncbi
+ USES_LIBRARIES =  \
+     tables xobjutil
+--- a/c++/src/objtools/blast/blastdb_format/Makefile.blastdb_format.lib
++++ b/c++/src/objtools/blast/blastdb_format/Makefile.blastdb_format.lib
+@@ -11,6 +11,7 @@
+ CPPFLAGS = -DNCBI_MODULE=BLASTDB $(ORIG_CPPFLAGS)
++DLL_LIB = seqdb xobjutil xobjmgr seq xser sequtil xutil xncbi
+ ###  EXAMPLES OF OTHER SETTINGS THAT MIGHT BE OF INTEREST
+ # CFLAGS   = $(FAST_CFLAGS)
+--- a/c++/src/objtools/blast/seqdb_reader/Makefile.seqdb.lib
++++ b/c++/src/objtools/blast/seqdb_reader/Makefile.seqdb.lib
+@@ -24,6 +24,8 @@
+ LIB = seqdb
++DLL_LIB = blastdb xobjmgr seq general xser sequtil xncbi
++
+ CFLAGS   = $(FAST_CFLAGS)
+ CPPFLAGS = -DNCBI_MODULE=BLASTDB $(ORIG_CPPFLAGS)
+ CXXFLAGS = $(FAST_CXXFLAGS)
+--- a/c++/src/objtools/blast/seqdb_writer/Makefile.writedb.lib
++++ b/c++/src/objtools/blast/seqdb_writer/Makefile.writedb.lib
+@@ -8,6 +8,9 @@
+ LIB = writedb
++DLL_LIB = seqdb xobjread xobjmgr blastdb seqset seq general \
++          xser sequtil xutil xncbi
++
+ CFLAGS   = $(FAST_CFLAGS)
+ CPPFLAGS = -DNCBI_MODULE=BLASTDB $(ORIG_CPPFLAGS)
+ CXXFLAGS = $(FAST_CXXFLAGS)
+--- a/c++/src/objtools/blast/services/Makefile.blast_services.lib
++++ b/c++/src/objtools/blast/services/Makefile.blast_services.lib
+@@ -8,6 +8,8 @@
+ LIB = blast_services
++DLL_LIB = xnetblastcli xnetblast xser xconnect xutil xncbi
++
+ CFLAGS   = $(FAST_CFLAGS)
+ CPPFLAGS = -DNCBI_MODULE=NETBLAST $(ORIG_CPPFLAGS)
+ CXXFLAGS = $(FAST_CXXFLAGS)
+--- a/c++/src/objtools/data_loaders/blastdb/Makefile.ncbi_xloader_blastdb.lib
++++ b/c++/src/objtools/data_loaders/blastdb/Makefile.ncbi_xloader_blastdb.lib
+@@ -7,6 +7,8 @@
+ ASN_DEP = blastdb seqset
++DLL_LIB = seqdb xobjmgr seqset seq xncbi
++
+ WATCHERS = camacho
+--- a/c++/src/objtools/data_loaders/blastdb/Makefile.ncbi_xloader_blastdb_rmt.lib
++++ b/c++/src/objtools/data_loaders/blastdb/Makefile.ncbi_xloader_blastdb_rmt.lib
+@@ -5,6 +5,8 @@
+ CPPFLAGS = -DNCBI_MODULE=BLASTDB $(ORIG_CPPFLAGS)
++DLL_LIB = ncbi_xloader_blastdb blast_services xobjmgr seq xncbi
++
+ ASN_DEP = blastdb xnetblast
+ WATCHERS = camacho
+--- a/c++/src/objtools/data_loaders/genbank/Makefile.ncbi_xloader_genbank.lib
++++ b/c++/src/objtools/data_loaders/genbank/Makefile.ncbi_xloader_genbank.lib
+@@ -12,6 +12,9 @@
+ # Dependencies for shared library
+ DLL_LIB = ncbi_xreader$(DLL)
++DLL_DLIB = ncbi_xreader_cache ncbi_xreader_id1 ncbi_xreader_id2 \
++           id2 id1 ncbi_xreader xobjmgr seq xutil xncbi
++
+ WATCHERS = vasilche
+--- a/c++/src/objtools/data_loaders/genbank/Makefile.ncbi_xreader.lib
++++ b/c++/src/objtools/data_loaders/genbank/Makefile.ncbi_xreader.lib
+@@ -15,6 +15,9 @@
+ DLL_LIB = 
+ DLL_DLIB = $(GENBANK_READER_LDEP)
++DLL_DLIB = xobjmgr id2 seqsplit id1 seqset seq general \
++           xser xconnect xcompress xutil xncbi
++
+ WATCHERS = vasilche
+--- a/c++/src/objtools/data_loaders/genbank/cache/Makefile.ncbi_xreader_cache.lib
++++ b/c++/src/objtools/data_loaders/genbank/cache/Makefile.ncbi_xreader_cache.lib
+@@ -12,6 +12,8 @@
+ # Dependencies for shared library
+ DLL_LIB = ncbi_xreader$(DLL)
++DLL_DLIB = ncbi_xreader xobjmgr seq xser xncbi
++
+ CPPFLAGS = $(ORIG_CPPFLAGS) $(CMPRS_INCLUDE)
+ WATCHERS = vasilche
+--- a/c++/src/objtools/data_loaders/genbank/id1/Makefile.ncbi_xreader_id1.lib
++++ b/c++/src/objtools/data_loaders/genbank/id1/Makefile.ncbi_xreader_id1.lib
+@@ -12,6 +12,8 @@
+ # Dependencies for shared library
+ DLL_LIB = xconnect ncbi_xreader$(DLL)
++DLL_DLIB = ncbi_xreader xobjmgr id1 seq general xser xconnect xutil xncbi
++
+ CPPFLAGS = $(ORIG_CPPFLAGS) $(CMPRS_INCLUDE)
+ WATCHERS = vasilche
+--- a/c++/src/objtools/data_loaders/genbank/id2/Makefile.ncbi_xreader_id2.lib
++++ b/c++/src/objtools/data_loaders/genbank/id2/Makefile.ncbi_xreader_id2.lib
+@@ -12,7 +12,10 @@
+ CPPFLAGS = $(ORIG_CPPFLAGS) $(Z_INCLUDE)
+ # Dependencies for shared library (disabled due to problems on Darwin)
+-# DLL_LIB = xconnect ncbi_xreader$(DLL)
++DLL_LIB = xconnect ncbi_xreader$(DLL)
++
++DLL_DLIB = ncbi_xreader xobjmgr id2 seqsplit seq xser xconnect xncbi
++
+ WATCHERS = vasilche
+--- a/c++/src/objtools/readers/Makefile.xobjread.lib
++++ b/c++/src/objtools/readers/Makefile.xobjread.lib
+@@ -21,7 +21,7 @@
+       message_listener line_error
+-DLL_LIB = creaders
++DLL_LIB = submit seqset seq pub general xser creaders sequtil xutil xncbi
+--- a/c++/src/objtools/seqmasks_io/Makefile.seqmasks_io.lib
++++ b/c++/src/objtools/seqmasks_io/Makefile.seqmasks_io.lib
+@@ -12,7 +12,7 @@
+ mask_writer_blastdb_maskinfo
+ ASN_DEP = seqset
+-DLL_LIB = seqdb blastdb
++DLL_LIB = seqdb xobjread xobjutil xobjmgr blastdb seqset seq xser xncbi
+ WATCHERS = morgulis camacho
+--- a/c++/src/objtools/simple/Makefile.xobjsimple.lib
++++ b/c++/src/objtools/simple/Makefile.xobjsimple.lib
+@@ -7,6 +7,8 @@
+ ASN_DEP = seqset
++DLL_LIB = ncbi_xloader_genbank xobjmgr seq xncbi
++
+ LIB = xobjsimple
+ SRC = simple_om
+--- a/c++/src/serial/Makefile.serial.lib
++++ b/c++/src/serial/Makefile.serial.lib
+@@ -18,6 +18,8 @@
+ LIB    = xser
++DLL_LIB = xutil xncbi
++
+ WATCHERS = gouriano
+--- a/c++/src/util/Makefile.util.lib
++++ b/c++/src/util/Makefile.util.lib
+@@ -12,6 +12,7 @@
+ LIB = xutil
+ PROJ_TAG = core
++DLL_LIB = xncbi
+ LIBS = $(ORIG_LIBS)
+ WATCHERS = vakatov kornbluh
+--- a/c++/src/util/compress/api/Makefile.compress.lib
++++ b/c++/src/util/compress/api/Makefile.compress.lib
+@@ -7,7 +7,7 @@
+ CPPFLAGS = $(ORIG_CPPFLAGS) $(CMPRS_INCLUDE)
+-DLL_LIB =  $(BZ2_LIB)  $(Z_LIB)  $(LZO_LIB)
++DLL_LIB =  $(BZ2_LIB)  $(Z_LIB)  $(LZO_LIB) xutil xncbi
+ LIBS    =  $(BZ2_LIBS) $(Z_LIBS) $(LZO_LIBS) $(ORIG_LIBS)
+ WATCHERS = ivanov
+--- a/c++/src/util/sequtil/Makefile.sequtil.lib
++++ b/c++/src/util/sequtil/Makefile.sequtil.lib
+@@ -3,6 +3,8 @@
+ LIB = sequtil
+ SRC = sequtil sequtil_convert sequtil_convert_imp sequtil_manip sequtil_tables sequtil_shared
++DLL_LIB = xncbi
++
+ WATCHERS = shomrat
+--- a/c++/src/util/xregexp/Makefile.xregexp.lib
++++ b/c++/src/util/xregexp/Makefile.xregexp.lib
+@@ -6,7 +6,7 @@
+ CPPFLAGS = $(ORIG_CPPFLAGS) $(PCRE_INCLUDE)
+-DLL_LIB = $(PCRE_LIB)
++DLL_LIB = $(PCRE_LIB) xncbi
+ LIBS    = $(PCRE_LIBS)
+ WATCHERS = ivanov
diff --git a/debian/patches/hurd_fixes b/debian/patches/hurd_fixes
new file mode 100644 (file)
index 0000000..97b76d6
--- /dev/null
@@ -0,0 +1,55 @@
+Subject: fix portability issues that led to Hurd build failures
+
+* src/build-system/configure(.ac):
+  - Reflect the Hurd's support for -Wl,rpath,... .
+* src/connect/ncbi_socket_cxx.cpp, src/connect/ext/ncbi_localnet.c:
+  cope with missing PATH_MAX everywhere, not just under Windows.
+
+Author: Aaron M. Ucko <ucko@debian.org>
+Last-Update: 2011-06-10
+--- a/c++/src/build-system/configure
++++ b/c++/src/build-system/configure
+@@ -7420,7 +7420,7 @@
+     solaris* )
+       CONF_f_runpath="-R"
+       ;;
+-    linux*:[GI]CC | *bsd*:GCC | cygwin*:GCC | osf*:GCC )
++    linux*:[GI]CC | *bsd*:GCC | cygwin*:GCC | osf*:GCC | gnu*:GCC)
+       CONF_f_runpath="-Wl,-rpath,"
+       ;;
+     irix*:* | linux*:KCC | *:Compaq )
+--- a/c++/src/build-system/configure.ac
++++ b/c++/src/build-system/configure.ac
+@@ -1558,7 +1558,7 @@
+     solaris* )
+       CONF_f_runpath="-R"
+       ;;
+-    linux*:[[GI]]CC | *bsd*:GCC | cygwin*:GCC | osf*:GCC )
++    linux*:[[GI]]CC | *bsd*:GCC | cygwin*:GCC | osf*:GCC | gnu*:GCC )
+       CONF_f_runpath="-Wl,-rpath,"
+       ;;
+     irix*:* | linux*:KCC | *:Compaq )
+--- a/c++/src/connect/ncbi_socket_cxx.cpp
++++ b/c++/src/connect/ncbi_socket_cxx.cpp
+@@ -35,7 +35,7 @@
+ #include "ncbi_assert.h"                // no _ASSERT()s, keep clean from xncbi
+ #include <connect/ncbi_socket_unix.hpp>
+ #include <limits.h>                     // for PATH_MAX
+-#if defined(NCBI_OS_MSWIN)  &&  !defined(PATH_MAX)
++#ifndef PATH_MAX
+ #  define PATH_MAX 512                  // will actually use less than 32 chars
+ #endif // NCBI_OS_MSWIN && !PATH_MAX
+--- a/c++/src/connect/ext/ncbi_localnet.c
++++ b/c++/src/connect/ext/ncbi_localnet.c
+@@ -62,6 +62,10 @@
+ #  endif /*_MAX_PATH*/
+ #endif /*NCBI_OS_MSWIN && !PATH_MAX*/
++#if !defined(PATH_MAX)
++#  define PATH_MAX 4096
++#endif /*Patch added for Ubuntu build*/
++
+ #if PATH_MAX < 256
+ #  define BUFSIZE  256
+ #else
diff --git a/debian/patches/include_typeinfo b/debian/patches/include_typeinfo
new file mode 100644 (file)
index 0000000..e9fe46a
--- /dev/null
@@ -0,0 +1,16 @@
+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
diff --git a/debian/patches/legacy_rename_rpsblast b/debian/patches/legacy_rename_rpsblast
new file mode 100644 (file)
index 0000000..f40204b
--- /dev/null
@@ -0,0 +1,14 @@
+Author: Olivier Sallou <olivier.sallou@irisa.fr>
+Description: rename binary as blast+ for package coherency.
+Last-Updated: 2011-10-03
+--- a/c++/src/app/blast/legacy_blast.pl
++++ b/c++/src/app/blast/legacy_blast.pl
+@@ -1064,7 +1064,7 @@
+     if (defined $opt_p and $opt_p =~ /f/i) {
+         $retval .= "/rpstblastn";
+     } else {
+-        $retval .= "/rpsblast";
++        $retval .= "/rpsblast+";
+     }
+     $retval .= &add_exe_extension();
diff --git a/debian/patches/no_multiarch_rpath b/debian/patches/no_multiarch_rpath
new file mode 100644 (file)
index 0000000..169cc2f
--- /dev/null
@@ -0,0 +1,32 @@
+Subject: avoid redundant rpath entries on multiarch systems
+
+ * src/build-system/configure(.ac): when ensuring that executables
+   will be able to find libstdc++, don't add rpath entries that files
+   under /etc/ld.so.conf.d already specify, even if they don't resemble
+   traditional single-architecture or biarch locations.
+
+Debian-Bug: 633567.
+Author: Aaron M. Ucko <ucko@debian.org>
+Last-Update: 2011-08-28
+--- a/c++/src/build-system/configure
++++ b/c++/src/build-system/configure
+@@ -7480,7 +7480,7 @@
+                break
+                ;;
+             /* )
+-               found=true
++               fgrep -qsx $abs_dir /etc/ld.so.conf.d/*  ||  found=true
+                break
+                ;;
+         esac
+--- a/c++/src/build-system/configure.ac
++++ b/c++/src/build-system/configure.ac
+@@ -1837,7 +1837,7 @@
+                break
+                ;;
+             /* )
+-               found=true
++               fgrep -qsx $abs_dir /etc/ld.so.conf.d/*  ||  found=true
+                break
+                ;;
+         esac
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644 (file)
index 0000000..f60154b
--- /dev/null
@@ -0,0 +1,11 @@
+enable_clean_after_failed_compile
+#hurd_fixes
+legacy_rename_rpsblast
+fix_lib_deps
+no_multiarch_rpath
+use_pie_for_apps
+skip_services_unit_test
+fix_configure
+fix_compilation
+allow_gcc5
+fix_kfreebsd_ftbs.patch
diff --git a/debian/patches/skip_services_unit_test b/debian/patches/skip_services_unit_test
new file mode 100644 (file)
index 0000000..d23a164
--- /dev/null
@@ -0,0 +1,16 @@
+Subject: remove network required test
+Author: Tim Booth
+Forwarded: no
+Description: test require internet connection
+Last-Updated: 2013-06-01
+--- a/c++/src/objtools/blast/services/unit_test/Makefile.blast_services_unit_test.app
++++ b/c++/src/objtools/blast/services/unit_test/Makefile.blast_services_unit_test.app
+@@ -11,6 +11,7 @@
+ LIBS = $(NETWORK_LIBS) $(CMPRS_LIBS) $(DL_LIBS) $(ORIG_LIBS)
+-CHECK_CMD = blast_services_unit_test
++# This test requires an internet connection, shouldn't be run on a build server
++# CHECK_CMD = blast_services_unit_test
+ WATCHERS = madden camacho
diff --git a/debian/patches/support_other_cpus b/debian/patches/support_other_cpus
new file mode 100644 (file)
index 0000000..e8ae1e7
--- /dev/null
@@ -0,0 +1,74 @@
+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::
diff --git a/debian/patches/use_pie_for_apps b/debian/patches/use_pie_for_apps
new file mode 100644 (file)
index 0000000..1900f33
--- /dev/null
@@ -0,0 +1,29 @@
+Subject: build executables with -fPIE, not -fPIC
+
+* -fPIC is only useful for shared libraries; substitute -fPIE (along
+   with -pie at link time) when building executables.
+
+Author: Aaron M. Ucko <ucko@debian.org>
+Last-Update: 2012-05-10
+--- a/c++/src/build-system/Makefile.app.in
++++ b/c++/src/build-system/Makefile.app.in
+@@ -24,8 +24,8 @@
+ ### C/C++ source file compilation setup
+-CXXFLAGS_ALL = @f_compile@ $(CXXFLAGS) $(LOCAL_CPPFLAGS) $(CPPFLAGS)
+-CFLAGS_ALL   = @f_compile@ $(CFLAGS) $(LOCAL_CPPFLAGS) $(CPPFLAGS)
++CXXFLAGS_ALL = @f_compile@ $(CXXFLAGS:-fPIC=-fPIE) $(LOCAL_CPPFLAGS) $(CPPFLAGS)
++CFLAGS_ALL   = @f_compile@ $(CFLAGS:-fPIC=-fPIE) $(LOCAL_CPPFLAGS) $(CPPFLAGS)
+ SOURCES      = @UNIX_SRC@ $(SRC)
+ ### Standard application build rules
+@@ -133,7 +133,7 @@
+ else
+ $(XAPP): $(XOBJ) $(XOBJ2) $(XLIBDEP)
+       @-$(RM) .$(XAPP).stamp
+-      $(LINK_WRAPPER) $(LINK) $(LDFLAGS) $(APP_LDFLAGS) $(XOBJ) $(XOBJ2) $(PRE_LIBS) $(XLIB) $(XAPP_LIBS) @f_outexe@$(XAPP) $(LINK_FILTER)
++      $(LINK_WRAPPER) $(LINK) $(LDFLAGS) $(APP_LDFLAGS) -fPIE -pie $(XOBJ) $(XOBJ2) $(PRE_LIBS) $(XLIB) $(XAPP_LIBS) @f_outexe@$(XAPP) $(LINK_FILTER)
+       $(STRIP) $(XAPP)
+       $(POST_LINK) $(XAPP)
+   ifneq "$(BINCOPY)" "@:"
diff --git a/debian/patches/wrong_path_to_touch.patch b/debian/patches/wrong_path_to_touch.patch
new file mode 100644 (file)
index 0000000..f418da7
--- /dev/null
@@ -0,0 +1,112 @@
+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
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..a24b083
--- /dev/null
@@ -0,0 +1,112 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+NUMJOBS=1
+ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+    NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+endif
+
+
+DEB_CONFIGURE_EXTRA_FLAGS=--with-dll --with-mt --without-autodep \
+    --without-makefile-auto-update --with-flat-makefile --without-caution \
+    --without-dbapi --without-lzo --with-runpath=/usr/lib/ncbi-blast+ \
+    --with-build-root=BUILD --without-debug
+proj=algo/blast/ app/ objmgr/ objtools/align_format/ objtools/blast/
+
+ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+DEB_CONFIGURE_EXTRA_FLAGS += --with-symbols
+endif
+
+#export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie
+export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie
+export DEB_CFLAGS_MAINT_APPEND=-Wall -pedantic
+export DEB_LDFLAGS_MAINT_APPEND=-Wl,--as-needed
+
+DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
+
+CFLAGS   := $(shell dpkg-buildflags --get CFLAGS)
+CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS)
+CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS)
+LDFLAGS  := $(shell dpkg-buildflags --get LDFLAGS) -Wl,--as-needed
+
+ifneq (,$(findstring mips,$(DEB_HOST_ARCH)))
+CXXFLAGS := $(CXXFLAGS:-O%=-O)
+DEB_CONFIGURE_EXTRA_FLAGS += FAST_CXXFLAGS=-O
+endif
+
+export CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MAKE
+
+
+llp=LD_LIBRARY_PATH
+override_dh_auto_configure:
+       cd c++  &&  $(llp)=$(CURDIR)/c++/BUILD/lib$${$(llp)+:$$$(llp)} \
+           CONFIG_SHELL=/bin/bash ./configure $(DEB_CONFIGURE_EXTRA_FLAGS)
+
+override_dh_auto_build-arch:
+       cd c++/BUILD/build  && \
+           make -j$(NUMJOBS) -f Makefile.flat all_projects="$(proj)"
+#         make all_r
+
+override_dh_auto_build-indep:
+       echo "Save time and do nothing for architecture independent builds"
+
+override_dh_auto_test:
+       -dh_auto_test
+       -c++/BUILD/build/check.sh concat_err
+       -cat c++/BUILD/build/check.sh.out_err
+
+instroot = debian/ncbi-blast+/usr
+leg_bin = debian/ncbi-blast+-legacy/usr/share/ncbi-blast+/bin
+override_dh_auto_install-arch:
+       cp c++/BUILD/lib/*.so $(instroot)/lib/ncbi-blast+/
+       cp c++/BUILD/bin/*    $(instroot)/bin/
+
+override_dh_auto_install-indep:
+       echo "Nothing to do for architecture independant installs"
+
+override_dh_install-arch:
+       # dh_install
+       mv $(instroot)/bin/rpsblast $(instroot)/bin/rpsblast+
+       mv $(instroot)/bin/seedtop $(instroot)/bin/seedtop+
+       mv $(instroot)/bin/legacy_blast.pl   $(instroot)/bin/legacy_blast
+       mv $(instroot)/bin/update_blastdb.pl $(instroot)/bin/update_blastdb
+       mv $(instroot)/bin/windowmasker_2.2.22_adapter.py \
+          $(instroot)/bin/windowmasker_2.2.22_adapter
+# Clean up tests, demos, and internal build tools
+       rm -f $(instroot)/bin/*test* $(instroot)/bin/seqdb_demo \
+           $(instroot)/bin/datatool \
+           $(instroot)/bin/project_tree_builder \
+           $(instroot)/lib/ncbi-blast+/libtest_*.so
+
+override_dh_install-indep:
+       if test -d $(leg_bin); then cp debian/legacy/legacy.sh $(leg_bin)/; fi
+
+override_dh_clean:
+       cp c++/configure.orig configure.orig.save
+       dh_clean
+       #Tricky - for each module directory there may be several module files
+       #or there may be none but then there is still a module named after the
+       #directory.  Clean everything!
+       -for x in c++/src/objects/* ; do \
+           (cd "$$x"  && ( \
+               mods="`echo *.module`" ; \
+               [ "$${mods#*\*}" = "$$mods" ] || mods="`basename $$x`" ; \
+               for mod in $$mods ; do \
+                           ../../../BUILD/build/new_module.sh $$mod purge_sources ; \
+               done ) ; \
+           ) ; \
+       done
+       rm -rf c++/compilers/dll c++/config.log c++/Makefile
+       rm -f c++/configure.lineno c++/src/objects/blastxml/blastxml.module
+       find -name check_exec.pid -delete
+       rm -rf c++/BUILD
+       mv configure.orig.save c++/configure.orig
+
+%:
+       dh $@ -Dc++ --with autotools_dev
+
+get-orig-source:
+       . debian/get-orig-source
diff --git a/debian/source/format b/debian/source/format
new file mode 100644 (file)
index 0000000..163aaf8
--- /dev/null
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides
new file mode 100644 (file)
index 0000000..9bb4b0e
--- /dev/null
@@ -0,0 +1,3 @@
+# False positive since these files are actually source files
+ncbi-blast+ source: source-is-missing c++/src/html/ncbi_menu*.js
+
diff --git a/debian/watch b/debian/watch
new file mode 100644 (file)
index 0000000..6494f99
--- /dev/null
@@ -0,0 +1,3 @@
+version=3
+opts=pasv,filenamemangle=s/\+-src/-orig/,filenamemangle=s/blast/blast+/ \
+     ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-(.*)\+-src\.tar\.gz debian uupdate