From: Peter Michael Green Date: Sun, 12 Jan 2025 14:25:01 +0000 (+0000) Subject: Import ncbi-blast+_2.16.0+ds-6+rpi1.debian.tar.xz X-Git-Tag: archive/raspbian/2.16.0+ds-7+rpi1~24^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=061fcdfced5efe536ca2e1d6658dd47077e25101;p=ncbi-blast%2B.git Import ncbi-blast+_2.16.0+ds-6+rpi1.debian.tar.xz [dgit import tarball ncbi-blast+ 2.16.0+ds-6+rpi1 ncbi-blast+_2.16.0+ds-6+rpi1.debian.tar.xz] --- 061fcdfced5efe536ca2e1d6658dd47077e25101 diff --git a/README.Debian b/README.Debian new file mode 100644 index 00000000..ff4641b0 --- /dev/null +++ b/README.Debian @@ -0,0 +1,10 @@ +blast+ for Debian +--------------------- + + This package does not include the documentation of the software. Documentation is available online. + Detail is available: man ncbi-blast+ + Package does not include test binaries nor datatool and projet_tree_builder from upstream. + Those binaries are indeed for internal upstream use, and are of no use nor related to blast+ tool itself + (see Bug #642991 discussion with upstream answers) + + -- Olivier Sallou Wed, 27 Apr 2011 15:19:59 +0200 diff --git a/README.source b/README.source new file mode 100644 index 00000000..85ca5993 --- /dev/null +++ b/README.source @@ -0,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 --git a/changelog b/changelog new file mode 100644 index 00000000..2cc15fcb --- /dev/null +++ b/changelog @@ -0,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 --git a/control b/control new file mode 100644 index 00000000..08ae5581 --- /dev/null +++ b/control @@ -0,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 --git a/copyright b/copyright new file mode 100644 index 00000000..2453aa4c --- /dev/null +++ b/copyright @@ -0,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 --git a/dirs b/dirs new file mode 100644 index 00000000..2b9d1904 --- /dev/null +++ b/dirs @@ -0,0 +1,2 @@ +usr/bin +var/lib/ncbi-blast+/db diff --git a/docs b/docs new file mode 100644 index 00000000..e69de29b diff --git a/legacy/legacy.sh b/legacy/legacy.sh new file mode 100755 index 00000000..dba6d0ca --- /dev/null +++ b/legacy/legacy.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +# Execute legacy blast +exec legacy_blast ${0##*/} $@ diff --git a/ncbi-blast+-legacy.dirs b/ncbi-blast+-legacy.dirs new file mode 100644 index 00000000..415f082d --- /dev/null +++ b/ncbi-blast+-legacy.dirs @@ -0,0 +1 @@ +/usr/bin diff --git a/ncbi-blast+.1 b/ncbi-blast+.1 new file mode 100644 index 00000000..fe9e0c35 --- /dev/null +++ b/ncbi-blast+.1 @@ -0,0 +1,33 @@ +.TH ncbi-blast+ 1 "April 29, 2011" "version 2.2.25" "USER COMMANDS" +.SH NAME +ncbi-blast+ \- NCBI command tools for BLAST+ +.SH ONELINE DOCUMENTATION +.B BLAST+ documentation is available online at http://www.ncbi.nlm.nih.gov/books/NBK1763/ +.PP +.SH DESCRIPTION +The NCBI BLAST+ is a group of tools for basic alignment search. BLAST+ + is a rewrite of BLAST with new features and performance improvements. +BLAST+ commands differ from original BLAST. For BLAST users, one should read + the BLAST USERS paragraph. +.PP +.SH CONFIGURATION +BLAST+ uses the BLASTDB environment variable to get default db directory. +It is possible to update the file /etc/ncbi/.ncbirc to add the following: +.B [BLAST] +.B BLASTDB=/var/lib/ncbi-blast+/db +.SH BLAST USERS +The easiest way to get started using these command line applications is + by means of the legacy_blast.pl PERL script which is bundled along with + the BLAST+ applications. +To utilize this script, simply prefix it to the invocation of the C toolkit + BLAST command line application and append the --path option pointing to the +installation directory of the BLAST+ applications. For example, instead of using + +.B blastall -i query -d nr -o blast.out +use +.B legacy_blast.pl blastall -i query -d nr -o blast.out --path /usr/bin + +.PP +.SH AUTHOR +Olivier Sallou (olivier.sallou (at) irisa.fr) - Man page and packaging +NCBI - BLAST+ diff --git a/ncbi-blast+.dirs b/ncbi-blast+.dirs new file mode 100644 index 00000000..32fdc473 --- /dev/null +++ b/ncbi-blast+.dirs @@ -0,0 +1,2 @@ +usr/bin +usr/lib/ncbi-blast+ diff --git a/ncbi-blast+.examples b/ncbi-blast+.examples new file mode 100644 index 00000000..e5da4986 --- /dev/null +++ b/ncbi-blast+.examples @@ -0,0 +1 @@ +debian/ncbi-blast+.tests/* diff --git a/ncbi-blast+.manpages b/ncbi-blast+.manpages new file mode 100644 index 00000000..0f651869 --- /dev/null +++ b/ncbi-blast+.manpages @@ -0,0 +1 @@ +debian/*.1 diff --git a/ncbi-blast+.tests/test.fa b/ncbi-blast+.tests/test.fa new file mode 100644 index 00000000..6db78dd5 --- /dev/null +++ b/ncbi-blast+.tests/test.fa @@ -0,0 +1,10 @@ +>gnl|MYDB|1 this is sequence 1 +GAATTCCCGCTACAGGGGGGGCCTGAGGCACTGCAGAAAGTGGGCCTGAGCCTCGAGGATGACGGTGCTGCAGGAACCCG +TCCAGGCTGCTATATGGCAAGCACTAAACCACTATGCTTACCGAGATGCGGTTTTCCTCGCAGAACGCCTTTATGCAGAA +GTACACTCAGAAGAAGCCTTGTTTTTACTGGCAACCTGTTATTACCGCTCAGGAAAGGCATATAAAGCATATAGACTCTT +GAAAGGACACAGTTGTACTACACCGCAATGCAAATACCTGCTTGCAAAATGTTGTGTTGATCTCAGCAAGCTTGCAGAAG +GGGAACAAATCTTATCTGGTGGAGTGTTTAATAAGCAGAAAAGCCATGATGATATTGTTACTGAGTTTGGTGATTCAGCT +TGCTTTACTCTTTCATTGTTGGGACATGTATATTGCAAGACAGATCGGCTTGCCAAAGGATCAGAATGTTACCAAAAGAG +CCTTAGTTTAAATCCTTTCCTCTGGTCTCCCTTTGAATCATTATGTGAAATAGGTGAAAAGCCAGATCCTGACCAAACAT +TTAAATTCACATCTTTACAGAACTTTAGCAACTGTCTGCCCAACTCTTGCACAACACAAGTACCTAATCATAGTTTATCT +CACAGACAGCCTGAGACAGTTCTTACGGAAACACCCCAGGACACAATTGAATTAAACAGATTGAATTTAGAATCTTCCAA diff --git a/ncbi-blast+.tests/testdatabase.fa b/ncbi-blast+.tests/testdatabase.fa new file mode 100644 index 00000000..844ac1db --- /dev/null +++ b/ncbi-blast+.tests/testdatabase.fa @@ -0,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 --git a/patches/2to3 b/patches/2to3 new file mode 100644 index 00000000..18f1bd62 --- /dev/null +++ b/patches/2to3 @@ -0,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 --git a/patches/allow_pcre2 b/patches/allow_pcre2 new file mode 100644 index 00000000..0472bde0 --- /dev/null +++ b/patches/allow_pcre2 @@ -0,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 --git a/patches/big_endian_workaround b/patches/big_endian_workaround new file mode 100644 index 00000000..452d4052 --- /dev/null +++ b/patches/big_endian_workaround @@ -0,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 --git a/patches/enable_clean_after_failed_compile b/patches/enable_clean_after_failed_compile new file mode 100644 index 00000000..96b9b268 --- /dev/null +++ b/patches/enable_clean_after_failed_compile @@ -0,0 +1,16 @@ +Subject: clean after failure +Description: Enable clean +Author: Tim Booth +Last-Updated: 2013-06-01 +Forwarded: no +--- a/c++/src/build-system/new_module.sh.in ++++ b/c++/src/build-system/new_module.sh.in +@@ -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 --git a/patches/fix_configure b/patches/fix_configure new file mode 100644 index 00000000..c360ef0d --- /dev/null +++ b/patches/fix_configure @@ -0,0 +1,14 @@ +Subject: fix path for debian build +Description: Debian build is not done in configure directory, + need to update way to get relative configure.orig script +Author: Olivier Sallou +Forwarded: no +Last-Updated: 2014-06-06 +--- a/c++/configure.orig ++++ b/c++/configure.orig +@@ -1,3 +1,4 @@ + #!/bin/sh +-srcdir=`dirname $0` ++srcdir=$(readlink -f $0) ++srcdir=`dirname $srcdir` + exec $srcdir/src/build-system/configure --srcdir=$srcdir ${1+"$@"} diff --git a/patches/fix_lib_deps b/patches/fix_lib_deps new file mode 100644 index 00000000..bcdf0fa2 --- /dev/null +++ b/patches/fix_lib_deps @@ -0,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 --git a/patches/fix_unit_tests b/patches/fix_unit_tests new file mode 100644 index 00000000..4687884f --- /dev/null +++ b/patches/fix_unit_tests @@ -0,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 --git a/patches/hurd_fixes b/patches/hurd_fixes new file mode 100644 index 00000000..884c030e --- /dev/null +++ b/patches/hurd_fixes @@ -0,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 --git a/patches/legacy_rename_rpsblast b/patches/legacy_rename_rpsblast new file mode 100644 index 00000000..f40204b1 --- /dev/null +++ b/patches/legacy_rename_rpsblast @@ -0,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 --git a/patches/no_multiarch_rpath b/patches/no_multiarch_rpath new file mode 100644 index 00000000..8423cd88 --- /dev/null +++ b/patches/no_multiarch_rpath @@ -0,0 +1,32 @@ +Subject: avoid redundant rpath entries on multiarch systems + + * src/build-system/configure(.ac): when ensuring that executables + will be able to find libstdc++, don't add rpath entries that files + under /etc/ld.so.conf.d already specify, even if they don't resemble + traditional single-architecture or biarch locations. + +Debian-Bug: 633567. +Author: Aaron M. Ucko +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 --git a/patches/optin_usage_report b/patches/optin_usage_report new file mode 100644 index 00000000..8a73c3f8 --- /dev/null +++ b/patches/optin_usage_report @@ -0,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 --git a/patches/optionally_keep_sequence b/patches/optionally_keep_sequence new file mode 100644 index 00000000..0b48dc46 --- /dev/null +++ b/patches/optionally_keep_sequence @@ -0,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 --git a/patches/reprobuild b/patches/reprobuild new file mode 100644 index 00000000..2206de50 --- /dev/null +++ b/patches/reprobuild @@ -0,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 --git a/patches/series b/patches/series new file mode 100644 index 00000000..d754932e --- /dev/null +++ b/patches/series @@ -0,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 --git a/patches/skip_services_unit_test b/patches/skip_services_unit_test new file mode 100644 index 00000000..309f9443 --- /dev/null +++ b/patches/skip_services_unit_test @@ -0,0 +1,16 @@ +Subject: remove network required test +Author: Tim Booth +Forwarded: no +Description: test require internet connection +Last-Updated: 2013-06-01 +--- a/c++/src/objtools/blast/services/unit_test/Makefile.blast_services_unit_test.app ++++ b/c++/src/objtools/blast/services/unit_test/Makefile.blast_services_unit_test.app +@@ -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 --git a/patches/spelling b/patches/spelling new file mode 100644 index 00000000..c5335527 --- /dev/null +++ b/patches/spelling @@ -0,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 --git a/patches/support_gcc10 b/patches/support_gcc10 new file mode 100644 index 00000000..9af97f4b --- /dev/null +++ b/patches/support_gcc10 @@ -0,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 --git a/patches/support_mbedtls3 b/patches/support_mbedtls3 new file mode 100644 index 00000000..35195419 --- /dev/null +++ b/patches/support_mbedtls3 @@ -0,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 --git a/patches/support_x32 b/patches/support_x32 new file mode 100644 index 00000000..7e166d8c --- /dev/null +++ b/patches/support_x32 @@ -0,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 --git a/patches/suppress_tls_version_checks b/patches/suppress_tls_version_checks new file mode 100644 index 00000000..6669ec04 --- /dev/null +++ b/patches/suppress_tls_version_checks @@ -0,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 --git a/patches/system_mbedtls_only b/patches/system_mbedtls_only new file mode 100644 index 00000000..2f381dd5 --- /dev/null +++ b/patches/system_mbedtls_only @@ -0,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 --git a/patches/tune_lmdb_defaults b/patches/tune_lmdb_defaults new file mode 100644 index 00000000..080d9b56 --- /dev/null +++ b/patches/tune_lmdb_defaults @@ -0,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 --git a/patches/use_pie_for_apps b/patches/use_pie_for_apps new file mode 100644 index 00000000..139a8580 --- /dev/null +++ b/patches/use_pie_for_apps @@ -0,0 +1,29 @@ +Subject: build executables with -fPIE, not -fPIC + +* -fPIC is only useful for shared libraries; substitute -fPIE (along + with -pie at link time) when building executables. + +Author: Aaron M. Ucko +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 --git a/rules b/rules new file mode 100755 index 00000000..558fd737 --- /dev/null +++ b/rules @@ -0,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 --git a/salsa-ci.yml b/salsa-ci.yml new file mode 100644 index 00000000..33c3a640 --- /dev/null +++ b/salsa-ci.yml @@ -0,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 --git a/source/format b/source/format new file mode 100644 index 00000000..163aaf8d --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/source/lintian-overrides b/source/lintian-overrides new file mode 100644 index 00000000..e3487534 --- /dev/null +++ b/source/lintian-overrides @@ -0,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 --git a/source/options b/source/options new file mode 100644 index 00000000..d0a83ea1 --- /dev/null +++ b/source/options @@ -0,0 +1,2 @@ +# Do not generate diff for changes in config.(sub|guess) +extend-diff-ignore = "(^|/)config.(sub|guess)$" diff --git a/tests/control b/tests/control new file mode 100644 index 00000000..d2aa55ae --- /dev/null +++ b/tests/control @@ -0,0 +1,3 @@ +Tests: run-unit-test +Depends: @ +Restrictions: allow-stderr diff --git a/tests/run-unit-test b/tests/run-unit-test new file mode 100644 index 00000000..7e48969b --- /dev/null +++ b/tests/run-unit-test @@ -0,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 --git a/upstream/metadata b/upstream/metadata new file mode 100644 index 00000000..1b724cf9 --- /dev/null +++ b/upstream/metadata @@ -0,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 --git a/watch b/watch new file mode 100644 index 00000000..7c2b95b1 --- /dev/null +++ b/watch @@ -0,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