[med-svn] [Git][med-team/libbiod][master] 2 commits: Adapt patch set to new upstream version
Andreas Tille
gitlab at salsa.debian.org
Tue Oct 9 07:19:26 BST 2018
Andreas Tille pushed to branch master at Debian Med / libbiod
Commits:
3fd98b80 by Andreas Tille at 2018-10-09T06:07:30Z
Adapt patch set to new upstream version
- - - - -
0186cd8f by Andreas Tille at 2018-10-09T06:11:16Z
Upload to unstable
- - - - -
21 changed files:
- debian/changelog
- − debian/patches/0002-improved-big-endian-support.patch
- − debian/patches/0003-include-the-AH-header-tag-to-SQ-lines.patch
- − debian/patches/0004-use-consistent-naming-21.patch
- − debian/patches/0005-fixes-lomereiter-sambamba-244.patch
- − debian/patches/0006-switch-to-undead.stream.patch
- − debian/patches/0007-std.c-core.stdc.patch
- − debian/patches/0008-fix-deprecations-and-some-warnings.patch
- − debian/patches/0009-fix-toHash-signature.patch
- − debian/patches/0011-better-.travis.yml-uses-dub-test-and-tests-ldc.patch
- − debian/patches/0013-fix-toJSON-usage-for-new-and-old-compilers.patch
- − debian/patches/0014-Add-compareCoordinatesAndStrand-to-fix-sorting-test-.patch
- − debian/patches/0015-Add-Meson-build-definition.patch
- − debian/patches/0016-fix-type-conversion.patch
- − debian/patches/0017_fix_expression_conversion.patch
- + debian/patches/001_fix_unit_tests.patch
- + debian/patches/002_include_bio2.patch
- + debian/patches/003_modernize_meson.patch
- − debian/patches/___series___
- − debian/patches/fix_deprecated_imports.patch
- + debian/patches/series
Changes:
=====================================
debian/changelog
=====================================
@@ -1,8 +1,8 @@
-libbiod (0.2.1-1) UNRELEASED; urgency=medium
+libbiod (0.2.1-1) unstable; urgency=medium
* New upstream version
- -- Andreas Tille <tille at debian.org> Tue, 09 Oct 2018 07:43:37 +0200
+ -- Andreas Tille <tille at debian.org> Tue, 09 Oct 2018 08:07:56 +0200
libbiod (0.1.0-6) unstable; urgency=medium
=====================================
debian/patches/0002-improved-big-endian-support.patch deleted
=====================================
@@ -1,554 +0,0 @@
-From 0b44f2a93ea1843f383c35126b677a2aaebab1f2 Mon Sep 17 00:00:00 2001
-From: Artem Tarasov <artem.tarasov at embl.de>
-Date: Sat, 16 Jul 2016 06:57:56 +0200
-Subject: [PATCH 02/14] improved big endian support
-
----
- bio/bam/read.d | 5 ++--
- bio/bam/readrange.d | 34 +++++++++++---------------
- bio/bam/writer.d | 21 ++++++----------
- bio/core/bgzf/compress.d | 36 ++++++++++-----------------
- bio/core/bgzf/constants.d | 34 +++++++++++++-------------
- bio/core/bgzf/inputstream.d | 59 ++++++++++++++++++++++-----------------------
- 6 files changed, 84 insertions(+), 105 deletions(-)
-
-diff --git a/bio/bam/read.d b/bio/bam/read.d
-index 3d15881..6e81263 100644
---- a/bio/bam/read.d
-+++ b/bio/bam/read.d
-@@ -71,6 +71,7 @@ import std.exception;
- import std.system;
- import std.traits;
- import std.array;
-+import std.bitmanip;
- import std.c.stdlib;
-
- /**
-@@ -704,7 +705,7 @@ struct BamRead {
- /*
- Constructs the struct from memory chunk
- */
-- this(ubyte[] chunk) {
-+ this(ubyte[] chunk, bool fix_byte_order=true) {
-
- // Switching endianness lazily is not a good idea:
- //
-@@ -720,7 +721,7 @@ struct BamRead {
- _chunk = chunk;
- this._is_slice = true;
-
-- if (std.system.endian != Endian.littleEndian) {
-+ if (fix_byte_order && std.system.endian != Endian.littleEndian) {
- switchChunkEndianness();
-
- // Dealing with tags is the responsibility of TagStorage.
-diff --git a/bio/bam/readrange.d b/bio/bam/readrange.d
-index 1a2ec87..6767a74 100644
---- a/bio/bam/readrange.d
-+++ b/bio/bam/readrange.d
-@@ -1,6 +1,6 @@
- /*
- This file is part of BioD.
-- Copyright (C) 2012-2014 Artem Tarasov <lomereiter at gmail.com>
-+ Copyright (C) 2012-2016 Artem Tarasov <lomereiter at gmail.com>
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the "Software"),
-@@ -8,10 +8,10 @@
- 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
-@@ -28,11 +28,11 @@ import bio.bam.abstractreader;
- import bio.bam.reader;
- import bio.core.bgzf.inputstream;
- import bio.core.bgzf.virtualoffset;
--import bio.core.utils.switchendianness;
-
- import std.stream;
- import std.algorithm;
- import std.system;
-+import std.bitmanip;
-
- /// Read + its start/end virtual offsets
- struct BamReadBlock {
-@@ -54,7 +54,7 @@ mixin template withOffsets() {
- plus the current read itself.
- */
- BamReadBlock front() @property {
-- return BamReadBlock(_start_voffset,
-+ return BamReadBlock(_start_voffset,
- _stream.virtualTell(),
- _current_record);
- }
-@@ -79,8 +79,8 @@ mixin template withoutOffsets() {
- }
-
- /// $(D front) return type is determined by $(I IteratePolicy)
--struct BamReadRange(alias IteratePolicy)
--{
-+struct BamReadRange(alias IteratePolicy)
-+{
- /// Create new range from BgzfInputStream.
- this(BgzfInputStream stream, BamReader reader=null) {
- _stream = stream;
-@@ -95,7 +95,7 @@ struct BamReadRange(alias IteratePolicy)
- }
-
- mixin IteratePolicy;
--
-+
- ///
- void popFront() {
- readNext();
-@@ -126,21 +126,18 @@ private:
- _empty = true;
- return;
- }
--
-+
- // In order to get the right virtual offset, we need to do it here.
- version(extraVerbose) {
- // import std.stdio; stderr.writeln("record v.o. = ", _stream.virtualTell());
- }
- beforeNextBamReadLoad();
-
-- // (FIXME: that won't work on Big Endian systems!)
--
- // Here's where _empty is really set!
-- int block_size = void;
-- ubyte* ptr = cast(ubyte*)(&block_size);
-+ ubyte[int.sizeof] tmp = void;
- auto _read = 0;
- while (_read < int.sizeof) {
-- auto _actually_read = _endian_stream.readBlock(ptr, int.sizeof - _read);
-+ auto _actually_read = _endian_stream.readBlock(tmp.ptr + _read, int.sizeof - _read);
- if (_actually_read == 0) {
- version(development) {
- import std.stdio;
-@@ -150,18 +147,15 @@ private:
- return;
- }
- _read += _actually_read;
-- ptr += _actually_read;
-- }
-+ }
-+
-+ int block_size = littleEndianToNative!int(tmp);
-
- version(extraVerbose) {
- import std.stdio;
- stderr.writeln("[uncompressed] record size: ", block_size);
- }
-
-- if (std.system.endian != Endian.littleEndian) {
-- switchEndianness(&block_size, int.sizeof);
-- }
--
- ubyte[] data = void;
- if (_reader !is null && _reader._seqprocmode) {
- if (block_size > _buffer.length)
-diff --git a/bio/bam/writer.d b/bio/bam/writer.d
-index 187b40a..4d5b4f1 100644
---- a/bio/bam/writer.d
-+++ b/bio/bam/writer.d
-@@ -8,10 +8,10 @@
- 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
-@@ -32,7 +32,6 @@ import bio.bam.readrange;
- import bio.core.bgzf.outputstream;
- import bio.core.bgzf.virtualoffset;
- import bio.core.utils.stream;
--import bio.core.utils.switchendianness;
-
- import std.parallelism;
- import std.exception;
-@@ -41,6 +40,7 @@ import std.traits;
- import std.system;
- import std.algorithm;
- import std.array;
-+import std.bitmanip;
-
- /** Class for outputting BAM.
- $(BR)
-@@ -73,12 +73,12 @@ final class BamWriter {
- /// compression_level = compression level, must be in range -1..9
- /// task_pool = task pool to use for parallel compression
- /// buffer_size = size of BgzfOutputStream buffer
-- this(std.stream.Stream stream,
-+ this(std.stream.Stream stream,
- int compression_level=-1,
- std.parallelism.TaskPool task_pool=std.parallelism.taskPool,
-- size_t buffer_size=0)
-+ size_t buffer_size=0)
- {
-- _stream = new BgzfOutputStream(stream, compression_level,
-+ _stream = new BgzfOutputStream(stream, compression_level,
- task_pool, buffer_size);
- _stream.setWriteHandler((ubyte[] uncompressed, ubyte[] compressed) {
- _bytes_written += compressed.length;
-@@ -120,13 +120,8 @@ final class BamWriter {
-
- package void writeInteger(T)(T integer) if (isIntegral!T)
- {
-- T num = integer;
-- static if (T.sizeof != 1) {
-- if (std.system.endian != Endian.littleEndian) {
-- switchEndianness(&num, T.sizeof);
-- }
-- }
-- _stream.writeExact(&num, T.sizeof);
-+ ubyte[T.sizeof] buf = nativeToLittleEndian(integer);
-+ _stream.writeExact(buf.ptr, buf.length);
- }
-
- private {
-diff --git a/bio/core/bgzf/compress.d b/bio/core/bgzf/compress.d
-index 5bf01ad..63b959a 100644
---- a/bio/core/bgzf/compress.d
-+++ b/bio/core/bgzf/compress.d
-@@ -1,6 +1,6 @@
- /*
- This file is part of BioD.
-- Copyright (C) 2012-2014 Artem Tarasov <lomereiter at gmail.com>
-+ Copyright (C) 2012-2016 Artem Tarasov <lomereiter at gmail.com>
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the "Software"),
-@@ -8,10 +8,10 @@
- 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
-@@ -28,20 +28,20 @@ import bio.core.utils.zlib;
-
- import std.array;
- import std.system;
--import core.bitop;
-+import std.bitmanip: nativeToLittleEndian;
-
- /// Returns BGZF block containing compressed $(D chunk).
- /// If $(D buffer) is provided, it will be used for storing the block.
- ///
--/// Params:
-+/// Params:
- /// chunk = chunk of memory to be compressed
- /// level = compression level, see zlib documentation
- /// buffer = optional buffer which will be used for storing
- /// decompressed data
- ///
- /// For uncompressed BAM output, use level = 0.
--ubyte[] bgzfCompress(ubyte[] chunk, int level=-1, ubyte[] buffer=null)
--in
-+ubyte[] bgzfCompress(ubyte[] chunk, int level=-1, ubyte[] buffer=null)
-+in
- {
- assert(-1 <= level && level <= 9);
- }
-@@ -70,9 +70,9 @@ body
- zs.avail_out = cast(int)(buffer.length - BLOCK_HEADER_LENGTH - BLOCK_FOOTER_LENGTH);
-
- auto err = bio.core.utils.zlib.deflateInit2(&zs, /* compression level */ level,
-- /* deflated compression method */ Z_DEFLATED,
-- /* winbits (no header) */ -15,
-- /* memory usage level (default) */ 8,
-+ /* deflated compression method */ Z_DEFLATED,
-+ /* winbits (no header) */ -15,
-+ /* memory usage level (default) */ 8,
- /* default compression strategy */ Z_DEFAULT_STRATEGY);
- if (err != Z_OK) {
- throw new ZlibException("deflateInit2", err);
-@@ -94,20 +94,10 @@ body
- // Write (block length - 1) in BC subfield.
- // Why -1? To fit the value into 2 bytes (it's assumed to be in range 1-65536).
- ushort len = cast(ushort)(buffer.length - 1);
-- buffer[BLOCK_HEADER_LENGTH - 2] = len & 0xFF; // little endian
-- buffer[BLOCK_HEADER_LENGTH - 1] = len >> 8;
-+ buffer[BLOCK_HEADER_LENGTH - 2 .. $][0 .. 2] = nativeToLittleEndian(len);
-
- // Write the footer
-- *(cast(uint*)(buffer.ptr + buffer.length - 8)) = crc32(0, chunk);
-- *(cast(uint*)(buffer.ptr + buffer.length - 4)) = cast(uint)chunk.length;
--
-- uint* ptr;
-- if (std.system.endian != Endian.littleEndian) {
-- ptr = cast(uint*)(buffer.ptr + buffer.length - 8);
-- *ptr = bswap(*ptr);
-- ptr = cast(uint*)(buffer.ptr + buffer.length - 4);
-- *ptr = bswap(*ptr);
-- }
--
-+ buffer[$ - 8 .. $ - 4] = nativeToLittleEndian(crc32(0, chunk));
-+ buffer[$- 4 .. $] = nativeToLittleEndian(cast(uint)chunk.length);
- return buffer;
- }
-diff --git a/bio/core/bgzf/constants.d b/bio/core/bgzf/constants.d
-index 1985309..9136bc9 100644
---- a/bio/core/bgzf/constants.d
-+++ b/bio/core/bgzf/constants.d
-@@ -1,6 +1,6 @@
- /*
- This file is part of BioD.
-- Copyright (C) 2012 Artem Tarasov <lomereiter at gmail.com>
-+ Copyright (C) 2012-2016 Artem Tarasov <lomereiter at gmail.com>
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the "Software"),
-@@ -8,10 +8,10 @@
- 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
-@@ -23,9 +23,9 @@
- */
- module bio.core.bgzf.constants;
-
--immutable BGZF_MAGIC = 0x04_08_8B_1F; // little endian
-+immutable ubyte[4] BGZF_MAGIC = [0x1F, 0x8B, 0x8, 0x4];
-
--immutable ubyte[16] BLOCK_HEADER_START =
-+immutable ubyte[16] BLOCK_HEADER_START =
- [ 31, 139, 8, 4, // BGZF magic
- 0, 0, 0, 0, // GZIP modification time
- 0, // GZIP extra flags
-@@ -35,17 +35,17 @@ immutable ubyte[16] BLOCK_HEADER_START =
- 2, 0]; // Subfield length (holds 1 ushort)
-
- // empty block
--immutable ubyte[28] BGZF_EOF =
-- [31, 139, 8, 4,
-- 0, 0, 0, 0,
-- 0,
-- 255,
-- 6, 0,
-- 66, 67,
-- 2, 0,
-- 27, 0,
-- 3, 0,
-- 0, 0, 0, 0,
-+immutable ubyte[28] BGZF_EOF =
-+ [31, 139, 8, 4,
-+ 0, 0, 0, 0,
-+ 0,
-+ 255,
-+ 6, 0,
-+ 66, 67,
-+ 2, 0,
-+ 27, 0,
-+ 3, 0,
-+ 0, 0, 0, 0,
- 0, 0, 0, 0];
-
-
-@@ -58,4 +58,4 @@ immutable BLOCK_HEADER_LENGTH = BLOCK_HEADER_START.length + ushort.sizeof;
- immutable BLOCK_FOOTER_LENGTH = uint.sizeof + uint.sizeof;
-
- immutable BGZF_MAX_BLOCK_SIZE = 65536;
--immutable BGZF_BLOCK_SIZE = 0xFF00;
-+immutable BGZF_BLOCK_SIZE = 0xFF00;
-diff --git a/bio/core/bgzf/inputstream.d b/bio/core/bgzf/inputstream.d
-index fa9548b..169e189 100644
---- a/bio/core/bgzf/inputstream.d
-+++ b/bio/core/bgzf/inputstream.d
-@@ -1,6 +1,6 @@
- /*
- This file is part of BioD.
-- Copyright (C) 2013 Artem Tarasov <lomereiter at gmail.com>
-+ Copyright (C) 2013-2016 Artem Tarasov <lomereiter at gmail.com>
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the "Software"),
-@@ -8,10 +8,10 @@
- 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
-@@ -48,7 +48,7 @@ bool fillBgzfBufferFromStream(Stream stream, bool is_seekable,
- {
- if (stream.eof())
- return false;
--
-+
- ulong start_offset;
- void throwBgzfException(string msg) {
- throw new BgzfException("Error reading BGZF block starting from offset " ~
-@@ -57,24 +57,23 @@ bool fillBgzfBufferFromStream(Stream stream, bool is_seekable,
-
- if (is_seekable)
- start_offset = stream.position;
--
-+
- try {
-- uint bgzf_magic = void;
--
-- // TODO: fix byte order if needed
-+ ubyte[4] bgzf_magic = void;
-+
- size_t bytes_read;
-- while (bytes_read < uint.sizeof) {
-- auto buf = (cast(ubyte*)&bgzf_magic)[bytes_read .. uint.sizeof];
-- auto read_ = stream.read(buf);
-+ while (bytes_read < 4) {
-+ auto buf = bgzf_magic.ptr + bytes_read;
-+ auto read_ = stream.read(buf[0 .. 4 - bytes_read]);
- if (read_ == 0)
- return false;
- bytes_read += read_;
- }
-
-- if (bgzf_magic != BGZF_MAGIC) {
-+ if (bgzf_magic != BGZF_MAGIC) {
- throwBgzfException("wrong BGZF magic");
- }
--
-+
- ushort gzip_extra_length = void;
-
- if (is_seekable) {
-@@ -89,7 +88,7 @@ bool fillBgzfBufferFromStream(Stream stream, bool is_seekable,
- }
-
- stream.read(gzip_extra_length);
--
-+
- ushort bsize = void; // total Block SIZE minus 1
- bool found_block_size = false;
-
-@@ -99,16 +98,16 @@ bool fillBgzfBufferFromStream(Stream stream, bool is_seekable,
- ubyte si1 = void; // Subfield Identifier1
- ubyte si2 = void; // Subfield Identifier2
- ushort slen = void; // Subfield LENgth
--
-- stream.read(si1);
-- stream.read(si2);
-- stream.read(slen);
-
-- if (si1 == BAM_SI1 && si2 == BAM_SI2) {
-+ stream.read(si1);
-+ stream.read(si2);
-+ stream.read(slen);
-+
-+ if (si1 == BAM_SI1 && si2 == BAM_SI2) {
- // found 'BC' as subfield identifier
--
-+
- if (slen != 2) {
-- throwBgzfException("wrong BC subfield length: " ~
-+ throwBgzfException("wrong BC subfield length: " ~
- to!string(slen) ~ "; expected 2");
- }
-
-@@ -117,7 +116,7 @@ bool fillBgzfBufferFromStream(Stream stream, bool is_seekable,
- }
-
- // read block size
-- stream.read(bsize);
-+ stream.read(bsize);
- found_block_size = true;
-
- // skip the rest
-@@ -139,11 +138,11 @@ bool fillBgzfBufferFromStream(Stream stream, bool is_seekable,
- if (number_of_bytes_read !is null)
- *number_of_bytes_read += nbytes;
- len += nbytes;
-- }
-+ }
-
- if (len != gzip_extra_length) {
-- throwBgzfException("total length of subfields in bytes (" ~
-- to!string(len) ~
-+ throwBgzfException("total length of subfields in bytes (" ~
-+ to!string(len) ~
- ") is not equal to gzip_extra_length (" ~
- to!string(gzip_extra_length) ~ ")");
- }
-@@ -151,7 +150,7 @@ bool fillBgzfBufferFromStream(Stream stream, bool is_seekable,
- if (!found_block_size) {
- throwBgzfException("block size was not found in any subfield");
- }
--
-+
- // read compressed data
- auto cdata_size = bsize - gzip_extra_length - 19;
- if (cdata_size > BGZF_MAX_BLOCK_SIZE) {
-@@ -178,7 +177,7 @@ bool fillBgzfBufferFromStream(Stream stream, bool is_seekable,
-
- if (number_of_bytes_read !is null)
- *number_of_bytes_read += 12 + cdata_size + block.crc32.sizeof + block.input_size.sizeof;
--
-+
- // version(extraVerbose) {stderr.writeln("[compressed] read block input size: ", block.input_size);}
- block._buffer = buffer[0 .. max(block.input_size, cdata_size)];
- block.start_offset = start_offset;
-@@ -213,7 +212,7 @@ class StreamSupplier : BgzfBlockSupplier {
- size_t _size;
- ushort _skip_start;
- }
--
-+
- ///
- this(Stream stream, ushort skip_start=0) {
- _stream = stream;
-@@ -267,7 +266,7 @@ class StreamChunksSupplier : BgzfBlockSupplier {
- }
- }
- }
--
-+
- this(Stream stream, bio.core.bgzf.chunk.Chunk[] chunks) {
- _stream = stream;
- assert(_stream.seekable);
-@@ -485,7 +484,7 @@ class BgzfInputStream : Stream {
- setEOF();
- return 0;
- }
--
-+
- auto buffer = cast(ubyte*)buf;
-
- auto len = min(size, _read_buffer.length);
---
-2.11.0
-
=====================================
debian/patches/0003-include-the-AH-header-tag-to-SQ-lines.patch deleted
=====================================
@@ -1,31 +0,0 @@
-From 589d65025a68a42ec03bbf6d64c57a7da7754201 Mon Sep 17 00:00:00 2001
-From: indraniel <indraniel at gmail.com>
-Date: Thu, 4 Aug 2016 15:43:37 -0500
-Subject: [PATCH 03/14] + include the AH header tag to @SQ lines
-
- - the "AH" header tag corresponds to Alternate Haplotypes in ALT
- mapping mode
- - based on samtools/hts-specs issue 147: https://github.com/samtools/hts-specs/pull/147
- - this tag is already being produced by `bwa` 0.7.15
- * see tag 0.7.15 (r1140) https://github.com/lh3/bwa/releases/tag/v0.7.15
----
- bio/sam/header.d | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/bio/sam/header.d b/bio/sam/header.d
-index b6ec094..aceac15 100644
---- a/bio/sam/header.d
-+++ b/bio/sam/header.d
-@@ -223,7 +223,8 @@ mixin HeaderLineStruct!("SqLine", "@SQ", "name",
- Field!("assembly", "AS"),
- Field!("md5", "M5"),
- Field!("species", "SP"),
-- Field!("uri", "UR"));
-+ Field!("uri", "UR"),
-+ Field!("AlternateHaplotype", "AH"));
-
- mixin HeaderLineStruct!("RgLine", "@RG", "identifier",
- Field!("identifier", "ID"),
---
-2.11.0
-
=====================================
debian/patches/0004-use-consistent-naming-21.patch deleted
=====================================
@@ -1,33 +0,0 @@
-From 47d081e06cb2df81269ec31d45cc50f12ec3c8b1 Mon Sep 17 00:00:00 2001
-From: Artem Tarasov <artem.tarasov at embl.de>
-Date: Fri, 5 Aug 2016 06:43:33 +0200
-Subject: [PATCH 04/14] use consistent naming (#21)
-
----
- bio/sam/header.d | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/bio/sam/header.d b/bio/sam/header.d
-index aceac15..6f315e5 100644
---- a/bio/sam/header.d
-+++ b/bio/sam/header.d
-@@ -1,6 +1,6 @@
- /*
- This file is part of BioD.
-- Copyright (C) 2012-2015 Artem Tarasov <lomereiter at gmail.com>
-+ Copyright (C) 2012-2016 Artem Tarasov <lomereiter at gmail.com>
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the "Software"),
-@@ -224,7 +224,7 @@ mixin HeaderLineStruct!("SqLine", "@SQ", "name",
- Field!("md5", "M5"),
- Field!("species", "SP"),
- Field!("uri", "UR"),
-- Field!("AlternateHaplotype", "AH"));
-+ Field!("alternate_haplotype", "AH"));
-
- mixin HeaderLineStruct!("RgLine", "@RG", "identifier",
- Field!("identifier", "ID"),
---
-2.11.0
-
=====================================
debian/patches/0005-fixes-lomereiter-sambamba-244.patch deleted
=====================================
@@ -1,59 +0,0 @@
-From 1248586b54af4bd4dfb28ebfebfc6bf012e7a587 Mon Sep 17 00:00:00 2001
-From: Artem Tarasov <artem.tarasov at embl.de>
-Date: Sat, 10 Sep 2016 08:58:07 +0200
-Subject: [PATCH 05/14] fixes lomereiter/sambamba#244
-
----
- bio/bam/pileup.d | 14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/bio/bam/pileup.d b/bio/bam/pileup.d
-index 576a16b..a4c6a12 100644
---- a/bio/bam/pileup.d
-+++ b/bio/bam/pileup.d
-@@ -864,6 +864,11 @@ struct PileupChunkRange(C) {
- private bool _use_md_tag;
- private ulong _start_from;
- private ulong _end_at;
-+ private int _chunk_right_end;
-+
-+ private int computeRightEnd(ref ElementType!C chunk) {
-+ return chunk.map!(r => r.position + r.basesCovered()).reduce!max;
-+ }
-
- this(C chunks, bool use_md_tag, ulong start_from, ulong end_at) {
- _chunks = chunks;
-@@ -885,10 +890,9 @@ struct PileupChunkRange(C) {
- break;
- }
-
-- auto last_read = _current_chunk[$-1];
-- if (last_read.position + last_read.basesCovered() > start_from) {
-+ _chunk_right_end = computeRightEnd(_current_chunk);
-+ if (_chunk_right_end > start_from)
- break;
-- }
- }
- }
- }
-@@ -900,7 +904,7 @@ struct PileupChunkRange(C) {
- auto front() @property {
- auto end_pos = _current_chunk[$-1].position;
- if (_chunks.empty || _chunks.front[0].ref_id != _current_chunk[$-1].ref_id)
-- end_pos += _current_chunk[$-1].basesCovered();
-+ end_pos = _chunk_right_end;
-
- return makePileup(chain(_prev_chunk, _current_chunk),
- _use_md_tag,
-@@ -921,6 +925,8 @@ struct PileupChunkRange(C) {
- if (_current_chunk[0].ref_id >= 0) break;
- }
-
-+ _chunk_right_end = computeRightEnd(_current_chunk);
-+
- // if we changed reference, nullify prev_chunk
- if (_prev_chunk.length > 0 &&
- _prev_chunk[$ - 1].ref_id == _current_chunk[0].ref_id)
---
-2.11.0
-
=====================================
debian/patches/0006-switch-to-undead.stream.patch deleted
=====================================
@@ -1,265 +0,0 @@
-From c37b0e7e03de77d231d596a16293907fa4f7ca92 Mon Sep 17 00:00:00 2001
-From: John Colvin <john.loughran.colvin at gmail.com>
-Date: Fri, 16 Dec 2016 12:41:21 +0000
-Subject: [PATCH 06/14] switch to undead.stream;
-
----
- bio/bam/bai/indexing.d | 2 +-
- bio/bam/baifile.d | 2 +-
- bio/bam/reader.d | 2 +-
- bio/bam/readrange.d | 2 +-
- bio/bam/reference.d | 2 +-
- bio/bam/referenceinfo.d | 2 +-
- bio/bam/writer.d | 4 ++--
- bio/core/bgzf/inputstream.d | 2 +-
- bio/core/bgzf/outputstream.d | 2 +-
- bio/core/utils/stream.d | 4 ++--
- bio/core/utils/switchendianness.d | 2 +-
- bio/sff/reader.d | 2 +-
- bio/sff/readrange.d | 2 +-
- bio/sff/writer.d | 2 +-
- dub.json | 5 ++++-
- examples/create_bam_from_scratch.d | 2 +-
- test/unittests.d | 2 +-
- 17 files changed, 22 insertions(+), 19 deletions(-)
-
-diff --git a/bio/bam/bai/indexing.d b/bio/bam/bai/indexing.d
-index 270f5e6..43e89d3 100644
---- a/bio/bam/bai/indexing.d
-+++ b/bio/bam/bai/indexing.d
-@@ -30,7 +30,7 @@ import bio.bam.constants;
- import bio.bam.bai.bin;
- import bio.core.bgzf.chunk;
-
--import std.stream;
-+import undead.stream;
- import std.array;
- import std.algorithm;
- import std.system;
-diff --git a/bio/bam/baifile.d b/bio/bam/baifile.d
-index 57359a9..276e685 100644
---- a/bio/bam/baifile.d
-+++ b/bio/bam/baifile.d
-@@ -28,7 +28,7 @@ public import bio.bam.bai.bin;
- import bio.core.bgzf.virtualoffset;
- import bio.bam.constants;
-
--import std.stream;
-+import undead.stream;
- import std.system;
- import std.exception;
- import std.algorithm;
-diff --git a/bio/bam/reader.d b/bio/bam/reader.d
-index fae864f..728ccb5 100644
---- a/bio/bam/reader.d
-+++ b/bio/bam/reader.d
-@@ -94,7 +94,7 @@ class BamReader : IBamSamReader {
- }
- -------------------------------------------
- */
-- this(std.stream.Stream stream,
-+ this(undead.stream.Stream stream,
- std.parallelism.TaskPool task_pool = std.parallelism.taskPool) {
- _source_stream = new EndianStream(stream, Endian.littleEndian);
- _task_pool = task_pool;
-diff --git a/bio/bam/readrange.d b/bio/bam/readrange.d
-index 6767a74..fc17aff 100644
---- a/bio/bam/readrange.d
-+++ b/bio/bam/readrange.d
-@@ -29,7 +29,7 @@ import bio.bam.reader;
- import bio.core.bgzf.inputstream;
- import bio.core.bgzf.virtualoffset;
-
--import std.stream;
-+import undead.stream;
- import std.algorithm;
- import std.system;
- import std.bitmanip;
-diff --git a/bio/bam/reference.d b/bio/bam/reference.d
-index 997e6b4..6406b32 100644
---- a/bio/bam/reference.d
-+++ b/bio/bam/reference.d
-@@ -47,7 +47,7 @@ import bio.bam.region;
- import bio.bam.randomaccessmanager;
- import bio.core.bgzf.virtualoffset;
-
--import std.stream;
-+import undead.stream;
- import std.exception;
- import std.array;
-
-diff --git a/bio/bam/referenceinfo.d b/bio/bam/referenceinfo.d
-index 3824fe8..91b8d96 100644
---- a/bio/bam/referenceinfo.d
-+++ b/bio/bam/referenceinfo.d
-@@ -23,7 +23,7 @@
- */
- module bio.bam.referenceinfo;
-
--import std.stream;
-+import undead.stream;
- import std.exception;
- import std.array;
-
-diff --git a/bio/bam/writer.d b/bio/bam/writer.d
-index 4d5b4f1..5e92930 100644
---- a/bio/bam/writer.d
-+++ b/bio/bam/writer.d
-@@ -35,7 +35,7 @@ import bio.core.utils.stream;
-
- import std.parallelism;
- import std.exception;
--import std.stream;
-+import undead.stream;
- import std.traits;
- import std.system;
- import std.algorithm;
-@@ -73,7 +73,7 @@ final class BamWriter {
- /// compression_level = compression level, must be in range -1..9
- /// task_pool = task pool to use for parallel compression
- /// buffer_size = size of BgzfOutputStream buffer
-- this(std.stream.Stream stream,
-+ this(undead.stream.Stream stream,
- int compression_level=-1,
- std.parallelism.TaskPool task_pool=std.parallelism.taskPool,
- size_t buffer_size=0)
-diff --git a/bio/core/bgzf/inputstream.d b/bio/core/bgzf/inputstream.d
-index 169e189..2bfc658 100644
---- a/bio/core/bgzf/inputstream.d
-+++ b/bio/core/bgzf/inputstream.d
-@@ -30,7 +30,7 @@ import bio.core.bgzf.chunk;
- import bio.bam.constants;
- import bio.core.utils.roundbuf;
-
--import std.stream;
-+import undead.stream;
- import std.exception;
- import std.conv;
- import std.parallelism;
-diff --git a/bio/core/bgzf/outputstream.d b/bio/core/bgzf/outputstream.d
-index b9f3d07..89cbecb 100644
---- a/bio/core/bgzf/outputstream.d
-+++ b/bio/core/bgzf/outputstream.d
-@@ -28,7 +28,7 @@ import bio.core.bgzf.compress;
-
- import bio.core.utils.roundbuf;
-
--import std.stream;
-+import undead.stream;
- import std.exception;
- import std.parallelism;
- import std.array;
-diff --git a/bio/core/utils/stream.d b/bio/core/utils/stream.d
-index 6c5146d..ee57fe7 100644
---- a/bio/core/utils/stream.d
-+++ b/bio/core/utils/stream.d
-@@ -1,6 +1,6 @@
- module bio.core.utils.stream;
-
--public import std.stream;
-+public import undead.stream;
- import core.stdc.stdio;
- import core.stdc.errno;
- import core.stdc.string;
-@@ -48,7 +48,7 @@ FileMode toFileMode(string mode) {
- return result;
- }
-
--final class File: std.stream.File {
-+final class File: undead.stream.File {
- this(string filename, string mode="rb") {
- version (Posix) {
- // Issue 8528 workaround
-diff --git a/bio/core/utils/switchendianness.d b/bio/core/utils/switchendianness.d
-index 7b141cf..6772e70 100644
---- a/bio/core/utils/switchendianness.d
-+++ b/bio/core/utils/switchendianness.d
-@@ -1,5 +1,5 @@
- /**
-- (Almost) a copy-paste from std/stream.d
-+ (Almost) a copy-paste from undead.stream.d
- */
- module bio.core.utils.switchendianness;
-
-diff --git a/bio/sff/reader.d b/bio/sff/reader.d
-index d0c21a2..257a859 100644
---- a/bio/sff/reader.d
-+++ b/bio/sff/reader.d
-@@ -29,7 +29,7 @@ import bio.sff.readrange;
- import bio.sff.constants;
-
- import bio.core.utils.stream;
--import std.stream;
-+import undead.stream;
- import std.system;
- import std.range;
- import std.exception;
-diff --git a/bio/sff/readrange.d b/bio/sff/readrange.d
-index eda29d3..5f70f08 100644
---- a/bio/sff/readrange.d
-+++ b/bio/sff/readrange.d
-@@ -5,7 +5,7 @@ import bio.sff.index;
- import bio.core.utils.switchendianness;
-
- import std.algorithm;
--import std.stream;
-+import undead.stream;
- import std.system;
- import std.array;
-
-diff --git a/bio/sff/writer.d b/bio/sff/writer.d
-index 7937d79..1ebd0ca 100644
---- a/bio/sff/writer.d
-+++ b/bio/sff/writer.d
-@@ -4,7 +4,7 @@ import bio.sff.constants;
- import bio.sff.utils.roundup;
-
- import bio.core.utils.stream;
--import std.stream;
-+import undead.stream;
- import std.system;
-
- /// Class for outputting SFF files
-diff --git a/dub.json b/dub.json
-index ec26904..6135f32 100644
---- a/dub.json
-+++ b/dub.json
-@@ -8,5 +8,8 @@
- "copyright": "Copyright © 2016, BioD developers",
- "license": "MIT",
- "sourcePaths": ["bio"],
-- "importPaths": ["bio"]
-+ "importPaths": ["bio"],
-+ "dependencies": {
-+ "undead": "~>1.0.6"
-+ }
- }
-diff --git a/examples/create_bam_from_scratch.d b/examples/create_bam_from_scratch.d
-index ad6053a..b011d93 100644
---- a/examples/create_bam_from_scratch.d
-+++ b/examples/create_bam_from_scratch.d
-@@ -3,7 +3,7 @@
- // this example shows how to create BAM files from scratch
- import bio.bam.read, bio.bam.referenceinfo, bio.sam.header;
- import bio.bam.reader, bio.bam.writer;
--import std.stream, std.stdio;
-+import undead.stream, std.stdio;
-
- void main() {
- auto header = new SamHeader(); // First, create SAM header
-diff --git a/test/unittests.d b/test/unittests.d
-index 4435008..cefa6a9 100644
---- a/test/unittests.d
-+++ b/test/unittests.d
-@@ -49,7 +49,7 @@ import bio.core.utils.roundbuf;
- import std.path;
- import std.range;
- import std.stdio;
--import std.stream;
-+import undead.stream;
- import std.algorithm;
- import std.array;
- import std.conv;
---
-2.11.0
-
=====================================
debian/patches/0007-std.c-core.stdc.patch deleted
=====================================
@@ -1,175 +0,0 @@
-From 4901cda76512a1c819bc2f9ec2af7048ae9db80d Mon Sep 17 00:00:00 2001
-From: John Colvin <john.loughran.colvin at gmail.com>
-Date: Fri, 16 Dec 2016 13:30:13 +0000
-Subject: [PATCH 07/14] std.c -> core.stdc
-
----
- bio/bam/bai/indexing.d | 2 +-
- bio/bam/read.d | 2 +-
- bio/bam/thirdparty/msgpack.d | 4 ++--
- bio/bam/utils/array.d | 2 +-
- bio/core/bgzf/outputstream.d | 6 +++---
- bio/core/utils/bylinefast.d | 2 +-
- bio/core/utils/format.d | 6 +++---
- bio/core/utils/stream.d | 2 +-
- bio/sam/reader.d | 2 +-
- 9 files changed, 14 insertions(+), 14 deletions(-)
-
-diff --git a/bio/bam/bai/indexing.d b/bio/bam/bai/indexing.d
-index 43e89d3..fec5662 100644
---- a/bio/bam/bai/indexing.d
-+++ b/bio/bam/bai/indexing.d
-@@ -35,7 +35,7 @@ import std.array;
- import std.algorithm;
- import std.system;
- import std.exception;
--import std.c.string;
-+import core.stdc.string;
-
- // Suppose we have an alignment which covers bases on a reference,
- // starting from one position and ending at another position.
-diff --git a/bio/bam/read.d b/bio/bam/read.d
-index 6e81263..3f51dc8 100644
---- a/bio/bam/read.d
-+++ b/bio/bam/read.d
-@@ -72,7 +72,7 @@ import std.system;
- import std.traits;
- import std.array;
- import std.bitmanip;
--import std.c.stdlib;
-+import core.stdc.stdlib;
-
- /**
- Represents single CIGAR operation
-diff --git a/bio/bam/thirdparty/msgpack.d b/bio/bam/thirdparty/msgpack.d
-index bf5ca5b..1032b33 100644
---- a/bio/bam/thirdparty/msgpack.d
-+++ b/bio/bam/thirdparty/msgpack.d
-@@ -59,7 +59,7 @@ else
- // for Converting Endian using ntohs and ntohl;
- version(Windows)
- {
-- import std.c.windows.winsock;
-+ import core.stdc.windows.winsock;
- }
- else
- {
-@@ -82,7 +82,7 @@ static if (real.sizeof == double.sizeof) {
- import std.numeric;
- }
-
--version(unittest) import std.file, std.c.string;
-+version(unittest) import std.file, core.stdc.string;
-
-
- @trusted:
-diff --git a/bio/bam/utils/array.d b/bio/bam/utils/array.d
-index 4e5f8a1..42000df 100644
---- a/bio/bam/utils/array.d
-+++ b/bio/bam/utils/array.d
-@@ -23,7 +23,7 @@
- */
- module bio.bam.utils.array;
-
--import std.c.string;
-+import core.stdc.string;
- import std.traits;
-
- /// Modifies array in-place so that $(D slice) is replaced by
-diff --git a/bio/core/bgzf/outputstream.d b/bio/core/bgzf/outputstream.d
-index 89cbecb..ae335be 100644
---- a/bio/core/bgzf/outputstream.d
-+++ b/bio/core/bgzf/outputstream.d
-@@ -34,7 +34,7 @@ import std.parallelism;
- import std.array;
- import std.algorithm : max;
- import std.typecons;
--import std.c.stdlib;
-+import core.stdc.stdlib;
-
- alias void delegate(ubyte[], ubyte[]) BlockWriteHandler;
-
-@@ -88,7 +88,7 @@ class BgzfOutputStream : Stream {
-
- // 1 extra block to which we can write while n_tasks are executed
- auto comp_buf_size = (2 * n_tasks + 2) * max_block_size;
-- auto p = cast(ubyte*)std.c.stdlib.malloc(comp_buf_size);
-+ auto p = cast(ubyte*)core.stdc.stdlib.malloc(comp_buf_size);
- _compression_buffer = p[0 .. comp_buf_size];
- _buffer = _compression_buffer[0 .. block_size];
- _tmp = _compression_buffer[max_block_size .. max_block_size * 2];
-@@ -210,7 +210,7 @@ class BgzfOutputStream : Stream {
- _stream.close();
-
- writeable = false;
-- std.c.stdlib.free(_compression_buffer.ptr);
-+ core.stdc.stdlib.free(_compression_buffer.ptr);
- }
-
- /// Adds EOF block. This function is called in close() method.
-diff --git a/bio/core/utils/bylinefast.d b/bio/core/utils/bylinefast.d
-index 50fb756..6a71520 100644
---- a/bio/core/utils/bylinefast.d
-+++ b/bio/core/utils/bylinefast.d
-@@ -6,7 +6,7 @@ module bio.core.utils.bylinefast;
-
- import std.stdio;
- import std.string: indexOf;
--import std.c.string: memmove;
-+import core.stdc.string: memmove;
-
- /**
- Reads by line in an efficient way (10 times faster than File.byLine from std.stdio).
-diff --git a/bio/core/utils/format.d b/bio/core/utils/format.d
-index ae8b4e6..a3ac3f1 100644
---- a/bio/core/utils/format.d
-+++ b/bio/core/utils/format.d
-@@ -34,8 +34,8 @@
- */
- module bio.core.utils.format;
-
--import std.c.stdio;
--import std.c.stdlib;
-+import core.stdc.stdio;
-+import core.stdc.stdlib;
- import std.string;
- import std.traits;
- import std.array;
-@@ -161,7 +161,7 @@ private {
- if (isSomeString!T)
- {
- auto str = cast(const(char)[])s;
-- std.c.string.memcpy(sink, str.ptr, str.length);
-+ core.stdc.string.memcpy(sink, str.ptr, str.length);
- sink += str.length;
- }
-
-diff --git a/bio/core/utils/stream.d b/bio/core/utils/stream.d
-index ee57fe7..b3f7d34 100644
---- a/bio/core/utils/stream.d
-+++ b/bio/core/utils/stream.d
-@@ -15,7 +15,7 @@ version(Posix){
- version(Windows) {
- private import std.file;
- private import std.utf;
-- private import std.c.windows.windows;
-+ private import core.stdc.windows.windows;
- extern (Windows) {
- DWORD GetFileType(HANDLE hFile);
- }
-diff --git a/bio/sam/reader.d b/bio/sam/reader.d
-index e7724ed..4302e9b 100644
---- a/bio/sam/reader.d
-+++ b/bio/sam/reader.d
-@@ -49,7 +49,7 @@ import std.typecons;
- import std.parallelism;
- import std.process;
- import std.exception;
--import std.c.string;
-+import core.stdc.string;
-
- BamRead _parseSamRecord(Tuple!(char[], SamReader, OutBuffer) t) {
- auto r = parseAlignmentLine(cast(string)t[0], t[1]._header, t[2]);
---
-2.11.0
-
=====================================
debian/patches/0008-fix-deprecations-and-some-warnings.patch deleted
=====================================
@@ -1,187 +0,0 @@
-From 4394f15bfdda766dce69fd3f5711d05bae71a1bb Mon Sep 17 00:00:00 2001
-From: John Colvin <john.loughran.colvin at gmail.com>
-Date: Fri, 16 Dec 2016 14:25:58 +0000
-Subject: [PATCH 08/14] fix deprecations and some warnings
-
----
- bio/bam/randomaccessmanager.d | 1 +
- bio/bam/read.d | 1 +
- bio/bam/reader.d | 2 +-
- bio/bam/snpcallers/maq.d | 2 +-
- bio/bam/tagvalue.d | 2 +-
- bio/bam/thirdparty/msgpack.d | 8 ++++----
- bio/core/utils/format.d | 1 +
- bio/core/utils/outbuffer.d | 2 +-
- bio/core/utils/stream.d | 1 -
- bio/sam/header.d | 2 +-
- dub.json | 3 ++-
- 11 files changed, 14 insertions(+), 11 deletions(-)
-
-diff --git a/bio/bam/randomaccessmanager.d b/bio/bam/randomaccessmanager.d
-index e5beb4b..fcd5d62 100644
---- a/bio/bam/randomaccessmanager.d
-+++ b/bio/bam/randomaccessmanager.d
-@@ -50,6 +50,7 @@ import std.traits;
- import std.exception;
- import std.container;
- import std.parallelism;
-+static import std.file;
-
- debug {
- import std.stdio;
-diff --git a/bio/bam/read.d b/bio/bam/read.d
-index 3f51dc8..b2f8cd1 100644
---- a/bio/bam/read.d
-+++ b/bio/bam/read.d
-@@ -1579,6 +1579,7 @@ unittest {
-
- {
- import std.typecons;
-+ static import bio.bam.thirdparty.msgpack;
- auto packer = bio.bam.thirdparty.msgpack.packer(Appender!(ubyte[])());
- read.toMsgpack(packer);
- auto data = packer.stream.data;
-diff --git a/bio/bam/reader.d b/bio/bam/reader.d
-index 728ccb5..f1fb8d4 100644
---- a/bio/bam/reader.d
-+++ b/bio/bam/reader.d
-@@ -95,7 +95,7 @@ class BamReader : IBamSamReader {
- -------------------------------------------
- */
- this(undead.stream.Stream stream,
-- std.parallelism.TaskPool task_pool = std.parallelism.taskPool) {
-+ TaskPool task_pool = taskPool) {
- _source_stream = new EndianStream(stream, Endian.littleEndian);
- _task_pool = task_pool;
-
-diff --git a/bio/bam/snpcallers/maq.d b/bio/bam/snpcallers/maq.d
-index 2cb8a4b..3eee066 100644
---- a/bio/bam/snpcallers/maq.d
-+++ b/bio/bam/snpcallers/maq.d
-@@ -5,7 +5,7 @@ module bio.bam.snpcallers.maq;
- */
-
- import core.stdc.math;
--import std.math : LN2, LN10, isnan;
-+import std.math : LN2, LN10, isNaN;
- import std.traits;
- import std.range;
- import std.algorithm;
-diff --git a/bio/bam/tagvalue.d b/bio/bam/tagvalue.d
-index dbd9aad..55adb1d 100644
---- a/bio/bam/tagvalue.d
-+++ b/bio/bam/tagvalue.d
-@@ -296,7 +296,7 @@ string injectOpCast() {
- }
-
- cs ~= `(is(T == string)) {` ~
-- ` if (is_string) {`
-+ ` if (is_string) {` ~
- ` return bam_typeid == 'Z' ? u.Z : u.H;`~
- ` } else if (is_integer || is_float || is_character) {`~
- ` `~injectSwitchPrimitive("string")~
-diff --git a/bio/bam/thirdparty/msgpack.d b/bio/bam/thirdparty/msgpack.d
-index 1032b33..8aea071 100644
---- a/bio/bam/thirdparty/msgpack.d
-+++ b/bio/bam/thirdparty/msgpack.d
-@@ -344,7 +344,7 @@ struct PackerImpl(Stream) if (isOutputRange!(Stream, ubyte) && isOutputRange!(St
- * Params:
- * withFieldName = serialize class / struct with field name
- */
-- this(bool withFieldName = false)
-+ this(bool withFieldName)
- {
- withFieldName_ = withFieldName;
- }
-@@ -3145,7 +3145,7 @@ struct Value
- * type = the type of value.
- */
- @safe
-- this(Type type = Type.nil)
-+ this(Type type)
- {
- this.type = type;
- }
-@@ -3617,7 +3617,7 @@ struct Value
- ret ^= value.toHash();
- }
- return ret;
-- } catch assert(0);
-+ } catch (Exception) assert(0);
- }
- }
- }
-@@ -4656,7 +4656,7 @@ mixin template MessagePackable(Members...)
- if (withFieldName) {
- packer.beginMap(this.tupleof.length);
- foreach (i, member; this.tupleof) {
-- pack(getFieldName!(typeof(this), i));
-+ packer.pack(getFieldName!(typeof(this), i));
- packer.pack(member);
- }
- } else {
-diff --git a/bio/core/utils/format.d b/bio/core/utils/format.d
-index a3ac3f1..74bcfaf 100644
---- a/bio/core/utils/format.d
-+++ b/bio/core/utils/format.d
-@@ -36,6 +36,7 @@ module bio.core.utils.format;
-
- import core.stdc.stdio;
- import core.stdc.stdlib;
-+static import core.stdc.string;
- import std.string;
- import std.traits;
- import std.array;
-diff --git a/bio/core/utils/outbuffer.d b/bio/core/utils/outbuffer.d
-index 56c0879..983bb58 100644
---- a/bio/core/utils/outbuffer.d
-+++ b/bio/core/utils/outbuffer.d
-@@ -93,7 +93,7 @@ class OutBuffer {
- /// Responsibility that there's enough capacity is on the user
- void putUnsafe(T)(T bytes) if (is(T == ubyte[])) {
- _heap_ptr[_heap_used .. _heap_used + bytes.length] = bytes[];
-- _heap_used += bytes.length;;
-+ _heap_used += bytes.length;
- }
-
- /// ditto
-diff --git a/bio/core/utils/stream.d b/bio/core/utils/stream.d
-index b3f7d34..aafcd43 100644
---- a/bio/core/utils/stream.d
-+++ b/bio/core/utils/stream.d
-@@ -135,7 +135,6 @@ final class File: undead.stream.File {
- if (ret <= 0) {
- size = 0;
- throw new ReadException("read timeout");
-- break;
- }
- } else {
- throw new ReadException(to!string(strerror(errno)));
-diff --git a/bio/sam/header.d b/bio/sam/header.d
-index 6f315e5..3d4697e 100644
---- a/bio/sam/header.d
-+++ b/bio/sam/header.d
-@@ -707,7 +707,7 @@ class SamHeader {
-
- JSONValue json;
- json.object = result;
-- sink.write(toJSON(&json));
-+ sink.write(toJSON(json));
- }
-
- /// Packs message in the following format:
-diff --git a/dub.json b/dub.json
-index 6135f32..693e9c7 100644
---- a/dub.json
-+++ b/dub.json
-@@ -11,5 +11,6 @@
- "importPaths": ["bio"],
- "dependencies": {
- "undead": "~>1.0.6"
-- }
-+ },
-+ "buildRequirements": ["allowWarnings"]
- }
---
-2.11.0
-
=====================================
debian/patches/0009-fix-toHash-signature.patch deleted
=====================================
@@ -1,128 +0,0 @@
-From 05f86b887728a30128c68cb14012f84093132eac Mon Sep 17 00:00:00 2001
-From: John Colvin <john.loughran.colvin at gmail.com>
-Date: Fri, 16 Dec 2016 14:28:52 +0000
-Subject: [PATCH 09/14] fix toHash signature
-
----
- bio/sam/header.d | 30 +++++++++++++++---------------
- 1 file changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/bio/sam/header.d b/bio/sam/header.d
-index 3d4697e..df88d64 100644
---- a/bio/sam/header.d
-+++ b/bio/sam/header.d
-@@ -8,10 +8,10 @@
- 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
-@@ -117,7 +117,7 @@ private {
- mixin template toSamMethod(string line_prefix, Field...) {
- void toSam(Sink)(auto ref Sink sink) const if (isSomeSink!Sink) {
- sink.write(line_prefix);
-- mixin(serializeFields!Field());
-+ mixin(serializeFields!Field());
- }
- }
-
-@@ -132,9 +132,9 @@ private {
-
- mixin template toHashMethod(string struct_name, string id_field, Field...) {
- static if (id_field != null) {
-- hash_t toHash() const {
-+ hash_t toHash() const nothrow @safe{
- hash_t result = 1;
-- mixin(generateHashExpression!Field());
-+ mixin(generateHashExpression!Field());
- return result;
- }
-
-@@ -195,12 +195,12 @@ private {
- }
- }
-
-- mixin template HeaderLineStruct(string struct_name,
-+ mixin template HeaderLineStruct(string struct_name,
- string line_prefix,
- string id_field,
-- Field...)
-+ Field...)
- {
-- mixin(`struct `~struct_name~`{
-+ mixin(`struct `~struct_name~`{
- mixin structFields!Field;
- mixin parseStaticMethod!(struct_name, Field);
- mixin toSamMethod!(line_prefix, Field);
-@@ -359,7 +359,7 @@ class HeaderLineDictionary(T) {
- _index_to_id.length = _index_to_id.length - 1;
-
- _dict.remove(id);
-- _id_to_index.remove(id);
-+ _id_to_index.remove(id);
-
- return true;
- }
-@@ -484,7 +484,7 @@ class SamHeader {
- try {
- sorting_order = to!SortingOrder(header_line.sorting_order);
- } catch (ConvException e) {
-- sorting_order = SortingOrder.unknown;
-+ sorting_order = SortingOrder.unknown;
- // FIXME: should we do that silently?
- }
- } else {
-@@ -536,14 +536,14 @@ class SamHeader {
-
- core.memory.GC.enable();
- }
--
-+
- /// Format version
- string format_version;
-
- /// Sorting order
- SortingOrder sorting_order = SortingOrder.unknown;
-
-- /// Dictionary of @SQ lines.
-+ /// Dictionary of @SQ lines.
- /// Removal is not allowed, you can only replace the whole dictionary.
- SqLineDictionary sequences() @property {
- if (_sequences is null)
-@@ -624,7 +624,7 @@ class SamHeader {
- sink.write(to!string(sorting_order));
- }
- sink.write('\n');
--
-+
- for (size_t i = 0; i < sequences.length; i++) {
- auto sq_line = getSequence(i);
- sq_line.toSam(sink);
-@@ -713,7 +713,7 @@ class SamHeader {
- /// Packs message in the following format:
- /// $(BR)
- /// MsgPack array with elements
-- /// $(OL
-+ /// $(OL
- /// $(LI format version - string)
- /// $(LI sorting order - string)
- /// $(LI @SQ lines - array of dictionaries)
-@@ -789,7 +789,7 @@ unittest {
- dict["zzz"] = zzz;
- header.sequences = dict;
-
-- assert(header.text ==
-+ assert(header.text ==
- "@HD\tVN:1.4\tSO:coordinate\n at SQ\tSN:yay\tLN:111\n at SQ\tSN:zzz\tLN:222\tUR:ftp://nyan.cat\n");
- assert(header.sequences == dict);
-
---
-2.11.0
-
=====================================
debian/patches/0011-better-.travis.yml-uses-dub-test-and-tests-ldc.patch deleted
=====================================
@@ -1,24 +0,0 @@
-From 27cbaadf3707728f18621970ba60fe9a4d5755aa Mon Sep 17 00:00:00 2001
-From: John Colvin <john.loughran.colvin at gmail.com>
-Date: Fri, 16 Dec 2016 14:35:27 +0000
-Subject: [PATCH 11/14] better .travis.yml, uses dub test and tests ldc
-
----
- .travis.yml | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/.travis.yml b/.travis.yml
-index d7b3485..5a09379 100644
---- a/.travis.yml
-+++ b/.travis.yml
-@@ -1,3 +1,5 @@
- language: d
--script:
--- rdmd -unittest -d test/unittests.d
-+
-+d:
-+ - dmd
-+ - ldc
---
-2.11.0
-
=====================================
debian/patches/0013-fix-toJSON-usage-for-new-and-old-compilers.patch deleted
=====================================
@@ -1,28 +0,0 @@
-From 468c01931dcdade9478c6849e85a105c8930c604 Mon Sep 17 00:00:00 2001
-From: John Colvin <john.loughran.colvin at gmail.com>
-Date: Fri, 16 Dec 2016 14:40:47 +0000
-Subject: [PATCH 13/14] fix toJSON usage for new and old compilers
-
----
- bio/sam/header.d | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/bio/sam/header.d b/bio/sam/header.d
-index df88d64..57054bf 100644
---- a/bio/sam/header.d
-+++ b/bio/sam/header.d
-@@ -707,7 +707,10 @@ class SamHeader {
-
- JSONValue json;
- json.object = result;
-- sink.write(toJSON(json));
-+ static if (__VERSION__ < 2072)
-+ sink.write(toJSON(&json));
-+ else
-+ sink.write(toJSON(json));
- }
-
- /// Packs message in the following format:
---
-2.11.0
-
=====================================
debian/patches/0014-Add-compareCoordinatesAndStrand-to-fix-sorting-test-.patch deleted
=====================================
@@ -1,840 +0,0 @@
-From b7f1db860d212ee5fb6f9adfb36c6e783aaeb6f5 Mon Sep 17 00:00:00 2001
-From: Pjotr Prins <pjotr.public01 at thebird.nl>
-Date: Thu, 23 Feb 2017 10:24:23 +0000
-Subject: [PATCH 14/14] Add compareCoordinatesAndStrand to fix sorting test in
- depth which came out when compiling with debug settings.
-
-sambamba depth now tests for a sorted BAM file irrespective of read
-direction/strand.
-
-Also removed trailing spaces in these files.
----
- bio/bam/multireader.d | 26 ++---
- bio/bam/read.d | 274 ++++++++++++++++++++++++++------------------------
- 2 files changed, 156 insertions(+), 144 deletions(-)
-
-diff --git a/bio/bam/multireader.d b/bio/bam/multireader.d
-index 2a9705f..c0650b0 100644
---- a/bio/bam/multireader.d
-+++ b/bio/bam/multireader.d
-@@ -8,10 +8,10 @@
- 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
-@@ -66,7 +66,7 @@ bool compare(T)(auto ref T r1, auto ref T r2) {
- sorting_order = r1[1].merged_header.sorting_order;
-
- if (sorting_order == SortingOrder.coordinate)
-- return compareCoordinates(r1[0], r2[0]);
-+ return compareCoordinatesAndStrand(r1[0], r2[0]);
- else if (sorting_order == SortingOrder.queryname)
- return compareReadNames(r1[0], r2[0]);
- else
-@@ -86,10 +86,10 @@ auto readRange(BamReader reader, SamHeaderMerger merger, FileId index) {
- return zip(reader.reads.multiBamReads(index), repeat(merger), repeat(index));
- }
-
--// (BamReader, SamHeaderMerger, FileId, int, uint, uint) ->
-+// (BamReader, SamHeaderMerger, FileId, int, uint, uint) ->
- // [(MultiBamRead, SamHeaderMerger, FileId)]
- auto readRange(BamReader reader, SamHeaderMerger merger, FileId index,
-- int ref_id, uint start, uint end)
-+ int ref_id, uint start, uint end)
- {
- int old_ref_id = ref_id;
- if (merger !is null)
-@@ -139,12 +139,12 @@ auto readRangesWithProgress
- .map!(t => readRangeWithProgress(t[0], t[1], t[2], f, u(t[2])))();
- }
-
--// ([BamReader], SamHeaderMerger, int, uint, uint) ->
-+// ([BamReader], SamHeaderMerger, int, uint, uint) ->
- // [[(MultiBamRead, SamHeaderMerger, FileId)]]
--auto readRanges(BamReader[] readers, SamHeaderMerger merger,
-- int ref_id, uint start, uint end)
-+auto readRanges(BamReader[] readers, SamHeaderMerger merger,
-+ int ref_id, uint start, uint end)
- {
-- return readers.zip(repeat(merger), iota(readers.length),
-+ return readers.zip(repeat(merger), iota(readers.length),
- repeat(ref_id), repeat(start), repeat(end))
- .map!(t => readRange(t[0], t[1], t[2], t[3], t[4], t[5]))();
- }
-@@ -160,8 +160,8 @@ auto readRanges(BamReader[] readers, SamHeaderMerger merger, BamRegion[] regions
-
- // tweaks RG and PG tags, and reference sequence ID
- // [[(BamRead, SamHeaderMerger, size_t)]] -> [[MultiBamRead]]
--auto adjustTags(R)(R reads_with_aux_info, TaskPool pool, size_t bufsize)
-- if (isInputRange!R)
-+auto adjustTags(R)(R reads_with_aux_info, TaskPool pool, size_t bufsize)
-+ if (isInputRange!R)
- {
- alias R2 = typeof(pool.map!adjustTagsInRange(reads_with_aux_info.front, 1));
- R2[] result;
-@@ -189,7 +189,7 @@ auto adjustTagsInRange(R)(R read_with_aux_info) if (!isInputRange!R) {
- auto new_ref_id = to!int(ref_id_map[file_id][old_ref_id]);
- if (new_ref_id != old_ref_id)
- read.ref_id = new_ref_id;
-- }
-+ }
-
- auto program = read["PG"];
- if (!program.is_nothing) {
-@@ -216,7 +216,7 @@ auto adjustTagsInRange(R)(R read_with_aux_info) if (!isInputRange!R) {
-
- ///
- class MultiBamReader {
--
-+
- ///
- this(BamReader[] readers) {
- _readers = readers;
-diff --git a/bio/bam/read.d b/bio/bam/read.d
-index b2f8cd1..2d8182c 100644
---- a/bio/bam/read.d
-+++ b/bio/bam/read.d
-@@ -8,10 +8,10 @@
- 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
-@@ -31,7 +31,7 @@
- /// ...
- /// assert(!read.is_unmapped); // check flag
- /// assert(read.ref_id != -1); // access field
--///
-+///
- /// int edit_distance = to!int(read["NM"]); // access tag
- /// read["NM"] = 0; // modify tag
- /// read["NM"] = null; // remove tag
-@@ -82,14 +82,14 @@ struct CigarOperation {
- /*
- WARNING!
-
-- It is very essential that the size of
-+ It is very essential that the size of
- this struct is EXACTLY equal to uint.sizeof!
-
- The reason is to avoid copying of arrays during alignment parsing.
-
- Namely, when some_pointer points to raw cigar data,
- we can just do a cast. This allows to access those data
-- directly, not doing any memory allocations.
-+ directly, not doing any memory allocations.
- */
-
- private uint raw; // raw data from BAM
-@@ -121,7 +121,7 @@ struct CigarOperation {
- uint length() @property const nothrow {
- return raw >> 4;
- }
--
-+
- /// CIGAR operation as one of MIDNSHP=X.
- /// Absent or invalid operation is represented by '?'
- char type() @property const nothrow {
-@@ -153,7 +153,7 @@ struct CigarOperation {
- return ((raw & 0xF) >> 1) == 2; // 4 or 5
- }
-
-- private void toSam(Sink)(auto ref Sink sink) const
-+ private void toSam(Sink)(auto ref Sink sink) const
- if (isSomeSink!Sink)
- {
- sink.write(length);
-@@ -170,7 +170,7 @@ struct CigarOperation {
- struct ExtendedCigarRange(CigarOpRange, MdOpRange) {
- static assert(isInputRange!CigarOpRange && is(Unqual!(ElementType!CigarOpRange) == CigarOperation));
- static assert(isInputRange!MdOpRange && is(Unqual!(ElementType!MdOpRange) == MdOperation));
--
-+
- private {
- CigarOpRange _cigar;
- MdOpRange _md_ops;
-@@ -199,7 +199,7 @@ struct ExtendedCigarRange(CigarOpRange, MdOpRange) {
- import std.stdio;
- writeln(_front_cigar_op, " - ", _front_md_op);
- }
--
-+
- if (_front_cigar_op.type != 'M')
- return _front_cigar_op;
-
-@@ -208,7 +208,7 @@ struct ExtendedCigarRange(CigarOpRange, MdOpRange) {
- uint len = min(_front_md_op.match, _front_cigar_op.length);
- return CigarOperation(len, '=');
- }
--
-+
- assert(_front_md_op.is_mismatch);
- return CigarOperation(min(_n_mismatches, _front_cigar_op.length), 'X');
- }
-@@ -237,7 +237,7 @@ struct ExtendedCigarRange(CigarOpRange, MdOpRange) {
- auto len = _front_cigar_op.length;
- if (_n_mismatches > 0) {
- enforce(_front_md_op.is_mismatch);
--
-+
- if (len > _n_mismatches) {
- _front_cigar_op = CigarOperation(len - _n_mismatches, 'M');
- _n_mismatches = 0;
-@@ -252,7 +252,7 @@ struct ExtendedCigarRange(CigarOpRange, MdOpRange) {
- } else {
- enforce(_front_md_op.is_match);
- auto n_matches = _front_md_op.match;
--
-+
- if (len > n_matches) {
- _front_cigar_op = CigarOperation(len - n_matches, 'M');
- fetchNextMdOp();
-@@ -265,14 +265,14 @@ struct ExtendedCigarRange(CigarOpRange, MdOpRange) {
- }
- }
- }
--
-+
- private {
- void fetchNextCigarOp() {
- if (_cigar.empty) {
- _empty = true;
- return;
- }
--
-+
- _front_cigar_op = _cigar.front;
- _cigar.popFront();
- }
-@@ -282,7 +282,7 @@ struct ExtendedCigarRange(CigarOpRange, MdOpRange) {
- return;
-
- _n_mismatches = 0;
--
-+
- _front_md_op = _md_ops.front;
- _md_ops.popFront();
-
-@@ -301,7 +301,7 @@ auto makeExtendedCigar(CigarOpRange, MdOpRange)(CigarOpRange cigar, MdOpRange md
- return ExtendedCigarRange!(CigarOpRange, MdOpRange)(cigar, md_ops);
- }
-
--/**
-+/**
- BAM record representation.
- */
- struct BamRead {
-@@ -377,42 +377,42 @@ struct BamRead {
- /// Next segment in the template unmapped
- @property bool mate_is_unmapped() const nothrow { return cast(bool)(flag & 0x8); }
- /// ditto
-- @property void mate_is_unmapped(bool b) { _setFlag( 3, b); }
-+ @property void mate_is_unmapped(bool b) { _setFlag( 3, b); }
-
- /// Sequence being reverse complemented
- @property bool is_reverse_strand() const nothrow { return cast(bool)(flag & 0x10); }
- /// ditto
-- @property void is_reverse_strand(bool b) { _setFlag( 4, b); }
-+ @property void is_reverse_strand(bool b) { _setFlag( 4, b); }
-
- /// Sequence of the next segment in the template being reversed
- @property bool mate_is_reverse_strand() const nothrow { return cast(bool)(flag & 0x20); }
- /// ditto
-- @property void mate_is_reverse_strand(bool b) { _setFlag( 5, b); }
-+ @property void mate_is_reverse_strand(bool b) { _setFlag( 5, b); }
-
- /// The first segment in the template
- @property bool is_first_of_pair() const nothrow { return cast(bool)(flag & 0x40); }
- /// ditto
-- @property void is_first_of_pair(bool b) { _setFlag( 6, b); }
-+ @property void is_first_of_pair(bool b) { _setFlag( 6, b); }
-
- /// The last segment in the template
- @property bool is_second_of_pair() const nothrow { return cast(bool)(flag & 0x80); }
- /// ditto
-- @property void is_second_of_pair(bool b) { _setFlag( 7, b); }
-+ @property void is_second_of_pair(bool b) { _setFlag( 7, b); }
-
- /// Secondary alignment
- @property bool is_secondary_alignment() const nothrow { return cast(bool)(flag & 0x100); }
- /// ditto
-- @property void is_secondary_alignment(bool b) { _setFlag( 8, b); }
-+ @property void is_secondary_alignment(bool b) { _setFlag( 8, b); }
-
- /// Not passing quality controls
- @property bool failed_quality_control() const nothrow { return cast(bool)(flag & 0x200); }
- /// ditto
-- @property void failed_quality_control(bool b) { _setFlag( 9, b); }
-+ @property void failed_quality_control(bool b) { _setFlag( 9, b); }
-
- /// PCR or optical duplicate
- @property bool is_duplicate() const nothrow { return cast(bool)(flag & 0x400); }
- /// ditto
-- @property void is_duplicate(bool b) { _setFlag(10, b); }
-+ @property void is_duplicate(bool b) { _setFlag(10, b); }
-
- /// Supplementary alignment
- @property bool is_supplementary() const nothrow { return cast(bool)(flag & 0x800); }
-@@ -438,10 +438,10 @@ struct BamRead {
-
- /// ditto
- @property void name(string new_name) {
-- enforce(new_name.length >= 1 && new_name.length <= 255,
-+ enforce(new_name.length >= 1 && new_name.length <= 255,
- "name length must be in 1-255 range");
- _dup();
-- bio.bam.utils.array.replaceSlice(_chunk,
-+ bio.bam.utils.array.replaceSlice(_chunk,
- _chunk[_read_name_offset .. _read_name_offset + _l_read_name - 1],
- cast(ubyte[])new_name);
- _l_read_name = cast(ubyte)(new_name.length + 1);
-@@ -449,7 +449,7 @@ struct BamRead {
-
- /// List of CIGAR operations
- @property const(CigarOperation)[] cigar() const nothrow {
-- return cast(const(CigarOperation)[])(_chunk[_cigar_offset .. _cigar_offset +
-+ return cast(const(CigarOperation)[])(_chunk[_cigar_offset .. _cigar_offset +
- _n_cigar_op * CigarOperation.sizeof]);
- }
-
-@@ -534,32 +534,32 @@ struct BamRead {
- return opIndex(_len - 1);
- }
-
-- /*
-+ /*
- I have no fucking idea why this tiny piece of code
- does NOT get inlined by stupid DMD compiler.
-
-- Therefore I use string mixin instead.
-+ Therefore I use string mixin instead.
- (hell yeah! Back to the 90s! C macros rulez!)
-
- private size_t _getActualPosition(size_t index) const
- {
- if (_use_first_4_bits) {
- // [0 1] [2 3] [4 5] [6 7] ...
-- // |
-- // V
-- // 0 1 2 3
-+ // |
-+ // V
-+ // 0 1 2 3
- return index >> 1;
- } else {
- // [. 0] [1 2] [3 4] [5 6] ...
-- // |
-- // V
-- // 0 1 2 3
-+ // |
-+ // V
-+ // 0 1 2 3
- return (index >> 1) + (index & 1);
- }
-- }*/
-+ }*/
-
- private static string _getActualPosition(string index) {
-- return "((" ~ index ~") >> 1) + " ~
-+ return "((" ~ index ~") >> 1) + " ~
- "(_use_first_4_bits ? 0 : ((" ~ index ~ ") & 1))";
- }
-
-@@ -574,15 +574,15 @@ struct BamRead {
-
- ///
- @property SequenceResult save() const {
-- return SequenceResult(_data[mixin(_getActualPosition("_index")) .. $],
-- _len - _index,
-+ return SequenceResult(_data[mixin(_getActualPosition("_index")) .. $],
-+ _len - _index,
- _useFirst4Bits(_index));
- }
-
- ///
- SequenceResult opSlice(size_t i, size_t j) const {
-- return SequenceResult(_data[mixin(_getActualPosition("_index + i")) .. $],
-- j - i,
-+ return SequenceResult(_data[mixin(_getActualPosition("_index + i")) .. $],
-+ j - i,
- _useFirst4Bits(_index + i));
- }
-
-@@ -668,7 +668,7 @@ struct BamRead {
- static assert(isRandomAccessRange!(ReturnType!sequence));
-
- /// Sets query sequence. Sets all base qualities to 255 (i.e. unknown).
-- @property void sequence(string seq)
-+ @property void sequence(string seq)
- {
- _dup();
-
-@@ -683,8 +683,8 @@ struct BamRead {
- replacement[i] |= cast(ubyte)(Base(seq[2 * i + 1]).internal_code);
- }
-
-- bio.bam.utils.array.replaceSlice(_chunk,
-- _chunk[_seq_offset .. _tags_offset],
-+ bio.bam.utils.array.replaceSlice(_chunk,
-+ _chunk[_seq_offset .. _tags_offset],
- replacement);
-
- _l_seq = cast(int)seq.length;
-@@ -715,7 +715,7 @@ struct BamRead {
- // 3) the code will be too complicated, whereas there're
- // not so many users of big-endian systems
- //
-- // In summa, BAM is little-endian format, so big-endian
-+ // In summa, BAM is little-endian format, so big-endian
- // users will suffer anyway, it's unavoidable.
-
- _chunk = chunk;
-@@ -727,33 +727,33 @@ struct BamRead {
- // Dealing with tags is the responsibility of TagStorage.
- fixTagStorageByteOrder();
- }
-- }
-+ }
-
-- // Doesn't touch tags, only fields.
-+ // Doesn't touch tags, only fields.
- // @@@TODO: NEEDS TESTING@@@
- private void switchChunkEndianness() {
-- // First 8 fields are 32-bit integers:
-- //
-- // 0) refID int
-- // 1) pos int
-- // 2) bin_mq_nl uint
-- // 3) flag_nc uint
-- // 4) l_seq int
-- // 5) next_refID int
-- // 6) next_pos int
-- // 7) tlen int
-+ // First 8 fields are 32-bit integers:
-+ //
-+ // 0) refID int
-+ // 1) pos int
-+ // 2) bin_mq_nl uint
-+ // 3) flag_nc uint
-+ // 4) l_seq int
-+ // 5) next_refID int
-+ // 6) next_pos int
-+ // 7) tlen int
- // ----------------------------------------------------
-- // (after them name follows which is string)
-- //
-+ // (after them name follows which is string)
-+ //
- switchEndianness(_chunk.ptr, 8 * uint.sizeof);
-
- // Then we need to switch endianness of CIGAR data:
-- switchEndianness(_chunk.ptr + _cigar_offset,
-+ switchEndianness(_chunk.ptr + _cigar_offset,
- _n_cigar_op * uint.sizeof);
- }
--
-- private size_t calculateChunkSize(string read_name,
-- string sequence,
-+
-+ private size_t calculateChunkSize(string read_name,
-+ string sequence,
- in CigarOperation[] cigar)
- {
- return 8 * int.sizeof
-@@ -776,7 +776,7 @@ struct BamRead {
- if (this._chunk is null) {
- this._chunk = new ubyte[calculateChunkSize(read_name, sequence, cigar)];
- }
--
-+
- this._refID = -1; // set default values
- this._pos = -1; // according to SAM/BAM
- this._mapq = 255; // specification
-@@ -817,7 +817,7 @@ struct BamRead {
- return result;
- }
-
-- /// Compare two alignments, including tags
-+ /// Compare two alignments, including tags
- /// (the tags must follow in the same order for equality).
- bool opEquals(BamRead other) const pure nothrow {
- // don't forget about _is_slice trick
-@@ -835,7 +835,7 @@ struct BamRead {
- @property size_t size_in_bytes() const {
- return int.sizeof + _chunk.length;
- }
--
-+
- package void write(BamWriter writer) {
- writer.writeInteger(cast(int)(_chunk.length));
-
-@@ -858,7 +858,7 @@ struct BamRead {
- /// Packs message in the following format:
- /// $(BR)
- /// MsgPack array with elements
-- /// $(OL
-+ /// $(OL
- /// $(LI name - string)
- /// $(LI flag - ushort)
- /// $(LI reference sequence id - int)
-@@ -916,9 +916,9 @@ struct BamRead {
- throw new FormatException("unknown format specifier");
- }
- }
--
-+
- /// ditto
-- void toSam(Sink)(auto ref Sink sink) const
-+ void toSam(Sink)(auto ref Sink sink) const
- if (isSomeSink!Sink)
- {
- sink.write(name);
-@@ -1025,10 +1025,10 @@ struct BamRead {
- } else {
- sink.writeJson(_reader.reference_sequences[mate_ref_id].name);
- }
--
-+
- sink.write(`,"pnext":`); sink.write(mate_position + 1);
- sink.write(`,"tlen":`); sink.write(template_length);
--
-+
- sink.write(`,"seq":"`);
- if (sequence_length == 0)
- sink.write('*');
-@@ -1041,7 +1041,7 @@ struct BamRead {
- sink.writeJson(base_qualities);
-
- sink.write(`,"tags":{`);
--
-+
- bool not_first = false;
- foreach (k, v; this) {
- if (not_first)
-@@ -1087,8 +1087,8 @@ struct BamRead {
- void raw_data(ubyte[] data) @property {
- _chunk = data;
- }
--
-- package ubyte[] _chunk; // holds all the data,
-+
-+ package ubyte[] _chunk; // holds all the data,
- // the access is organized via properties
- // (see below)
-
-@@ -1130,36 +1130,36 @@ private:
-
- // Official field names from SAM/BAM specification.
- // For internal use only
-- @property int _refID() const nothrow {
-- return *(cast( int*)(_chunk.ptr + int.sizeof * 0));
-+ @property int _refID() const nothrow {
-+ return *(cast( int*)(_chunk.ptr + int.sizeof * 0));
- }
-
-- @property int _pos() const nothrow {
-- return *(cast( int*)(_chunk.ptr + int.sizeof * 1));
-+ @property int _pos() const nothrow {
-+ return *(cast( int*)(_chunk.ptr + int.sizeof * 1));
- }
-
-- @property uint _bin_mq_nl() const nothrow pure @system {
-- return *(cast(uint*)(_chunk.ptr + int.sizeof * 2));
-+ @property uint _bin_mq_nl() const nothrow pure @system {
-+ return *(cast(uint*)(_chunk.ptr + int.sizeof * 2));
- }
-
-- @property uint _flag_nc() const nothrow {
-- return *(cast(uint*)(_chunk.ptr + int.sizeof * 3));
-+ @property uint _flag_nc() const nothrow {
-+ return *(cast(uint*)(_chunk.ptr + int.sizeof * 3));
- }
-
-- @property int _l_seq() const nothrow {
-- return *(cast( int*)(_chunk.ptr + int.sizeof * 4));
-+ @property int _l_seq() const nothrow {
-+ return *(cast( int*)(_chunk.ptr + int.sizeof * 4));
- }
-
- @property int _next_refID() const nothrow {
-- return *(cast( int*)(_chunk.ptr + int.sizeof * 5));
-+ return *(cast( int*)(_chunk.ptr + int.sizeof * 5));
- }
-
-- @property int _next_pos() const nothrow {
-- return *(cast( int*)(_chunk.ptr + int.sizeof * 6));
-+ @property int _next_pos() const nothrow {
-+ return *(cast( int*)(_chunk.ptr + int.sizeof * 6));
- }
-
- @property int _tlen() const nothrow {
-- return *(cast( int*)(_chunk.ptr + int.sizeof * 7));
-+ return *(cast( int*)(_chunk.ptr + int.sizeof * 7));
- }
-
- // Setters, also only for internal use
-@@ -1176,29 +1176,29 @@ private:
- //
- // The layout of bin_mq_nl and flag_nc is as follows
- // (upper bits -------> lower bits):
-- //
-+ //
- // bin_mq_nl [ { bin (16b) } { mapping quality (8b) } { read name length (8b) } ]
- //
- // flag_nc [ { flag (16b) } { n_cigar_op (16b) } ]
- //
-- @property ushort _bin() const nothrow {
-- return _bin_mq_nl >> 16;
-+ @property ushort _bin() const nothrow {
-+ return _bin_mq_nl >> 16;
- }
-- @property ubyte _mapq() const nothrow {
-- return (_bin_mq_nl >> 8) & 0xFF;
-+ @property ubyte _mapq() const nothrow {
-+ return (_bin_mq_nl >> 8) & 0xFF;
- }
-- @property ubyte _l_read_name() const nothrow pure {
-- return _bin_mq_nl & 0xFF;
-+ @property ubyte _l_read_name() const nothrow pure {
-+ return _bin_mq_nl & 0xFF;
- }
-- @property ushort _flag() const nothrow {
-- return _flag_nc >> 16;
-+ @property ushort _flag() const nothrow {
-+ return _flag_nc >> 16;
- }
-- @property ushort _n_cigar_op() const nothrow {
-- return _flag_nc & 0xFFFF;
-+ @property ushort _n_cigar_op() const nothrow {
-+ return _flag_nc & 0xFFFF;
- }
--
-+
- // Setters for those properties
-- @property void _bin(ushort n) { _bin_mq_nl = (_bin_mq_nl & 0xFFFF) | (n << 16); }
-+ @property void _bin(ushort n) { _bin_mq_nl = (_bin_mq_nl & 0xFFFF) | (n << 16); }
- @property void _mapq(ubyte n) { _bin_mq_nl = (_bin_mq_nl & ~0xFF00) | (n << 8); }
- @property void _l_read_name(ubyte n) { _bin_mq_nl = (_bin_mq_nl & ~0xFF ) | n; }
- @property void _flag(ushort n) { _flag_nc = (_flag_nc & 0xFFFF) | (n << 16); }
-@@ -1207,24 +1207,24 @@ private:
- // Offsets of various arrays in bytes.
- // Currently, are computed each time, so if speed will be an issue,
- // they can be made fields instead of properties.
-- @property size_t _read_name_offset() const nothrow pure {
-- return 8 * int.sizeof;
-+ @property size_t _read_name_offset() const nothrow pure {
-+ return 8 * int.sizeof;
- }
-
-- @property size_t _cigar_offset() const nothrow pure {
-- return _read_name_offset + _l_read_name * char.sizeof;
-+ @property size_t _cigar_offset() const nothrow pure {
-+ return _read_name_offset + _l_read_name * char.sizeof;
- }
-
-- @property size_t _seq_offset() const nothrow {
-- return _cigar_offset + _n_cigar_op * uint.sizeof;
-+ @property size_t _seq_offset() const nothrow {
-+ return _cigar_offset + _n_cigar_op * uint.sizeof;
- }
-
-- @property size_t _qual_offset() const nothrow {
-+ @property size_t _qual_offset() const nothrow {
- return _seq_offset + (_l_seq + 1) / 2;
- }
-
- // Offset of auxiliary data
-- @property size_t _tags_offset() const nothrow {
-+ @property size_t _tags_offset() const nothrow {
- return _qual_offset + _l_seq;
- }
-
-@@ -1257,7 +1257,7 @@ public:
- }
-
-
--/// Lazy tag storage.
-+/// Lazy tag storage.
- ///
- /// Provides hash-like access and opportunity to iterate
- /// storage like an associative array.
-@@ -1298,7 +1298,7 @@ mixin template TagStorage() {
- auto __tags_chunk = _tags_chunk; // _tags_chunk is evaluated lazily
- if (__tags_chunk.length < 4)
- return Value(null);
--
-+
- size_t offset = 0;
- while (offset + 1 < __tags_chunk.length) {
- if (__tags_chunk[offset .. offset + 2] == key) {
-@@ -1313,8 +1313,8 @@ mixin template TagStorage() {
- }
-
- /// ditto
-- void opIndexAssign(T)(T value, string key)
-- if (is(T == Value) || __traits(compiles, GetTypeId!T))
-+ void opIndexAssign(T)(T value, string key)
-+ if (is(T == Value) || __traits(compiles, GetTypeId!T))
- {
- static if(is(T == Value)) {
- enforce(key.length == 2, "Key length must be 2");
-@@ -1378,7 +1378,7 @@ mixin template TagStorage() {
- auto __tags_chunk = _tags_chunk;
- skipValue(offset, __tags_chunk); // now offset is updated and points to the end
- auto end = offset;
--
-+
- prepareSlice(_chunk, __tags_chunk[begin .. end], sizeInBytes(value));
-
- emplaceValue(_chunk.ptr + _tags_offset + begin, value);
-@@ -1428,9 +1428,9 @@ mixin template TagStorage() {
- if (std.system.endian == Endian.littleEndian) {
- writer.writeByteArray(_tags_chunk[]);
- } else {
-- fixTagStorageByteOrder();
-+ fixTagStorageByteOrder();
- writer.writeByteArray(_tags_chunk[]);
-- fixTagStorageByteOrder();
-+ fixTagStorageByteOrder();
- }
- }
-
-@@ -1486,7 +1486,7 @@ mixin template TagStorage() {
- p += size;
- }
- } else {
-- // skip
-+ // skip
- p += length;
- }
- } else {
-@@ -1509,8 +1509,8 @@ unittest {
- import std.math;
-
- writeln("Testing BamRead behaviour...");
-- auto read = BamRead("readname",
-- "AGCTGACTACGTAATAGCCCTA",
-+ auto read = BamRead("readname",
-+ "AGCTGACTACGTAATAGCCCTA",
- [CigarOperation(22, 'M')]);
- assert(read.sequence_length == 22);
- assert(read.cigar.length == 1);
-@@ -1522,7 +1522,7 @@ unittest {
- assert(read.name == "anothername");
- assert(read.cigarString() == "22M");
-
-- read.base_qualities = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
-+ read.base_qualities = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 16, 17, 18, 19, 20, 21, 22];
- assert(reduce!"a+b"(0, read.base_qualities) == 253);
-
-@@ -1602,7 +1602,7 @@ unittest {
- /// $(P The idea is that this should be a drop-in replacement for BamRead in algorithms,
- /// as the struct uses 'alias this' construction for the wrapped read.)
- struct EagerBamRead(R=BamRead) {
-- ///
-+ ///
- this(R read) {
- this.read = read;
- this.end_position = read.position + read.basesCovered();
-@@ -1612,7 +1612,7 @@ struct EagerBamRead(R=BamRead) {
- R read;
- ///
- alias read this;
--
-+
- /// End position on the reference, computed as position + basesCovered().
- int end_position;
-
-@@ -1629,11 +1629,11 @@ template isBamRead(T)
- {
- static if (is(Unqual!T : BamRead))
- enum isBamRead = true;
-- else
-- enum isBamRead = __traits(compiles,
-+ else
-+ enum isBamRead = __traits(compiles,
- {
- T t; bool p;
-- p = t.ref_id == 1; p = t.position == 2; p = t.bin.id == 3;
-+ p = t.ref_id == 1; p = t.position == 2; p = t.bin.id == 3;
- p = t.mapping_quality == 4; p = t.flag == 5; p = t.sequence_length == 6;
- p = t.mate_ref_id == 7; p = t.mate_position == 8; p = t.template_length == 9;
- p = t.is_paired; p = t.proper_pair; p = t.is_unmapped;
-@@ -1649,22 +1649,22 @@ template isBamRead(T)
- /// (return whether first read is 'less' than second))
- ///
- /// $(P This function can be called on:
--/// $(UL
-+/// $(UL
- /// $(LI two reads)
- /// $(LI read and string in any order)))
--bool compareReadNames(R1, R2)(const auto ref R1 a1, const auto ref R2 a2)
-+bool compareReadNames(R1, R2)(const auto ref R1 a1, const auto ref R2 a2)
- if (isBamRead!R1 && isBamRead!R2)
- {
- return a1.name < a2.name;
- }
-
--bool compareReadNames(R1, R2)(const auto ref R1 a1, const auto ref R2 a2)
-+bool compareReadNames(R1, R2)(const auto ref R1 a1, const auto ref R2 a2)
- if (isBamRead!R1 && isSomeString!R2)
- {
- return a1.name < a2;
- }
-
--bool compareReadNames(R1, R2)(const auto ref R1 a1, const auto ref R2 a2)
-+bool compareReadNames(R1, R2)(const auto ref R1 a1, const auto ref R2 a2)
- if (isSomeString!R1 && isBamRead!R2)
- {
- return a1 < a2.name;
-@@ -1747,10 +1747,12 @@ unittest {
- /// (returns whether first read is 'less' than second))
- ///
- /// $(P This function can be called on:
--/// $(UL
-+/// $(UL
- /// $(LI two reads (in this case, reference IDs are also taken into account))
- /// $(LI read and integer in any order)))
--bool compareCoordinates(R1, R2)(const auto ref R1 a1, const auto ref R2 a2)
-+
-+/// This function takes read direction into account (used for original samtools style sorting)
-+bool compareCoordinatesAndStrand(R1, R2)(const auto ref R1 a1, const auto ref R2 a2)
- if (isBamRead!R1 && isBamRead!R2)
- {
- if (a1.ref_id == -1) return false; // unmapped reads should be last
-@@ -1763,6 +1765,16 @@ bool compareCoordinates(R1, R2)(const auto ref R1 a1, const auto ref R2 a2)
- }
-
- bool compareCoordinates(R1, R2)(const auto ref R1 a1, const auto ref R2 a2)
-+ if (isBamRead!R1 && isBamRead!R2)
-+{
-+ if (a1.ref_id == -1) return false; // unmapped reads should be last
-+ if (a2.ref_id == -1) return true;
-+ if (a1.ref_id < a2.ref_id) return true;
-+ if (a1.ref_id > a2.ref_id) return false;
-+ return (a1.position < a2.position);
-+}
-+
-+bool compareCoordinates(R1, R2)(const auto ref R1 a1, const auto ref R2 a2)
- if (isBamRead!R1 && isIntegral!R2)
- {
- return a1.position < a2;
---
-2.11.0
-
=====================================
debian/patches/0015-Add-Meson-build-definition.patch deleted
=====================================
@@ -1,140 +0,0 @@
-From 815047a6f2ddbf2ae4aec9fcb32d624b543fd1d6 Mon Sep 17 00:00:00 2001
-From: Matthias Klumpp <matthias at tenstral.net>
-Date: Tue, 28 Feb 2017 14:44:30 +0100
-Subject: [PATCH] Add Meson build definition
-
----
- meson.build | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 127 insertions(+)
- create mode 100644 meson.build
-
---- /dev/null
-+++ b/meson.build
-@@ -0,0 +1,127 @@
-+project('BioD', 'd')
-+
-+project_version = '0.1.0'
-+project_soversion = '0'
-+
-+src_dir = include_directories('.')
-+pkgc = import('pkgconfig')
-+
-+#
-+# Dependencies
-+#
-+undead_dep = dependency('undead', version : '>=1.0.6')
-+zlib_dep = dependency('zlib')
-+
-+#
-+# Sources
-+#
-+biod_src = [
-+ 'bio/bam/utils/value.d',
-+ 'bio/bam/utils/samheadermerger.d',
-+ 'bio/bam/utils/array.d',
-+ 'bio/bam/utils/graph.d',
-+ 'bio/bam/pileup.d',
-+ 'bio/bam/readrange.d',
-+ 'bio/bam/reader.d',
-+ 'bio/bam/thirdparty/msgpack.d',
-+ 'bio/bam/baifile.d',
-+ 'bio/bam/iontorrent/flowcall.d',
-+ 'bio/bam/iontorrent/flowindex.d',
-+ 'bio/bam/splitter.d',
-+ 'bio/bam/abstractreader.d',
-+ 'bio/bam/bai/indexing.d',
-+ 'bio/bam/bai/bin.d',
-+ 'bio/bam/multireader.d',
-+ 'bio/bam/reference.d',
-+ 'bio/bam/md/operation.d',
-+ 'bio/bam/md/core.d',
-+ 'bio/bam/md/parse.d',
-+ 'bio/bam/md/reconstruct.d',
-+ 'bio/bam/tagvalue.d',
-+ 'bio/bam/validation/alignment.d',
-+ 'bio/bam/validation/samheader.d',
-+ 'bio/bam/region.d',
-+ 'bio/bam/randomaccessmanager.d',
-+ 'bio/bam/referenceinfo.d',
-+ 'bio/bam/constants.d',
-+ 'bio/bam/snpcallers/maq.d',
-+ 'bio/bam/snpcallers/simple.d',
-+ 'bio/bam/read.d',
-+ 'bio/bam/writer.d',
-+ 'bio/bam/baseinfo.d',
-+ 'bio/maf/reader.d',
-+ 'bio/maf/parser.d',
-+ 'bio/maf/block.d',
-+ 'bio/core/utils/memoize.d',
-+ 'bio/core/utils/algo.d',
-+ 'bio/core/utils/stream.d',
-+ 'bio/core/utils/zlib.d',
-+ 'bio/core/utils/tmpfile.d',
-+ 'bio/core/utils/roundbuf.d',
-+ 'bio/core/utils/format.d',
-+ 'bio/core/utils/bylinefast.d',
-+ 'bio/core/utils/range.d',
-+ 'bio/core/utils/switchendianness.d',
-+ 'bio/core/utils/outbuffer.d',
-+ 'bio/core/genotype.d',
-+ 'bio/core/fasta.d',
-+ 'bio/core/base.d',
-+ 'bio/core/kmer.d',
-+ 'bio/core/region.d',
-+ 'bio/core/tinymap.d',
-+ 'bio/core/sequence.d',
-+ 'bio/core/bgzf/outputstream.d',
-+ 'bio/core/bgzf/chunk.d',
-+ 'bio/core/bgzf/inputstream.d',
-+ 'bio/core/bgzf/constants.d',
-+ 'bio/core/bgzf/block.d',
-+ 'bio/core/bgzf/virtualoffset.d',
-+ 'bio/core/bgzf/compress.d',
-+ 'bio/core/call.d',
-+ 'bio/sff/utils/roundup.d',
-+ 'bio/sff/index.d',
-+ 'bio/sff/readrange.d',
-+ 'bio/sff/reader.d',
-+ 'bio/sff/constants.d',
-+ 'bio/sff/read.d',
-+ 'bio/sff/writer.d',
-+ 'bio/sam/utils/fastrecordparser.d',
-+ 'bio/sam/utils/recordparser.d',
-+ 'bio/sam/reader.d',
-+ 'bio/sam/header.d'
-+]
-+
-+#
-+# Includes
-+#
-+install_subdir('bio/', install_dir: 'include/d/')
-+
-+#
-+# Library and pkg-config
-+#
-+biod_lib = library('biod',
-+ [biod_src],
-+ include_directories: [src_dir],
-+ dependencies: [undead_dep, zlib_dep],
-+ install: true,
-+ version: project_version,
-+ soversion: project_soversion
-+)
-+pkgc.generate(name: 'biod',
-+ libraries: biod_lib,
-+ subdirs: 'd/',
-+ version: project_version,
-+ description: 'Bioinformatics library in D (utils for working with SAM, BAM, SFF formats).'
-+)
-+
-+#
-+# Tests
-+#
-+biod_test_exe = executable('biod_test',
-+ ['test/unittests.d',
-+ biod_src],
-+ include_directories: [src_dir],
-+ dependencies: [undead_dep, zlib_dep],
-+ d_args: meson.get_compiler('d').unittest_args()
-+)
-+test('biod_tests', biod_test_exe)
=====================================
debian/patches/0016-fix-type-conversion.patch deleted
=====================================
@@ -1,15 +0,0 @@
-Author: Matthias Klumpp <mak at debian.org>
-Last-Update: Mon, 10 Apr 2017 03:49:19 +0200
-Bug-Debian: https://bugs.debian.org/859688
-Description: undead.stream uses ulong instead of size_t for positions,
- so we do that too here to be compatible
-
---- a/bio/sff/read.d
-+++ b/bio/sff/read.d
-@@ -22,5 +22,5 @@ struct SffRead {
- ushort clip_adapter_right;
-
- /// Record start offset in the file
-- size_t file_offset;
-+ ulong file_offset; // undead.stream uses ulong instead of size_t for positions, so we do that too here to be compatible
- }
=====================================
debian/patches/0017_fix_expression_conversion.patch deleted
=====================================
@@ -1,56 +0,0 @@
-From: Pjotr Prins <pjotr.public01 at thebird.nl>
-Date: Sat, 28 Jul 2018 00:05:29 +0000
-Origin: https://github.com/biod/BioD/commit/dd07f3497979b5d7f32ad32476da5108ffc5121e
-Bug-Debian: https://bugs.debian.org/907451
-Subject: [PATCH] Fixes:
-
-BioD/bio/maf/reader.d(53): Error: cannot implicitly convert expression `this._f.byLine(cast(Flag)true, '\x0a')` of type `ByLineImpl!(char, char)` to `ByLine!(char, char)`
-
-See https://github.com/bioconda/bioconda-recipes/pull/8787#issuecomment-389195848
----
- bio/maf/reader.d | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/bio/maf/reader.d b/bio/maf/reader.d
-index 708c5b3..c57decd 100644
---- a/bio/maf/reader.d
-+++ b/bio/maf/reader.d
-@@ -1,6 +1,7 @@
- /*
- This file is part of BioD.
- Copyright (C) 2013 Artem Tarasov <lomereiter at gmail.com>
-+ Copyright (C) 2018 Pjotr Prins <pjotr.prins at thebird.nl>
-
- Permission is hereby granted, free of charge, to any person obtaining a
- copy of this software and associated documentation files (the "Software"),
-@@ -8,10 +9,10 @@
- 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
-@@ -50,7 +51,7 @@ struct MafBlockRange {
-
- this(string fn) {
- _f = File(fn);
-- _lines = _f.byLine(KeepTerminator.yes);
-+ _lines = cast(LineRange)_f.byLine(KeepTerminator.yes);
- skipHeader();
- popFront();
- }
-@@ -85,7 +86,7 @@ struct MafBlockRange {
-
- ///
- class MafReader {
--
-+
- private string _fn;
-
- ///
=====================================
debian/patches/001_fix_unit_tests.patch
=====================================
@@ -0,0 +1,21 @@
+Origin: https://github.com/biod/BioD/pull/38/commits/643b454f04f36d66c34304b7186a3d2c24fdf783
+From: Matthias Klumpp <matthias at tenstral.net>
+Date: Thu, 4 Oct 2018 14:33:37 +0200
+Subject: [PATCH] trivial: Fix unittests
+
+---
+ test/unittests.d | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/test/unittests.d b/test/unittests.d
+index d52fb687..263662af 100644
+--- a/test/unittests.d
++++ b/test/unittests.d
+@@ -22,6 +22,7 @@
+
+ */
+
++import bio.bam.cigar;
+ import bio.bam.reader;
+ import bio.bam.writer;
+ import bio.sam.reader;
=====================================
debian/patches/002_include_bio2.patch
=====================================
@@ -0,0 +1,66 @@
+Origin: https://github.com/biod/BioD/pull/38/commits/ee9428fea0d240ad6a65892346ddc051e086af16
+From: Matthias Klumpp <matthias at tenstral.net>
+Date: Thu, 4 Oct 2018 14:35:02 +0200
+Subject: [PATCH] meson: Include bio2 in libbiod build
+
+---
+ meson.build | 21 +++++++++++++++++++--
+ 1 file changed, 19 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 76da2a00..88f3bcc7 100644
+--- a/meson.build
++++ b/meson.build
+@@ -89,19 +89,33 @@ biod_src = [
+ 'bio/sam/utils/recordparser.d',
+ 'bio/sam/reader.d',
+ 'bio/sam/header.d'
++
++bio2_src = [
++ 'bio2/bam/header.d',
++ 'bio2/bam/reader.d',
++ 'bio2/bam/writer.d',
++ 'bio2/bgzf.d',
++ 'bio2/bgzf_writer.d',
++ 'bio2/constants.d',
++ 'bio2/hashing.d',
++ 'bio2/logger.d',
++ 'bio2/pileup.d',
++ 'bio2/reads.d',
++ 'bio2/unpack.d'
+ ]
+
+ #
+ # Includes
+ #
+-install_subdir('bio/', install_dir: 'include/d/')
++install_subdir('bio/', install_dir: 'include/d/bio/')
++install_subdir('bio2/', install_dir: 'include/d/bio/')
+
+ #
+ # Library and pkg-config
+ #
+ biod_lib = library('biod',
+- [biod_src],
+ include_directories: [src_dir],
++ [biod_src, bio2_src],
+ dependencies: [undead_dep, zlib_dep],
+ install: true,
+ version: project_version,
+@@ -111,6 +125,7 @@ pkgc.generate(name: 'biod',
+ libraries: biod_lib,
+ subdirs: 'd/',
+ version: project_version,
++ subdirs: 'd/bio/',
+ description: 'Bioinformatics library in D (utils for working with SAM, BAM, SFF formats).'
+ )
+
+@@ -121,6 +136,8 @@ biod_test_exe = executable('biod_test',
+ ['test/unittests.d',
+ biod_src],
+ include_directories: [src_dir],
++ biod_src,
++ bio2_src],
+ dependencies: [undead_dep, zlib_dep],
+ d_args: meson.get_compiler('d').unittest_args()
+ )
=====================================
debian/patches/003_modernize_meson.patch
=====================================
@@ -0,0 +1,199 @@
+From c059165f359327c5a67aadabe18d6016efb58780 Mon Sep 17 00:00:00 2001
+From: Matthias Klumpp <matthias at tenstral.net>
+Date: Thu, 4 Oct 2018 14:35:24 +0200
+Subject: [PATCH] meson: Modernize Meson build definition
+Origin: https://github.com/biod/BioD/pull/38/commits/c059165f359327c5a67aadabe18d6016efb58780
+
+---
+ meson.build | 131 +++++++++++++++++++++++++++-------------------------
+ 1 file changed, 67 insertions(+), 64 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 88f3bcc7..9d308efd 100644
+--- a/meson.build
++++ b/meson.build
+@@ -1,6 +1,9 @@
+-project('BioD', 'd')
++project('BioD', 'd',
++ meson_version : '>=0.46',
++ license : 'MIT',
++ version : '0.2.2'
++)
+
+-project_version = '0.1.0'
+ project_soversion = '0'
+
+ src_dir = include_directories('.')
+@@ -16,79 +19,83 @@ zlib_dep = dependency('zlib')
+ # Sources
+ #
+ biod_src = [
+- 'bio/bam/utils/value.d',
+- 'bio/bam/utils/samheadermerger.d',
+- 'bio/bam/utils/array.d',
+- 'bio/bam/utils/graph.d',
+- 'bio/bam/pileup.d',
+- 'bio/bam/readrange.d',
+- 'bio/bam/reader.d',
+- 'bio/bam/thirdparty/msgpack.d',
++ 'bio/bam/abstractreader.d',
++ 'bio/bam/bai/bin.d',
+ 'bio/bam/baifile.d',
++ 'bio/bam/bai/indexing.d',
++ 'bio/bam/baseinfo.d',
++ 'bio/bam/cigar.d',
++ 'bio/bam/constants.d',
+ 'bio/bam/iontorrent/flowcall.d',
+ 'bio/bam/iontorrent/flowindex.d',
+- 'bio/bam/splitter.d',
+- 'bio/bam/abstractreader.d',
+- 'bio/bam/bai/indexing.d',
+- 'bio/bam/bai/bin.d',
+- 'bio/bam/multireader.d',
+- 'bio/bam/reference.d',
+- 'bio/bam/md/operation.d',
+ 'bio/bam/md/core.d',
++ 'bio/bam/md/operation.d',
+ 'bio/bam/md/parse.d',
+ 'bio/bam/md/reconstruct.d',
+- 'bio/bam/tagvalue.d',
+- 'bio/bam/validation/alignment.d',
+- 'bio/bam/validation/samheader.d',
+- 'bio/bam/region.d',
++ 'bio/bam/multireader.d',
++ 'bio/bam/pileup.d',
+ 'bio/bam/randomaccessmanager.d',
++ 'bio/bam/read.d',
++ 'bio/bam/reader.d',
++ 'bio/bam/readrange.d',
++ 'bio/bam/reference.d',
+ 'bio/bam/referenceinfo.d',
+- 'bio/bam/constants.d',
++ 'bio/bam/region.d',
+ 'bio/bam/snpcallers/maq.d',
+ 'bio/bam/snpcallers/simple.d',
+- 'bio/bam/read.d',
++ 'bio/bam/splitter.d',
++ 'bio/bam/tagvalue.d',
++ 'bio/bam/thirdparty/msgpack.d',
++ 'bio/bam/utils/array.d',
++ 'bio/bam/utils/graph.d',
++ 'bio/bam/utils/samheadermerger.d',
++ 'bio/bam/utils/value.d',
++ 'bio/bam/validation/alignment.d',
++ 'bio/bam/validation/samheader.d',
+ 'bio/bam/writer.d',
+- 'bio/bam/baseinfo.d',
+- 'bio/maf/reader.d',
+- 'bio/maf/parser.d',
+- 'bio/maf/block.d',
+- 'bio/core/utils/memoize.d',
+- 'bio/core/utils/algo.d',
+- 'bio/core/utils/stream.d',
+- 'bio/core/utils/zlib.d',
+- 'bio/core/utils/tmpfile.d',
+- 'bio/core/utils/roundbuf.d',
+- 'bio/core/utils/format.d',
+- 'bio/core/utils/bylinefast.d',
+- 'bio/core/utils/range.d',
+- 'bio/core/utils/switchendianness.d',
+- 'bio/core/utils/outbuffer.d',
+- 'bio/core/genotype.d',
+- 'bio/core/fasta.d',
+ 'bio/core/base.d',
+- 'bio/core/kmer.d',
+- 'bio/core/region.d',
+- 'bio/core/tinymap.d',
+- 'bio/core/sequence.d',
+- 'bio/core/bgzf/outputstream.d',
++ 'bio/core/bgzf/block.d',
+ 'bio/core/bgzf/chunk.d',
+- 'bio/core/bgzf/inputstream.d',
++ 'bio/core/bgzf/compress.d',
+ 'bio/core/bgzf/constants.d',
+- 'bio/core/bgzf/block.d',
++ 'bio/core/bgzf/inputstream.d',
++ 'bio/core/bgzf/outputstream.d',
+ 'bio/core/bgzf/virtualoffset.d',
+- 'bio/core/bgzf/compress.d',
+ 'bio/core/call.d',
+- 'bio/sff/utils/roundup.d',
+- 'bio/sff/index.d',
+- 'bio/sff/readrange.d',
+- 'bio/sff/reader.d',
+- 'bio/sff/constants.d',
+- 'bio/sff/read.d',
+- 'bio/sff/writer.d',
++ 'bio/core/fasta.d',
++ 'bio/core/fastq.d',
++ 'bio/core/genotype.d',
++ 'bio/core/kmer.d',
++ 'bio/core/region.d',
++ 'bio/core/sequence.d',
++ 'bio/core/tinymap.d',
++ 'bio/core/utils/algo.d',
++ 'bio/core/utils/bylinefast.d',
++ 'bio/core/utils/exception.d',
++ 'bio/core/utils/format.d',
++ 'bio/core/utils/memoize.d',
++ 'bio/core/utils/outbuffer.d',
++ 'bio/core/utils/range.d',
++ 'bio/core/utils/roundbuf.d',
++ 'bio/core/utils/stream.d',
++ 'bio/core/utils/switchendianness.d',
++ 'bio/core/utils/tmpfile.d',
++ 'bio/core/utils/zlib.d',
++ 'bio/maf/block.d',
++ 'bio/maf/parser.d',
++ 'bio/maf/reader.d',
++ 'bio/sam/header.d',
++ 'bio/sam/reader.d',
+ 'bio/sam/utils/fastrecordparser.d',
+ 'bio/sam/utils/recordparser.d',
+- 'bio/sam/reader.d',
+- 'bio/sam/header.d'
++ 'bio/sff/constants.d',
++ 'bio/sff/index.d',
++ 'bio/sff/read.d',
++ 'bio/sff/reader.d',
++ 'bio/sff/readrange.d',
++ 'bio/sff/utils/roundup.d',
++ 'bio/sff/writer.d'
++]
+
+ bio2_src = [
+ 'bio2/bam/header.d',
+@@ -114,18 +121,16 @@ install_subdir('bio2/', install_dir: 'include/d/bio/')
+ # Library and pkg-config
+ #
+ biod_lib = library('biod',
+- include_directories: [src_dir],
+ [biod_src, bio2_src],
+ dependencies: [undead_dep, zlib_dep],
+ install: true,
+- version: project_version,
++ version: meson.project_version(),
+ soversion: project_soversion
+ )
+ pkgc.generate(name: 'biod',
+ libraries: biod_lib,
+- subdirs: 'd/',
+- version: project_version,
+ subdirs: 'd/bio/',
++ version: meson.project_version(),
+ description: 'Bioinformatics library in D (utils for working with SAM, BAM, SFF formats).'
+ )
+
+@@ -134,11 +139,9 @@ pkgc.generate(name: 'biod',
+ #
+ biod_test_exe = executable('biod_test',
+ ['test/unittests.d',
+- biod_src],
+- include_directories: [src_dir],
+ biod_src,
+ bio2_src],
+ dependencies: [undead_dep, zlib_dep],
+- d_args: meson.get_compiler('d').unittest_args()
++ d_unittest: true
+ )
+ test('biod_tests', biod_test_exe)
=====================================
debian/patches/___series___ deleted
=====================================
@@ -1,15 +0,0 @@
-# fix_deprecated_imports.patch
-0002-improved-big-endian-support.patch
-0003-include-the-AH-header-tag-to-SQ-lines.patch
-0004-use-consistent-naming-21.patch
-0005-fixes-lomereiter-sambamba-244.patch
-0006-switch-to-undead.stream.patch
-0007-std.c-core.stdc.patch
-0008-fix-deprecations-and-some-warnings.patch
-0009-fix-toHash-signature.patch
-0011-better-.travis.yml-uses-dub-test-and-tests-ldc.patch
-0013-fix-toJSON-usage-for-new-and-old-compilers.patch
-0014-Add-compareCoordinatesAndStrand-to-fix-sorting-test-.patch
-0015-Add-Meson-build-definition.patch
-0016-fix-type-conversion.patch
-0017_fix_expression_conversion.patch
=====================================
debian/patches/fix_deprecated_imports.patch deleted
=====================================
@@ -1,81 +0,0 @@
-Author: Andreas Tille <tille at debian.org>
-Last-Update: Sat, 25 Feb 2017 20:34:50 +0100
-Description: Fix deprecated imports
-
---- a/bio/bam/bai/indexing.d
-+++ b/bio/bam/bai/indexing.d
-@@ -35,7 +35,7 @@ import std.array;
- import std.algorithm;
- import std.system;
- import std.exception;
--import std.c.string;
-+import core.std.c.string;
-
- // Suppose we have an alignment which covers bases on a reference,
- // starting from one position and ending at another position.
---- a/bio/bam/thirdparty/msgpack.d
-+++ b/bio/bam/thirdparty/msgpack.d
-@@ -82,7 +82,7 @@ static if (real.sizeof == double.sizeof)
- import std.numeric;
- }
-
--version(unittest) import std.file, std.c.string;
-+version(unittest) import std.file, core.std.c.string;
-
-
- @trusted:
---- a/bio/bam/utils/array.d
-+++ b/bio/bam/utils/array.d
-@@ -23,7 +23,7 @@
- */
- module bio.bam.utils.array;
-
--import std.c.string;
-+import core.std.c.string;
- import std.traits;
-
- /// Modifies array in-place so that $(D slice) is replaced by
---- a/bio/core/utils/bylinefast.d
-+++ b/bio/core/utils/bylinefast.d
-@@ -6,7 +6,7 @@ module bio.core.utils.bylinefast;
-
- import std.stdio;
- import std.string: indexOf;
--import std.c.string: memmove;
-+import core.std.c.string: memmove;
-
- /**
- Reads by line in an efficient way (10 times faster than File.byLine from std.stdio).
---- a/bio/core/utils/format.d
-+++ b/bio/core/utils/format.d
-@@ -34,8 +34,8 @@
- */
- module bio.core.utils.format;
-
--import std.c.stdio;
--import std.c.stdlib;
-+import core.stdc.stdio;
-+import core.stdc.stdlib;
- import std.string;
- import std.traits;
- import std.array;
-@@ -161,7 +161,7 @@ private {
- if (isSomeString!T)
- {
- auto str = cast(const(char)[])s;
-- std.c.string.memcpy(sink, str.ptr, str.length);
-+ core.std.c.string.memcpy(sink, str.ptr, str.length);
- sink += str.length;
- }
-
---- a/bio/sam/reader.d
-+++ b/bio/sam/reader.d
-@@ -49,7 +49,7 @@ import std.typecons;
- import std.parallelism;
- import std.process;
- import std.exception;
--import std.c.string;
-+import core.std.c.string;
-
- BamRead _parseSamRecord(Tuple!(char[], SamReader, OutBuffer) t) {
- auto r = parseAlignmentLine(cast(string)t[0], t[1]._header, t[2]);
=====================================
debian/patches/series
=====================================
@@ -0,0 +1,3 @@
+001_fix_unit_tests.patch
+002_include_bio2.patch
+003_modernize_meson.patch
View it on GitLab: https://salsa.debian.org/med-team/libbiod/compare/49fc8f170add4866ca318e86396e9003b1468973...0186cd8f07f9608c6b1cc85170b05c4f7292832a
--
View it on GitLab: https://salsa.debian.org/med-team/libbiod/compare/49fc8f170add4866ca318e86396e9003b1468973...0186cd8f07f9608c6b1cc85170b05c4f7292832a
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/20181009/4c7c7ea0/attachment-0001.html>
More information about the debian-med-commit
mailing list