From: Peter Michael Green Date: Sun, 12 Jan 2025 14:25:01 +0000 (+0000) Subject: ncbi-blast+ (2.16.0+ds-6+rpi1) trixie-staging; urgency=medium X-Git-Tag: archive/raspbian/2.16.0+ds-7+rpi1~24 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=6c288754cc711f2aaf24edcbf1ac661ff72ae3f8;p=ncbi-blast%2B.git ncbi-blast+ (2.16.0+ds-6+rpi1) trixie-staging; urgency=medium * Link with libatomic on armhf too. [dgit import unpatched ncbi-blast+ 2.16.0+ds-6+rpi1] --- 6c288754cc711f2aaf24edcbf1ac661ff72ae3f8 diff --cc debian/README.Debian index 00000000,00000000..ff4641b0 new file mode 100644 --- /dev/null +++ b/debian/README.Debian @@@ -1,0 -1,0 +1,10 @@@ ++blast+ for Debian ++--------------------- ++ ++ This package does not include the documentation of the software. Documentation is available online. ++ Detail is available: man ncbi-blast+ ++ Package does not include test binaries nor datatool and projet_tree_builder from upstream. ++ Those binaries are indeed for internal upstream use, and are of no use nor related to blast+ tool itself ++ (see Bug #642991 discussion with upstream answers) ++ ++ -- Olivier Sallou Wed, 27 Apr 2011 15:19:59 +0200 diff --cc debian/README.source index 00000000,00000000..85ca5993 new file mode 100644 --- /dev/null +++ b/debian/README.source @@@ -1,0 -1,0 +1,9 @@@ ++blast+ for Debian ++--------------------- ++ ++Lintian raises hardening no fortify warnings that are false positives. ++ ++ ++Test examples taken from http://www.ncbi.nlm.nih.gov/books/NBK52640/ ++ ++-- Canberk Koç Tue, 2 Aug 2016 03:30:33 +0300 diff --cc debian/changelog index 00000000,00000000..2cc15fcb new file mode 100644 --- /dev/null +++ b/debian/changelog @@@ -1,0 -1,0 +1,719 @@@ ++ncbi-blast+ (2.16.0+ds-6+rpi1) trixie-staging; urgency=medium ++ ++ * Link with libatomic on armhf too. ++ ++ -- Peter Michael Green 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Sun, 29 Sep 2019 21:57:31 -0400 ++ ++ncbi-blast+ (2.9.0-1) unstable; urgency=medium ++ ++ * New upstream release ++ ++ -- Olivier Sallou 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 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 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 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 Sat, 10 Feb 2018 17:35:31 +0000 ++ ++ncbi-blast+ (2.6.0-1) unstable; urgency=medium ++ ++ * New upstream release ++ ++ -- Olivier Sallou 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 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 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 Mon, 05 Dec 2016 23:16:54 -0500 ++ ++ncbi-blast+ (2.5.0-1) unstable; urgency=medium ++ ++ * New upstream release ++ ++ -- Olivier Sallou 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 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 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 Wed, 03 Aug 2016 21:40:00 -0400 ++ ++ncbi-blast+ (2.3.0-2) unstable; urgency=medium ++ ++ * Team upload. ++ * Autopkgtest added ++ ++ -- Canberk Koç 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 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 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 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 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 ++ * GCC break fix (recompile with gcc5, Closes: #793263). ++ ++ -- Olivier Sallou 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 Thu, 02 Jul 2015 16:22:39 -0400 ++ ++ncbi-blast+ (2.2.30-3) unstable; urgency=medium ++ ++ * Switch to unstable after unfreeze. ++ ++ -- Olivier Sallou 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 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 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 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 Sat, 07 Jun 2014 11:28:22 +0200 ++ ++ncbi-blast+ (2.2.29-1) unstable; urgency=medium ++ ++ * New upstream release ++ ++ -- Olivier Sallou 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 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 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 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 Mon, 24 Sep 2012 09:28:29 +0200 ++ ++ncbi-blast+ (2.2.27-1) unstable; urgency=low ++ ++ * New upstream release ++ ++ -- Olivier Sallou 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 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 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 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 Wed, 21 Dec 2011 15:47:04 +0100 ++ ++ncbi-blast+ (2.2.25-6) unstable; urgency=low ++ ++ * debian/control: ++ + Luca Capello , 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 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 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 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 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 Wed, 08 Jun 2011 21:42:52 -0400 ++ ++ncbi-blast+ (2.2.25-1) unstable; urgency=low ++ ++ * Initial release (Closes: #624394) ++ ++ -- Olivier Sallou Wed, 08 Jun 2011 00:15:15 +0200 diff --cc debian/control index 00000000,00000000..08ae5581 new file mode 100644 --- /dev/null +++ b/debian/control @@@ -1,0 -1,0 +1,60 @@@ ++Source: ncbi-blast+ ++Maintainer: Debian Med Packaging Team ++Uploaders: Olivier Sallou , ++ Andreas Tille , ++ Aaron M. Ucko ++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. diff --cc debian/copyright index 00000000,00000000..2453aa4c new file mode 100644 --- /dev/null +++ b/debian/copyright @@@ -1,0 -1,0 +1,211 @@@ ++Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ ++Upstream-Name: ncbi-blast+ ++Upstream-Contact: blastsoft@ncbi.nlm.nih.gov ++Files-Excluded: c++/src/build-system/project_tree_builder_gui/bin ++ ++Files: c++/* ++Copyright: NCBI ++License: PD ++ PUBLIC DOMAIN NOTICE ++ National Center for Biotechnology Information ++ . ++ This software/database is a "United States Government Work" under the ++ terms of the United States Copyright Act. It was written as part of ++ the author's official duties as a United States Government employee and ++ thus cannot be copyrighted. This software/database is freely available ++ to the public for use. The National Library of Medicine and the U.S. ++ Government have not placed any restriction on its use or reproduction. ++ . ++ Although all reasonable efforts have been taken to ensure the accuracy ++ and reliability of the software and data, the NLM and the U.S. ++ Government do not and cannot warrant the performance or results that ++ may be obtained by using this software or data. The NLM and the U.S. ++ Government disclaim all warranties, express or implied, including ++ warranties of performance, merchantability or fitness for any particular ++ purpose. ++ . ++ Please cite the author in any work or product based on this material. ++ ++Files: c++/src/connect/mbedtls/* ++Copyright: 2006-2015, ARM Limited, All Rights Reserved ++License: Apache-2.0 ++ Licensed under the Apache License, Version 2.0 (the "License"); you may ++ not use this file except in compliance with the License. ++ You may obtain a copy of the License at ++ . ++ http://www.apache.org/licenses/LICENSE-2.0 ++ . ++ Unless required by applicable law or agreed to in writing, software ++ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT ++ WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ See the License for the specific language governing permissions and ++ limitations under the License. ++ . ++ On Debian systems, the full text of the Apache License, Version 2.0 can be ++ found in the file `/usr/share/common-licenses/Apache-2.0'. ++ ++Files: c++/src/html/ncbi_menu.js ++ c++/src/html/ncbi_menu_dnd.js ++ c++/src/html/ncbi_menu_dyn.js ++Copyright: 1997 Gary Smith ++ 1997-1999 Netscape Communications Corp. ++License: Netscape ++ Netscape grants you a royalty free license to use or modify this ++ software provided that this copyright notice appears on all copies. ++ This software is provided "AS IS," without a warranty of any kind. ++ ++Files: c++/*/util/compress/zlib/* ++Copyright: 1995-2004 Jean-loup Gailly and Mark Adler ++License: BSD-3-clause ++ This software is provided 'as-is', without any express or implied ++ warranty. In no event will the authors be held liable for any damages ++ arising from the use of this software. ++ . ++ Permission is granted to anyone to use this software for any purpose, ++ including commercial applications, and to alter it and redistribute it ++ freely, subject to the following restrictions: ++ . ++ 1. The origin of this software must not be misrepresented; you must not ++ claim that you wrote the original software. If you use this software ++ in a product, an acknowledgment in the product documentation would be ++ appreciated but is not required. ++ 2. Altered source versions must be plainly marked as such, and must not be ++ misrepresented as being the original software. ++ 3. This notice may not be removed or altered from any source distribution. ++ ++Files: c++/*/util/regexp/* ++Copyright: 1997-2009 University of Cambridge ++ 2008-2009 Google Inc ++License: BSD-4-clause ++ ++Files: c++/*/util/compress/bzip2/* ++Copyright: 1996-2002 Julian R Seward ++License: BSD-4-clause ++ ++License: BSD-4-clause ++ Redistribution and use in source and binary forms, with or without ++ modification, are permitted provided that the following conditions ++ are met: ++ 1. Redistributions of source code must retain the above copyright ++ notice, this list of conditions and the following disclaimer. ++ 2. The origin of this software must not be misrepresented; you must ++ not claim that you wrote the original software. If you use this ++ software in a product, an acknowledgment in the product ++ documentation would be appreciated but is not required. ++ 3. Altered source versions must be plainly marked as such, and must ++ not be misrepresented as being the original software. ++ 4. The name of the author may not be used to endorse or promote ++ products derived from this software without specific prior written ++ permission. ++ . ++ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS ++ OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY ++ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE ++ GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ++ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING ++ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ ++Files: c++/src/build-system/config.*s* ++Copyright: 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc ++License: GPL-2 ++ ++Files: c++/src/build-system/m4/ax_jni_include_dir.m4 ++Copyright: 2008 Don Anderson ++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 ++ . ++ 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 ++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 ++ . ++ On Debian systems, the complete text of the GNU General ++ Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". diff --cc debian/dirs index 00000000,00000000..2b9d1904 new file mode 100644 --- /dev/null +++ b/debian/dirs @@@ -1,0 -1,0 +1,2 @@@ ++usr/bin ++var/lib/ncbi-blast+/db diff --cc debian/docs index 00000000,00000000..e69de29b new file mode 100644 --- /dev/null +++ b/debian/docs diff --cc debian/legacy/legacy.sh index 00000000,00000000..dba6d0ca new file mode 100755 --- /dev/null +++ b/debian/legacy/legacy.sh @@@ -1,0 -1,0 +1,4 @@@ ++#!/bin/sh ++ ++# Execute legacy blast ++exec legacy_blast ${0##*/} $@ diff --cc debian/ncbi-blast+-legacy.dirs index 00000000,00000000..415f082d new file mode 100644 --- /dev/null +++ b/debian/ncbi-blast+-legacy.dirs @@@ -1,0 -1,0 +1,1 @@@ ++/usr/bin diff --cc debian/ncbi-blast+.1 index 00000000,00000000..fe9e0c35 new file mode 100644 --- /dev/null +++ b/debian/ncbi-blast+.1 @@@ -1,0 -1,0 +1,33 @@@ ++.TH ncbi-blast+ 1 "April 29, 2011" "version 2.2.25" "USER COMMANDS" ++.SH NAME ++ncbi-blast+ \- NCBI command tools for BLAST+ ++.SH ONELINE DOCUMENTATION ++.B BLAST+ documentation is available online at http://www.ncbi.nlm.nih.gov/books/NBK1763/ ++.PP ++.SH DESCRIPTION ++The NCBI BLAST+ is a group of tools for basic alignment search. BLAST+ ++ is a rewrite of BLAST with new features and performance improvements. ++BLAST+ commands differ from original BLAST. For BLAST users, one should read ++ the BLAST USERS paragraph. ++.PP ++.SH CONFIGURATION ++BLAST+ uses the BLASTDB environment variable to get default db directory. ++It is possible to update the file /etc/ncbi/.ncbirc to add the following: ++.B [BLAST] ++.B BLASTDB=/var/lib/ncbi-blast+/db ++.SH BLAST USERS ++The easiest way to get started using these command line applications is ++ by means of the legacy_blast.pl PERL script which is bundled along with ++ the BLAST+ applications. ++To utilize this script, simply prefix it to the invocation of the C toolkit ++ BLAST command line application and append the --path option pointing to the ++installation directory of the BLAST+ applications. For example, instead of using ++ ++.B blastall -i query -d nr -o blast.out ++use ++.B legacy_blast.pl blastall -i query -d nr -o blast.out --path /usr/bin ++ ++.PP ++.SH AUTHOR ++Olivier Sallou (olivier.sallou (at) irisa.fr) - Man page and packaging ++NCBI - BLAST+ diff --cc debian/ncbi-blast+.dirs index 00000000,00000000..32fdc473 new file mode 100644 --- /dev/null +++ b/debian/ncbi-blast+.dirs @@@ -1,0 -1,0 +1,2 @@@ ++usr/bin ++usr/lib/ncbi-blast+ diff --cc debian/ncbi-blast+.examples index 00000000,00000000..e5da4986 new file mode 100644 --- /dev/null +++ b/debian/ncbi-blast+.examples @@@ -1,0 -1,0 +1,1 @@@ ++debian/ncbi-blast+.tests/* diff --cc debian/ncbi-blast+.manpages index 00000000,00000000..0f651869 new file mode 100644 --- /dev/null +++ b/debian/ncbi-blast+.manpages @@@ -1,0 -1,0 +1,1 @@@ ++debian/*.1 diff --cc debian/ncbi-blast+.tests/test.fa index 00000000,00000000..6db78dd5 new file mode 100644 --- /dev/null +++ b/debian/ncbi-blast+.tests/test.fa @@@ -1,0 -1,0 +1,10 @@@ ++>gnl|MYDB|1 this is sequence 1 ++GAATTCCCGCTACAGGGGGGGCCTGAGGCACTGCAGAAAGTGGGCCTGAGCCTCGAGGATGACGGTGCTGCAGGAACCCG ++TCCAGGCTGCTATATGGCAAGCACTAAACCACTATGCTTACCGAGATGCGGTTTTCCTCGCAGAACGCCTTTATGCAGAA ++GTACACTCAGAAGAAGCCTTGTTTTTACTGGCAACCTGTTATTACCGCTCAGGAAAGGCATATAAAGCATATAGACTCTT ++GAAAGGACACAGTTGTACTACACCGCAATGCAAATACCTGCTTGCAAAATGTTGTGTTGATCTCAGCAAGCTTGCAGAAG ++GGGAACAAATCTTATCTGGTGGAGTGTTTAATAAGCAGAAAAGCCATGATGATATTGTTACTGAGTTTGGTGATTCAGCT ++TGCTTTACTCTTTCATTGTTGGGACATGTATATTGCAAGACAGATCGGCTTGCCAAAGGATCAGAATGTTACCAAAAGAG ++CCTTAGTTTAAATCCTTTCCTCTGGTCTCCCTTTGAATCATTATGTGAAATAGGTGAAAAGCCAGATCCTGACCAAACAT ++TTAAATTCACATCTTTACAGAACTTTAGCAACTGTCTGCCCAACTCTTGCACAACACAAGTACCTAATCATAGTTTATCT ++CACAGACAGCCTGAGACAGTTCTTACGGAAACACCCCAGGACACAATTGAATTAAACAGATTGAATTTAGAATCTTCCAA diff --cc debian/ncbi-blast+.tests/testdatabase.fa index 00000000,00000000..844ac1db new file mode 100644 --- /dev/null +++ b/debian/ncbi-blast+.tests/testdatabase.fa @@@ -1,0 -1,0 +1,29 @@@ ++>gnl1 ++GAATTCCCGCTACAGGGGGGGCCTGAGGCACTGCAGAAAGTGGGCCTGAGCCTCGAGGATGACGGTGCTGCAGGAACCCG ++TCCAGGCTGCTATATGGCAAGCACTAAACCACTATGCTTACCGAGATGCGGTTTTCCTCGCAGAACGCCTTTATGCAGAA ++GTACACTCAGAAGAAGCCTTGTTTTTACTGGCAACCTGTTATTACCGCTCAGGAAAGGCATATAAAGCATATAGACTCTT ++GAAAGGACACAGTTGTACTACACCGCAATGCAAATACCTGCTTGCAAAATGTTGTGTTGATCTCAGCAAGCTTGCAGAAG ++GGGAACAAATCTTATCTGGTGGAGTGTTTAATAAGCAGAAAAGCCATGATGATATTGTTACTGAGTTTGGTGATTCAGCT ++TGCTTTACTCTTTCATTGTTGGGACATGTATATTGCAAGACAGATCGGCTTGCCAAAGGATCAGAATGTTACCAAAAGAG ++CCTTAGTTTAAATCCTTTCCTCTGGTCTCCCTTTGAATCATTATGTGAAATAGGTGAAAAGCCAGATCCTGACCAAACAT ++TTAAATTCACATCTTTACAGAACTTTAGCAACTGTCTGCCCAACTCTTGCACAACACAAGTACCTAATCATAGTTTATCT ++CACAGACAGCCTGAGACAGTTCTTACGGAAACACCCCAGGACACAATTGAATTAAACAGATTGAATTTAGAATCTTCCAA ++>gnl2 ++GAATTCCCGCTACAGGGGGGGCCTGAGGCACTGCAGAAAGTGGGCCTGAGCCTCGAGGATGACGGTGCTGCAGGAACCCG ++TCCAGGCTGCTATATGGCAAGCACTAAACCACTATGCTTACCGAGATGCGGTTTTCCTCGCAGAACGCCTTTATGCAGAA ++GTACACTCAGAAGAAGCCTTGTTTTTACTGGCAACCTGTTATTACCGCTCAGGAAAGGCATATAAAGCATATAGACTCTT ++GAAAGGACACAGTTGTACTACACCGCAATGCAAATACCTGCTTGCAAAATGTTGTGTTGATCTCAGCAAGCTTGCAGAAG ++GGGAACAAATCTTATCTGGTGGAGTGTTTAATAAGCAGAAAAGCCATGATGATATTGTTACTGAGTTTGGTGATTCAGCT ++TGCTTTACTCTTTCATTGTTGGGACATGTATATTGCAAGACAGATCGGCTTGCCAAAGGATCAGAATGTTACCAAAAGAG ++CCTTAGTTTAAATCCTTTCCTCTGGTCTCCCTTTGAATCATTATGTGAAATAGGTGAAAAGCCAGATCCTGACCAAACAT ++TTAAATTCACATCTTTACAGAACTTTAGCAACTGTCTGCCCAACTCTTGCACAACACAAGTACCTAATCATAGTTTATCT ++CACAGACAGCCTGAGACAGTTCTTACGGAAACACCCCAGGACACAATTGAATTAAACAGATTGAATTTAGAATCTTCCAA ++>gnl3 ++GAATTCCCGCTACAGGGGGGGCCTGAGGCACTGCAGAAAGTGGGCCTGAGCCTCGAGGATGACGGTGCTGCAGGAACCCG ++TCCAGGCTGCTATATGGCAAGCACTAAACCACTATGCTTACCGAGATGCGGTTTTCCTCGCAGAACGCCTTTATGCAGAA ++GTACACTCAGAAGAAGCCTTGTTTTTACTGGCAACCTGTTATTACCGCTCAGGAAAGGCATATAAAGCATATAGACTCTT ++GAAAGGACACAGTTGTACTACACCGCAATGCAAATACCTGCTTGCAAAATGTTGTGTTGATCTCAGCAAGCTTGCAGAAG ++GGGAACAAATCTTATCTGGTGGAGTGTTTAATAAGCAGAAAAGCCATGATGATATTGTTACTGAGTTTGGTGATTCAGCT ++TGCTTTACTCTTTCATTGTTGGGACATGTATATTGCAAGACAGATCGGCTTGCCAAAGGATCAGAATGTTACCAAAAGAG ++CCTTAGTTTAAATCCTTTCCTCTGGTCTCCCTTTGAATCATTATGTGAAATAGGTGAAAAGCCAGATCCTGACCAAACAT ++TTAAATTCACATCTTTACAGAACTTTAGCAACTGTCTGCCCAACTCTTGCACAACACAAGTACCTAATCATAGTTTATCT diff --cc debian/patches/2to3 index 00000000,00000000..18f1bd62 new file mode 100644 --- /dev/null +++ b/debian/patches/2to3 @@@ -1,0 -1,0 +1,48 @@@ ++--- a/c++/src/app/winmasker/windowmasker_2.2.22_adapter.py (original) +++++ b/c++/src/app/winmasker/windowmasker_2.2.22_adapter.py (refactored) ++@@ -79,7 +79,7 @@ ++ while True: ++ if arg_pos >= len( sys.argv ): break ++ arg = sys.argv[arg_pos] ++- if arg not in old_wm_opt_info.keys(): tmpres.append( arg ) +++ if arg not in list(old_wm_opt_info.keys()): tmpres.append( arg ) ++ else: ++ if arg == '-convert': ++ arg_pos += 1 ++@@ -159,7 +159,7 @@ ++ elif state == 'copy': ++ result.append( arg ) ++ state = 'check' ++- elif arg in old_wm_opt_info.keys(): +++ elif arg in list(old_wm_opt_info.keys()): ++ if arg in excludes[wm_mode]: ++ if not old_wm_opt_info[arg]: state = 'skip' ++ else: ++@@ -172,13 +172,13 @@ ++ global HELP_STR ++ mode = 'exec' ++ if len( sys.argv ) <= 1: ++- print HELP_STR +++ print(HELP_STR) ++ return ++ else: ++ if sys.argv[1] == '--print-only': ++ mode = 'print' ++ if len( sys.argv ) <= 2: ++- print HELP_STR +++ print(HELP_STR) ++ return ++ else: ++ wm_name = sys.argv[2] ++@@ -188,9 +188,9 @@ ++ start_idx = 1 ++ new_args = process( start_idx ) ++ result_str = wm_name + ' ' + ' '.join( new_args ) ++- if mode == 'print': print result_str +++ if mode == 'print': print(result_str) ++ else: ++- print 'running "' + result_str + '"' +++ print('running "' + result_str + '"') ++ os.system( result_str ) ++ ++ if __name__ == '__main__': diff --cc debian/patches/allow_pcre2 index 00000000,00000000..0472bde0 new file mode 100644 --- /dev/null +++ b/debian/patches/allow_pcre2 @@@ -1,0 -1,0 +1,372 @@@ ++From d615c51fb9fe6172a84feea47906abd164198fd5 Mon Sep 17 00:00:00 2001 ++From: ucko ++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 ], ++ [[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_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 ++ #include ++ #include ++-#include ++-#define PCRE_FLAG(x) PCRE_##x +++#ifdef HAVE_LIBPCRE2 +++# define PCRE2_CODE_UNIT_WIDTH 8 +++# include +++# define PCRE_FLAG(x) PCRE2_##x +++#else +++# include +++# define PCRE_FLAG(x) PCRE_##x +++#endif ++ ++ #include ++ #include ++@@ -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 ++ } ++ ++ diff --cc debian/patches/big_endian_workaround index 00000000,00000000..452d4052 new file mode 100644 --- /dev/null +++ b/debian/patches/big_endian_workaround @@@ -1,0 -1,0 +1,34 @@@ ++--- a/c++/src/app/blastdb/makeblastdb.cpp +++++ b/c++/src/app/blastdb/makeblastdb.cpp ++@@ -293,7 +293,13 @@ void CMakeBlastDBApp::Init() ++ arg_desc->AddDefaultKey("blastdb_version", "version", ++ "Version of BLAST database to be created", ++ CArgDescriptions::eInteger, ++- NStr::NumericToString(static_cast(eBDB_Version5))); +++ NStr::NumericToString(static_cast +++#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(eBDB_Version5))); +++ NStr::NumericToString(static_cast +++#ifdef WORDS_BIGENDIAN +++ (eBDB_Version4) +++#else +++ (eBDB_Version5) +++#endif +++ )); ++ arg_desc->SetConstraint("blastdb_version", ++ new CArgAllow_Integers(eBDB_Version4, eBDB_Version5)); ++ diff --cc debian/patches/enable_clean_after_failed_compile index 00000000,00000000..96b9b268 new file mode 100644 --- /dev/null +++ b/debian/patches/enable_clean_after_failed_compile @@@ -1,0 -1,0 +1,16 @@@ ++Subject: clean after failure ++Description: Enable clean ++Author: Tim Booth ++Last-Updated: 2013-06-01 ++Forwarded: no ++--- a/c++/src/build-system/new_module.sh.in +++++ b/c++/src/build-system/new_module.sh.in ++@@ -203,7 +203,7 @@ if test -z "$datatool"; then # keep look ++ if test -n "$DYLD_LIBRARY_PATH"; then ++ wrapper="DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH" ++ fi ++- else +++ elif [ "$1" != "purge_sources" ] ; then ++ echo "Unable to find datatool." >&2 ++ exit 2 ++ fi diff --cc debian/patches/fix_configure index 00000000,00000000..c360ef0d new file mode 100644 --- /dev/null +++ b/debian/patches/fix_configure @@@ -1,0 -1,0 +1,14 @@@ ++Subject: fix path for debian build ++Description: Debian build is not done in configure directory, ++ need to update way to get relative configure.orig script ++Author: Olivier Sallou ++Forwarded: no ++Last-Updated: 2014-06-06 ++--- a/c++/configure.orig +++++ b/c++/configure.orig ++@@ -1,3 +1,4 @@ ++ #!/bin/sh ++-srcdir=`dirname $0` +++srcdir=$(readlink -f $0) +++srcdir=`dirname $srcdir` ++ exec $srcdir/src/build-system/configure --srcdir=$srcdir ${1+"$@"} diff --cc debian/patches/fix_lib_deps index 00000000,00000000..bcdf0fa2 new file mode 100644 --- /dev/null +++ b/debian/patches/fix_lib_deps @@@ -1,0 -1,0 +1,797 @@@ ++Subject: ensure that all libraries link against all direct dependencies ++ ++ * src/**/Makefile.*.lib: set DLL_(D)LIB correctly. Break the dependency ++ loop between libxblast and libxalgoblastdbindex by having the former ++ provide only the C++ BLAST API, leaving the C core only in libblast. ++ * src/build-system/library_relations.txt: Change xblast's ++ relationship to blast from includes to needs, accordingly. ++ * src/algo/blast/Makefile.blast_macros.mk: Add blast to BLAST_LIBS. ++ * src/algo/blast/dbindex*/*/Makefile.*.app: Link against libxconnect ++ rather than libconnect for consistency with libblast, which uses the ++ former to keep the aforementioned cycle-breaking from causing ++ inconsistency elsewhere. ++ ++Debian-Bug: 633567. ++Author: Aaron M. Ucko ++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 diff --cc debian/patches/fix_unit_tests index 00000000,00000000..4687884f new file mode 100644 --- /dev/null +++ b/debian/patches/fix_unit_tests @@@ -1,0 -1,0 +1,16 @@@ ++Subject: add missing lib for tests ++Description: unit_test need blast lib to compile ++Forwarded: Not-Needed ++Author: Olivier Sallou ++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) ++ diff --cc debian/patches/hurd_fixes index 00000000,00000000..884c030e new file mode 100644 --- /dev/null +++ b/debian/patches/hurd_fixes @@@ -1,0 -1,0 +1,53 @@@ ++Subject: fix portability issues that led to Hurd build failures ++ ++* src/build-system/configure(.ac): ++ - Reflect the Hurd's support for -Wl,rpath,... . ++* src/connect/ncbi_socket_cxx.cpp, src/connect/ext/ncbi_localnet.c: ++ cope with missing PATH_MAX everywhere, not just under Windows. ++ ++Author: Aaron M. Ucko ++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 ++ #include // 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 diff --cc debian/patches/legacy_rename_rpsblast index 00000000,00000000..f40204b1 new file mode 100644 --- /dev/null +++ b/debian/patches/legacy_rename_rpsblast @@@ -1,0 -1,0 +1,14 @@@ ++Author: Olivier Sallou ++Description: rename binary as blast+ for package coherency. ++Last-Updated: 2011-10-03 ++--- a/c++/src/app/blast/legacy_blast.pl +++++ b/c++/src/app/blast/legacy_blast.pl ++@@ -1064,7 +1064,7 @@ ++ if (defined $opt_p and $opt_p =~ /f/i) { ++ $retval .= "/rpstblastn"; ++ } else { ++- $retval .= "/rpsblast"; +++ $retval .= "/rpsblast+"; ++ } ++ $retval .= &add_exe_extension(); ++ diff --cc debian/patches/no_multiarch_rpath index 00000000,00000000..8423cd88 new file mode 100644 --- /dev/null +++ b/debian/patches/no_multiarch_rpath @@@ -1,0 -1,0 +1,32 @@@ ++Subject: avoid redundant rpath entries on multiarch systems ++ ++ * src/build-system/configure(.ac): when ensuring that executables ++ will be able to find libstdc++, don't add rpath entries that files ++ under /etc/ld.so.conf.d already specify, even if they don't resemble ++ traditional single-architecture or biarch locations. ++ ++Debian-Bug: 633567. ++Author: Aaron M. Ucko ++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 diff --cc debian/patches/optin_usage_report index 00000000,00000000..8a73c3f8 new file mode 100644 --- /dev/null +++ b/debian/patches/optin_usage_report @@@ -1,0 -1,0 +1,47 @@@ ++Subject: blast+ use optout to send usage reports over internet ++Description: this patch change strategy to optin ie user asks ++ per config/env vars to send reports, else it is disabled by default. ++ Not a bug by itself but default strategy update to send info over internet. ++Author: Olivier Sallou ++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) diff --cc debian/patches/optionally_keep_sequence index 00000000,00000000..0b48dc46 new file mode 100644 --- /dev/null +++ b/debian/patches/optionally_keep_sequence @@@ -1,0 -1,0 +1,29 @@@ ++Author: Aaron M. Ucko ++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 & 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()) ++ { diff --cc debian/patches/reprobuild index 00000000,00000000..2206de50 new file mode 100644 --- /dev/null +++ b/debian/patches/reprobuild @@@ -1,0 -1,0 +1,621 @@@ ++Author: Michael R. Crusoe ++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 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 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 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 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 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("< ++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 $ ++ # =========================================================================== ++ # diff --cc debian/patches/series index 00000000,00000000..d754932e new file mode 100644 --- /dev/null +++ b/debian/patches/series @@@ -1,0 -1,0 +1,23 @@@ ++system_mbedtls_only ++support_mbedtls3 ++allow_pcre2 ++optin_usage_report ++enable_clean_after_failed_compile ++hurd_fixes ++legacy_rename_rpsblast ++fix_lib_deps ++no_multiarch_rpath ++use_pie_for_apps ++skip_services_unit_test ++fix_configure ++support_x32 ++suppress_tls_version_checks ++optionally_keep_sequence ++fix_unit_tests ++# reprobuild ++spelling ++support_gcc10 ++run_perl_directly ++tune_lmdb_defaults ++2to3 ++big_endian_workaround diff --cc debian/patches/skip_services_unit_test index 00000000,00000000..309f9443 new file mode 100644 --- /dev/null +++ b/debian/patches/skip_services_unit_test @@@ -1,0 -1,0 +1,16 @@@ ++Subject: remove network required test ++Author: Tim Booth ++Forwarded: no ++Description: test require internet connection ++Last-Updated: 2013-06-01 ++--- a/c++/src/objtools/blast/services/unit_test/Makefile.blast_services_unit_test.app +++++ b/c++/src/objtools/blast/services/unit_test/Makefile.blast_services_unit_test.app ++@@ -12,6 +12,7 @@ LIB = test_boost blast_services xnetblas ++ LIBS = $(BLAST_THIRD_PARTY_LIBS) $(NETWORK_LIBS) $(CMPRS_LIBS) $(DL_LIBS) \ ++ $(ORIG_LIBS) ++ ++-CHECK_CMD = blast_services_unit_test +++# This test requires an internet connection, shouldn't be run on a build server +++# CHECK_CMD = blast_services_unit_test ++ ++ WATCHERS = madden camacho diff --cc debian/patches/spelling index 00000000,00000000..c5335527 new file mode 100644 --- /dev/null +++ b/debian/patches/spelling @@@ -1,0 -1,0 +1,185 @@@ ++From: Michael R. Crusoe ++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\ts\tBotanic Garden Meise\t\t\t", ++-"BR\tc\tJohanna Dobereiner Biological Resouce Center (CRB-JD)\t\t\t", +++"BR\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 s Botanic Garden Meise ++-BR c Johanna Dobereiner Biological Resouce Center (CRB-JD) +++BR 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("< 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; ++ } ++ } diff --cc debian/patches/support_gcc10 index 00000000,00000000..9af97f4b new file mode 100644 --- /dev/null +++ b/debian/patches/support_gcc10 @@@ -1,0 -1,0 +1,20 @@@ ++Author: Aaron M. Ucko ++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(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; diff --cc debian/patches/support_mbedtls3 index 00000000,00000000..35195419 new file mode 100644 --- /dev/null +++ b/debian/patches/support_mbedtls3 @@@ -1,0 -1,0 +1,222 @@@ ++From 4395feafcadc4b74f749ce421a530922e5f58047 Mon Sep 17 00:00:00 2001 ++From: ucko ++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 ++ # include ++ # include +++# include ++ ++ # 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 ++ #include ++ +++#include +++ ++ 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(pkey.data()), pkey.size() + 1, nullptr, 0); +++ auto pk_rv = mbedtls_pk_parse_key( +++ &m_Pkey, reinterpret_cast(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)); diff --cc debian/patches/support_x32 index 00000000,00000000..7e166d8c new file mode 100644 --- /dev/null +++ b/debian/patches/support_x32 @@@ -1,0 -1,0 +1,16 @@@ ++Author: Aaron M. Ucko ++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 diff --cc debian/patches/suppress_tls_version_checks index 00000000,00000000..6669ec04 new file mode 100644 --- /dev/null +++ b/debian/patches/suppress_tls_version_checks @@@ -1,0 -1,0 +1,43 @@@ ++Author: Aaron M. Ucko ++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"); ++ diff --cc debian/patches/system_mbedtls_only index 00000000,00000000..2f381dd5 new file mode 100644 --- /dev/null +++ b/debian/patches/system_mbedtls_only @@@ -1,0 -1,0 +1,76 @@@ ++Author: Aaron M. Ucko ++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 +++#include +++#include +++#include ++ ++ #include ++ ++--- 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 ++ # include ++ # include ++@@ -53,17 +52,6 @@ ++ # include ++ # include ++ # include ++-# 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) ++ diff --cc debian/patches/tune_lmdb_defaults index 00000000,00000000..080d9b56 new file mode 100644 --- /dev/null +++ b/debian/patches/tune_lmdb_defaults @@@ -1,0 -1,0 +1,14 @@@ ++--- a/c++/include/objtools/blast/seqdb_writer/writedb_lmdb.hpp +++++ b/c++/include/objtools/blast/seqdb_writer/writedb_lmdb.hpp ++@@ -52,7 +52,11 @@ BEGIN_NCBI_SCOPE ++ #define DEFAULT_LMDB_MAP_SIZE 500000 ++ #define DEFAULT_TAXID_MAP_SIZE 500000 ++ #else +++#ifdef __mips__ +++#define DEFAULT_LMDB_MAP_SIZE (640 * 1024 * 1024) +++#else ++ #define DEFAULT_LMDB_MAP_SIZE 700000000 +++#endif ++ #define DEFAULT_TAXID_MAP_SIZE 300000000 ++ #endif ++ diff --cc debian/patches/use_pie_for_apps index 00000000,00000000..139a8580 new file mode 100644 --- /dev/null +++ b/debian/patches/use_pie_for_apps @@@ -1,0 -1,0 +1,29 @@@ ++Subject: build executables with -fPIE, not -fPIC ++ ++* -fPIC is only useful for shared libraries; substitute -fPIE (along ++ with -pie at link time) when building executables. ++ ++Author: Aaron M. Ucko ++Last-Update: 2012-05-10 ++--- a/c++/src/build-system/Makefile.app.in +++++ b/c++/src/build-system/Makefile.app.in ++@@ -25,8 +25,8 @@ default_rule: all ++ ### C/C++ source file compilation setup ++ ++ CPPFLAGS += -DNCBI_APP_BUILT_AS=$(APP) ++-CXXFLAGS_ALL = @f_compile@ $(CXXFLAGS) $(LOCAL_CPPFLAGS) $(CPPFLAGS) ++-CFLAGS_ALL = @f_compile@ $(CFLAGS) $(LOCAL_CPPFLAGS) $(CPPFLAGS) +++CXXFLAGS_ALL = @f_compile@ $(CXXFLAGS:-fPIC=-fPIE) $(LOCAL_CPPFLAGS) $(CPPFLAGS) +++CFLAGS_ALL = @f_compile@ $(CFLAGS:-fPIC=-fPIE) $(LOCAL_CPPFLAGS) $(CPPFLAGS) ++ SOURCES = @UNIX_SRC@ $(SRC) ++ ++ ### Standard application build rules ++@@ -59,7 +59,7 @@ PROJ_TYPE = app ++ include $(builddir)/Makefile.$(Rules) ++ ++ CMD_BASE = $(LINK_WRAPPER) $(LINK) ++-CMD_BASEARGS = $(LDFLAGS) $(APP_LDFLAGS) $(XOBJ) $(XOBJ2) $(PRE_LIBS) +++CMD_BASEARGS = $(LDFLAGS) $(APP_LDFLAGS) -fPIE -pie $(XOBJ) $(XOBJ2) $(PRE_LIBS) ++ CMD_TAIL = @f_outexe@$(XAPP) $(LINK_FILTER) ++ CMD_ARGS = $(CMD_BASEARGS) $(XLIB) $(XAPP_LIBS) ++ CMD_ARGS2 = $(CMD_BASEARGS) $(XLIB2) $(XAPP_LIBS2) diff --cc debian/rules index 00000000,00000000..558fd737 new file mode 100755 --- /dev/null +++ b/debian/rules @@@ -1,0 -1,0 +1,210 @@@ ++#!/usr/bin/make -f ++# -*- makefile -*- ++ ++include /usr/share/dpkg/architecture.mk ++ ++# Uncomment this to turn on verbose mode. ++#export DH_VERBOSE=1 ++ ++export HOME=$(CURDIR)/fakehome ++ ++NUMJOBS=1 ++ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) ++ ifneq (sh4,$(DEB_BUILD_ARCH)) ++ NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) ++ endif ++endif ++ ++DEB_CONFIGURE_COMMON_FLAGS=--without-autodep --without-makefile-auto-update \ ++ --with-flat-makefile --without-caution --without-dbapi --without-lzo \ ++ --without-debug --without-downloaded-vdb --without-sse42 ++DEB_CONFIGURE_EXTRA_FLAGS=$(DEB_CONFIGURE_COMMON_FLAGS) --with-dll --with-mt \ ++ --with-runpath=/usr/lib/ncbi-blast+ --with-build-root=BUILD \ ++ --with-mbedtls --with-pcre2 ++ ++proj=algo/blast/ app/ objmgr/ objtools/align_format/ objtools/blast/ ++ ++#ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) ++DEB_CONFIGURE_EXTRA_FLAGS += --without-strip --with-symbols ++#endif ++ ++#export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie ++export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie reproducible=-timeless ++export DEB_CFLAGS_MAINT_APPEND=-Wall -pedantic ++ ++ifeq ($(DEB_HOST_ARCH_BITS),32) ++ ifeq (,$(filter %i386 x32,$(DEB_HOST_ARCH))) ++ export LIBS=-latomic ++ endif ++endif ++ ++ifeq (alpha,$(DEB_HOST_ARCH)) ++ export DEB_CFLAGS_MAINT_APPEND += -fsection-anchors ++ export DEB_CXXFLAGS_MAINT_APPEND += -fsection-anchors ++endif ++ifeq (hppa,$(DEB_HOST_ARCH)) ++ export DEB_CFLAGS_MAINT_APPEND += -ffunction-sections ++ export DEB_CXXFLAGS_MAINT_APPEND += -ffunction-sections ++endif ++# Down to mips64el in practice, but easy enough to generalize ++ifneq (,$(findstring mips,$(DEB_HOST_ARCH))) ++ export DEB_CFLAGS_MAINT_APPEND += -mxgot ++ export DEB_CXXFLAGS_MAINT_APPEND += -mxgot ++endif ++ ++include /usr/share/dpkg/buildflags.mk ++ ++ifneq (,$(filter mips%,$(DEB_HOST_ARCH))) ++CXXFLAGS := $(CXXFLAGS:-O%=-O) ++DEB_CONFIGURE_EXTRA_FLAGS += FAST_CXXFLAGS=-O ++endif ++ifeq (sh4,$(DEB_HOST_ARCH)) ++DEB_CONFIGURE_COMMON_FLAGS += --without-optimization ++endif ++ ++export CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MAKE ++ ++# used for run_with_lock ++DEB_CONFIGURE_COMMON_FLAGS += CFLAGS_FOR_BUILD="$(CFLAGS) -fPIE" ++DEB_CONFIGURE_COMMON_FLAGS += LDFLAGS_FOR_BUILD="$(LDFLAGS)" ++ ++ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH)) ++NATIVE=.native ++DEB_CONFIGURE_EXTRA_FLAGS += --build=$(DEB_BUILD_GNU_TYPE) \ ++ --host=$(DEB_HOST_GNU_TYPE) ++NATIVE_BINDIR=$(CURDIR)/c++/BUILD$(NATIVE)/bin ++PREBUILT_DATATOOL_EXE=$(NATIVE_BINDIR)/datatool ++PREBUILT_PTB_EXE=$(NATIVE_BINDIR)/project_tree_builder ++export PREBUILT_DATATOOL_EXE PREBUILT_PTB_EXE ++ ++$(PREBUILT_DATATOOL_EXE): ++ cd c++ && PREBUILT_PTB_EXE=bootstrap \ ++ ./configure $(DEB_CONFIGURE_COMMON_FLAGS) --without-objects \ ++ --without-algo --without-app --with-build-root=BUILD.native || \ ++ (tail -v -n +0 config.log BUILD.native/status/config.log; exit 1) ++ make -j$(NUMJOBS) -C c++/BUILD$(NATIVE)/build -f Makefile.flat \ ++ datatool.exe ++endif ++ ++override_dh_autoreconf: ++ cd c++ && \ ++ autoheader2.69 -Isrc/build-system src/build-system/configure.ac \ ++ && cd src/build-system && autoconf2.69 ++ ++override_dh_auto_configure-indep:; ++override_dh_auto_configure-arch: $(PREBUILT_DATATOOL_EXE) ++ mkdir -p $(HOME) ++ cd c++ && CONFIG_SHELL=/bin/bash \ ++ ./configure $(DEB_CONFIGURE_EXTRA_FLAGS) \ ++ || (tail -v -n +0 config.log BUILD/status/config.log; exit 1) ++ ++override_dh_auto_build-arch: ++ cd c++/BUILD/build && \ ++ make -j$(NUMJOBS) -f Makefile.flat all_projects="$(proj)" ++# make all_r ++ ++override_dh_auto_build-indep: ++ echo "Save time and do nothing for architecture independent builds" ++ ++override_dh_auto_test: ++ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) ++ -dh_auto_test ++ -c++/BUILD/build/check.sh concat_err ++ -cat c++/BUILD/build/check.sh.out_err ++endif ++ ++instroot = debian/ncbi-blast+/usr ++leg_bin = debian/ncbi-blast+-legacy/usr/bin ++override_dh_auto_install-arch: ++ # cp c++/BUILD/lib/*.so $(instroot)/lib/ncbi-blast+/ ++ cp c++/BUILD/bin/* $(instroot)/bin/ ++ ++override_dh_auto_install-indep: ++ echo "Nothing to do for architecture independant installs" ++ ++override_dh_install-arch: ++ # dh_install ++ mv $(instroot)/bin/rpsblast $(instroot)/bin/rpsblast+ ++ mv $(instroot)/bin/seedtop $(instroot)/bin/seedtop+ ++ mv $(instroot)/bin/get_species_taxids.sh \ ++ $(instroot)/bin/get_species_taxids ++ mv $(instroot)/bin/cleanup-blastdb-volumes.py \ ++ $(instroot)/bin/cleanup-blastdb-volumes ++ mv $(instroot)/bin/legacy_blast.pl $(instroot)/bin/legacy_blast ++ mv $(instroot)/bin/update_blastdb.pl $(instroot)/bin/update_blastdb ++ sed -e '1s/$$/3/' $(instroot)/bin/windowmasker_2.2.22_adapter.py \ ++ > $(instroot)/bin/windowmasker_2.2.22_adapter ++ chmod +x $(instroot)/bin/windowmasker_2.2.22_adapter ++ rm $(instroot)/bin/windowmasker_2.2.22_adapter.py* ++# Clean up tests, demos, and internal build tools ++ rm -f $(instroot)/bin/*test* $(instroot)/bin/seqdb_demo \ ++ $(instroot)/bin/datatool $(instroot)/bin/run_with_lock \ ++ $(instroot)/bin/project_tree_builder ++ mkdir c++/BUILD/lib.observed ++ d=$(instroot)/bin; \ ++ while :; do \ ++ (for x in $$d/*; do \ ++ readelf -d $$x 2>/dev/null \ ++ | sed -ne 's/.*NEEDED.* \[\(.*\)]$$/\1/p'; \ ++ done; rm -f c++/BUILD/lib.observed/*) | sort -u | while read l; do \ ++ [ -f $(instroot)/lib/ncbi-blast+/$$l \ ++ -o \! -f c++/BUILD/lib/$$l ] || \ ++ cp -av c++/BUILD/lib/$$l c++/BUILD/lib.observed/; \ ++ done; \ ++ [ -n "$$(ls c++/BUILD/lib.observed)" ] || break; \ ++ echo ------------------------------------------------------------; \ ++ cp -a c++/BUILD/lib.observed/* $(instroot)/lib/ncbi-blast+; \ ++ d=c++/BUILD/lib.observed; \ ++ done ++ ++override_dh_install-indep: ++ #if test -d $(leg_bin); then cp debian/legacy/legacy.sh $(leg_bin)/; fi ++ for x in blastall megablast blastpgp bl2seq rpsblast fastacmd formatdb \ ++ seedtop; do \ ++ sed -e "s/.{.*}/$$x/" debian/legacy/legacy.sh > $(leg_bin)/$$x; \ ++ chmod +x $(leg_bin)/$$x; \ ++ done ++ ++NEW_MODULE = $(CURDIR)/c++/BUILD$(NATIVE)/build/new_module.sh ++override_dh_clean: ++ cp c++/src/util/lmdb/Makefile.orig c++/src/util/lmdb/Makefile.orig.save ++ cp c++/src/util/lmdbxx/Makefile.orig c++/src/util/lmdbxx/Makefile.orig.save ++ cp c++/src/util/lmdbxx/lmdb++.h.orig c++/src/util/lmdbxx/lmdb++.h.orig.save ++ ++ cp c++/configure.orig configure.orig.save ++ dh_clean ++ #Tricky - for each module directory there may be several module files ++ #or there may be none but then there is still a module named after the ++ #directory. Clean everything! ++ -for x in c++/src/objects/* ; do \ ++ (cd "$$x" && ( \ ++ mods="`echo *.module`" ; \ ++ [ "$${mods#*\*}" = "$$mods" ] || mods="`basename $$x`" ; \ ++ for mod in $$mods ; do \ ++ $(NEW_MODULE) $$mod purge_sources ; \ ++ done ) ; \ ++ ) ; \ ++ done ++ -for x in c++/src/objtools/eutils/* ; do \ ++ (cd "$$x" && ( \ ++ mods="`echo *.module`" ; \ ++ [ "$${mods#*\*}" = "$$mods" ] || mods="`basename $$x`" ; \ ++ for mod in $$mods ; do \ ++ $(NEW_MODULE) --dtd $$mod purge_sources ; \ ++ done ) ; \ ++ ) ; \ ++ done ++ -cd c++/src/objtools/eutils/efetch && \ ++ $(NEW_MODULE) --xsd efetch purge_sources ++ rm -rf c++/compilers/dll c++/config.log c++/Makefile ++ rm -f c++/configure.lineno c++/src/objects/blastxml/blastxml.module ++ rm -f c++/include/common/ncbi_revision.h ++ find -name check_exec.pid -delete ++ rm -rf c++/BUILD c++/BUILD.native fakehome ++ mv configure.orig.save c++/configure.orig ++ mv c++/src/util/lmdb/Makefile.orig.save c++/src/util/lmdb/Makefile.orig ++ mv c++/src/util/lmdbxx/Makefile.orig.save c++/src/util/lmdbxx/Makefile.orig ++ mv c++/src/util/lmdbxx/lmdb++.h.orig.save c++/src/util/lmdbxx/lmdb++.h.orig ++ ++%: ++ dh $@ --sourcedirectory=c++ --with-autoreconf diff --cc debian/salsa-ci.yml index 00000000,00000000..33c3a640 new file mode 100644 --- /dev/null +++ b/debian/salsa-ci.yml @@@ -1,0 -1,0 +1,4 @@@ ++--- ++include: ++ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml ++ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml diff --cc debian/source/format index 00000000,00000000..163aaf8d new file mode 100644 --- /dev/null +++ b/debian/source/format @@@ -1,0 -1,0 +1,1 @@@ ++3.0 (quilt) diff --cc debian/source/lintian-overrides index 00000000,00000000..e3487534 new file mode 100644 --- /dev/null +++ b/debian/source/lintian-overrides @@@ -1,0 -1,0 +1,6 @@@ ++# Line length detection, nothing missing in source js files ++ncbi-blast+ source: source-is-missing *c++/src/html/ncbi_menu.js* ++ncbi-blast+ source: source-is-missing *c++/src/html/ncbi_menu_dnd.js* ++ncbi-blast+ source: source-is-missing *c++/src/html/ncbi_menu_dyn.js* ++# JSON not evil license, related code is not present ++ncbi-blast+ source: license-problem-json-evil *c++/include/misc/jsonwrapp/rapidjson11/license.txt* diff --cc debian/source/options index 00000000,00000000..d0a83ea1 new file mode 100644 --- /dev/null +++ b/debian/source/options @@@ -1,0 -1,0 +1,2 @@@ ++# Do not generate diff for changes in config.(sub|guess) ++extend-diff-ignore = "(^|/)config.(sub|guess)$" diff --cc debian/tests/control index 00000000,00000000..d2aa55ae new file mode 100644 --- /dev/null +++ b/debian/tests/control @@@ -1,0 -1,0 +1,3 @@@ ++Tests: run-unit-test ++Depends: @ ++Restrictions: allow-stderr diff --cc debian/tests/run-unit-test index 00000000,00000000..7e48969b new file mode 100644 --- /dev/null +++ b/debian/tests/run-unit-test @@@ -1,0 -1,0 +1,24 @@@ ++#!/bin/bash ++set -e ++ ++pkg="ncbi-blast+" ++ ++if [ "$AUTOPKGTEST_TMP" = "" ] ; then ++ AUTOPKGTEST_TMP=$(mktemp -d /tmp/${pkg}-test.XXXXXX) ++ trap "rm -rf $AUTOPKGTEST_TMP" 0 INT QUIT ABRT PIPE TERM ++fi ++ ++cp -a /usr/share/doc/${pkg}/examples/* $AUTOPKGTEST_TMP ++ ++cd $AUTOPKGTEST_TMP ++find . -name "*.gz" -exec gunzip \{\} \; ++ ++echo '---Creating Database--' ++/usr/bin/makeblastdb -in testdatabase.fa -parse_seqids -dbtype nucl -out testdb ++echo '---Searching Database for Hits---' ++/usr/bin/blastn -query test.fa -db testdb -task blastn -dust no -outfmt "7 qseqid sseqid evalue bitscore" -max_target_seqs 2 ++echo '---Search and Fetch An Entry From Database---' ++/usr/bin/blastdbcmd -db testdb -entry gnl1 -out test_query.fa ++cat test_query.fa ++ ++echo "PASS" diff --cc debian/upstream/metadata index 00000000,00000000..1b724cf9 new file mode 100644 --- /dev/null +++ b/debian/upstream/metadata @@@ -1,0 -1,0 +1,9 @@@ ++Registry: ++ - Name: OMICtools ++ Entry: OMICS_01436 ++ - Name: SciCrunch ++ Entry: SCR_004870 ++ - Name: bio.tools ++ Entry: blast ++ - Name: conda:bioconda ++ Entry: blast diff --cc debian/watch index 00000000,00000000..7c2b95b1 new file mode 100644 --- /dev/null +++ b/debian/watch @@@ -1,0 -1,0 +1,3 @@@ ++version=4 ++opts=filenamemangle=s/.*\///;s/\+-src/-orig/;s/blast/blast+/,dversionmangle=s/\+ds//,repacksuffix=+ds \ ++ https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-(.*)\+-src\.tar\.gz debian uupdate