[med-svn] [Git][med-team/vsearch][master] 6 commits: New upstream version 2.27.1

Étienne Mollier (@emollier) gitlab at salsa.debian.org
Fri Apr 19 17:30:09 BST 2024



Étienne Mollier pushed to branch master at Debian Med / vsearch


Commits:
e43d4070 by Étienne Mollier at 2024-04-19T18:09:01+02:00
New upstream version 2.27.1
- - - - -
b8b9bcf4 by Étienne Mollier at 2024-04-19T18:09:02+02:00
Update upstream source from tag 'upstream/2.27.1'

Update to upstream version '2.27.1'
with Debian dir 5cdf85e323bbad9d3a6de67e2b5df927f2e3e707
- - - - -
90ebdf31 by Étienne Mollier at 2024-04-19T18:19:26+02:00
d/control: declare compliance to standards version 4.7.0.

- - - - -
aea391a0 by Étienne Mollier at 2024-04-19T18:22:03+02:00
d/control: apply multiarch hint.

vsearch-examples can be safely moved as Architecture: all and
Multi-Arch: foreign.

- - - - -
934aacd6 by Étienne Mollier at 2024-04-19T18:23:10+02:00
d/control: relax vsearch architecture to any-amd64.

This may or may not enable support for hurd-amd64 on upcoming builds.

- - - - -
536d64b2 by Étienne Mollier at 2024-04-19T18:25:02+02:00
ready to upload to unstable.

- - - - -


8 changed files:

- README.md
- configure.ac
- debian/changelog
- debian/control
- man/vsearch.1
- src/dynlibs.cc
- src/search.cc
- src/searchcore.cc


Changes:

=====================================
README.md
=====================================
@@ -37,7 +37,7 @@ Most of the nucleotide based commands and options in USEARCH version 7 are suppo
 
 ## Getting Help
 
-If you can't find an answer in the [VSEARCH documentation](https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch_manual.pdf), please visit the [VSEARCH Web Forum](https://groups.google.com/forum/#!forum/vsearch-forum) to post a question or start a discussion.
+If you can't find an answer in the [VSEARCH documentation](https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch_manual.pdf), please visit the [VSEARCH Web Forum](https://groups.google.com/forum/#!forum/vsearch-forum) to post a question or start a discussion.
 
 ## Example
 
@@ -50,9 +50,9 @@ In the example below, VSEARCH will identify sequences in the file database.fsa t
 **Source distribution** To download the source distribution from a [release](https://github.com/torognes/vsearch/releases) and build the executable and the documentation, use the following commands:
 
 ```
-wget https://github.com/torognes/vsearch/archive/v2.27.0.tar.gz
-tar xzf v2.27.0.tar.gz
-cd vsearch-2.27.0
+wget https://github.com/torognes/vsearch/archive/v2.27.1.tar.gz
+tar xzf v2.27.1.tar.gz
+cd vsearch-2.27.1
 ./autogen.sh
 ./configure CFLAGS="-O3" CXXFLAGS="-O3"
 make
@@ -81,48 +81,48 @@ Binary distributions are provided for x86-64 systems running GNU/Linux, macOS (v
 Download the appropriate executable for your system using the following commands if you are using a Linux x86_64 system:
 
 ```sh
-wget https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch-2.27.0-linux-x86_64.tar.gz
-tar xzf vsearch-2.27.0-linux-x86_64.tar.gz
+wget https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch-2.27.1-linux-x86_64.tar.gz
+tar xzf vsearch-2.27.1-linux-x86_64.tar.gz
 ```
 
 Or these commands if you are using a Linux ppc64le system:
 
 ```sh
-wget https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch-2.27.0-linux-ppc64le.tar.gz
-tar xzf vsearch-2.27.0-linux-ppc64le.tar.gz
+wget https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch-2.27.1-linux-ppc64le.tar.gz
+tar xzf vsearch-2.27.1-linux-ppc64le.tar.gz
 ```
 
 Or these commands if you are using a Linux aarch64 (arm64) system:
 
 ```sh
-wget https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch-2.27.0-linux-aarch64.tar.gz
-tar xzf vsearch-2.27.0-linux-aarch64.tar.gz
+wget https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch-2.27.1-linux-aarch64.tar.gz
+tar xzf vsearch-2.27.1-linux-aarch64.tar.gz
 ```
 
 Or these commands if you are using a Mac with an Apple Silicon CPU:
 
 ```sh
-wget https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch-2.27.0-macos-aarch64.tar.gz
-tar xzf vsearch-2.27.0-macos-aarch64.tar.gz
+wget https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch-2.27.1-macos-aarch64.tar.gz
+tar xzf vsearch-2.27.1-macos-aarch64.tar.gz
 ```
 
 Or these commands if you are using a Mac with an Intel CPU:
 
 ```sh
-wget https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch-2.27.0-macos-x86_64.tar.gz
-tar xzf vsearch-2.27.0-macos-x86_64.tar.gz
+wget https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch-2.27.1-macos-x86_64.tar.gz
+tar xzf vsearch-2.27.1-macos-x86_64.tar.gz
 ```
 
 Or if you are using Windows, download and extract (unzip) the contents of this file:
 
 ```
-https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch-2.27.0-win-x86_64.zip
+https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch-2.27.1-win-x86_64.zip
 ```
 
-Linux and Mac: You will now have the binary distribution in a folder called `vsearch-2.27.0-linux-x86_64` or `vsearch-2.27.0-macos-x86_64` in which you will find three subfolders `bin`, `man` and `doc`. We recommend making a copy or a symbolic link to the vsearch binary `bin/vsearch` in a folder included in your `$PATH`, and a copy or a symbolic link to the vsearch man page `man/vsearch.1` in a folder included in your `$MANPATH`. The PDF version of the manual is available in `doc/vsearch_manual.pdf`. Versions with statically compiled libraries are available for Linux systems. These have "-static" in their name, and could be used on systems that do not have all the necessary libraries installed.
+Linux and Mac: You will now have the binary distribution in a folder called `vsearch-2.27.1-linux-x86_64` or `vsearch-2.27.1-macos-x86_64` in which you will find three subfolders `bin`, `man` and `doc`. We recommend making a copy or a symbolic link to the vsearch binary `bin/vsearch` in a folder included in your `$PATH`, and a copy or a symbolic link to the vsearch man page `man/vsearch.1` in a folder included in your `$MANPATH`. The PDF version of the manual is available in `doc/vsearch_manual.pdf`. Versions with statically compiled libraries are available for Linux systems. These have "-static" in their name, and could be used on systems that do not have all the necessary libraries installed.
 
 **Windows**: You will now have the binary distribution in a folder
-called `vsearch-2.27.0-win-x86_64`. The vsearch executable is called
+called `vsearch-2.27.1-win-x86_64`. The vsearch executable is called
 `vsearch.exe`. The manual in PDF format is called
 `vsearch_manual.pdf`. If you want to be able to call `vsearch.exe`
 from any command prompt window, you can put the vsearch executable in
@@ -135,7 +135,7 @@ and `zlib1.dll` files required for reading compressed input
 files. These DLL's have been obtained for mingw-w64 from the MSYS2
 platform.
 
-**Documentation** The VSEARCH user's manual is available in the `man` folder in the form of a [man page](https://github.com/torognes/vsearch/blob/master/man/vsearch.1). A pdf version ([vsearch_manual.pdf](https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch_manual.pdf)) will be generated by `make`. To install the manpage manually, copy the `vsearch.1` file or a create a symbolic link to `vsearch.1` in a folder included in your `$MANPATH`. The manual in both formats is also available with the binary distribution. The manual in PDF form ([vsearch_manual.pdf](https://github.com/torognes/vsearch/releases/download/v2.27.0/vsearch_manual.pdf)) is also attached to the latest [release](https://github.com/torognes/vsearch/releases).
+**Documentation** The VSEARCH user's manual is available in the `man` folder in the form of a [man page](https://github.com/torognes/vsearch/blob/master/man/vsearch.1). A pdf version ([vsearch_manual.pdf](https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch_manual.pdf)) will be generated by `make`. To install the manpage manually, copy the `vsearch.1` file or a create a symbolic link to `vsearch.1` in a folder included in your `$MANPATH`. The manual in both formats is also available with the binary distribution. The manual in PDF form ([vsearch_manual.pdf](https://github.com/torognes/vsearch/releases/download/v2.27.1/vsearch_manual.pdf)) is also attached to the latest [release](https://github.com/torognes/vsearch/releases).
 
 
 ## Packages, plugins, and wrappers
@@ -179,9 +179,7 @@ When compiling VSEARCH the header files for the following two optional libraries
 
 VSEARCH will automatically check whether these libraries are available and load them dynamically.
 
-On Windows these libraries are called zlib1.dll and bz2.dll.
-
-Unfortunately, VSEARCH will not work properly with all the different variants of the `zlib1.dll` file on Windows. One that works well is provided by the MinGW-w64 project and is found in the `bin` folder within the [zlib-1.2.5-bin-x64.zip](https://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/Binaries%20%2864-bit%29/zlib-1.2.5-bin-x64.zip) archive available on SourceForge. The MD5 of the `zlib1.dll` file should be `0f67ee0b965d3d29388c238aebcf60bc`.
+On Windows these libraries are called zlib1.dll and libbz2.dll. These DLL's are included with the released distribution of vsearch 2.27.1 and later.
 
 To create the PDF file with the manual the ps2pdf tool is required. It is part of the ghostscript package.
 


=====================================
configure.ac
=====================================
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.63])
-AC_INIT([vsearch], [2.27.0], [torognes at ifi.uio.no], [vsearch], [https://github.com/torognes/vsearch])
+AC_INIT([vsearch], [2.27.1], [torognes at ifi.uio.no], [vsearch], [https://github.com/torognes/vsearch])
 AC_CANONICAL_TARGET
 AM_INIT_AUTOMAKE([subdir-objects])
 AC_LANG([C++])


=====================================
debian/changelog
=====================================
@@ -1,10 +1,17 @@
-vsearch (2.27.0-2) UNRELEASED; urgency=medium
+vsearch (2.27.1-1) unstable; urgency=medium
 
+  * New upstream version 2.27.1
   * sysconf_memory_sizing.patch: delete.
     The patch only includes unistd.h, now duplicated in src/vsearch.h.
     Thanks to Torbjørn Rognes
-
- -- Étienne Mollier <emollier at debian.org>  Mon, 15 Apr 2024 22:06:31 +0200
+  * d/control: declare compliance to standards version 4.7.0.
+  * d/control: apply multiarch hint.
+    vsearch-examples can be safely moved as Architecture: all and
+    Multi-Arch: foreign.
+  * d/control: relax vsearch architecture to any-amd64.
+    This may or may not enable support for hurd-amd64 on upcoming builds.
+
+ -- Étienne Mollier <emollier at debian.org>  Fri, 19 Apr 2024 18:24:02 +0200
 
 vsearch (2.27.0-1) unstable; urgency=medium
 


=====================================
debian/control
=====================================
@@ -11,14 +11,14 @@ Build-Depends: debhelper-compat (= 13),
                markdown,
                ghostscript,
                time
-Standards-Version: 4.6.2
+Standards-Version: 4.7.0
 Vcs-Browser: https://salsa.debian.org/med-team/vsearch
 Vcs-Git: https://salsa.debian.org/med-team/vsearch.git
 Homepage: https://github.com/torognes/vsearch/
 Rules-Requires-Root: no
 
 Package: vsearch
-Architecture: amd64 arm64 kfreebsd-amd64 ppc64el
+Architecture: any-amd64 arm64 ppc64el
 Depends: ${shlibs:Depends},
          ${misc:Depends}
 Description: tool for processing metagenomic sequences
@@ -35,7 +35,8 @@ Description: tool for processing metagenomic sequences
   - be as fast or faster than usearch
 
 Package: vsearch-examples
-Architecture: amd64 arm64 kfreebsd-amd64 ppc64el
+Architecture: all
+Multi-Arch: foreign
 Depends: ${shlibs:Depends},
          ${misc:Depends}
 Enhances: vsearch


=====================================
man/vsearch.1
=====================================
@@ -1,7 +1,7 @@
 .\" import www macros (URL, TAG, MTO)
 .mso www.tmac
 .\" ============================================================================
-.TH vsearch 1 "January 19, 2024" "version 2.27.0" "USER COMMANDS"
+.TH vsearch 1 "April 6, 2024" "version 2.27.1" "USER COMMANDS"
 .\" ============================================================================
 .SH NAME
 vsearch \(em a versatile open-source tool for microbiome analysis,
@@ -4872,6 +4872,14 @@ refactored. Generic Dockerfiles for major Linux distributions have
 been included. Some warnings from compilers and other tools have been
 eliminated. The release for Windows will also include DLL's for the
 two compression libraries.
+.TP
+.BR v2.27.1\~ "released April 6th, 2024"
+This version fixes the weak_id option and makes searches report weak
+hits in some cases. It also updates the names of the compression
+libraries to libz.so.1 and libbz2.so.1 on Linux to make them work on
+common Linux distributions without installing additional packages.
+README.md has been updated with information about compression
+libraries on Windows.
 .LP
 .\" ============================================================================
 .\" TODO:


=====================================
src/dynlibs.cc
=====================================
@@ -68,7 +68,7 @@ HMODULE gz_lib;
 #  ifdef __APPLE__
 const char gz_libname[] = "libz.dylib";
 #  else
-const char gz_libname[] = "libz.so";
+const char gz_libname[] = "libz.so.1";
 #  endif
 void * gz_lib;
 # endif
@@ -87,7 +87,7 @@ HMODULE bz2_lib;
 #  ifdef __APPLE__
 const char bz2_libname[] = "libbz2.dylib";
 #  else
-const char bz2_libname[] = "libbz2.so";
+const char bz2_libname[] = "libbz2.so.1";
 #  endif
 void * bz2_lib;
 # endif


=====================================
src/search.cc
=====================================
@@ -293,7 +293,7 @@ void search_output_results(int hit_count,
   /* update matching db sequences */
   for (int i=0; i < hit_count; i++)
     {
-      if (hits[i].accepted)
+      if (hits[i].accepted || hits[i].weak)
         {
           dbmatched[hits[i].target] += opt_sizein ? qsize : 1;
         }


=====================================
src/searchcore.cc
=====================================
@@ -64,62 +64,53 @@
 
 inline int hit_compare_byid_typed(struct hit * x, struct hit * y)
 {
-  // high id, then low id
-  // early target, then late target
+  /*
+    Order:
+    accepted, then rejected (weak)
+    high id, then low id
+    early target, then late target
+  */
 
   if (x->rejected < y->rejected)
     {
       return -1;
     }
+  else if (x->rejected > y->rejected)
+    {
+      return +1;
+    }
+  else if (x->aligned > y->aligned)
+    {
+      return -1;
+    }
+  else if (x->aligned < y->aligned)
+    {
+      return +1;
+    }
+  else if (x->aligned == 0)
+    {
+      return 0;
+    }
+  else if (x->id > y->id)
+    {
+      return -1;
+    }
+  else if (x->id < y->id)
+    {
+      return +1;
+    }
+  else if (x->target < y->target)
+    {
+      return -1;
+    }
+  else if (x->target > y->target)
+    {
+      return +1;
+    }
   else
-    if (x->rejected > y->rejected)
-      {
-        return +1;
-      }
-    else
-      if (x->rejected == 1)
-        {
-          return 0;
-        }
-      else
-        if (x->aligned > y->aligned)
-          {
-            return -1;
-          }
-        else
-          if (x->aligned < y->aligned)
-            {
-              return +1;
-            }
-          else
-            if (x->aligned == 0)
-              {
-                return 0;
-              }
-            else
-              if (x->id > y->id)
-                {
-                  return -1;
-                }
-              else
-                if (x->id < y->id)
-                  {
-                    return +1;
-                  }
-                else
-                  if (x->target < y->target)
-                    {
-                      return -1;
-                    }
-                  else
-                    if (x->target > y->target)
-                      {
-                        return +1;
-                      }
-                    else
-                      {
-                        return 0;
-                      }
+    {
+      return 0;
+    }
 }
 
 inline int hit_compare_bysize_typed(struct hit * x, struct hit * y)
@@ -863,33 +854,36 @@ void search_joinhits(struct searchinfo_s * si_p,
                      struct hit * * hitsp,
                      int * hit_count)
 {
-  /* join and sort accepted hits from both strands */
-  /* remove and unallocate unaccepted hits */
+  /* join and sort accepted and weak hits from both strands */
+  /* free the remaining alignments */
 
+  /* first, just count the number of hits to keep */
   int a = 0;
   for (int s = 0; s < opt_strand; s++)
     {
       struct searchinfo_s * si = s ? si_m : si_p;
       for(int i=0; i<si->hit_count; i++)
         {
-          if (si->hits[i].accepted)
+          struct hit * h = si->hits + i;
+          if (h->accepted || h->weak)
             {
               a++;
             }
         }
     }
 
+  /* allocate new array of hits */
   auto * hits = (struct hit *) xmalloc(a * sizeof(struct hit));
 
+  /* copy over the hits to be kept */
   a = 0;
-
   for (int s = 0; s < opt_strand; s++)
     {
       struct searchinfo_s * si = s ? si_m : si_p;
       for(int i=0; i<si->hit_count; i++)
         {
           struct hit * h = si->hits + i;
-          if (h->accepted)
+          if (h->accepted || h->weak)
             {
               hits[a++] = *h;
             }
@@ -900,6 +894,7 @@ void search_joinhits(struct searchinfo_s * si_p,
         }
     }
 
+  /* last, sort the hits */
   qsort(hits, a, sizeof(struct hit), hit_compare_byid);
 
   *hitsp = hits;



View it on GitLab: https://salsa.debian.org/med-team/vsearch/-/compare/6a015ac59775a9860b302d844a1d5dd6eb6719d3...536d64b2ad7dc0e52eb022b8090fcc8fd67cecb2

-- 
View it on GitLab: https://salsa.debian.org/med-team/vsearch/-/compare/6a015ac59775a9860b302d844a1d5dd6eb6719d3...536d64b2ad7dc0e52eb022b8090fcc8fd67cecb2
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20240419/56f21991/attachment-0001.htm>


More information about the debian-med-commit mailing list