Skip to content
Commits on Source (10)
# Everything generated from ./bootstrap (autoconf)
Makefile.in
aclocal.m4
autom4te.cache
compile
config.guess
config.sub
configure
depcomp
install-sh
io_lib/Makefile.in
io_lib_config.h.in
ltmain.sh
missing
progs/Makefile.in
test-driver
tests/Makefile.in
# Skip local build sub-directories per OS.
build.*
language: c
compiler: gcc
script: ./bootstrap; ./configure && make && (make check || (cat tests/test-suite.log; false))
Version 1.14.11 (16th October 2018)
---------------
Updates:
* CRAM: http(s) queries now honour redirects.
The User-Agent header is also set, which is necessary in some
proxies.
Bug fixes:
* CRAM: fix to major range query bug introduced in 1.14.10.
* CRAM: more bug fixing on range queries when multi-threading (EOF
detection).
* The test harness now works correctly in bourne shell, without
using bashisms.
Version 1.14.10 (26th September 2018)
---------------
Updates:
* BAM: Libdeflate support (https://github.com/ebiggers/libdeflate).
This library is significantly faster than zlib, so it is a good
alternative to the Cloudflare and/or Intel libraries.
Configure using --with-libdeflate=/dir/to/deflate/install
* CRAM *EXPERIMENTAL*: Added custom quality and identifier codecs.
Also added the ability to use libbsc as a general purpose codec.
These are NOT OFFICIAL and so not enabled by default (version 3.0).
However as a technology demonstration only, they are available with
scramble -V3.1 or -V4.0 for evaluation and to promote discussion on
future CRAM formats. Do not use these on production data.
Implementations of the codecs and CRAM version 4.0 layout are liable
to change without prior warning.
* CRAM: name sorted files now automatically switch to non-ref mode.
Bug fixes:
* CRAM: Considerable fixes to multi-threading.
- Using more than 1 slice per container with threading now works.
- Removal of race conditions when using CRAM_OPT_REQUIRED_FIELDS.
- Combinations of ref and no-ref mode in adjacent containers.
- Other misc. threading bugs.
* Corrected end-of-range check in some scenarios.
* CRAM: bug fix to index creation when a slice contains exactly one
alignment.
* SAM: fixed parsing of illegal sequence characters (eg "Z").
These are now treated as "N" and not "=".
* BAM/SAM: protect against out of bound CIGAR operations.
* CRAM: hardening of rANS codec against malicious input.
Also fixed a very rare frequency renormalisation case.
* CRAM: fix with range queries used in conjuction with turning off
sequence retrieval (via CRAM_OPT_REQUIRED_FIELDS).
* Improved test harness for Windows and some header file problems.
* Fixed bgzip on big endian systems. (Debian bugs 876839, 876840)
Version 1.14.9 (9th February 2017)
--------------
......
//Technically this is provided by Winsock2.h
//https://msdn.microsoft.com/en-us/library/windows/desktop/ms740560%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
typedef struct timeval {
long tv_sec;
long tv_usec;
} timeval;
......@@ -30,6 +30,7 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
AUTOMAKE_OPTIONS = foreign no-dependencies
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = io_lib progs tests
......
This diff is collapsed.
Io_lib: Version 1.14.9
=======================
Io_lib: Version 1.14.11
========================
Io_lib is a library of file reading and writing code to provide a general
purpose SAM/BAM/CRAM, trace file (and Experiment File) reading
......@@ -32,69 +32,136 @@ too. See the file include/Read.h for the generic 'Read' structure.
See the CHANGES for a summary of older updates or git logs for the
full details.
Version 1.14.9 (9th February 2017)
--------------
Version 1.14.11 (16th October 2018)
---------------
Updates:
* BAM: Added CRC checking. Bizarrely this was absent here and in most
other BAM implementations too. Pure BAM decode of an uncompressed
BAM is around 9% slower and compressed BAM to compressed BAM is
almost identical. The most significant hit is reading uncompressed
BAM (and doing nothing else) which is 120% slower as CRC dominates.
Options are available to disable the CRC checking incase this is an
issue (scramble -!).
* CRAM: http(s) queries now honour redirects.
The User-Agent header is also set, which is necessary in some
proxies.
Bug fixes:
* CRAM: fix to major range query bug introduced in 1.14.10.
* CRAM: more bug fixing on range queries when multi-threading (EOF
detection).
* CRAM: Now supports bgziped fasta references.
* The test harness now works correctly in bourne shell, without
using bashisms.
* CRAM/SAM: Headers are now kept in the same basic type order while
transcoding. (Eg all @PG before all @SQ, or vice versa, depending on
input ordering.)
* CRAM: Compression level 1 is now faster but larger. (The old -1 and
-2 were too similar.)
Version 1.14.10 (26th September 2018)
---------------
* CRAM: Improved compression efficiency in some files, when switching
from sorted to unsorted data.
Updates:
* CRAM: Various speedups relating to memory handling,
multi-threaded performance and the rANS codec.
* BAM: Libdeflate support (https://github.com/ebiggers/libdeflate).
This library is significantly faster than zlib, so it is a good
alternative to the Cloudflare and/or Intel libraries.
* CRAM: Block CRC checks are now only done when the block is used,
speeding up multi-threading and tools that do not decode all blocks
(eg flagstat).
See below for details.
* Scramble -g and -G options to generate and reuse bgzip indices when
reading and writing BAM files.
* CRAM *EXPERIMENTAL*: Added custom quality and identifier codecs.
Also added the ability to use libbsc as a general purpose codec.
* Scramble -q option to omit updating the @PG header records.
These are NOT OFFICIAL and so not enabled by default (version 3.0).
However as a technology demonstration only, they are available with
scramble -V3.1 or -V4.0 for evaluation and to promote discussion on
future CRAM formats. Do not use these on production data.
* Experimental cram_filter tool has been added, to rapidly produce
cram subsets.
Implementations of the codecs and CRAM version 4.0 layout are liable
to change without prior warning.
* Migrated code base to git. Use github for primary repository.
* CRAM: name sorted files now automatically switch to non-ref mode.
Bug fixes:
* BAM: Fixed the bin value calculation for placed but unmapped reads.
* CRAM: Considerable fixes to multi-threading.
- Using more than 1 slice per container with threading now works.
- Removal of race conditions when using CRAM_OPT_REQUIRED_FIELDS.
- Combinations of ref and no-ref mode in adjacent containers.
- Other misc. threading bugs.
* Corrected end-of-range check in some scenarios.
* CRAM: bug fix to index creation when a slice contains exactly one
alignment.
* SAM: fixed parsing of illegal sequence characters (eg "Z").
These are now treated as "N" and not "=".
* BAM/SAM: protect against out of bound CIGAR operations.
* CRAM: Fixed file descriptor leak in refs_load_fai().
* CRAM: hardening of rANS codec against malicious input.
Also fixed a very rare frequency renormalisation case.
* CRAM: Fixed a crash in MD5 calculation for sequences beyond the
reference end.
* CRAM: fix with range queries used in conjuction with turning off
sequence retrieval (via CRAM_OPT_REQUIRED_FIELDS).
* CRAM: Bug fixes when encoding malformed @SQ records.
* Improved test harness for Windows and some header file problems.
* CRAM: Fixed a rare renormalisation bug in rANS codec.
* Fixed bgzip on big endian systems. (Debian bugs 876839, 876840)
* Fixed tests so make -j worked.
* Removed ancient, broken and unused popen() code.
Technology Demo: CRAM 3.1 and 4.0
=================================
The current official GA4GH CRAM version is 3.0.
For purposes of *EVALUATION ONLY* this release of io_lib includes CRAM
version 3.1, with new compression codecs (but is otherwise identical
file layout to 3.0), and 4.0 with a few additional format
modifications, such as 64-bit sizes.
They can be turned on using e.g. scramble -V3.1 or scramble -V4.0.
By default enabling either of these will also enable the new codecs,
bar libbsc (see below for how to compile with this). These new codecs
are slower, but will not be used at lighter levels of compression. So
for example "scramble -V4.0 -4 in.bam out.cram" will only use the same
codecs available in CRAM 3.0 bar the fast new rANS variants (rANS++).
Here are some example file sizes and timings with different codecs and
levels on 10 million NovaSeq reads, with 4 threads (-t4). Decode
timing is checked using "scram_flagstat -b -t4". Tests were performed
on an Intel i5-4570 processor at 3.2GHz.
|Scramble opts.| Size |Enc(s)|Dec(s)|Codecs used |
|--------------|---------|-----:|----:|----------------------|
|-V3.0 |224743050| 12.9| 3.8|(default) |
|-V3.0 -7jZ |211734953| 105.9| 5.4|bzip2, lzma |
||||||
|-V3.1 -4 |226888980| 13.2| 3.8|rANS++ |
|-V3.1 |187238214| 35.8| 12.8|tok3,fqz,rANS++ |
|-V3.1 -7J |180217109| 49.2| 25.6|tok3,fqz,rANS++,libbsc|
||||||
|-V4.0 -4 |211515487| 15.6| 3.8|rANS++ |
|-V4.0 |182657527| 34.9| 13.5|tok3,fqz,rANS++ |
|-V4.0 -7J |178819704| 46.5| 19.6|tok3,fqz,rANS++,libbsc|
Building
========
Prerequisites
-------------
You will need a C compiler, a Unix "make" program plus zlib, bzip2 and
lzma libraries and associated development packages (including C header
files). The appropriate operating system package names and comands
differ per system. On Debian Linux derived systems use the command
below (or build and install your own copies from source):
sudo apt-get install make zlib1g-dev libbz2-dev liblzma-dev
On RedHat derived systems the package names differ:
sudo yum install make zlib-devel bzip2-devel xz-devel
Zlib
----
......@@ -127,6 +194,32 @@ Building io_lib with the internal CRC code disabled is done
with ./configure --disable-own-crc (or CFLAGS=-UIOLIB_CRC).
Libdeflate
----------
The BAM reading and writing also has optional support for the
libdeflate library (https://github.com/ebiggers/libdeflate). This can
be used instead of an optimised zlib (see above), and generally is
slightly faster. Build using:
./configure --with-libdeflate=/path
Git clone
---------
We recommend building from a release tarball, which has the configure
script already created for you. However if you wish to build from the
latest code and have done a "git clone" then you will need to create
the configure script yourself using autotools:
autoreconf -i
This program may not be on your system. If it fails, then install
autoconf, automake and libtool packages; see above for example
OS-specific installation commands.
Linux
-----
......@@ -163,22 +256,32 @@ Under Microsoft Windows we recommend the use of MSYS and MINGW as a
build environment.
These contain enough tools to build using the configure script as per
Linux. Visit http://sourceforge.net/projects/mingw/files/ and
download/install Automated MinGW Installer (eg MinGW-5.1.4.exe), MSYS
Base System (eg MSYS-1.0.11.exe) and MSYS Supplementary Tools (eg
msysDTK-1.0.1.exe).
Linux. The latest msys can be downloaded here:
http://repo.msys2.org/distrib/msys2-x86_64-latest.exe
Once installed and setup ("pacman -Syu"; close window & relaunch msys;
"pacman -Syu" again), install mingw64 compilers via "pacman -S
--needed man base-devel git mingw-w64-x86_64-toolchain".
This should then be sufficient to configure and compile. However note
that you may need to use "./configure --disable-shared" for the test
harness to work due to deficiences in the libtool wrapper script.
If you wish to use Microsoft Visual Studio you may need to add the
MSVC_includes subdirectory to your C include search path. This
adds several missing header files (eg unistd.h and sys/time.h) needed
to build this software. We do not have a MSVC project file available.
to build this software. We do not have a MSVC project file available
and have not tested the build under this environment for a number of
years.
In this case you will also need to copy io_lib/os.h.in to io_lib/os.h
and either remove the @SET_ENDIAN@ and adjacent @ lines (as these are
normally filled out for you by autoconf) or add -DNO_AUTOCONF to your
compiler options.
The code should also build cleanly under a cross-compiler. We use
The code should also build cleanly under a cross-compiler. This has
not been tested recently, but a past successful invocation was:
./configure \
--host=x86_64-w64-mingw32 \
......@@ -194,6 +297,24 @@ with $DIST being pre-populated with already built and installed 3rd
party dependencies, some from MSYS mentioned above.
Libbsc
------
This is experimental, just to see what we can get with a high quality
compression engine in CRAM. It's hard to build right now, especially
given it's a C++ library and our code is C. The hacky solution now
is (linux) e.g.:
../configure \
CPPFLAGS=-I$HOME/ftp/compression/libbsc \
LDFLAGS="-L$HOME/ftp/compression/libbsc -fopenmp" \
LIBS=-lstdc++
Enable it using scramble -J, but note this requires experimental CRAM
versions 3.1 or 4.0.
** Neither of these should be used for production data. **
MacOS X
-------
......
This diff is collapsed.
......@@ -5,7 +5,7 @@
set -x
rm -rf install-sh missing mkinstalldirs depcomp aclocal.m4 config.cache config.log config.status configure autom4te.cache io_lib_config.h.in config.sub config.guess Makefile.in progs/Makefile.in progs/Makefile read/Makefile.in read/Makefile tests/Makefile tests/Makefile.in io_lib-config
libtoolize --force --copy && \
aclocal -I . && \
aclocal -I . -I m4 && \
autoheader && \
automake --foreign --add-missing --copy && \
autoconf
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2012-10-14.11; # UTC
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
nl='
'
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent tools from complaining about whitespace usage.
IFS=" "" $nl"
file_conv=
# func_file_conv build_file lazy
# Convert a $build file to $host form and store it in $file
# Currently only supports Windows hosts. If the determined conversion
# type is listed in (the comma separated) LAZY, no conversion will
# take place.
func_file_conv ()
{
file=$1
case $file in
/ | /[!/]*) # absolute file, and not a UNC file
if test -z "$file_conv"; then
# lazily determine how to convert abs files
case `uname -s` in
MINGW*)
file_conv=mingw
;;
CYGWIN*)
file_conv=cygwin
;;
*)
file_conv=wine
;;
esac
fi
case $file_conv/,$2, in
*,$file_conv,*)
;;
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
cygwin/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
file=`winepath -w "$file" || echo "$file"`
;;
esac
;;
esac
}
# func_cl_dashL linkdir
# Make cl look for libraries in LINKDIR
func_cl_dashL ()
{
func_file_conv "$1"
if test -z "$lib_path"; then
lib_path=$file
else
lib_path="$lib_path;$file"
fi
linker_opts="$linker_opts -LIBPATH:$file"
}
# func_cl_dashl library
# Do a library search-path lookup for cl
func_cl_dashl ()
{
lib=$1
found=no
save_IFS=$IFS
IFS=';'
for dir in $lib_path $LIB
do
IFS=$save_IFS
if $shared && test -f "$dir/$lib.dll.lib"; then
found=yes
lib=$dir/$lib.dll.lib
break
fi
if test -f "$dir/$lib.lib"; then
found=yes
lib=$dir/$lib.lib
break
fi
if test -f "$dir/lib$lib.a"; then
found=yes
lib=$dir/lib$lib.a
break
fi
done
IFS=$save_IFS
if test "$found" != yes; then
lib=$lib.lib
fi
}
# func_cl_wrapper cl arg...
# Adjust compile command to suit cl
func_cl_wrapper ()
{
# Assume a capable shell
lib_path=
shared=:
linker_opts=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
eat=1
case $2 in
*.o | *.[oO][bB][jJ])
func_file_conv "$2"
set x "$@" -Fo"$file"
shift
;;
*)
func_file_conv "$2"
set x "$@" -Fe"$file"
shift
;;
esac
;;
-I)
eat=1
func_file_conv "$2" mingw
set x "$@" -I"$file"
shift
;;
-I*)
func_file_conv "${1#-I}" mingw
set x "$@" -I"$file"
shift
;;
-l)
eat=1
func_cl_dashl "$2"
set x "$@" "$lib"
shift
;;
-l*)
func_cl_dashl "${1#-l}"
set x "$@" "$lib"
shift
;;
-L)
eat=1
func_cl_dashL "$2"
;;
-L*)
func_cl_dashL "${1#-L}"
;;
-static)
shared=false
;;
-Wl,*)
arg=${1#-Wl,}
save_ifs="$IFS"; IFS=','
for flag in $arg; do
IFS="$save_ifs"
linker_opts="$linker_opts $flag"
done
IFS="$save_ifs"
;;
-Xlinker)
eat=1
linker_opts="$linker_opts $2"
;;
-*)
set x "$@" "$1"
shift
;;
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
func_file_conv "$1"
set x "$@" -Tp"$file"
shift
;;
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
func_file_conv "$1" mingw
set x "$@" "$file"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -n "$linker_opts"; then
linker_opts="-link$linker_opts"
fi
exec "$@" $linker_opts
exit 1
}
eat=
case $1 in
'')
echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
Wrapper for compilers which do not understand '-c -o'.
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
If you are trying to build a whole package this is not the
right script to run: please start by reading the file 'INSTALL'.
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
exit $?
;;
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;
esac
ofile=
cfile=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
# So we strip '-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
ofile=$2
;;
*)
set x "$@" -o "$2"
shift
;;
esac
;;
*.c)
cfile=$1
set x "$@" "$1"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -z "$ofile" || test -z "$cfile"; then
# If no '-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# '.c' file was seen then we are probably linking. That is also
# ok.
exec "$@"
fi
# Name of file we expect compiler to create.
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
# Create the lock directory.
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
while true; do
if mkdir "$lockdir" >/dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
"$@"
ret=$?
if test -f "$cofile"; then
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
fi
rmdir "$lockdir"
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
dnl Process this file with autoconf to produce a configure script.
AC_INIT(io_lib, 1.14.9)
AC_CONFIG_HEADERS(io_lib_config.h)
AC_INIT(io_lib, 1.14.11)
AC_CONFIG_HEADERS([io_lib_config.h])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE
AM_MAINTAINER_MODE
......@@ -53,9 +54,9 @@ AM_MAINTAINER_MODE
# libstaden-read.so.1 -> libstaden-read.so.1.1.0
# libstaden-read.so.1.1.0
VERS_CURRENT=12
VERS_REVISION=0
VERS_AGE=1
VERS_CURRENT=13
VERS_REVISION=1
VERS_AGE=0
AC_SUBST(VERS_CURRENT)
AC_SUBST(VERS_REVISION)
AC_SUBST(VERS_AGE)
......@@ -100,6 +101,12 @@ AC_CHECK_LIB([lzma], [lzma_easy_buffer_encode], [
LIBS="-llzma $LIBS"
AC_DEFINE([HAVE_LIBLZMA],1,[Define to 1 if you have the liblzma library.])])
AC_CHECK_LIB([bsc], [bsc_compress], [
LIBS="-lbsc $LIBS"
AC_DEFINE([HAVE_LIBBSC],1,[Define to 1 if you have the libbsc library.])])
AX_LIBDEFLATE
dnl Check host endian-ness
AC_C_BIGENDIAN([SET_ENDIAN="#define SP_BIG_ENDIAN"],
[SET_ENDIAN="#define SP_LITTLE_ENDIAN"],
......
staden-io-lib (1.14.11-1) unstable; urgency=medium
* New upstream version featuring SOVERSION bump
* Fix installation of docs
Closes: #912272
* debhelper 11
* Point Vcs fields to salsa.debian.org
* Standards-Version: 4.2.1
-- Andreas Tille <tille@debian.org> Mon, 29 Oct 2018 20:24:24 +0100
staden-io-lib (1.14.9-4) unstable; urgency=medium
* Standards-Version: 4.1.2
......
......@@ -5,13 +5,13 @@ Uploaders: Charles Plessy <plessy@debian.org>,
Thorsten Alteholz <debian@alteholz.de>
Section: science
Priority: optional
Build-Depends: debhelper (>= 10),
Build-Depends: debhelper (>= 11~),
zlib1g-dev,
libcurl4-gnutls-dev | libcurl4-nss-dev,
d-shlibs
Standards-Version: 4.1.2
Vcs-Browser: https://anonscm.debian.org/cgit/debian-med/staden-io-lib.git
Vcs-Git: https://anonscm.debian.org/git/debian-med/staden-io-lib.git
Standards-Version: 4.2.1
Vcs-Browser: https://salsa.debian.org/med-team/staden-io-lib
Vcs-Git: https://salsa.debian.org/med-team/staden-io-lib.git
Homepage: https://github.com/jkbonfield/io_lib
Package: staden-io-lib-utils
......@@ -33,7 +33,7 @@ Description: programs for manipulating DNA sequencing files
Package: libstaden-read-dev
Architecture: any
Section: libdevel
Depends: libstaden-read11 (= ${binary:Version}),
Depends: libstaden-read13 (= ${binary:Version}),
${misc:Depends}
Description: development files for libstaden-read
This package contains the header and development files needed to build
......@@ -44,7 +44,7 @@ Description: development files for libstaden-read
interface. It has been compiled and tested on a variety of unix systems,
MacOS X and MS Windows.
Package: libstaden-read11
Package: libstaden-read13
Architecture: any
Multi-Arch: same
Section: libs
......
From: James Bonfield <jkb@sanger.ac.uk>
Date: Thu, 28 Sep 2017 09:50:12 +0100
Bug-Debian:
Origin: upstream
Subject: Bug fix bgzip on Big Endian systems.
--- a/io_lib/bgzip.c
+++ b/io_lib/bgzip.c
@@ -186,13 +186,15 @@ int gzi_index_dump(gzi *idx, const char
free(tmp);
int i;
- uint64_t n = idx->n;
- if (fwrite(le_int8(&n), sizeof(n), 1, idx_f) != 1)
+ uint64_t n = le_int8(idx->n);
+ if (fwrite(&n, sizeof(n), 1, idx_f) != 1)
goto fail;
for (i=0; i<idx->n; i++) {
- if (fwrite(le_int8(&idx->c_off[i]), sizeof idx->c_off[i], 1, idx_f) != 1)
+ n = le_int8(idx->c_off[i]);
+ if (fwrite(&n, sizeof idx->c_off[i], 1, idx_f) != 1)
goto fail;
- if (fwrite(le_int8(&idx->u_off[i]), sizeof idx->u_off[i], 1, idx_f) != 1)
+ n = le_int8(idx->u_off[i]);
+ if (fwrite(&n, sizeof idx->u_off[i], 1, idx_f) != 1)
goto fail;
}