[med-svn] [Git][med-team/vsearch][master] 4 commits: New upstream version 2.29.4

Étienne Mollier (@emollier) gitlab at salsa.debian.org
Mon Feb 24 19:09:27 GMT 2025



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


Commits:
d26b89d7 by Étienne Mollier at 2025-02-24T19:56:08+01:00
New upstream version 2.29.4
- - - - -
d60de528 by Étienne Mollier at 2025-02-24T19:56:09+01:00
Update upstream source from tag 'upstream/2.29.4'

Update to upstream version '2.29.4'
with Debian dir d0634e41d444d3ff7c2f9a77a40c7f53a6c4dc93
- - - - -
54227528 by Étienne Mollier at 2025-02-24T19:57:31+01:00
d/control: declare compliance to standards version 4.7.1.

- - - - -
792bc196 by Étienne Mollier at 2025-02-24T20:08:58+01:00
d/changelog: ready for upload to unstable.

- - - - -


13 changed files:

- + .github/workflows/jekyll-gh-pages.yml
- .travis.yml
- Dockerfile
- README.md
- configure.ac
- debian/changelog
- debian/control
- dockerfiles/Dockerfile.debian
- dockerfiles/Dockerfile.fedora
- man/vsearch.1
- src/align_simd.cc
- src/chimera.cc
- src/cluster.cc


Changes:

=====================================
.github/workflows/jekyll-gh-pages.yml
=====================================
@@ -0,0 +1,55 @@
+# Sample workflow for building and deploying a Jekyll site to GitHub Pages
+name: Deploy Jekyll with GitHub Pages dependencies preinstalled
+
+on:
+  # Runs on pushes targeting the dev branch
+  push:
+    branches: ["dev"]
+
+  # Allows you to run this workflow manually from the Actions tab
+  workflow_dispatch:
+
+# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+permissions:
+  contents: read
+  pages: write
+  id-token: write
+
+# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
+# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
+concurrency:
+  group: "pages"
+  cancel-in-progress: false
+
+jobs:
+  # Build job
+  build:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout
+        uses: actions/checkout at v4
+      - name: generate markdown files
+        run: |
+          cd man
+          bash ./scripts/generate_online_documentation.sh
+      - name: Setup Pages
+        uses: actions/configure-pages at v5
+      - name: Build with Jekyll
+        uses: actions/jekyll-build-pages at v1
+        with:
+          source: ./
+          destination: ./_site
+      - name: Upload artifact
+        uses: actions/upload-pages-artifact at v3
+
+  # Deployment job
+  deploy:
+    environment:
+      name: github-pages
+      url: ${{ steps.deployment.outputs.page_url }}
+    runs-on: ubuntu-latest
+    needs: build
+    steps:
+      - name: Deploy to GitHub Pages
+        id: deployment
+        uses: actions/deploy-pages at v4


=====================================
.travis.yml
=====================================
@@ -3,7 +3,6 @@ language:
 
 arch:
 - arm64
-#- ppc64le
 
 os:
 - linux


=====================================
Dockerfile
=====================================
@@ -5,7 +5,7 @@ RUN apk add --no-cache \
         libstdc++ zlib-dev bzip2-dev \
         autoconf automake make g++ && \
     ./autogen.sh && \
-    ./configure CFLAGS="-O3" CXXFLAGS="-O3" && \
+    ./configure CFLAGS="-O2" CXXFLAGS="-O2" && \
     make clean && \
     make && \
     make install && \


=====================================
README.md
=====================================
@@ -39,7 +39,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.29.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.
+If you can't find an answer in the [VSEARCH documentation](https://github.com/torognes/vsearch/releases/download/v2.29.4/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
 
@@ -52,16 +52,18 @@ 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.29.1.tar.gz
-tar xzf v2.29.1.tar.gz
-cd vsearch-2.29.1
+wget https://github.com/torognes/vsearch/archive/v2.29.4.tar.gz
+tar xzf v2.29.4.tar.gz
+cd vsearch-2.29.4
 ./autogen.sh
-./configure CFLAGS="-O3" CXXFLAGS="-O3"
+./configure CFLAGS="-O2" CXXFLAGS="-O2"
 make ARFLAGS="cr"
 sudo make install
 ```
 
-You may customize the installation directory using the `--prefix=DIR` option to `configure`. If the compression libraries [zlib](https://www.zlib.net) and/or [bzip2](https://www.sourceware.org/bzip2/) are installed on the system, they will be detected automatically and support for compressed files will be included in vsearch (see section **Dependencies** below). Support for compressed files may be disabled using the `--disable-zlib` and `--disable-bzip2` options to `configure`. A PDF version of the manual will be created from the `vsearch.1` manual file if `ps2pdf` is available, unless disabled using the `--disable-pdfman` option to `configure`. It is recommended to run configure with the options `CFLAGS="-O3"` and `CXXFLAGS="-O3"`. Other  options may also be applied to `configure`, please run `configure -h` to see them all. GNU autoconf (version 2.63 or later), automake and the GCC C++ (`g++`) compiler is required to build vsearch. Version 3.82 or later of `make` may be required on Linux, while version 3.81 is sufficient on macOS.
+You may customize the installation directory using the `--prefix=DIR` option to `configure`. If the compression libraries [zlib](https://www.zlib.net) and/or [bzip2](https://www.sourceware.org/bzip2/) are installed on the system, they will be detected automatically and support for compressed files will be included in vsearch (see section **Dependencies** below). Support for compressed files may be disabled using the `--disable-zlib` and `--disable-bzip2` options to `configure`. A PDF version of the manual will be created from the `vsearch.1` manual file if `ps2pdf` is available, unless disabled using the `--disable-pdfman` option to `configure`. It is recommended to run configure with the options `CFLAGS="-O2"` and `CXXFLAGS="-O2"`. Other  options may also be applied to `configure`, please run `configure -h` to see them all. GNU autoconf (version 2.63 or later), automake and the GCC C++ (`g++`) compiler is required to build vsearch. Version 3.82 or later of `make` may be required on Linux, while version 3.81 is sufficient on macOS.
+
+Warning: Compiling the `align_simd.cc` file on x86_64 systems using the GNU C++ compiler version 9 or later with the `-O3` optimization option on may result in incorrect code that may cause bad alignments in some circumstances. This was due to the `-ftree-partial-pre` optimization enabled by `-O3`. A compiler pragma has been inserted in the code to specifically turn off this optimization for the affected code. Using `-O3` should be safe.
 
 To build VSEARCH on Debian and similar Linux distributions (Ubuntu etc) you'll need the following packages: autoconf, automake, g++, ghostscript, groff, libbz2-dev, make, zlib1g-dev. Include libsimde-dev to build on riscv64 or mips64el.
 
@@ -73,7 +75,7 @@ Instead of downloading the source distribution as a compressed archive, you coul
 git clone https://github.com/torognes/vsearch.git
 cd vsearch
 ./autogen.sh
-./configure CFLAGS="-O3" CXXFLAGS="-O3"
+./configure CFLAGS="-O2" CXXFLAGS="-O2"
 make ARFLAGS="cr"
 sudo make install
 ```
@@ -89,7 +91,7 @@ wget https://github.com/torognes/vsearch/releases/download/v{VERSION}/vsearch-{V
 tar xzf vsearch-{VERSION}-{OS}-{ARCH}.tar.gz
 ```
 
-Replace `{VERSION}` with the VSEARCH version number (e.g. `2.29.1`), `{OS}` with the target operating system (`linux` or `macos`), and `{ARCH}` with the architecture (`x86_64`, `aarch64`, `ppc64le`, `riscv64`, or `mips64el`). You could add `-static` after `{ARCH}` to get a statically compiled version for Linux (except x86_64). The name of the binary for the RHEL 7 and CentOS 7 Linux distributions ends in `-ubi7`.
+Replace `{VERSION}` with the VSEARCH version number (e.g. `2.29.4`), `{OS}` with the target operating system (`linux` or `macos`), and `{ARCH}` with the architecture (`x86_64`, `aarch64`, `ppc64le`, `riscv64`, or `mips64el`). You could add `-static` after `{ARCH}` to get a statically compiled version for Linux (except x86_64). The name of the binary for the RHEL 7 and CentOS 7 Linux distributions ends in `-ubi7`.
 
 Or, if you are using Windows, download and extract (unzip) the contents of this file:
 
@@ -113,7 +115,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.29.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.29.1/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.29.4/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.29.4/vsearch_manual.pdf)) is also attached to the latest [release](https://github.com/torognes/vsearch/releases).
 
 
 ## Packages, plugins, and wrappers
@@ -157,7 +159,7 @@ Compiling VSEARCH requires either GCC (`g++`) or `clang`, `make` and the autotoo
 
 VSEARCH will automatically check whether these libraries are available and load them dynamically.
 
-On Windows these libraries are called `zlib1.dll` and `libbz2.dll`. These DLL's are included with the released distribution of vsearch 2.29.1 and later.
+On Windows these libraries are called `zlib1.dll` and `libbz2.dll`. These DLL's are included with the released distribution of vsearch 2.27.0 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.29.1], [torognes at ifi.uio.no], [vsearch], [https://github.com/torognes/vsearch])
+AC_INIT([vsearch], [2.29.4], [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,3 +1,10 @@
+vsearch (2.29.4-1) unstable; urgency=medium
+
+  * New upstream version 2.29.4
+  * d/control: declare compliance to standards version 4.7.1.
+
+ -- Étienne Mollier <emollier at debian.org>  Mon, 24 Feb 2025 19:58:08 +0100
+
 vsearch (2.29.1-1) unstable; urgency=medium
 
   * New upstream version 2.29.1


=====================================
debian/control
=====================================
@@ -13,7 +13,7 @@ Build-Depends: debhelper-compat (= 13),
                ghostscript,
                libsimde-dev [!amd64 !arm64 !ppc64el],
                time
-Standards-Version: 4.7.0
+Standards-Version: 4.7.1
 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/


=====================================
dockerfiles/Dockerfile.debian
=====================================
@@ -12,7 +12,7 @@ RUN apt-get -y install \
 	make \
 	zlib1g-dev
 RUN ./autogen.sh
-RUN ./configure CFLAGS="-O3" CXXFLAGS="-O3"
+RUN ./configure CFLAGS="-O2" CXXFLAGS="-O2"
 RUN make clean
 RUN make ARFLAGS="cr"
 RUN make install


=====================================
dockerfiles/Dockerfile.fedora
=====================================
@@ -12,7 +12,7 @@ RUN yum -y install \
 	make \
 	zlib-devel
 RUN ./autogen.sh
-RUN ./configure CFLAGS="-O3" CXXFLAGS="-O3"
+RUN ./configure CFLAGS="-O2" CXXFLAGS="-O2"
 RUN make clean
 RUN make ARFLAGS="cr"
 RUN make install


=====================================
man/vsearch.1
=====================================
@@ -1,7 +1,7 @@
 .\" import www macros (URL, TAG, MTO)
 .mso www.tmac
 .\" ============================================================================
-.TH vsearch 1 "October 24, 2024" "version 2.29.1" "USER COMMANDS"
+.TH vsearch 1 "February 14, 2025" "version 2.29.4" "USER COMMANDS"
 .\" ============================================================================
 .SH NAME
 vsearch \(em a versatile open-source tool for microbiome analysis,
@@ -4994,6 +4994,27 @@ improve: code-coverage of our test-suite for the above-mentioned commands (1,210
 Fix a segmentation fault that could occur during alignment in version
 2.29.0, for example with \-\-uchime_ref. Some improvements to code and
 documentation.
+.TP
+.BR v2.29.2\~ "released December 20th, 2024"
+Fix a segmentation fault during clustering when the set of clusters is empty.
+Initial documentation in markdown format available on GitHub Pages.
+.TP
+.BR v2.29.3\~ "released February 3rd, 2025"
+This version is released in order to mitigate a bug that occurs when
+compiling the `align_simd.cc` file on x86_64 systems with the GNU C++
+compiler version 9 or later with the `-O3` optimization option. It
+results in incorrect code that may cause bad alignments in some
+circumstances. We are investigating this issue further, but for now we
+recommend compiling with the `-O2` flag. The README.md file and the
+Dockerfiles have been updated to reflect this. The binaries released
+with this version will include this fix.
+.TP
+.BR v2.29.4\~ "released February 14th, 2025"
+Adjust the window size used for chimera detection down from 64 to
+32. The window size was by accident increased from 32 to 64 in version
+2.23.0, leading to somewhat fewer chimeras being predicted.
+In addition, a compiler pragma has been included in align_simd.cc to
+further protect the compiler from generating wrong code.
 .\" ============================================================================
 .\" TODO:
 .\"


=====================================
src/align_simd.cc
=====================================
@@ -1210,6 +1210,14 @@ auto search16_qprep(s16info_s * s, char * qseq, int qlen) -> void
     }
 }
 
+
+/*
+  Turn off tree-partial-pre optimizations for the rest of the file.
+  GNU C++ 9 or later generates incorrect code on x86_64 if turned on.
+*/
+
+#pragma GCC optimize ("-fno-tree-partial-pre")
+
 auto search16(s16info_s * s,
               unsigned int sequences,
               unsigned int * seqnos,


=====================================
src/chimera.cc
=====================================
@@ -93,7 +93,7 @@
 /* global constants/data, no need for synchronization */
 static int parts = 0;
 const int maxparts = 100;
-const int window = 64;
+const int window = 32;
 const int few = 4;
 const int maxcandidates = few * maxparts;
 const int rejects = 16;


=====================================
src/cluster.cc
=====================================
@@ -1396,13 +1396,13 @@ auto cluster(char * dbname,
 
   auto const minmax_elements = std::minmax_element(cluster_abundance_v.cbegin(),
                                                    cluster_abundance_v.cend());
-  auto const abundance_min = *std::get<0>(minmax_elements);
-  auto const abundance_max = *std::get<1>(minmax_elements);
+  auto const abundance_min = cluster_abundance_v.empty() ? 0 : *std::get<0>(minmax_elements);
+  auto const abundance_max = cluster_abundance_v.empty() ? 0 : *std::get<1>(minmax_elements);
   int const singletons = std::count(cluster_abundance_v.cbegin(),
                                     cluster_abundance_v.cend(), int64_t{1});
   auto const max_element = std::max_element(cluster_size.cbegin(),
                                             cluster_size.cend());
-  auto const size_max = *max_element;
+  auto const size_max = cluster_size.empty() ? 0 : *max_element;
 
 
   /* Sort sequences in clusters by their abundance or ordinal number */



View it on GitLab: https://salsa.debian.org/med-team/vsearch/-/compare/6d81776836556a381ce0aeefaed354d037f9ee09...792bc196e0a0b10f8cb0d99fab95546e0d6cc748

-- 
View it on GitLab: https://salsa.debian.org/med-team/vsearch/-/compare/6d81776836556a381ce0aeefaed354d037f9ee09...792bc196e0a0b10f8cb0d99fab95546e0d6cc748
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/20250224/9eef8e59/attachment-0001.htm>


More information about the debian-med-commit mailing list