Étienne Mollier pushed to branch master at Debian Med / kleborate
Commits: 400a8986 by Étienne Mollier at 2021-09-22T16:55:53+02:00 add bigendian.patch: fixes ftbfs on s390x This patch fixes ftbfs on s390x, and other big endian architectures, by allowing kleborate to fall back to blastdb version 4 for its sample files and at run time. Closes: #994714 - - - - - 0ec16e27 by Étienne Mollier at 2021-09-22T18:53:53+02:00 update changelog - - - - - e5ba7a3e by Étienne Mollier at 2021-09-22T18:54:10+02:00 routine-update: Standards-Version: 4.6.0 - - - - - 4ea22ff2 by Étienne Mollier at 2021-09-22T18:54:39+02:00 Apply multi-arch hints. + kleborate-examples: Add Multi-Arch: foreign. Changes-By: apply-multiarch-hints - - - - - f60fa3b6 by Étienne Mollier at 2021-09-22T19:07:13+02:00 routine-update: Ready to upload to unstable - - - - - 4 changed files: - debian/changelog - debian/control - + debian/patches/bigendian.patch - debian/patches/series Changes: ===================================== debian/changelog ===================================== @@ -1,3 +1,12 @@ +kleborate (2.1.0-2) unstable; urgency=medium + + * add bigendian.patch: fixes ftbfs on s390x. (Closes: #994714) + * Standards-Version: 4.6.0 (routine-update) + * Apply multi-arch hints. + + kleborate-examples: Add Multi-Arch: foreign. + + -- Étienne Mollier <[email protected]> Wed, 22 Sep 2021 18:54:42 +0200 + kleborate (2.1.0-1) unstable; urgency=medium * Team Upload. ===================================== debian/control ===================================== @@ -11,7 +11,7 @@ Build-Depends: debhelper-compat (= 13), ncbi-blast+ <!nocheck>, mash <!nocheck>, kaptive <!nocheck> -Standards-Version: 4.5.1 +Standards-Version: 4.6.0 Vcs-Browser: https://salsa.debian.org/med-team/kleborate Vcs-Git: https://salsa.debian.org/med-team/kleborate.git Homepage: https://github.com/katholt/Kleborate @@ -45,6 +45,7 @@ Package: kleborate-examples Architecture: all Depends: ${misc:Depends} Recommends: kleborate +Multi-Arch: foreign Description: tool to screen Klebsiella genome assemblies (example data) Kleborate is a tool to screen Klebsiella genome assemblies for: . ===================================== debian/patches/bigendian.patch ===================================== @@ -0,0 +1,65 @@ +Description: fall back to generating blast db v4 on big endian systems + Kleborate is not capable of decoding blast db v5 on all architectures, because + the underlying format of the storage is processor architecture dependent, for + the sake of performance, at the cost of interoperability. The v4 format, in + contrast, is plaintext, so remains suitable in such context. Many Thanks to + Aaron M. Ucko for the details! +Author: Étienne Mollier <[email protected]> +Bug-Debian: https://bugs.debian.org/994714 +Forwarded: no +Last-Update: 2021-09-21 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- kleborate.orig/kleborate/__main__.py ++++ kleborate/kleborate/__main__.py +@@ -625,6 +625,10 @@ + def rebuild_blast_indices(data_dir): + for fasta in pathlib.Path(data_dir).glob('*.fasta'): + makeblastdb_cmd = ['makeblastdb', '-dbtype', 'nucl', '-in', str(fasta)] ++ # Use blastdb v4 format for big endian systems, since the v5 format is ++ # processor architecture dependent, but not the v4. ++ if sys.byteorder == 'big': ++ makeblastdb_cmd += ['-blastdb_version', '4'] + with open(os.devnull, 'w') as devnull: + subprocess.check_call(makeblastdb_cmd, stdout=devnull) + +--- kleborate.orig/kleborate/blastn.py ++++ kleborate/kleborate/blastn.py +@@ -13,6 +13,7 @@ + """ + + import os ++import sys + import subprocess + + from .misc import reverse_complement +@@ -135,5 +136,12 @@ + def build_blast_database_if_needed(seqs): + if not os.path.exists(seqs + '.nin'): + with open(os.devnull, 'w') as devnull: +- subprocess.check_call('makeblastdb -dbtype nucl -in ' + seqs, stdout=devnull, +- shell=True) ++ if sys.byteorder == 'little': ++ subprocess.check_call('makeblastdb -dbtype nucl -in ' + seqs, ++ stdout=devnull, ++ shell=True) ++ else: ++ subprocess.check_call('makeblastdb -dbtype nucl -in ' + seqs ++ + ' -blastdb_version 4', ++ stdout=devnull, ++ shell=True) +--- kleborate.orig/setup.py ++++ kleborate/setup.py +@@ -40,6 +40,12 @@ + def build_blast_db(data_dir, fasta_filename, seq_type): + fasta_path = os.path.join(data_dir, fasta_filename) + makeblastdb_cmd = ['makeblastdb', '-dbtype', seq_type, '-in', fasta_path] ++ # Fall back to blastdb version 4 for big endian architectures, as kleborate ++ # is not yet able to swap bytes appropriately with the new lmdb format of ++ # the blastdb v5. Note that the content of the distributed data set is ++ # thus now architecture dependent. ++ if sys.byteorder == 'big': ++ makeblastdb_cmd += ['-blastdb_version', '4'] + print(' ' + ' '.join(makeblastdb_cmd)) + with open(os.devnull, 'w') as devnull: + subprocess.check_call(makeblastdb_cmd, stdout=devnull) ===================================== debian/patches/series ===================================== @@ -1,2 +1,3 @@ python3.patch use_debian_installed_kaptive.patch +bigendian.patch View it on GitLab: https://salsa.debian.org/med-team/kleborate/-/compare/39fda303975c992d09f53c3a756189307494e61e...f60fa3b6220790c1cca3b564f09beac7d441c0b5 -- View it on GitLab: https://salsa.debian.org/med-team/kleborate/-/compare/39fda303975c992d09f53c3a756189307494e61e...f60fa3b6220790c1cca3b564f09beac7d441c0b5 You're receiving this email because of your account on salsa.debian.org.
_______________________________________________ debian-med-commit mailing list [email protected] https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-med-commit
