* Link with libatomic on armhf too.
[dgit import unpatched ncbi-blast+ 2.16.0+ds-6+rpi1]
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++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.
--- /dev/null
--- /dev/null
++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".
--- /dev/null
--- /dev/null
++usr/bin
++var/lib/ncbi-blast+/db
--- /dev/null
--- /dev/null
--- /dev/null
--- /dev/null
++#!/bin/sh
++
++# Execute legacy blast
++exec legacy_blast ${0##*/} $@
--- /dev/null
--- /dev/null
++/usr/bin
--- /dev/null
--- /dev/null
++.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+
--- /dev/null
--- /dev/null
++usr/bin
++usr/lib/ncbi-blast+
--- /dev/null
--- /dev/null
++debian/ncbi-blast+.tests/*
--- /dev/null
--- /dev/null
++debian/*.1
--- /dev/null
--- /dev/null
++>gnl|MYDB|1 this is sequence 1
++GAATTCCCGCTACAGGGGGGGCCTGAGGCACTGCAGAAAGTGGGCCTGAGCCTCGAGGATGACGGTGCTGCAGGAACCCG
++TCCAGGCTGCTATATGGCAAGCACTAAACCACTATGCTTACCGAGATGCGGTTTTCCTCGCAGAACGCCTTTATGCAGAA
++GTACACTCAGAAGAAGCCTTGTTTTTACTGGCAACCTGTTATTACCGCTCAGGAAAGGCATATAAAGCATATAGACTCTT
++GAAAGGACACAGTTGTACTACACCGCAATGCAAATACCTGCTTGCAAAATGTTGTGTTGATCTCAGCAAGCTTGCAGAAG
++GGGAACAAATCTTATCTGGTGGAGTGTTTAATAAGCAGAAAAGCCATGATGATATTGTTACTGAGTTTGGTGATTCAGCT
++TGCTTTACTCTTTCATTGTTGGGACATGTATATTGCAAGACAGATCGGCTTGCCAAAGGATCAGAATGTTACCAAAAGAG
++CCTTAGTTTAAATCCTTTCCTCTGGTCTCCCTTTGAATCATTATGTGAAATAGGTGAAAAGCCAGATCCTGACCAAACAT
++TTAAATTCACATCTTTACAGAACTTTAGCAACTGTCTGCCCAACTCTTGCACAACACAAGTACCTAATCATAGTTTATCT
++CACAGACAGCCTGAGACAGTTCTTACGGAAACACCCCAGGACACAATTGAATTAAACAGATTGAATTTAGAATCTTCCAA
--- /dev/null
--- /dev/null
++>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
--- /dev/null
--- /dev/null
++--- 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__':
--- /dev/null
--- /dev/null
++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
++ }
++
++
--- /dev/null
--- /dev/null
++--- 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));
++
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++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+"$@"}
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++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)
++
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++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();
++
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++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)
--- /dev/null
--- /dev/null
++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())
++ {
--- /dev/null
--- /dev/null
++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));
--- /dev/null
--- /dev/null
++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 $
++ # ===========================================================================
++ #
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++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;
++ }
++ }
--- /dev/null
--- /dev/null
++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;
--- /dev/null
--- /dev/null
++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));
--- /dev/null
--- /dev/null
++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
--- /dev/null
--- /dev/null
++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");
++
--- /dev/null
--- /dev/null
++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)
++
--- /dev/null
--- /dev/null
++--- 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
++
--- /dev/null
--- /dev/null
++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)
--- /dev/null
--- /dev/null
++#!/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
--- /dev/null
--- /dev/null
++---
++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
--- /dev/null
--- /dev/null
++3.0 (quilt)
--- /dev/null
--- /dev/null
++# 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*
--- /dev/null
--- /dev/null
++# Do not generate diff for changes in config.(sub|guess)
++extend-diff-ignore = "(^|/)config.(sub|guess)$"
--- /dev/null
--- /dev/null
++Tests: run-unit-test
++Depends: @
++Restrictions: allow-stderr
--- /dev/null
--- /dev/null
++#!/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"
--- /dev/null
--- /dev/null
++Registry:
++ - Name: OMICtools
++ Entry: OMICS_01436
++ - Name: SciCrunch
++ Entry: SCR_004870
++ - Name: bio.tools
++ Entry: blast
++ - Name: conda:bioconda
++ Entry: blast
--- /dev/null
--- /dev/null
++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