ncbi-blast+ (2.16.0+ds-6+rpi1) trixie-staging; urgency=medium
authorPeter Michael Green <plugwash@raspbian.org>
Sun, 12 Jan 2025 14:25:01 +0000 (14:25 +0000)
committerPeter Michael Green <plugwash@raspbian.org>
Sun, 12 Jan 2025 14:25:01 +0000 (14:25 +0000)
  * Link with libatomic on armhf too.

[dgit import unpatched ncbi-blast+ 2.16.0+ds-6+rpi1]

48 files changed:
1  2 
debian/README.Debian
debian/README.source
debian/changelog
debian/control
debian/copyright
debian/dirs
debian/docs
debian/legacy/legacy.sh
debian/ncbi-blast+-legacy.dirs
debian/ncbi-blast+.1
debian/ncbi-blast+.dirs
debian/ncbi-blast+.examples
debian/ncbi-blast+.manpages
debian/ncbi-blast+.tests/test.fa
debian/ncbi-blast+.tests/testdatabase.fa
debian/patches/2to3
debian/patches/allow_pcre2
debian/patches/big_endian_workaround
debian/patches/enable_clean_after_failed_compile
debian/patches/fix_configure
debian/patches/fix_lib_deps
debian/patches/fix_unit_tests
debian/patches/hurd_fixes
debian/patches/legacy_rename_rpsblast
debian/patches/no_multiarch_rpath
debian/patches/optin_usage_report
debian/patches/optionally_keep_sequence
debian/patches/reprobuild
debian/patches/run_perl_directly
debian/patches/series
debian/patches/skip_services_unit_test
debian/patches/spelling
debian/patches/support_gcc10
debian/patches/support_mbedtls3
debian/patches/support_x32
debian/patches/suppress_tls_version_checks
debian/patches/system_mbedtls_only
debian/patches/tune_lmdb_defaults
debian/patches/use_pie_for_apps
debian/rules
debian/salsa-ci.yml
debian/source/format
debian/source/lintian-overrides
debian/source/options
debian/tests/control
debian/tests/run-unit-test
debian/upstream/metadata
debian/watch

index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..ff4641b076d808763d8c6c9677c2be50bded942f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..85ca5993552b9ee730743d323240c748afa0c979
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,9 @@@
++blast+ for Debian
++---------------------
++
++Lintian raises  hardening no fortify warnings that are false positives.
++
++
++Test examples taken from http://www.ncbi.nlm.nih.gov/books/NBK52640/
++
++-- Canberk Koç <canberkkoc@gmail.com> Tue, 2 Aug 2016 03:30:33 +0300
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2cc15fcb999c3c520363fb165d50e4949a8593d9
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,719 @@@
++ncbi-blast+ (2.16.0+ds-6+rpi1) trixie-staging; urgency=medium
++
++  * Link with libatomic on armhf too.
++
++ -- Peter Michael Green <plugwash@raspbian.org>  Sun, 12 Jan 2025 14:25:01 +0000
++
++ncbi-blast+ (2.16.0+ds-6) unstable; urgency=medium
++
++  * debian/control: Reinstate big-endian builds, which can be salvaged
++    adequately well.
++  * debian/patches/big_endian_workaround (new): On big-endian
++    architectures, roll makeblastdb's and makeprofiledb's default
++    blastdb_version back to 4 pending a proper fix.  Some things,
++    including in particular q2-feature-classifier, will still explicitly
++    request version 5, but everything else should be OK.  (See #1077777.)
++  * debian/rules: Try disabling optimization altogether on sh4.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Tue, 06 Aug 2024 21:45:09 -0400
++
++ncbi-blast+ (2.16.0+ds-5) unstable; urgency=medium
++
++  * debian/control: Forbid builds for big-endian architectures, at least
++    for now.  They nominally succeed, but two dependent autopkgtests (for
++    cct and kleborate) have started failing on s390x, and there's no
++    evidence that other BE architectures fare any better.  (See #1077777.)
++  * debian/rules:
++    - Try building with -fsection-anchors on alpha in hopes of satisfying
++      the GOT size limit there too.
++    - Extend -O1 cap to sh4, which still encountered VM exhaustion.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Sun, 04 Aug 2024 16:04:32 -0400
++
++ncbi-blast+ (2.16.0+ds-4) unstable; urgency=medium
++
++  * debian/rules:
++    - Move architecture.mk inclusion to the very top for the sake of
++      hypothetical builds bypassing dpkg-buildpackage.
++    - Compile with -ffunction-sections on hppa and -mxgot on mips*
++      (mips64el in practice) due to having outgrown default settings.
++    - Disable parallel building on sh4 in hopes of avoiding buildd virtual
++      memory exhaustion.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Sat, 27 Jul 2024 22:38:52 -0400
++
++ncbi-blast+ (2.16.0+ds-3) unstable; urgency=medium
++
++  * debian/rules: Fix typo (missing parenthesis).
++
++ -- Aaron M. Ucko <ucko@debian.org>  Fri, 26 Jul 2024 15:37:28 -0400
++
++ncbi-blast+ (2.16.0+ds-2) unstable; urgency=medium
++
++  * debian/patches/hurd_fixes: Extend to ncbi_localip.c, which otherwise
++    accommodates PATH_MAX's absence only under Windows.
++  * debian/rules: Link with -latomic on most 32-bit architectures
++    (excepting only x86 and armhf, which succeed as is).
++
++ -- Aaron M. Ucko <ucko@debian.org>  Fri, 26 Jul 2024 14:54:55 -0400
++
++ncbi-blast+ (2.16.0+ds-1) unstable; urgency=medium
++
++  * New upstream release, which should be (more than) new enough for
++    recent q2-feature-classifier.  (Closes: #1074316.)
++  * debian/control:
++    - Build against libnghttp2-dev, libsqlite3-dev, and libuv1-dev, newly
++      needed.
++    - Build against autoconf2.69.
++    - Build against libpcre2-dev, as enabled by debian/patches/allow_pcre2.
++    - Stop building against 2to3, which may not be around much longer.
++  * debian/patches: Update for new release, mostly formally.
++  * debian/patches/2to3 (new): Cache 2to3 diff for
++    windowmasker_2.2.22_adapter.
++  * debian/patches/allow_pcre2 (new): Allow use of PCRE2.
++  * debian/patches/series:
++    - Move system_mbedtls_only up in conjunction with incorporating part
++      of an upstream patch needed by support_mbedtls3.
++    - Comment out reprobuild; I'm all for reproducibility, but the package
++      already automatically builds with flags that make __FILE__ relative,
++      and many of its uses are in header-defined macros that intend to
++      pick up their callers' paths.
++  * debian/patches/support_mbedtls3 (new): Support (but don't require)
++    Mbed TLS 3.x.  (Closes: #1075867.)
++  * debian/patches/system_mbedtls: Extend to cover ncbi_mbedtls.c (as in
++    https://github.com/ncbi/ncbi-cxx-toolkit-public/commit/f9c7297dd1)
++    and Makefile.xxconnect2.lib.
++  * debian/rules:
++    - Regenerate configure and config.h.in with Autoconf 2.69.
++    - Build against PCRE2, as enabled by debian/patches/allow_pcre2.
++      (Closes: #891197.)
++    - Tune flags: Add --without-strip to make --with-symbols effective;
++      switch off warnings from __DATE__/__TIME__ usage, since
++      dpkg-buildpackage's SOURCE_DATE_EPOCH injection should suffice.
++    - Extend generated-sources cleanup to objtools/eutils (not entirely
++      straightforward due to input format variation).
++    - Drop build-time 2to3 invocation in favor of debian/patches/2to3.
++  * debian/source/lintian-overrides: No more rapidjson10 (just ...11).
++  * Standards-Version: 4.7.0 (routine-update)
++
++ -- Aaron M. Ucko <ucko@debian.org>  Thu, 25 Jul 2024 20:07:36 -0400
++
++ncbi-blast+ (2.12.0+ds-4) unstable; urgency=medium
++
++  * debian/control: Drop build dependency on libpcre3-dev; PCRE2 support
++    isn't ready yet, but there's a convenience copy of classic PCRE that
++    will suffice for now.  (Partly addresses #891197.)
++  * debian/source/lintian-overrides: Accommodate bracketed paths.
++  * Standards-Version: 4.6.2 (routine-update)
++  * Remove trailing whitespace in debian/changelog (routine-update)
++  * Refer to common license file for Apache-2.0.
++  * Avoid explicitly specifying -Wl,--as-needed linker flag.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Mon, 04 Sep 2023 22:40:42 -0400
++
++ncbi-blast+ (2.12.0+ds-3) unstable; urgency=medium
++
++  * d/patches/optin_usage_report change usage reports sending over
++    internet strategy to optin (disabled by default unless specified)
++    (Closes # 1005279).
++
++ -- Olivier Sallou <osallou@debian.org>  Thu, 10 Feb 2022 12:17:56 +0000
++
++ncbi-blast+ (2.12.0+ds-2) unstable; urgency=medium
++
++  * Clean up spurious release-status comment from 2.12.0+ds-1.
++  * debian/patches/system_mbedtls_only: Patch out use of local mbed TLS
++    headers, which formally rename all symbols.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Wed, 01 Dec 2021 23:36:32 -0500
++
++ncbi-blast+ (2.12.0+ds-1) unstable; urgency=medium
++
++  * New upstream release.
++  * debian/patches: Update accordingly.
++    - fix_lib_deps, fix_unit_tests, spelling: Formally refresh to eliminate
++      fuzz.
++    - fix_x86isms: Retire (fully incorporated upstream.)
++    - run_perl_directly: Formally update to reflect current $Id$ comment.
++    - support_x32: Forward-port.
++    - tune_lmdb_defaults: Keep just the MIPS tuneup; upstream's settings
++      should now be fine elsewhere.
++  * Standards-Version: 4.6.0 (routine-update)
++  * watch file standard 4 (routine-update)
++  * debian/patches/suppress_tls_version_checks (formerly
++    suppress_gnutls_version_check): Suppress the mbed TLS version check too.
++    (Closes: #1000358.)
++  * debian/watch: Correct filenamemangle (wrong syntax for multiple rules,
++    and leading components left unstripped).
++  * debian/source/lintian-overrides: Simplify c++/src/html/ncbi_menu*.js
++    overrides per current Lintian.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Wed, 01 Dec 2021 22:27:15 -0500
++
++ncbi-blast+ (2.11.0+ds-1) unstable; urgency=medium
++
++  [ Steffen Möller ]
++  * Update metadata - fixed indenting.
++
++  [ Aaron M. Ucko ]
++  * New upstream release.
++  * debian/patches: Update accordingly.
++    - bm-6.4.0: Retire (fully incorporated upstream).
++    - fix_lib_deps: Formally refresh to eliminate fuzz.
++    - run_perl_directly: Formally update to reflect current $Id$ comment.
++    - tune_lmdb_defaults: Port to new setup, conveniently macro-driven.
++  * Standards-Version: 4.5.1 (routine-update)
++  * debhelper-compat 13 (routine-update)
++
++ -- Aaron M. Ucko <ucko@debian.org>  Sun, 31 Jan 2021 21:23:21 -0500
++
++ncbi-blast+ (2.10.1+ds-1) unstable; urgency=medium
++
++  * Repack without c++/src/build-system/project_tree_builder_gui/bin.
++    Debian builds make no use of this (Java) GUI or supporting third-party
++    jars, and could do without prebuilt binaries even if they did use it.
++  * debian/copyright:
++    - Set Files-Excluded accordingly.
++    - Correct typos for c++/src/html/ncbi_menu*.js; in particular, replace
++      duplicate .../ncbi_menu_dnd.js by .../ncbi_menu_dyn.js.
++  * debian/watch: Set dversionmangle and repacksuffix options accordingly.
++  * debian/source/lintian-overrides: For ncbi_menu*.js, which are editable
++    despite long lines, override source-contains-prebuilt-javascript-object
++    in addition to source-is-missing.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Fri, 23 Oct 2020 17:23:46 -0400
++
++ncbi-blast+ (2.10.1-3) unstable; urgency=medium
++
++  * debian/patches/tune_lmdb_defaults: Scale down slightly more on 32-bit
++    mips* (just mipsel in practice these days).  The sizes at this point
++    are 640 MiB there, 750 MB on other 32-bit platforms, and 20 GB on
++    64-bit platforms.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Sun, 04 Oct 2020 21:37:04 -0400
++
++ncbi-blast+ (2.10.1-2) unstable; urgency=medium
++
++  * debian/patches/bm-6.4.0 (new): Update embedded copy of BitMagic to
++    version 6,4.0 (from 6.0.0), addressing new "inlining failed in call to
++    'always_inline'" errors on mips*el.  (The bmagic package currently has
++    version 6.3.0, slightly predating the necessary fix.)
++
++ -- Aaron M. Ucko <ucko@debian.org>  Sun, 20 Sep 2020 21:30:04 -0400
++
++ncbi-blast+ (2.10.1-1) unstable; urgency=medium
++
++  * New upstream release.
++    - Among other changes, "fix tblastn mt issue".  (Closes: #970344.)
++  * debian/patches/fix_x86isms (new): Conditionally stub out
++    CCpuFeatures::InstructionSet::InstructionSet, which compiles only on x86.
++  * debian/patches/{hurd_fixes,run_perl_directly}: Rebase.
++  * debian/patches/{reprobuild,support_x32}: Refresh (had fuzz).
++  * debian/patches/support_gcc10: Drop build-system portions, incorporated
++    upstream as of this release.
++  * debian/patches/tune_lmdb_defaults: Rename from tune_32bit_lmdb_defaults;
++    scale down somewhat even on 64-bit platforms to account for potential
++    use of qemu.  (Closes: #969608.)
++
++ -- Aaron M. Ucko <ucko@debian.org>  Sat, 19 Sep 2020 22:45:42 -0400
++
++ncbi-blast+ (2.10.0-3) unstable; urgency=medium
++
++  * debian/patches/tune_32bit_lmdb_defaults: Tweak default map size expressions.
++    - For 64-bit platforms, use an explicit UL suffix on one factor to avoid
++      overflow.
++    - For 32-bit platforms, avoid tying up quite so much address space, since
++      opening a pair of databases is a distinct possibility.
++    - Generally parenthesize expressions per best macro practice.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Mon, 07 Sep 2020 21:15:02 -0400
++
++ncbi-blast+ (2.10.0-2) unstable; urgency=high
++
++  * debian/patches/support_gcc10: Additionally tweak ncbifile.cpp to avoid
++    narrowing errors on some platforms (i386, for one).
++  * debian/patches/tune_32bit_lmdb_defaults (new): Conditionalize default
++    map size to avoid allocation failures on 32-bit platforms.
++    (Closes: #969608.)
++
++ -- Aaron M. Ucko <ucko@debian.org>  Sun, 06 Sep 2020 23:07:37 -0400
++
++ncbi-blast+ (2.10.0-1) unstable; urgency=medium
++
++  * New upstream release.
++  * debian/patches:
++    - Formally refresh.  (A few files needed straightforward manual
++      intervention.)
++    - support_gcc10: New, for formal support of GCC 10+.  (Closes: #957581.)
++    - run_perl_directly: New, to streamline update_blastdb(.pl)'s #! line.
++  * debian/rules:
++    - override_dh_clean: Clean up new generated artifacts: fakehome/ and
++      c++/include/common/ncbi_revision.h.
++    - override_dh_install-arch: Install new cleanup-blastdb-volumes script
++      without its upstream .py suffix.
++    - Stop directly injecting -Wl,--as-needed into LDFLAGS, but keep
++      DEB_LDFLAGS_MAINT_APPEND for the sake of backports, along with a
++      comment that they can't rely on GCC 9+.
++  * Add salsa-ci file (routine-update)
++  * Wrap long lines in changelog entries: 2.2.25-6.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Sun, 26 Apr 2020 19:38:13 -0400
++
++ncbi-blast+ (2.9.0-4) unstable; urgency=high
++
++  * debian/control: Standards-Version: 4.5.0 (already compliant).
++  * debian/rules: DEB_CONFIGURE_COMMON_FLAGS += --without-sse42.
++    (Closes: #951280.)
++
++ -- Aaron M. Ucko <ucko@debian.org>  Sun, 16 Feb 2020 20:16:33 -0500
++
++ncbi-blast+ (2.9.0-3) unstable; urgency=medium
++
++  * Team upload.
++  * Drop transitional blast2 package. (Closes: #940742).
++  * debian/copyright: refreshed
++  * debhelper-compat 12
++  * Secure URI in copyright format
++  * Remove trailing whitespace in debian/changelog
++  * Use secure URI in Homepage field.
++  * Move source package lintian overrides to debian/source.
++  * Set upstream metadata fields: Contact, Name.
++  * Remove obsolete fields Name, Contact from debian/upstream/metadata.
++
++ -- Michael R. Crusoe <michael.crusoe@gmail.com>  Thu, 05 Dec 2019 15:42:44 +0100
++
++ncbi-blast+ (2.9.0-2) unstable; urgency=medium
++
++  * debian/control: Standards-Version: 4.4.1 (already compliant).
++  * debian/copyright: Remove redundant ncbi_menu_*.js stanza.
++  * debian/rules:
++    - Delegate dpkg-{architecture,buildflags} calls to
++      /usr/share/dpkg/{architecture,buildflags}.mk respectively.
++    - Allow for cross-building (Closes: #930240):
++    -- Factor a DEB_CONFIGURE_COMMON_FLAGS macro out of
++       DEB_CONFIGURE_EXTRA_FLAGS for flags that also make sense for native
++       builds of internal helpers.
++    -- Conditionally supply --build=... and --host= to the main
++       (historically, only) configure run per Helmut Grohne's suggestion.
++       (dh_auto_configure would take care of this, but insists on passing
++       a --runstatedir=... flag this configure script doesn't accept.)
++    -- Conditionally add a rule for building native datatool and
++       project_tree_builder binaries (in a parallel build tree established
++       via another configure invocation), make it a dependency of
++       override_dh_auto_configure-arch, and arrange for everything else to
++       use these binaries as needed.
++    -- Honor DEB_BUILD_OPTIONS="... nocheck ...", also per Helmut.
++    -- Rework logic to install (possibly indirect) local library
++       dependencies to use readelf rather than ldd, making as many passes
++       as necessary (four at present, but no hardcoded count).
++    - Install get_species_taxids without the .sh suffix.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Sun, 29 Sep 2019 21:57:31 -0400
++
++ncbi-blast+ (2.9.0-1) unstable; urgency=medium
++
++  * New upstream release
++
++ -- Olivier Sallou <osallou@debian.org>  Wed, 11 Sep 2019 07:44:38 +0000
++
++ncbi-blast+ (2.8.1-2) unstable; urgency=medium
++
++  * Convert windowmasker_2.2.22_adapter to Python 3 via 2to3;
++    update (build-)dependencies accordingly.  (Closes: #937121.)
++
++ -- Aaron M. Ucko <ucko@debian.org>  Sun, 01 Sep 2019 20:50:43 -0400
++
++ncbi-blast+ (2.8.1-1) unstable; urgency=medium
++
++  * New upstream release.
++  * debian/compat: Advance to Debhelper 11.
++  * debian/control:
++    - Build-Depend on liblmdb-dev.
++    - Split B-Ds other than Debhelper out to Build-Depends-Arch.
++    - Advance Debhelper requirement to 11~.
++    - Standards-Version: 4.3.0 (already compliant).
++    - Rules-Requires-Root: no.
++  * debian/patches: Formally update for new release.
++    - Retire support_boost_1_67 (already applied upstream).
++    - Update patches that apply with offsets or outright fuzz, or need
++      full-fledged porting.
++  * debian/patches/fix_lib_deps: Link xcleanup against $(OBJEDIT_LIBS).
++  * debian/patches/system_mbedtls_only (new): Omit convenience mbed TLS
++    copy, which is dead weight and yielded a Lintian error.
++  * debian/rules: Also skip (dh_auto)_configure when building only
++    architecture-independent binary packages.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Sun, 03 Feb 2019 22:47:45 -0500
++
++ncbi-blast+ (2.7.1-2) unstable; urgency=medium
++
++  [ David Miguel Susano Pinto ]
++  * d/control: fix Vcs-* links to point to salsa
++
++  [ Aaron M. Ucko ]
++  * d/control: Standards-Version: 4.2.1 (already compliant).
++  * d/patches/support_boost_1_67: New patch to extend Boost support
++    (used for uninstalled tests) through at least version 1.67, per
++    upstream (https://www.ncbi.nlm.nih.gov/viewvc/v1/trunk/c%2B%2B)
++    revisions 79910, 79926, 79928, and 79929.  (Closes: #916000.)
++
++ -- Aaron M. Ucko <ucko@debian.org>  Wed, 12 Dec 2018 22:24:45 -0500
++
++ncbi-blast+ (2.7.1-1) unstable; urgency=medium
++
++  * New upstream release
++    d/patches: update patch for new release
++    d/control:
++      go to standards 4.1.3
++      add mbedtls dependency
++
++ -- Olivier Sallou <osallou@debian.org>  Sat, 10 Feb 2018 17:35:31 +0000
++
++ncbi-blast+ (2.6.0-1) unstable; urgency=medium
++
++  * New upstream release
++
++ -- Olivier Sallou <osallou@debian.org>  Sun, 15 Jan 2017 17:12:27 +0000
++
++ncbi-blast+ (2.5.0-4) unstable; urgency=medium
++
++  * New optionally_keep_sequence patch to hang on to sequence data even if
++    -parse_deflines recognized a non-local ID, on the condition that the
++    environment variable BLAST_ALWAYS_KEEP_SEQUENCE (or configuration
++    parameter [BLAST] always_keep_sequence) is set to a "true" value
++    (English-only, case-insensitive true, t, yes, y, or 1).  (Closes: #792510.)
++
++ -- Aaron M. Ucko <ucko@debian.org>  Wed, 14 Dec 2016 22:46:44 -0500
++
++ncbi-blast+ (2.5.0-3) unstable; urgency=medium
++
++  * New suppress_gnutls_version_check patch to prevent bailing when the
++    exact compile-time and runtime GNU TLS versions differ; trust dpkg to
++    disallow combinations that are actually incompatible.
++  * debian/rules: If configure fails (as has been happening on alpha),
++    present (BUILD/status/)config.log before bailing.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Wed, 07 Dec 2016 21:40:38 -0500
++
++ncbi-blast+ (2.5.0-2) unstable; urgency=medium
++
++  * debian/patches/fix_lib_deps: Patch Makefile.blast_macros.mk to add blast
++    to BLAST_LIBS to clear up link errors that could otherwise occur.
++  * debian/control: B-D on libgnutls28-dev to enable HTTPS support.
++  * Fully take blast2 over from ncbi-tools6, whose implementation has retired.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Mon, 05 Dec 2016 23:16:54 -0500
++
++ncbi-blast+ (2.5.0-1) unstable; urgency=medium
++
++  * New upstream release
++
++ -- Olivier Sallou <osallou@debian.org>  Thu, 01 Dec 2016 14:40:17 +0100
++
++ncbi-blast+ (2.4.0-3) unstable; urgency=medium
++
++  * debian/rules:
++    - Properly build (but don't install) run_with_lock. (Closes: #833538.)
++    - Comment out nostrip check, which yielded a useless dbgsym package.
++  * Reinstate and refresh the hurd_fixes patch, which mostly still applies.
++    (Closes: #833539.)
++  * Add a new support_x32 patch to avoid picking up wrong inline assembly.
++    (Closes: #833541.)
++
++ -- Aaron M. Ucko <ucko@debian.org>  Fri, 05 Aug 2016 19:47:24 -0400
++
++ncbi-blast+ (2.4.0-2) unstable; urgency=medium
++
++  * Import upstream patch for remaining Boost compatibility issues
++    as debian/patches/support_recent_boost.  (Closes: #833451.)
++  * debian/rules: Automatically determine which libraries are needed.
++    (The hand-maintained blacklist was incomplete.)
++
++ -- Aaron M. Ucko <ucko@debian.org>  Thu, 04 Aug 2016 23:08:20 -0400
++
++ncbi-blast+ (2.4.0-1) unstable; urgency=medium
++
++  * New upstream release.
++  * Refresh patches; drop fix_kfreebsd_ftbs.patch (applied upstream).
++  * Import upstream patch to fix Boost version detection (which missed the
++    2.4.0 release branch) as debian/patches/fix_version_extraction.
++  * fix_lib_deps: List taxon1 in align_format's overridden DLL_LIB, in
++    large part to ensure its headers are generated on time; generally fix
++    remaining cases of underlinkage (several longstanding).
++  * debian/rules: Build --without-downloaded-vdb, to avoid trying to go to
++    Github for code that BLAST+ doesn't even use.  (Other parts of the C++
++    Toolkit do.)
++  * debian/control: Go ahead and add myself to Uploaders.
++
++ -- Aaron M. Ucko <ucko@debian.org>  Wed, 03 Aug 2016 21:40:00 -0400
++
++ncbi-blast+ (2.3.0-2) unstable; urgency=medium
++
++  * Team upload.
++  * Autopkgtest added
++
++ -- Canberk Koç <canberkkoc@gmail.com>  Tue, 02 Aug 2016 03:32:09 +0300
++
++ncbi-blast+ (2.3.0-1) unstable; urgency=medium
++
++  * New upstream version
++  * Moved packaging to Git
++  * cme fix dpkg-control
++  * drop get-orig-source target which is simply the usual uscan call
++
++ -- Andreas Tille <tille@debian.org>  Tue, 12 Apr 2016 14:54:08 +0200
++
++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 --cc debian/control
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..08ae55814906cf0408c39229ef80072e727065f2
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,60 @@@
++Source: ncbi-blast+
++Maintainer: Debian Med Packaging Team <debian-med-packaging@lists.alioth.debian.org>
++Uploaders: Olivier Sallou <osallou@debian.org>,
++           Andreas Tille <tille@debian.org>,
++           Aaron M. Ucko <ucko@debian.org>
++Section: science
++Priority: optional
++Build-Depends: debhelper-compat (= 13),
++               autoconf2.69
++Build-Depends-Arch: libboost-test-dev,
++                    libbz2-dev,
++                    libc-dev-bin,
++                    libgnutls28-dev,
++                    liblmdb-dev,
++                    libmbedtls-dev,
++                    libnghttp2-dev,
++                    libpcre2-dev,
++                    libsqlite3-dev,
++                    libuv1-dev,
++                    time,
++                    zlib1g-dev,
++                    procps
++Standards-Version: 4.7.0
++Vcs-Browser: https://salsa.debian.org/med-team/ncbi-blastplus
++Vcs-Git: https://salsa.debian.org/med-team/ncbi-blastplus.git
++Homepage: https://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/
++Rules-Requires-Root: no
++
++Package: ncbi-blast+
++Architecture: any
++Multi-Arch: foreign
++Depends: ncbi-data,
++         python3,
++         ${misc:Depends},
++         ${perl:Depends},
++         ${shlibs:Depends}
++Enhances: t-coffee
++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
++Multi-Arch: foreign
++Depends: ncbi-blast+,
++         ${misc:Depends}
++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.
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2453aa4c2f074ccd530fe118d3009a73fefa603f
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,211 @@@
++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
++Upstream-Name: ncbi-blast+
++Upstream-Contact: blastsoft@ncbi.nlm.nih.gov
++Files-Excluded: c++/src/build-system/project_tree_builder_gui/bin
++
++Files: c++/*
++Copyright: NCBI
++License: PD
++                                  PUBLIC DOMAIN NOTICE
++                     National Center for Biotechnology Information
++ .
++        This software/database is a "United States Government Work" under the
++        terms of the United States Copyright Act.  It was written as part of
++        the author's official duties as a United States Government employee and
++        thus cannot be copyrighted.  This software/database is freely available
++        to the public for use. The National Library of Medicine and the U.S.
++        Government have not placed any restriction on its use or reproduction.
++ .
++        Although all reasonable efforts have been taken to ensure the accuracy
++        and reliability of the software and data, the NLM and the U.S.
++        Government do not and cannot warrant the performance or results that
++        may be obtained by using this software or data. The NLM and the U.S.
++        Government disclaim all warranties, express or implied, including
++        warranties of performance, merchantability or fitness for any particular
++        purpose.
++ .
++        Please cite the author in any work or product based on this material.
++
++Files: c++/src/connect/mbedtls/*
++Copyright: 2006-2015, ARM Limited, All Rights Reserved
++License: Apache-2.0
++ Licensed under the Apache License, Version 2.0 (the "License"); you may
++ not use this file except in compliance with the License.
++ You may obtain a copy of the License at
++ .
++ http://www.apache.org/licenses/LICENSE-2.0
++ .
++ Unless required by applicable law or agreed to in writing, software
++ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
++ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ See the License for the specific language governing permissions and
++ limitations under the License.
++ .
++ On Debian systems, the full text of the Apache License, Version 2.0 can be
++ found in the file `/usr/share/common-licenses/Apache-2.0'.
++
++Files: c++/src/html/ncbi_menu.js
++       c++/src/html/ncbi_menu_dnd.js
++       c++/src/html/ncbi_menu_dyn.js
++Copyright: 1997 Gary Smith
++           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++/*/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*
++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/m4/ax_jni_include_dir.m4
++Copyright: 2008 Don Anderson <dda@sleepycat.com>
++License: as_is
++   Copying and distribution of this file, with or without modification, are
++   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++/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 --cc debian/dirs
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2b9d19040747e325d2844a9043d910d350ecf2aa
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++usr/bin
++var/lib/ncbi-blast+/db
diff --cc debian/docs
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
new file mode 100644 (file)
--- /dev/null
--- /dev/null
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..dba6d0cadd9c09a0acc6572aa4676e88c947b50d
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++#!/bin/sh
++
++# Execute legacy blast 
++exec legacy_blast ${0##*/} $@
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..415f082dd910d68018bafc3092793db6a06ebf68
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++/usr/bin
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..fe9e0c353d4ed7e8b1bd05115579d5ce5dcb3ca8
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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+
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..32fdc4738070e024b73419174f7f8c4476684030
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++usr/bin
++usr/lib/ncbi-blast+
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e5da4986ba7d29be4dcc8ae9e16c5c4707ba1659
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++debian/ncbi-blast+.tests/*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0f651869c921dec14bcfa53fe5e807692afbfb78
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++debian/*.1
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6db78dd595efd0a5b44c52e621542e69c19a32bd
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,10 @@@
++>gnl|MYDB|1 this is sequence 1
++GAATTCCCGCTACAGGGGGGGCCTGAGGCACTGCAGAAAGTGGGCCTGAGCCTCGAGGATGACGGTGCTGCAGGAACCCG
++TCCAGGCTGCTATATGGCAAGCACTAAACCACTATGCTTACCGAGATGCGGTTTTCCTCGCAGAACGCCTTTATGCAGAA
++GTACACTCAGAAGAAGCCTTGTTTTTACTGGCAACCTGTTATTACCGCTCAGGAAAGGCATATAAAGCATATAGACTCTT
++GAAAGGACACAGTTGTACTACACCGCAATGCAAATACCTGCTTGCAAAATGTTGTGTTGATCTCAGCAAGCTTGCAGAAG
++GGGAACAAATCTTATCTGGTGGAGTGTTTAATAAGCAGAAAAGCCATGATGATATTGTTACTGAGTTTGGTGATTCAGCT
++TGCTTTACTCTTTCATTGTTGGGACATGTATATTGCAAGACAGATCGGCTTGCCAAAGGATCAGAATGTTACCAAAAGAG
++CCTTAGTTTAAATCCTTTCCTCTGGTCTCCCTTTGAATCATTATGTGAAATAGGTGAAAAGCCAGATCCTGACCAAACAT
++TTAAATTCACATCTTTACAGAACTTTAGCAACTGTCTGCCCAACTCTTGCACAACACAAGTACCTAATCATAGTTTATCT
++CACAGACAGCCTGAGACAGTTCTTACGGAAACACCCCAGGACACAATTGAATTAAACAGATTGAATTTAGAATCTTCCAA
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..844ac1db4517fc8ad20ed4c4d4b22e81d050380e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,29 @@@
++>gnl1 
++GAATTCCCGCTACAGGGGGGGCCTGAGGCACTGCAGAAAGTGGGCCTGAGCCTCGAGGATGACGGTGCTGCAGGAACCCG
++TCCAGGCTGCTATATGGCAAGCACTAAACCACTATGCTTACCGAGATGCGGTTTTCCTCGCAGAACGCCTTTATGCAGAA
++GTACACTCAGAAGAAGCCTTGTTTTTACTGGCAACCTGTTATTACCGCTCAGGAAAGGCATATAAAGCATATAGACTCTT
++GAAAGGACACAGTTGTACTACACCGCAATGCAAATACCTGCTTGCAAAATGTTGTGTTGATCTCAGCAAGCTTGCAGAAG
++GGGAACAAATCTTATCTGGTGGAGTGTTTAATAAGCAGAAAAGCCATGATGATATTGTTACTGAGTTTGGTGATTCAGCT
++TGCTTTACTCTTTCATTGTTGGGACATGTATATTGCAAGACAGATCGGCTTGCCAAAGGATCAGAATGTTACCAAAAGAG
++CCTTAGTTTAAATCCTTTCCTCTGGTCTCCCTTTGAATCATTATGTGAAATAGGTGAAAAGCCAGATCCTGACCAAACAT
++TTAAATTCACATCTTTACAGAACTTTAGCAACTGTCTGCCCAACTCTTGCACAACACAAGTACCTAATCATAGTTTATCT
++CACAGACAGCCTGAGACAGTTCTTACGGAAACACCCCAGGACACAATTGAATTAAACAGATTGAATTTAGAATCTTCCAA
++>gnl2
++GAATTCCCGCTACAGGGGGGGCCTGAGGCACTGCAGAAAGTGGGCCTGAGCCTCGAGGATGACGGTGCTGCAGGAACCCG
++TCCAGGCTGCTATATGGCAAGCACTAAACCACTATGCTTACCGAGATGCGGTTTTCCTCGCAGAACGCCTTTATGCAGAA
++GTACACTCAGAAGAAGCCTTGTTTTTACTGGCAACCTGTTATTACCGCTCAGGAAAGGCATATAAAGCATATAGACTCTT
++GAAAGGACACAGTTGTACTACACCGCAATGCAAATACCTGCTTGCAAAATGTTGTGTTGATCTCAGCAAGCTTGCAGAAG
++GGGAACAAATCTTATCTGGTGGAGTGTTTAATAAGCAGAAAAGCCATGATGATATTGTTACTGAGTTTGGTGATTCAGCT
++TGCTTTACTCTTTCATTGTTGGGACATGTATATTGCAAGACAGATCGGCTTGCCAAAGGATCAGAATGTTACCAAAAGAG
++CCTTAGTTTAAATCCTTTCCTCTGGTCTCCCTTTGAATCATTATGTGAAATAGGTGAAAAGCCAGATCCTGACCAAACAT
++TTAAATTCACATCTTTACAGAACTTTAGCAACTGTCTGCCCAACTCTTGCACAACACAAGTACCTAATCATAGTTTATCT
++CACAGACAGCCTGAGACAGTTCTTACGGAAACACCCCAGGACACAATTGAATTAAACAGATTGAATTTAGAATCTTCCAA
++>gnl3
++GAATTCCCGCTACAGGGGGGGCCTGAGGCACTGCAGAAAGTGGGCCTGAGCCTCGAGGATGACGGTGCTGCAGGAACCCG
++TCCAGGCTGCTATATGGCAAGCACTAAACCACTATGCTTACCGAGATGCGGTTTTCCTCGCAGAACGCCTTTATGCAGAA
++GTACACTCAGAAGAAGCCTTGTTTTTACTGGCAACCTGTTATTACCGCTCAGGAAAGGCATATAAAGCATATAGACTCTT
++GAAAGGACACAGTTGTACTACACCGCAATGCAAATACCTGCTTGCAAAATGTTGTGTTGATCTCAGCAAGCTTGCAGAAG
++GGGAACAAATCTTATCTGGTGGAGTGTTTAATAAGCAGAAAAGCCATGATGATATTGTTACTGAGTTTGGTGATTCAGCT
++TGCTTTACTCTTTCATTGTTGGGACATGTATATTGCAAGACAGATCGGCTTGCCAAAGGATCAGAATGTTACCAAAAGAG
++CCTTAGTTTAAATCCTTTCCTCTGGTCTCCCTTTGAATCATTATGTGAAATAGGTGAAAAGCCAGATCCTGACCAAACAT
++TTAAATTCACATCTTTACAGAACTTTAGCAACTGTCTGCCCAACTCTTGCACAACACAAGTACCTAATCATAGTTTATCT
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..18f1bd626ced60f1505b0aea3e62122d1eafd2c1
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,48 @@@
++--- a/c++/src/app/winmasker/windowmasker_2.2.22_adapter.py    (original)
+++++ b/c++/src/app/winmasker/windowmasker_2.2.22_adapter.py    (refactored)
++@@ -79,7 +79,7 @@
++     while True:
++         if arg_pos >= len( sys.argv ): break
++         arg = sys.argv[arg_pos]
++-        if arg not in old_wm_opt_info.keys(): tmpres.append( arg )
+++        if arg not in list(old_wm_opt_info.keys()): tmpres.append( arg )
++         else:
++             if arg == '-convert':
++                 arg_pos += 1
++@@ -159,7 +159,7 @@
++         elif state == 'copy': 
++             result.append( arg )
++             state = 'check'
++-        elif arg in old_wm_opt_info.keys():
+++        elif arg in list(old_wm_opt_info.keys()):
++             if arg in excludes[wm_mode]:
++                 if not old_wm_opt_info[arg]: state = 'skip'
++             else:
++@@ -172,13 +172,13 @@
++     global HELP_STR
++     mode = 'exec'
++     if len( sys.argv ) <= 1: 
++-        print HELP_STR
+++        print(HELP_STR)
++         return
++     else:
++          if sys.argv[1] == '--print-only': 
++             mode = 'print'
++             if len( sys.argv ) <= 2: 
++-                print HELP_STR
+++                print(HELP_STR)
++                 return
++             else: 
++                   wm_name = sys.argv[2]
++@@ -188,9 +188,9 @@
++             start_idx = 1
++     new_args = process( start_idx )
++     result_str = wm_name + ' ' + ' '.join( new_args )
++-    if mode == 'print': print result_str
+++    if mode == 'print': print(result_str)
++     else:
++-        print 'running "' + result_str + '"'
+++        print('running "' + result_str + '"')
++         os.system( result_str )
++ 
++ if __name__ == '__main__':
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0472bde075976ca4f426ce70c6271e8d842f009e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,372 @@@
++From d615c51fb9fe6172a84feea47906abd164198fd5 Mon Sep 17 00:00:00 2001
++From: ucko <ucko@ncbi.nlm.nih.gov>
++Date: Thu, 18 Jul 2024 18:33:56 +0000
++Subject: [PATCH] Allow substituting PCRE2 for legacy PCRE by explicit request.
++
++- For now, require opt-in via --with-components="...;PCRE2;..." (CMake),
++  --with-pcre2 (traditional Unix build system), or uncommenting the
++  relevant ThirdParty_PCRE2 setting in project_tree_builder.ini
++  (traditional Windows build system).
++- Likewise, hold off on switching the bundled copy to PCRE2 or checking
++  for any functions or headers that will become of interest.
++- Redundantly (for now) shun external PCRE2 in bin-release configurations.
++- Otherwise favor (allowed!) external installations over the bundled
++  copy, preferring PCRE2 over legacy PCRE when both are found and
++  allowed but (in due course) external legacy PCRE over bundled PCRE2 in
++  the absence of external PCRE2.
++- In the traditional build system, have the widely used PCRE_LIBS macro
++  correspond to whichever PCRE is default (when not falling back on a
++  bundled copy), and add a PCRE_LEGACY_LIBS macro for the sake of
++  anything using legacy PCRE directly (very occasionally seen).
++
++JIRA: CXX-12761,
++
++git-svn-id: https://anonsvn.ncbi.nlm.nih.gov/repos/v1/trunk/c++@102806 78c7ea69-d796-4a43-9a09-de51944f1b03
++
++Irrelevant (and inapplicable) changes to c++/src/build-system/cmake/,
++c++/src/build-system/configure (which will be regenerated anyway), and
++c++/src/build-system/project_tree_builder.ini elided.
++---
++ include/util/xregexp/regexp.hpp               |  13 +-
++ src/build-system/Makefile.mk.in               |   3 +
++ .../cmake/CMake.NCBIComponents.cmake          |   2 +-
++ .../cmake/CMake.NCBIComponentsMSVC.cmake      |  17 +-
++ .../cmake/CMake.NCBIComponentsPackage.cmake   |  10 +-
++ .../cmake/CMake.NCBIComponentsUNIXex.cmake    |  18 +-
++ .../cmake/CMake.NCBIComponentsXCODE.cmake     |   9 +
++ .../cmake/CMakeChecks.compiler.cmake          |   1 +
++ src/build-system/cmake/conanfile.py           |   2 +
++ src/build-system/cmake/config.cmake.h.in      |   3 +
++ src/build-system/config.h.in                  |   3 +
++ src/build-system/configure                    | 181 +++++++++++++++++-
++ src/build-system/configure.ac                 |  34 +++-
++ src/build-system/project_tree_builder.ini     |  21 ++
++ src/util/xregexp/CMakeLists.txt               |   7 +-
++ src/util/xregexp/Makefile.xregexp.lib         |   6 +-
++ src/util/xregexp/regexp.cpp                   |  69 ++++++-
++ 17 files changed, 376 insertions(+), 23 deletions(-)
++
++--- a/c++/include/util/xregexp/regexp.hpp
+++++ b/c++/include/util/xregexp/regexp.hpp
++@@ -70,7 +70,11 @@ class NCBI_XREGEXP_EXPORT CRegexp
++ {
++ public:
++     /// Element type for GetResults().
+++#ifdef HAVE_LIBPCRE2
+++    typedef size_t TOffset;
+++#else
++     typedef int TOffset;
+++#endif
++ 
++     /// Type definitions used for code clarity.
++     typedef unsigned int TCompile;     ///< Compilation options.
++@@ -287,13 +291,20 @@ private:
++     void x_Match(CTempString str, size_t offset, TMatch flags);
++ 
++     void*  m_PReg;   /// Pointer to compiled PCRE pattern.
++-    void*  m_Extra;  /// Pointer to extra structure used for pattern study.
++ 
+++#ifdef HAVE_LIBPCRE2
+++    void*    m_MatchData;
+++    TOffset* m_Results;
+++    int      m_JITStatus;
+++#else
+++    void*  m_Extra;  /// Pointer to extra structure used for pattern study.
++ 
++     /// Array of locations of patterns/subpatterns resulting from
++     /// the last call to GetMatch(). Also contains 1/3 extra space used
++     /// internally by the PCRE C library.
++     int m_Results[(kRegexpMaxSubPatterns +1) * 3];
+++#endif
+++
++ 
++     /// The total number of pattern + subpatterns resulting from
++     /// the last call to GetMatch.
++--- a/c++/src/build-system/Makefile.mk.in
+++++ b/c++/src/build-system/Makefile.mk.in
++@@ -390,6 +390,9 @@ CMPRS_LIB     = $(Z_LIB) $(BZ2_LIB) $(ZS
++ # wrapper and goes by the name "regexp".
++ PCRE_INCLUDE   = @PCRE_INCLUDE@
++ PCRE_LIBS      = @PCRE_LIBS@
+++PCRE_LEGACY_LIBS = @PCRE_LEGACY_LIBS@
+++PCRE2_INCLUDE  = @PCRE2_INCLUDE@
+++PCRE2_LIBS     = @PCRE2_LIBS@
++ PCREPOSIX_LIBS = @PCREPOSIX_LIBS@
++ PCRE_LIB       = @PCRE_LIB@
++ 
++--- a/c++/src/build-system/config.h.in
+++++ b/c++/src/build-system/config.h.in
++@@ -486,6 +486,9 @@
++ /* Define to 1 if libpcre is available. */
++ #undef HAVE_LIBPCRE
++ 
+++/* Define to 1 if libpcre2 is available. */
+++#undef HAVE_LIBPCRE2
+++
++ /* Define to 1 if libpng is available. */
++ #undef HAVE_LIBPNG
++ 
++--- a/c++/src/build-system/configure.ac
+++++ b/c++/src/build-system/configure.ac
++@@ -90,7 +90,7 @@ case "$with_3psw" in
++          with_yaml_cpp=no
++       fi
++       m4_foreach(X, [sss, sssutils, sssdb, vdb, ngs, ncbicrypt, libunwind,
++-                     z, bz2, lzo, zstd, pcre, mbedtls,
+++                     z, bz2, lzo, zstd, pcre, pcre2, mbedtls,
++                      gmp, gcrypt, nettle, gnutls, openssl, krb5, boost, lmdb,
++                      sybase, ftds, mysql, opengl, mesa, glut, glew, gl2ps,
++                      wxwidgets, freetype, ftgl, fastcgi, fastcgipp,
++@@ -324,6 +324,10 @@ AC_ARG_WITH(pcre,
++    [ --with-pcre=DIR         use PCRE installation in DIR])
++ AC_ARG_WITH(pcre,
++    [ --without-pcre          use internal copy of PCRE])
+++AC_ARG_WITH(pcre2,
+++   [ --with-pcre2=DIR        use PCRE2 installation in DIR])
+++AC_ARG_WITH(pcre,
+++   [ --without-pcre2         do not use PCRE2])
++ AC_ARG_WITH(mbedtls,
++    [ --with-mbedtls(=DIR)    use external mbedTLS installation (in DIR)])
++ AC_ARG_WITH(gmp,
++@@ -728,7 +732,7 @@ ncbi-c wxwidgets wxwidgets-ucs fastcgi f
++ sss sssdb sssutils included-sss \
++ geo included-geo vdb downloaded-vdb static-vdb ngs ncbicrypt libunwind libdw \
++ backward-cpp backward-cpp-sig \
++-z bz2 lzo zstd pcre mbedtls \
+++z bz2 lzo zstd pcre pcre2 mbedtls \
++ gmp gcrypt nettle gnutls static-gnutls openssl krb5 \
++ sybase sybase-local sybase-new ftds mysql \
++ orbacus freetype ftgl opengl mesa glut glew glew-mx gl2ps \
++@@ -798,7 +802,7 @@ for x_arg in "$@" ; do
++       | --with-ncbicrypt=* \
++       | --with-libunwind=* | --with-libdw=* | --with-backward-cpp=* \
++       | --with-z=* | --with-bz2=* | --with-lzo=* | --with-zstd=* \
++-      | --with-pcre=* | --with-mbedtls=* \
+++      | --with-pcre=* | --with-pcre2=* | --with-mbedtls=* \
++       | --with-gmp=* | --with-gcrypt=* | --with-nettle=* \
++       | --with-gnutls=* | --with-openssl=* | --with-krb5=* \
++       | --with-sybase-local=* | --with-ftds=*/* | --with-mysql=* \
++@@ -892,6 +896,7 @@ if test "$with_bin_release" = "yes" ; th
++    : ${with_libdw=no}
++    : ${with_ncbicrypt=no}
++    : ${with_pcre=no} # Too much variation across distributions.
+++   : ${with_pcre2=no}
++    : ${with_sse42=no}
++    AC_DEFINE(NCBI_BIN_RELEASE, 1,
++              [Define to 1 when building binaries for public release.])
++@@ -4832,7 +4837,18 @@ fi
++ NCBI_CHECK_THIRD_PARTY_LIB(pcre,
++  [AC_LANG_PROGRAM([@%:@include <pcre.h>],
++    [[const char*s[]={"x"}; pcre* p; pcre_extra* x = pcre_study(p, 1, s);]])])
++-if test -z "$PCRE_LIBS"; then
+++
+++: ${with_pcre2=no}
+++NCBI_CHECK_THIRD_PARTY_LIB_EX(pcre2, PCRE2, pcre2-8,
+++ [AC_LANG_PROGRAM([@%:@define PCRE2_CODE_UNIT_WIDTH 8
+++                   @%:@include <pcre2.h>],
+++   [[pcre2_config(123, NULL);]])])
+++PCRE_LEGACY_LIBS=$PCRE_LIBS
+++if test "x$with_pcre2" != xno; then
+++   PCRE_LIBS=$PCRE2_LIBS
+++fi
+++
+++if test -z "$PCRE_LIBS" -a -z "$PCRE2_LIBS"; then
++    pcrelocal=util/regexp
++    AC_MSG_NOTICE([using local PCRE copy in $pcrelocal])
++    PCRE_PATH="<$pcrelocal>"
++@@ -4841,8 +4857,15 @@ if test -z "$PCRE_LIBS"; then
++    # PCREPOSIX_LIBS="-lregexp"
++    PCRE_LIB="regexp"
++    AC_DEFINE(USE_LOCAL_PCRE, 1, [Define to 1 if using a local copy of PCRE.])
++-   NCBI_PACKAGE(PCRE)
+++   if test -f $srcdir/include/$pcrelocal/pcre2.h; then
+++      AC_DEFINE(HAVE_LIBPCRE2, 1, [Define to 1 if libpcre2 is available.])
+++      NCBI_PACKAGE(PCRE2)
+++   else
+++      NCBI_PACKAGE(PCRE)
+++   fi
++    NCBI_PACKAGE(LocalPCRE)
+++elif test -n "$PCRE2_LIBS"; then
+++   PCREPOSIX_LIBS=`echo "$PCRE2_LIBS" | sed -e 's/-lpcre2-8/-lpcre2posix &/'`
++ else
++    PCREPOSIX_LIBS=`echo "$PCRE_LIBS" | sed -e 's/-lpcre/-lpcreposix -lpcre/'`
++ fi
++@@ -9871,6 +9894,7 @@ AC_SUBST(BZ2_LIB)
++ AC_SUBST(ZSTD_STATIC_LIBS)
++ AC_SUBST(PCREPOSIX_LIBS)
++ AC_SUBST(PCRE_LIB)
+++AC_SUBST(PCRE_LEGACY_LIBS)
++ AC_SUBST(OPENSSL_STATIC_LIBS)
++ AC_SUBST(CURL_STATIC_LIBS)
++ AC_SUBST(SYBASE_PATH)
++--- a/c++/src/util/xregexp/CMakeLists.txt
+++++ b/c++/src/util/xregexp/CMakeLists.txt
++@@ -1,6 +1,11 @@
++ # $Id: CMakeLists.txt 621427 2020-12-11 14:26:55Z ivanov $
++ 
++ NCBI_project_tags(core)
++-NCBI_requires(PCRE)
+++# NCBI_optional_components(PCRE PCRE2)
+++if(NCBI_COMPONENT_PCRE2_FOUND)
+++  NCBI_REQUIRES(PCRE2)
+++else()
+++  NCBI_REQUIRES(PCRE)
+++endif()
++ NCBI_add_library(xregexp xregexp_template_tester)
++ 
++--- a/c++/src/util/xregexp/Makefile.xregexp.lib
+++++ b/c++/src/util/xregexp/Makefile.xregexp.lib
++@@ -3,12 +3,12 @@
++ SRC = regexp arg_regexp mask_regexp convert_dates_iso8601
++ LIB = xregexp
++ 
++-CPPFLAGS = $(ORIG_CPPFLAGS) $(PCRE_INCLUDE)
+++CPPFLAGS = $(ORIG_CPPFLAGS) $(PCRE_INCLUDE) $(PCRE2_INCLUDE)
++ 
++ DLL_LIB = $(PCRE_LIB) xutil
++-LIBS    = $(PCRE_LIBS)
+++LIBS    = $(PCRE_LIBS) $(PCRE2_LIBS)
++ 
++ USES_LIBRARIES =  \
++-    $(PCRE_LIB) $(PCRE_LIBS) xncbi
+++    $(PCRE_LIB) $(PCRE_LIBS) $(PCRE2_LIBS) xncbi
++ 
++ WATCHERS = ivanov
++--- a/c++/src/util/xregexp/regexp.cpp
+++++ b/c++/src/util/xregexp/regexp.cpp
++@@ -34,8 +34,14 @@
++ #include <corelib/ncbi_limits.h>
++ #include <corelib/ncbistl.hpp>
++ #include <util/xregexp/regexp.hpp>
++-#include <pcre.h>
++-#define PCRE_FLAG(x) PCRE_##x
+++#ifdef HAVE_LIBPCRE2
+++#  define PCRE2_CODE_UNIT_WIDTH 8
+++#  include <pcre2.h>
+++#  define PCRE_FLAG(x) PCRE2_##x
+++#else
+++#  include <pcre.h>
+++#  define PCRE_FLAG(x) PCRE_##x
+++#endif
++ 
++ #include <memory>
++ #include <stdlib.h>
++@@ -103,7 +109,15 @@ static int s_GetRealMatchFlags(CRegexp::
++ 
++ 
++ CRegexp::CRegexp(CTempStringEx pattern, TCompile flags)
++-    : m_PReg(NULL), m_Extra(NULL), m_NumFound(0)
+++    : m_PReg(NULL),
+++#ifdef HAVE_LIBPCRE2
+++      m_MatchData(NULL),
+++      m_Results(NULL),
+++      m_JITStatus(PCRE2_ERROR_UNSET),
+++#else
+++      m_Extra(NULL),
+++#endif
+++      m_NumFound(0)
++ {
++     Set(pattern, flags);
++ }
++@@ -111,33 +125,63 @@ CRegexp::CRegexp(CTempStringEx pattern,
++ 
++ CRegexp::~CRegexp()
++ {
+++#ifdef HAVE_LIBPCRE2
+++    pcre2_code_free((pcre2_code*)m_PReg);
+++    pcre2_match_data_free((pcre2_match_data*)m_MatchData);
+++#else
++     (*pcre_free)(m_PReg);
++     (*pcre_free)(m_Extra);
+++#endif
++ }
++ 
++ 
++ void CRegexp::Set(CTempStringEx pattern, TCompile flags)
++ {
++     if ( m_PReg ) {
+++#ifdef HAVE_LIBPCRE2
+++        pcre2_code_free((pcre2_code*)m_PReg);
+++#else
++         (*pcre_free)(m_PReg);
+++#endif
++     }
+++#ifdef HAVE_LIBPCRE2
+++    int err_num;
+++#else
++     const char *err;
+++#endif
++     TOffset err_offset;
++     int x_flags = s_GetRealCompileFlags(flags);
++ 
+++#ifdef HAVE_LIBPCRE2
+++    m_PReg = pcre2_compile((PCRE2_SPTR) pattern.data(), pattern.size(),
+++                           x_flags, &err_num, &err_offset, NULL);
+++#else
++     if ( pattern.HasZeroAtEnd() ) {
++         m_PReg = pcre_compile(pattern.data(), x_flags, &err, &err_offset, NULL);
++     } else {
++         m_PReg = pcre_compile(string(pattern).c_str(), x_flags, &err, &err_offset, NULL);
++     }
+++#endif
++     if ( !m_PReg ) {
+++#ifdef HAVE_LIBPCRE2
+++        char err[120];
+++        pcre2_get_error_message(err_num, (PCRE2_UCHAR*) err, ArraySize(err));
+++#endif
++         NCBI_THROW(CRegexpException, eCompile, "Compilation of the pattern '" +
++                    string(pattern) + "' failed: " + err);
++     }
+++#ifdef HAVE_LIBPCRE2
+++    pcre2_match_data_free((pcre2_match_data*)m_MatchData);
+++    m_MatchData = pcre2_match_data_create_from_pattern((pcre2_code*)m_PReg,
+++                                                       NULL);
+++    // Too heavyweight to use by default; a flag may be in order.
+++    // m_JITStatus = pcre2_jit_compile((pcre2_code*)m_PReg, PCRE2_JIT_COMPLETE);
+++#else
++     if ( m_Extra ) {
++         (*pcre_free)(m_Extra);
++     }
++     m_Extra = pcre_study((pcre*)m_PReg, 0, &err);
+++#endif
++ }
++ 
++ 
++@@ -158,8 +202,12 @@ CTempString CRegexp::GetSub(CTempString
++     if ( (int)idx >= m_NumFound ) {
++         return CTempString();
++     }
+++#ifdef HAVE_LIBPCRE2
+++    static const PCRE2_SIZE kNotFound = PCRE2_UNSET;
+++#else
++     static const int kNotFound = -1;
++-    const int * offsets = m_Results;
+++#endif
+++    const auto * offsets = m_Results;
++     auto start = offsets[2 * idx];
++     auto end   = offsets[2 * idx + 1];
++     if (start == kNotFound  ||  end == kNotFound) {
++@@ -172,10 +220,23 @@ CTempString CRegexp::GetSub(CTempString
++ void CRegexp::x_Match(CTempString str, size_t offset, TMatch flags)
++ {
++     int x_flags = s_GetRealMatchFlags(flags);
+++#ifdef HAVE_LIBPCRE2
+++    auto f = (m_JITStatus == 0) ? &pcre2_jit_match : &pcre2_match;
+++    auto *match_data = (pcre2_match_data*) m_MatchData;
+++    int rc = (*f)((pcre2_code*) m_PReg, (PCRE2_UCHAR*)str.data(), str.length(),
+++                  offset, x_flags, match_data, NULL);
+++    m_Results = pcre2_get_ovector_pointer(match_data);
+++    if (rc >= 0) {
+++        m_NumFound = pcre2_get_ovector_count(match_data);
+++    } else {
+++        m_NumFound = -1;
+++    }
+++#else
++     m_NumFound = pcre_exec((pcre*)m_PReg, (pcre_extra*)m_Extra, str.data(),
++                            (int)str.length(), (int)offset,
++                            x_flags, m_Results,
++                            (int)(kRegexpMaxSubPatterns +1) * 3);
+++#endif
++ }
++ 
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..452d4052034c8d4c53fefdbdb68861493e157a32
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,34 @@@
++--- a/c++/src/app/blastdb/makeblastdb.cpp
+++++ b/c++/src/app/blastdb/makeblastdb.cpp
++@@ -293,7 +293,13 @@ void CMakeBlastDBApp::Init()
++     arg_desc->AddDefaultKey("blastdb_version", "version",
++                              "Version of BLAST database to be created",
++                              CArgDescriptions::eInteger,
++-                             NStr::NumericToString(static_cast<int>(eBDB_Version5)));
+++                             NStr::NumericToString(static_cast<int>
+++#ifdef WORDS_BIGENDIAN
+++                                                (eBDB_Version4)
+++#else
+++                                                (eBDB_Version5)
+++#endif
+++                                                ));
++     arg_desc->SetConstraint("blastdb_version",
++                             new CArgAllow_Integers(eBDB_Version4, eBDB_Version5));
++     arg_desc->AddDefaultKey("max_file_sz", "number_of_bytes",
++--- a/c++/src/app/blastdb/makeprofiledb.cpp
+++++ b/c++/src/app/blastdb/makeprofiledb.cpp
++@@ -420,7 +420,13 @@ void CMakeProfileDBApp::x_SetupArgDescri
++     arg_desc->AddDefaultKey("blastdb_version", "version",
++                              "Version of BLAST database to be created",
++                              CArgDescriptions::eInteger,
++-                             NStr::NumericToString(static_cast<int>(eBDB_Version5)));
+++                             NStr::NumericToString(static_cast<int>
+++#ifdef WORDS_BIGENDIAN
+++                                                (eBDB_Version4)
+++#else
+++                                                (eBDB_Version5)
+++#endif
+++                                                ));
++     arg_desc->SetConstraint("blastdb_version",
++                             new CArgAllow_Integers(eBDB_Version4, eBDB_Version5));
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..96b9b2684f8f9edcf9c4a31627b1ed1ee5da98a0
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
++@@ -203,7 +203,7 @@ if test -z "$datatool"; then # keep look
++         if test -n "$DYLD_LIBRARY_PATH"; then
++             wrapper="DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH"
++         fi
++-    else
+++    elif [ "$1" != "purge_sources" ] ; then
++         echo "Unable to find datatool." >&2
++         exit 2
++     fi
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c360ef0d7a81371f2c43b4034c2e53a4074aab15
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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+"$@"}
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..bcdf0fa2928f4b2319d6c358ba873e0da0161482
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,797 @@@
++Subject: ensure that all libraries link against all direct dependencies
++
++ * src/**/Makefile.*.lib: set DLL_(D)LIB correctly.  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.
++ * src/build-system/library_relations.txt: Change xblast's
++   relationship to blast from includes to needs, accordingly.
++ * src/algo/blast/Makefile.blast_macros.mk: Add blast to BLAST_LIBS.
++ * src/algo/blast/dbindex*/*/Makefile.*.app: Link against libxconnect
++   rather than libconnect for consistency with libblast, which uses the
++   former to keep the aforementioned cycle-breaking from causing
++   inconsistency elsewhere.
++
++Debian-Bug: 633567.
++Author: Aaron M. Ucko <ucko@debian.org>
++Last-Update: 2016-12-05
++--- a/c++/src/algo/blast/blastinput/Makefile.blastinput.lib
+++++ b/c++/src/algo/blast/blastinput/Makefile.blastinput.lib
++@@ -27,7 +27,8 @@ SRC  = $(SRC_CXX)
++ 
++ LIB = blastinput
++ 
++-DLL_LIB = xblast align_format ncbi_xloader_blastdb_rmt ncbi_xloader_blastdb seqdb $(OBJREAD_LIBS) $(OBJMGR_LIBS) xutil sqlitewrapp
+++DLL_LIB = xblast align_format ncbi_xloader_blastdb_rmt ncbi_xloader_blastdb \
+++          seqdb $(OBJREAD_LIBS) $(OBJMGR_LIBS) sqlitewrapp scoremat
++ 
++ # 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
++@@ -23,6 +23,7 @@ CFLAGS  = $(FAST_CFLAGS)
++ LDFLAGS = $(FAST_LDFLAGS)
++ WATCHERS = madden camacho fongah2
++ 
+++DLL_LIB = composition_adjustment xconnect tables
++ 
++ USES_LIBRARIES =  \
++     composition_adjustment connect tables
++--- a/c++/src/algo/blast/dbindex/Makefile.xalgoblastdbindex.lib
+++++ b/c++/src/algo/blast/dbindex/Makefile.xalgoblastdbindex.lib
++@@ -11,6 +11,8 @@ SRC = sequence_istream_fasta \
++ CXXFLAGS = -DDO_INLINE $(FAST_CXXFLAGS)
++ LDFLAGS  = $(FAST_LDFLAGS)
++ 
+++DLL_LIB = blast seqdb xobjread xobjutil xobjmgr seqset seq xser xutil xncbi
+++
++ ASN_DEP = seqset submit
++ 
++ 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 @@ APP = makembindex
++ 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)) $(LMDB_LIB)
++ 
++ CXXFLAGS = $(FAST_CXXFLAGS)
++--- a/c++/src/algo/dustmask/Makefile.xalgodustmask.lib
+++++ b/c++/src/algo/dustmask/Makefile.xalgodustmask.lib
++@@ -8,6 +8,8 @@ LIB = xalgodustmask
++ 
++ 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 @@ LIB = xalgosegmask
++ 
++ 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 @@ SRC = seq_masker seq_masker_score_mean s
++ 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
++@@ -1369,7 +1369,7 @@ xassembly_svc needs gc_asn_access
++ xbiosample_util needs $(OBJEDIT_LIBS)
++ xbiosample_util needs xmlwrapp
++ xbiosample_util needs xobjutil
++-xblast includes blast
+++xblast needs blast
++ xblast needs utrtprof
++ xblast needs xalgoblastdbindex
++ xblast needs xalgodustmask
++--- a/c++/src/cgi/Makefile.cgi.lib
+++++ b/c++/src/cgi/Makefile.cgi.lib
++@@ -9,6 +9,8 @@ SRC = ncbicgi cgiapp cgictx ncbicgir ncb
++       user_agent
++ LIB = xcgi
++ 
+++DLL_LIB = xutil xncbi
+++
++ CPPFLAGS = $(ORIG_CPPFLAGS) $(FASTCGI_INCLUDE)
++ 
++ WATCHERS = vakatov
++--- 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 @@ SRC = node html htmlhelper page pager se
++       commentdiag indentstream html_exception writer_htmlenc
++ LIB = xhtml
++ 
+++DLL_LIB = xncbi
+++
++ WATCHERS = ivanov
++ 
++ 
++--- a/c++/src/objects/blast/Makefile.blast.lib
+++++ b/c++/src/objects/blast/Makefile.blast.lib
++@@ -3,6 +3,8 @@ SRC = blast__ blast___ names
++ 
++ DLL_LIB = seqset scoremat
++ 
+++DLL_LIB = scoremat seqset seq xser xncbi
+++
++ WATCHERS = camacho
++ 
++ 
++--- a/c++/src/objects/blastdb/Makefile.blastdb.lib
+++++ b/c++/src/objects/blastdb/Makefile.blastdb.lib
++@@ -5,6 +5,8 @@ SRC = blastdb__ blastdb___
++ 
++ DLL_LIB = xser
++ 
+++DLL_LIB = seq xser xncbi
+++
++ WATCHERS = camacho
++ 
++ 
++--- 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/id1/Makefile.id1.lib
+++++ b/c++/src/objects/id1/Makefile.id1.lib
++@@ -5,6 +5,8 @@ SRC = id1__ id1___
++ 
++ DLL_LIB = seqset
++ 
+++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
++ 
++ USES_LIBRARIES =  \
++--- 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/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 @@ LIB = id2_split
++ 
++ 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
++@@ -14,6 +14,8 @@ LIB = xobjutil
++ 
++ DLL_LIB = submit $(SOBJMGR_LIBS)
++ 
+++DLL_LIB = xobjmgr seqset seq pub biblio general xser sequtil xutil xncbi
+++
++ WATCHERS = ucko vasilche
++ 
++ 
++--- a/c++/src/objtools/align_format/Makefile.align_format.lib
+++++ b/c++/src/objtools/align_format/Makefile.align_format.lib
++@@ -15,6 +15,10 @@ CPPFLAGS = -DNCBI_MODULE=BLASTFORMAT $(O
++ 
++ LIBS = $(BLAST_THIRD_PARTY_LIBS) $(ORIG_LIBS)
++ 
+++DLL_LIB = xalnmgr ncbi_xloader_genbank seqdb blast_services xobjread xobjutil \
+++          xobjmgr xnetblast blastdb gene_info taxon1 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
++@@ -14,6 +14,7 @@ DLL_LIB = xobjutil tables
++ 
++ WATCHERS = grichenk
++ 
+++DLL_LIB = xobjutil 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 @@ SRC = seq_writer blastdb_dataextract bla
++ 
++ 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
++@@ -27,9 +27,10 @@ seqidlist_reader \
++ tax4blastsqlite
++ 
++ LIB = seqdb
++-DLL_LIB = blastdb $(SOBJMGR_LIBS) $(LMDB_LIB) sqlitewrapp
++ LIBS = $(BLAST_THIRD_PARTY_LIBS)
++ 
+++DLL_LIB = blastdb $(SOBJMGR_LIBS) $(LMDB_LIB) sqlitewrapp
+++
++ CFLAGS   = $(FAST_CFLAGS)
++ CPPFLAGS = -DNCBI_MODULE=BLASTDB $(SQLITE3_INCLUDE) $(ORIG_CPPFLAGS) $(BLAST_THIRD_PARTY_INCLUDE) 
++ CXXFLAGS = $(FAST_CXXFLAGS)
++--- a/c++/src/objtools/blast/seqdb_writer/Makefile.writedb.lib
+++++ b/c++/src/objtools/blast/seqdb_writer/Makefile.writedb.lib
++@@ -11,6 +11,9 @@ DLL_LIB = blastdb $(SOBJMGR_LIBS)
++ 
++ LIB = writedb
++ 
+++DLL_LIB = seqdb xobjread xobjmgr blastdb seqset seq general \
+++          xser sequtil xutil xncbi
+++
++ CFLAGS   = $(FAST_CFLAGS)
++ CPPFLAGS = -DNCBI_MODULE=BLASTDB $(ORIG_CPPFLAGS)  $(BLAST_THIRD_PARTY_INCLUDE)
++ CXXFLAGS = $(FAST_CXXFLAGS)
++--- a/c++/src/objtools/blast/services/Makefile.blast_services.lib
+++++ b/c++/src/objtools/blast/services/Makefile.blast_services.lib
++@@ -10,6 +10,8 @@ LIB = blast_services
++ 
++ DLL_LIB = xnetblastcli xnetblast
++ 
+++DLL_LIB = xnetblastcli xnetblast xser xconnect xutil xncbi
+++
++ CFLAGS   = $(FAST_CFLAGS)
++ # -DNCBI_MODULE=NETBLAST moved to blast_services.*pp to avoid misnamed modules in DLL configurations
++ CPPFLAGS = $(ORIG_CPPFLAGS)
++--- a/c++/src/objtools/data_loaders/blastdb/Makefile.ncbi_xloader_blastdb.lib
+++++ b/c++/src/objtools/data_loaders/blastdb/Makefile.ncbi_xloader_blastdb.lib
++@@ -3,7 +3,7 @@
++ LIB = ncbi_xloader_blastdb
++ SRC = bdbloader cached_sequence local_blastdb_adapter
++ 
++-DLL_LIB = seqdb
+++DLL_LIB = seqdb xobjmgr seqset seq xncbi
++ 
++ CPPFLAGS = -DNCBI_MODULE=BLASTDB $(ORIG_CPPFLAGS)
++ 
++--- 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
++@@ -7,6 +7,8 @@ DLL_LIB = blast_services
++ 
++ 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,10 @@ LIB_OR_DLL = both
++ # Dependencies for shared library
++ DLL_LIB = general ncbi_xreader$(DLL) $(GENBANK_PSG_CLIENT_LDEP)
++ 
+++DLL_DLIB = ncbi_xreader_cache ncbi_xreader_id1 ncbi_xreader_id2 \
+++           id2 id1 ncbi_xreader $(GENBANK_PSG_CLIENT_LDEP) xobjmgr \
+++           seq xutil xncbi
+++
++ LIBS = $(GENBANK_THIRD_PARTY_LIBS) $(CMPRS_LIBS) $(ORIG_LIBS)
++ 
++ CPPFLAGS = $(ORIG_CPPFLAGS) $(CMPRS_INCLUDE)
++--- a/c++/src/objtools/data_loaders/genbank/Makefile.ncbi_xreader.lib
+++++ b/c++/src/objtools/data_loaders/genbank/Makefile.ncbi_xreader.lib
++@@ -16,6 +16,9 @@ DLL_LIB = $(GENBANK_READER_LDEP)
++ 
++ LIBS = $(CMPRS_LIBS) $(NETWORK_LIBS) $(DL_LIBS) $(ORIG_LIBS)
++ 
+++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 @@ LIB_OR_DLL = both
++ # 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 @@ LIB_OR_DLL = both
++ # Dependencies for shared library
++ DLL_LIB = ncbi_xreader$(DLL) $(GENBANK_READER_LDEP)
++ 
+++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 @@ LIB_OR_DLL = both
++ 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/seqmasks_io/Makefile.seqmasks_io.lib
+++++ b/c++/src/objtools/seqmasks_io/Makefile.seqmasks_io.lib
++@@ -12,7 +12,7 @@ mask_writer_seqloc \
++ mask_writer_blastdb_maskinfo
++ 
++ ASN_DEP = seqset
++-DLL_LIB = seqdb blastdb
+++DLL_LIB = seqdb xobjread xobjutil xobjmgr blastdb seqset seq xser xncbi
++ 
++ LIBS = $(BLAST_THIRD_PARTY_LIBS) $(ORIG_LIBS)
++ 
++--- a/c++/src/objtools/simple/Makefile.xobjsimple.lib
+++++ b/c++/src/objtools/simple/Makefile.xobjsimple.lib
++@@ -7,6 +7,8 @@ WATCHERS =  jcherry
++ 
++ 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
++@@ -20,6 +20,8 @@ LIB    = xser
++ 
++ DLL_LIB = xutil
++ 
+++DLL_LIB = xutil xncbi
+++
++ WATCHERS = gouriano
++ 
++ 
++--- a/c++/src/util/Makefile.util.lib
+++++ b/c++/src/util/Makefile.util.lib
++@@ -15,6 +15,7 @@ SRC = random_gen utf8 checksum checksum_
++ LIB = xutil
++ PROJ_TAG = core
++ 
+++DLL_LIB = xncbi
++ LIBS = $(ORIG_LIBS)
++ 
++ WATCHERS = vakatov
++--- a/c++/src/util/compress/api/Makefile.compress.lib
+++++ b/c++/src/util/compress/api/Makefile.compress.lib
++@@ -7,7 +7,7 @@ LIB = xcompress
++ 
++ CPPFLAGS = $(ORIG_CPPFLAGS) $(CMPRS_INCLUDE)
++ 
++-DLL_LIB =  $(BZ2_LIB)  $(LZO_LIB)  $(Z_LIB)  $(ZSTD_LIB)
+++DLL_LIB =  $(BZ2_LIB)  $(LZO_LIB)  $(Z_LIB)  $(ZSTD_LIB) xutil xncbi
++ LIBS    =  $(BZ2_LIBS) $(LZO_LIBS) $(Z_LIBS) $(ZSTD_LIBS) $(ORIG_LIBS)
++ 
++ WATCHERS = ivanov
++--- a/c++/src/util/xregexp/Makefile.xregexp.lib
+++++ b/c++/src/util/xregexp/Makefile.xregexp.lib
++@@ -5,7 +5,7 @@ LIB = xregexp
++ 
++ CPPFLAGS = $(ORIG_CPPFLAGS) $(PCRE_INCLUDE) $(PCRE2_INCLUDE)
++ 
++-DLL_LIB = $(PCRE_LIB) xutil
+++DLL_LIB = $(PCRE_LIB) xutil xncbi
++ LIBS    = $(PCRE_LIBS) $(PCRE2_LIBS)
++ 
++ USES_LIBRARIES =  \
++--- a/c++/src/objtools/readers/Makefile.xobjread.lib
+++++ b/c++/src/objtools/readers/Makefile.xobjread.lib
++@@ -29,6 +29,6 @@ SRC = reader_message reader_listener rea
++       message_listener line_error 
++ 
++ 
++-DLL_LIB = submit seqset $(SEQ_LIBS) general xutil xlogging
+++DLL_LIB = submit seqset $(SEQ_LIBS) general xutil xlogging pub xser xncbi
++ 
++ USES_LIBRARIES = submit xlogging
++--- 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 = grichenk ucko
++ 
++ 
++--- 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 smithrg zherikov
++ 
++ 
++--- a/c++/src/objects/medline/Makefile.medline.lib
+++++ b/c++/src/objects/medline/Makefile.medline.lib
++@@ -1,7 +1,7 @@
++ LIB = medline
++ SRC = medline__ medline___
++ 
++-DLL_LIB = biblio general
+++DLL_LIB = biblio general xser xncbi
++ 
++ USES_LIBRARIES =  \
++     biblio
++--- a/c++/src/objects/scoremat/Makefile.scoremat.lib
+++++ b/c++/src/objects/scoremat/Makefile.scoremat.lib
++@@ -1,7 +1,7 @@
++ LIB = scoremat
++ SRC = scoremat__ scoremat___
++ 
++-DLL_LIB = seqset
+++DLL_LIB = seqset seq general xser xncbi
++ 
++ USES_LIBRARIES =  \
++     seqset
++--- a/c++/src/objects/pub/Makefile.pub.lib
+++++ b/c++/src/objects/pub/Makefile.pub.lib
++@@ -1,7 +1,7 @@
++ LIB = pub
++ SRC = pub__ pub___
++ 
++-DLL_LIB = medline biblio
+++DLL_LIB = medline biblio xser xncbi
++ 
++ USES_LIBRARIES =  \
++     medline
++--- a/c++/src/objects/blastxml2/Makefile.blastxml2.lib
+++++ b/c++/src/objects/blastxml2/Makefile.blastxml2.lib
++@@ -1,5 +1,7 @@
++ LIB = blastxml2
++ SRC = blastxml2__ blastxml2___
++ 
+++DLL_LIB = xser xutil xncbi
+++
++ USES_LIBRARIES =  \
++     xser
++--- a/c++/src/objects/entrez2/Makefile.entrez2.lib
+++++ b/c++/src/objects/entrez2/Makefile.entrez2.lib
++@@ -3,6 +3,7 @@ WATCHERS = lavr
++ LIB = entrez2
++ SRC = entrez2__ entrez2___
++ 
+++DLL_LIB = xser xutil xncbi
++ 
++ USES_LIBRARIES =  \
++     xser
++--- a/c++/src/objects/gbseq/Makefile.gbseq.lib
+++++ b/c++/src/objects/gbseq/Makefile.gbseq.lib
++@@ -1,6 +1,7 @@
++ LIB = gbseq
++ SRC = gbseq__ gbseq___
++ 
+++DLL_LIB = xser xutil xncbi
++ 
++ USES_LIBRARIES =  \
++     xser
++--- a/c++/src/objtools/blast/gene_info_reader/Makefile.gene_info.lib
+++++ b/c++/src/objtools/blast/gene_info_reader/Makefile.gene_info.lib
++@@ -6,6 +6,7 @@ CPPFLAGS = -DNCBI_MODULE=GENEINFO $(ORIG
++ LIB = gene_info
++ SRC = gene_info gene_info_reader file_utils
++ 
+++DLL_LIB = xncbi
++ 
++ USES_LIBRARIES =  \
++     xncbi
++--- a/c++/src/objects/medlars/Makefile.medlars.lib
+++++ b/c++/src/objects/medlars/Makefile.medlars.lib
++@@ -1,6 +1,7 @@
++ LIB = medlars
++ SRC = medlars__ medlars___
++ 
+++DLL_LIB = biblio xser xutil xncbi
++ 
++ USES_LIBRARIES =  \
++     biblio
++--- a/c++/src/objects/mla/Makefile.mla.lib
+++++ b/c++/src/objects/mla/Makefile.mla.lib
++@@ -1,7 +1,7 @@
++ LIB = mla
++ SRC = mla__ mla___
++ 
++-DLL_LIB = medlars
+++DLL_LIB = medlars pub pubmed xser xutil xncbi
++ 
++ USES_LIBRARIES =  \
++     medlars pub pubmed
++--- a/c++/src/objects/mla/Makefile.mlacli.lib
+++++ b/c++/src/objects/mla/Makefile.mlacli.lib
++@@ -5,5 +5,7 @@ SRC = mla_client mla_client_
++ 
++ DLL_LIB = mla pubmed medlars xconnect
++ 
+++DLL_LIB = mla xconnect xser xutil xncbi
+++
++ USES_LIBRARIES =  \
++     mla xconnect
++--- a/c++/src/objects/pubmed/Makefile.pubmed.lib
+++++ b/c++/src/objects/pubmed/Makefile.pubmed.lib
++@@ -1,6 +1,7 @@
++ LIB = pubmed
++ SRC = pubmed__ pubmed___
++ 
+++DLL_LIB = medline biblio xser xutil xncbi
++ 
++ USES_LIBRARIES =  \
++     medline
++--- a/c++/src/objects/taxon1/Makefile.taxon1.lib
+++++ b/c++/src/objects/taxon1/Makefile.taxon1.lib
++@@ -7,6 +7,7 @@ DLL_LIB = xconnect
++ 
++ WATCHERS = domrach
++ 
+++DLL_LIB = xconnect seq xser xutil xncbi
++ 
++ USES_LIBRARIES =  \
++     $(SEQ_LIBS) pub xconnect
++--- a/c++/src/objects/taxon3/Makefile.taxon3.lib
+++++ b/c++/src/objects/taxon3/Makefile.taxon3.lib
++@@ -8,6 +8,7 @@ DLL_LIB = xconnect
++ 
++ WATCHERS = stakhovv holmesbr
++ 
+++DLL_LIB = xconnect seq xser xutil xncbi
++ 
++ USES_LIBRARIES =  \
++     $(SEQ_LIBS) pub xconnect
++--- a/c++/src/objects/valerr/Makefile.valerr.lib
+++++ b/c++/src/objects/valerr/Makefile.valerr.lib
++@@ -3,6 +3,7 @@ SRC = valerr__ valerr___
++ 
++ ASN_DEP = seqset
++ 
+++DLL_LIB = xser xutil xncbi
++ 
++ USES_LIBRARIES =  \
++     xser
++--- a/c++/src/objects/valid/Makefile.valid.lib
+++++ b/c++/src/objects/valid/Makefile.valid.lib
++@@ -6,5 +6,7 @@ DLL_LIB = xregexp
++ 
++ ASN_DEP = general
++ 
+++DLL_LIB = general xser xregexp xutil xncbi
+++
++ USES_LIBRARIES =  \
++     general xregexp
++--- a/c++/src/objects/variation/Makefile.variation.lib
+++++ b/c++/src/objects/variation/Makefile.variation.lib
++@@ -1,6 +1,7 @@
++ LIB = variation
++ SRC = variation__ variation___
++ 
+++DLL_LIB = seq xser xutil xncbi
++ 
++ USES_LIBRARIES =  \
++     $(SEQ_LIBS) pub
++--- a/c++/src/algo/blast/format/Makefile.xblastformat.lib
+++++ b/c++/src/algo/blast/format/Makefile.xblastformat.lib
++@@ -13,6 +13,8 @@ LIBS = $(BLAST_THIRD_PARTY_LIBS) $(ORIG_
++ 
++ WATCHERS = jianye zaretska madden camacho fongah2
++ 
+++DLL_LIB = xformat $(BLAST_LIBS) align_format blastxml blastxml2 \
+++          xhtml xcgi xncbi
++ 
++ USES_LIBRARIES =  \
++     $(BLAST_LIBS) align_format blastxml blastxml2
++--- a/c++/src/objtools/cleanup/Makefile.cleanup.lib
+++++ b/c++/src/objtools/cleanup/Makefile.cleanup.lib
++@@ -11,7 +11,7 @@ SRC = autogenerated_cleanup autogenerate
++       cleanup_pub newcleanupp capitalization_string fix_feature_id \
++       cleanup_message influenza_set
++ 
++-DLL_LIB = $(OBJEDIT_LIBS) xregexp $(PCRE_LIB)
+++DLL_LIB = $(OBJEDIT_LIBS) xobjutil valid xregexp $(PCRE_LIB) $(SOBJMGR_LIBS)
++ LIB = xcleanup
++ 
++ LIBS = $(PCRE_LIBS)
++--- a/c++/src/objtools/format/Makefile.xformat.lib
+++++ b/c++/src/objtools/format/Makefile.xformat.lib
++@@ -22,6 +22,8 @@ DLL_LIB = xalnmgr xconnect
++ 
++ WATCHERS = dicuccio gotvyans
++ 
+++DLL_LIB = xcleanup valid gbseq mlacli mla medlars pubmed submit xalnmgr \
+++          xobjutil taxon3 $(SOBJMGR_LIBS)
++ 
++ USES_LIBRARIES =  \
++     gbseq xalnmgr xcleanup
++--- a/c++/src/objects/blast/Makefile.xnetblastcli.lib
+++++ b/c++/src/objects/blast/Makefile.xnetblastcli.lib
++@@ -5,5 +5,7 @@ SRC = blastclient blastclient_
++ 
++ DLL_LIB = xconnect
++ 
+++DLL_LIB = xnetblast xconnect xser xutil xncbi
+++
++ USES_LIBRARIES =  \
++     xconnect xnetblast
++--- a/c++/src/util/xregexp/Makefile.xregexp_template_tester.lib
+++++ b/c++/src/util/xregexp/Makefile.xregexp_template_tester.lib
++@@ -6,6 +6,8 @@ LIB = xregexp_template_tester
++ DLL_LIB = $(PCRE_LIB)
++ LIBS    = $(PCRE_LIBS)
++ 
+++DLL_LIB = xregexp xncbi
+++
++ USES_LIBRARIES =  \
++     xregexp $(PCRE_LIB) $(PCRE_LIBS) xncbi
++ 
++--- a/c++/src/algo/blast/api/Makefile.xblast.lib
+++++ b/c++/src/algo/blast/api/Makefile.xblast.lib
++@@ -79,11 +79,11 @@ magicblast \
++ blast_node \
++ blast_usage_report
++ 
++-SRC  = $(SRC_C:%=.core_%) $(SRC_CXX)
+++SRC  = $(SRC_CXX)
++ 
++ LIB = xblast
++ 
++-DLL_LIB = $(BLAST_LDEP) $(SOBJMGR_LIBS)
+++DLL_LIB = $(BLAST_LDEP) $(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/connect/Makefile.xconnect.lib
+++++ b/c++/src/connect/Makefile.xconnect.lib
++@@ -12,6 +12,8 @@ SRC      = $(SRC_C) $(SRC_CXX) $(SRC_TLS
++ 
++ LIB      = xconnect
++ 
+++DLL_LIB = xncbi
+++
++ LIBS     = $(NETWORK_LIBS) $(ORIG_LIBS)
++ 
++ PROJ_TAG = core
++--- a/c++/src/objects/seq/Makefile.seq.lib
+++++ b/c++/src/objects/seq/Makefile.seq.lib
++@@ -12,7 +12,7 @@ SRC = $(ASN:%=%__) $(ASN:%=%___) seqport
++       seq_loc_mapper_base seq_align_mapper_base seqlocinfo so_map \
++       seq_loc_from_string seq_loc_reverse_complementer
++ 
++-DLL_LIB = seqcode pub general xser sequtil
+++DLL_LIB = seqcode pub biblio general xser sequtil xutil xncbi
++ 
++ WATCHERS = vasilche grichenk stakhovv gotvyans
++ 
++--- a/c++/src/objects/seqset/Makefile.seqset.lib
+++++ b/c++/src/objects/seqset/Makefile.seqset.lib
++@@ -1,7 +1,7 @@
++ LIB = seqset
++ SRC = seqset__ seqset___ gb_release_file
++ 
++-DLL_LIB = $(SEQ_LIBS)
+++DLL_LIB = $(SEQ_LIBS) xser xncbi
++ 
++ USES_LIBRARIES =  \
++     $(SEQ_LIBS) pub
++--- a/c++/src/objects/entrez2/Makefile.entrez2cli.lib
+++++ b/c++/src/objects/entrez2/Makefile.entrez2cli.lib
++@@ -5,7 +5,7 @@ ASN_DEP = entrez2
++ LIB = entrez2cli
++ SRC = entrez2_client entrez2_client_
++ 
++-DLL_LIB = entrez2 xconnect
+++DLL_LIB = entrez2 xconnect xser xutil xncbi
++ 
++ USES_LIBRARIES =  \
++     entrez2 xconnect
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..4687884f350b399f0e6b81e4233351bb98ec3f5d
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,16 @@@
++Subject: add missing lib for tests
++Description: unit_test need blast lib to compile
++Forwarded: Not-Needed 
++Author: Olivier Sallou <osallou@debian.org>
++Last-Updated: 2018-02-11
++--- a/c++/src/algo/blast/Makefile.blast_macros.mk
+++++ b/c++/src/algo/blast/Makefile.blast_macros.mk
++@@ -22,7 +22,7 @@ BLAST_LDEP = utrtprof xalgoblastdbindex
++              xalgodustmask xalgowinmask seqmasks_io seqdb blast_services xalnmgr \
++              xobjutil $(OBJREAD_LIBS) xnetblastcli xnetblast blastdb \
++              sqlitewrapp scoremat tables $(LMDB_LIB)
++-BLAST_LIBS = proteinkmer xblast $(BLAST_LDEP)
+++BLAST_LIBS = proteinkmer xblast blast $(BLAST_LDEP)
++ 
++ # BLAST additionally needs xconnect $(SOBJMGR_LIBS) or $(OBJMGR_LIBS)
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..884c030e1c3061ab540c4938f666ac1de0fbe74e
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,53 @@@
++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: 2020-09-19
++--- a/c++/src/build-system/configure
+++++ b/c++/src/build-system/configure
++@@ -10806,7 +10806,7 @@ if test -z "$CONF_f_runpath" ; then
++       CONF_f_runpath="-R"
++       ;;
++     linux*:[GI]CC | linux*Clang | *bsd*:GCC | *bsd*Clang | cygwin*:GCC \
++-    | osf*: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
++@@ -2424,7 +2424,7 @@ if test -z "$CONF_f_runpath" ; then
++       CONF_f_runpath="-R"
++       ;;
++     linux*:[[GI]]CC | linux*Clang | *bsd*:GCC | *bsd*Clang | cygwin*:GCC \
++-    | osf*: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/ncbi_localip.c
+++++ b/c++/src/connect/ncbi_localip.c
++@@ -67,7 +67,7 @@
++ #  define INADDR_LOOPBACK  0x7F000001
++ #endif /*!INADDR_LOOPBACK*/
++ 
++-#if defined(NCBI_OS_MSWIN)  &&  !defined(PATH_MAX)
+++#if /* defined(NCBI_OS_MSWIN)  && */ !defined(PATH_MAX)
++ #  ifdef _MAX_PATH
++ #    define PATH_MAX  _MAX_PATH
++ #else
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..f40204b183e760b48aa5c4d84c6d11d7219efaaf
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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();
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8423cd88008b8b4ecd37bb4e9affef98adfda646
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
++@@ -10912,7 +10912,7 @@ case "$compiler:$compiler_version:$with_
++                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
++@@ -2491,7 +2491,7 @@ case "$compiler:$compiler_version:$with_
++                break
++                ;;
++             /* )
++-               found=true
+++               fgrep -qsx $abs_dir /etc/ld.so.conf.d/*  ||  found=true
++                break
++                ;;
++         esac
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..8a73c3f8c8974e2470a98d2970a83ef04488939a
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,47 @@@
++Subject: blast+ use optout to send usage reports over internet
++Description: this patch change strategy to optin ie user asks
++ per config/env vars to send reports, else it is disabled by default.
++ Not a bug by itself but default strategy update to send info over internet.
++Author: Olivier Sallou <osallou@debian.org>
++Last-Updated: 202-02-10
++Forwarded: no
++--- a/c++/src/algo/blast/api/blast_usage_report.cpp
+++++ b/c++/src/algo/blast/api/blast_usage_report.cpp
++@@ -190,6 +190,7 @@ void CBlastUsageReport::AddParam(EUsageP
++ void CBlastUsageReport::x_CheckBlastUsageEnv()
++ {
++      char * blast_usage_env = getenv("BLAST_USAGE_REPORT");
+++
++      if(blast_usage_env != NULL){
++              bool enable = NStr::StringToBool(blast_usage_env);
++              if (!enable) {
++@@ -198,6 +199,10 @@ void CBlastUsageReport::x_CheckBlastUsag
++                      LOG_POST(Info <<"Phone home disabled");
++                      return ;
++              }
+++                SetEnabled(true);
+++                CUsageReportAPI::SetEnabled(true);
+++                LOG_POST(Info <<"Phone home enabled");
+++                return;
++      }
++ 
++      CNcbiIstrstream empty_stream(kEmptyStr);
++@@ -210,10 +215,15 @@ void CBlastUsageReport::x_CheckBlastUsag
++                      LOG_POST(Info <<"Phone home disabled by config setting");
++                      return ;
++              }
+++                SetEnabled(true);
+++                CUsageReportAPI::SetEnabled(true);
+++                LOG_POST(Info <<"Phone home enabled by config setting");
+++                return ;
++      }
++-     CUsageReportAPI::SetEnabled(true);
++-     SetEnabled(true);
++-     LOG_POST(Info <<"Phone home enabled");
+++        // Debian optin by default (do not send reports)
+++     CUsageReportAPI::SetEnabled(false);
+++     SetEnabled(false);
+++     LOG_POST(Info <<"Phone home disabled");
++ }
++ 
++ void CBlastUsageReport::AddParam(EUsageParams p, Int8 val)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..0b48dc46974f932e21b6d5990ff3a998df3cf08c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,29 @@@
++Author: Aaron M. Ucko <ucko@debian.org>
++Date:   Wed Dec 14 22:44:19 2016 -0500
++Description: Hang on to sequence data even if -parse_deflines recognized a non-local ID,
++    on the condition that the environment variable BLAST_ALWAYS_KEEP_SEQUENCE
++    (or configuration parameter [BLAST] always_keep_sequence) is set to a
++    "true" value (English-only, case-insensitive true, t, yes, y, or 1).
++--- a/c++/src/algo/blast/api/search_strategy.cpp
+++++ b/c++/src/algo/blast/api/search_strategy.cpp
++@@ -560,6 +560,11 @@ void CExportStrategy::x_Process_Pssm(CRe
++     m_QueueSearchRequest->SetService(new_service);
++ }
++ 
+++NCBI_PARAM_DECL(bool, BLAST, always_keep_sequence);
+++NCBI_PARAM_DEF_EX(bool, BLAST, always_keep_sequence, false, eParam_Default,
+++                  BLAST_ALWAYS_KEEP_SEQUENCE);
+++typedef NCBI_PARAM_TYPE(BLAST, always_keep_sequence) TAlwaysKeepSequence;
+++
++ void CExportStrategy::x_Process_Query(CRef<IQueryFactory> & query)
++ {
++     if (query.Empty())
++@@ -581,7 +586,7 @@ void CExportStrategy::x_Process_Query(CR
++     // Check if there are any range restrictions applied and if local IDs are
++     // being used to determine how to specify the query sequence(s)
++ 
++-    bool has_local_ids = false;
+++    bool has_local_ids = TAlwaysKeepSequence::GetDefault();
++ 
++     if (!seqloc_list.empty())
++     {
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2206de50a2caf17be153ce1fe43aeb47a42cc160
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,621 @@@
++Author: Michael R. Crusoe <michael.crusoe@gmail.com>
++Description: make the build more reproducible
++--- a/c++/src/build-system/configure.ac
+++++ b/c++/src/build-system/configure.ac
++@@ -3138,13 +3138,13 @@ case "$host_os" in
++    linux*)
++       kver=`uname -r | sed -e 's/-.*//'`
++       libcver=`ldd --version | awk 'NR == 1 { print $NF }'`
++-      verbose_host=$host_cpu-$host_vendor-linux$kver-gnu$libcver
+++      verbose_host=$host_cpu-$host_vendor-linux-gnu$libcver
++       ;;
++    *) verbose_host=$host ;;
++ esac
++ 
++ #### Overall configuration mode summary
++-signature_hostname=`(hostname || uname -n) 2>/dev/null \
+++signature_hostname=`echo debian_build 2>/dev/null \
++     | sed 's/\..*//; s/-/_/g; 1q'`
++ signature="${signature_compiler}_${compiler_version}-${release_debug}${mt_sfx}${dll_sfx}${bit64_sfx}${prof_sfx}--${verbose_host}-${signature_hostname}"
++ AC_DEFINE_UNQUOTED(NCBI_SIGNATURE, "$signature",
++--- a/c++/include/algo/blast/core/blast_message.h
+++++ b/c++/include/algo/blast/core/blast_message.h
++@@ -117,7 +117,7 @@ void Blast_Perror(Blast_Message* *msg, I
++ 
++ /** Convenient define to call the function Blast_PerrorEx. */
++ #define Blast_PerrorWithLocation(msg, error_code, context) \
++-Blast_PerrorEx(msg, error_code, __FILE__, __LINE__, context)
+++Blast_PerrorEx(msg, error_code, "c++/include/algo/blast/core/blast_message.h", __LINE__, context)
++ 
++ /** Extended version of Blast_Perror which includes parameters for the file
++  * name and line number where the error/warning occurred. This function should
++--- a/c++/include/connect/ncbi_util.h
+++++ b/c++/include/connect/ncbi_util.h
++@@ -135,7 +135,7 @@ extern NCBI_XCONNECT_EXPORT MT_LOCK CORE
++  */
++ #define  LOG_WRITE(lg, code, subcode, level, message)                        \
++     LOG_Write(lg, code, subcode, level, THIS_MODULE, CORE_CURRENT_FUNCTION,  \
++-              __FILE__, __LINE__, message, 0, 0)
+++              "c++/include/connect/ncbi_util.h", __LINE__, message, 0, 0)
++ 
++ #ifdef   LOG_DATA
++ /* AIX's <pthread.h> defines LOG_DATA to be an integer constant;
++@@ -144,7 +144,7 @@ extern NCBI_XCONNECT_EXPORT MT_LOCK CORE
++ #endif
++ #define  LOG_DATA(lg, code, subcode, level, data, size, message)             \
++     LOG_Write(lg, code, subcode, level, THIS_MODULE, CORE_CURRENT_FUNCTION,  \
++-              __FILE__, __LINE__, message, data, size)
+++              "c++/include/connect/ncbi_util.h", __LINE__, message, data, size)
++ 
++ 
++ /** Default for THIS_MODULE.
++--- a/c++/include/corelib/impl/ncbi_java.h
+++++ b/c++/include/corelib/impl/ncbi_java.h
++@@ -63,7 +63,7 @@
++ 
++ #define JAVA_ABORT(msg) \
++     { \
++-        NcbiCerr << __FILE__ << ": " << NCBI_CURRENT_FUNCTION << ": " msg << endl; \
+++        NcbiCerr << "c++/include/corelib/impl/ncbi_java.h" << ": " << NCBI_CURRENT_FUNCTION << ": " msg << endl; \
++         abort(); \
++     }
++ 
++--- a/c++/include/corelib/ncbidiag.hpp
+++++ b/c++/include/corelib/ncbidiag.hpp
++@@ -168,7 +168,7 @@ NCBI_XNCBI_EXPORT const char* g_DiagUnkn
++ /// @sa
++ ///   CDiagCompileInfo
++ #define DIAG_COMPILE_INFO                                           \
++-    NCBI_NS_NCBI::CDiagCompileInfo(__FILE__,                        \
+++    NCBI_NS_NCBI::CDiagCompileInfo("c++/include/corelib/ncbidiag.hpp",                        \
++                                    __LINE__,                        \
++                                    NCBI_CURRENT_FUNCTION,           \
++                                    NCBI_MAKE_MODULE(NCBI_MODULE))
++--- a/c++/include/corelib/test_boost.hpp
+++++ b/c++/include/corelib/test_boost.hpp
++@@ -343,7 +343,7 @@ static ::NCBI_NS_NCBI::SNcbiTestRegistra
++ BOOST_JOIN( BOOST_JOIN( test_name, _registrar ), __LINE__ ) (           \
++     boost::unit_test::make_test_case(                                   \
++         &BOOST_AUTO_TC_INVOKER( test_name ), #test_name,                \
++-        __FILE__, __LINE__ ),                                           \
+++        "c++/include/corelib/test_boost.hpp", __LINE__ ),                                           \
++     ::NCBI_NS_NCBI::SNcbiTestTCTimeout<                                 \
++         BOOST_AUTO_TC_UNIQUE_ID( test_name )>::instance()->value(),     \
++     decorators );                                                       \
++--- a/c++/include/objtools/blast/seqdb_reader/impl/seqdbgeneral.hpp
+++++ b/c++/include/objtools/blast/seqdb_reader/impl/seqdbgeneral.hpp
++@@ -1123,7 +1123,7 @@ void SeqDB_FileIntegrityAssert(const str
++ #define SEQDB_FILE_ASSERT(YESNO)                                        \
++     do {                                                                \
++         if (! (YESNO)) {                                                \
++-            SeqDB_FileIntegrityAssert(__FILE__, __LINE__, (#YESNO));    \
+++            SeqDB_FileIntegrityAssert("c++/include/objtools/blast/seqdb_reader/impl/seqdbgeneral.hpp", __LINE__, (#YESNO));    \
++         }                                                               \
++     } while(0)
++ 
++--- a/c++/include/util/ddump_viewer.hpp
+++++ b/c++/include/util/ddump_viewer.hpp
++@@ -49,7 +49,7 @@ BEGIN_NCBI_SCOPE
++ //
++ 
++ #define DEBUGDUMP_BPT(name,obj)  \
++-    do {CDebugDumpViewer().Bpt(name,&(obj),__FILE__,__LINE__);} while (0)
+++    do {CDebugDumpViewer().Bpt(name,&(obj),"c++/include/util/ddump_viewer.hpp",__LINE__);} while (0)
++ 
++ 
++ //---------------------------------------------------------------------------
++--- a/c++/include/util/static_set.hpp
+++++ b/c++/include/util/static_set.hpp
++@@ -886,17 +886,17 @@ public:
++     static const Type Var
++ 
++ #define DEFINE_STATIC_ARRAY_MAP(Type, Var, Array)                       \
++-    static const Type (Var)((Array), sizeof(Array), __FILE__, __LINE__)
+++    static const Type (Var)((Array), sizeof(Array), "c++/include/util/static_set.hpp", __LINE__)
++ 
++ #define DEFINE_CLASS_STATIC_ARRAY_MAP(Type, Var, Array)                 \
++-    const Type (Var)((Array), sizeof(Array), __FILE__, __LINE__)
+++    const Type (Var)((Array), sizeof(Array), "c++/include/util/static_set.hpp", __LINE__)
++ 
++ #define DEFINE_STATIC_ARRAY_MAP_WITH_COPY(Type, Var, Array)             \
++-    static const Type (Var)((Array), sizeof(Array), __FILE__, __LINE__, \
+++    static const Type (Var)((Array), sizeof(Array), "c++/include/util/static_set.hpp", __LINE__, \
++                             NCBI_NS_NCBI::NStaticArray::eCopyWarn_hide)
++ 
++ #define DEFINE_CLASS_STATIC_ARRAY_MAP_WITH_COPY(Type, Var, Array)       \
++-    const Type (Var)((Array), sizeof(Array), __FILE__, __LINE__,        \
+++    const Type (Var)((Array), sizeof(Array), "c++/include/util/static_set.hpp", __LINE__,        \
++                      NCBI_NS_NCBI::NStaticArray::eCopyWarn_hide)
++ 
++ 
++--- a/c++/src/connect/mbedtls/mbedtls/debug.h
+++++ b/c++/src/connect/mbedtls/mbedtls/debug.h
++@@ -39,33 +39,33 @@
++ #define MBEDTLS_DEBUG_STRIP_PARENS(...)   __VA_ARGS__
++ 
++ #define MBEDTLS_SSL_DEBUG_MSG(level, args)                    \
++-    mbedtls_debug_print_msg(ssl, level, __FILE__, __LINE__,    \
+++    mbedtls_debug_print_msg(ssl, level, "c++/src/connect/mbedtls/mbedtls/debug.h", __LINE__,    \
++                             MBEDTLS_DEBUG_STRIP_PARENS args)
++ 
++ #define MBEDTLS_SSL_DEBUG_RET(level, text, ret)                \
++-    mbedtls_debug_print_ret(ssl, level, __FILE__, __LINE__, text, ret)
+++    mbedtls_debug_print_ret(ssl, level, "c++/src/connect/mbedtls/mbedtls/debug.h", __LINE__, text, ret)
++ 
++ #define MBEDTLS_SSL_DEBUG_BUF(level, text, buf, len)           \
++-    mbedtls_debug_print_buf(ssl, level, __FILE__, __LINE__, text, buf, len)
+++    mbedtls_debug_print_buf(ssl, level, "c++/src/connect/mbedtls/mbedtls/debug.h", __LINE__, text, buf, len)
++ 
++ #if defined(MBEDTLS_BIGNUM_C)
++ #define MBEDTLS_SSL_DEBUG_MPI(level, text, X)                  \
++-    mbedtls_debug_print_mpi(ssl, level, __FILE__, __LINE__, text, X)
+++    mbedtls_debug_print_mpi(ssl, level, "c++/src/connect/mbedtls/mbedtls/debug.h", __LINE__, text, X)
++ #endif
++ 
++ #if defined(MBEDTLS_ECP_C)
++ #define MBEDTLS_SSL_DEBUG_ECP(level, text, X)                  \
++-    mbedtls_debug_print_ecp(ssl, level, __FILE__, __LINE__, text, X)
+++    mbedtls_debug_print_ecp(ssl, level, "c++/src/connect/mbedtls/mbedtls/debug.h", __LINE__, text, X)
++ #endif
++ 
++ #if defined(MBEDTLS_X509_CRT_PARSE_C)
++ #define MBEDTLS_SSL_DEBUG_CRT(level, text, crt)                \
++-    mbedtls_debug_print_crt(ssl, level, __FILE__, __LINE__, text, crt)
+++    mbedtls_debug_print_crt(ssl, level, "c++/src/connect/mbedtls/mbedtls/debug.h", __LINE__, text, crt)
++ #endif
++ 
++ #if defined(MBEDTLS_ECDH_C)
++ #define MBEDTLS_SSL_DEBUG_ECDH(level, ecdh, attr)               \
++-    mbedtls_debug_printf_ecdh(ssl, level, __FILE__, __LINE__, ecdh, attr)
+++    mbedtls_debug_printf_ecdh(ssl, level, "c++/src/connect/mbedtls/mbedtls/debug.h", __LINE__, ecdh, attr)
++ #endif
++ 
++ #else /* MBEDTLS_DEBUG_C */
++--- a/c++/src/connect/ncbi_monkey.cpp
+++++ b/c++/src/connect/ncbi_monkey.cpp
++@@ -83,7 +83,7 @@ const string             kEnablField
++ const string             kSeedField      = "seed";
++ 
++ #define PARAM_TWICE_EXCEPTION(param)                                        \
++-    throw CMonkeyException(CDiagCompileInfo(__FILE__, __LINE__),            \
+++    throw CMonkeyException(CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),            \
++                            NULL, CMonkeyException::e_MonkeyInvalidArgs,     \
++                            string("Parameter \"" param "\" is set "         \
++                            "twice in [") + GetSection() + "]" +             \
++@@ -371,7 +371,7 @@ static string s_RuleTypeString(EMonkeyAc
++     case eMonkey_Send:
++         return "write";
++     default:
++-        throw CMonkeyException(CDiagCompileInfo(__FILE__, __LINE__),
+++        throw CMonkeyException(CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                                NULL, CMonkeyException::e_MonkeyInvalidArgs,
++                                string("Unknown EMonkeyActionType value"));
++     }
++@@ -390,7 +390,7 @@ static string s_SocketCallString(EMonkey
++     case eMonkey_Connect:
++         return "connect()";
++     default:
++-        throw CMonkeyException(CDiagCompileInfo(__FILE__, __LINE__),
+++        throw CMonkeyException(CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                                NULL, CMonkeyException::e_MonkeyInvalidArgs,
++                                string("Unknown EMonkeyActionType value"));
++     }
++@@ -467,7 +467,7 @@ unsigned short CMonkeyRuleBase::GetProba
++ {
++     if (m_RunPos.find(sock) == m_RunPos.end()) {
++         throw CMonkeyException(
++-            CDiagCompileInfo(__FILE__, __LINE__),
+++            CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++             NULL, CMonkeyException::e_MonkeyInvalidArgs,
++             "The socket provided has not been registered with current rule");
++     }
++@@ -511,7 +511,7 @@ void CMonkeyRuleBase::x_ReadEIOStatus(co
++         m_ReturnStatus = eIO_Closed;
++     } else if (eIOStatus == "eio_invalidarg") {
++         throw CMonkeyException(
++-            CDiagCompileInfo(__FILE__, __LINE__),
+++            CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++             NULL, CMonkeyException::e_MonkeyInvalidArgs,
++             string("Unsupported 'return_status': ") + eIOStatus_in);
++     } else if (eIOStatus == "eio_interrupt") {
++@@ -526,7 +526,7 @@ void CMonkeyRuleBase::x_ReadEIOStatus(co
++         m_ReturnStatus = eIO_NotSupported;
++     } else {
++         throw CMonkeyException(
++-            CDiagCompileInfo(__FILE__, __LINE__),
+++            CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++             NULL, CMonkeyException::e_MonkeyInvalidArgs,
++             string("Could not parse 'return_status': ") + eIOStatus_in);
++     }
++@@ -543,7 +543,7 @@ void CMonkeyRuleBase::x_ReadRuns(const s
++        split it on commas*/
++     vector<string> runs_list = s_Monkey_Split(runs, ',');
++     if (runs_list.size() == 0)
++-        throw CMonkeyException(CDiagCompileInfo(__FILE__, __LINE__),
+++        throw CMonkeyException(CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                                NULL, CMonkeyException::e_MonkeyInvalidArgs,
++                                string("Parameter \"runs\" is empty in [")
++                                + m_Section + "]" +
++@@ -573,7 +573,7 @@ void CMonkeyRuleBase::x_ReadRuns(const s
++         if (m_RunMode == eMonkey_RunProbability) {
++             if (*run.rbegin() != '%') {
++                 throw CMonkeyException(
++-                        CDiagCompileInfo(__FILE__, __LINE__),
+++                        CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                         NULL, CMonkeyException::e_MonkeyInvalidArgs,
++                         "Value is not percentage: " + run +
++                         ", values have to be either only percentages or "
++@@ -593,7 +593,7 @@ void CMonkeyRuleBase::x_ReadRuns(const s
++                 size_t last_step = m_Runs.size();
++                 if (last_step == 0 && step != 1) {
++                     throw CMonkeyException(
++-                            CDiagCompileInfo(__FILE__, __LINE__),
+++                            CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                             NULL, CMonkeyException::e_MonkeyInvalidArgs,
++                             "In the string of runs: " + runs + " the first "
++                             "element MUST set value for the first run");
++@@ -610,7 +610,7 @@ void CMonkeyRuleBase::x_ReadRuns(const s
++             assert(run_format == eMonkey_RunSequence);
++             if (*run.rbegin() == '%') {
++                 throw CMonkeyException(
++-                        CDiagCompileInfo(__FILE__, __LINE__),
+++                        CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                         NULL, CMonkeyException::e_MonkeyInvalidArgs,
++                         string("Value is percentage: ") + run +
++                         string(", values have to be either only percentages or "
++@@ -619,7 +619,7 @@ void CMonkeyRuleBase::x_ReadRuns(const s
++             int val = NStr::StringToInt(run);
++             if (m_Runs.size() > 0 && val <= *m_Runs.rbegin()) {
++                 throw CMonkeyException(
++-                    CDiagCompileInfo(__FILE__, __LINE__),
+++                    CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                     NULL, CMonkeyException::e_MonkeyInvalidArgs,
++                     string("\"runs\" should contain values in "
++                            "increasing order"));
++@@ -815,7 +815,7 @@ CMonkeyConnectRule::CMonkeyConnectRule(s
++         string value = name_value[1];
++         if (name == "allow") {
++             if (allow_set) {
++-                throw CMonkeyException(CDiagCompileInfo(__FILE__, __LINE__),
+++                throw CMonkeyException(CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                                        NULL, 
++                                        CMonkeyException::e_MonkeyInvalidArgs,
++                                        string("Parameter \"allow\" is set "
++@@ -827,7 +827,7 @@ CMonkeyConnectRule::CMonkeyConnectRule(s
++         }
++     }
++     if (!allow_set)
++-        throw CMonkeyException(CDiagCompileInfo(__FILE__, __LINE__),
+++        throw CMonkeyException(CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                                NULL, CMonkeyException::e_MonkeyInvalidArgs,
++                                string("Parameter \"allow\" not set in [")
++                                + GetSection() + "]" +
++@@ -902,7 +902,7 @@ CMonkeyPollRule::CMonkeyPollRule(string
++         string value = name_value[1];
++         if (name == "ignore") {
++             if (ignore_set) {
++-                throw CMonkeyException(CDiagCompileInfo(__FILE__, __LINE__),
+++                throw CMonkeyException(CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                                        NULL,
++                                        CMonkeyException::e_MonkeyInvalidArgs,
++                                        string("Parameter \"ignore\" is set "
++@@ -914,7 +914,7 @@ CMonkeyPollRule::CMonkeyPollRule(string
++         }
++     }
++     if (!ignore_set) {
++-        throw CMonkeyException(CDiagCompileInfo(__FILE__, __LINE__),
+++        throw CMonkeyException(CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                                NULL, CMonkeyException::e_MonkeyInvalidArgs,
++                                string("Parameter \"ignore\" not set in [")
++                                + GetSection() + "]" +
++@@ -1032,7 +1032,7 @@ static bool s_MatchRegex(const string& t
++                                                              ".*" , "");
++     if (filtered.find_first_of("[]()+^?{}$.*\\") != string::npos) {
++         throw CMonkeyException(
++-            CDiagCompileInfo(__FILE__, __LINE__),
+++            CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++             NULL,
++             CMonkeyException::e_MonkeyInvalidArgs,
++             exception_message);
++@@ -1051,7 +1051,7 @@ static bool s_MatchRegex(const string& t
++         }
++         else {
++             throw CMonkeyException(
++-                CDiagCompileInfo(__FILE__, __LINE__),
+++                CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                 NULL,
++                 CMonkeyException::e_MonkeyInvalidArgs,
++                 exception_message);
++@@ -1179,7 +1179,7 @@ bool CMonkeyPlan::WriteRule(MONKEY_SOCKT
++             ss << "Probability below zero for write rule in plan " << m_Name
++                 << ". Check config!";
++             throw CMonkeyException(
++-                        CDiagCompileInfo(__FILE__, __LINE__),
+++                        CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                         NULL, CMonkeyException::e_MonkeyInvalidArgs, 
++                         ss.str());
++         }
++@@ -1221,7 +1221,7 @@ bool CMonkeyPlan::ReadRule(MONKEY_SOCKTY
++             stringstream ss;
++             ss << "Probability below zero for write rule in plan " << m_Name
++                << ". Check config!";
++-            throw CMonkeyException(CDiagCompileInfo(__FILE__, __LINE__),
+++            throw CMonkeyException(CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                                    NULL, CMonkeyException::e_MonkeyInvalidArgs,
++                                    ss.str());
++         }
++@@ -1270,7 +1270,7 @@ bool CMonkeyPlan::ConnectRule(MONKEY_SOC
++             stringstream ss;
++             ss << "Probability below zero for write rule in plan " << m_Name
++                 << ". Check config!";
++-            throw CMonkeyException(CDiagCompileInfo(__FILE__, __LINE__),
+++            throw CMonkeyException(CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                                    NULL, CMonkeyException::e_MonkeyInvalidArgs,
++                                    ss.str());
++         }
++@@ -1313,7 +1313,7 @@ bool CMonkeyPlan::PollRule(size_t*     n
++             ss << "Probability below zero for write rule in plan " << m_Name
++                 << ". Check config!";
++             throw CMonkeyException(
++-                        CDiagCompileInfo(__FILE__, __LINE__),
+++                        CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                         NULL, CMonkeyException::e_MonkeyInvalidArgs, 
++                         ss.str());
++         }
++@@ -1372,7 +1372,7 @@ CMonkey::CMonkey() : m_Probability(100),
++ {
++     if (sm_HookSwitch == NULL) {
++         throw CMonkeyException(
++-            CDiagCompileInfo(__FILE__, __LINE__),
+++            CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++             NULL, CMonkeyException::e_MonkeyInvalidArgs,
++             "Launch CONNECT_Init() before initializing CMonkey instance");
++     }
++@@ -1458,7 +1458,7 @@ void CMonkey::ReloadConfig(const string&
++                 prob = (int)(NStr::StringToDouble(prob_str) * 100);
++             }
++             if (prob < 0 || prob > 100) {
++-                throw CMonkeyException(CDiagCompileInfo(__FILE__, __LINE__),
+++                throw CMonkeyException(CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                                        NULL,
++                                        CMonkeyException::e_MonkeyInvalidArgs,
++                                        "Parameter \"probability\"=" + prob_str
++@@ -1469,7 +1469,7 @@ void CMonkey::ReloadConfig(const string&
++             m_Probability = (unsigned short)prob;
++         }
++         catch (const CStringException&) {
++-            throw CMonkeyException(CDiagCompileInfo(__FILE__, __LINE__),
+++            throw CMonkeyException(CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++                                    NULL, CMonkeyException::e_MonkeyInvalidArgs,
++                                    "Parameter \"probability\"=" + prob_str
++                                    + " for section [" + monkey_section
++@@ -1757,7 +1757,7 @@ bool CMonkey::RegisterThread(int token)
++        << " has been already registered in CMonkey and cannot be used again";
++     if (m_RegisteredTokens.find(token) != m_RegisteredTokens.end()) {
++         throw CMonkeyException(
++-            CDiagCompileInfo(__FILE__, __LINE__),
+++            CDiagCompileInfo("c++/src/connect/ncbi_monkey.cpp", __LINE__),
++             NULL, CMonkeyException::e_MonkeyInvalidArgs,
++             ss.str());
++     }
++--- a/c++/src/connect/ncbi_priv.h
+++++ b/c++/src/connect/ncbi_priv.h
++@@ -222,7 +222,7 @@ extern NCBI_XCONNECT_EXPORT LOG g_CORE_L
++             _mess.level       = _xx_level;                              \
++             _mess.module      = THIS_MODULE;                            \
++             _mess.func        = CORE_CURRENT_FUNCTION;                  \
++-            _mess.file        = __FILE__;                               \
+++            _mess.file        = "c++/src/connect/ncbi_priv.h";                               \
++             _mess.line        = __LINE__;                               \
++             _mess.raw_data    = (_raw_data);                            \
++             _mess.raw_size    = (_raw_size);                            \
++--- a/c++/src/objects/seqfeat/BioSource.cpp
+++++ b/c++/src/objects/seqfeat/BioSource.cpp
++@@ -941,7 +941,7 @@ static const char* const s_IgnoreCaseQua
++ };
++ 
++ typedef CStaticArraySet<const char*, PNocase_CStr> TCIgnoreCaseQualsSet;
++-static const TCIgnoreCaseQualsSet s_IgnoreCaseQualsSet(s_IgnoreCaseQuals, sizeof(s_IgnoreCaseQuals), __FILE__, __LINE__);
+++static const TCIgnoreCaseQualsSet s_IgnoreCaseQualsSet(s_IgnoreCaseQuals, sizeof(s_IgnoreCaseQuals), "c++/src/objects/seqfeat/BioSource.cpp", __LINE__);
++ 
++ bool s_MayIgnoreCase(const string& value)
++ {
++@@ -963,7 +963,7 @@ static const char* const s_TaxNameElemen
++ };
++ 
++ typedef CStaticArraySet<const char*, PNocase_CStr> TCTaxNameElementQualsSet;
++-static const TCTaxNameElementQualsSet s_TaxNameElementQualsSet(s_TaxNameElementQuals, sizeof(s_TaxNameElementQuals), __FILE__, __LINE__);
+++static const TCTaxNameElementQualsSet s_TaxNameElementQualsSet(s_TaxNameElementQuals, sizeof(s_TaxNameElementQuals), "c++/src/objects/seqfeat/BioSource.cpp", __LINE__);
++ 
++ bool s_IsTaxNameElement(const string& value)
++ {
++@@ -1376,7 +1376,7 @@ static const char* const s_StopWords[] =
++ };
++ 
++ typedef CStaticArraySet<const char*, PNocase_CStr> TCStopWordStrSet;
++-static const TCStopWordStrSet s_StopWordsSet(s_StopWords, sizeof(s_StopWords), __FILE__, __LINE__);
+++static const TCStopWordStrSet s_StopWordsSet(s_StopWords, sizeof(s_StopWords), "c++/src/objects/seqfeat/BioSource.cpp", __LINE__);
++ 
++ 
++ bool CBioSource::IsStopWord(const string& value)
++--- a/c++/src/objects/seqfeat/SubSource.cpp
+++++ b/c++/src/objects/seqfeat/SubSource.cpp
++@@ -3225,7 +3225,9 @@ static const char* const s_Countries[] =
++     "Zambia",
++     "Zimbabwe"
++ };
++-static const TCStrSet s_CountriesSet(s_Countries, sizeof(s_Countries), __FILE__, __LINE__);
+++static const TCStrSet s_CountriesSet(s_Countries, sizeof(s_Countries),
+++                                     "c+++/src/objects/seqfeat/SubSource.cpp",
+++                                     __LINE__);
++ 
++ // former legal country names, must be in alphabetical order (case sensitive)
++ static const char* const s_Former_Countries[] = {
++@@ -3246,7 +3248,7 @@ static const char* const s_Former_Countr
++     "Yugoslavia",
++     "Zaire"
++ };
++-static const TCStrSet s_Former_CountriesSet(s_Former_Countries, sizeof(s_Former_Countries), __FILE__, __LINE__);
+++static const TCStrSet s_Former_CountriesSet(s_Former_Countries, sizeof(s_Former_Countries), "c++/src/objects/seqfeat/SubSource.cpp", __LINE__);
++ 
++ // null term exemption values, must be in alphabetical order (case sensitive)
++ static const char* const s_Null_Countries[] = {
++--- a/c++/src/serial/datatool/classstr.cpp
+++++ b/c++/src/serial/datatool/classstr.cpp
++@@ -850,7 +850,7 @@ mem_simple = false;
++                         "    if (!CanGet"<< mem_cName<<"()) {\n"
++                         "        ThrowUnassigned("<<member_index;
++ #if 0
++-                    code.Methods(inl) << ", __FILE__, __LINE__";
+++                    code.Methods(inl) << ", "c++/src/serial/datatool/classstr.cpp", __LINE__";
++ #endif
++                     code.Methods(inl) << ");\n"
++                         "    }\n";
++--- a/c++/src/serial/serialobject.cpp
+++++ b/c++/src/serial/serialobject.cpp
++@@ -299,7 +299,7 @@ void CSerialObject::ThrowUnassigned(TMem
++ // set temporary diag compile info to use argument file name and line
++ #undef DIAG_COMPILE_INFO
++ #define DIAG_COMPILE_INFO                                               \
++-        NCBI_NS_NCBI::CDiagCompileInfo(file_name? file_name: __FILE__,  \
+++        NCBI_NS_NCBI::CDiagCompileInfo(file_name? file_name: "c++/src/serial/serialobject.cpp",  \
++                                        file_line? file_line: __LINE__,  \
++                                        NCBI_CURRENT_FUNCTION,           \
++                                        NCBI_MAKE_MODULE(NCBI_MODULE))
++@@ -307,7 +307,7 @@ void CSerialObject::ThrowUnassigned(TMem
++ // restore original diag compile info definition
++ #undef DIAG_COMPILE_INFO
++ #define DIAG_COMPILE_INFO                                               \
++-        NCBI_NS_NCBI::CDiagCompileInfo(__FILE__,                        \
+++        NCBI_NS_NCBI::CDiagCompileInfo("c++/src/serial/serialobject.cpp",                        \
++                                        __LINE__,                        \
++                                        NCBI_CURRENT_FUNCTION,           \
++                                        NCBI_MAKE_MODULE(NCBI_MODULE))
++--- a/c++/src/util/lmdb/mdb.c
+++++ b/c++/src/util/lmdb/mdb.c
++@@ -1533,7 +1533,7 @@ mdb_strerror(int err)
++ 
++ #ifndef NDEBUG
++ # define mdb_assert0(env, expr, expr_txt) ((expr) ? (void)0 : \
++-             mdb_assert_fail(env, expr_txt, mdb_func_, __FILE__, __LINE__))
+++             mdb_assert_fail(env, expr_txt, mdb_func_, "c++/src/util/lmdb/mdb.c", __LINE__))
++ 
++ static void ESECT
++ mdb_assert_fail(MDB_env *env, const char *expr_txt,
++--- a/c++/src/util/lmdb/mtest.c
+++++ b/c++/src/util/lmdb/mtest.c
++@@ -19,7 +19,7 @@
++ #define E(expr) CHECK((rc = (expr)) == MDB_SUCCESS, #expr)
++ #define RES(err, expr) ((rc = expr) == (err) || (CHECK(!rc, #expr), 0))
++ #define CHECK(test, msg) ((test) ? (void)0 : ((void)fprintf(stderr, \
++-     "%s:%d: %s: %s\n", __FILE__, __LINE__, msg, mdb_strerror(rc)), abort()))
+++     "%s:%d: %s: %s\n", "c++/src/util/lmdb/mtest.c", __LINE__, msg, mdb_strerror(rc)), abort()))
++ 
++ int main(int argc,char * argv[])
++ {
++--- a/c++/src/util/lmdb/mtest2.c
+++++ b/c++/src/util/lmdb/mtest2.c
++@@ -22,7 +22,7 @@
++ #define E(expr) CHECK((rc = (expr)) == MDB_SUCCESS, #expr)
++ #define RES(err, expr) ((rc = expr) == (err) || (CHECK(!rc, #expr), 0))
++ #define CHECK(test, msg) ((test) ? (void)0 : ((void)fprintf(stderr, \
++-     "%s:%d: %s: %s\n", __FILE__, __LINE__, msg, mdb_strerror(rc)), abort()))
+++     "%s:%d: %s: %s\n", "c++/src/util/lmdb/mtest2.c", __LINE__, msg, mdb_strerror(rc)), abort()))
++ 
++ int main(int argc,char * argv[])
++ {
++--- a/c++/src/util/lmdb/mtest3.c
+++++ b/c++/src/util/lmdb/mtest3.c
++@@ -22,7 +22,7 @@
++ #define E(expr) CHECK((rc = (expr)) == MDB_SUCCESS, #expr)
++ #define RES(err, expr) ((rc = expr) == (err) || (CHECK(!rc, #expr), 0))
++ #define CHECK(test, msg) ((test) ? (void)0 : ((void)fprintf(stderr, \
++-     "%s:%d: %s: %s\n", __FILE__, __LINE__, msg, mdb_strerror(rc)), abort()))
+++     "%s:%d: %s: %s\n", "c++/src/util/lmdb/mtest3.c", __LINE__, msg, mdb_strerror(rc)), abort()))
++ 
++ int main(int argc,char * argv[])
++ {
++--- a/c++/src/util/lmdb/mtest4.c
+++++ b/c++/src/util/lmdb/mtest4.c
++@@ -22,7 +22,7 @@
++ #define E(expr) CHECK((rc = (expr)) == MDB_SUCCESS, #expr)
++ #define RES(err, expr) ((rc = expr) == (err) || (CHECK(!rc, #expr), 0))
++ #define CHECK(test, msg) ((test) ? (void)0 : ((void)fprintf(stderr, \
++-     "%s:%d: %s: %s\n", __FILE__, __LINE__, msg, mdb_strerror(rc)), abort()))
+++     "%s:%d: %s: %s\n", "c++/src/util/lmdb/mtest4.c", __LINE__, msg, mdb_strerror(rc)), abort()))
++ 
++ int main(int argc,char * argv[])
++ {
++--- a/c++/src/util/lmdb/mtest5.c
+++++ b/c++/src/util/lmdb/mtest5.c
++@@ -22,7 +22,7 @@
++ #define E(expr) CHECK((rc = (expr)) == MDB_SUCCESS, #expr)
++ #define RES(err, expr) ((rc = expr) == (err) || (CHECK(!rc, #expr), 0))
++ #define CHECK(test, msg) ((test) ? (void)0 : ((void)fprintf(stderr, \
++-     "%s:%d: %s: %s\n", __FILE__, __LINE__, msg, mdb_strerror(rc)), abort()))
+++     "%s:%d: %s: %s\n", "c++/src/util/lmdb/mtest5.c", __LINE__, msg, mdb_strerror(rc)), abort()))
++ 
++ int main(int argc,char * argv[])
++ {
++--- a/c++/src/util/lmdb/mtest6.c
+++++ b/c++/src/util/lmdb/mtest6.c
++@@ -22,7 +22,7 @@
++ #define E(expr) CHECK((rc = (expr)) == MDB_SUCCESS, #expr)
++ #define RES(err, expr) ((rc = expr) == (err) || (CHECK(!rc, #expr), 0))
++ #define CHECK(test, msg) ((test) ? (void)0 : ((void)fprintf(stderr, \
++-     "%s:%d: %s: %s\n", __FILE__, __LINE__, msg, mdb_strerror(rc)), abort()))
+++     "%s:%d: %s: %s\n", "c++/src/util/lmdb/mtest6.c", __LINE__, msg, mdb_strerror(rc)), abort()))
++ 
++ char dkbuf[1024];
++ 
++--- a/c++/src/util/regexp/pcre_scanner_unittest.cc
+++++ b/c++/src/util/regexp/pcre_scanner_unittest.cc
++@@ -51,7 +51,7 @@
++ #define CHECK_EQ(a, b)  do {                                    \
++   if ( (a) != (b) ) {                                           \
++     fprintf(stderr, "%s:%d: Check failed because %s != %s\n",   \
++-            __FILE__, __LINE__, #a, #b);                        \
+++            "c++/src/util/regexp/pcre_scanner_unittest.cc", __LINE__, #a, #b);                        \
++     exit(1);                                                    \
++   }                                                             \
++ } while (0)
++--- a/c++/src/util/regexp/pcre_stringpiece_unittest.cc
+++++ b/c++/src/util/regexp/pcre_stringpiece_unittest.cc
++@@ -19,7 +19,7 @@
++ #define CHECK(condition) do {                           \
++   if (!(condition)) {                                   \
++     fprintf(stderr, "%s:%d: Check failed: %s\n",        \
++-            __FILE__, __LINE__, #condition);            \
+++            "c++/src/util/regexp/pcre_stringpiece_unittest.cc", __LINE__, #condition);            \
++     exit(1);                                            \
++   }                                                     \
++ } while (0)
++--- a/c++/src/util/static_set.cpp
+++++ b/c++/src/util/static_set.cpp
++@@ -87,7 +87,7 @@ void CArrayHolder::Convert(const void* s
++           TParamStaticArrayCopyWarning::GetDefault()) ) {
++         // report incorrect usage
++         CDiagCompileInfo diag_compile_info
++-            (file? file: __FILE__,
+++            (file? file: "c++/src/util/static_set.cpp",
++              file? line: __LINE__,
++              NCBI_CURRENT_FUNCTION,
++              NCBI_MAKE_MODULE(NCBI_MODULE));
++@@ -122,7 +122,7 @@ void ReportUnsafeStaticType(const char*
++     if ( TParamStaticArrayUnsafeTypeWarning::GetDefault() ) {
++         // report incorrect usage
++         CDiagCompileInfo diag_compile_info
++-            (file? file: __FILE__,
+++            (file? file: "c++/src/util/static_set.cpp",
++              file? line: __LINE__,
++              NCBI_CURRENT_FUNCTION,
++              NCBI_MAKE_MODULE(NCBI_MODULE));
++@@ -145,7 +145,7 @@ void ReportIncorrectOrder(size_t curr_in
++ {
++     { // report incorrect usage
++         CDiagCompileInfo diag_compile_info
++-            (file? file: __FILE__,
+++            (file? file: "c++/src/util/static_set.cpp",
++              file? line: __LINE__,
++              NCBI_CURRENT_FUNCTION,
++              NCBI_MAKE_MODULE(NCBI_MODULE));
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..af73bca118041cb2e876a90ad7ab0cb75bbc62b4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,12 @@@
++Author: Aaron M. Ucko <ucko@debian.org>
++Date:   Wed, 01 Dec 2021 21:38:20 -0500
++Description: Bypass env in Perl script shebangs.
++
++--- a/c++/src/app/blast/update_blastdb.pl
+++++ b/c++/src/app/blast/update_blastdb.pl
++@@ -1,4 +1,4 @@
++-#!/usr/bin/env perl
+++#!/usr/bin/perl
++ # $Id: update_blastdb.pl 681901 2024-04-17 13:16:37Z ivanov $
++ # ===========================================================================
++ #
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d754932eb1cc5c065cd715c3b6bab092cef4af1b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,23 @@@
++system_mbedtls_only
++support_mbedtls3
++allow_pcre2
++optin_usage_report
++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
++support_x32
++suppress_tls_version_checks
++optionally_keep_sequence
++fix_unit_tests
++# reprobuild
++spelling
++support_gcc10
++run_perl_directly
++tune_lmdb_defaults
++2to3
++big_endian_workaround
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..309f9443df42debd294df3978181a382614f2bef
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
++@@ -12,6 +12,7 @@ LIB = test_boost blast_services xnetblas
++ LIBS = $(BLAST_THIRD_PARTY_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
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..c53355278a56c04ea039d8edd71f082429eb013c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,185 @@@
++From: Michael R. Crusoe <michael.crusoe@gmail.com>
++Subject: Spelling fixes
++--- a/c++/include/objtools/alnmgr/seqids_extractor.hpp
+++++ b/c++/include/objtools/alnmgr/seqids_extractor.hpp
++@@ -232,7 +232,7 @@ public:
++                         else if (*id_vec[i] != *id) {
++                             string err("Inconsistent Seq-ids found in seg ");
++                             err += NStr::NumericToString(i) +
++-                                ".  Excpected " + id_vec[i]->AsString() +
+++                                ".  Expected " + id_vec[i]->AsString() +
++                                 ", encountered " + id->AsString() + ".";
++                             NCBI_THROW(CAlnException, eInvalidSeqId, err);
++                         }
++--- a/c++/src/algo/winmask/seq_masker_ostat_factory.cpp
+++++ b/c++/src/algo/winmask/seq_masker_ostat_factory.cpp
++@@ -75,7 +75,7 @@ CSeqMaskerOstat * CSeqMaskerOstatFactory
++         }
++         else NCBI_THROW( CSeqMaskerOstatFactoryException,
++                          eBadName,
++-                         "unkown unit counts format" );
+++                         "unknown unit counts format" );
++     }
++     catch( CException & e ) {
++         NCBI_RETHROW( e, CSeqMaskerOstatFactoryException, eCreateFail,
++@@ -113,7 +113,7 @@ CSeqMaskerOstat * CSeqMaskerOstatFactory
++         }
++         else NCBI_THROW( CSeqMaskerOstatFactoryException,
++                          eBadName,
++-                         "unkown unit counts format" );
+++                         "unknown unit counts format" );
++     }
++     catch( CException & e ) {
++         NCBI_RETHROW( e, CSeqMaskerOstatFactoryException, eCreateFail,
++--- a/c++/src/app/blastdb/blastdbcheck.cpp
+++++ b/c++/src/app/blastdb/blastdbcheck.cpp
++@@ -245,7 +245,7 @@ void CBlastDbCheckApplication::Init(void
++          "Require that all sequences in the database have taxid set.");
++ 
++     arg_desc->AddFlag
++-        ("cdd_delta", "Do aditional tests for a CDD database for DELTA-BLAST");
+++        ("cdd_delta", "Do additional tests for a CDD database for DELTA-BLAST");
++ 
++     // Setup arg.descriptions for this application
++     SetupArgDescriptions(arg_desc.release());
++--- a/c++/src/app/blastdb/makeprofiledb.cpp
+++++ b/c++/src/app/blastdb/makeprofiledb.cpp
++@@ -1838,7 +1838,7 @@ bool CMakeProfileDBApp::x_CheckDelta( co
++     if( !x_ValidateCd(freqs, obsr, BLASTAA_SIZE) && m_ExcludeInvalid)
++     {
++      *m_LogFile << filename +
++-                     " was excluded: it conatins an invalid CD \n";
+++                     " was excluded: it contains an invalid CD \n";
++      return false;
++     }
++     return true;
++--- a/c++/src/objects/seqalign/Dense_seg.cpp
+++++ b/c++/src/objects/seqalign/Dense_seg.cpp
++@@ -980,7 +980,7 @@ void CDense_seg::RemapToLoc(TDim row, co
++             if (loc_plus != (seq_loc_i.GetStrand() != eNa_strand_minus)) {
++                 NCBI_THROW(CSeqalignException, eInvalidInputData,
++                            "CDense_seg::RemapToLoc():"
++-                           " The strand should be the same accross"
+++                           " The strand should be the same across"
++                            " the input seq-loc");
++             }
++         }
++--- a/c++/src/objects/seqalign/Seq_align.cpp
+++++ b/c++/src/objects/seqalign/Seq_align.cpp
++@@ -872,7 +872,7 @@ CSeq_align::CreateDensegFromStdseg(SSeqI
++         if (dim != ss.GetDim()  ||  row != dim) {
++             NCBI_THROW(CSeqalignException, eInvalidInputAlignment,
++                        "CreateDensegFromStdseg(): "
++-                       "Inconsistent dimentions!");
+++                       "Inconsistent dimensions!");
++         }
++ 
++         if (widths_determined[seg]) {
++--- a/c++/src/objects/seqfeat/institution_codes.inc
+++++ b/c++/src/objects/seqfeat/institution_codes.inc
++@@ -791,7 +791,7 @@ static const char* const kInstitutionCol
++ "BPPT-ESC\tc\tBPPT Ethanol-Single Cell Protein-Fructose Syrup Technical Unit\t\t\t",
++ "BPU\ts\tEoetvoes Lorand University, Department of Plant Taxonomy and Ecology\t\t\t",
++ "BR<BEL>\ts\tBotanic Garden Meise\t\t\t",
++-"BR<BRA>\tc\tJohanna Dobereiner Biological Resouce Center (CRB-JD)\t\t\t",
+++"BR<BRA>\tc\tJohanna Dobereiner Biological Resource Center (CRB-JD)\t\t\t",
++ "BRA\ts\tSlovak National Museum, Botany Department\t\t\t",
++ "BRAD\ts\tUniversity of Bradford, Biology Department\t\t\t",
++ "BRB\ts\tBrassica Resource Bank\t\t\t",
++--- a/c++/src/objects/seqfeat/institution_codes.txt
+++++ b/c++/src/objects/seqfeat/institution_codes.txt
++@@ -755,7 +755,7 @@ BPM       s       Beipiao Paleontological Museum
++ BPPT-ESC     c       BPPT Ethanol-Single Cell Protein-Fructose Syrup Technical Unit                  
++ BPU  s       Eoetvoes Lorand University, Department of Plant Taxonomy and Ecology                    
++ BR<BEL>      s       Botanic Garden Meise                    
++-BR<BRA>      c       Johanna Dobereiner Biological Resouce Center (CRB-JD)                   
+++BR<BRA>      c       Johanna Dobereiner Biological Resource Center (CRB-JD)                  
++ BRA  s       Slovak National Museum, Botany Department                       
++ BRAD s       University of Bradford, Biology Department                      
++ BRB  s       Brassica Resource Bank                  
++--- a/c++/src/objmgr/util/sequence.cpp
+++++ b/c++/src/objmgr/util/sequence.cpp
++@@ -385,7 +385,7 @@ string GetProteinName(const CBioseq_Hand
++     if ( best_feats.empty() ) {
++         NCBI_THROW_FMT(CObjMgrException, eFindFailed,
++                        "GetProteinName("<<GetId(seq, eGetId_Best)<<"): "
++-                       "the sequence does't have prot feature");
+++                       "the sequence doesn't have prot feature");
++     }
++     if ( best_feats.size() > 1 ) {
++         NCBI_THROW_FMT(CObjMgrException, eFindConflict,
++--- a/c++/src/objtools/align_format/taxFormat.cpp
+++++ b/c++/src/objtools/align_format/taxFormat.cpp
++@@ -616,7 +616,7 @@ void CTaxFormat::x_LoadTaxTree(void)
++             }            
++         }
++         if (!tax_load_ok) {
++-            NCBI_THROW(CException, eUnknown,"Taxonomic load was not successfull.");
+++            NCBI_THROW(CException, eUnknown,"Taxonomic load was not successful.");
++         }
++         m_TaxTreeLoaded = true;
++             
++--- a/c++/src/objtools/format/flat_file_config.cpp
+++++ b/c++/src/objtools/format/flat_file_config.cpp
++@@ -655,7 +655,7 @@ void CFlatFileConfig::AddArgumentDescrip
++ 
++          // from
++          arg_desc->AddOptionalKey("from", "From",
++-                                  "Begining of shown range", CArgDescriptions::eInteger);
+++                                  "Beginning of shown range", CArgDescriptions::eInteger);
++ 
++          // to
++          arg_desc->AddOptionalKey("to", "To",
++--- a/c++/src/objtools/readers/agp_converter.cpp
+++++ b/c++/src/objtools/readers/agp_converter.cpp
++@@ -728,7 +728,7 @@ void CAgpConverter::x_SetUpObjectOpening
++         submit_block_writer.WriteObject(m_pSubmitBlock.GetPointer(), m_pSubmitBlock->GetThisTypeInfo());
++         submit_block_writer.Flush();
++         seq_sub_header_strm << "," << endl;
++-        seq_sub_header_strm << "data entrys {" << endl;
+++        seq_sub_header_strm << "data entries {" << endl;
++ 
++         out_sObjectOpeningString = seq_sub_header_strm.str();
++         out_sObjectClosingString = "} }" + out_sObjectClosingString;
++--- a/c++/src/objtools/readers/agp_util.cpp
+++++ b/c++/src/objtools/readers/agp_util.cpp
++@@ -173,7 +173,7 @@ const CAgpErr::TStr CAgpErr::s_msg[]= {
++ 
++     "object_beg != previous object_end + 1",
++     "no valid AGP lines",
++-    "consequtive gaps lines with the same type and linkage",
+++    "consecutive gaps lines with the same type and linkage",
++     "in \"Scaffold from component\" file, invalid scaffold-breaking gap",
++     "in \"Chromosome from scaffold\" file, invalid \"within-scaffold\" gap",
++ 
++@@ -193,7 +193,7 @@ const CAgpErr::TStr CAgpErr::s_msg[]= {
++     // Content Warnings
++     "gap at the end of object (OK if X is the circular chromosome/plasmid)",
++     "gap at the beginning of object ",
++-    "two consequtive gap lines (e.g. a gap at the end of "
+++    "two consecutive gap lines (e.g. a gap at the end of "
++         "a scaffold, two non scaffold-breaking gaps, ...)",
++     "no components in object",
++     "the span overlaps a previous span for this component",
++--- a/c++/src/objtools/readers/agp_validate_reader.cpp
+++++ b/c++/src/objtools/readers/agp_validate_reader.cpp
++@@ -300,7 +300,7 @@ void CAgpValidateReader::OnGapOrComponen
++       int prev_comp_file=spans.rbegin()->file_num;
++       int prev_comp_line=spans.rbegin()->line_num;
++       if(prev_comp_file < m_last_scaf_start_file || prev_comp_line < m_last_scaf_start_line) {
++-        sameComId_otherScaf="; previous occurance at ";
+++        sameComId_otherScaf="; previous occurrence at ";
++         if(prev_comp_file && prev_comp_file!=m_AgpErr->GetFileNum()) {
++           sameComId_otherScaf += m_AgpErr->GetFile(prev_comp_file);
++           sameComId_otherScaf += ":";
++--- a/c++/src/util/compress/api/compress.cpp
+++++ b/c++/src/util/compress/api/compress.cpp
++@@ -165,7 +165,7 @@ bool CCompression::x_DecompressFile(CCom
++     while ( (nread = src_file.Read(buf.get(), file_io_bufsize)) > 0 ) {
++         os.write(buf.get(), nread);
++         if ( !os.good() ) {
++-            SetError(-1, "Error writing to ouput file");
+++            SetError(-1, "Error writing to output file");
++             return false;
++         }
++     }
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..9af97f4b47c17fbb30be5d6b9f5045169aab9e62
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,20 @@@
++Author: Aaron M. Ucko <ucko@debian.org>
++Date:   Sun Sep 06 22:57:35 2020 -0400
++Description: Support GCC 10+.
++Debian-Bug: 957581.
++
++* ncbifile.cpp (s_GetFileSystemInfo): Formally cast st.f_type to avoid
++  narrowing errors for cases with the high bit set when that field is
++  a 32-bit signed integer (as on i386).
++
++--- a/c++/src/corelib/ncbifile.cpp
+++++ b/c++/src/corelib/ncbifile.cpp
++@@ -5178,7 +5178,7 @@ void s_GetFileSystemInfo(const string&
++     
++     GET_STATFS_INFO;
++     if (flags & (fFSI_Type | fFSI_DiskSpace)) {
++-        switch (st.f_type) {
+++        switch (static_cast<Uint4>(st.f_type)) {
++             case 0xADF5:      info->fs_type = CFileUtil::eADFS;     break;
++             case 0xADFF:      info->fs_type = CFileUtil::eAFFS;     break;
++             case 0x5346414F:  info->fs_type = CFileUtil::eAFS;      break;
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..351954198203e6bd0a6299acc4ff0bff4c784a46
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,222 @@@
++From 4395feafcadc4b74f749ce421a530922e5f58047 Mon Sep 17 00:00:00 2001
++From: ucko <ucko@ncbi.nlm.nih.gov>
++Date: Tue, 23 Apr 2024 19:21:48 +0000
++Subject: [PATCH] Accommodate Mbed TLS 3.x (specifically, 3.6.0 LTS).
++
++- Conditionally pass mbedtls_pk_parse_key the existing pRNG and its state.
++- Call psa_crypto_init during setup, as PSA may be in play even when not
++  explicitly enabled.  Documentation suggests calling it as early as
++  possible; in practice, though, holding off until after pRNG
++  initialization avoids "insufficient entropy" errors under 2.x (at least
++  2.28.8 LTS on Linux) and still works fine as of 3.6.0.
++- At least for now, ensure that MBEDTLS_SSL_VERIFY_NONE remains effective
++  by additionally capping the TLS version at 1.2; as of 1.3, certificate
++  checking has become mandatory, and Mbed TLS respects that requirement.
++- Additional tuneups to ncbi_mbedtls.c-only code:
++-- Account for error-code macro repertoire changes by conditionalizing
++   major-version-specific macros on their availability and specifically
++   checking for or emitting MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED (new)
++   as appropriate,
++-- x_ErrorToStatus: Conditionally use MBEDTLS_PRIVATE for p_bio, which has
++   no accessor.
++-- x_MbedTlsWrite: Substitute mbedtls_ssl_get_max_out_record_payload for
++   mbedtls_ssl_get_output_max_frag_len, which didn't account for other
++   relevant considerations and is now fully private.
++
++https://github.com/Mbed-TLS/mbedtls/blob/development/docs/3.0-migration-guide.md
++supplied useful guidance.  JIRA: CXX-13565.
++
++git-svn-id: https://anonsvn.ncbi.nlm.nih.gov/repos/v1/trunk/c++@102329 78c7ea69-d796-4a43-9a09-de51944f1b03
++---
++ c++/src/connect/ncbi_mbedtls.c      | 44 ++++++++++++++++++++++++++++++---
++ c++/src/connect/ncbi_priv.h         |  2 +-
++ c++/src/connect/ncbi_uv_nghttp2.cpp | 22 ++++++++++++++++-
++ 3 files changed, 63 insertions(+), 5 deletions(-)
++
++--- a/c++/src/connect/ncbi_mbedtls.c
+++++ b/c++/src/connect/ncbi_mbedtls.c
++@@ -52,6 +52,7 @@
++ #    include <mbedtls/ssl.h>
++ #    include <mbedtls/threading.h>
++ #    include <mbedtls/version.h>
+++#    include <psa/crypto.h>
++ 
++ #  if   defined(ENOTSUP)
++ #    define NCBI_NOTSUPPORTED  ENOTSUP
++@@ -101,7 +102,11 @@ static int mbtls_user_mutex_lock(MT_LOCK
++     if (lock) {
++         switch (MT_LOCK_Do(*lock, eMT_Lock)) {
++         case -1:
+++#ifdef MBEDTLS_ERR_THREADING_FEATURE_UNAVAILABLE
++             return MBEDTLS_ERR_THREADING_FEATURE_UNAVAILABLE;
+++#else
+++            return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+++#endif
++         case  0:
++             return MBEDTLS_ERR_THREADING_MUTEX_ERROR;
++         case  1:
++@@ -117,7 +122,11 @@ static int mbtls_user_mutex_unlock(MT_LO
++     if (lock) {
++         switch (MT_LOCK_Do(*lock, eMT_Unlock)) {
++         case -1:
+++#ifdef MBEDTLS_ERR_THREADING_FEATURE_UNAVAILABLE
++             return MBEDTLS_ERR_THREADING_FEATURE_UNAVAILABLE;
+++#else
+++            return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+++#endif
++         case  0:
++             return MBEDTLS_ERR_THREADING_MUTEX_ERROR;
++         case  1:
++@@ -214,7 +223,11 @@ static EIO_Status x_ErrorToStatus(int er
++ 
++     if (!error)
++         return eIO_Success;
+++#if MBEDTLS_VERSION_MAJOR >= 3
+++    sock = ((SNcbiSSLctx*)(session->MBEDTLS_PRIVATE(p_bio)))->sock;
+++#else
++     sock = ((SNcbiSSLctx*)(session->p_bio))->sock;
+++#endif
++     switch (error) {
++     case MBEDTLS_ERR_SSL_WANT_READ:
++         status = x_RetryStatus(sock, direction);
++@@ -225,11 +238,20 @@ static EIO_Status x_ErrorToStatus(int er
++     case MBEDTLS_ERR_SSL_TIMEOUT:
++         status = eIO_Timeout;
++         break;
+++#ifdef MBEDTLS_ERR_THREADING_FEATURE_UNAVAILABLE
++     case MBEDTLS_ERR_THREADING_FEATURE_UNAVAILABLE:
+++#endif
+++#ifdef MBEDTLS_ERR_SSL_NO_USABLE_CIPHERSUITE
++     case MBEDTLS_ERR_SSL_NO_USABLE_CIPHERSUITE:
+++#endif
++     case MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE:
+++#ifdef MBEDTLS_ERR_SSL_UNKNOWN_CIPHER
++     case MBEDTLS_ERR_SSL_UNKNOWN_CIPHER:
+++#endif
++     case MBEDTLS_ERR_SSL_INTERNAL_ERROR:
+++#ifdef MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED
+++    case MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED:
+++#endif
++         status = eIO_NotSupported;
++         break;
++     case MBEDTLS_ERR_THREADING_BAD_INPUT_DATA:
++@@ -574,8 +596,8 @@ static EIO_Status x_MbedTlsWrite(void* s
++ static EIO_Status s_MbedTlsWrite(void* session, const void* data,
++                                  size_t n_todo, size_t* n_done, int* error)
++ {
++-    size_t max_size
++-        = mbedtls_ssl_get_output_max_frag_len((mbedtls_ssl_context*) session);
+++    size_t max_size = mbedtls_ssl_get_max_out_record_payload
+++        ((mbedtls_ssl_context*) session);
++     EIO_Status status;
++ 
++     *n_done = 0;
++@@ -714,6 +736,7 @@ static EIO_Status s_MbedTlsInit(FSSLPull
++     char version[80];
++     const char* val;
++     char buf[32];
+++    psa_status_t psa_status;
++ 
++     mbedtls_version_get_string(version);
++     if (strcasecmp(MBEDTLS_VERSION_STRING, version) != 0) {
++@@ -734,6 +757,11 @@ static EIO_Status s_MbedTlsInit(FSSLPull
++                                 MBEDTLS_SSL_TRANSPORT_STREAM,
++                                 MBEDTLS_SSL_PRESET_DEFAULT);
++     mbedtls_ssl_conf_authmode(&s_MbedTlsConf, MBEDTLS_SSL_VERIFY_NONE);
+++#if MBEDTLS_VERSION_MAJOR >= 3
+++    /* The above line can otherwise be ineffective. */
+++    mbedtls_ssl_conf_max_tls_version(&s_MbedTlsConf,
+++                                     MBEDTLS_SSL_VERSION_TLS1_2);
+++#endif
++ 
++     /* Check CONN_[MBED]TLS_LOGLEVEL or [CONN][MBED]TLS_LOGLEVEL */
++     val = ConnNetInfo_GetValueInternal(0, "MBED" REG_CONN_TLS_LOGLEVEL,
++@@ -781,6 +809,12 @@ static EIO_Status s_MbedTlsInit(FSSLPull
++     mbedtls_ssl_conf_rng(&s_MbedTlsConf,
++                          mbedtls_ctr_drbg_random, &s_MbedTlsCtrDrbg);
++ 
+++    if ((psa_status = psa_crypto_init()) != PSA_SUCCESS) {
+++        CORE_LOGF_X(51, eLOG_Error,
+++                    ("psa_crypto_init failed with status %d", psa_status));
+++        return eIO_NotSupported;
+++    }
+++
++     s_Pull = pull;
++     s_Push = push;
++ 
++@@ -957,7 +991,11 @@ NCBI_CRED NcbiCreateMbedTlsCertCredentia
++ 
++     err = mbedtls_pk_parse_key(xcred->pkey,
++                                (const unsigned char*) pkey, pkeysz ? pkeysz
++-                               : strlen((const char*) pkey) + 1, 0, 0);
+++                               : strlen((const char*) pkey) + 1, 0, 0
+++#if MBEDTLS_VERSION_MAJOR >= 3
+++                               , mbedtls_ctr_drbg_random, &s_MbedTlsCtrDrbg
+++#endif
+++                               );
++     if (err) {
++         mbedtls_strerror(err, errbuf, sizeof(errbuf) - 1);
++         CORE_LOG_ERRNO_EXX(12, eLOG_Error, err, errbuf,
++--- a/c++/src/connect/ncbi_priv.h
+++++ b/c++/src/connect/ncbi_priv.h
++@@ -101,7 +101,7 @@ NCBI_C_DEFINE_ERRCODE_X(Connect_SMTP,
++ NCBI_C_DEFINE_ERRCODE_X(Connect_HTTP,          307,  26);
++ NCBI_C_DEFINE_ERRCODE_X(Connect_Service,       308,  10);
++ NCBI_C_DEFINE_ERRCODE_X(Connect_HeapMgr,       309,  34);
++-NCBI_C_DEFINE_ERRCODE_X(Connect_TLS,           310,  50);
+++NCBI_C_DEFINE_ERRCODE_X(Connect_TLS,           310,  51);
++ NCBI_C_DEFINE_ERRCODE_X(Connect_Mghbn,         311,  16);
++ NCBI_C_DEFINE_ERRCODE_X(Connect_Crypt,         312,   5);
++ NCBI_C_DEFINE_ERRCODE_X(Connect_LocalIP,       313,   5);
++--- a/c++/src/connect/ncbi_uv_nghttp2.cpp
+++++ b/c++/src/connect/ncbi_uv_nghttp2.cpp
++@@ -40,6 +40,8 @@
++ #include <corelib/ncbiapp.hpp>
++ #include <corelib/request_ctx.hpp>
++ 
+++#include <psa/crypto.h>
+++
++ BEGIN_NCBI_SCOPE
++ 
++ #define NCBI_UV_WRITE_TRACE(message)        _TRACE(message)
++@@ -701,6 +703,10 @@ SUvNgHttp2_TlsImpl::SUvNgHttp2_TlsImpl(c
++     }
++ 
++     mbedtls_ssl_conf_authmode(&m_Conf, MBEDTLS_SSL_VERIFY_NONE);
+++#if MBEDTLS_VERSION_MAJOR >= 3
+++    /* The above line can otherwise be ineffective. */
+++    mbedtls_ssl_conf_max_tls_version(&m_Conf, MBEDTLS_SSL_VERSION_TLS1_2);
+++#endif
++     mbedtls_entropy_init(&m_Entropy);
++     mbedtls_ctr_drbg_init(&m_CtrDrbg);
++     mbedtls_x509_crt_init(&m_Cert);
++@@ -714,6 +720,14 @@ SUvNgHttp2_TlsImpl::SUvNgHttp2_TlsImpl(c
++     }
++ 
++     mbedtls_ssl_conf_rng(&m_Conf, mbedtls_ctr_drbg_random, &m_CtrDrbg);
+++    auto p_rv = psa_crypto_init();
+++
+++    if (p_rv != PSA_SUCCESS) {
+++        NCBI_UVNGHTTP2_TLS_TRACE(this << " psa_crypto_init: error code"
+++                                 << p_rv);
+++        return;
+++    }
+++
++     mbedtls_ssl_conf_alpn_protocols(&m_Conf, m_Protocols.data());
++     mbedtls_ssl_init(&m_Ssl);
++ 
++@@ -748,7 +762,13 @@ SUvNgHttp2_TlsImpl::SUvNgHttp2_TlsImpl(c
++         return;
++     }
++ 
++-    auto pk_rv = mbedtls_pk_parse_key(&m_Pkey, reinterpret_cast<const unsigned char*>(pkey.data()), pkey.size() + 1, nullptr, 0);
+++    auto pk_rv = mbedtls_pk_parse_key(
+++        &m_Pkey, reinterpret_cast<const unsigned char*>(pkey.data()),
+++        pkey.size() + 1, nullptr, 0
+++#if MBEDTLS_VERSION_MAJOR >= 3
+++        , mbedtls_ctr_drbg_random, &m_CtrDrbg
+++#endif
+++        );
++ 
++     if (pk_rv) {
++         NCBI_UVNGHTTP2_TLS_TRACE(this << " mbedtls_pk_parse_key: " << SUvNgHttp2_Error::MbedTlsStr(pk_rv));
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7e166d8cd9e5bd8bf669081751a997768ae7aed4
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,16 @@@
++Author: Aaron M. Ucko <ucko@debian.org>
++Date:   Wed, 01 Dec 2021 21:37:42 -0500
++Description: Support x32
++
++Avoid picking up wrong inline assembly.
++--- a/c++/include/corelib/impl/ncbi_atomic_defs.h
+++++ b/c++/include/corelib/impl/ncbi_atomic_defs.h
++@@ -120,7 +120,7 @@ extern "C" {
++   (defined(__i386)  ||  defined(__sparc)  ||  defined(__x86_64)  || \
++    defined(__aarch64__))  && \
++   (!defined(__GLIBCXX__)  ||  !defined(NCBI_TCHECK))
++-#  if defined(__x86_64)  ||  defined(__aarch64__)
+++#  if (defined(__x86_64)  &&  !defined(_ILP32))  ||  defined(__aarch64__)
++ #    define NCBI_COUNTER_64_BIT
++ #  endif
++ #  ifdef NCBI_COUNTER_64_BIT
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..6669ec04ac712cdbff00db4aaad114d5f0d712d7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,43 @@@
++Author: Aaron M. Ucko <ucko@debian.org>
++Date:   Wed, 01 Dec 2021 22:08:16 -0500
++Description: suppress gnu TLS and mbed TLS version checks
++    
++    Prevent bailing when the exact compile-time and runtime GNU TLS versions
++    differ; trust dpkg to disallow combinations that are actually incompatible.
++    Likewise for mbed TLS.
++
++--- a/c++/src/connect/ncbi_gnutls.c
+++++ b/c++/src/connect/ncbi_gnutls.c
++@@ -748,6 +748,7 @@ static EIO_Status s_GnuTlsInit(FSSLPull
++ 
++     assert(!s_GnuTlsCredAnon);
++ 
+++#if 0
++     version = gnutls_check_version(0);
++     if (strcasecmp(GNUTLS_VERSION, version) != 0) {
++         CORE_LOGF_X(26, eLOG_Critical,
++@@ -755,6 +756,7 @@ static EIO_Status s_GnuTlsInit(FSSLPull
++                      GNUTLS_VERSION, version));
++         assert(0);
++     }
+++#endif
++ 
++     CORE_TRACE("GnuTlsInit(): Enter");
++ 
++--- a/c++/src/connect/ncbi_mbedtls.c
+++++ b/c++/src/connect/ncbi_mbedtls.c
++@@ -739,12 +739,14 @@ static EIO_Status s_MbedTlsInit(FSSLPull
++     psa_status_t psa_status;
++ 
++     mbedtls_version_get_string(version);
+++#if 0
++     if (strcasecmp(MBEDTLS_VERSION_STRING, version) != 0) {
++         CORE_LOGF_X(5, eLOG_Critical,
++                     ("%s version mismatch: %s headers vs. %s runtime",
++                      kMbedTls, MBEDTLS_VERSION_STRING, version));
++         assert(0);
++     }
+++#endif
++ 
++     CORE_TRACE("MbedTlsInit(): Enter");
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..2f381dd5e14065d653aa525a4443ca19cf57a40b
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,76 @@@
++Author: Aaron M. Ucko <amu@ucko.debian.net>
++Date:   Wed, 01 Dec 2021 23:33:11 -0500
++Subject: Omit convenience mbed TLS copy
++--- a/c++/src/connect/Makefile.connssl.lib
+++++ b/c++/src/connect/Makefile.connssl.lib
++@@ -1,8 +1,10 @@
++ # $Id: Makefile.connssl.lib 642488 2021-12-20 21:00:34Z ucko $
++ 
++-CPPFLAGS = $(TLS_INCLUDE) -I$(srcdir)/mbedtls $(ORIG_CPPFLAGS)
+++CPPFLAGS = $(TLS_INCLUDE) $(ORIG_CPPFLAGS)
++ 
++-SRC_TLS  = ncbi_gnutls ncbi_mbedtls ncbi_tls \
+++SRC_TLS  = ncbi_gnutls ncbi_mbedtls ncbi_tls
+++
+++SRC_MBEDTLS_UNUSED = \
++            mbedtls/aes mbedtls/aesni mbedtls/arc4 mbedtls/aria \
++            mbedtls/asn1parse mbedtls/asn1write mbedtls/base64 mbedtls/bignum \
++            mbedtls/blowfish mbedtls/camellia mbedtls/ccm mbedtls/chacha20 \
++--- a/c++/src/connect/connect_misc_impl.hpp
+++++ b/c++/src/connect/connect_misc_impl.hpp
++@@ -30,11 +30,10 @@
++  *
++  */
++ 
++-#include "mbedtls/mbedtls/ncbicxx_rename_mbedtls.h"
++-#include "mbedtls/mbedtls/error.h"
++-#include "mbedtls/mbedtls/ctr_drbg.h"
++-#include "mbedtls/mbedtls/entropy.h"
++-#include "mbedtls/mbedtls/ssl.h"
+++#include <mbedtls/error.h>
+++#include <mbedtls/ctr_drbg.h>
+++#include <mbedtls/entropy.h>
+++#include <mbedtls/ssl.h>
++ 
++ #include <corelib/ncbimisc.hpp>
++ 
++--- a/c++/src/connect/ncbi_mbedtls.c
+++++ b/c++/src/connect/ncbi_mbedtls.c
++@@ -43,7 +43,6 @@
++ 
++ #if defined(HAVE_LIBMBEDTLS)  ||  defined(NCBI_CXX_TOOLKIT)
++ 
++-#  ifdef HAVE_LIBMBEDTLS  /* external */
++ #    include <mbedtls/ctr_drbg.h>
++ #    include <mbedtls/debug.h>
++ #    include <mbedtls/entropy.h>
++@@ -53,17 +52,6 @@
++ #    include <mbedtls/ssl.h>
++ #    include <mbedtls/threading.h>
++ #    include <mbedtls/version.h>
++-#  else                   /* embedded */
++-#    include "mbedtls/mbedtls/ctr_drbg.h"
++-#    include "mbedtls/mbedtls/debug.h"
++-#    include "mbedtls/mbedtls/entropy.h"
++-#    include "mbedtls/mbedtls/error.h"
++-#    include "mbedtls/mbedtls/pk.h"
++-#    include "mbedtls/mbedtls/net_sockets.h"
++-#    include "mbedtls/mbedtls/ssl.h"
++-#    include "mbedtls/mbedtls/threading.h"
++-#    include "mbedtls/mbedtls/version.h"
++-#  endif /*HAVE_LIBMBEDTLS*/
++ 
++ #  if   defined(ENOTSUP)
++ #    define NCBI_NOTSUPPORTED  ENOTSUP
++--- a/c++/src/connect/Makefile.xxconnect2.lib
+++++ b/c++/src/connect/Makefile.xxconnect2.lib
++@@ -9,8 +9,7 @@ REQUIRES = LIBUV NGHTTP2
++ LIB_OR_DLL = both
++ DLL_LIB = xconnect
++ 
++-CPPFLAGS = $(LIBUV_INCLUDE) $(NGHTTP2_INCLUDE) $(TLS_INCLUDE) \
++-           -I$(srcdir)/mbedtls $(ORIG_CPPFLAGS)
+++CPPFLAGS = $(LIBUV_INCLUDE) $(NGHTTP2_INCLUDE) $(TLS_INCLUDE) $(ORIG_CPPFLAGS)
++ 
++ LIBS = $(XXCONNECT2_LIBS) $(ORIG_LIBS)
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..080d9b565c37af922273e19f4c7eeaa9b080abe3
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,14 @@@
++--- a/c++/include/objtools/blast/seqdb_writer/writedb_lmdb.hpp
+++++ b/c++/include/objtools/blast/seqdb_writer/writedb_lmdb.hpp
++@@ -52,7 +52,11 @@ BEGIN_NCBI_SCOPE
++ #define DEFAULT_LMDB_MAP_SIZE 500000
++ #define DEFAULT_TAXID_MAP_SIZE 500000
++ #else
+++#ifdef __mips__
+++#define DEFAULT_LMDB_MAP_SIZE (640 * 1024 * 1024)
+++#else
++ #define DEFAULT_LMDB_MAP_SIZE 700000000
+++#endif
++ #define DEFAULT_TAXID_MAP_SIZE 300000000
++ #endif
++ 
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..139a8580c5291d9468eec8c84168320a4da486c5
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,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
++@@ -25,8 +25,8 @@ default_rule: all
++ ### C/C++ source file compilation setup
++ 
++ CPPFLAGS     += -DNCBI_APP_BUILT_AS=$(APP)
++-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
++@@ -59,7 +59,7 @@ PROJ_TYPE = app
++ include $(builddir)/Makefile.$(Rules)
++ 
++ CMD_BASE = $(LINK_WRAPPER) $(LINK)
++-CMD_BASEARGS = $(LDFLAGS) $(APP_LDFLAGS) $(XOBJ) $(XOBJ2) $(PRE_LIBS)
+++CMD_BASEARGS = $(LDFLAGS) $(APP_LDFLAGS) -fPIE -pie $(XOBJ) $(XOBJ2) $(PRE_LIBS)
++ CMD_TAIL = @f_outexe@$(XAPP) $(LINK_FILTER)
++ CMD_ARGS  = $(CMD_BASEARGS) $(XLIB)  $(XAPP_LIBS)
++ CMD_ARGS2 = $(CMD_BASEARGS) $(XLIB2) $(XAPP_LIBS2)
diff --cc debian/rules
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..558fd737f59563850afae22a3ed5a5d4dafa4c13
new file mode 100755 (executable)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,210 @@@
++#!/usr/bin/make -f
++# -*- makefile -*-
++
++include /usr/share/dpkg/architecture.mk
++
++# Uncomment this to turn on verbose mode.
++#export DH_VERBOSE=1
++
++export HOME=$(CURDIR)/fakehome
++
++NUMJOBS=1
++ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
++  ifneq (sh4,$(DEB_BUILD_ARCH))
++    NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
++  endif
++endif
++
++DEB_CONFIGURE_COMMON_FLAGS=--without-autodep --without-makefile-auto-update \
++    --with-flat-makefile --without-caution --without-dbapi --without-lzo \
++    --without-debug --without-downloaded-vdb --without-sse42
++DEB_CONFIGURE_EXTRA_FLAGS=$(DEB_CONFIGURE_COMMON_FLAGS) --with-dll --with-mt \
++    --with-runpath=/usr/lib/ncbi-blast+ --with-build-root=BUILD \
++    --with-mbedtls --with-pcre2
++
++proj=algo/blast/ app/ objmgr/ objtools/align_format/ objtools/blast/
++
++#ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
++DEB_CONFIGURE_EXTRA_FLAGS += --without-strip --with-symbols
++#endif
++
++#export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie
++export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie reproducible=-timeless
++export DEB_CFLAGS_MAINT_APPEND=-Wall -pedantic
++
++ifeq ($(DEB_HOST_ARCH_BITS),32)
++  ifeq (,$(filter %i386 x32,$(DEB_HOST_ARCH)))
++    export LIBS=-latomic
++  endif
++endif
++
++ifeq (alpha,$(DEB_HOST_ARCH))
++  export DEB_CFLAGS_MAINT_APPEND   += -fsection-anchors
++  export DEB_CXXFLAGS_MAINT_APPEND += -fsection-anchors
++endif
++ifeq (hppa,$(DEB_HOST_ARCH))
++  export DEB_CFLAGS_MAINT_APPEND   += -ffunction-sections
++  export DEB_CXXFLAGS_MAINT_APPEND += -ffunction-sections
++endif
++# Down to mips64el in practice, but easy enough to generalize
++ifneq (,$(findstring mips,$(DEB_HOST_ARCH)))
++  export DEB_CFLAGS_MAINT_APPEND   += -mxgot
++  export DEB_CXXFLAGS_MAINT_APPEND += -mxgot
++endif
++
++include /usr/share/dpkg/buildflags.mk
++
++ifneq (,$(filter mips%,$(DEB_HOST_ARCH)))
++CXXFLAGS := $(CXXFLAGS:-O%=-O)
++DEB_CONFIGURE_EXTRA_FLAGS += FAST_CXXFLAGS=-O
++endif
++ifeq (sh4,$(DEB_HOST_ARCH))
++DEB_CONFIGURE_COMMON_FLAGS += --without-optimization
++endif
++
++export CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MAKE
++
++# used for run_with_lock
++DEB_CONFIGURE_COMMON_FLAGS +=  CFLAGS_FOR_BUILD="$(CFLAGS) -fPIE"
++DEB_CONFIGURE_COMMON_FLAGS += LDFLAGS_FOR_BUILD="$(LDFLAGS)"
++
++ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
++NATIVE=.native
++DEB_CONFIGURE_EXTRA_FLAGS += --build=$(DEB_BUILD_GNU_TYPE) \
++    --host=$(DEB_HOST_GNU_TYPE)
++NATIVE_BINDIR=$(CURDIR)/c++/BUILD$(NATIVE)/bin
++PREBUILT_DATATOOL_EXE=$(NATIVE_BINDIR)/datatool
++PREBUILT_PTB_EXE=$(NATIVE_BINDIR)/project_tree_builder
++export PREBUILT_DATATOOL_EXE PREBUILT_PTB_EXE
++
++$(PREBUILT_DATATOOL_EXE):
++      cd c++  &&  PREBUILT_PTB_EXE=bootstrap \
++            ./configure $(DEB_CONFIGURE_COMMON_FLAGS) --without-objects \
++            --without-algo --without-app --with-build-root=BUILD.native  ||  \
++            (tail -v -n +0 config.log BUILD.native/status/config.log; exit 1)
++      make -j$(NUMJOBS) -C c++/BUILD$(NATIVE)/build -f Makefile.flat \
++          datatool.exe
++endif
++
++override_dh_autoreconf:
++      cd c++  && \
++          autoheader2.69 -Isrc/build-system src/build-system/configure.ac \
++          &&  cd src/build-system  &&  autoconf2.69
++
++override_dh_auto_configure-indep:;
++override_dh_auto_configure-arch: $(PREBUILT_DATATOOL_EXE)
++      mkdir -p $(HOME)
++      cd c++  &&  CONFIG_SHELL=/bin/bash \
++            ./configure $(DEB_CONFIGURE_EXTRA_FLAGS) \
++          ||  (tail -v -n +0 config.log BUILD/status/config.log; exit 1)
++
++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:
++ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
++      -dh_auto_test
++      -c++/BUILD/build/check.sh concat_err
++      -cat c++/BUILD/build/check.sh.out_err
++endif
++
++instroot = debian/ncbi-blast+/usr
++leg_bin = debian/ncbi-blast+-legacy/usr/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/get_species_taxids.sh \
++          $(instroot)/bin/get_species_taxids
++      mv $(instroot)/bin/cleanup-blastdb-volumes.py \
++          $(instroot)/bin/cleanup-blastdb-volumes
++      mv $(instroot)/bin/legacy_blast.pl   $(instroot)/bin/legacy_blast
++      mv $(instroot)/bin/update_blastdb.pl $(instroot)/bin/update_blastdb
++      sed -e '1s/$$/3/' $(instroot)/bin/windowmasker_2.2.22_adapter.py \
++         > $(instroot)/bin/windowmasker_2.2.22_adapter
++      chmod +x $(instroot)/bin/windowmasker_2.2.22_adapter
++      rm $(instroot)/bin/windowmasker_2.2.22_adapter.py*
++# Clean up tests, demos, and internal build tools
++      rm -f $(instroot)/bin/*test* $(instroot)/bin/seqdb_demo \
++          $(instroot)/bin/datatool $(instroot)/bin/run_with_lock \
++          $(instroot)/bin/project_tree_builder
++      mkdir c++/BUILD/lib.observed
++      d=$(instroot)/bin; \
++      while :; do \
++          (for x in $$d/*; do \
++              readelf -d $$x 2>/dev/null \
++              | sed -ne 's/.*NEEDED.* \[\(.*\)]$$/\1/p'; \
++            done; rm -f c++/BUILD/lib.observed/*) | sort -u | while read l; do \
++              [ -f $(instroot)/lib/ncbi-blast+/$$l \
++                -o \! -f c++/BUILD/lib/$$l ]  || \
++                  cp -av c++/BUILD/lib/$$l c++/BUILD/lib.observed/; \
++          done; \
++          [ -n "$$(ls c++/BUILD/lib.observed)" ] || break; \
++          echo ------------------------------------------------------------; \
++          cp -a c++/BUILD/lib.observed/* $(instroot)/lib/ncbi-blast+; \
++          d=c++/BUILD/lib.observed; \
++      done
++
++override_dh_install-indep:
++      #if test -d $(leg_bin); then cp debian/legacy/legacy.sh $(leg_bin)/; fi
++      for x in blastall megablast blastpgp bl2seq rpsblast fastacmd formatdb \
++               seedtop; do \
++          sed -e "s/.{.*}/$$x/" debian/legacy/legacy.sh > $(leg_bin)/$$x; \
++          chmod +x $(leg_bin)/$$x; \
++      done
++
++NEW_MODULE = $(CURDIR)/c++/BUILD$(NATIVE)/build/new_module.sh
++override_dh_clean:
++      cp c++/src/util/lmdb/Makefile.orig c++/src/util/lmdb/Makefile.orig.save
++      cp c++/src/util/lmdbxx/Makefile.orig c++/src/util/lmdbxx/Makefile.orig.save
++      cp c++/src/util/lmdbxx/lmdb++.h.orig c++/src/util/lmdbxx/lmdb++.h.orig.save
++
++      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 \
++                  $(NEW_MODULE) $$mod purge_sources ; \
++              done ) ; \
++          ) ; \
++      done
++      -for x in c++/src/objtools/eutils/* ; do \
++          (cd "$$x"  && ( \
++              mods="`echo *.module`" ; \
++              [ "$${mods#*\*}" = "$$mods" ] || mods="`basename $$x`" ; \
++              for mod in $$mods ; do \
++                  $(NEW_MODULE) --dtd $$mod purge_sources ; \
++              done ) ; \
++          ) ; \
++      done
++      -cd c++/src/objtools/eutils/efetch  && \
++           $(NEW_MODULE) --xsd efetch purge_sources
++      rm -rf c++/compilers/dll c++/config.log c++/Makefile
++      rm -f c++/configure.lineno c++/src/objects/blastxml/blastxml.module
++      rm -f c++/include/common/ncbi_revision.h
++      find -name check_exec.pid -delete
++      rm -rf c++/BUILD c++/BUILD.native fakehome
++      mv configure.orig.save c++/configure.orig
++      mv c++/src/util/lmdb/Makefile.orig.save c++/src/util/lmdb/Makefile.orig
++      mv c++/src/util/lmdbxx/Makefile.orig.save c++/src/util/lmdbxx/Makefile.orig
++      mv c++/src/util/lmdbxx/lmdb++.h.orig.save c++/src/util/lmdbxx/lmdb++.h.orig
++
++%:
++      dh $@ --sourcedirectory=c++ --with-autoreconf
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..33c3a640d2a84306b6a8b5640692ac3481739e65
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,4 @@@
++---
++include:
++  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
++  - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..163aaf8d82b6c54f23c45f32895dbdfdcc27b047
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,1 @@@
++3.0 (quilt)
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..e34875345fd6f4e72ec9c165007a3dc43fbdaae6
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,6 @@@
++# Line length detection, nothing missing in source js files
++ncbi-blast+ source: source-is-missing *c++/src/html/ncbi_menu.js*
++ncbi-blast+ source: source-is-missing *c++/src/html/ncbi_menu_dnd.js*
++ncbi-blast+ source: source-is-missing *c++/src/html/ncbi_menu_dyn.js*
++# JSON not evil license, related code is not present
++ncbi-blast+ source: license-problem-json-evil *c++/include/misc/jsonwrapp/rapidjson11/license.txt*
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d0a83ea168226ed418b580fce3b0dc42197a991c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,2 @@@
++# Do not generate diff for changes in config.(sub|guess)
++extend-diff-ignore = "(^|/)config.(sub|guess)$"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..d2aa55ae1bbaa2cb56d22eb6b442c076893023a7
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++Tests: run-unit-test
++Depends: @
++Restrictions: allow-stderr
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7e48969bb7318c81c3670658697d6f462b2e8a3c
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,24 @@@
++#!/bin/bash
++set -e
++
++pkg="ncbi-blast+"
++
++if [ "$AUTOPKGTEST_TMP" = "" ] ; then
++  AUTOPKGTEST_TMP=$(mktemp -d /tmp/${pkg}-test.XXXXXX)
++  trap "rm -rf $AUTOPKGTEST_TMP" 0 INT QUIT ABRT PIPE TERM
++fi
++
++cp -a /usr/share/doc/${pkg}/examples/* $AUTOPKGTEST_TMP
++
++cd $AUTOPKGTEST_TMP
++find . -name "*.gz" -exec gunzip \{\} \;
++
++echo '---Creating Database--'
++/usr/bin/makeblastdb -in testdatabase.fa -parse_seqids -dbtype nucl -out testdb
++echo '---Searching Database for Hits---'
++/usr/bin/blastn -query test.fa -db testdb -task blastn -dust no -outfmt "7 qseqid sseqid evalue bitscore" -max_target_seqs 2
++echo '---Search and Fetch An Entry From Database---'
++/usr/bin/blastdbcmd -db testdb -entry gnl1 -out test_query.fa
++cat test_query.fa
++
++echo "PASS"
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..1b724cf9d16002b58124d9c8dfbf061820ef1e43
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,9 @@@
++Registry:
++ - Name: OMICtools
++   Entry: OMICS_01436
++ - Name: SciCrunch
++   Entry: SCR_004870
++ - Name: bio.tools
++   Entry: blast
++ - Name: conda:bioconda
++   Entry: blast
diff --cc debian/watch
index 0000000000000000000000000000000000000000,0000000000000000000000000000000000000000..7c2b95b1b88422d79452b3085e6dcfb3b61a7914
new file mode 100644 (file)
--- /dev/null
--- /dev/null
@@@ -1,0 -1,0 +1,3 @@@
++version=4
++opts=filenamemangle=s/.*\///;s/\+-src/-orig/;s/blast/blast+/,dversionmangle=s/\+ds//,repacksuffix=+ds \
++     https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-(.*)\+-src\.tar\.gz debian uupdate